master
    1/*** Autogenerated by WIDL 10.4 from include/sapi54.idl - Do not edit ***/
    2
    3#ifdef _WIN32
    4#ifndef __REQUIRED_RPCNDR_H_VERSION__
    5#define __REQUIRED_RPCNDR_H_VERSION__ 475
    6#endif
    7#include <rpc.h>
    8#include <rpcndr.h>
    9#endif
   10
   11#ifndef COM_NO_WINDOWS_H
   12#include <windows.h>
   13#include <ole2.h>
   14#endif
   15
   16#ifndef __sapi54_h__
   17#define __sapi54_h__
   18
   19/* Forward declarations */
   20
   21#ifndef __ISpNotifySource_FWD_DEFINED__
   22#define __ISpNotifySource_FWD_DEFINED__
   23typedef interface ISpNotifySource ISpNotifySource;
   24#ifdef __cplusplus
   25interface ISpNotifySource;
   26#endif /* __cplusplus */
   27#endif
   28
   29#ifndef __ISpNotifySink_FWD_DEFINED__
   30#define __ISpNotifySink_FWD_DEFINED__
   31typedef interface ISpNotifySink ISpNotifySink;
   32#ifdef __cplusplus
   33interface ISpNotifySink;
   34#endif /* __cplusplus */
   35#endif
   36
   37#ifndef __ISpNotifyTranslator_FWD_DEFINED__
   38#define __ISpNotifyTranslator_FWD_DEFINED__
   39typedef interface ISpNotifyTranslator ISpNotifyTranslator;
   40#ifdef __cplusplus
   41interface ISpNotifyTranslator;
   42#endif /* __cplusplus */
   43#endif
   44
   45#ifndef __ISpDataKey_FWD_DEFINED__
   46#define __ISpDataKey_FWD_DEFINED__
   47typedef interface ISpDataKey ISpDataKey;
   48#ifdef __cplusplus
   49interface ISpDataKey;
   50#endif /* __cplusplus */
   51#endif
   52
   53#ifndef __ISpObjectWithToken_FWD_DEFINED__
   54#define __ISpObjectWithToken_FWD_DEFINED__
   55typedef interface ISpObjectWithToken ISpObjectWithToken;
   56#ifdef __cplusplus
   57interface ISpObjectWithToken;
   58#endif /* __cplusplus */
   59#endif
   60
   61#ifndef __IEnumSpObjectTokens_FWD_DEFINED__
   62#define __IEnumSpObjectTokens_FWD_DEFINED__
   63typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
   64#ifdef __cplusplus
   65interface IEnumSpObjectTokens;
   66#endif /* __cplusplus */
   67#endif
   68
   69#ifndef __ISpRegDataKey_FWD_DEFINED__
   70#define __ISpRegDataKey_FWD_DEFINED__
   71typedef interface ISpRegDataKey ISpRegDataKey;
   72#ifdef __cplusplus
   73interface ISpRegDataKey;
   74#endif /* __cplusplus */
   75#endif
   76
   77#ifndef __ISpObjectTokenCategory_FWD_DEFINED__
   78#define __ISpObjectTokenCategory_FWD_DEFINED__
   79typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
   80#ifdef __cplusplus
   81interface ISpObjectTokenCategory;
   82#endif /* __cplusplus */
   83#endif
   84
   85#ifndef __ISpObjectToken_FWD_DEFINED__
   86#define __ISpObjectToken_FWD_DEFINED__
   87typedef interface ISpObjectToken ISpObjectToken;
   88#ifdef __cplusplus
   89interface ISpObjectToken;
   90#endif /* __cplusplus */
   91#endif
   92
   93#ifndef __ISpObjectTokenInit_FWD_DEFINED__
   94#define __ISpObjectTokenInit_FWD_DEFINED__
   95typedef interface ISpObjectTokenInit ISpObjectTokenInit;
   96#ifdef __cplusplus
   97interface ISpObjectTokenInit;
   98#endif /* __cplusplus */
   99#endif
  100
  101#ifndef __ISpResourceManager_FWD_DEFINED__
  102#define __ISpResourceManager_FWD_DEFINED__
  103typedef interface ISpResourceManager ISpResourceManager;
  104#ifdef __cplusplus
  105interface ISpResourceManager;
  106#endif /* __cplusplus */
  107#endif
  108
  109#ifndef __ISpEventSource_FWD_DEFINED__
  110#define __ISpEventSource_FWD_DEFINED__
  111typedef interface ISpEventSource ISpEventSource;
  112#ifdef __cplusplus
  113interface ISpEventSource;
  114#endif /* __cplusplus */
  115#endif
  116
  117#ifndef __ISpEventSource2_FWD_DEFINED__
  118#define __ISpEventSource2_FWD_DEFINED__
  119typedef interface ISpEventSource2 ISpEventSource2;
  120#ifdef __cplusplus
  121interface ISpEventSource2;
  122#endif /* __cplusplus */
  123#endif
  124
  125#ifndef __ISpEventSink_FWD_DEFINED__
  126#define __ISpEventSink_FWD_DEFINED__
  127typedef interface ISpEventSink ISpEventSink;
  128#ifdef __cplusplus
  129interface ISpEventSink;
  130#endif /* __cplusplus */
  131#endif
  132
  133#ifndef __ISpStreamFormat_FWD_DEFINED__
  134#define __ISpStreamFormat_FWD_DEFINED__
  135typedef interface ISpStreamFormat ISpStreamFormat;
  136#ifdef __cplusplus
  137interface ISpStreamFormat;
  138#endif /* __cplusplus */
  139#endif
  140
  141#ifndef __ISpStream_FWD_DEFINED__
  142#define __ISpStream_FWD_DEFINED__
  143typedef interface ISpStream ISpStream;
  144#ifdef __cplusplus
  145interface ISpStream;
  146#endif /* __cplusplus */
  147#endif
  148
  149#ifndef __ISpStreamFormatConverter_FWD_DEFINED__
  150#define __ISpStreamFormatConverter_FWD_DEFINED__
  151typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
  152#ifdef __cplusplus
  153interface ISpStreamFormatConverter;
  154#endif /* __cplusplus */
  155#endif
  156
  157#ifndef __ISpAudio_FWD_DEFINED__
  158#define __ISpAudio_FWD_DEFINED__
  159typedef interface ISpAudio ISpAudio;
  160#ifdef __cplusplus
  161interface ISpAudio;
  162#endif /* __cplusplus */
  163#endif
  164
  165#ifndef __ISpMMSysAudio_FWD_DEFINED__
  166#define __ISpMMSysAudio_FWD_DEFINED__
  167typedef interface ISpMMSysAudio ISpMMSysAudio;
  168#ifdef __cplusplus
  169interface ISpMMSysAudio;
  170#endif /* __cplusplus */
  171#endif
  172
  173#ifndef __ISpTranscript_FWD_DEFINED__
  174#define __ISpTranscript_FWD_DEFINED__
  175typedef interface ISpTranscript ISpTranscript;
  176#ifdef __cplusplus
  177interface ISpTranscript;
  178#endif /* __cplusplus */
  179#endif
  180
  181#ifndef __ISpLexicon_FWD_DEFINED__
  182#define __ISpLexicon_FWD_DEFINED__
  183typedef interface ISpLexicon ISpLexicon;
  184#ifdef __cplusplus
  185interface ISpLexicon;
  186#endif /* __cplusplus */
  187#endif
  188
  189#ifndef __ISpContainerLexicon_FWD_DEFINED__
  190#define __ISpContainerLexicon_FWD_DEFINED__
  191typedef interface ISpContainerLexicon ISpContainerLexicon;
  192#ifdef __cplusplus
  193interface ISpContainerLexicon;
  194#endif /* __cplusplus */
  195#endif
  196
  197#ifndef __ISpShortcut_FWD_DEFINED__
  198#define __ISpShortcut_FWD_DEFINED__
  199typedef interface ISpShortcut ISpShortcut;
  200#ifdef __cplusplus
  201interface ISpShortcut;
  202#endif /* __cplusplus */
  203#endif
  204
  205#ifndef __ISpPhoneConverter_FWD_DEFINED__
  206#define __ISpPhoneConverter_FWD_DEFINED__
  207typedef interface ISpPhoneConverter ISpPhoneConverter;
  208#ifdef __cplusplus
  209interface ISpPhoneConverter;
  210#endif /* __cplusplus */
  211#endif
  212
  213#ifndef __ISpPhoneticAlphabetConverter_FWD_DEFINED__
  214#define __ISpPhoneticAlphabetConverter_FWD_DEFINED__
  215typedef interface ISpPhoneticAlphabetConverter ISpPhoneticAlphabetConverter;
  216#ifdef __cplusplus
  217interface ISpPhoneticAlphabetConverter;
  218#endif /* __cplusplus */
  219#endif
  220
  221#ifndef __ISpPhoneticAlphabetSelection_FWD_DEFINED__
  222#define __ISpPhoneticAlphabetSelection_FWD_DEFINED__
  223typedef interface ISpPhoneticAlphabetSelection ISpPhoneticAlphabetSelection;
  224#ifdef __cplusplus
  225interface ISpPhoneticAlphabetSelection;
  226#endif /* __cplusplus */
  227#endif
  228
  229#ifndef __ISpVoice_FWD_DEFINED__
  230#define __ISpVoice_FWD_DEFINED__
  231typedef interface ISpVoice ISpVoice;
  232#ifdef __cplusplus
  233interface ISpVoice;
  234#endif /* __cplusplus */
  235#endif
  236
  237#ifndef __ISpPhrase_FWD_DEFINED__
  238#define __ISpPhrase_FWD_DEFINED__
  239typedef interface ISpPhrase ISpPhrase;
  240#ifdef __cplusplus
  241interface ISpPhrase;
  242#endif /* __cplusplus */
  243#endif
  244
  245#ifndef __ISpPhraseAlt_FWD_DEFINED__
  246#define __ISpPhraseAlt_FWD_DEFINED__
  247typedef interface ISpPhraseAlt ISpPhraseAlt;
  248#ifdef __cplusplus
  249interface ISpPhraseAlt;
  250#endif /* __cplusplus */
  251#endif
  252
  253#ifndef __ISpPhrase2_FWD_DEFINED__
  254#define __ISpPhrase2_FWD_DEFINED__
  255typedef interface ISpPhrase2 ISpPhrase2;
  256#ifdef __cplusplus
  257interface ISpPhrase2;
  258#endif /* __cplusplus */
  259#endif
  260
  261#ifndef __ISpRecoResult_FWD_DEFINED__
  262#define __ISpRecoResult_FWD_DEFINED__
  263typedef interface ISpRecoResult ISpRecoResult;
  264#ifdef __cplusplus
  265interface ISpRecoResult;
  266#endif /* __cplusplus */
  267#endif
  268
  269#ifndef __ISpRecoResult2_FWD_DEFINED__
  270#define __ISpRecoResult2_FWD_DEFINED__
  271typedef interface ISpRecoResult2 ISpRecoResult2;
  272#ifdef __cplusplus
  273interface ISpRecoResult2;
  274#endif /* __cplusplus */
  275#endif
  276
  277#ifndef __ISpXMLRecoResult_FWD_DEFINED__
  278#define __ISpXMLRecoResult_FWD_DEFINED__
  279typedef interface ISpXMLRecoResult ISpXMLRecoResult;
  280#ifdef __cplusplus
  281interface ISpXMLRecoResult;
  282#endif /* __cplusplus */
  283#endif
  284
  285#ifndef __ISpGrammarBuilder_FWD_DEFINED__
  286#define __ISpGrammarBuilder_FWD_DEFINED__
  287typedef interface ISpGrammarBuilder ISpGrammarBuilder;
  288#ifdef __cplusplus
  289interface ISpGrammarBuilder;
  290#endif /* __cplusplus */
  291#endif
  292
  293#ifndef __ISpRecoGrammar_FWD_DEFINED__
  294#define __ISpRecoGrammar_FWD_DEFINED__
  295typedef interface ISpRecoGrammar ISpRecoGrammar;
  296#ifdef __cplusplus
  297interface ISpRecoGrammar;
  298#endif /* __cplusplus */
  299#endif
  300
  301#ifndef __ISpGrammarBuilder2_FWD_DEFINED__
  302#define __ISpGrammarBuilder2_FWD_DEFINED__
  303typedef interface ISpGrammarBuilder2 ISpGrammarBuilder2;
  304#ifdef __cplusplus
  305interface ISpGrammarBuilder2;
  306#endif /* __cplusplus */
  307#endif
  308
  309#ifndef __ISpRecoGrammar2_FWD_DEFINED__
  310#define __ISpRecoGrammar2_FWD_DEFINED__
  311typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
  312#ifdef __cplusplus
  313interface ISpRecoGrammar2;
  314#endif /* __cplusplus */
  315#endif
  316
  317#ifndef __ISpeechResourceLoader_FWD_DEFINED__
  318#define __ISpeechResourceLoader_FWD_DEFINED__
  319typedef interface ISpeechResourceLoader ISpeechResourceLoader;
  320#ifdef __cplusplus
  321interface ISpeechResourceLoader;
  322#endif /* __cplusplus */
  323#endif
  324
  325#ifndef __ISpRecoContext_FWD_DEFINED__
  326#define __ISpRecoContext_FWD_DEFINED__
  327typedef interface ISpRecoContext ISpRecoContext;
  328#ifdef __cplusplus
  329interface ISpRecoContext;
  330#endif /* __cplusplus */
  331#endif
  332
  333#ifndef __ISpRecoContext2_FWD_DEFINED__
  334#define __ISpRecoContext2_FWD_DEFINED__
  335typedef interface ISpRecoContext2 ISpRecoContext2;
  336#ifdef __cplusplus
  337interface ISpRecoContext2;
  338#endif /* __cplusplus */
  339#endif
  340
  341#ifndef __ISpProperties_FWD_DEFINED__
  342#define __ISpProperties_FWD_DEFINED__
  343typedef interface ISpProperties ISpProperties;
  344#ifdef __cplusplus
  345interface ISpProperties;
  346#endif /* __cplusplus */
  347#endif
  348
  349#ifndef __ISpRecognizer_FWD_DEFINED__
  350#define __ISpRecognizer_FWD_DEFINED__
  351typedef interface ISpRecognizer ISpRecognizer;
  352#ifdef __cplusplus
  353interface ISpRecognizer;
  354#endif /* __cplusplus */
  355#endif
  356
  357#ifndef __ISpSerializeState_FWD_DEFINED__
  358#define __ISpSerializeState_FWD_DEFINED__
  359typedef interface ISpSerializeState ISpSerializeState;
  360#ifdef __cplusplus
  361interface ISpSerializeState;
  362#endif /* __cplusplus */
  363#endif
  364
  365#ifndef __ISpRecognizer2_FWD_DEFINED__
  366#define __ISpRecognizer2_FWD_DEFINED__
  367typedef interface ISpRecognizer2 ISpRecognizer2;
  368#ifdef __cplusplus
  369interface ISpRecognizer2;
  370#endif /* __cplusplus */
  371#endif
  372
  373#ifndef __ISpRecoCategory_FWD_DEFINED__
  374#define __ISpRecoCategory_FWD_DEFINED__
  375typedef interface ISpRecoCategory ISpRecoCategory;
  376#ifdef __cplusplus
  377interface ISpRecoCategory;
  378#endif /* __cplusplus */
  379#endif
  380
  381#ifndef __ISpRecognizer3_FWD_DEFINED__
  382#define __ISpRecognizer3_FWD_DEFINED__
  383typedef interface ISpRecognizer3 ISpRecognizer3;
  384#ifdef __cplusplus
  385interface ISpRecognizer3;
  386#endif /* __cplusplus */
  387#endif
  388
  389#ifndef __ISpEnginePronunciation_FWD_DEFINED__
  390#define __ISpEnginePronunciation_FWD_DEFINED__
  391typedef interface ISpEnginePronunciation ISpEnginePronunciation;
  392#ifdef __cplusplus
  393interface ISpEnginePronunciation;
  394#endif /* __cplusplus */
  395#endif
  396
  397#ifndef __ISpDisplayAlternates_FWD_DEFINED__
  398#define __ISpDisplayAlternates_FWD_DEFINED__
  399typedef interface ISpDisplayAlternates ISpDisplayAlternates;
  400#ifdef __cplusplus
  401interface ISpDisplayAlternates;
  402#endif /* __cplusplus */
  403#endif
  404
  405#ifndef __ISpeechDataKey_FWD_DEFINED__
  406#define __ISpeechDataKey_FWD_DEFINED__
  407typedef interface ISpeechDataKey ISpeechDataKey;
  408#ifdef __cplusplus
  409interface ISpeechDataKey;
  410#endif /* __cplusplus */
  411#endif
  412
  413#ifndef __ISpeechObjectToken_FWD_DEFINED__
  414#define __ISpeechObjectToken_FWD_DEFINED__
  415typedef interface ISpeechObjectToken ISpeechObjectToken;
  416#ifdef __cplusplus
  417interface ISpeechObjectToken;
  418#endif /* __cplusplus */
  419#endif
  420
  421#ifndef __ISpeechObjectTokens_FWD_DEFINED__
  422#define __ISpeechObjectTokens_FWD_DEFINED__
  423typedef interface ISpeechObjectTokens ISpeechObjectTokens;
  424#ifdef __cplusplus
  425interface ISpeechObjectTokens;
  426#endif /* __cplusplus */
  427#endif
  428
  429#ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
  430#define __ISpeechObjectTokenCategory_FWD_DEFINED__
  431typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
  432#ifdef __cplusplus
  433interface ISpeechObjectTokenCategory;
  434#endif /* __cplusplus */
  435#endif
  436
  437#ifndef __ISpeechAudioFormat_FWD_DEFINED__
  438#define __ISpeechAudioFormat_FWD_DEFINED__
  439typedef interface ISpeechAudioFormat ISpeechAudioFormat;
  440#ifdef __cplusplus
  441interface ISpeechAudioFormat;
  442#endif /* __cplusplus */
  443#endif
  444
  445#ifndef __ISpeechBaseStream_FWD_DEFINED__
  446#define __ISpeechBaseStream_FWD_DEFINED__
  447typedef interface ISpeechBaseStream ISpeechBaseStream;
  448#ifdef __cplusplus
  449interface ISpeechBaseStream;
  450#endif /* __cplusplus */
  451#endif
  452
  453#ifndef __ISpeechAudio_FWD_DEFINED__
  454#define __ISpeechAudio_FWD_DEFINED__
  455typedef interface ISpeechAudio ISpeechAudio;
  456#ifdef __cplusplus
  457interface ISpeechAudio;
  458#endif /* __cplusplus */
  459#endif
  460
  461#ifndef __ISpeechMMSysAudio_FWD_DEFINED__
  462#define __ISpeechMMSysAudio_FWD_DEFINED__
  463typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
  464#ifdef __cplusplus
  465interface ISpeechMMSysAudio;
  466#endif /* __cplusplus */
  467#endif
  468
  469#ifndef __ISpeechFileStream_FWD_DEFINED__
  470#define __ISpeechFileStream_FWD_DEFINED__
  471typedef interface ISpeechFileStream ISpeechFileStream;
  472#ifdef __cplusplus
  473interface ISpeechFileStream;
  474#endif /* __cplusplus */
  475#endif
  476
  477#ifndef __ISpeechCustomStream_FWD_DEFINED__
  478#define __ISpeechCustomStream_FWD_DEFINED__
  479typedef interface ISpeechCustomStream ISpeechCustomStream;
  480#ifdef __cplusplus
  481interface ISpeechCustomStream;
  482#endif /* __cplusplus */
  483#endif
  484
  485#ifndef __ISpeechMemoryStream_FWD_DEFINED__
  486#define __ISpeechMemoryStream_FWD_DEFINED__
  487typedef interface ISpeechMemoryStream ISpeechMemoryStream;
  488#ifdef __cplusplus
  489interface ISpeechMemoryStream;
  490#endif /* __cplusplus */
  491#endif
  492
  493#ifndef __ISpeechAudioStatus_FWD_DEFINED__
  494#define __ISpeechAudioStatus_FWD_DEFINED__
  495typedef interface ISpeechAudioStatus ISpeechAudioStatus;
  496#ifdef __cplusplus
  497interface ISpeechAudioStatus;
  498#endif /* __cplusplus */
  499#endif
  500
  501#ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
  502#define __ISpeechAudioBufferInfo_FWD_DEFINED__
  503typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
  504#ifdef __cplusplus
  505interface ISpeechAudioBufferInfo;
  506#endif /* __cplusplus */
  507#endif
  508
  509#ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
  510#define __ISpeechWaveFormatEx_FWD_DEFINED__
  511typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
  512#ifdef __cplusplus
  513interface ISpeechWaveFormatEx;
  514#endif /* __cplusplus */
  515#endif
  516
  517#ifndef __ISpeechVoice_FWD_DEFINED__
  518#define __ISpeechVoice_FWD_DEFINED__
  519typedef interface ISpeechVoice ISpeechVoice;
  520#ifdef __cplusplus
  521interface ISpeechVoice;
  522#endif /* __cplusplus */
  523#endif
  524
  525#ifndef __ISpeechVoiceStatus_FWD_DEFINED__
  526#define __ISpeechVoiceStatus_FWD_DEFINED__
  527typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
  528#ifdef __cplusplus
  529interface ISpeechVoiceStatus;
  530#endif /* __cplusplus */
  531#endif
  532
  533#ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
  534#define ___ISpeechVoiceEvents_FWD_DEFINED__
  535typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
  536#ifdef __cplusplus
  537interface _ISpeechVoiceEvents;
  538#endif /* __cplusplus */
  539#endif
  540
  541#ifndef __ISpeechRecognizer_FWD_DEFINED__
  542#define __ISpeechRecognizer_FWD_DEFINED__
  543typedef interface ISpeechRecognizer ISpeechRecognizer;
  544#ifdef __cplusplus
  545interface ISpeechRecognizer;
  546#endif /* __cplusplus */
  547#endif
  548
  549#ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
  550#define __ISpeechRecognizerStatus_FWD_DEFINED__
  551typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
  552#ifdef __cplusplus
  553interface ISpeechRecognizerStatus;
  554#endif /* __cplusplus */
  555#endif
  556
  557#ifndef __ISpeechRecoContext_FWD_DEFINED__
  558#define __ISpeechRecoContext_FWD_DEFINED__
  559typedef interface ISpeechRecoContext ISpeechRecoContext;
  560#ifdef __cplusplus
  561interface ISpeechRecoContext;
  562#endif /* __cplusplus */
  563#endif
  564
  565#ifndef __ISpeechRecoGrammar_FWD_DEFINED__
  566#define __ISpeechRecoGrammar_FWD_DEFINED__
  567typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
  568#ifdef __cplusplus
  569interface ISpeechRecoGrammar;
  570#endif /* __cplusplus */
  571#endif
  572
  573#ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
  574#define ___ISpeechRecoContextEvents_FWD_DEFINED__
  575typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
  576#ifdef __cplusplus
  577interface _ISpeechRecoContextEvents;
  578#endif /* __cplusplus */
  579#endif
  580
  581#ifndef __ISpeechGrammarRule_FWD_DEFINED__
  582#define __ISpeechGrammarRule_FWD_DEFINED__
  583typedef interface ISpeechGrammarRule ISpeechGrammarRule;
  584#ifdef __cplusplus
  585interface ISpeechGrammarRule;
  586#endif /* __cplusplus */
  587#endif
  588
  589#ifndef __ISpeechGrammarRules_FWD_DEFINED__
  590#define __ISpeechGrammarRules_FWD_DEFINED__
  591typedef interface ISpeechGrammarRules ISpeechGrammarRules;
  592#ifdef __cplusplus
  593interface ISpeechGrammarRules;
  594#endif /* __cplusplus */
  595#endif
  596
  597#ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
  598#define __ISpeechGrammarRuleState_FWD_DEFINED__
  599typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
  600#ifdef __cplusplus
  601interface ISpeechGrammarRuleState;
  602#endif /* __cplusplus */
  603#endif
  604
  605#ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
  606#define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
  607typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
  608#ifdef __cplusplus
  609interface ISpeechGrammarRuleStateTransitions;
  610#endif /* __cplusplus */
  611#endif
  612
  613#ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
  614#define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
  615typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
  616#ifdef __cplusplus
  617interface ISpeechGrammarRuleStateTransition;
  618#endif /* __cplusplus */
  619#endif
  620
  621#ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
  622#define __ISpeechTextSelectionInformation_FWD_DEFINED__
  623typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
  624#ifdef __cplusplus
  625interface ISpeechTextSelectionInformation;
  626#endif /* __cplusplus */
  627#endif
  628
  629#ifndef __ISpeechRecoResult_FWD_DEFINED__
  630#define __ISpeechRecoResult_FWD_DEFINED__
  631typedef interface ISpeechRecoResult ISpeechRecoResult;
  632#ifdef __cplusplus
  633interface ISpeechRecoResult;
  634#endif /* __cplusplus */
  635#endif
  636
  637#ifndef __ISpeechXMLRecoResult_FWD_DEFINED__
  638#define __ISpeechXMLRecoResult_FWD_DEFINED__
  639typedef interface ISpeechXMLRecoResult ISpeechXMLRecoResult;
  640#ifdef __cplusplus
  641interface ISpeechXMLRecoResult;
  642#endif /* __cplusplus */
  643#endif
  644
  645#ifndef __ISpeechRecoResult2_FWD_DEFINED__
  646#define __ISpeechRecoResult2_FWD_DEFINED__
  647typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
  648#ifdef __cplusplus
  649interface ISpeechRecoResult2;
  650#endif /* __cplusplus */
  651#endif
  652
  653#ifndef __ISpeechRecoResultDispatch_FWD_DEFINED__
  654#define __ISpeechRecoResultDispatch_FWD_DEFINED__
  655typedef interface ISpeechRecoResultDispatch ISpeechRecoResultDispatch;
  656#ifdef __cplusplus
  657interface ISpeechRecoResultDispatch;
  658#endif /* __cplusplus */
  659#endif
  660
  661#ifndef __ISpeechPhraseInfoBuilder_FWD_DEFINED__
  662#define __ISpeechPhraseInfoBuilder_FWD_DEFINED__
  663typedef interface ISpeechPhraseInfoBuilder ISpeechPhraseInfoBuilder;
  664#ifdef __cplusplus
  665interface ISpeechPhraseInfoBuilder;
  666#endif /* __cplusplus */
  667#endif
  668
  669#ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
  670#define __ISpeechRecoResultTimes_FWD_DEFINED__
  671typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
  672#ifdef __cplusplus
  673interface ISpeechRecoResultTimes;
  674#endif /* __cplusplus */
  675#endif
  676
  677#ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
  678#define __ISpeechPhraseAlternate_FWD_DEFINED__
  679typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
  680#ifdef __cplusplus
  681interface ISpeechPhraseAlternate;
  682#endif /* __cplusplus */
  683#endif
  684
  685#ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
  686#define __ISpeechPhraseAlternates_FWD_DEFINED__
  687typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
  688#ifdef __cplusplus
  689interface ISpeechPhraseAlternates;
  690#endif /* __cplusplus */
  691#endif
  692
  693#ifndef __ISpeechPhraseInfo_FWD_DEFINED__
  694#define __ISpeechPhraseInfo_FWD_DEFINED__
  695typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
  696#ifdef __cplusplus
  697interface ISpeechPhraseInfo;
  698#endif /* __cplusplus */
  699#endif
  700
  701#ifndef __ISpeechPhraseElement_FWD_DEFINED__
  702#define __ISpeechPhraseElement_FWD_DEFINED__
  703typedef interface ISpeechPhraseElement ISpeechPhraseElement;
  704#ifdef __cplusplus
  705interface ISpeechPhraseElement;
  706#endif /* __cplusplus */
  707#endif
  708
  709#ifndef __ISpeechPhraseElements_FWD_DEFINED__
  710#define __ISpeechPhraseElements_FWD_DEFINED__
  711typedef interface ISpeechPhraseElements ISpeechPhraseElements;
  712#ifdef __cplusplus
  713interface ISpeechPhraseElements;
  714#endif /* __cplusplus */
  715#endif
  716
  717#ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
  718#define __ISpeechPhraseReplacement_FWD_DEFINED__
  719typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
  720#ifdef __cplusplus
  721interface ISpeechPhraseReplacement;
  722#endif /* __cplusplus */
  723#endif
  724
  725#ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
  726#define __ISpeechPhraseReplacements_FWD_DEFINED__
  727typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
  728#ifdef __cplusplus
  729interface ISpeechPhraseReplacements;
  730#endif /* __cplusplus */
  731#endif
  732
  733#ifndef __ISpeechPhraseProperty_FWD_DEFINED__
  734#define __ISpeechPhraseProperty_FWD_DEFINED__
  735typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
  736#ifdef __cplusplus
  737interface ISpeechPhraseProperty;
  738#endif /* __cplusplus */
  739#endif
  740
  741#ifndef __ISpeechPhraseProperties_FWD_DEFINED__
  742#define __ISpeechPhraseProperties_FWD_DEFINED__
  743typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
  744#ifdef __cplusplus
  745interface ISpeechPhraseProperties;
  746#endif /* __cplusplus */
  747#endif
  748
  749#ifndef __ISpeechPhraseRule_FWD_DEFINED__
  750#define __ISpeechPhraseRule_FWD_DEFINED__
  751typedef interface ISpeechPhraseRule ISpeechPhraseRule;
  752#ifdef __cplusplus
  753interface ISpeechPhraseRule;
  754#endif /* __cplusplus */
  755#endif
  756
  757#ifndef __ISpeechPhraseRules_FWD_DEFINED__
  758#define __ISpeechPhraseRules_FWD_DEFINED__
  759typedef interface ISpeechPhraseRules ISpeechPhraseRules;
  760#ifdef __cplusplus
  761interface ISpeechPhraseRules;
  762#endif /* __cplusplus */
  763#endif
  764
  765#ifndef __ISpeechLexiconWords_FWD_DEFINED__
  766#define __ISpeechLexiconWords_FWD_DEFINED__
  767typedef interface ISpeechLexiconWords ISpeechLexiconWords;
  768#ifdef __cplusplus
  769interface ISpeechLexiconWords;
  770#endif /* __cplusplus */
  771#endif
  772
  773#ifndef __ISpeechLexicon_FWD_DEFINED__
  774#define __ISpeechLexicon_FWD_DEFINED__
  775typedef interface ISpeechLexicon ISpeechLexicon;
  776#ifdef __cplusplus
  777interface ISpeechLexicon;
  778#endif /* __cplusplus */
  779#endif
  780
  781#ifndef __ISpeechLexiconWord_FWD_DEFINED__
  782#define __ISpeechLexiconWord_FWD_DEFINED__
  783typedef interface ISpeechLexiconWord ISpeechLexiconWord;
  784#ifdef __cplusplus
  785interface ISpeechLexiconWord;
  786#endif /* __cplusplus */
  787#endif
  788
  789#ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
  790#define __ISpeechLexiconPronunciations_FWD_DEFINED__
  791typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
  792#ifdef __cplusplus
  793interface ISpeechLexiconPronunciations;
  794#endif /* __cplusplus */
  795#endif
  796
  797#ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
  798#define __ISpeechLexiconPronunciation_FWD_DEFINED__
  799typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
  800#ifdef __cplusplus
  801interface ISpeechLexiconPronunciation;
  802#endif /* __cplusplus */
  803#endif
  804
  805#ifndef __ISpeechPhoneConverter_FWD_DEFINED__
  806#define __ISpeechPhoneConverter_FWD_DEFINED__
  807typedef interface ISpeechPhoneConverter ISpeechPhoneConverter;
  808#ifdef __cplusplus
  809interface ISpeechPhoneConverter;
  810#endif /* __cplusplus */
  811#endif
  812
  813#ifndef __SpNotifyTranslator_FWD_DEFINED__
  814#define __SpNotifyTranslator_FWD_DEFINED__
  815#ifdef __cplusplus
  816typedef class SpNotifyTranslator SpNotifyTranslator;
  817#else
  818typedef struct SpNotifyTranslator SpNotifyTranslator;
  819#endif /* defined __cplusplus */
  820#endif /* defined __SpNotifyTranslator_FWD_DEFINED__ */
  821
  822#ifndef __SpObjectTokenCategory_FWD_DEFINED__
  823#define __SpObjectTokenCategory_FWD_DEFINED__
  824#ifdef __cplusplus
  825typedef class SpObjectTokenCategory SpObjectTokenCategory;
  826#else
  827typedef struct SpObjectTokenCategory SpObjectTokenCategory;
  828#endif /* defined __cplusplus */
  829#endif /* defined __SpObjectTokenCategory_FWD_DEFINED__ */
  830
  831#ifndef __SpObjectToken_FWD_DEFINED__
  832#define __SpObjectToken_FWD_DEFINED__
  833#ifdef __cplusplus
  834typedef class SpObjectToken SpObjectToken;
  835#else
  836typedef struct SpObjectToken SpObjectToken;
  837#endif /* defined __cplusplus */
  838#endif /* defined __SpObjectToken_FWD_DEFINED__ */
  839
  840#ifndef __SpResourceManager_FWD_DEFINED__
  841#define __SpResourceManager_FWD_DEFINED__
  842#ifdef __cplusplus
  843typedef class SpResourceManager SpResourceManager;
  844#else
  845typedef struct SpResourceManager SpResourceManager;
  846#endif /* defined __cplusplus */
  847#endif /* defined __SpResourceManager_FWD_DEFINED__ */
  848
  849#ifndef __SpStreamFormatConverter_FWD_DEFINED__
  850#define __SpStreamFormatConverter_FWD_DEFINED__
  851#ifdef __cplusplus
  852typedef class SpStreamFormatConverter SpStreamFormatConverter;
  853#else
  854typedef struct SpStreamFormatConverter SpStreamFormatConverter;
  855#endif /* defined __cplusplus */
  856#endif /* defined __SpStreamFormatConverter_FWD_DEFINED__ */
  857
  858#ifndef __SpMMAudioEnum_FWD_DEFINED__
  859#define __SpMMAudioEnum_FWD_DEFINED__
  860#ifdef __cplusplus
  861typedef class SpMMAudioEnum SpMMAudioEnum;
  862#else
  863typedef struct SpMMAudioEnum SpMMAudioEnum;
  864#endif /* defined __cplusplus */
  865#endif /* defined __SpMMAudioEnum_FWD_DEFINED__ */
  866
  867#ifndef __SpMMAudioIn_FWD_DEFINED__
  868#define __SpMMAudioIn_FWD_DEFINED__
  869#ifdef __cplusplus
  870typedef class SpMMAudioIn SpMMAudioIn;
  871#else
  872typedef struct SpMMAudioIn SpMMAudioIn;
  873#endif /* defined __cplusplus */
  874#endif /* defined __SpMMAudioIn_FWD_DEFINED__ */
  875
  876#ifndef __SpMMAudioOut_FWD_DEFINED__
  877#define __SpMMAudioOut_FWD_DEFINED__
  878#ifdef __cplusplus
  879typedef class SpMMAudioOut SpMMAudioOut;
  880#else
  881typedef struct SpMMAudioOut SpMMAudioOut;
  882#endif /* defined __cplusplus */
  883#endif /* defined __SpMMAudioOut_FWD_DEFINED__ */
  884
  885#ifndef __SpStream_FWD_DEFINED__
  886#define __SpStream_FWD_DEFINED__
  887#ifdef __cplusplus
  888typedef class SpStream SpStream;
  889#else
  890typedef struct SpStream SpStream;
  891#endif /* defined __cplusplus */
  892#endif /* defined __SpStream_FWD_DEFINED__ */
  893
  894#ifndef __SpVoice_FWD_DEFINED__
  895#define __SpVoice_FWD_DEFINED__
  896#ifdef __cplusplus
  897typedef class SpVoice SpVoice;
  898#else
  899typedef struct SpVoice SpVoice;
  900#endif /* defined __cplusplus */
  901#endif /* defined __SpVoice_FWD_DEFINED__ */
  902
  903#ifndef __SpSharedRecoContext_FWD_DEFINED__
  904#define __SpSharedRecoContext_FWD_DEFINED__
  905#ifdef __cplusplus
  906typedef class SpSharedRecoContext SpSharedRecoContext;
  907#else
  908typedef struct SpSharedRecoContext SpSharedRecoContext;
  909#endif /* defined __cplusplus */
  910#endif /* defined __SpSharedRecoContext_FWD_DEFINED__ */
  911
  912#ifndef __SpInprocRecognizer_FWD_DEFINED__
  913#define __SpInprocRecognizer_FWD_DEFINED__
  914#ifdef __cplusplus
  915typedef class SpInprocRecognizer SpInprocRecognizer;
  916#else
  917typedef struct SpInprocRecognizer SpInprocRecognizer;
  918#endif /* defined __cplusplus */
  919#endif /* defined __SpInprocRecognizer_FWD_DEFINED__ */
  920
  921#ifndef __SpSharedRecognizer_FWD_DEFINED__
  922#define __SpSharedRecognizer_FWD_DEFINED__
  923#ifdef __cplusplus
  924typedef class SpSharedRecognizer SpSharedRecognizer;
  925#else
  926typedef struct SpSharedRecognizer SpSharedRecognizer;
  927#endif /* defined __cplusplus */
  928#endif /* defined __SpSharedRecognizer_FWD_DEFINED__ */
  929
  930#ifndef __SpLexicon_FWD_DEFINED__
  931#define __SpLexicon_FWD_DEFINED__
  932#ifdef __cplusplus
  933typedef class SpLexicon SpLexicon;
  934#else
  935typedef struct SpLexicon SpLexicon;
  936#endif /* defined __cplusplus */
  937#endif /* defined __SpLexicon_FWD_DEFINED__ */
  938
  939#ifndef __SpUnCompressedLexicon_FWD_DEFINED__
  940#define __SpUnCompressedLexicon_FWD_DEFINED__
  941#ifdef __cplusplus
  942typedef class SpUnCompressedLexicon SpUnCompressedLexicon;
  943#else
  944typedef struct SpUnCompressedLexicon SpUnCompressedLexicon;
  945#endif /* defined __cplusplus */
  946#endif /* defined __SpUnCompressedLexicon_FWD_DEFINED__ */
  947
  948#ifndef __SpCompressedLexicon_FWD_DEFINED__
  949#define __SpCompressedLexicon_FWD_DEFINED__
  950#ifdef __cplusplus
  951typedef class SpCompressedLexicon SpCompressedLexicon;
  952#else
  953typedef struct SpCompressedLexicon SpCompressedLexicon;
  954#endif /* defined __cplusplus */
  955#endif /* defined __SpCompressedLexicon_FWD_DEFINED__ */
  956
  957#ifndef __SpShortcut_FWD_DEFINED__
  958#define __SpShortcut_FWD_DEFINED__
  959#ifdef __cplusplus
  960typedef class SpShortcut SpShortcut;
  961#else
  962typedef struct SpShortcut SpShortcut;
  963#endif /* defined __cplusplus */
  964#endif /* defined __SpShortcut_FWD_DEFINED__ */
  965
  966#ifndef __SpPhoneConverter_FWD_DEFINED__
  967#define __SpPhoneConverter_FWD_DEFINED__
  968#ifdef __cplusplus
  969typedef class SpPhoneConverter SpPhoneConverter;
  970#else
  971typedef struct SpPhoneConverter SpPhoneConverter;
  972#endif /* defined __cplusplus */
  973#endif /* defined __SpPhoneConverter_FWD_DEFINED__ */
  974
  975#ifndef __SpPhoneticAlphabetConverter_FWD_DEFINED__
  976#define __SpPhoneticAlphabetConverter_FWD_DEFINED__
  977#ifdef __cplusplus
  978typedef class SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
  979#else
  980typedef struct SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
  981#endif /* defined __cplusplus */
  982#endif /* defined __SpPhoneticAlphabetConverter_FWD_DEFINED__ */
  983
  984#ifndef __SpNullPhoneConverter_FWD_DEFINED__
  985#define __SpNullPhoneConverter_FWD_DEFINED__
  986#ifdef __cplusplus
  987typedef class SpNullPhoneConverter SpNullPhoneConverter;
  988#else
  989typedef struct SpNullPhoneConverter SpNullPhoneConverter;
  990#endif /* defined __cplusplus */
  991#endif /* defined __SpNullPhoneConverter_FWD_DEFINED__ */
  992
  993#ifndef __SpTextSelectionInformation_FWD_DEFINED__
  994#define __SpTextSelectionInformation_FWD_DEFINED__
  995#ifdef __cplusplus
  996typedef class SpTextSelectionInformation SpTextSelectionInformation;
  997#else
  998typedef struct SpTextSelectionInformation SpTextSelectionInformation;
  999#endif /* defined __cplusplus */
 1000#endif /* defined __SpTextSelectionInformation_FWD_DEFINED__ */
 1001
 1002#ifndef __SpPhraseInfoBuilder_FWD_DEFINED__
 1003#define __SpPhraseInfoBuilder_FWD_DEFINED__
 1004#ifdef __cplusplus
 1005typedef class SpPhraseInfoBuilder SpPhraseInfoBuilder;
 1006#else
 1007typedef struct SpPhraseInfoBuilder SpPhraseInfoBuilder;
 1008#endif /* defined __cplusplus */
 1009#endif /* defined __SpPhraseInfoBuilder_FWD_DEFINED__ */
 1010
 1011#ifndef __SpAudioFormat_FWD_DEFINED__
 1012#define __SpAudioFormat_FWD_DEFINED__
 1013#ifdef __cplusplus
 1014typedef class SpAudioFormat SpAudioFormat;
 1015#else
 1016typedef struct SpAudioFormat SpAudioFormat;
 1017#endif /* defined __cplusplus */
 1018#endif /* defined __SpAudioFormat_FWD_DEFINED__ */
 1019
 1020#ifndef __SpWaveFormatEx_FWD_DEFINED__
 1021#define __SpWaveFormatEx_FWD_DEFINED__
 1022#ifdef __cplusplus
 1023typedef class SpWaveFormatEx SpWaveFormatEx;
 1024#else
 1025typedef struct SpWaveFormatEx SpWaveFormatEx;
 1026#endif /* defined __cplusplus */
 1027#endif /* defined __SpWaveFormatEx_FWD_DEFINED__ */
 1028
 1029#ifndef __SpInProcRecoContext_FWD_DEFINED__
 1030#define __SpInProcRecoContext_FWD_DEFINED__
 1031#ifdef __cplusplus
 1032typedef class SpInProcRecoContext SpInProcRecoContext;
 1033#else
 1034typedef struct SpInProcRecoContext SpInProcRecoContext;
 1035#endif /* defined __cplusplus */
 1036#endif /* defined __SpInProcRecoContext_FWD_DEFINED__ */
 1037
 1038#ifndef __SpCustomStream_FWD_DEFINED__
 1039#define __SpCustomStream_FWD_DEFINED__
 1040#ifdef __cplusplus
 1041typedef class SpCustomStream SpCustomStream;
 1042#else
 1043typedef struct SpCustomStream SpCustomStream;
 1044#endif /* defined __cplusplus */
 1045#endif /* defined __SpCustomStream_FWD_DEFINED__ */
 1046
 1047#ifndef __SpFileStream_FWD_DEFINED__
 1048#define __SpFileStream_FWD_DEFINED__
 1049#ifdef __cplusplus
 1050typedef class SpFileStream SpFileStream;
 1051#else
 1052typedef struct SpFileStream SpFileStream;
 1053#endif /* defined __cplusplus */
 1054#endif /* defined __SpFileStream_FWD_DEFINED__ */
 1055
 1056#ifndef __SpMemoryStream_FWD_DEFINED__
 1057#define __SpMemoryStream_FWD_DEFINED__
 1058#ifdef __cplusplus
 1059typedef class SpMemoryStream SpMemoryStream;
 1060#else
 1061typedef struct SpMemoryStream SpMemoryStream;
 1062#endif /* defined __cplusplus */
 1063#endif /* defined __SpMemoryStream_FWD_DEFINED__ */
 1064
 1065/* Headers for imported files */
 1066
 1067#include <oaidl.h>
 1068#include <ocidl.h>
 1069
 1070#ifdef __cplusplus
 1071extern "C" {
 1072#endif
 1073
 1074#ifndef _SAPI_VER
 1075#error "you have to include <sapi.h> header before this."
 1076#endif
 1077#if 0
 1078typedef struct WAVEFORMATEX {
 1079    WORD wFormatTag;
 1080    WORD nChannels;
 1081    DWORD nSamplesPerSec;
 1082    DWORD nAvgBytesPerSec;
 1083    WORD nBlockAlign;
 1084    WORD wBitsPerSample;
 1085    WORD cbSize;
 1086} WAVEFORMATEX;
 1087#endif
 1088#ifndef __ISpNotifySource_FWD_DEFINED__
 1089#define __ISpNotifySource_FWD_DEFINED__
 1090typedef interface ISpNotifySource ISpNotifySource;
 1091#ifdef __cplusplus
 1092interface ISpNotifySource;
 1093#endif /* __cplusplus */
 1094#endif
 1095
 1096#ifndef __ISpNotifySink_FWD_DEFINED__
 1097#define __ISpNotifySink_FWD_DEFINED__
 1098typedef interface ISpNotifySink ISpNotifySink;
 1099#ifdef __cplusplus
 1100interface ISpNotifySink;
 1101#endif /* __cplusplus */
 1102#endif
 1103
 1104#ifndef __ISpNotifyTranslator_FWD_DEFINED__
 1105#define __ISpNotifyTranslator_FWD_DEFINED__
 1106typedef interface ISpNotifyTranslator ISpNotifyTranslator;
 1107#ifdef __cplusplus
 1108interface ISpNotifyTranslator;
 1109#endif /* __cplusplus */
 1110#endif
 1111
 1112#ifndef __ISpDataKey_FWD_DEFINED__
 1113#define __ISpDataKey_FWD_DEFINED__
 1114typedef interface ISpDataKey ISpDataKey;
 1115#ifdef __cplusplus
 1116interface ISpDataKey;
 1117#endif /* __cplusplus */
 1118#endif
 1119
 1120#ifndef __ISpObjectTokenCategory_FWD_DEFINED__
 1121#define __ISpObjectTokenCategory_FWD_DEFINED__
 1122typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
 1123#ifdef __cplusplus
 1124interface ISpObjectTokenCategory;
 1125#endif /* __cplusplus */
 1126#endif
 1127
 1128#ifndef __ISpObjectToken_FWD_DEFINED__
 1129#define __ISpObjectToken_FWD_DEFINED__
 1130typedef interface ISpObjectToken ISpObjectToken;
 1131#ifdef __cplusplus
 1132interface ISpObjectToken;
 1133#endif /* __cplusplus */
 1134#endif
 1135
 1136#ifndef __IEnumSpObjectTokens_FWD_DEFINED__
 1137#define __IEnumSpObjectTokens_FWD_DEFINED__
 1138typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
 1139#ifdef __cplusplus
 1140interface IEnumSpObjectTokens;
 1141#endif /* __cplusplus */
 1142#endif
 1143
 1144#ifndef __ISpObjectWithToken_FWD_DEFINED__
 1145#define __ISpObjectWithToken_FWD_DEFINED__
 1146typedef interface ISpObjectWithToken ISpObjectWithToken;
 1147#ifdef __cplusplus
 1148interface ISpObjectWithToken;
 1149#endif /* __cplusplus */
 1150#endif
 1151
 1152#ifndef __ISpResourceManager_FWD_DEFINED__
 1153#define __ISpResourceManager_FWD_DEFINED__
 1154typedef interface ISpResourceManager ISpResourceManager;
 1155#ifdef __cplusplus
 1156interface ISpResourceManager;
 1157#endif /* __cplusplus */
 1158#endif
 1159
 1160#ifndef __ISpEventSource_FWD_DEFINED__
 1161#define __ISpEventSource_FWD_DEFINED__
 1162typedef interface ISpEventSource ISpEventSource;
 1163#ifdef __cplusplus
 1164interface ISpEventSource;
 1165#endif /* __cplusplus */
 1166#endif
 1167
 1168#ifndef __ISpEventSink_FWD_DEFINED__
 1169#define __ISpEventSink_FWD_DEFINED__
 1170typedef interface ISpEventSink ISpEventSink;
 1171#ifdef __cplusplus
 1172interface ISpEventSink;
 1173#endif /* __cplusplus */
 1174#endif
 1175
 1176#ifndef __ISpStreamFormat_FWD_DEFINED__
 1177#define __ISpStreamFormat_FWD_DEFINED__
 1178typedef interface ISpStreamFormat ISpStreamFormat;
 1179#ifdef __cplusplus
 1180interface ISpStreamFormat;
 1181#endif /* __cplusplus */
 1182#endif
 1183
 1184#ifndef __ISpStream_FWD_DEFINED__
 1185#define __ISpStream_FWD_DEFINED__
 1186typedef interface ISpStream ISpStream;
 1187#ifdef __cplusplus
 1188interface ISpStream;
 1189#endif /* __cplusplus */
 1190#endif
 1191
 1192#ifndef __ISpStreamFormatConverter_FWD_DEFINED__
 1193#define __ISpStreamFormatConverter_FWD_DEFINED__
 1194typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
 1195#ifdef __cplusplus
 1196interface ISpStreamFormatConverter;
 1197#endif /* __cplusplus */
 1198#endif
 1199
 1200#ifndef __ISpAudio_FWD_DEFINED__
 1201#define __ISpAudio_FWD_DEFINED__
 1202typedef interface ISpAudio ISpAudio;
 1203#ifdef __cplusplus
 1204interface ISpAudio;
 1205#endif /* __cplusplus */
 1206#endif
 1207
 1208#ifndef __ISpMMSysAudio_FWD_DEFINED__
 1209#define __ISpMMSysAudio_FWD_DEFINED__
 1210typedef interface ISpMMSysAudio ISpMMSysAudio;
 1211#ifdef __cplusplus
 1212interface ISpMMSysAudio;
 1213#endif /* __cplusplus */
 1214#endif
 1215
 1216#ifndef __ISpTranscript_FWD_DEFINED__
 1217#define __ISpTranscript_FWD_DEFINED__
 1218typedef interface ISpTranscript ISpTranscript;
 1219#ifdef __cplusplus
 1220interface ISpTranscript;
 1221#endif /* __cplusplus */
 1222#endif
 1223
 1224#ifndef __ISpVoice_FWD_DEFINED__
 1225#define __ISpVoice_FWD_DEFINED__
 1226typedef interface ISpVoice ISpVoice;
 1227#ifdef __cplusplus
 1228interface ISpVoice;
 1229#endif /* __cplusplus */
 1230#endif
 1231
 1232#ifndef __ISpRecoResult_FWD_DEFINED__
 1233#define __ISpRecoResult_FWD_DEFINED__
 1234typedef interface ISpRecoResult ISpRecoResult;
 1235#ifdef __cplusplus
 1236interface ISpRecoResult;
 1237#endif /* __cplusplus */
 1238#endif
 1239
 1240#ifndef __ISpRecoContext_FWD_DEFINED__
 1241#define __ISpRecoContext_FWD_DEFINED__
 1242typedef interface ISpRecoContext ISpRecoContext;
 1243#ifdef __cplusplus
 1244interface ISpRecoContext;
 1245#endif /* __cplusplus */
 1246#endif
 1247
 1248#ifndef __ISpRecognizer_FWD_DEFINED__
 1249#define __ISpRecognizer_FWD_DEFINED__
 1250typedef interface ISpRecognizer ISpRecognizer;
 1251#ifdef __cplusplus
 1252interface ISpRecognizer;
 1253#endif /* __cplusplus */
 1254#endif
 1255
 1256#ifndef __ISpProperties_FWD_DEFINED__
 1257#define __ISpProperties_FWD_DEFINED__
 1258typedef interface ISpProperties ISpProperties;
 1259#ifdef __cplusplus
 1260interface ISpProperties;
 1261#endif /* __cplusplus */
 1262#endif
 1263
 1264#ifndef __ISpLexicon_FWD_DEFINED__
 1265#define __ISpLexicon_FWD_DEFINED__
 1266typedef interface ISpLexicon ISpLexicon;
 1267#ifdef __cplusplus
 1268interface ISpLexicon;
 1269#endif /* __cplusplus */
 1270#endif
 1271
 1272#ifndef __ISpPhoneConverter_FWD_DEFINED__
 1273#define __ISpPhoneConverter_FWD_DEFINED__
 1274typedef interface ISpPhoneConverter ISpPhoneConverter;
 1275#ifdef __cplusplus
 1276interface ISpPhoneConverter;
 1277#endif /* __cplusplus */
 1278#endif
 1279
 1280#ifndef __ISpPhrase_FWD_DEFINED__
 1281#define __ISpPhrase_FWD_DEFINED__
 1282typedef interface ISpPhrase ISpPhrase;
 1283#ifdef __cplusplus
 1284interface ISpPhrase;
 1285#endif /* __cplusplus */
 1286#endif
 1287
 1288#ifndef __ISpRecoContext2_FWD_DEFINED__
 1289#define __ISpRecoContext2_FWD_DEFINED__
 1290typedef interface ISpRecoContext2 ISpRecoContext2;
 1291#ifdef __cplusplus
 1292interface ISpRecoContext2;
 1293#endif /* __cplusplus */
 1294#endif
 1295
 1296#ifndef __ISpRecognizer2_FWD_DEFINED__
 1297#define __ISpRecognizer2_FWD_DEFINED__
 1298typedef interface ISpRecognizer2 ISpRecognizer2;
 1299#ifdef __cplusplus
 1300interface ISpRecognizer2;
 1301#endif /* __cplusplus */
 1302#endif
 1303
 1304#ifndef __ISpShortcut_FWD_DEFINED__
 1305#define __ISpShortcut_FWD_DEFINED__
 1306typedef interface ISpShortcut ISpShortcut;
 1307#ifdef __cplusplus
 1308interface ISpShortcut;
 1309#endif /* __cplusplus */
 1310#endif
 1311
 1312#ifndef __ISpPhoneticAlphabetConverter_FWD_DEFINED__
 1313#define __ISpPhoneticAlphabetConverter_FWD_DEFINED__
 1314typedef interface ISpPhoneticAlphabetConverter ISpPhoneticAlphabetConverter;
 1315#ifdef __cplusplus
 1316interface ISpPhoneticAlphabetConverter;
 1317#endif /* __cplusplus */
 1318#endif
 1319
 1320#ifndef __ISpPhoneticAlphabetSelection_FWD_DEFINED__
 1321#define __ISpPhoneticAlphabetSelection_FWD_DEFINED__
 1322typedef interface ISpPhoneticAlphabetSelection ISpPhoneticAlphabetSelection;
 1323#ifdef __cplusplus
 1324interface ISpPhoneticAlphabetSelection;
 1325#endif /* __cplusplus */
 1326#endif
 1327
 1328#ifndef __ISpRecoGrammar2_FWD_DEFINED__
 1329#define __ISpRecoGrammar2_FWD_DEFINED__
 1330typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
 1331#ifdef __cplusplus
 1332interface ISpRecoGrammar2;
 1333#endif /* __cplusplus */
 1334#endif
 1335
 1336#ifndef __ISpeechResourceLoader_FWD_DEFINED__
 1337#define __ISpeechResourceLoader_FWD_DEFINED__
 1338typedef interface ISpeechResourceLoader ISpeechResourceLoader;
 1339#ifdef __cplusplus
 1340interface ISpeechResourceLoader;
 1341#endif /* __cplusplus */
 1342#endif
 1343
 1344#ifndef __ISpRecognizer3_FWD_DEFINED__
 1345#define __ISpRecognizer3_FWD_DEFINED__
 1346typedef interface ISpRecognizer3 ISpRecognizer3;
 1347#ifdef __cplusplus
 1348interface ISpRecognizer3;
 1349#endif /* __cplusplus */
 1350#endif
 1351
 1352typedef enum SPDATAKEYLOCATION {
 1353    SPDKL_DefaultLocation = 0,
 1354    SPDKL_CurrentUser = 1,
 1355    SPDKL_LocalMachine = 2,
 1356    SPDKL_CurrentConfig = 5
 1357} SPDATAKEYLOCATION;
 1358typedef enum SPSTREAMFORMAT {
 1359    SPSF_Default = -1,
 1360    SPSF_NoAssignedFormat = 0,
 1361    SPSF_Text = 1,
 1362    SPSF_NonStandardFormat = 2,
 1363    SPSF_ExtendedAudioFormat = 3,
 1364    SPSF_8kHz8BitMono = 4,
 1365    SPSF_8kHz8BitStereo = 5,
 1366    SPSF_8kHz16BitMono = 6,
 1367    SPSF_8kHz16BitStereo = 7,
 1368    SPSF_11kHz8BitMono = 8,
 1369    SPSF_11kHz8BitStereo = 9,
 1370    SPSF_11kHz16BitMono = 10,
 1371    SPSF_11kHz16BitStereo = 11,
 1372    SPSF_12kHz8BitMono = 12,
 1373    SPSF_12kHz8BitStereo = 13,
 1374    SPSF_12kHz16BitMono = 14,
 1375    SPSF_12kHz16BitStereo = 15,
 1376    SPSF_16kHz8BitMono = 16,
 1377    SPSF_16kHz8BitStereo = 17,
 1378    SPSF_16kHz16BitMono = 18,
 1379    SPSF_16kHz16BitStereo = 19,
 1380    SPSF_22kHz8BitMono = 20,
 1381    SPSF_22kHz8BitStereo = 21,
 1382    SPSF_22kHz16BitMono = 22,
 1383    SPSF_22kHz16BitStereo = 23,
 1384    SPSF_24kHz8BitMono = 24,
 1385    SPSF_24kHz8BitStereo = 25,
 1386    SPSF_24kHz16BitMono = 26,
 1387    SPSF_24kHz16BitStereo = 27,
 1388    SPSF_32kHz8BitMono = 28,
 1389    SPSF_32kHz8BitStereo = 29,
 1390    SPSF_32kHz16BitMono = 30,
 1391    SPSF_32kHz16BitStereo = 31,
 1392    SPSF_44kHz8BitMono = 32,
 1393    SPSF_44kHz8BitStereo = 33,
 1394    SPSF_44kHz16BitMono = 34,
 1395    SPSF_44kHz16BitStereo = 35,
 1396    SPSF_48kHz8BitMono = 36,
 1397    SPSF_48kHz8BitStereo = 37,
 1398    SPSF_48kHz16BitMono = 38,
 1399    SPSF_48kHz16BitStereo = 39,
 1400    SPSF_TrueSpeech_8kHz1BitMono = 40,
 1401    SPSF_CCITT_ALaw_8kHzMono = 41,
 1402    SPSF_CCITT_ALaw_8kHzStereo = 42,
 1403    SPSF_CCITT_ALaw_11kHzMono = 43,
 1404    SPSF_CCITT_ALaw_11kHzStereo = 44,
 1405    SPSF_CCITT_ALaw_22kHzMono = 45,
 1406    SPSF_CCITT_ALaw_22kHzStereo = 46,
 1407    SPSF_CCITT_ALaw_44kHzMono = 47,
 1408    SPSF_CCITT_ALaw_44kHzStereo = 48,
 1409    SPSF_CCITT_uLaw_8kHzMono = 49,
 1410    SPSF_CCITT_uLaw_8kHzStereo = 50,
 1411    SPSF_CCITT_uLaw_11kHzMono = 51,
 1412    SPSF_CCITT_uLaw_11kHzStereo = 52,
 1413    SPSF_CCITT_uLaw_22kHzMono = 53,
 1414    SPSF_CCITT_uLaw_22kHzStereo = 54,
 1415    SPSF_CCITT_uLaw_44kHzMono = 55,
 1416    SPSF_CCITT_uLaw_44kHzStereo = 56,
 1417    SPSF_ADPCM_8kHzMono = 57,
 1418    SPSF_ADPCM_8kHzStereo = 58,
 1419    SPSF_ADPCM_11kHzMono = 59,
 1420    SPSF_ADPCM_11kHzStereo = 60,
 1421    SPSF_ADPCM_22kHzMono = 61,
 1422    SPSF_ADPCM_22kHzStereo = 62,
 1423    SPSF_ADPCM_44kHzMono = 63,
 1424    SPSF_ADPCM_44kHzStereo = 64,
 1425    SPSF_GSM610_8kHzMono = 65,
 1426    SPSF_GSM610_11kHzMono = 66,
 1427    SPSF_GSM610_22kHzMono = 67,
 1428    SPSF_GSM610_44kHzMono = 68,
 1429    SPSF_NUM_FORMATS = 69
 1430} SPSTREAMFORMAT;
 1431typedef enum SPEVENTLPARAMTYPE {
 1432    SPET_LPARAM_IS_UNDEFINED = 0,
 1433    SPET_LPARAM_IS_TOKEN = 1,
 1434    SPET_LPARAM_IS_OBJECT = 2,
 1435    SPET_LPARAM_IS_POINTER = 3,
 1436    SPET_LPARAM_IS_STRING = 4
 1437} SPEVENTLPARAMTYPE;
 1438typedef enum SPEVENTENUM {
 1439    SPEI_UNDEFINED = 0,
 1440    SPEI_START_INPUT_STREAM = 1,
 1441    SPEI_END_INPUT_STREAM = 2,
 1442    SPEI_VOICE_CHANGE = 3,
 1443    SPEI_TTS_BOOKMARK = 4,
 1444    SPEI_WORD_BOUNDARY = 5,
 1445    SPEI_PHONEME = 6,
 1446    SPEI_SENTENCE_BOUNDARY = 7,
 1447    SPEI_VISEME = 8,
 1448    SPEI_TTS_AUDIO_LEVEL = 9,
 1449    SPEI_TTS_PRIVATE = 15,
 1450    SPEI_MIN_TTS = 1,
 1451    SPEI_MAX_TTS = 15,
 1452    SPEI_END_SR_STREAM = 34,
 1453    SPEI_SOUND_START = 35,
 1454    SPEI_SOUND_END = 36,
 1455    SPEI_PHRASE_START = 37,
 1456    SPEI_RECOGNITION = 38,
 1457    SPEI_HYPOTHESIS = 39,
 1458    SPEI_SR_BOOKMARK = 40,
 1459    SPEI_PROPERTY_NUM_CHANGE = 41,
 1460    SPEI_PROPERTY_STRING_CHANGE = 42,
 1461    SPEI_FALSE_RECOGNITION = 43,
 1462    SPEI_INTERFERENCE = 44,
 1463    SPEI_REQUEST_UI = 45,
 1464    SPEI_RECO_STATE_CHANGE = 46,
 1465    SPEI_ADAPTATION = 47,
 1466    SPEI_START_SR_STREAM = 48,
 1467    SPEI_RECO_OTHER_CONTEXT = 49,
 1468    SPEI_SR_AUDIO_LEVEL = 50,
 1469    SPEI_SR_RETAINEDAUDIO = 51,
 1470    SPEI_SR_PRIVATE = 52,
 1471    SPEI_ACTIVE_CATEGORY_CHANGED = 53,
 1472    SPEI_RESERVED5 = 54,
 1473    SPEI_RESERVED6 = 55,
 1474    SPEI_MIN_SR = 34,
 1475    SPEI_MAX_SR = 55,
 1476    SPEI_RESERVED1 = 30,
 1477    SPEI_RESERVED2 = 33,
 1478    SPEI_RESERVED3 = 63
 1479} SPEVENTENUM;
 1480typedef enum SPINTERFERENCE {
 1481    SPINTERFERENCE_NONE = 0,
 1482    SPINTERFERENCE_NOISE = 1,
 1483    SPINTERFERENCE_NOSIGNAL = 2,
 1484    SPINTERFERENCE_TOOLOUD = 3,
 1485    SPINTERFERENCE_TOOQUIET = 4,
 1486    SPINTERFERENCE_TOOFAST = 5,
 1487    SPINTERFERENCE_TOOSLOW = 6,
 1488    SPINTERFERENCE_LATENCY_WARNING = 7,
 1489    SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN = 8,
 1490    SPINTERFERENCE_LATENCY_TRUNCATE_END = 9
 1491} SPINTERFERENCE;
 1492typedef enum SPENDSRSTREAMFLAGS {
 1493    SPESF_NONE = 0,
 1494    SPESF_STREAM_RELEASED = 1,
 1495    SPESF_EMULATED = 2
 1496} SPENDSRSTREAMFLAGS;
 1497typedef enum SPVFEATURE {
 1498    SPVFEATURE_STRESSED = 1,
 1499    SPVFEATURE_EMPHASIS = 2
 1500} SPVFEATURE;
 1501typedef enum SPVISEMES {
 1502    SP_VISEME_0 = 0,
 1503    SP_VISEME_1 = 1,
 1504    SP_VISEME_2 = 2,
 1505    SP_VISEME_3 = 3,
 1506    SP_VISEME_4 = 4,
 1507    SP_VISEME_5 = 5,
 1508    SP_VISEME_6 = 6,
 1509    SP_VISEME_7 = 7,
 1510    SP_VISEME_8 = 8,
 1511    SP_VISEME_9 = 9,
 1512    SP_VISEME_10 = 10,
 1513    SP_VISEME_11 = 11,
 1514    SP_VISEME_12 = 12,
 1515    SP_VISEME_13 = 13,
 1516    SP_VISEME_14 = 14,
 1517    SP_VISEME_15 = 15,
 1518    SP_VISEME_16 = 16,
 1519    SP_VISEME_17 = 17,
 1520    SP_VISEME_18 = 18,
 1521    SP_VISEME_19 = 19,
 1522    SP_VISEME_20 = 20,
 1523    SP_VISEME_21 = 21
 1524} SPVISEMES;
 1525typedef enum SPFILEMODE {
 1526    SPFM_OPEN_READONLY = 0,
 1527    SPFM_OPEN_READWRITE = 1,
 1528    SPFM_CREATE = 2,
 1529    SPFM_CREATE_ALWAYS = 3,
 1530    SPFM_NUM_MODES = 4
 1531} SPFILEMODE;
 1532typedef enum _SPAUDIOSTATE {
 1533    SPAS_CLOSED = 0,
 1534    SPAS_STOP = 1,
 1535    SPAS_PAUSE = 2,
 1536    SPAS_RUN = 3
 1537} SPAUDIOSTATE;
 1538typedef enum SPDISPLYATTRIBUTES {
 1539    SPAF_ONE_TRAILING_SPACE = 0x2,
 1540    SPAF_TWO_TRAILING_SPACES = 0x4,
 1541    SPAF_CONSUME_LEADING_SPACES = 0x8,
 1542    SPAF_BUFFER_POSITION = 0x10,
 1543    SPAF_ALL = 0x1f,
 1544    SPAF_USER_SPECIFIED = 0x80
 1545} SPDISPLAYATTRIBUTES;
 1546typedef enum SPPHRASEPROPERTYUNIONTYPE {
 1547    SPPPUT_UNUSED = 0,
 1548    SPPPUT_ARRAY_INDEX = 1
 1549} SPPHRASEPROPERTYUNIONTYPE;
 1550typedef enum SPSEMANTICFORMAT {
 1551    SPSMF_SAPI_PROPERTIES = 0,
 1552    SPSMF_SRGS_SEMANTICINTERPRETATION_MS = 1,
 1553    SPSMF_SRGS_SAPIPROPERTIES = 2,
 1554    SPSMF_UPS = 4,
 1555    SPSMF_SRGS_SEMANTICINTERPRETATION_W3C = 8
 1556} SPSEMANTICFORMAT;
 1557typedef enum SPRECOEVENTFLAGS {
 1558    SPREF_AutoPause = 0x1,
 1559    SPREF_Emulated = 0x2,
 1560    SPREF_SMLTimeout = 0x4,
 1561    SPREF_ExtendableParse = 0x8,
 1562    SPREF_ReSent = 0x10,
 1563    SPREF_Hypothesis = 0x20,
 1564    SPREF_FalseRecognition = 0x40
 1565} SPRECOEVENTFLAGS;
 1566typedef enum SPPARTOFSPEECH {
 1567    SPPS_NotOverriden = -1,
 1568    SPPS_Unknown = 0,
 1569    SPPS_Noun = 0x1000,
 1570    SPPS_Verb = 0x2000,
 1571    SPPS_Modifier = 0x3000,
 1572    SPPS_Function = 0x4000,
 1573    SPPS_Interjection = 0x5000,
 1574    SPPS_Noncontent = 0x6000,
 1575    SPPS_LMA = 0x7000,
 1576    SPPS_SuppressWord = 0xf000
 1577} SPPARTOFSPEECH;
 1578typedef enum SPLEXICONTYPE {
 1579    eLEXTYPE_USER = 0x1,
 1580    eLEXTYPE_APP = 0x2,
 1581    eLEXTYPE_VENDORLEXICON = 0x4,
 1582    eLEXTYPE_LETTERTOSOUND = 0x8,
 1583    eLEXTYPE_MORPHOLOGY = 0x10,
 1584    eLEXTYPE_RESERVED4 = 0x20,
 1585    eLEXTYPE_USER_SHORTCUT = 0x40,
 1586    eLEXTYPE_RESERVED6 = 0x80,
 1587    eLEXTYPE_RESERVED7 = 0x100,
 1588    eLEXTYPE_RESERVED8 = 0x200,
 1589    eLEXTYPE_RESERVED9 = 0x400,
 1590    eLEXTYPE_RESERVED10 = 0x800,
 1591    eLEXTYPE_PRIVATE1 = 0x1000,
 1592    eLEXTYPE_PRIVATE2 = 0x2000,
 1593    eLEXTYPE_PRIVATE3 = 0x4000,
 1594    eLEXTYPE_PRIVATE4 = 0x8000,
 1595    eLEXTYPE_PRIVATE5 = 0x10000,
 1596    eLEXTYPE_PRIVATE6 = 0x20000,
 1597    eLEXTYPE_PRIVATE7 = 0x40000,
 1598    eLEXTYPE_PRIVATE8 = 0x80000,
 1599    eLEXTYPE_PRIVATE9 = 0x100000,
 1600    eLEXTYPE_PRIVATE10 = 0x200000,
 1601    eLEXTYPE_PRIVATE11 = 0x400000,
 1602    eLEXTYPE_PRIVATE12 = 0x800000,
 1603    eLEXTYPE_PRIVATE13 = 0x1000000,
 1604    eLEXTYPE_PRIVATE14 = 0x2000000,
 1605    eLEXTYPE_PRIVATE15 = 0x4000000,
 1606    eLEXTYPE_PRIVATE16 = 0x8000000,
 1607    eLEXTYPE_PRIVATE17 = 0x10000000,
 1608    eLEXTYPE_PRIVATE18 = 0x20000000,
 1609    eLEXTYPE_PRIVATE19 = 0x40000000,
 1610    eLEXTYPE_PRIVATE20 = 0x80000000u
 1611} SPLEXICONTYPE;
 1612typedef enum SPWORDTYPE {
 1613    eWORDTYPE_ADDED = 1,
 1614    eWORDTYPE_DELETED = 2
 1615} SPWORDTYPE;
 1616typedef enum SPPRONUNCIATIONFLAGS {
 1617    ePRONFLAG_USED = 1
 1618} SPPRONUNCIATIONFLAGS;
 1619typedef enum SPSHORTCUTTYPE {
 1620    SPSHT_NotOverriden = -1,
 1621    SPSHT_Unknown = 0,
 1622    SPSHT_EMAIL = 0x1000,
 1623    SPSHT_OTHER = 0x2000,
 1624    SPPS_RESERVED1 = 0x3000,
 1625    SPPS_RESERVED2 = 0x4000,
 1626    SPPS_RESERVED3 = 0x5000,
 1627    SPPS_RESERVED4 = 0xf000
 1628} SPSHORTCUTTYPE;
 1629typedef enum SPVALUETYPE {
 1630    SPDF_PROPERTY = 0x1,
 1631    SPDF_REPLACEMENT = 0x2,
 1632    SPDF_RULE = 0x4,
 1633    SPDF_DISPLAYTEXT = 0x8,
 1634    SPDF_LEXICALFORM = 0x10,
 1635    SPDF_PRONUNCIATION = 0x20,
 1636    SPDF_AUDIO = 0x40,
 1637    SPDF_ALTERNATES = 0x80,
 1638    SPDF_ALL = 0xff
 1639} SPVALUETYPE;
 1640typedef enum SPPHRASERNG {
 1641    SPPR_ALL_ELEMENTS = -1
 1642} SPPHRASERNG;
 1643typedef enum SPVACTIONS {
 1644    SPVA_Speak = 0,
 1645    SPVA_Silence = 1,
 1646    SPVA_Pronounce = 2,
 1647    SPVA_Bookmark = 3,
 1648    SPVA_SpellOut = 4,
 1649    SPVA_Section = 5,
 1650    SPVA_ParseUnknownTag = 6
 1651} SPVACTIONS;
 1652typedef enum SPRUNSTATE {
 1653    SPRS_DONE = 1,
 1654    SPRS_IS_SPEAKING = 2
 1655} SPRUNSTATE;
 1656typedef enum SPVLIMITS {
 1657    SPMIN_VOLUME = 0,
 1658    SPMAX_VOLUME = 100,
 1659    SPMIN_RATE = -10,
 1660    SPMAX_RATE = 10
 1661} SPVLIMITS;
 1662typedef enum SPVPRIORITY {
 1663    SPVPRI_NORMAL = 0,
 1664    SPVPRI_ALERT = 1,
 1665    SPVPRI_OVER = 2
 1666} SPVPRIORITY;
 1667EXTERN_C const GUID SPDFID_Text;
 1668EXTERN_C const GUID SPDFID_WaveFormatEx;
 1669
 1670#define SP_LOW_CONFIDENCE (-1)
 1671
 1672#define SP_NORMAL_CONFIDENCE (0)
 1673
 1674#define SP_HIGH_CONFIDENCE (+1)
 1675
 1676#define DEFAULT_WEIGHT (1)
 1677
 1678#define SP_MAX_WORD_LENGTH (128)
 1679
 1680#define SP_MAX_PRON_LENGTH (384)
 1681
 1682#define SP_EMULATE_RESULT (0x40000000)
 1683
 1684
 1685#ifdef __cplusplus
 1686interface ISpNotifyCallback {
 1687  virtual HRESULT STDMETHODCALLTYPE NotifyCallback(WPARAM wParam, LPARAM lParam) = 0;
 1688};
 1689#else
 1690typedef void *ISpNotifyCallback;
 1691#endif
 1692#if 0
 1693typedef void *SPNOTIFYCALLBACK;
 1694#else
 1695typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);
 1696#endif
 1697/*****************************************************************************
 1698 * ISpNotifySource interface
 1699 */
 1700#ifndef __ISpNotifySource_INTERFACE_DEFINED__
 1701#define __ISpNotifySource_INTERFACE_DEFINED__
 1702
 1703DEFINE_GUID(IID_ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 1704#if defined(__cplusplus) && !defined(CINTERFACE)
 1705MIDL_INTERFACE("5eff4aef-8487-11d2-961c-00c04f8ee628")
 1706ISpNotifySource : public IUnknown
 1707{
 1708    virtual HRESULT STDMETHODCALLTYPE SetNotifySink(
 1709        ISpNotifySink *pNotifySink) = 0;
 1710
 1711    virtual HRESULT STDMETHODCALLTYPE SetNotifyWindowMessage(
 1712        HWND hWnd,
 1713        UINT Msg,
 1714        WPARAM wParam,
 1715        LPARAM lParam) = 0;
 1716
 1717    virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackFunction(
 1718        SPNOTIFYCALLBACK *pfnCallback,
 1719        WPARAM wParam,
 1720        LPARAM lParam) = 0;
 1721
 1722    virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackInterface(
 1723        ISpNotifyCallback *pSpCallback,
 1724        WPARAM wParam,
 1725        LPARAM lParam) = 0;
 1726
 1727    virtual HRESULT STDMETHODCALLTYPE SetNotifyWin32Event(
 1728        ) = 0;
 1729
 1730    virtual HRESULT STDMETHODCALLTYPE WaitForNotifyEvent(
 1731        DWORD dwMilliseconds) = 0;
 1732
 1733    virtual HANDLE STDMETHODCALLTYPE GetNotifyEventHandle(
 1734        ) = 0;
 1735
 1736};
 1737#ifdef __CRT_UUID_DECL
 1738__CRT_UUID_DECL(ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 1739#endif
 1740#else
 1741typedef struct ISpNotifySourceVtbl {
 1742    BEGIN_INTERFACE
 1743
 1744    /*** IUnknown methods ***/
 1745    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1746        ISpNotifySource *This,
 1747        REFIID riid,
 1748        void **ppvObject);
 1749
 1750    ULONG (STDMETHODCALLTYPE *AddRef)(
 1751        ISpNotifySource *This);
 1752
 1753    ULONG (STDMETHODCALLTYPE *Release)(
 1754        ISpNotifySource *This);
 1755
 1756    /*** ISpNotifySource methods ***/
 1757    HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
 1758        ISpNotifySource *This,
 1759        ISpNotifySink *pNotifySink);
 1760
 1761    HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
 1762        ISpNotifySource *This,
 1763        HWND hWnd,
 1764        UINT Msg,
 1765        WPARAM wParam,
 1766        LPARAM lParam);
 1767
 1768    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
 1769        ISpNotifySource *This,
 1770        SPNOTIFYCALLBACK *pfnCallback,
 1771        WPARAM wParam,
 1772        LPARAM lParam);
 1773
 1774    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
 1775        ISpNotifySource *This,
 1776        ISpNotifyCallback *pSpCallback,
 1777        WPARAM wParam,
 1778        LPARAM lParam);
 1779
 1780    HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
 1781        ISpNotifySource *This);
 1782
 1783    HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
 1784        ISpNotifySource *This,
 1785        DWORD dwMilliseconds);
 1786
 1787    HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
 1788        ISpNotifySource *This);
 1789
 1790    END_INTERFACE
 1791} ISpNotifySourceVtbl;
 1792
 1793interface ISpNotifySource {
 1794    CONST_VTBL ISpNotifySourceVtbl* lpVtbl;
 1795};
 1796
 1797#ifdef COBJMACROS
 1798#ifndef WIDL_C_INLINE_WRAPPERS
 1799/*** IUnknown methods ***/
 1800#define ISpNotifySource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1801#define ISpNotifySource_AddRef(This) (This)->lpVtbl->AddRef(This)
 1802#define ISpNotifySource_Release(This) (This)->lpVtbl->Release(This)
 1803/*** ISpNotifySource methods ***/
 1804#define ISpNotifySource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
 1805#define ISpNotifySource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
 1806#define ISpNotifySource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
 1807#define ISpNotifySource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
 1808#define ISpNotifySource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
 1809#define ISpNotifySource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
 1810#define ISpNotifySource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
 1811#else
 1812/*** IUnknown methods ***/
 1813static inline HRESULT ISpNotifySource_QueryInterface(ISpNotifySource* This,REFIID riid,void **ppvObject) {
 1814    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1815}
 1816static inline ULONG ISpNotifySource_AddRef(ISpNotifySource* This) {
 1817    return This->lpVtbl->AddRef(This);
 1818}
 1819static inline ULONG ISpNotifySource_Release(ISpNotifySource* This) {
 1820    return This->lpVtbl->Release(This);
 1821}
 1822/*** ISpNotifySource methods ***/
 1823static inline HRESULT ISpNotifySource_SetNotifySink(ISpNotifySource* This,ISpNotifySink *pNotifySink) {
 1824    return This->lpVtbl->SetNotifySink(This,pNotifySink);
 1825}
 1826static inline HRESULT ISpNotifySource_SetNotifyWindowMessage(ISpNotifySource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 1827    return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
 1828}
 1829static inline HRESULT ISpNotifySource_SetNotifyCallbackFunction(ISpNotifySource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 1830    return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
 1831}
 1832static inline HRESULT ISpNotifySource_SetNotifyCallbackInterface(ISpNotifySource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 1833    return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
 1834}
 1835static inline HRESULT ISpNotifySource_SetNotifyWin32Event(ISpNotifySource* This) {
 1836    return This->lpVtbl->SetNotifyWin32Event(This);
 1837}
 1838static inline HRESULT ISpNotifySource_WaitForNotifyEvent(ISpNotifySource* This,DWORD dwMilliseconds) {
 1839    return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
 1840}
 1841static inline HANDLE ISpNotifySource_GetNotifyEventHandle(ISpNotifySource* This) {
 1842    return This->lpVtbl->GetNotifyEventHandle(This);
 1843}
 1844#endif
 1845#endif
 1846
 1847#endif
 1848
 1849
 1850#endif  /* __ISpNotifySource_INTERFACE_DEFINED__ */
 1851
 1852/*****************************************************************************
 1853 * ISpNotifySink interface
 1854 */
 1855#ifndef __ISpNotifySink_INTERFACE_DEFINED__
 1856#define __ISpNotifySink_INTERFACE_DEFINED__
 1857
 1858DEFINE_GUID(IID_ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 1859#if defined(__cplusplus) && !defined(CINTERFACE)
 1860MIDL_INTERFACE("259684dc-37c3-11d2-9603-00c04f8ee628")
 1861ISpNotifySink : public IUnknown
 1862{
 1863    virtual HRESULT STDMETHODCALLTYPE Notify(
 1864        ) = 0;
 1865
 1866};
 1867#ifdef __CRT_UUID_DECL
 1868__CRT_UUID_DECL(ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 1869#endif
 1870#else
 1871typedef struct ISpNotifySinkVtbl {
 1872    BEGIN_INTERFACE
 1873
 1874    /*** IUnknown methods ***/
 1875    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1876        ISpNotifySink *This,
 1877        REFIID riid,
 1878        void **ppvObject);
 1879
 1880    ULONG (STDMETHODCALLTYPE *AddRef)(
 1881        ISpNotifySink *This);
 1882
 1883    ULONG (STDMETHODCALLTYPE *Release)(
 1884        ISpNotifySink *This);
 1885
 1886    /*** ISpNotifySink methods ***/
 1887    HRESULT (STDMETHODCALLTYPE *Notify)(
 1888        ISpNotifySink *This);
 1889
 1890    END_INTERFACE
 1891} ISpNotifySinkVtbl;
 1892
 1893interface ISpNotifySink {
 1894    CONST_VTBL ISpNotifySinkVtbl* lpVtbl;
 1895};
 1896
 1897#ifdef COBJMACROS
 1898#ifndef WIDL_C_INLINE_WRAPPERS
 1899/*** IUnknown methods ***/
 1900#define ISpNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1901#define ISpNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
 1902#define ISpNotifySink_Release(This) (This)->lpVtbl->Release(This)
 1903/*** ISpNotifySink methods ***/
 1904#define ISpNotifySink_Notify(This) (This)->lpVtbl->Notify(This)
 1905#else
 1906/*** IUnknown methods ***/
 1907static inline HRESULT ISpNotifySink_QueryInterface(ISpNotifySink* This,REFIID riid,void **ppvObject) {
 1908    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1909}
 1910static inline ULONG ISpNotifySink_AddRef(ISpNotifySink* This) {
 1911    return This->lpVtbl->AddRef(This);
 1912}
 1913static inline ULONG ISpNotifySink_Release(ISpNotifySink* This) {
 1914    return This->lpVtbl->Release(This);
 1915}
 1916/*** ISpNotifySink methods ***/
 1917static inline HRESULT ISpNotifySink_Notify(ISpNotifySink* This) {
 1918    return This->lpVtbl->Notify(This);
 1919}
 1920#endif
 1921#endif
 1922
 1923#endif
 1924
 1925
 1926#endif  /* __ISpNotifySink_INTERFACE_DEFINED__ */
 1927
 1928/*****************************************************************************
 1929 * ISpNotifyTranslator interface
 1930 */
 1931#ifndef __ISpNotifyTranslator_INTERFACE_DEFINED__
 1932#define __ISpNotifyTranslator_INTERFACE_DEFINED__
 1933
 1934DEFINE_GUID(IID_ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 1935#if defined(__cplusplus) && !defined(CINTERFACE)
 1936MIDL_INTERFACE("aca16614-5d3d-11d2-960e-00c04f8ee628")
 1937ISpNotifyTranslator : public ISpNotifySink
 1938{
 1939    virtual HRESULT STDMETHODCALLTYPE InitWindowMessage(
 1940        HWND hWnd,
 1941        UINT Msg,
 1942        WPARAM wParam,
 1943        LPARAM lParam) = 0;
 1944
 1945    virtual HRESULT STDMETHODCALLTYPE InitCallback(
 1946        SPNOTIFYCALLBACK *pfnCallback,
 1947        WPARAM wParam,
 1948        LPARAM lParam) = 0;
 1949
 1950    virtual HRESULT STDMETHODCALLTYPE InitSpNotifyCallback(
 1951        ISpNotifyCallback *pSpCallback,
 1952        WPARAM wParam,
 1953        LPARAM lParam) = 0;
 1954
 1955    virtual HRESULT STDMETHODCALLTYPE InitWin32Event(
 1956        HANDLE hEvent,
 1957        WINBOOL fCloseHandleOnRelease) = 0;
 1958
 1959    virtual HRESULT STDMETHODCALLTYPE Wait(
 1960        DWORD dwMilliseconds) = 0;
 1961
 1962    virtual HANDLE STDMETHODCALLTYPE GetEventHandle(
 1963        ) = 0;
 1964
 1965};
 1966#ifdef __CRT_UUID_DECL
 1967__CRT_UUID_DECL(ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 1968#endif
 1969#else
 1970typedef struct ISpNotifyTranslatorVtbl {
 1971    BEGIN_INTERFACE
 1972
 1973    /*** IUnknown methods ***/
 1974    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1975        ISpNotifyTranslator *This,
 1976        REFIID riid,
 1977        void **ppvObject);
 1978
 1979    ULONG (STDMETHODCALLTYPE *AddRef)(
 1980        ISpNotifyTranslator *This);
 1981
 1982    ULONG (STDMETHODCALLTYPE *Release)(
 1983        ISpNotifyTranslator *This);
 1984
 1985    /*** ISpNotifySink methods ***/
 1986    HRESULT (STDMETHODCALLTYPE *Notify)(
 1987        ISpNotifyTranslator *This);
 1988
 1989    /*** ISpNotifyTranslator methods ***/
 1990    HRESULT (STDMETHODCALLTYPE *InitWindowMessage)(
 1991        ISpNotifyTranslator *This,
 1992        HWND hWnd,
 1993        UINT Msg,
 1994        WPARAM wParam,
 1995        LPARAM lParam);
 1996
 1997    HRESULT (STDMETHODCALLTYPE *InitCallback)(
 1998        ISpNotifyTranslator *This,
 1999        SPNOTIFYCALLBACK *pfnCallback,
 2000        WPARAM wParam,
 2001        LPARAM lParam);
 2002
 2003    HRESULT (STDMETHODCALLTYPE *InitSpNotifyCallback)(
 2004        ISpNotifyTranslator *This,
 2005        ISpNotifyCallback *pSpCallback,
 2006        WPARAM wParam,
 2007        LPARAM lParam);
 2008
 2009    HRESULT (STDMETHODCALLTYPE *InitWin32Event)(
 2010        ISpNotifyTranslator *This,
 2011        HANDLE hEvent,
 2012        WINBOOL fCloseHandleOnRelease);
 2013
 2014    HRESULT (STDMETHODCALLTYPE *Wait)(
 2015        ISpNotifyTranslator *This,
 2016        DWORD dwMilliseconds);
 2017
 2018    HANDLE (STDMETHODCALLTYPE *GetEventHandle)(
 2019        ISpNotifyTranslator *This);
 2020
 2021    END_INTERFACE
 2022} ISpNotifyTranslatorVtbl;
 2023
 2024interface ISpNotifyTranslator {
 2025    CONST_VTBL ISpNotifyTranslatorVtbl* lpVtbl;
 2026};
 2027
 2028#ifdef COBJMACROS
 2029#ifndef WIDL_C_INLINE_WRAPPERS
 2030/*** IUnknown methods ***/
 2031#define ISpNotifyTranslator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2032#define ISpNotifyTranslator_AddRef(This) (This)->lpVtbl->AddRef(This)
 2033#define ISpNotifyTranslator_Release(This) (This)->lpVtbl->Release(This)
 2034/*** ISpNotifySink methods ***/
 2035#define ISpNotifyTranslator_Notify(This) (This)->lpVtbl->Notify(This)
 2036/*** ISpNotifyTranslator methods ***/
 2037#define ISpNotifyTranslator_InitWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam)
 2038#define ISpNotifyTranslator_InitCallback(This,pfnCallback,wParam,lParam) (This)->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam)
 2039#define ISpNotifyTranslator_InitSpNotifyCallback(This,pSpCallback,wParam,lParam) (This)->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
 2040#define ISpNotifyTranslator_InitWin32Event(This,hEvent,fCloseHandleOnRelease) (This)->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease)
 2041#define ISpNotifyTranslator_Wait(This,dwMilliseconds) (This)->lpVtbl->Wait(This,dwMilliseconds)
 2042#define ISpNotifyTranslator_GetEventHandle(This) (This)->lpVtbl->GetEventHandle(This)
 2043#else
 2044/*** IUnknown methods ***/
 2045static inline HRESULT ISpNotifyTranslator_QueryInterface(ISpNotifyTranslator* This,REFIID riid,void **ppvObject) {
 2046    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2047}
 2048static inline ULONG ISpNotifyTranslator_AddRef(ISpNotifyTranslator* This) {
 2049    return This->lpVtbl->AddRef(This);
 2050}
 2051static inline ULONG ISpNotifyTranslator_Release(ISpNotifyTranslator* This) {
 2052    return This->lpVtbl->Release(This);
 2053}
 2054/*** ISpNotifySink methods ***/
 2055static inline HRESULT ISpNotifyTranslator_Notify(ISpNotifyTranslator* This) {
 2056    return This->lpVtbl->Notify(This);
 2057}
 2058/*** ISpNotifyTranslator methods ***/
 2059static inline HRESULT ISpNotifyTranslator_InitWindowMessage(ISpNotifyTranslator* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 2060    return This->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam);
 2061}
 2062static inline HRESULT ISpNotifyTranslator_InitCallback(ISpNotifyTranslator* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 2063    return This->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam);
 2064}
 2065static inline HRESULT ISpNotifyTranslator_InitSpNotifyCallback(ISpNotifyTranslator* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 2066    return This->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam);
 2067}
 2068static inline HRESULT ISpNotifyTranslator_InitWin32Event(ISpNotifyTranslator* This,HANDLE hEvent,WINBOOL fCloseHandleOnRelease) {
 2069    return This->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease);
 2070}
 2071static inline HRESULT ISpNotifyTranslator_Wait(ISpNotifyTranslator* This,DWORD dwMilliseconds) {
 2072    return This->lpVtbl->Wait(This,dwMilliseconds);
 2073}
 2074static inline HANDLE ISpNotifyTranslator_GetEventHandle(ISpNotifyTranslator* This) {
 2075    return This->lpVtbl->GetEventHandle(This);
 2076}
 2077#endif
 2078#endif
 2079
 2080#endif
 2081
 2082
 2083#endif  /* __ISpNotifyTranslator_INTERFACE_DEFINED__ */
 2084
 2085/*****************************************************************************
 2086 * ISpDataKey interface
 2087 */
 2088#ifndef __ISpDataKey_INTERFACE_DEFINED__
 2089#define __ISpDataKey_INTERFACE_DEFINED__
 2090
 2091DEFINE_GUID(IID_ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
 2092#if defined(__cplusplus) && !defined(CINTERFACE)
 2093MIDL_INTERFACE("14056581-e16c-11d2-bb90-00c04f8ee6c0")
 2094ISpDataKey : public IUnknown
 2095{
 2096    virtual HRESULT STDMETHODCALLTYPE SetData(
 2097        LPCWSTR pszValueName,
 2098        ULONG cbData,
 2099        const BYTE *pData) = 0;
 2100
 2101    virtual HRESULT STDMETHODCALLTYPE GetData(
 2102        LPCWSTR pszValueName,
 2103        ULONG *pcbData,
 2104        BYTE *pData) = 0;
 2105
 2106    virtual HRESULT STDMETHODCALLTYPE SetStringValue(
 2107        LPCWSTR pszValueName,
 2108        LPCWSTR pszValue) = 0;
 2109
 2110    virtual HRESULT STDMETHODCALLTYPE GetStringValue(
 2111        LPCWSTR pszValueName,
 2112        LPWSTR *ppszValue) = 0;
 2113
 2114    virtual HRESULT STDMETHODCALLTYPE SetDWORD(
 2115        LPCWSTR pszValueName,
 2116        DWORD dwValue) = 0;
 2117
 2118    virtual HRESULT STDMETHODCALLTYPE GetDWORD(
 2119        LPCWSTR pszValueName,
 2120        DWORD *pdwValue) = 0;
 2121
 2122    virtual HRESULT STDMETHODCALLTYPE OpenKey(
 2123        LPCWSTR pszSubKeyName,
 2124        ISpDataKey **ppSubKey) = 0;
 2125
 2126    virtual HRESULT STDMETHODCALLTYPE CreateKey(
 2127        LPCWSTR pszSubKey,
 2128        ISpDataKey **ppSubKey) = 0;
 2129
 2130    virtual HRESULT STDMETHODCALLTYPE DeleteKey(
 2131        LPCWSTR pszSubKey) = 0;
 2132
 2133    virtual HRESULT STDMETHODCALLTYPE DeleteValue(
 2134        LPCWSTR pszValueName) = 0;
 2135
 2136    virtual HRESULT STDMETHODCALLTYPE EnumKeys(
 2137        ULONG Index,
 2138        LPWSTR *ppszSubKeyName) = 0;
 2139
 2140    virtual HRESULT STDMETHODCALLTYPE EnumValues(
 2141        ULONG Index,
 2142        LPWSTR *ppszValueName) = 0;
 2143
 2144};
 2145#ifdef __CRT_UUID_DECL
 2146__CRT_UUID_DECL(ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
 2147#endif
 2148#else
 2149typedef struct ISpDataKeyVtbl {
 2150    BEGIN_INTERFACE
 2151
 2152    /*** IUnknown methods ***/
 2153    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2154        ISpDataKey *This,
 2155        REFIID riid,
 2156        void **ppvObject);
 2157
 2158    ULONG (STDMETHODCALLTYPE *AddRef)(
 2159        ISpDataKey *This);
 2160
 2161    ULONG (STDMETHODCALLTYPE *Release)(
 2162        ISpDataKey *This);
 2163
 2164    /*** ISpDataKey methods ***/
 2165    HRESULT (STDMETHODCALLTYPE *SetData)(
 2166        ISpDataKey *This,
 2167        LPCWSTR pszValueName,
 2168        ULONG cbData,
 2169        const BYTE *pData);
 2170
 2171    HRESULT (STDMETHODCALLTYPE *GetData)(
 2172        ISpDataKey *This,
 2173        LPCWSTR pszValueName,
 2174        ULONG *pcbData,
 2175        BYTE *pData);
 2176
 2177    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 2178        ISpDataKey *This,
 2179        LPCWSTR pszValueName,
 2180        LPCWSTR pszValue);
 2181
 2182    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 2183        ISpDataKey *This,
 2184        LPCWSTR pszValueName,
 2185        LPWSTR *ppszValue);
 2186
 2187    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 2188        ISpDataKey *This,
 2189        LPCWSTR pszValueName,
 2190        DWORD dwValue);
 2191
 2192    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 2193        ISpDataKey *This,
 2194        LPCWSTR pszValueName,
 2195        DWORD *pdwValue);
 2196
 2197    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 2198        ISpDataKey *This,
 2199        LPCWSTR pszSubKeyName,
 2200        ISpDataKey **ppSubKey);
 2201
 2202    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 2203        ISpDataKey *This,
 2204        LPCWSTR pszSubKey,
 2205        ISpDataKey **ppSubKey);
 2206
 2207    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 2208        ISpDataKey *This,
 2209        LPCWSTR pszSubKey);
 2210
 2211    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 2212        ISpDataKey *This,
 2213        LPCWSTR pszValueName);
 2214
 2215    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 2216        ISpDataKey *This,
 2217        ULONG Index,
 2218        LPWSTR *ppszSubKeyName);
 2219
 2220    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 2221        ISpDataKey *This,
 2222        ULONG Index,
 2223        LPWSTR *ppszValueName);
 2224
 2225    END_INTERFACE
 2226} ISpDataKeyVtbl;
 2227
 2228interface ISpDataKey {
 2229    CONST_VTBL ISpDataKeyVtbl* lpVtbl;
 2230};
 2231
 2232#ifdef COBJMACROS
 2233#ifndef WIDL_C_INLINE_WRAPPERS
 2234/*** IUnknown methods ***/
 2235#define ISpDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2236#define ISpDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
 2237#define ISpDataKey_Release(This) (This)->lpVtbl->Release(This)
 2238/*** ISpDataKey methods ***/
 2239#define ISpDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 2240#define ISpDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 2241#define ISpDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 2242#define ISpDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 2243#define ISpDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 2244#define ISpDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 2245#define ISpDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 2246#define ISpDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 2247#define ISpDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 2248#define ISpDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 2249#define ISpDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 2250#define ISpDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 2251#else
 2252/*** IUnknown methods ***/
 2253static inline HRESULT ISpDataKey_QueryInterface(ISpDataKey* This,REFIID riid,void **ppvObject) {
 2254    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2255}
 2256static inline ULONG ISpDataKey_AddRef(ISpDataKey* This) {
 2257    return This->lpVtbl->AddRef(This);
 2258}
 2259static inline ULONG ISpDataKey_Release(ISpDataKey* This) {
 2260    return This->lpVtbl->Release(This);
 2261}
 2262/*** ISpDataKey methods ***/
 2263static inline HRESULT ISpDataKey_SetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 2264    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 2265}
 2266static inline HRESULT ISpDataKey_GetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 2267    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 2268}
 2269static inline HRESULT ISpDataKey_SetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 2270    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 2271}
 2272static inline HRESULT ISpDataKey_GetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 2273    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 2274}
 2275static inline HRESULT ISpDataKey_SetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
 2276    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 2277}
 2278static inline HRESULT ISpDataKey_GetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 2279    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 2280}
 2281static inline HRESULT ISpDataKey_OpenKey(ISpDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 2282    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 2283}
 2284static inline HRESULT ISpDataKey_CreateKey(ISpDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 2285    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 2286}
 2287static inline HRESULT ISpDataKey_DeleteKey(ISpDataKey* This,LPCWSTR pszSubKey) {
 2288    return This->lpVtbl->DeleteKey(This,pszSubKey);
 2289}
 2290static inline HRESULT ISpDataKey_DeleteValue(ISpDataKey* This,LPCWSTR pszValueName) {
 2291    return This->lpVtbl->DeleteValue(This,pszValueName);
 2292}
 2293static inline HRESULT ISpDataKey_EnumKeys(ISpDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 2294    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 2295}
 2296static inline HRESULT ISpDataKey_EnumValues(ISpDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
 2297    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 2298}
 2299#endif
 2300#endif
 2301
 2302#endif
 2303
 2304
 2305#endif  /* __ISpDataKey_INTERFACE_DEFINED__ */
 2306
 2307/*****************************************************************************
 2308 * ISpObjectWithToken interface
 2309 */
 2310#ifndef __ISpObjectWithToken_INTERFACE_DEFINED__
 2311#define __ISpObjectWithToken_INTERFACE_DEFINED__
 2312
 2313DEFINE_GUID(IID_ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
 2314#if defined(__cplusplus) && !defined(CINTERFACE)
 2315MIDL_INTERFACE("5b559f40-e952-11d2-bb91-00c04f8ee6c0")
 2316ISpObjectWithToken : public IUnknown
 2317{
 2318    virtual HRESULT STDMETHODCALLTYPE SetObjectToken(
 2319        ISpObjectToken *pToken) = 0;
 2320
 2321    virtual HRESULT STDMETHODCALLTYPE GetObjectToken(
 2322        ISpObjectToken **ppToken) = 0;
 2323
 2324};
 2325#ifdef __CRT_UUID_DECL
 2326__CRT_UUID_DECL(ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
 2327#endif
 2328#else
 2329typedef struct ISpObjectWithTokenVtbl {
 2330    BEGIN_INTERFACE
 2331
 2332    /*** IUnknown methods ***/
 2333    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2334        ISpObjectWithToken *This,
 2335        REFIID riid,
 2336        void **ppvObject);
 2337
 2338    ULONG (STDMETHODCALLTYPE *AddRef)(
 2339        ISpObjectWithToken *This);
 2340
 2341    ULONG (STDMETHODCALLTYPE *Release)(
 2342        ISpObjectWithToken *This);
 2343
 2344    /*** ISpObjectWithToken methods ***/
 2345    HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
 2346        ISpObjectWithToken *This,
 2347        ISpObjectToken *pToken);
 2348
 2349    HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
 2350        ISpObjectWithToken *This,
 2351        ISpObjectToken **ppToken);
 2352
 2353    END_INTERFACE
 2354} ISpObjectWithTokenVtbl;
 2355
 2356interface ISpObjectWithToken {
 2357    CONST_VTBL ISpObjectWithTokenVtbl* lpVtbl;
 2358};
 2359
 2360#ifdef COBJMACROS
 2361#ifndef WIDL_C_INLINE_WRAPPERS
 2362/*** IUnknown methods ***/
 2363#define ISpObjectWithToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2364#define ISpObjectWithToken_AddRef(This) (This)->lpVtbl->AddRef(This)
 2365#define ISpObjectWithToken_Release(This) (This)->lpVtbl->Release(This)
 2366/*** ISpObjectWithToken methods ***/
 2367#define ISpObjectWithToken_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
 2368#define ISpObjectWithToken_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
 2369#else
 2370/*** IUnknown methods ***/
 2371static inline HRESULT ISpObjectWithToken_QueryInterface(ISpObjectWithToken* This,REFIID riid,void **ppvObject) {
 2372    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2373}
 2374static inline ULONG ISpObjectWithToken_AddRef(ISpObjectWithToken* This) {
 2375    return This->lpVtbl->AddRef(This);
 2376}
 2377static inline ULONG ISpObjectWithToken_Release(ISpObjectWithToken* This) {
 2378    return This->lpVtbl->Release(This);
 2379}
 2380/*** ISpObjectWithToken methods ***/
 2381static inline HRESULT ISpObjectWithToken_SetObjectToken(ISpObjectWithToken* This,ISpObjectToken *pToken) {
 2382    return This->lpVtbl->SetObjectToken(This,pToken);
 2383}
 2384static inline HRESULT ISpObjectWithToken_GetObjectToken(ISpObjectWithToken* This,ISpObjectToken **ppToken) {
 2385    return This->lpVtbl->GetObjectToken(This,ppToken);
 2386}
 2387#endif
 2388#endif
 2389
 2390#endif
 2391
 2392
 2393#endif  /* __ISpObjectWithToken_INTERFACE_DEFINED__ */
 2394
 2395/*****************************************************************************
 2396 * IEnumSpObjectTokens interface
 2397 */
 2398#ifndef __IEnumSpObjectTokens_INTERFACE_DEFINED__
 2399#define __IEnumSpObjectTokens_INTERFACE_DEFINED__
 2400
 2401DEFINE_GUID(IID_IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96);
 2402#if defined(__cplusplus) && !defined(CINTERFACE)
 2403MIDL_INTERFACE("06b64f9e-7fda-11d2-b4f2-00c04f797396")
 2404IEnumSpObjectTokens : public IUnknown
 2405{
 2406    virtual HRESULT STDMETHODCALLTYPE Next(
 2407        ULONG celt,
 2408        ISpObjectToken **pelt,
 2409        ULONG *pceltFetched) = 0;
 2410
 2411    virtual HRESULT STDMETHODCALLTYPE Skip(
 2412        ULONG celt) = 0;
 2413
 2414    virtual HRESULT STDMETHODCALLTYPE Reset(
 2415        ) = 0;
 2416
 2417    virtual HRESULT STDMETHODCALLTYPE Clone(
 2418        IEnumSpObjectTokens **ppEnum) = 0;
 2419
 2420    virtual HRESULT STDMETHODCALLTYPE Item(
 2421        ULONG Index,
 2422        ISpObjectToken **ppToken) = 0;
 2423
 2424    virtual HRESULT STDMETHODCALLTYPE GetCount(
 2425        ULONG *pCount) = 0;
 2426
 2427};
 2428#ifdef __CRT_UUID_DECL
 2429__CRT_UUID_DECL(IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96)
 2430#endif
 2431#else
 2432typedef struct IEnumSpObjectTokensVtbl {
 2433    BEGIN_INTERFACE
 2434
 2435    /*** IUnknown methods ***/
 2436    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2437        IEnumSpObjectTokens *This,
 2438        REFIID riid,
 2439        void **ppvObject);
 2440
 2441    ULONG (STDMETHODCALLTYPE *AddRef)(
 2442        IEnumSpObjectTokens *This);
 2443
 2444    ULONG (STDMETHODCALLTYPE *Release)(
 2445        IEnumSpObjectTokens *This);
 2446
 2447    /*** IEnumSpObjectTokens methods ***/
 2448    HRESULT (STDMETHODCALLTYPE *Next)(
 2449        IEnumSpObjectTokens *This,
 2450        ULONG celt,
 2451        ISpObjectToken **pelt,
 2452        ULONG *pceltFetched);
 2453
 2454    HRESULT (STDMETHODCALLTYPE *Skip)(
 2455        IEnumSpObjectTokens *This,
 2456        ULONG celt);
 2457
 2458    HRESULT (STDMETHODCALLTYPE *Reset)(
 2459        IEnumSpObjectTokens *This);
 2460
 2461    HRESULT (STDMETHODCALLTYPE *Clone)(
 2462        IEnumSpObjectTokens *This,
 2463        IEnumSpObjectTokens **ppEnum);
 2464
 2465    HRESULT (STDMETHODCALLTYPE *Item)(
 2466        IEnumSpObjectTokens *This,
 2467        ULONG Index,
 2468        ISpObjectToken **ppToken);
 2469
 2470    HRESULT (STDMETHODCALLTYPE *GetCount)(
 2471        IEnumSpObjectTokens *This,
 2472        ULONG *pCount);
 2473
 2474    END_INTERFACE
 2475} IEnumSpObjectTokensVtbl;
 2476
 2477interface IEnumSpObjectTokens {
 2478    CONST_VTBL IEnumSpObjectTokensVtbl* lpVtbl;
 2479};
 2480
 2481#ifdef COBJMACROS
 2482#ifndef WIDL_C_INLINE_WRAPPERS
 2483/*** IUnknown methods ***/
 2484#define IEnumSpObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2485#define IEnumSpObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
 2486#define IEnumSpObjectTokens_Release(This) (This)->lpVtbl->Release(This)
 2487/*** IEnumSpObjectTokens methods ***/
 2488#define IEnumSpObjectTokens_Next(This,celt,pelt,pceltFetched) (This)->lpVtbl->Next(This,celt,pelt,pceltFetched)
 2489#define IEnumSpObjectTokens_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
 2490#define IEnumSpObjectTokens_Reset(This) (This)->lpVtbl->Reset(This)
 2491#define IEnumSpObjectTokens_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
 2492#define IEnumSpObjectTokens_Item(This,Index,ppToken) (This)->lpVtbl->Item(This,Index,ppToken)
 2493#define IEnumSpObjectTokens_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
 2494#else
 2495/*** IUnknown methods ***/
 2496static inline HRESULT IEnumSpObjectTokens_QueryInterface(IEnumSpObjectTokens* This,REFIID riid,void **ppvObject) {
 2497    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2498}
 2499static inline ULONG IEnumSpObjectTokens_AddRef(IEnumSpObjectTokens* This) {
 2500    return This->lpVtbl->AddRef(This);
 2501}
 2502static inline ULONG IEnumSpObjectTokens_Release(IEnumSpObjectTokens* This) {
 2503    return This->lpVtbl->Release(This);
 2504}
 2505/*** IEnumSpObjectTokens methods ***/
 2506static inline HRESULT IEnumSpObjectTokens_Next(IEnumSpObjectTokens* This,ULONG celt,ISpObjectToken **pelt,ULONG *pceltFetched) {
 2507    return This->lpVtbl->Next(This,celt,pelt,pceltFetched);
 2508}
 2509static inline HRESULT IEnumSpObjectTokens_Skip(IEnumSpObjectTokens* This,ULONG celt) {
 2510    return This->lpVtbl->Skip(This,celt);
 2511}
 2512static inline HRESULT IEnumSpObjectTokens_Reset(IEnumSpObjectTokens* This) {
 2513    return This->lpVtbl->Reset(This);
 2514}
 2515static inline HRESULT IEnumSpObjectTokens_Clone(IEnumSpObjectTokens* This,IEnumSpObjectTokens **ppEnum) {
 2516    return This->lpVtbl->Clone(This,ppEnum);
 2517}
 2518static inline HRESULT IEnumSpObjectTokens_Item(IEnumSpObjectTokens* This,ULONG Index,ISpObjectToken **ppToken) {
 2519    return This->lpVtbl->Item(This,Index,ppToken);
 2520}
 2521static inline HRESULT IEnumSpObjectTokens_GetCount(IEnumSpObjectTokens* This,ULONG *pCount) {
 2522    return This->lpVtbl->GetCount(This,pCount);
 2523}
 2524#endif
 2525#endif
 2526
 2527#endif
 2528
 2529
 2530#endif  /* __IEnumSpObjectTokens_INTERFACE_DEFINED__ */
 2531
 2532/*****************************************************************************
 2533 * ISpRegDataKey interface
 2534 */
 2535#ifndef __ISpRegDataKey_INTERFACE_DEFINED__
 2536#define __ISpRegDataKey_INTERFACE_DEFINED__
 2537
 2538DEFINE_GUID(IID_ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b);
 2539#if defined(__cplusplus) && !defined(CINTERFACE)
 2540MIDL_INTERFACE("92a66e2b-c830-4149-83df-6fc2ba1e7a5b")
 2541ISpRegDataKey : public ISpDataKey
 2542{
 2543    virtual HRESULT STDMETHODCALLTYPE SetKey(
 2544        HKEY hkey,
 2545        WINBOOL fReadOnly) = 0;
 2546
 2547};
 2548#ifdef __CRT_UUID_DECL
 2549__CRT_UUID_DECL(ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b)
 2550#endif
 2551#else
 2552typedef struct ISpRegDataKeyVtbl {
 2553    BEGIN_INTERFACE
 2554
 2555    /*** IUnknown methods ***/
 2556    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2557        ISpRegDataKey *This,
 2558        REFIID riid,
 2559        void **ppvObject);
 2560
 2561    ULONG (STDMETHODCALLTYPE *AddRef)(
 2562        ISpRegDataKey *This);
 2563
 2564    ULONG (STDMETHODCALLTYPE *Release)(
 2565        ISpRegDataKey *This);
 2566
 2567    /*** ISpDataKey methods ***/
 2568    HRESULT (STDMETHODCALLTYPE *SetData)(
 2569        ISpRegDataKey *This,
 2570        LPCWSTR pszValueName,
 2571        ULONG cbData,
 2572        const BYTE *pData);
 2573
 2574    HRESULT (STDMETHODCALLTYPE *GetData)(
 2575        ISpRegDataKey *This,
 2576        LPCWSTR pszValueName,
 2577        ULONG *pcbData,
 2578        BYTE *pData);
 2579
 2580    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 2581        ISpRegDataKey *This,
 2582        LPCWSTR pszValueName,
 2583        LPCWSTR pszValue);
 2584
 2585    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 2586        ISpRegDataKey *This,
 2587        LPCWSTR pszValueName,
 2588        LPWSTR *ppszValue);
 2589
 2590    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 2591        ISpRegDataKey *This,
 2592        LPCWSTR pszValueName,
 2593        DWORD dwValue);
 2594
 2595    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 2596        ISpRegDataKey *This,
 2597        LPCWSTR pszValueName,
 2598        DWORD *pdwValue);
 2599
 2600    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 2601        ISpRegDataKey *This,
 2602        LPCWSTR pszSubKeyName,
 2603        ISpDataKey **ppSubKey);
 2604
 2605    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 2606        ISpRegDataKey *This,
 2607        LPCWSTR pszSubKey,
 2608        ISpDataKey **ppSubKey);
 2609
 2610    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 2611        ISpRegDataKey *This,
 2612        LPCWSTR pszSubKey);
 2613
 2614    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 2615        ISpRegDataKey *This,
 2616        LPCWSTR pszValueName);
 2617
 2618    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 2619        ISpRegDataKey *This,
 2620        ULONG Index,
 2621        LPWSTR *ppszSubKeyName);
 2622
 2623    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 2624        ISpRegDataKey *This,
 2625        ULONG Index,
 2626        LPWSTR *ppszValueName);
 2627
 2628    /*** ISpRegDataKey methods ***/
 2629    HRESULT (STDMETHODCALLTYPE *SetKey)(
 2630        ISpRegDataKey *This,
 2631        HKEY hkey,
 2632        WINBOOL fReadOnly);
 2633
 2634    END_INTERFACE
 2635} ISpRegDataKeyVtbl;
 2636
 2637interface ISpRegDataKey {
 2638    CONST_VTBL ISpRegDataKeyVtbl* lpVtbl;
 2639};
 2640
 2641#ifdef COBJMACROS
 2642#ifndef WIDL_C_INLINE_WRAPPERS
 2643/*** IUnknown methods ***/
 2644#define ISpRegDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2645#define ISpRegDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
 2646#define ISpRegDataKey_Release(This) (This)->lpVtbl->Release(This)
 2647/*** ISpDataKey methods ***/
 2648#define ISpRegDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 2649#define ISpRegDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 2650#define ISpRegDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 2651#define ISpRegDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 2652#define ISpRegDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 2653#define ISpRegDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 2654#define ISpRegDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 2655#define ISpRegDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 2656#define ISpRegDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 2657#define ISpRegDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 2658#define ISpRegDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 2659#define ISpRegDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 2660/*** ISpRegDataKey methods ***/
 2661#define ISpRegDataKey_SetKey(This,hkey,fReadOnly) (This)->lpVtbl->SetKey(This,hkey,fReadOnly)
 2662#else
 2663/*** IUnknown methods ***/
 2664static inline HRESULT ISpRegDataKey_QueryInterface(ISpRegDataKey* This,REFIID riid,void **ppvObject) {
 2665    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2666}
 2667static inline ULONG ISpRegDataKey_AddRef(ISpRegDataKey* This) {
 2668    return This->lpVtbl->AddRef(This);
 2669}
 2670static inline ULONG ISpRegDataKey_Release(ISpRegDataKey* This) {
 2671    return This->lpVtbl->Release(This);
 2672}
 2673/*** ISpDataKey methods ***/
 2674static inline HRESULT ISpRegDataKey_SetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 2675    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 2676}
 2677static inline HRESULT ISpRegDataKey_GetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 2678    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 2679}
 2680static inline HRESULT ISpRegDataKey_SetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 2681    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 2682}
 2683static inline HRESULT ISpRegDataKey_GetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 2684    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 2685}
 2686static inline HRESULT ISpRegDataKey_SetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
 2687    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 2688}
 2689static inline HRESULT ISpRegDataKey_GetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 2690    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 2691}
 2692static inline HRESULT ISpRegDataKey_OpenKey(ISpRegDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 2693    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 2694}
 2695static inline HRESULT ISpRegDataKey_CreateKey(ISpRegDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 2696    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 2697}
 2698static inline HRESULT ISpRegDataKey_DeleteKey(ISpRegDataKey* This,LPCWSTR pszSubKey) {
 2699    return This->lpVtbl->DeleteKey(This,pszSubKey);
 2700}
 2701static inline HRESULT ISpRegDataKey_DeleteValue(ISpRegDataKey* This,LPCWSTR pszValueName) {
 2702    return This->lpVtbl->DeleteValue(This,pszValueName);
 2703}
 2704static inline HRESULT ISpRegDataKey_EnumKeys(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 2705    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 2706}
 2707static inline HRESULT ISpRegDataKey_EnumValues(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
 2708    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 2709}
 2710/*** ISpRegDataKey methods ***/
 2711static inline HRESULT ISpRegDataKey_SetKey(ISpRegDataKey* This,HKEY hkey,WINBOOL fReadOnly) {
 2712    return This->lpVtbl->SetKey(This,hkey,fReadOnly);
 2713}
 2714#endif
 2715#endif
 2716
 2717#endif
 2718
 2719
 2720#endif  /* __ISpRegDataKey_INTERFACE_DEFINED__ */
 2721
 2722/*****************************************************************************
 2723 * ISpObjectTokenCategory interface
 2724 */
 2725#ifndef __ISpObjectTokenCategory_INTERFACE_DEFINED__
 2726#define __ISpObjectTokenCategory_INTERFACE_DEFINED__
 2727
 2728DEFINE_GUID(IID_ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d);
 2729#if defined(__cplusplus) && !defined(CINTERFACE)
 2730MIDL_INTERFACE("2d3d3845-39af-4850-bbf9-40b49780011d")
 2731ISpObjectTokenCategory : public ISpDataKey
 2732{
 2733    virtual HRESULT STDMETHODCALLTYPE SetId(
 2734        LPCWSTR pszCategoryId,
 2735        WINBOOL fCreateIfNotExist) = 0;
 2736
 2737    virtual HRESULT STDMETHODCALLTYPE GetId(
 2738        LPWSTR *ppszCoMemCategoryId) = 0;
 2739
 2740    virtual HRESULT STDMETHODCALLTYPE GetDataKey(
 2741        SPDATAKEYLOCATION spdkl,
 2742        ISpDataKey **ppDataKey) = 0;
 2743
 2744    virtual HRESULT STDMETHODCALLTYPE EnumTokens(
 2745        LPCWSTR pzsReqAttribs,
 2746        LPCWSTR pszOptAttribs,
 2747        IEnumSpObjectTokens **ppEnum) = 0;
 2748
 2749    virtual HRESULT STDMETHODCALLTYPE SetDefaultTokenId(
 2750        LPCWSTR pszTokenId) = 0;
 2751
 2752    virtual HRESULT STDMETHODCALLTYPE GetDefaultTokenId(
 2753        LPWSTR *ppszCoMemTokenId) = 0;
 2754
 2755};
 2756#ifdef __CRT_UUID_DECL
 2757__CRT_UUID_DECL(ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d)
 2758#endif
 2759#else
 2760typedef struct ISpObjectTokenCategoryVtbl {
 2761    BEGIN_INTERFACE
 2762
 2763    /*** IUnknown methods ***/
 2764    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2765        ISpObjectTokenCategory *This,
 2766        REFIID riid,
 2767        void **ppvObject);
 2768
 2769    ULONG (STDMETHODCALLTYPE *AddRef)(
 2770        ISpObjectTokenCategory *This);
 2771
 2772    ULONG (STDMETHODCALLTYPE *Release)(
 2773        ISpObjectTokenCategory *This);
 2774
 2775    /*** ISpDataKey methods ***/
 2776    HRESULT (STDMETHODCALLTYPE *SetData)(
 2777        ISpObjectTokenCategory *This,
 2778        LPCWSTR pszValueName,
 2779        ULONG cbData,
 2780        const BYTE *pData);
 2781
 2782    HRESULT (STDMETHODCALLTYPE *GetData)(
 2783        ISpObjectTokenCategory *This,
 2784        LPCWSTR pszValueName,
 2785        ULONG *pcbData,
 2786        BYTE *pData);
 2787
 2788    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 2789        ISpObjectTokenCategory *This,
 2790        LPCWSTR pszValueName,
 2791        LPCWSTR pszValue);
 2792
 2793    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 2794        ISpObjectTokenCategory *This,
 2795        LPCWSTR pszValueName,
 2796        LPWSTR *ppszValue);
 2797
 2798    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 2799        ISpObjectTokenCategory *This,
 2800        LPCWSTR pszValueName,
 2801        DWORD dwValue);
 2802
 2803    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 2804        ISpObjectTokenCategory *This,
 2805        LPCWSTR pszValueName,
 2806        DWORD *pdwValue);
 2807
 2808    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 2809        ISpObjectTokenCategory *This,
 2810        LPCWSTR pszSubKeyName,
 2811        ISpDataKey **ppSubKey);
 2812
 2813    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 2814        ISpObjectTokenCategory *This,
 2815        LPCWSTR pszSubKey,
 2816        ISpDataKey **ppSubKey);
 2817
 2818    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 2819        ISpObjectTokenCategory *This,
 2820        LPCWSTR pszSubKey);
 2821
 2822    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 2823        ISpObjectTokenCategory *This,
 2824        LPCWSTR pszValueName);
 2825
 2826    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 2827        ISpObjectTokenCategory *This,
 2828        ULONG Index,
 2829        LPWSTR *ppszSubKeyName);
 2830
 2831    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 2832        ISpObjectTokenCategory *This,
 2833        ULONG Index,
 2834        LPWSTR *ppszValueName);
 2835
 2836    /*** ISpObjectTokenCategory methods ***/
 2837    HRESULT (STDMETHODCALLTYPE *SetId)(
 2838        ISpObjectTokenCategory *This,
 2839        LPCWSTR pszCategoryId,
 2840        WINBOOL fCreateIfNotExist);
 2841
 2842    HRESULT (STDMETHODCALLTYPE *GetId)(
 2843        ISpObjectTokenCategory *This,
 2844        LPWSTR *ppszCoMemCategoryId);
 2845
 2846    HRESULT (STDMETHODCALLTYPE *GetDataKey)(
 2847        ISpObjectTokenCategory *This,
 2848        SPDATAKEYLOCATION spdkl,
 2849        ISpDataKey **ppDataKey);
 2850
 2851    HRESULT (STDMETHODCALLTYPE *EnumTokens)(
 2852        ISpObjectTokenCategory *This,
 2853        LPCWSTR pzsReqAttribs,
 2854        LPCWSTR pszOptAttribs,
 2855        IEnumSpObjectTokens **ppEnum);
 2856
 2857    HRESULT (STDMETHODCALLTYPE *SetDefaultTokenId)(
 2858        ISpObjectTokenCategory *This,
 2859        LPCWSTR pszTokenId);
 2860
 2861    HRESULT (STDMETHODCALLTYPE *GetDefaultTokenId)(
 2862        ISpObjectTokenCategory *This,
 2863        LPWSTR *ppszCoMemTokenId);
 2864
 2865    END_INTERFACE
 2866} ISpObjectTokenCategoryVtbl;
 2867
 2868interface ISpObjectTokenCategory {
 2869    CONST_VTBL ISpObjectTokenCategoryVtbl* lpVtbl;
 2870};
 2871
 2872#ifdef COBJMACROS
 2873#ifndef WIDL_C_INLINE_WRAPPERS
 2874/*** IUnknown methods ***/
 2875#define ISpObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2876#define ISpObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
 2877#define ISpObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
 2878/*** ISpDataKey methods ***/
 2879#define ISpObjectTokenCategory_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 2880#define ISpObjectTokenCategory_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 2881#define ISpObjectTokenCategory_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 2882#define ISpObjectTokenCategory_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 2883#define ISpObjectTokenCategory_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 2884#define ISpObjectTokenCategory_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 2885#define ISpObjectTokenCategory_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 2886#define ISpObjectTokenCategory_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 2887#define ISpObjectTokenCategory_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 2888#define ISpObjectTokenCategory_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 2889#define ISpObjectTokenCategory_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 2890#define ISpObjectTokenCategory_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 2891/*** ISpObjectTokenCategory methods ***/
 2892#define ISpObjectTokenCategory_SetId(This,pszCategoryId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist)
 2893#define ISpObjectTokenCategory_GetId(This,ppszCoMemCategoryId) (This)->lpVtbl->GetId(This,ppszCoMemCategoryId)
 2894#define ISpObjectTokenCategory_GetDataKey(This,spdkl,ppDataKey) (This)->lpVtbl->GetDataKey(This,spdkl,ppDataKey)
 2895#define ISpObjectTokenCategory_EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum) (This)->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
 2896#define ISpObjectTokenCategory_SetDefaultTokenId(This,pszTokenId) (This)->lpVtbl->SetDefaultTokenId(This,pszTokenId)
 2897#define ISpObjectTokenCategory_GetDefaultTokenId(This,ppszCoMemTokenId) (This)->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId)
 2898#else
 2899/*** IUnknown methods ***/
 2900static inline HRESULT ISpObjectTokenCategory_QueryInterface(ISpObjectTokenCategory* This,REFIID riid,void **ppvObject) {
 2901    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2902}
 2903static inline ULONG ISpObjectTokenCategory_AddRef(ISpObjectTokenCategory* This) {
 2904    return This->lpVtbl->AddRef(This);
 2905}
 2906static inline ULONG ISpObjectTokenCategory_Release(ISpObjectTokenCategory* This) {
 2907    return This->lpVtbl->Release(This);
 2908}
 2909/*** ISpDataKey methods ***/
 2910static inline HRESULT ISpObjectTokenCategory_SetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 2911    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 2912}
 2913static inline HRESULT ISpObjectTokenCategory_GetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 2914    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 2915}
 2916static inline HRESULT ISpObjectTokenCategory_SetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 2917    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 2918}
 2919static inline HRESULT ISpObjectTokenCategory_GetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 2920    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 2921}
 2922static inline HRESULT ISpObjectTokenCategory_SetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD dwValue) {
 2923    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 2924}
 2925static inline HRESULT ISpObjectTokenCategory_GetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 2926    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 2927}
 2928static inline HRESULT ISpObjectTokenCategory_OpenKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 2929    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 2930}
 2931static inline HRESULT ISpObjectTokenCategory_CreateKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 2932    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 2933}
 2934static inline HRESULT ISpObjectTokenCategory_DeleteKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey) {
 2935    return This->lpVtbl->DeleteKey(This,pszSubKey);
 2936}
 2937static inline HRESULT ISpObjectTokenCategory_DeleteValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName) {
 2938    return This->lpVtbl->DeleteValue(This,pszValueName);
 2939}
 2940static inline HRESULT ISpObjectTokenCategory_EnumKeys(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 2941    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 2942}
 2943static inline HRESULT ISpObjectTokenCategory_EnumValues(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszValueName) {
 2944    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 2945}
 2946/*** ISpObjectTokenCategory methods ***/
 2947static inline HRESULT ISpObjectTokenCategory_SetId(ISpObjectTokenCategory* This,LPCWSTR pszCategoryId,WINBOOL fCreateIfNotExist) {
 2948    return This->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist);
 2949}
 2950static inline HRESULT ISpObjectTokenCategory_GetId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemCategoryId) {
 2951    return This->lpVtbl->GetId(This,ppszCoMemCategoryId);
 2952}
 2953static inline HRESULT ISpObjectTokenCategory_GetDataKey(ISpObjectTokenCategory* This,SPDATAKEYLOCATION spdkl,ISpDataKey **ppDataKey) {
 2954    return This->lpVtbl->GetDataKey(This,spdkl,ppDataKey);
 2955}
 2956static inline HRESULT ISpObjectTokenCategory_EnumTokens(ISpObjectTokenCategory* This,LPCWSTR pzsReqAttribs,LPCWSTR pszOptAttribs,IEnumSpObjectTokens **ppEnum) {
 2957    return This->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum);
 2958}
 2959static inline HRESULT ISpObjectTokenCategory_SetDefaultTokenId(ISpObjectTokenCategory* This,LPCWSTR pszTokenId) {
 2960    return This->lpVtbl->SetDefaultTokenId(This,pszTokenId);
 2961}
 2962static inline HRESULT ISpObjectTokenCategory_GetDefaultTokenId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemTokenId) {
 2963    return This->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId);
 2964}
 2965#endif
 2966#endif
 2967
 2968#endif
 2969
 2970
 2971#endif  /* __ISpObjectTokenCategory_INTERFACE_DEFINED__ */
 2972
 2973/*****************************************************************************
 2974 * ISpObjectToken interface
 2975 */
 2976#ifndef __ISpObjectToken_INTERFACE_DEFINED__
 2977#define __ISpObjectToken_INTERFACE_DEFINED__
 2978
 2979DEFINE_GUID(IID_ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
 2980#if defined(__cplusplus) && !defined(CINTERFACE)
 2981MIDL_INTERFACE("14056589-e16c-11d2-bb90-00c04f8ee6c0")
 2982ISpObjectToken : public ISpDataKey
 2983{
 2984    virtual HRESULT STDMETHODCALLTYPE SetId(
 2985        LPCWSTR pszCategoryId,
 2986        LPCWSTR pszTokenId,
 2987        WINBOOL fCreateIfNotExist) = 0;
 2988
 2989    virtual HRESULT STDMETHODCALLTYPE GetId(
 2990        LPWSTR *ppszCoMemTokenId) = 0;
 2991
 2992    virtual HRESULT STDMETHODCALLTYPE GetCategory(
 2993        ISpObjectTokenCategory **ppTokenCategory) = 0;
 2994
 2995    virtual HRESULT STDMETHODCALLTYPE CreateInstance(
 2996        IUnknown *pUnkOuter,
 2997        DWORD dwClsContext,
 2998        REFIID riid,
 2999        void **ppvObject) = 0;
 3000
 3001    virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
 3002        REFCLSID clsidCaller,
 3003        LPCWSTR pszValueName,
 3004        LPCWSTR pszFileNameSpecifier,
 3005        ULONG nFolder,
 3006        LPWSTR *ppszFilePath) = 0;
 3007
 3008    virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
 3009        REFCLSID clsidCaller,
 3010        LPCWSTR pszKeyName,
 3011        WINBOOL fDeleteFile) = 0;
 3012
 3013    virtual HRESULT STDMETHODCALLTYPE Remove(
 3014        const CLSID *pclsidCaller) = 0;
 3015
 3016    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
 3017        LPCWSTR pszTypeOfUI,
 3018        void *pvExtraData,
 3019        ULONG cbExtraData,
 3020        IUnknown *punkObject,
 3021        WINBOOL *pfSupported) = 0;
 3022
 3023    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
 3024        HWND hwndParent,
 3025        LPCWSTR pszTitle,
 3026        LPCWSTR pszTypeOfUI,
 3027        void *pvExtraData,
 3028        ULONG cbExtraData,
 3029        IUnknown *punkObject) = 0;
 3030
 3031    virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
 3032        LPCWSTR pszAttributes,
 3033        WINBOOL *pfMatches) = 0;
 3034
 3035};
 3036#ifdef __CRT_UUID_DECL
 3037__CRT_UUID_DECL(ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
 3038#endif
 3039#else
 3040typedef struct ISpObjectTokenVtbl {
 3041    BEGIN_INTERFACE
 3042
 3043    /*** IUnknown methods ***/
 3044    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3045        ISpObjectToken *This,
 3046        REFIID riid,
 3047        void **ppvObject);
 3048
 3049    ULONG (STDMETHODCALLTYPE *AddRef)(
 3050        ISpObjectToken *This);
 3051
 3052    ULONG (STDMETHODCALLTYPE *Release)(
 3053        ISpObjectToken *This);
 3054
 3055    /*** ISpDataKey methods ***/
 3056    HRESULT (STDMETHODCALLTYPE *SetData)(
 3057        ISpObjectToken *This,
 3058        LPCWSTR pszValueName,
 3059        ULONG cbData,
 3060        const BYTE *pData);
 3061
 3062    HRESULT (STDMETHODCALLTYPE *GetData)(
 3063        ISpObjectToken *This,
 3064        LPCWSTR pszValueName,
 3065        ULONG *pcbData,
 3066        BYTE *pData);
 3067
 3068    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 3069        ISpObjectToken *This,
 3070        LPCWSTR pszValueName,
 3071        LPCWSTR pszValue);
 3072
 3073    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 3074        ISpObjectToken *This,
 3075        LPCWSTR pszValueName,
 3076        LPWSTR *ppszValue);
 3077
 3078    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 3079        ISpObjectToken *This,
 3080        LPCWSTR pszValueName,
 3081        DWORD dwValue);
 3082
 3083    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 3084        ISpObjectToken *This,
 3085        LPCWSTR pszValueName,
 3086        DWORD *pdwValue);
 3087
 3088    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 3089        ISpObjectToken *This,
 3090        LPCWSTR pszSubKeyName,
 3091        ISpDataKey **ppSubKey);
 3092
 3093    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 3094        ISpObjectToken *This,
 3095        LPCWSTR pszSubKey,
 3096        ISpDataKey **ppSubKey);
 3097
 3098    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 3099        ISpObjectToken *This,
 3100        LPCWSTR pszSubKey);
 3101
 3102    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 3103        ISpObjectToken *This,
 3104        LPCWSTR pszValueName);
 3105
 3106    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 3107        ISpObjectToken *This,
 3108        ULONG Index,
 3109        LPWSTR *ppszSubKeyName);
 3110
 3111    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 3112        ISpObjectToken *This,
 3113        ULONG Index,
 3114        LPWSTR *ppszValueName);
 3115
 3116    /*** ISpObjectToken methods ***/
 3117    HRESULT (STDMETHODCALLTYPE *SetId)(
 3118        ISpObjectToken *This,
 3119        LPCWSTR pszCategoryId,
 3120        LPCWSTR pszTokenId,
 3121        WINBOOL fCreateIfNotExist);
 3122
 3123    HRESULT (STDMETHODCALLTYPE *GetId)(
 3124        ISpObjectToken *This,
 3125        LPWSTR *ppszCoMemTokenId);
 3126
 3127    HRESULT (STDMETHODCALLTYPE *GetCategory)(
 3128        ISpObjectToken *This,
 3129        ISpObjectTokenCategory **ppTokenCategory);
 3130
 3131    HRESULT (STDMETHODCALLTYPE *CreateInstance)(
 3132        ISpObjectToken *This,
 3133        IUnknown *pUnkOuter,
 3134        DWORD dwClsContext,
 3135        REFIID riid,
 3136        void **ppvObject);
 3137
 3138    HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
 3139        ISpObjectToken *This,
 3140        REFCLSID clsidCaller,
 3141        LPCWSTR pszValueName,
 3142        LPCWSTR pszFileNameSpecifier,
 3143        ULONG nFolder,
 3144        LPWSTR *ppszFilePath);
 3145
 3146    HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
 3147        ISpObjectToken *This,
 3148        REFCLSID clsidCaller,
 3149        LPCWSTR pszKeyName,
 3150        WINBOOL fDeleteFile);
 3151
 3152    HRESULT (STDMETHODCALLTYPE *Remove)(
 3153        ISpObjectToken *This,
 3154        const CLSID *pclsidCaller);
 3155
 3156    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
 3157        ISpObjectToken *This,
 3158        LPCWSTR pszTypeOfUI,
 3159        void *pvExtraData,
 3160        ULONG cbExtraData,
 3161        IUnknown *punkObject,
 3162        WINBOOL *pfSupported);
 3163
 3164    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
 3165        ISpObjectToken *This,
 3166        HWND hwndParent,
 3167        LPCWSTR pszTitle,
 3168        LPCWSTR pszTypeOfUI,
 3169        void *pvExtraData,
 3170        ULONG cbExtraData,
 3171        IUnknown *punkObject);
 3172
 3173    HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
 3174        ISpObjectToken *This,
 3175        LPCWSTR pszAttributes,
 3176        WINBOOL *pfMatches);
 3177
 3178    END_INTERFACE
 3179} ISpObjectTokenVtbl;
 3180
 3181interface ISpObjectToken {
 3182    CONST_VTBL ISpObjectTokenVtbl* lpVtbl;
 3183};
 3184
 3185#ifdef COBJMACROS
 3186#ifndef WIDL_C_INLINE_WRAPPERS
 3187/*** IUnknown methods ***/
 3188#define ISpObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3189#define ISpObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
 3190#define ISpObjectToken_Release(This) (This)->lpVtbl->Release(This)
 3191/*** ISpDataKey methods ***/
 3192#define ISpObjectToken_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 3193#define ISpObjectToken_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 3194#define ISpObjectToken_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 3195#define ISpObjectToken_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 3196#define ISpObjectToken_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 3197#define ISpObjectToken_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 3198#define ISpObjectToken_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 3199#define ISpObjectToken_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 3200#define ISpObjectToken_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 3201#define ISpObjectToken_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 3202#define ISpObjectToken_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 3203#define ISpObjectToken_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 3204/*** ISpObjectToken methods ***/
 3205#define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
 3206#define ISpObjectToken_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
 3207#define ISpObjectToken_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
 3208#define ISpObjectToken_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
 3209#define ISpObjectToken_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
 3210#define ISpObjectToken_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
 3211#define ISpObjectToken_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
 3212#define ISpObjectToken_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
 3213#define ISpObjectToken_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
 3214#define ISpObjectToken_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
 3215#else
 3216/*** IUnknown methods ***/
 3217static inline HRESULT ISpObjectToken_QueryInterface(ISpObjectToken* This,REFIID riid,void **ppvObject) {
 3218    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3219}
 3220static inline ULONG ISpObjectToken_AddRef(ISpObjectToken* This) {
 3221    return This->lpVtbl->AddRef(This);
 3222}
 3223static inline ULONG ISpObjectToken_Release(ISpObjectToken* This) {
 3224    return This->lpVtbl->Release(This);
 3225}
 3226/*** ISpDataKey methods ***/
 3227static inline HRESULT ISpObjectToken_SetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 3228    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 3229}
 3230static inline HRESULT ISpObjectToken_GetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 3231    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 3232}
 3233static inline HRESULT ISpObjectToken_SetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 3234    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 3235}
 3236static inline HRESULT ISpObjectToken_GetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 3237    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 3238}
 3239static inline HRESULT ISpObjectToken_SetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD dwValue) {
 3240    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 3241}
 3242static inline HRESULT ISpObjectToken_GetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 3243    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 3244}
 3245static inline HRESULT ISpObjectToken_OpenKey(ISpObjectToken* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 3246    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 3247}
 3248static inline HRESULT ISpObjectToken_CreateKey(ISpObjectToken* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 3249    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 3250}
 3251static inline HRESULT ISpObjectToken_DeleteKey(ISpObjectToken* This,LPCWSTR pszSubKey) {
 3252    return This->lpVtbl->DeleteKey(This,pszSubKey);
 3253}
 3254static inline HRESULT ISpObjectToken_DeleteValue(ISpObjectToken* This,LPCWSTR pszValueName) {
 3255    return This->lpVtbl->DeleteValue(This,pszValueName);
 3256}
 3257static inline HRESULT ISpObjectToken_EnumKeys(ISpObjectToken* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 3258    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 3259}
 3260static inline HRESULT ISpObjectToken_EnumValues(ISpObjectToken* This,ULONG Index,LPWSTR *ppszValueName) {
 3261    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 3262}
 3263/*** ISpObjectToken methods ***/
 3264static inline HRESULT ISpObjectToken_SetId(ISpObjectToken* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
 3265    return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
 3266}
 3267static inline HRESULT ISpObjectToken_GetId(ISpObjectToken* This,LPWSTR *ppszCoMemTokenId) {
 3268    return This->lpVtbl->GetId(This,ppszCoMemTokenId);
 3269}
 3270static inline HRESULT ISpObjectToken_GetCategory(ISpObjectToken* This,ISpObjectTokenCategory **ppTokenCategory) {
 3271    return This->lpVtbl->GetCategory(This,ppTokenCategory);
 3272}
 3273static inline HRESULT ISpObjectToken_CreateInstance(ISpObjectToken* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
 3274    return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
 3275}
 3276static inline HRESULT ISpObjectToken_GetStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
 3277    return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
 3278}
 3279static inline HRESULT ISpObjectToken_RemoveStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
 3280    return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
 3281}
 3282static inline HRESULT ISpObjectToken_Remove(ISpObjectToken* This,const CLSID *pclsidCaller) {
 3283    return This->lpVtbl->Remove(This,pclsidCaller);
 3284}
 3285static inline HRESULT ISpObjectToken_IsUISupported(ISpObjectToken* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
 3286    return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
 3287}
 3288static inline HRESULT ISpObjectToken_DisplayUI(ISpObjectToken* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
 3289    return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
 3290}
 3291static inline HRESULT ISpObjectToken_MatchesAttributes(ISpObjectToken* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
 3292    return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
 3293}
 3294#endif
 3295#endif
 3296
 3297#endif
 3298
 3299
 3300#endif  /* __ISpObjectToken_INTERFACE_DEFINED__ */
 3301
 3302/*****************************************************************************
 3303 * ISpObjectTokenInit interface
 3304 */
 3305#ifndef __ISpObjectTokenInit_INTERFACE_DEFINED__
 3306#define __ISpObjectTokenInit_INTERFACE_DEFINED__
 3307
 3308DEFINE_GUID(IID_ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51);
 3309#if defined(__cplusplus) && !defined(CINTERFACE)
 3310MIDL_INTERFACE("b8aab0cf-346f-49d8-9499-c8b03f161d51")
 3311ISpObjectTokenInit : public ISpObjectToken
 3312{
 3313    virtual HRESULT STDMETHODCALLTYPE InitFromDataKey(
 3314        LPCWSTR pszCategoryId,
 3315        LPCWSTR pszTokenId,
 3316        ISpDataKey *pDataKey) = 0;
 3317
 3318};
 3319#ifdef __CRT_UUID_DECL
 3320__CRT_UUID_DECL(ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51)
 3321#endif
 3322#else
 3323typedef struct ISpObjectTokenInitVtbl {
 3324    BEGIN_INTERFACE
 3325
 3326    /*** IUnknown methods ***/
 3327    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3328        ISpObjectTokenInit *This,
 3329        REFIID riid,
 3330        void **ppvObject);
 3331
 3332    ULONG (STDMETHODCALLTYPE *AddRef)(
 3333        ISpObjectTokenInit *This);
 3334
 3335    ULONG (STDMETHODCALLTYPE *Release)(
 3336        ISpObjectTokenInit *This);
 3337
 3338    /*** ISpDataKey methods ***/
 3339    HRESULT (STDMETHODCALLTYPE *SetData)(
 3340        ISpObjectTokenInit *This,
 3341        LPCWSTR pszValueName,
 3342        ULONG cbData,
 3343        const BYTE *pData);
 3344
 3345    HRESULT (STDMETHODCALLTYPE *GetData)(
 3346        ISpObjectTokenInit *This,
 3347        LPCWSTR pszValueName,
 3348        ULONG *pcbData,
 3349        BYTE *pData);
 3350
 3351    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 3352        ISpObjectTokenInit *This,
 3353        LPCWSTR pszValueName,
 3354        LPCWSTR pszValue);
 3355
 3356    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 3357        ISpObjectTokenInit *This,
 3358        LPCWSTR pszValueName,
 3359        LPWSTR *ppszValue);
 3360
 3361    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 3362        ISpObjectTokenInit *This,
 3363        LPCWSTR pszValueName,
 3364        DWORD dwValue);
 3365
 3366    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 3367        ISpObjectTokenInit *This,
 3368        LPCWSTR pszValueName,
 3369        DWORD *pdwValue);
 3370
 3371    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 3372        ISpObjectTokenInit *This,
 3373        LPCWSTR pszSubKeyName,
 3374        ISpDataKey **ppSubKey);
 3375
 3376    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 3377        ISpObjectTokenInit *This,
 3378        LPCWSTR pszSubKey,
 3379        ISpDataKey **ppSubKey);
 3380
 3381    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 3382        ISpObjectTokenInit *This,
 3383        LPCWSTR pszSubKey);
 3384
 3385    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 3386        ISpObjectTokenInit *This,
 3387        LPCWSTR pszValueName);
 3388
 3389    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 3390        ISpObjectTokenInit *This,
 3391        ULONG Index,
 3392        LPWSTR *ppszSubKeyName);
 3393
 3394    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 3395        ISpObjectTokenInit *This,
 3396        ULONG Index,
 3397        LPWSTR *ppszValueName);
 3398
 3399    /*** ISpObjectToken methods ***/
 3400    HRESULT (STDMETHODCALLTYPE *SetId)(
 3401        ISpObjectTokenInit *This,
 3402        LPCWSTR pszCategoryId,
 3403        LPCWSTR pszTokenId,
 3404        WINBOOL fCreateIfNotExist);
 3405
 3406    HRESULT (STDMETHODCALLTYPE *GetId)(
 3407        ISpObjectTokenInit *This,
 3408        LPWSTR *ppszCoMemTokenId);
 3409
 3410    HRESULT (STDMETHODCALLTYPE *GetCategory)(
 3411        ISpObjectTokenInit *This,
 3412        ISpObjectTokenCategory **ppTokenCategory);
 3413
 3414    HRESULT (STDMETHODCALLTYPE *CreateInstance)(
 3415        ISpObjectTokenInit *This,
 3416        IUnknown *pUnkOuter,
 3417        DWORD dwClsContext,
 3418        REFIID riid,
 3419        void **ppvObject);
 3420
 3421    HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
 3422        ISpObjectTokenInit *This,
 3423        REFCLSID clsidCaller,
 3424        LPCWSTR pszValueName,
 3425        LPCWSTR pszFileNameSpecifier,
 3426        ULONG nFolder,
 3427        LPWSTR *ppszFilePath);
 3428
 3429    HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
 3430        ISpObjectTokenInit *This,
 3431        REFCLSID clsidCaller,
 3432        LPCWSTR pszKeyName,
 3433        WINBOOL fDeleteFile);
 3434
 3435    HRESULT (STDMETHODCALLTYPE *Remove)(
 3436        ISpObjectTokenInit *This,
 3437        const CLSID *pclsidCaller);
 3438
 3439    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
 3440        ISpObjectTokenInit *This,
 3441        LPCWSTR pszTypeOfUI,
 3442        void *pvExtraData,
 3443        ULONG cbExtraData,
 3444        IUnknown *punkObject,
 3445        WINBOOL *pfSupported);
 3446
 3447    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
 3448        ISpObjectTokenInit *This,
 3449        HWND hwndParent,
 3450        LPCWSTR pszTitle,
 3451        LPCWSTR pszTypeOfUI,
 3452        void *pvExtraData,
 3453        ULONG cbExtraData,
 3454        IUnknown *punkObject);
 3455
 3456    HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
 3457        ISpObjectTokenInit *This,
 3458        LPCWSTR pszAttributes,
 3459        WINBOOL *pfMatches);
 3460
 3461    /*** ISpObjectTokenInit methods ***/
 3462    HRESULT (STDMETHODCALLTYPE *InitFromDataKey)(
 3463        ISpObjectTokenInit *This,
 3464        LPCWSTR pszCategoryId,
 3465        LPCWSTR pszTokenId,
 3466        ISpDataKey *pDataKey);
 3467
 3468    END_INTERFACE
 3469} ISpObjectTokenInitVtbl;
 3470
 3471interface ISpObjectTokenInit {
 3472    CONST_VTBL ISpObjectTokenInitVtbl* lpVtbl;
 3473};
 3474
 3475#ifdef COBJMACROS
 3476#ifndef WIDL_C_INLINE_WRAPPERS
 3477/*** IUnknown methods ***/
 3478#define ISpObjectTokenInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3479#define ISpObjectTokenInit_AddRef(This) (This)->lpVtbl->AddRef(This)
 3480#define ISpObjectTokenInit_Release(This) (This)->lpVtbl->Release(This)
 3481/*** ISpDataKey methods ***/
 3482#define ISpObjectTokenInit_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 3483#define ISpObjectTokenInit_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 3484#define ISpObjectTokenInit_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 3485#define ISpObjectTokenInit_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 3486#define ISpObjectTokenInit_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 3487#define ISpObjectTokenInit_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 3488#define ISpObjectTokenInit_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 3489#define ISpObjectTokenInit_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 3490#define ISpObjectTokenInit_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 3491#define ISpObjectTokenInit_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 3492#define ISpObjectTokenInit_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 3493#define ISpObjectTokenInit_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 3494/*** ISpObjectToken methods ***/
 3495#define ISpObjectTokenInit_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
 3496#define ISpObjectTokenInit_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
 3497#define ISpObjectTokenInit_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
 3498#define ISpObjectTokenInit_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
 3499#define ISpObjectTokenInit_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
 3500#define ISpObjectTokenInit_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
 3501#define ISpObjectTokenInit_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
 3502#define ISpObjectTokenInit_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
 3503#define ISpObjectTokenInit_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
 3504#define ISpObjectTokenInit_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
 3505/*** ISpObjectTokenInit methods ***/
 3506#define ISpObjectTokenInit_InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey) (This)->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
 3507#else
 3508/*** IUnknown methods ***/
 3509static inline HRESULT ISpObjectTokenInit_QueryInterface(ISpObjectTokenInit* This,REFIID riid,void **ppvObject) {
 3510    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3511}
 3512static inline ULONG ISpObjectTokenInit_AddRef(ISpObjectTokenInit* This) {
 3513    return This->lpVtbl->AddRef(This);
 3514}
 3515static inline ULONG ISpObjectTokenInit_Release(ISpObjectTokenInit* This) {
 3516    return This->lpVtbl->Release(This);
 3517}
 3518/*** ISpDataKey methods ***/
 3519static inline HRESULT ISpObjectTokenInit_SetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 3520    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 3521}
 3522static inline HRESULT ISpObjectTokenInit_GetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 3523    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 3524}
 3525static inline HRESULT ISpObjectTokenInit_SetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 3526    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 3527}
 3528static inline HRESULT ISpObjectTokenInit_GetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 3529    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 3530}
 3531static inline HRESULT ISpObjectTokenInit_SetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD dwValue) {
 3532    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 3533}
 3534static inline HRESULT ISpObjectTokenInit_GetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 3535    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 3536}
 3537static inline HRESULT ISpObjectTokenInit_OpenKey(ISpObjectTokenInit* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 3538    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 3539}
 3540static inline HRESULT ISpObjectTokenInit_CreateKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 3541    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 3542}
 3543static inline HRESULT ISpObjectTokenInit_DeleteKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey) {
 3544    return This->lpVtbl->DeleteKey(This,pszSubKey);
 3545}
 3546static inline HRESULT ISpObjectTokenInit_DeleteValue(ISpObjectTokenInit* This,LPCWSTR pszValueName) {
 3547    return This->lpVtbl->DeleteValue(This,pszValueName);
 3548}
 3549static inline HRESULT ISpObjectTokenInit_EnumKeys(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 3550    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 3551}
 3552static inline HRESULT ISpObjectTokenInit_EnumValues(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszValueName) {
 3553    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 3554}
 3555/*** ISpObjectToken methods ***/
 3556static inline HRESULT ISpObjectTokenInit_SetId(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
 3557    return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
 3558}
 3559static inline HRESULT ISpObjectTokenInit_GetId(ISpObjectTokenInit* This,LPWSTR *ppszCoMemTokenId) {
 3560    return This->lpVtbl->GetId(This,ppszCoMemTokenId);
 3561}
 3562static inline HRESULT ISpObjectTokenInit_GetCategory(ISpObjectTokenInit* This,ISpObjectTokenCategory **ppTokenCategory) {
 3563    return This->lpVtbl->GetCategory(This,ppTokenCategory);
 3564}
 3565static inline HRESULT ISpObjectTokenInit_CreateInstance(ISpObjectTokenInit* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
 3566    return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
 3567}
 3568static inline HRESULT ISpObjectTokenInit_GetStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
 3569    return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
 3570}
 3571static inline HRESULT ISpObjectTokenInit_RemoveStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
 3572    return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
 3573}
 3574static inline HRESULT ISpObjectTokenInit_Remove(ISpObjectTokenInit* This,const CLSID *pclsidCaller) {
 3575    return This->lpVtbl->Remove(This,pclsidCaller);
 3576}
 3577static inline HRESULT ISpObjectTokenInit_IsUISupported(ISpObjectTokenInit* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
 3578    return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
 3579}
 3580static inline HRESULT ISpObjectTokenInit_DisplayUI(ISpObjectTokenInit* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
 3581    return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
 3582}
 3583static inline HRESULT ISpObjectTokenInit_MatchesAttributes(ISpObjectTokenInit* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
 3584    return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
 3585}
 3586/*** ISpObjectTokenInit methods ***/
 3587static inline HRESULT ISpObjectTokenInit_InitFromDataKey(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,ISpDataKey *pDataKey) {
 3588    return This->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey);
 3589}
 3590#endif
 3591#endif
 3592
 3593#endif
 3594
 3595
 3596#endif  /* __ISpObjectTokenInit_INTERFACE_DEFINED__ */
 3597
 3598/*****************************************************************************
 3599 * ISpResourceManager interface
 3600 */
 3601#ifndef __ISpResourceManager_INTERFACE_DEFINED__
 3602#define __ISpResourceManager_INTERFACE_DEFINED__
 3603
 3604DEFINE_GUID(IID_ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd);
 3605#if defined(__cplusplus) && !defined(CINTERFACE)
 3606MIDL_INTERFACE("93384e18-5014-43d5-adbb-a78e055926bd")
 3607ISpResourceManager : public IServiceProvider
 3608{
 3609    virtual HRESULT STDMETHODCALLTYPE SetObject(
 3610        REFGUID guidServiceId,
 3611        IUnknown *pUnkObject) = 0;
 3612
 3613    virtual HRESULT STDMETHODCALLTYPE GetObject(
 3614        REFGUID guidServiceId,
 3615        REFCLSID ObjectCLSID,
 3616        REFIID ObjectIID,
 3617        WINBOOL fReleaseWhenLastExternalRefReleased,
 3618        void **ppObject) = 0;
 3619
 3620};
 3621#ifdef __CRT_UUID_DECL
 3622__CRT_UUID_DECL(ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd)
 3623#endif
 3624#else
 3625typedef struct ISpResourceManagerVtbl {
 3626    BEGIN_INTERFACE
 3627
 3628    /*** IUnknown methods ***/
 3629    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3630        ISpResourceManager *This,
 3631        REFIID riid,
 3632        void **ppvObject);
 3633
 3634    ULONG (STDMETHODCALLTYPE *AddRef)(
 3635        ISpResourceManager *This);
 3636
 3637    ULONG (STDMETHODCALLTYPE *Release)(
 3638        ISpResourceManager *This);
 3639
 3640    /*** IServiceProvider methods ***/
 3641    HRESULT (STDMETHODCALLTYPE *QueryService)(
 3642        ISpResourceManager *This,
 3643        REFGUID guidService,
 3644        REFIID riid,
 3645        void **ppvObject);
 3646
 3647    /*** ISpResourceManager methods ***/
 3648    HRESULT (STDMETHODCALLTYPE *SetObject)(
 3649        ISpResourceManager *This,
 3650        REFGUID guidServiceId,
 3651        IUnknown *pUnkObject);
 3652
 3653    HRESULT (STDMETHODCALLTYPE *GetObject)(
 3654        ISpResourceManager *This,
 3655        REFGUID guidServiceId,
 3656        REFCLSID ObjectCLSID,
 3657        REFIID ObjectIID,
 3658        WINBOOL fReleaseWhenLastExternalRefReleased,
 3659        void **ppObject);
 3660
 3661    END_INTERFACE
 3662} ISpResourceManagerVtbl;
 3663
 3664interface ISpResourceManager {
 3665    CONST_VTBL ISpResourceManagerVtbl* lpVtbl;
 3666};
 3667
 3668#ifdef COBJMACROS
 3669#ifndef WIDL_C_INLINE_WRAPPERS
 3670/*** IUnknown methods ***/
 3671#define ISpResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3672#define ISpResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
 3673#define ISpResourceManager_Release(This) (This)->lpVtbl->Release(This)
 3674/*** IServiceProvider methods ***/
 3675#define ISpResourceManager_QueryService(This,guidService,riid,ppvObject) (This)->lpVtbl->QueryService(This,guidService,riid,ppvObject)
 3676/*** ISpResourceManager methods ***/
 3677#define ISpResourceManager_SetObject(This,guidServiceId,pUnkObject) (This)->lpVtbl->SetObject(This,guidServiceId,pUnkObject)
 3678#define ISpResourceManager_GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject) (This)->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
 3679#else
 3680/*** IUnknown methods ***/
 3681static inline HRESULT ISpResourceManager_QueryInterface(ISpResourceManager* This,REFIID riid,void **ppvObject) {
 3682    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3683}
 3684static inline ULONG ISpResourceManager_AddRef(ISpResourceManager* This) {
 3685    return This->lpVtbl->AddRef(This);
 3686}
 3687static inline ULONG ISpResourceManager_Release(ISpResourceManager* This) {
 3688    return This->lpVtbl->Release(This);
 3689}
 3690/*** IServiceProvider methods ***/
 3691static inline HRESULT ISpResourceManager_QueryService(ISpResourceManager* This,REFGUID guidService,REFIID riid,void **ppvObject) {
 3692    return This->lpVtbl->QueryService(This,guidService,riid,ppvObject);
 3693}
 3694/*** ISpResourceManager methods ***/
 3695static inline HRESULT ISpResourceManager_SetObject(ISpResourceManager* This,REFGUID guidServiceId,IUnknown *pUnkObject) {
 3696    return This->lpVtbl->SetObject(This,guidServiceId,pUnkObject);
 3697}
 3698static inline HRESULT ISpResourceManager_GetObject(ISpResourceManager* This,REFGUID guidServiceId,REFCLSID ObjectCLSID,REFIID ObjectIID,WINBOOL fReleaseWhenLastExternalRefReleased,void **ppObject) {
 3699    return This->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject);
 3700}
 3701#endif
 3702#endif
 3703
 3704#endif
 3705
 3706
 3707#endif  /* __ISpResourceManager_INTERFACE_DEFINED__ */
 3708
 3709#if 0
 3710typedef struct SPEVENT {
 3711    WORD eEventId;
 3712    WORD elParamType;
 3713    ULONG ulStreamNum;
 3714    ULONGLONG ullAudioStreamOffset;
 3715    WPARAM wParam;
 3716    LPARAM lParam;
 3717} SPEVENT;
 3718typedef struct SPSERIALIZEDEVENT {
 3719    WORD eEventId;
 3720    WORD elParamType;
 3721    ULONG ulStreamNum;
 3722    ULONGLONG ullAudioStreamOffset;
 3723    ULONG SerializedwParam;
 3724    LONG SerializedlParam;
 3725} SPSERIALIZEDEVENT;
 3726typedef struct SPSERIALIZEDEVENT64 {
 3727    WORD eEventId;
 3728    WORD elParamType;
 3729    ULONG ulStreamNum;
 3730    ULONGLONG ullAudioStreamOffset;
 3731    ULONGLONG SerializedwParam;
 3732    LONGLONG SerializedlParam;
 3733} SPSERIALIZEDEVENT64;
 3734#else
 3735typedef struct SPEVENT {
 3736  SPEVENTENUM eEventId : 16;
 3737  SPEVENTLPARAMTYPE elParamType : 16;
 3738  ULONG ulStreamNum;
 3739  ULONGLONG ullAudioStreamOffset;
 3740  WPARAM      wParam;
 3741  LPARAM      lParam;
 3742} SPEVENT;
 3743
 3744typedef struct SPSERIALIZEDEVENT {
 3745  SPEVENTENUM eEventId : 16;
 3746  SPEVENTLPARAMTYPE elParamType : 16;
 3747  ULONG ulStreamNum;
 3748  ULONGLONG ullAudioStreamOffset;
 3749  ULONG SerializedwParam;
 3750  LONG SerializedlParam;
 3751} SPSERIALIZEDEVENT;
 3752
 3753typedef struct SPSERIALIZEDEVENT64 {
 3754  SPEVENTENUM eEventId : 16;
 3755  SPEVENTLPARAMTYPE elParamType : 16;
 3756  ULONG ulStreamNum;
 3757  ULONGLONG ullAudioStreamOffset;
 3758  ULONGLONG SerializedwParam;
 3759  LONGLONG SerializedlParam;
 3760} SPSERIALIZEDEVENT64;
 3761#endif
 3762#if 0
 3763typedef struct SPEVENTEX {
 3764    WORD eEventId;
 3765    WORD elParamType;
 3766    ULONG ulStreamNum;
 3767    ULONGLONG ullAudioStreamOffset;
 3768    WPARAM wParam;
 3769    LPARAM lParam;
 3770    ULONGLONG ullAudioTimeOffset;
 3771} SPEVENTEX;
 3772#else
 3773typedef struct SPEVENTEX {
 3774  SPEVENTENUM eEventId : 16;
 3775  SPEVENTLPARAMTYPE elParamType : 16;
 3776  ULONG ulStreamNum;
 3777  ULONGLONG ullAudioStreamOffset;
 3778  WPARAM wParam;
 3779  LPARAM lParam;
 3780  ULONGLONG ullAudioTimeOffset;
 3781} SPEVENTEX;
 3782#endif
 3783typedef struct SPEVENTSOURCEINFO {
 3784    ULONGLONG ullEventInterest;
 3785    ULONGLONG ullQueuedInterest;
 3786    ULONG ulCount;
 3787} SPEVENTSOURCEINFO;
 3788/*****************************************************************************
 3789 * ISpEventSource interface
 3790 */
 3791#ifndef __ISpEventSource_INTERFACE_DEFINED__
 3792#define __ISpEventSource_INTERFACE_DEFINED__
 3793
 3794DEFINE_GUID(IID_ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 3795#if defined(__cplusplus) && !defined(CINTERFACE)
 3796MIDL_INTERFACE("be7a9cce-5f9e-11d2-960f-00c04f8ee628")
 3797ISpEventSource : public ISpNotifySource
 3798{
 3799    virtual HRESULT STDMETHODCALLTYPE SetInterest(
 3800        ULONGLONG ullEventInterest,
 3801        ULONGLONG ullQueuedInterest) = 0;
 3802
 3803    virtual HRESULT STDMETHODCALLTYPE GetEvents(
 3804        ULONG ulCount,
 3805        SPEVENT *pEventArray,
 3806        ULONG *pulFetched) = 0;
 3807
 3808    virtual HRESULT STDMETHODCALLTYPE GetInfo(
 3809        SPEVENTSOURCEINFO *pInfo) = 0;
 3810
 3811};
 3812#ifdef __CRT_UUID_DECL
 3813__CRT_UUID_DECL(ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 3814#endif
 3815#else
 3816typedef struct ISpEventSourceVtbl {
 3817    BEGIN_INTERFACE
 3818
 3819    /*** IUnknown methods ***/
 3820    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3821        ISpEventSource *This,
 3822        REFIID riid,
 3823        void **ppvObject);
 3824
 3825    ULONG (STDMETHODCALLTYPE *AddRef)(
 3826        ISpEventSource *This);
 3827
 3828    ULONG (STDMETHODCALLTYPE *Release)(
 3829        ISpEventSource *This);
 3830
 3831    /*** ISpNotifySource methods ***/
 3832    HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
 3833        ISpEventSource *This,
 3834        ISpNotifySink *pNotifySink);
 3835
 3836    HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
 3837        ISpEventSource *This,
 3838        HWND hWnd,
 3839        UINT Msg,
 3840        WPARAM wParam,
 3841        LPARAM lParam);
 3842
 3843    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
 3844        ISpEventSource *This,
 3845        SPNOTIFYCALLBACK *pfnCallback,
 3846        WPARAM wParam,
 3847        LPARAM lParam);
 3848
 3849    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
 3850        ISpEventSource *This,
 3851        ISpNotifyCallback *pSpCallback,
 3852        WPARAM wParam,
 3853        LPARAM lParam);
 3854
 3855    HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
 3856        ISpEventSource *This);
 3857
 3858    HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
 3859        ISpEventSource *This,
 3860        DWORD dwMilliseconds);
 3861
 3862    HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
 3863        ISpEventSource *This);
 3864
 3865    /*** ISpEventSource methods ***/
 3866    HRESULT (STDMETHODCALLTYPE *SetInterest)(
 3867        ISpEventSource *This,
 3868        ULONGLONG ullEventInterest,
 3869        ULONGLONG ullQueuedInterest);
 3870
 3871    HRESULT (STDMETHODCALLTYPE *GetEvents)(
 3872        ISpEventSource *This,
 3873        ULONG ulCount,
 3874        SPEVENT *pEventArray,
 3875        ULONG *pulFetched);
 3876
 3877    HRESULT (STDMETHODCALLTYPE *GetInfo)(
 3878        ISpEventSource *This,
 3879        SPEVENTSOURCEINFO *pInfo);
 3880
 3881    END_INTERFACE
 3882} ISpEventSourceVtbl;
 3883
 3884interface ISpEventSource {
 3885    CONST_VTBL ISpEventSourceVtbl* lpVtbl;
 3886};
 3887
 3888#ifdef COBJMACROS
 3889#ifndef WIDL_C_INLINE_WRAPPERS
 3890/*** IUnknown methods ***/
 3891#define ISpEventSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3892#define ISpEventSource_AddRef(This) (This)->lpVtbl->AddRef(This)
 3893#define ISpEventSource_Release(This) (This)->lpVtbl->Release(This)
 3894/*** ISpNotifySource methods ***/
 3895#define ISpEventSource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
 3896#define ISpEventSource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
 3897#define ISpEventSource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
 3898#define ISpEventSource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
 3899#define ISpEventSource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
 3900#define ISpEventSource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
 3901#define ISpEventSource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
 3902/*** ISpEventSource methods ***/
 3903#define ISpEventSource_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
 3904#define ISpEventSource_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
 3905#define ISpEventSource_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
 3906#else
 3907/*** IUnknown methods ***/
 3908static inline HRESULT ISpEventSource_QueryInterface(ISpEventSource* This,REFIID riid,void **ppvObject) {
 3909    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3910}
 3911static inline ULONG ISpEventSource_AddRef(ISpEventSource* This) {
 3912    return This->lpVtbl->AddRef(This);
 3913}
 3914static inline ULONG ISpEventSource_Release(ISpEventSource* This) {
 3915    return This->lpVtbl->Release(This);
 3916}
 3917/*** ISpNotifySource methods ***/
 3918static inline HRESULT ISpEventSource_SetNotifySink(ISpEventSource* This,ISpNotifySink *pNotifySink) {
 3919    return This->lpVtbl->SetNotifySink(This,pNotifySink);
 3920}
 3921static inline HRESULT ISpEventSource_SetNotifyWindowMessage(ISpEventSource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 3922    return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
 3923}
 3924static inline HRESULT ISpEventSource_SetNotifyCallbackFunction(ISpEventSource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 3925    return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
 3926}
 3927static inline HRESULT ISpEventSource_SetNotifyCallbackInterface(ISpEventSource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 3928    return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
 3929}
 3930static inline HRESULT ISpEventSource_SetNotifyWin32Event(ISpEventSource* This) {
 3931    return This->lpVtbl->SetNotifyWin32Event(This);
 3932}
 3933static inline HRESULT ISpEventSource_WaitForNotifyEvent(ISpEventSource* This,DWORD dwMilliseconds) {
 3934    return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
 3935}
 3936static inline HANDLE ISpEventSource_GetNotifyEventHandle(ISpEventSource* This) {
 3937    return This->lpVtbl->GetNotifyEventHandle(This);
 3938}
 3939/*** ISpEventSource methods ***/
 3940static inline HRESULT ISpEventSource_SetInterest(ISpEventSource* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
 3941    return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
 3942}
 3943static inline HRESULT ISpEventSource_GetEvents(ISpEventSource* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
 3944    return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
 3945}
 3946static inline HRESULT ISpEventSource_GetInfo(ISpEventSource* This,SPEVENTSOURCEINFO *pInfo) {
 3947    return This->lpVtbl->GetInfo(This,pInfo);
 3948}
 3949#endif
 3950#endif
 3951
 3952#endif
 3953
 3954
 3955#endif  /* __ISpEventSource_INTERFACE_DEFINED__ */
 3956
 3957/*****************************************************************************
 3958 * ISpEventSource2 interface
 3959 */
 3960#ifndef __ISpEventSource2_INTERFACE_DEFINED__
 3961#define __ISpEventSource2_INTERFACE_DEFINED__
 3962
 3963DEFINE_GUID(IID_ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b);
 3964#if defined(__cplusplus) && !defined(CINTERFACE)
 3965MIDL_INTERFACE("2373a435-6a4b-429e-a6ac-d4231a61975b")
 3966ISpEventSource2 : public ISpEventSource
 3967{
 3968    virtual HRESULT STDMETHODCALLTYPE GetEventsEx(
 3969        ULONG ulCount,
 3970        SPEVENTEX *pEventArray,
 3971        ULONG *pulFetched) = 0;
 3972
 3973};
 3974#ifdef __CRT_UUID_DECL
 3975__CRT_UUID_DECL(ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b)
 3976#endif
 3977#else
 3978typedef struct ISpEventSource2Vtbl {
 3979    BEGIN_INTERFACE
 3980
 3981    /*** IUnknown methods ***/
 3982    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3983        ISpEventSource2 *This,
 3984        REFIID riid,
 3985        void **ppvObject);
 3986
 3987    ULONG (STDMETHODCALLTYPE *AddRef)(
 3988        ISpEventSource2 *This);
 3989
 3990    ULONG (STDMETHODCALLTYPE *Release)(
 3991        ISpEventSource2 *This);
 3992
 3993    /*** ISpNotifySource methods ***/
 3994    HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
 3995        ISpEventSource2 *This,
 3996        ISpNotifySink *pNotifySink);
 3997
 3998    HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
 3999        ISpEventSource2 *This,
 4000        HWND hWnd,
 4001        UINT Msg,
 4002        WPARAM wParam,
 4003        LPARAM lParam);
 4004
 4005    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
 4006        ISpEventSource2 *This,
 4007        SPNOTIFYCALLBACK *pfnCallback,
 4008        WPARAM wParam,
 4009        LPARAM lParam);
 4010
 4011    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
 4012        ISpEventSource2 *This,
 4013        ISpNotifyCallback *pSpCallback,
 4014        WPARAM wParam,
 4015        LPARAM lParam);
 4016
 4017    HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
 4018        ISpEventSource2 *This);
 4019
 4020    HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
 4021        ISpEventSource2 *This,
 4022        DWORD dwMilliseconds);
 4023
 4024    HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
 4025        ISpEventSource2 *This);
 4026
 4027    /*** ISpEventSource methods ***/
 4028    HRESULT (STDMETHODCALLTYPE *SetInterest)(
 4029        ISpEventSource2 *This,
 4030        ULONGLONG ullEventInterest,
 4031        ULONGLONG ullQueuedInterest);
 4032
 4033    HRESULT (STDMETHODCALLTYPE *GetEvents)(
 4034        ISpEventSource2 *This,
 4035        ULONG ulCount,
 4036        SPEVENT *pEventArray,
 4037        ULONG *pulFetched);
 4038
 4039    HRESULT (STDMETHODCALLTYPE *GetInfo)(
 4040        ISpEventSource2 *This,
 4041        SPEVENTSOURCEINFO *pInfo);
 4042
 4043    /*** ISpEventSource2 methods ***/
 4044    HRESULT (STDMETHODCALLTYPE *GetEventsEx)(
 4045        ISpEventSource2 *This,
 4046        ULONG ulCount,
 4047        SPEVENTEX *pEventArray,
 4048        ULONG *pulFetched);
 4049
 4050    END_INTERFACE
 4051} ISpEventSource2Vtbl;
 4052
 4053interface ISpEventSource2 {
 4054    CONST_VTBL ISpEventSource2Vtbl* lpVtbl;
 4055};
 4056
 4057#ifdef COBJMACROS
 4058#ifndef WIDL_C_INLINE_WRAPPERS
 4059/*** IUnknown methods ***/
 4060#define ISpEventSource2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4061#define ISpEventSource2_AddRef(This) (This)->lpVtbl->AddRef(This)
 4062#define ISpEventSource2_Release(This) (This)->lpVtbl->Release(This)
 4063/*** ISpNotifySource methods ***/
 4064#define ISpEventSource2_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
 4065#define ISpEventSource2_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
 4066#define ISpEventSource2_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
 4067#define ISpEventSource2_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
 4068#define ISpEventSource2_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
 4069#define ISpEventSource2_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
 4070#define ISpEventSource2_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
 4071/*** ISpEventSource methods ***/
 4072#define ISpEventSource2_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
 4073#define ISpEventSource2_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
 4074#define ISpEventSource2_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
 4075/*** ISpEventSource2 methods ***/
 4076#define ISpEventSource2_GetEventsEx(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched)
 4077#else
 4078/*** IUnknown methods ***/
 4079static inline HRESULT ISpEventSource2_QueryInterface(ISpEventSource2* This,REFIID riid,void **ppvObject) {
 4080    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4081}
 4082static inline ULONG ISpEventSource2_AddRef(ISpEventSource2* This) {
 4083    return This->lpVtbl->AddRef(This);
 4084}
 4085static inline ULONG ISpEventSource2_Release(ISpEventSource2* This) {
 4086    return This->lpVtbl->Release(This);
 4087}
 4088/*** ISpNotifySource methods ***/
 4089static inline HRESULT ISpEventSource2_SetNotifySink(ISpEventSource2* This,ISpNotifySink *pNotifySink) {
 4090    return This->lpVtbl->SetNotifySink(This,pNotifySink);
 4091}
 4092static inline HRESULT ISpEventSource2_SetNotifyWindowMessage(ISpEventSource2* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 4093    return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
 4094}
 4095static inline HRESULT ISpEventSource2_SetNotifyCallbackFunction(ISpEventSource2* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 4096    return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
 4097}
 4098static inline HRESULT ISpEventSource2_SetNotifyCallbackInterface(ISpEventSource2* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 4099    return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
 4100}
 4101static inline HRESULT ISpEventSource2_SetNotifyWin32Event(ISpEventSource2* This) {
 4102    return This->lpVtbl->SetNotifyWin32Event(This);
 4103}
 4104static inline HRESULT ISpEventSource2_WaitForNotifyEvent(ISpEventSource2* This,DWORD dwMilliseconds) {
 4105    return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
 4106}
 4107static inline HANDLE ISpEventSource2_GetNotifyEventHandle(ISpEventSource2* This) {
 4108    return This->lpVtbl->GetNotifyEventHandle(This);
 4109}
 4110/*** ISpEventSource methods ***/
 4111static inline HRESULT ISpEventSource2_SetInterest(ISpEventSource2* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
 4112    return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
 4113}
 4114static inline HRESULT ISpEventSource2_GetEvents(ISpEventSource2* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
 4115    return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
 4116}
 4117static inline HRESULT ISpEventSource2_GetInfo(ISpEventSource2* This,SPEVENTSOURCEINFO *pInfo) {
 4118    return This->lpVtbl->GetInfo(This,pInfo);
 4119}
 4120/*** ISpEventSource2 methods ***/
 4121static inline HRESULT ISpEventSource2_GetEventsEx(ISpEventSource2* This,ULONG ulCount,SPEVENTEX *pEventArray,ULONG *pulFetched) {
 4122    return This->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched);
 4123}
 4124#endif
 4125#endif
 4126
 4127#endif
 4128
 4129
 4130#endif  /* __ISpEventSource2_INTERFACE_DEFINED__ */
 4131
 4132/*****************************************************************************
 4133 * ISpEventSink interface
 4134 */
 4135#ifndef __ISpEventSink_INTERFACE_DEFINED__
 4136#define __ISpEventSink_INTERFACE_DEFINED__
 4137
 4138DEFINE_GUID(IID_ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 4139#if defined(__cplusplus) && !defined(CINTERFACE)
 4140MIDL_INTERFACE("be7a9cc9-5f9e-11d2-960f-00c04f8ee628")
 4141ISpEventSink : public IUnknown
 4142{
 4143    virtual HRESULT STDMETHODCALLTYPE AddEvents(
 4144        const SPEVENT *pEventArray,
 4145        ULONG ulCount) = 0;
 4146
 4147    virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
 4148        ULONGLONG *pullEventInterest) = 0;
 4149
 4150};
 4151#ifdef __CRT_UUID_DECL
 4152__CRT_UUID_DECL(ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 4153#endif
 4154#else
 4155typedef struct ISpEventSinkVtbl {
 4156    BEGIN_INTERFACE
 4157
 4158    /*** IUnknown methods ***/
 4159    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4160        ISpEventSink *This,
 4161        REFIID riid,
 4162        void **ppvObject);
 4163
 4164    ULONG (STDMETHODCALLTYPE *AddRef)(
 4165        ISpEventSink *This);
 4166
 4167    ULONG (STDMETHODCALLTYPE *Release)(
 4168        ISpEventSink *This);
 4169
 4170    /*** ISpEventSink methods ***/
 4171    HRESULT (STDMETHODCALLTYPE *AddEvents)(
 4172        ISpEventSink *This,
 4173        const SPEVENT *pEventArray,
 4174        ULONG ulCount);
 4175
 4176    HRESULT (STDMETHODCALLTYPE *GetEventInterest)(
 4177        ISpEventSink *This,
 4178        ULONGLONG *pullEventInterest);
 4179
 4180    END_INTERFACE
 4181} ISpEventSinkVtbl;
 4182
 4183interface ISpEventSink {
 4184    CONST_VTBL ISpEventSinkVtbl* lpVtbl;
 4185};
 4186
 4187#ifdef COBJMACROS
 4188#ifndef WIDL_C_INLINE_WRAPPERS
 4189/*** IUnknown methods ***/
 4190#define ISpEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4191#define ISpEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
 4192#define ISpEventSink_Release(This) (This)->lpVtbl->Release(This)
 4193/*** ISpEventSink methods ***/
 4194#define ISpEventSink_AddEvents(This,pEventArray,ulCount) (This)->lpVtbl->AddEvents(This,pEventArray,ulCount)
 4195#define ISpEventSink_GetEventInterest(This,pullEventInterest) (This)->lpVtbl->GetEventInterest(This,pullEventInterest)
 4196#else
 4197/*** IUnknown methods ***/
 4198static inline HRESULT ISpEventSink_QueryInterface(ISpEventSink* This,REFIID riid,void **ppvObject) {
 4199    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4200}
 4201static inline ULONG ISpEventSink_AddRef(ISpEventSink* This) {
 4202    return This->lpVtbl->AddRef(This);
 4203}
 4204static inline ULONG ISpEventSink_Release(ISpEventSink* This) {
 4205    return This->lpVtbl->Release(This);
 4206}
 4207/*** ISpEventSink methods ***/
 4208static inline HRESULT ISpEventSink_AddEvents(ISpEventSink* This,const SPEVENT *pEventArray,ULONG ulCount) {
 4209    return This->lpVtbl->AddEvents(This,pEventArray,ulCount);
 4210}
 4211static inline HRESULT ISpEventSink_GetEventInterest(ISpEventSink* This,ULONGLONG *pullEventInterest) {
 4212    return This->lpVtbl->GetEventInterest(This,pullEventInterest);
 4213}
 4214#endif
 4215#endif
 4216
 4217#endif
 4218
 4219
 4220#endif  /* __ISpEventSink_INTERFACE_DEFINED__ */
 4221
 4222/*****************************************************************************
 4223 * ISpStreamFormat interface
 4224 */
 4225#ifndef __ISpStreamFormat_INTERFACE_DEFINED__
 4226#define __ISpStreamFormat_INTERFACE_DEFINED__
 4227
 4228DEFINE_GUID(IID_ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f);
 4229#if defined(__cplusplus) && !defined(CINTERFACE)
 4230MIDL_INTERFACE("bed530be-2606-4f4d-a1c0-54c5cda5566f")
 4231ISpStreamFormat : public IStream
 4232{
 4233    virtual HRESULT STDMETHODCALLTYPE GetFormat(
 4234        GUID *pguidFormatId,
 4235        WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
 4236
 4237};
 4238#ifdef __CRT_UUID_DECL
 4239__CRT_UUID_DECL(ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f)
 4240#endif
 4241#else
 4242typedef struct ISpStreamFormatVtbl {
 4243    BEGIN_INTERFACE
 4244
 4245    /*** IUnknown methods ***/
 4246    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4247        ISpStreamFormat *This,
 4248        REFIID riid,
 4249        void **ppvObject);
 4250
 4251    ULONG (STDMETHODCALLTYPE *AddRef)(
 4252        ISpStreamFormat *This);
 4253
 4254    ULONG (STDMETHODCALLTYPE *Release)(
 4255        ISpStreamFormat *This);
 4256
 4257    /*** ISequentialStream methods ***/
 4258    HRESULT (STDMETHODCALLTYPE *Read)(
 4259        ISpStreamFormat *This,
 4260        void *pv,
 4261        ULONG cb,
 4262        ULONG *pcbRead);
 4263
 4264    HRESULT (STDMETHODCALLTYPE *Write)(
 4265        ISpStreamFormat *This,
 4266        const void *pv,
 4267        ULONG cb,
 4268        ULONG *pcbWritten);
 4269
 4270    /*** IStream methods ***/
 4271    HRESULT (STDMETHODCALLTYPE *Seek)(
 4272        ISpStreamFormat *This,
 4273        LARGE_INTEGER dlibMove,
 4274        DWORD dwOrigin,
 4275        ULARGE_INTEGER *plibNewPosition);
 4276
 4277    HRESULT (STDMETHODCALLTYPE *SetSize)(
 4278        ISpStreamFormat *This,
 4279        ULARGE_INTEGER libNewSize);
 4280
 4281    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 4282        ISpStreamFormat *This,
 4283        IStream *pstm,
 4284        ULARGE_INTEGER cb,
 4285        ULARGE_INTEGER *pcbRead,
 4286        ULARGE_INTEGER *pcbWritten);
 4287
 4288    HRESULT (STDMETHODCALLTYPE *Commit)(
 4289        ISpStreamFormat *This,
 4290        DWORD grfCommitFlags);
 4291
 4292    HRESULT (STDMETHODCALLTYPE *Revert)(
 4293        ISpStreamFormat *This);
 4294
 4295    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 4296        ISpStreamFormat *This,
 4297        ULARGE_INTEGER libOffset,
 4298        ULARGE_INTEGER cb,
 4299        DWORD dwLockType);
 4300
 4301    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 4302        ISpStreamFormat *This,
 4303        ULARGE_INTEGER libOffset,
 4304        ULARGE_INTEGER cb,
 4305        DWORD dwLockType);
 4306
 4307    HRESULT (STDMETHODCALLTYPE *Stat)(
 4308        ISpStreamFormat *This,
 4309        STATSTG *pstatstg,
 4310        DWORD grfStatFlag);
 4311
 4312    HRESULT (STDMETHODCALLTYPE *Clone)(
 4313        ISpStreamFormat *This,
 4314        IStream **ppstm);
 4315
 4316    /*** ISpStreamFormat methods ***/
 4317    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 4318        ISpStreamFormat *This,
 4319        GUID *pguidFormatId,
 4320        WAVEFORMATEX **ppCoMemWaveFormatEx);
 4321
 4322    END_INTERFACE
 4323} ISpStreamFormatVtbl;
 4324
 4325interface ISpStreamFormat {
 4326    CONST_VTBL ISpStreamFormatVtbl* lpVtbl;
 4327};
 4328
 4329#ifdef COBJMACROS
 4330#ifndef WIDL_C_INLINE_WRAPPERS
 4331/*** IUnknown methods ***/
 4332#define ISpStreamFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4333#define ISpStreamFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
 4334#define ISpStreamFormat_Release(This) (This)->lpVtbl->Release(This)
 4335/*** ISequentialStream methods ***/
 4336#define ISpStreamFormat_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 4337#define ISpStreamFormat_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 4338/*** IStream methods ***/
 4339#define ISpStreamFormat_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 4340#define ISpStreamFormat_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 4341#define ISpStreamFormat_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 4342#define ISpStreamFormat_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 4343#define ISpStreamFormat_Revert(This) (This)->lpVtbl->Revert(This)
 4344#define ISpStreamFormat_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 4345#define ISpStreamFormat_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 4346#define ISpStreamFormat_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 4347#define ISpStreamFormat_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 4348/*** ISpStreamFormat methods ***/
 4349#define ISpStreamFormat_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 4350#else
 4351/*** IUnknown methods ***/
 4352static inline HRESULT ISpStreamFormat_QueryInterface(ISpStreamFormat* This,REFIID riid,void **ppvObject) {
 4353    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4354}
 4355static inline ULONG ISpStreamFormat_AddRef(ISpStreamFormat* This) {
 4356    return This->lpVtbl->AddRef(This);
 4357}
 4358static inline ULONG ISpStreamFormat_Release(ISpStreamFormat* This) {
 4359    return This->lpVtbl->Release(This);
 4360}
 4361/*** ISequentialStream methods ***/
 4362static inline HRESULT ISpStreamFormat_Read(ISpStreamFormat* This,void *pv,ULONG cb,ULONG *pcbRead) {
 4363    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 4364}
 4365static inline HRESULT ISpStreamFormat_Write(ISpStreamFormat* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 4366    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 4367}
 4368/*** IStream methods ***/
 4369static inline HRESULT ISpStreamFormat_Seek(ISpStreamFormat* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 4370    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 4371}
 4372static inline HRESULT ISpStreamFormat_SetSize(ISpStreamFormat* This,ULARGE_INTEGER libNewSize) {
 4373    return This->lpVtbl->SetSize(This,libNewSize);
 4374}
 4375static inline HRESULT ISpStreamFormat_CopyTo(ISpStreamFormat* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 4376    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 4377}
 4378static inline HRESULT ISpStreamFormat_Commit(ISpStreamFormat* This,DWORD grfCommitFlags) {
 4379    return This->lpVtbl->Commit(This,grfCommitFlags);
 4380}
 4381static inline HRESULT ISpStreamFormat_Revert(ISpStreamFormat* This) {
 4382    return This->lpVtbl->Revert(This);
 4383}
 4384static inline HRESULT ISpStreamFormat_LockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4385    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 4386}
 4387static inline HRESULT ISpStreamFormat_UnlockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4388    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 4389}
 4390static inline HRESULT ISpStreamFormat_Stat(ISpStreamFormat* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 4391    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 4392}
 4393static inline HRESULT ISpStreamFormat_Clone(ISpStreamFormat* This,IStream **ppstm) {
 4394    return This->lpVtbl->Clone(This,ppstm);
 4395}
 4396/*** ISpStreamFormat methods ***/
 4397static inline HRESULT ISpStreamFormat_GetFormat(ISpStreamFormat* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 4398    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 4399}
 4400#endif
 4401#endif
 4402
 4403#endif
 4404
 4405
 4406#endif  /* __ISpStreamFormat_INTERFACE_DEFINED__ */
 4407
 4408/*****************************************************************************
 4409 * ISpStream interface
 4410 */
 4411#ifndef __ISpStream_INTERFACE_DEFINED__
 4412#define __ISpStream_INTERFACE_DEFINED__
 4413
 4414DEFINE_GUID(IID_ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e);
 4415#if defined(__cplusplus) && !defined(CINTERFACE)
 4416MIDL_INTERFACE("12e3cca9-7518-44c5-a5e7-ba5a79cb929e")
 4417ISpStream : public ISpStreamFormat
 4418{
 4419    virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
 4420        IStream *pStream,
 4421        REFGUID rguidFormat,
 4422        const WAVEFORMATEX *pWaveFormatEx) = 0;
 4423
 4424    virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
 4425        IStream **ppStream) = 0;
 4426
 4427    virtual HRESULT STDMETHODCALLTYPE BindToFile(
 4428        LPCWSTR pszFileName,
 4429        SPFILEMODE eMode,
 4430        const GUID *pFormatId,
 4431        const WAVEFORMATEX *pWaveFormatEx,
 4432        ULONGLONG ullEventInterest) = 0;
 4433
 4434    virtual HRESULT STDMETHODCALLTYPE Close(
 4435        ) = 0;
 4436
 4437};
 4438#ifdef __CRT_UUID_DECL
 4439__CRT_UUID_DECL(ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e)
 4440#endif
 4441#else
 4442typedef struct ISpStreamVtbl {
 4443    BEGIN_INTERFACE
 4444
 4445    /*** IUnknown methods ***/
 4446    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4447        ISpStream *This,
 4448        REFIID riid,
 4449        void **ppvObject);
 4450
 4451    ULONG (STDMETHODCALLTYPE *AddRef)(
 4452        ISpStream *This);
 4453
 4454    ULONG (STDMETHODCALLTYPE *Release)(
 4455        ISpStream *This);
 4456
 4457    /*** ISequentialStream methods ***/
 4458    HRESULT (STDMETHODCALLTYPE *Read)(
 4459        ISpStream *This,
 4460        void *pv,
 4461        ULONG cb,
 4462        ULONG *pcbRead);
 4463
 4464    HRESULT (STDMETHODCALLTYPE *Write)(
 4465        ISpStream *This,
 4466        const void *pv,
 4467        ULONG cb,
 4468        ULONG *pcbWritten);
 4469
 4470    /*** IStream methods ***/
 4471    HRESULT (STDMETHODCALLTYPE *Seek)(
 4472        ISpStream *This,
 4473        LARGE_INTEGER dlibMove,
 4474        DWORD dwOrigin,
 4475        ULARGE_INTEGER *plibNewPosition);
 4476
 4477    HRESULT (STDMETHODCALLTYPE *SetSize)(
 4478        ISpStream *This,
 4479        ULARGE_INTEGER libNewSize);
 4480
 4481    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 4482        ISpStream *This,
 4483        IStream *pstm,
 4484        ULARGE_INTEGER cb,
 4485        ULARGE_INTEGER *pcbRead,
 4486        ULARGE_INTEGER *pcbWritten);
 4487
 4488    HRESULT (STDMETHODCALLTYPE *Commit)(
 4489        ISpStream *This,
 4490        DWORD grfCommitFlags);
 4491
 4492    HRESULT (STDMETHODCALLTYPE *Revert)(
 4493        ISpStream *This);
 4494
 4495    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 4496        ISpStream *This,
 4497        ULARGE_INTEGER libOffset,
 4498        ULARGE_INTEGER cb,
 4499        DWORD dwLockType);
 4500
 4501    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 4502        ISpStream *This,
 4503        ULARGE_INTEGER libOffset,
 4504        ULARGE_INTEGER cb,
 4505        DWORD dwLockType);
 4506
 4507    HRESULT (STDMETHODCALLTYPE *Stat)(
 4508        ISpStream *This,
 4509        STATSTG *pstatstg,
 4510        DWORD grfStatFlag);
 4511
 4512    HRESULT (STDMETHODCALLTYPE *Clone)(
 4513        ISpStream *This,
 4514        IStream **ppstm);
 4515
 4516    /*** ISpStreamFormat methods ***/
 4517    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 4518        ISpStream *This,
 4519        GUID *pguidFormatId,
 4520        WAVEFORMATEX **ppCoMemWaveFormatEx);
 4521
 4522    /*** ISpStream methods ***/
 4523    HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
 4524        ISpStream *This,
 4525        IStream *pStream,
 4526        REFGUID rguidFormat,
 4527        const WAVEFORMATEX *pWaveFormatEx);
 4528
 4529    HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
 4530        ISpStream *This,
 4531        IStream **ppStream);
 4532
 4533    HRESULT (STDMETHODCALLTYPE *BindToFile)(
 4534        ISpStream *This,
 4535        LPCWSTR pszFileName,
 4536        SPFILEMODE eMode,
 4537        const GUID *pFormatId,
 4538        const WAVEFORMATEX *pWaveFormatEx,
 4539        ULONGLONG ullEventInterest);
 4540
 4541    HRESULT (STDMETHODCALLTYPE *Close)(
 4542        ISpStream *This);
 4543
 4544    END_INTERFACE
 4545} ISpStreamVtbl;
 4546
 4547interface ISpStream {
 4548    CONST_VTBL ISpStreamVtbl* lpVtbl;
 4549};
 4550
 4551#ifdef COBJMACROS
 4552#ifndef WIDL_C_INLINE_WRAPPERS
 4553/*** IUnknown methods ***/
 4554#define ISpStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4555#define ISpStream_AddRef(This) (This)->lpVtbl->AddRef(This)
 4556#define ISpStream_Release(This) (This)->lpVtbl->Release(This)
 4557/*** ISequentialStream methods ***/
 4558#define ISpStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 4559#define ISpStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 4560/*** IStream methods ***/
 4561#define ISpStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 4562#define ISpStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 4563#define ISpStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 4564#define ISpStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 4565#define ISpStream_Revert(This) (This)->lpVtbl->Revert(This)
 4566#define ISpStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 4567#define ISpStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 4568#define ISpStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 4569#define ISpStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 4570/*** ISpStreamFormat methods ***/
 4571#define ISpStream_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 4572/*** ISpStream methods ***/
 4573#define ISpStream_SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx) (This)->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx)
 4574#define ISpStream_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
 4575#define ISpStream_BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest) (This)->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest)
 4576#define ISpStream_Close(This) (This)->lpVtbl->Close(This)
 4577#else
 4578/*** IUnknown methods ***/
 4579static inline HRESULT ISpStream_QueryInterface(ISpStream* This,REFIID riid,void **ppvObject) {
 4580    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4581}
 4582static inline ULONG ISpStream_AddRef(ISpStream* This) {
 4583    return This->lpVtbl->AddRef(This);
 4584}
 4585static inline ULONG ISpStream_Release(ISpStream* This) {
 4586    return This->lpVtbl->Release(This);
 4587}
 4588/*** ISequentialStream methods ***/
 4589static inline HRESULT ISpStream_Read(ISpStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
 4590    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 4591}
 4592static inline HRESULT ISpStream_Write(ISpStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 4593    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 4594}
 4595/*** IStream methods ***/
 4596static inline HRESULT ISpStream_Seek(ISpStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 4597    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 4598}
 4599static inline HRESULT ISpStream_SetSize(ISpStream* This,ULARGE_INTEGER libNewSize) {
 4600    return This->lpVtbl->SetSize(This,libNewSize);
 4601}
 4602static inline HRESULT ISpStream_CopyTo(ISpStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 4603    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 4604}
 4605static inline HRESULT ISpStream_Commit(ISpStream* This,DWORD grfCommitFlags) {
 4606    return This->lpVtbl->Commit(This,grfCommitFlags);
 4607}
 4608static inline HRESULT ISpStream_Revert(ISpStream* This) {
 4609    return This->lpVtbl->Revert(This);
 4610}
 4611static inline HRESULT ISpStream_LockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4612    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 4613}
 4614static inline HRESULT ISpStream_UnlockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4615    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 4616}
 4617static inline HRESULT ISpStream_Stat(ISpStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 4618    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 4619}
 4620static inline HRESULT ISpStream_Clone(ISpStream* This,IStream **ppstm) {
 4621    return This->lpVtbl->Clone(This,ppstm);
 4622}
 4623/*** ISpStreamFormat methods ***/
 4624static inline HRESULT ISpStream_GetFormat(ISpStream* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 4625    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 4626}
 4627/*** ISpStream methods ***/
 4628static inline HRESULT ISpStream_SetBaseStream(ISpStream* This,IStream *pStream,REFGUID rguidFormat,const WAVEFORMATEX *pWaveFormatEx) {
 4629    return This->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx);
 4630}
 4631static inline HRESULT ISpStream_GetBaseStream(ISpStream* This,IStream **ppStream) {
 4632    return This->lpVtbl->GetBaseStream(This,ppStream);
 4633}
 4634static inline HRESULT ISpStream_BindToFile(ISpStream* This,LPCWSTR pszFileName,SPFILEMODE eMode,const GUID *pFormatId,const WAVEFORMATEX *pWaveFormatEx,ULONGLONG ullEventInterest) {
 4635    return This->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest);
 4636}
 4637static inline HRESULT ISpStream_Close(ISpStream* This) {
 4638    return This->lpVtbl->Close(This);
 4639}
 4640#endif
 4641#endif
 4642
 4643#endif
 4644
 4645
 4646#endif  /* __ISpStream_INTERFACE_DEFINED__ */
 4647
 4648/*****************************************************************************
 4649 * ISpStreamFormatConverter interface
 4650 */
 4651#ifndef __ISpStreamFormatConverter_INTERFACE_DEFINED__
 4652#define __ISpStreamFormatConverter_INTERFACE_DEFINED__
 4653
 4654DEFINE_GUID(IID_ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29);
 4655#if defined(__cplusplus) && !defined(CINTERFACE)
 4656MIDL_INTERFACE("678a932c-ea71-4446-9b41-78fda6280a29")
 4657ISpStreamFormatConverter : public ISpStreamFormat
 4658{
 4659    virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
 4660        ISpStreamFormat *pStream,
 4661        WINBOOL fSetFormatToBaseStreamFormat,
 4662        WINBOOL fWriteToBaseStream) = 0;
 4663
 4664    virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
 4665        ISpStreamFormat **ppStream) = 0;
 4666
 4667    virtual HRESULT STDMETHODCALLTYPE SetFormat(
 4668        REFGUID rguidFormatIdOfConvertedStream,
 4669        const WAVEFORMATEX *pWaveFormatExOfConvertedStream) = 0;
 4670
 4671    virtual HRESULT STDMETHODCALLTYPE ResetSeekPosition(
 4672        ) = 0;
 4673
 4674    virtual HRESULT STDMETHODCALLTYPE ScaleConvertedToBaseOffset(
 4675        ULONGLONG ullOffsetConvertedStream,
 4676        ULONGLONG *pullOffsetBaseStream) = 0;
 4677
 4678    virtual HRESULT STDMETHODCALLTYPE ScaleBaseToConvertedOffset(
 4679        ULONGLONG ullOffsetBaseStream,
 4680        ULONGLONG *pullOffsetConvertedStream) = 0;
 4681
 4682};
 4683#ifdef __CRT_UUID_DECL
 4684__CRT_UUID_DECL(ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29)
 4685#endif
 4686#else
 4687typedef struct ISpStreamFormatConverterVtbl {
 4688    BEGIN_INTERFACE
 4689
 4690    /*** IUnknown methods ***/
 4691    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4692        ISpStreamFormatConverter *This,
 4693        REFIID riid,
 4694        void **ppvObject);
 4695
 4696    ULONG (STDMETHODCALLTYPE *AddRef)(
 4697        ISpStreamFormatConverter *This);
 4698
 4699    ULONG (STDMETHODCALLTYPE *Release)(
 4700        ISpStreamFormatConverter *This);
 4701
 4702    /*** ISequentialStream methods ***/
 4703    HRESULT (STDMETHODCALLTYPE *Read)(
 4704        ISpStreamFormatConverter *This,
 4705        void *pv,
 4706        ULONG cb,
 4707        ULONG *pcbRead);
 4708
 4709    HRESULT (STDMETHODCALLTYPE *Write)(
 4710        ISpStreamFormatConverter *This,
 4711        const void *pv,
 4712        ULONG cb,
 4713        ULONG *pcbWritten);
 4714
 4715    /*** IStream methods ***/
 4716    HRESULT (STDMETHODCALLTYPE *Seek)(
 4717        ISpStreamFormatConverter *This,
 4718        LARGE_INTEGER dlibMove,
 4719        DWORD dwOrigin,
 4720        ULARGE_INTEGER *plibNewPosition);
 4721
 4722    HRESULT (STDMETHODCALLTYPE *SetSize)(
 4723        ISpStreamFormatConverter *This,
 4724        ULARGE_INTEGER libNewSize);
 4725
 4726    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 4727        ISpStreamFormatConverter *This,
 4728        IStream *pstm,
 4729        ULARGE_INTEGER cb,
 4730        ULARGE_INTEGER *pcbRead,
 4731        ULARGE_INTEGER *pcbWritten);
 4732
 4733    HRESULT (STDMETHODCALLTYPE *Commit)(
 4734        ISpStreamFormatConverter *This,
 4735        DWORD grfCommitFlags);
 4736
 4737    HRESULT (STDMETHODCALLTYPE *Revert)(
 4738        ISpStreamFormatConverter *This);
 4739
 4740    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 4741        ISpStreamFormatConverter *This,
 4742        ULARGE_INTEGER libOffset,
 4743        ULARGE_INTEGER cb,
 4744        DWORD dwLockType);
 4745
 4746    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 4747        ISpStreamFormatConverter *This,
 4748        ULARGE_INTEGER libOffset,
 4749        ULARGE_INTEGER cb,
 4750        DWORD dwLockType);
 4751
 4752    HRESULT (STDMETHODCALLTYPE *Stat)(
 4753        ISpStreamFormatConverter *This,
 4754        STATSTG *pstatstg,
 4755        DWORD grfStatFlag);
 4756
 4757    HRESULT (STDMETHODCALLTYPE *Clone)(
 4758        ISpStreamFormatConverter *This,
 4759        IStream **ppstm);
 4760
 4761    /*** ISpStreamFormat methods ***/
 4762    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 4763        ISpStreamFormatConverter *This,
 4764        GUID *pguidFormatId,
 4765        WAVEFORMATEX **ppCoMemWaveFormatEx);
 4766
 4767    /*** ISpStreamFormatConverter methods ***/
 4768    HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
 4769        ISpStreamFormatConverter *This,
 4770        ISpStreamFormat *pStream,
 4771        WINBOOL fSetFormatToBaseStreamFormat,
 4772        WINBOOL fWriteToBaseStream);
 4773
 4774    HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
 4775        ISpStreamFormatConverter *This,
 4776        ISpStreamFormat **ppStream);
 4777
 4778    HRESULT (STDMETHODCALLTYPE *SetFormat)(
 4779        ISpStreamFormatConverter *This,
 4780        REFGUID rguidFormatIdOfConvertedStream,
 4781        const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
 4782
 4783    HRESULT (STDMETHODCALLTYPE *ResetSeekPosition)(
 4784        ISpStreamFormatConverter *This);
 4785
 4786    HRESULT (STDMETHODCALLTYPE *ScaleConvertedToBaseOffset)(
 4787        ISpStreamFormatConverter *This,
 4788        ULONGLONG ullOffsetConvertedStream,
 4789        ULONGLONG *pullOffsetBaseStream);
 4790
 4791    HRESULT (STDMETHODCALLTYPE *ScaleBaseToConvertedOffset)(
 4792        ISpStreamFormatConverter *This,
 4793        ULONGLONG ullOffsetBaseStream,
 4794        ULONGLONG *pullOffsetConvertedStream);
 4795
 4796    END_INTERFACE
 4797} ISpStreamFormatConverterVtbl;
 4798
 4799interface ISpStreamFormatConverter {
 4800    CONST_VTBL ISpStreamFormatConverterVtbl* lpVtbl;
 4801};
 4802
 4803#ifdef COBJMACROS
 4804#ifndef WIDL_C_INLINE_WRAPPERS
 4805/*** IUnknown methods ***/
 4806#define ISpStreamFormatConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4807#define ISpStreamFormatConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
 4808#define ISpStreamFormatConverter_Release(This) (This)->lpVtbl->Release(This)
 4809/*** ISequentialStream methods ***/
 4810#define ISpStreamFormatConverter_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 4811#define ISpStreamFormatConverter_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 4812/*** IStream methods ***/
 4813#define ISpStreamFormatConverter_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 4814#define ISpStreamFormatConverter_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 4815#define ISpStreamFormatConverter_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 4816#define ISpStreamFormatConverter_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 4817#define ISpStreamFormatConverter_Revert(This) (This)->lpVtbl->Revert(This)
 4818#define ISpStreamFormatConverter_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 4819#define ISpStreamFormatConverter_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 4820#define ISpStreamFormatConverter_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 4821#define ISpStreamFormatConverter_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 4822/*** ISpStreamFormat methods ***/
 4823#define ISpStreamFormatConverter_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 4824/*** ISpStreamFormatConverter methods ***/
 4825#define ISpStreamFormatConverter_SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream) (This)->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream)
 4826#define ISpStreamFormatConverter_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
 4827#define ISpStreamFormatConverter_SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream) (This)->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream)
 4828#define ISpStreamFormatConverter_ResetSeekPosition(This) (This)->lpVtbl->ResetSeekPosition(This)
 4829#define ISpStreamFormatConverter_ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream) (This)->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream)
 4830#define ISpStreamFormatConverter_ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream) (This)->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream)
 4831#else
 4832/*** IUnknown methods ***/
 4833static inline HRESULT ISpStreamFormatConverter_QueryInterface(ISpStreamFormatConverter* This,REFIID riid,void **ppvObject) {
 4834    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4835}
 4836static inline ULONG ISpStreamFormatConverter_AddRef(ISpStreamFormatConverter* This) {
 4837    return This->lpVtbl->AddRef(This);
 4838}
 4839static inline ULONG ISpStreamFormatConverter_Release(ISpStreamFormatConverter* This) {
 4840    return This->lpVtbl->Release(This);
 4841}
 4842/*** ISequentialStream methods ***/
 4843static inline HRESULT ISpStreamFormatConverter_Read(ISpStreamFormatConverter* This,void *pv,ULONG cb,ULONG *pcbRead) {
 4844    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 4845}
 4846static inline HRESULT ISpStreamFormatConverter_Write(ISpStreamFormatConverter* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 4847    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 4848}
 4849/*** IStream methods ***/
 4850static inline HRESULT ISpStreamFormatConverter_Seek(ISpStreamFormatConverter* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 4851    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 4852}
 4853static inline HRESULT ISpStreamFormatConverter_SetSize(ISpStreamFormatConverter* This,ULARGE_INTEGER libNewSize) {
 4854    return This->lpVtbl->SetSize(This,libNewSize);
 4855}
 4856static inline HRESULT ISpStreamFormatConverter_CopyTo(ISpStreamFormatConverter* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 4857    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 4858}
 4859static inline HRESULT ISpStreamFormatConverter_Commit(ISpStreamFormatConverter* This,DWORD grfCommitFlags) {
 4860    return This->lpVtbl->Commit(This,grfCommitFlags);
 4861}
 4862static inline HRESULT ISpStreamFormatConverter_Revert(ISpStreamFormatConverter* This) {
 4863    return This->lpVtbl->Revert(This);
 4864}
 4865static inline HRESULT ISpStreamFormatConverter_LockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4866    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 4867}
 4868static inline HRESULT ISpStreamFormatConverter_UnlockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4869    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 4870}
 4871static inline HRESULT ISpStreamFormatConverter_Stat(ISpStreamFormatConverter* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 4872    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 4873}
 4874static inline HRESULT ISpStreamFormatConverter_Clone(ISpStreamFormatConverter* This,IStream **ppstm) {
 4875    return This->lpVtbl->Clone(This,ppstm);
 4876}
 4877/*** ISpStreamFormat methods ***/
 4878static inline HRESULT ISpStreamFormatConverter_GetFormat(ISpStreamFormatConverter* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 4879    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 4880}
 4881/*** ISpStreamFormatConverter methods ***/
 4882static inline HRESULT ISpStreamFormatConverter_SetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat *pStream,WINBOOL fSetFormatToBaseStreamFormat,WINBOOL fWriteToBaseStream) {
 4883    return This->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream);
 4884}
 4885static inline HRESULT ISpStreamFormatConverter_GetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat **ppStream) {
 4886    return This->lpVtbl->GetBaseStream(This,ppStream);
 4887}
 4888static inline HRESULT ISpStreamFormatConverter_SetFormat(ISpStreamFormatConverter* This,REFGUID rguidFormatIdOfConvertedStream,const WAVEFORMATEX *pWaveFormatExOfConvertedStream) {
 4889    return This->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream);
 4890}
 4891static inline HRESULT ISpStreamFormatConverter_ResetSeekPosition(ISpStreamFormatConverter* This) {
 4892    return This->lpVtbl->ResetSeekPosition(This);
 4893}
 4894static inline HRESULT ISpStreamFormatConverter_ScaleConvertedToBaseOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetConvertedStream,ULONGLONG *pullOffsetBaseStream) {
 4895    return This->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream);
 4896}
 4897static inline HRESULT ISpStreamFormatConverter_ScaleBaseToConvertedOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetBaseStream,ULONGLONG *pullOffsetConvertedStream) {
 4898    return This->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream);
 4899}
 4900#endif
 4901#endif
 4902
 4903#endif
 4904
 4905
 4906#endif  /* __ISpStreamFormatConverter_INTERFACE_DEFINED__ */
 4907
 4908typedef struct SPAUDIOSTATUS {
 4909    LONG cbFreeBuffSpace;
 4910    ULONG cbNonBlockingIO;
 4911    SPAUDIOSTATE State;
 4912    ULONGLONG CurSeekPos;
 4913    ULONGLONG CurDevicePos;
 4914    DWORD dwAudioLevel;
 4915    DWORD dwReserved2;
 4916} SPAUDIOSTATUS;
 4917typedef struct SPAUDIOBUFFERINFO {
 4918    ULONG ulMsMinNotification;
 4919    ULONG ulMsBufferSize;
 4920    ULONG ulMsEventBias;
 4921} SPAUDIOBUFFERINFO;
 4922/*****************************************************************************
 4923 * ISpAudio interface
 4924 */
 4925#ifndef __ISpAudio_INTERFACE_DEFINED__
 4926#define __ISpAudio_INTERFACE_DEFINED__
 4927
 4928DEFINE_GUID(IID_ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52);
 4929#if defined(__cplusplus) && !defined(CINTERFACE)
 4930MIDL_INTERFACE("c05c768f-fae8-4ec2-8e07-338321c12452")
 4931ISpAudio : public ISpStreamFormat
 4932{
 4933    virtual HRESULT STDMETHODCALLTYPE SetState(
 4934        SPAUDIOSTATE NewState,
 4935        ULONGLONG ullReserved) = 0;
 4936
 4937    virtual HRESULT STDMETHODCALLTYPE SetFormat(
 4938        REFGUID rguidFmtId,
 4939        const WAVEFORMATEX *pWaveFormatEx) = 0;
 4940
 4941    virtual HRESULT STDMETHODCALLTYPE GetStatus(
 4942        SPAUDIOSTATUS *pStatus) = 0;
 4943
 4944    virtual HRESULT STDMETHODCALLTYPE SetBufferInfo(
 4945        const SPAUDIOBUFFERINFO *pBuffInfo) = 0;
 4946
 4947    virtual HRESULT STDMETHODCALLTYPE GetBufferInfo(
 4948        SPAUDIOBUFFERINFO *pBuffInfo) = 0;
 4949
 4950    virtual HRESULT STDMETHODCALLTYPE GetDefaultFormat(
 4951        GUID *pFormatId,
 4952        WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
 4953
 4954    virtual HANDLE STDMETHODCALLTYPE EventHandle(
 4955        ) = 0;
 4956
 4957    virtual HRESULT STDMETHODCALLTYPE GetVolumeLevel(
 4958        ULONG *pLevel) = 0;
 4959
 4960    virtual HRESULT STDMETHODCALLTYPE SetVolumeLevel(
 4961        ULONG Level) = 0;
 4962
 4963    virtual HRESULT STDMETHODCALLTYPE GetBufferNotifySize(
 4964        ULONG *pcbSize) = 0;
 4965
 4966    virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
 4967        ULONG cbSize) = 0;
 4968
 4969};
 4970#ifdef __CRT_UUID_DECL
 4971__CRT_UUID_DECL(ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52)
 4972#endif
 4973#else
 4974typedef struct ISpAudioVtbl {
 4975    BEGIN_INTERFACE
 4976
 4977    /*** IUnknown methods ***/
 4978    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4979        ISpAudio *This,
 4980        REFIID riid,
 4981        void **ppvObject);
 4982
 4983    ULONG (STDMETHODCALLTYPE *AddRef)(
 4984        ISpAudio *This);
 4985
 4986    ULONG (STDMETHODCALLTYPE *Release)(
 4987        ISpAudio *This);
 4988
 4989    /*** ISequentialStream methods ***/
 4990    HRESULT (STDMETHODCALLTYPE *Read)(
 4991        ISpAudio *This,
 4992        void *pv,
 4993        ULONG cb,
 4994        ULONG *pcbRead);
 4995
 4996    HRESULT (STDMETHODCALLTYPE *Write)(
 4997        ISpAudio *This,
 4998        const void *pv,
 4999        ULONG cb,
 5000        ULONG *pcbWritten);
 5001
 5002    /*** IStream methods ***/
 5003    HRESULT (STDMETHODCALLTYPE *Seek)(
 5004        ISpAudio *This,
 5005        LARGE_INTEGER dlibMove,
 5006        DWORD dwOrigin,
 5007        ULARGE_INTEGER *plibNewPosition);
 5008
 5009    HRESULT (STDMETHODCALLTYPE *SetSize)(
 5010        ISpAudio *This,
 5011        ULARGE_INTEGER libNewSize);
 5012
 5013    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 5014        ISpAudio *This,
 5015        IStream *pstm,
 5016        ULARGE_INTEGER cb,
 5017        ULARGE_INTEGER *pcbRead,
 5018        ULARGE_INTEGER *pcbWritten);
 5019
 5020    HRESULT (STDMETHODCALLTYPE *Commit)(
 5021        ISpAudio *This,
 5022        DWORD grfCommitFlags);
 5023
 5024    HRESULT (STDMETHODCALLTYPE *Revert)(
 5025        ISpAudio *This);
 5026
 5027    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 5028        ISpAudio *This,
 5029        ULARGE_INTEGER libOffset,
 5030        ULARGE_INTEGER cb,
 5031        DWORD dwLockType);
 5032
 5033    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 5034        ISpAudio *This,
 5035        ULARGE_INTEGER libOffset,
 5036        ULARGE_INTEGER cb,
 5037        DWORD dwLockType);
 5038
 5039    HRESULT (STDMETHODCALLTYPE *Stat)(
 5040        ISpAudio *This,
 5041        STATSTG *pstatstg,
 5042        DWORD grfStatFlag);
 5043
 5044    HRESULT (STDMETHODCALLTYPE *Clone)(
 5045        ISpAudio *This,
 5046        IStream **ppstm);
 5047
 5048    /*** ISpStreamFormat methods ***/
 5049    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 5050        ISpAudio *This,
 5051        GUID *pguidFormatId,
 5052        WAVEFORMATEX **ppCoMemWaveFormatEx);
 5053
 5054    /*** ISpAudio methods ***/
 5055    HRESULT (STDMETHODCALLTYPE *SetState)(
 5056        ISpAudio *This,
 5057        SPAUDIOSTATE NewState,
 5058        ULONGLONG ullReserved);
 5059
 5060    HRESULT (STDMETHODCALLTYPE *SetFormat)(
 5061        ISpAudio *This,
 5062        REFGUID rguidFmtId,
 5063        const WAVEFORMATEX *pWaveFormatEx);
 5064
 5065    HRESULT (STDMETHODCALLTYPE *GetStatus)(
 5066        ISpAudio *This,
 5067        SPAUDIOSTATUS *pStatus);
 5068
 5069    HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
 5070        ISpAudio *This,
 5071        const SPAUDIOBUFFERINFO *pBuffInfo);
 5072
 5073    HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
 5074        ISpAudio *This,
 5075        SPAUDIOBUFFERINFO *pBuffInfo);
 5076
 5077    HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
 5078        ISpAudio *This,
 5079        GUID *pFormatId,
 5080        WAVEFORMATEX **ppCoMemWaveFormatEx);
 5081
 5082    HANDLE (STDMETHODCALLTYPE *EventHandle)(
 5083        ISpAudio *This);
 5084
 5085    HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
 5086        ISpAudio *This,
 5087        ULONG *pLevel);
 5088
 5089    HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
 5090        ISpAudio *This,
 5091        ULONG Level);
 5092
 5093    HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
 5094        ISpAudio *This,
 5095        ULONG *pcbSize);
 5096
 5097    HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
 5098        ISpAudio *This,
 5099        ULONG cbSize);
 5100
 5101    END_INTERFACE
 5102} ISpAudioVtbl;
 5103
 5104interface ISpAudio {
 5105    CONST_VTBL ISpAudioVtbl* lpVtbl;
 5106};
 5107
 5108#ifdef COBJMACROS
 5109#ifndef WIDL_C_INLINE_WRAPPERS
 5110/*** IUnknown methods ***/
 5111#define ISpAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5112#define ISpAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
 5113#define ISpAudio_Release(This) (This)->lpVtbl->Release(This)
 5114/*** ISequentialStream methods ***/
 5115#define ISpAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 5116#define ISpAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 5117/*** IStream methods ***/
 5118#define ISpAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 5119#define ISpAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 5120#define ISpAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 5121#define ISpAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 5122#define ISpAudio_Revert(This) (This)->lpVtbl->Revert(This)
 5123#define ISpAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 5124#define ISpAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 5125#define ISpAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 5126#define ISpAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 5127/*** ISpStreamFormat methods ***/
 5128#define ISpAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 5129/*** ISpAudio methods ***/
 5130#define ISpAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
 5131#define ISpAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
 5132#define ISpAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
 5133#define ISpAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
 5134#define ISpAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
 5135#define ISpAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
 5136#define ISpAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
 5137#define ISpAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
 5138#define ISpAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
 5139#define ISpAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
 5140#define ISpAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
 5141#else
 5142/*** IUnknown methods ***/
 5143static inline HRESULT ISpAudio_QueryInterface(ISpAudio* This,REFIID riid,void **ppvObject) {
 5144    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5145}
 5146static inline ULONG ISpAudio_AddRef(ISpAudio* This) {
 5147    return This->lpVtbl->AddRef(This);
 5148}
 5149static inline ULONG ISpAudio_Release(ISpAudio* This) {
 5150    return This->lpVtbl->Release(This);
 5151}
 5152/*** ISequentialStream methods ***/
 5153static inline HRESULT ISpAudio_Read(ISpAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
 5154    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 5155}
 5156static inline HRESULT ISpAudio_Write(ISpAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 5157    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 5158}
 5159/*** IStream methods ***/
 5160static inline HRESULT ISpAudio_Seek(ISpAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 5161    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 5162}
 5163static inline HRESULT ISpAudio_SetSize(ISpAudio* This,ULARGE_INTEGER libNewSize) {
 5164    return This->lpVtbl->SetSize(This,libNewSize);
 5165}
 5166static inline HRESULT ISpAudio_CopyTo(ISpAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 5167    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 5168}
 5169static inline HRESULT ISpAudio_Commit(ISpAudio* This,DWORD grfCommitFlags) {
 5170    return This->lpVtbl->Commit(This,grfCommitFlags);
 5171}
 5172static inline HRESULT ISpAudio_Revert(ISpAudio* This) {
 5173    return This->lpVtbl->Revert(This);
 5174}
 5175static inline HRESULT ISpAudio_LockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 5176    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 5177}
 5178static inline HRESULT ISpAudio_UnlockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 5179    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 5180}
 5181static inline HRESULT ISpAudio_Stat(ISpAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 5182    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 5183}
 5184static inline HRESULT ISpAudio_Clone(ISpAudio* This,IStream **ppstm) {
 5185    return This->lpVtbl->Clone(This,ppstm);
 5186}
 5187/*** ISpStreamFormat methods ***/
 5188static inline HRESULT ISpAudio_GetFormat(ISpAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 5189    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 5190}
 5191/*** ISpAudio methods ***/
 5192static inline HRESULT ISpAudio_SetState(ISpAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
 5193    return This->lpVtbl->SetState(This,NewState,ullReserved);
 5194}
 5195static inline HRESULT ISpAudio_SetFormat(ISpAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
 5196    return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
 5197}
 5198static inline HRESULT ISpAudio_GetStatus(ISpAudio* This,SPAUDIOSTATUS *pStatus) {
 5199    return This->lpVtbl->GetStatus(This,pStatus);
 5200}
 5201static inline HRESULT ISpAudio_SetBufferInfo(ISpAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
 5202    return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
 5203}
 5204static inline HRESULT ISpAudio_GetBufferInfo(ISpAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
 5205    return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
 5206}
 5207static inline HRESULT ISpAudio_GetDefaultFormat(ISpAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 5208    return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
 5209}
 5210static inline HANDLE ISpAudio_EventHandle(ISpAudio* This) {
 5211    return This->lpVtbl->EventHandle(This);
 5212}
 5213static inline HRESULT ISpAudio_GetVolumeLevel(ISpAudio* This,ULONG *pLevel) {
 5214    return This->lpVtbl->GetVolumeLevel(This,pLevel);
 5215}
 5216static inline HRESULT ISpAudio_SetVolumeLevel(ISpAudio* This,ULONG Level) {
 5217    return This->lpVtbl->SetVolumeLevel(This,Level);
 5218}
 5219static inline HRESULT ISpAudio_GetBufferNotifySize(ISpAudio* This,ULONG *pcbSize) {
 5220    return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
 5221}
 5222static inline HRESULT ISpAudio_SetBufferNotifySize(ISpAudio* This,ULONG cbSize) {
 5223    return This->lpVtbl->SetBufferNotifySize(This,cbSize);
 5224}
 5225#endif
 5226#endif
 5227
 5228#endif
 5229
 5230
 5231#endif  /* __ISpAudio_INTERFACE_DEFINED__ */
 5232
 5233/*****************************************************************************
 5234 * ISpMMSysAudio interface
 5235 */
 5236#ifndef __ISpMMSysAudio_INTERFACE_DEFINED__
 5237#define __ISpMMSysAudio_INTERFACE_DEFINED__
 5238
 5239DEFINE_GUID(IID_ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab);
 5240#if defined(__cplusplus) && !defined(CINTERFACE)
 5241MIDL_INTERFACE("15806f6e-1d70-4b48-98e6-3b1a007509ab")
 5242ISpMMSysAudio : public ISpAudio
 5243{
 5244    virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
 5245        UINT *puDeviceId) = 0;
 5246
 5247    virtual HRESULT STDMETHODCALLTYPE SetDeviceId(
 5248        UINT uDeviceId) = 0;
 5249
 5250    virtual HRESULT STDMETHODCALLTYPE GetMMHandle(
 5251        void **pHandle) = 0;
 5252
 5253    virtual HRESULT STDMETHODCALLTYPE GetLineId(
 5254        UINT *puLineId) = 0;
 5255
 5256    virtual HRESULT STDMETHODCALLTYPE SetLineId(
 5257        UINT uLineId) = 0;
 5258
 5259};
 5260#ifdef __CRT_UUID_DECL
 5261__CRT_UUID_DECL(ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab)
 5262#endif
 5263#else
 5264typedef struct ISpMMSysAudioVtbl {
 5265    BEGIN_INTERFACE
 5266
 5267    /*** IUnknown methods ***/
 5268    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5269        ISpMMSysAudio *This,
 5270        REFIID riid,
 5271        void **ppvObject);
 5272
 5273    ULONG (STDMETHODCALLTYPE *AddRef)(
 5274        ISpMMSysAudio *This);
 5275
 5276    ULONG (STDMETHODCALLTYPE *Release)(
 5277        ISpMMSysAudio *This);
 5278
 5279    /*** ISequentialStream methods ***/
 5280    HRESULT (STDMETHODCALLTYPE *Read)(
 5281        ISpMMSysAudio *This,
 5282        void *pv,
 5283        ULONG cb,
 5284        ULONG *pcbRead);
 5285
 5286    HRESULT (STDMETHODCALLTYPE *Write)(
 5287        ISpMMSysAudio *This,
 5288        const void *pv,
 5289        ULONG cb,
 5290        ULONG *pcbWritten);
 5291
 5292    /*** IStream methods ***/
 5293    HRESULT (STDMETHODCALLTYPE *Seek)(
 5294        ISpMMSysAudio *This,
 5295        LARGE_INTEGER dlibMove,
 5296        DWORD dwOrigin,
 5297        ULARGE_INTEGER *plibNewPosition);
 5298
 5299    HRESULT (STDMETHODCALLTYPE *SetSize)(
 5300        ISpMMSysAudio *This,
 5301        ULARGE_INTEGER libNewSize);
 5302
 5303    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 5304        ISpMMSysAudio *This,
 5305        IStream *pstm,
 5306        ULARGE_INTEGER cb,
 5307        ULARGE_INTEGER *pcbRead,
 5308        ULARGE_INTEGER *pcbWritten);
 5309
 5310    HRESULT (STDMETHODCALLTYPE *Commit)(
 5311        ISpMMSysAudio *This,
 5312        DWORD grfCommitFlags);
 5313
 5314    HRESULT (STDMETHODCALLTYPE *Revert)(
 5315        ISpMMSysAudio *This);
 5316
 5317    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 5318        ISpMMSysAudio *This,
 5319        ULARGE_INTEGER libOffset,
 5320        ULARGE_INTEGER cb,
 5321        DWORD dwLockType);
 5322
 5323    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 5324        ISpMMSysAudio *This,
 5325        ULARGE_INTEGER libOffset,
 5326        ULARGE_INTEGER cb,
 5327        DWORD dwLockType);
 5328
 5329    HRESULT (STDMETHODCALLTYPE *Stat)(
 5330        ISpMMSysAudio *This,
 5331        STATSTG *pstatstg,
 5332        DWORD grfStatFlag);
 5333
 5334    HRESULT (STDMETHODCALLTYPE *Clone)(
 5335        ISpMMSysAudio *This,
 5336        IStream **ppstm);
 5337
 5338    /*** ISpStreamFormat methods ***/
 5339    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 5340        ISpMMSysAudio *This,
 5341        GUID *pguidFormatId,
 5342        WAVEFORMATEX **ppCoMemWaveFormatEx);
 5343
 5344    /*** ISpAudio methods ***/
 5345    HRESULT (STDMETHODCALLTYPE *SetState)(
 5346        ISpMMSysAudio *This,
 5347        SPAUDIOSTATE NewState,
 5348        ULONGLONG ullReserved);
 5349
 5350    HRESULT (STDMETHODCALLTYPE *SetFormat)(
 5351        ISpMMSysAudio *This,
 5352        REFGUID rguidFmtId,
 5353        const WAVEFORMATEX *pWaveFormatEx);
 5354
 5355    HRESULT (STDMETHODCALLTYPE *GetStatus)(
 5356        ISpMMSysAudio *This,
 5357        SPAUDIOSTATUS *pStatus);
 5358
 5359    HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
 5360        ISpMMSysAudio *This,
 5361        const SPAUDIOBUFFERINFO *pBuffInfo);
 5362
 5363    HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
 5364        ISpMMSysAudio *This,
 5365        SPAUDIOBUFFERINFO *pBuffInfo);
 5366
 5367    HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
 5368        ISpMMSysAudio *This,
 5369        GUID *pFormatId,
 5370        WAVEFORMATEX **ppCoMemWaveFormatEx);
 5371
 5372    HANDLE (STDMETHODCALLTYPE *EventHandle)(
 5373        ISpMMSysAudio *This);
 5374
 5375    HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
 5376        ISpMMSysAudio *This,
 5377        ULONG *pLevel);
 5378
 5379    HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
 5380        ISpMMSysAudio *This,
 5381        ULONG Level);
 5382
 5383    HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
 5384        ISpMMSysAudio *This,
 5385        ULONG *pcbSize);
 5386
 5387    HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
 5388        ISpMMSysAudio *This,
 5389        ULONG cbSize);
 5390
 5391    /*** ISpMMSysAudio methods ***/
 5392    HRESULT (STDMETHODCALLTYPE *GetDeviceId)(
 5393        ISpMMSysAudio *This,
 5394        UINT *puDeviceId);
 5395
 5396    HRESULT (STDMETHODCALLTYPE *SetDeviceId)(
 5397        ISpMMSysAudio *This,
 5398        UINT uDeviceId);
 5399
 5400    HRESULT (STDMETHODCALLTYPE *GetMMHandle)(
 5401        ISpMMSysAudio *This,
 5402        void **pHandle);
 5403
 5404    HRESULT (STDMETHODCALLTYPE *GetLineId)(
 5405        ISpMMSysAudio *This,
 5406        UINT *puLineId);
 5407
 5408    HRESULT (STDMETHODCALLTYPE *SetLineId)(
 5409        ISpMMSysAudio *This,
 5410        UINT uLineId);
 5411
 5412    END_INTERFACE
 5413} ISpMMSysAudioVtbl;
 5414
 5415interface ISpMMSysAudio {
 5416    CONST_VTBL ISpMMSysAudioVtbl* lpVtbl;
 5417};
 5418
 5419#ifdef COBJMACROS
 5420#ifndef WIDL_C_INLINE_WRAPPERS
 5421/*** IUnknown methods ***/
 5422#define ISpMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5423#define ISpMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
 5424#define ISpMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
 5425/*** ISequentialStream methods ***/
 5426#define ISpMMSysAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 5427#define ISpMMSysAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 5428/*** IStream methods ***/
 5429#define ISpMMSysAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 5430#define ISpMMSysAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 5431#define ISpMMSysAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 5432#define ISpMMSysAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 5433#define ISpMMSysAudio_Revert(This) (This)->lpVtbl->Revert(This)
 5434#define ISpMMSysAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 5435#define ISpMMSysAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 5436#define ISpMMSysAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 5437#define ISpMMSysAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 5438/*** ISpStreamFormat methods ***/
 5439#define ISpMMSysAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 5440/*** ISpAudio methods ***/
 5441#define ISpMMSysAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
 5442#define ISpMMSysAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
 5443#define ISpMMSysAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
 5444#define ISpMMSysAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
 5445#define ISpMMSysAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
 5446#define ISpMMSysAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
 5447#define ISpMMSysAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
 5448#define ISpMMSysAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
 5449#define ISpMMSysAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
 5450#define ISpMMSysAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
 5451#define ISpMMSysAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
 5452/*** ISpMMSysAudio methods ***/
 5453#define ISpMMSysAudio_GetDeviceId(This,puDeviceId) (This)->lpVtbl->GetDeviceId(This,puDeviceId)
 5454#define ISpMMSysAudio_SetDeviceId(This,uDeviceId) (This)->lpVtbl->SetDeviceId(This,uDeviceId)
 5455#define ISpMMSysAudio_GetMMHandle(This,pHandle) (This)->lpVtbl->GetMMHandle(This,pHandle)
 5456#define ISpMMSysAudio_GetLineId(This,puLineId) (This)->lpVtbl->GetLineId(This,puLineId)
 5457#define ISpMMSysAudio_SetLineId(This,uLineId) (This)->lpVtbl->SetLineId(This,uLineId)
 5458#else
 5459/*** IUnknown methods ***/
 5460static inline HRESULT ISpMMSysAudio_QueryInterface(ISpMMSysAudio* This,REFIID riid,void **ppvObject) {
 5461    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5462}
 5463static inline ULONG ISpMMSysAudio_AddRef(ISpMMSysAudio* This) {
 5464    return This->lpVtbl->AddRef(This);
 5465}
 5466static inline ULONG ISpMMSysAudio_Release(ISpMMSysAudio* This) {
 5467    return This->lpVtbl->Release(This);
 5468}
 5469/*** ISequentialStream methods ***/
 5470static inline HRESULT ISpMMSysAudio_Read(ISpMMSysAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
 5471    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 5472}
 5473static inline HRESULT ISpMMSysAudio_Write(ISpMMSysAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 5474    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 5475}
 5476/*** IStream methods ***/
 5477static inline HRESULT ISpMMSysAudio_Seek(ISpMMSysAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 5478    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 5479}
 5480static inline HRESULT ISpMMSysAudio_SetSize(ISpMMSysAudio* This,ULARGE_INTEGER libNewSize) {
 5481    return This->lpVtbl->SetSize(This,libNewSize);
 5482}
 5483static inline HRESULT ISpMMSysAudio_CopyTo(ISpMMSysAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 5484    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 5485}
 5486static inline HRESULT ISpMMSysAudio_Commit(ISpMMSysAudio* This,DWORD grfCommitFlags) {
 5487    return This->lpVtbl->Commit(This,grfCommitFlags);
 5488}
 5489static inline HRESULT ISpMMSysAudio_Revert(ISpMMSysAudio* This) {
 5490    return This->lpVtbl->Revert(This);
 5491}
 5492static inline HRESULT ISpMMSysAudio_LockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 5493    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 5494}
 5495static inline HRESULT ISpMMSysAudio_UnlockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 5496    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 5497}
 5498static inline HRESULT ISpMMSysAudio_Stat(ISpMMSysAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 5499    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 5500}
 5501static inline HRESULT ISpMMSysAudio_Clone(ISpMMSysAudio* This,IStream **ppstm) {
 5502    return This->lpVtbl->Clone(This,ppstm);
 5503}
 5504/*** ISpStreamFormat methods ***/
 5505static inline HRESULT ISpMMSysAudio_GetFormat(ISpMMSysAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 5506    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 5507}
 5508/*** ISpAudio methods ***/
 5509static inline HRESULT ISpMMSysAudio_SetState(ISpMMSysAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
 5510    return This->lpVtbl->SetState(This,NewState,ullReserved);
 5511}
 5512static inline HRESULT ISpMMSysAudio_SetFormat(ISpMMSysAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
 5513    return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
 5514}
 5515static inline HRESULT ISpMMSysAudio_GetStatus(ISpMMSysAudio* This,SPAUDIOSTATUS *pStatus) {
 5516    return This->lpVtbl->GetStatus(This,pStatus);
 5517}
 5518static inline HRESULT ISpMMSysAudio_SetBufferInfo(ISpMMSysAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
 5519    return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
 5520}
 5521static inline HRESULT ISpMMSysAudio_GetBufferInfo(ISpMMSysAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
 5522    return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
 5523}
 5524static inline HRESULT ISpMMSysAudio_GetDefaultFormat(ISpMMSysAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 5525    return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
 5526}
 5527static inline HANDLE ISpMMSysAudio_EventHandle(ISpMMSysAudio* This) {
 5528    return This->lpVtbl->EventHandle(This);
 5529}
 5530static inline HRESULT ISpMMSysAudio_GetVolumeLevel(ISpMMSysAudio* This,ULONG *pLevel) {
 5531    return This->lpVtbl->GetVolumeLevel(This,pLevel);
 5532}
 5533static inline HRESULT ISpMMSysAudio_SetVolumeLevel(ISpMMSysAudio* This,ULONG Level) {
 5534    return This->lpVtbl->SetVolumeLevel(This,Level);
 5535}
 5536static inline HRESULT ISpMMSysAudio_GetBufferNotifySize(ISpMMSysAudio* This,ULONG *pcbSize) {
 5537    return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
 5538}
 5539static inline HRESULT ISpMMSysAudio_SetBufferNotifySize(ISpMMSysAudio* This,ULONG cbSize) {
 5540    return This->lpVtbl->SetBufferNotifySize(This,cbSize);
 5541}
 5542/*** ISpMMSysAudio methods ***/
 5543static inline HRESULT ISpMMSysAudio_GetDeviceId(ISpMMSysAudio* This,UINT *puDeviceId) {
 5544    return This->lpVtbl->GetDeviceId(This,puDeviceId);
 5545}
 5546static inline HRESULT ISpMMSysAudio_SetDeviceId(ISpMMSysAudio* This,UINT uDeviceId) {
 5547    return This->lpVtbl->SetDeviceId(This,uDeviceId);
 5548}
 5549static inline HRESULT ISpMMSysAudio_GetMMHandle(ISpMMSysAudio* This,void **pHandle) {
 5550    return This->lpVtbl->GetMMHandle(This,pHandle);
 5551}
 5552static inline HRESULT ISpMMSysAudio_GetLineId(ISpMMSysAudio* This,UINT *puLineId) {
 5553    return This->lpVtbl->GetLineId(This,puLineId);
 5554}
 5555static inline HRESULT ISpMMSysAudio_SetLineId(ISpMMSysAudio* This,UINT uLineId) {
 5556    return This->lpVtbl->SetLineId(This,uLineId);
 5557}
 5558#endif
 5559#endif
 5560
 5561#endif
 5562
 5563
 5564#endif  /* __ISpMMSysAudio_INTERFACE_DEFINED__ */
 5565
 5566/*****************************************************************************
 5567 * ISpTranscript interface
 5568 */
 5569#ifndef __ISpTranscript_INTERFACE_DEFINED__
 5570#define __ISpTranscript_INTERFACE_DEFINED__
 5571
 5572DEFINE_GUID(IID_ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
 5573#if defined(__cplusplus) && !defined(CINTERFACE)
 5574MIDL_INTERFACE("10f63bce-201a-11d3-ac70-00c04f8ee6c0")
 5575ISpTranscript : public IUnknown
 5576{
 5577    virtual HRESULT STDMETHODCALLTYPE GetTranscript(
 5578        LPWSTR *ppszTranscript) = 0;
 5579
 5580    virtual HRESULT STDMETHODCALLTYPE AppendTranscript(
 5581        LPCWSTR pszTranscript) = 0;
 5582
 5583};
 5584#ifdef __CRT_UUID_DECL
 5585__CRT_UUID_DECL(ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
 5586#endif
 5587#else
 5588typedef struct ISpTranscriptVtbl {
 5589    BEGIN_INTERFACE
 5590
 5591    /*** IUnknown methods ***/
 5592    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5593        ISpTranscript *This,
 5594        REFIID riid,
 5595        void **ppvObject);
 5596
 5597    ULONG (STDMETHODCALLTYPE *AddRef)(
 5598        ISpTranscript *This);
 5599
 5600    ULONG (STDMETHODCALLTYPE *Release)(
 5601        ISpTranscript *This);
 5602
 5603    /*** ISpTranscript methods ***/
 5604    HRESULT (STDMETHODCALLTYPE *GetTranscript)(
 5605        ISpTranscript *This,
 5606        LPWSTR *ppszTranscript);
 5607
 5608    HRESULT (STDMETHODCALLTYPE *AppendTranscript)(
 5609        ISpTranscript *This,
 5610        LPCWSTR pszTranscript);
 5611
 5612    END_INTERFACE
 5613} ISpTranscriptVtbl;
 5614
 5615interface ISpTranscript {
 5616    CONST_VTBL ISpTranscriptVtbl* lpVtbl;
 5617};
 5618
 5619#ifdef COBJMACROS
 5620#ifndef WIDL_C_INLINE_WRAPPERS
 5621/*** IUnknown methods ***/
 5622#define ISpTranscript_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5623#define ISpTranscript_AddRef(This) (This)->lpVtbl->AddRef(This)
 5624#define ISpTranscript_Release(This) (This)->lpVtbl->Release(This)
 5625/*** ISpTranscript methods ***/
 5626#define ISpTranscript_GetTranscript(This,ppszTranscript) (This)->lpVtbl->GetTranscript(This,ppszTranscript)
 5627#define ISpTranscript_AppendTranscript(This,pszTranscript) (This)->lpVtbl->AppendTranscript(This,pszTranscript)
 5628#else
 5629/*** IUnknown methods ***/
 5630static inline HRESULT ISpTranscript_QueryInterface(ISpTranscript* This,REFIID riid,void **ppvObject) {
 5631    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5632}
 5633static inline ULONG ISpTranscript_AddRef(ISpTranscript* This) {
 5634    return This->lpVtbl->AddRef(This);
 5635}
 5636static inline ULONG ISpTranscript_Release(ISpTranscript* This) {
 5637    return This->lpVtbl->Release(This);
 5638}
 5639/*** ISpTranscript methods ***/
 5640static inline HRESULT ISpTranscript_GetTranscript(ISpTranscript* This,LPWSTR *ppszTranscript) {
 5641    return This->lpVtbl->GetTranscript(This,ppszTranscript);
 5642}
 5643static inline HRESULT ISpTranscript_AppendTranscript(ISpTranscript* This,LPCWSTR pszTranscript) {
 5644    return This->lpVtbl->AppendTranscript(This,pszTranscript);
 5645}
 5646#endif
 5647#endif
 5648
 5649#endif
 5650
 5651
 5652#endif  /* __ISpTranscript_INTERFACE_DEFINED__ */
 5653
 5654typedef WCHAR SPPHONEID;
 5655typedef LPWSTR PSPPHONEID;
 5656typedef LPCWSTR PCSPPHONEID;
 5657typedef struct SPPHRASEELEMENT {
 5658    ULONG ulAudioTimeOffset;
 5659    ULONG ulAudioSizeTime;
 5660    ULONG ulAudioStreamOffset;
 5661    ULONG ulAudioSizeBytes;
 5662    ULONG ulRetainedStreamOffset;
 5663    ULONG ulRetainedSizeBytes;
 5664    LPCWSTR pszDisplayText;
 5665    LPCWSTR pszLexicalForm;
 5666    const SPPHONEID *pszPronunciation;
 5667    BYTE bDisplayAttributes;
 5668    signed char RequiredConfidence;
 5669    signed char ActualConfidence;
 5670    BYTE Reserved;
 5671    float SREngineConfidence;
 5672} SPPHRASEELEMENT;
 5673typedef struct SPPHRASERULE SPPHRASERULE;
 5674typedef struct SPPHRASEPROPERTY SPPHRASEPROPERTY;
 5675struct SPPHRASERULE {
 5676    LPCWSTR pszName;
 5677    ULONG ulId;
 5678    ULONG ulFirstElement;
 5679    ULONG ulCountOfElements;
 5680    const SPPHRASERULE *pNextSibling;
 5681    const SPPHRASERULE *pFirstChild;
 5682    float SREngineConfidence;
 5683    signed char Confidence;
 5684};
 5685struct SPPHRASEPROPERTY {
 5686    LPCWSTR pszName;
 5687    __C89_NAMELESS union {
 5688        ULONG ulId;
 5689        __C89_NAMELESS struct {
 5690            byte bType;
 5691            byte bReserved;
 5692            unsigned short usArrayIndex;
 5693        } __C89_NAMELESSSTRUCTNAME;
 5694    } __C89_NAMELESSUNIONNAME;
 5695    LPCWSTR pszValue;
 5696    VARIANT vValue;
 5697    ULONG ulFirstElement;
 5698    ULONG ulCountOfElements;
 5699    const SPPHRASEPROPERTY *pNextSibling;
 5700    const SPPHRASEPROPERTY *pFirstChild;
 5701    float SREngineConfidence;
 5702    signed char Confidence;
 5703};
 5704typedef struct SPPHRASEREPLACEMENT {
 5705    BYTE bDisplayAttributes;
 5706    LPCWSTR pszReplacementText;
 5707    ULONG ulFirstElement;
 5708    ULONG ulCountOfElements;
 5709} SPPHRASEREPLACEMENT;
 5710typedef struct SPSEMANTICERRORINFO {
 5711    ULONG ulLineNumber;
 5712    LPWSTR pszScriptLine;
 5713    LPWSTR pszSource;
 5714    LPWSTR pszDescription;
 5715    HRESULT hrResultCode;
 5716} SPSEMANTICERRORINFO;
 5717typedef struct SPPHRASE_50 {
 5718    ULONG cbSize;
 5719    WORD LangID;
 5720    WORD wHomophoneGroupId;
 5721    ULONGLONG ullGrammarID;
 5722    ULONGLONG ftStartTime;
 5723    ULONGLONG ullAudioStreamPosition;
 5724    ULONG ulAudioSizeBytes;
 5725    ULONG ulRetainedSizeBytes;
 5726    ULONG ulAudioSizeTime;
 5727    SPPHRASERULE Rule;
 5728    const SPPHRASEPROPERTY *pProperties;
 5729    const SPPHRASEELEMENT *pElements;
 5730    ULONG cReplacements;
 5731    const SPPHRASEREPLACEMENT *pReplacements;
 5732    GUID SREngineID;
 5733    ULONG ulSREnginePrivateDataSize;
 5734    const BYTE *pSREnginePrivateData;
 5735} SPPHRASE_50;
 5736#define SP_SPPHRASESIZE_500 sizeof (SPPHRASE_50)
 5737#ifdef __cplusplus
 5738typedef struct SPPHRASE_53 : public SPPHRASE_50 {
 5739  LPWSTR pSML;
 5740  SPSEMANTICERRORINFO* pSemanticErrorInfo;
 5741} SPPHRASE_53;
 5742#else
 5743typedef struct SPPHRASE_53 {
 5744    ULONG cbSize;
 5745    WORD LangID;
 5746    WORD wHomophoneGroupId;
 5747    ULONGLONG ullGrammarID;
 5748    ULONGLONG ftStartTime;
 5749    ULONGLONG ullAudioStreamPosition;
 5750    ULONG ulAudioSizeBytes;
 5751    ULONG ulRetainedSizeBytes;
 5752    ULONG ulAudioSizeTime;
 5753    SPPHRASERULE Rule;
 5754    const SPPHRASEPROPERTY *pProperties;
 5755    const SPPHRASEELEMENT *pElements;
 5756    ULONG cReplacements;
 5757    const SPPHRASEREPLACEMENT *pReplacements;
 5758    GUID SREngineID;
 5759    ULONG ulSREnginePrivateDataSize;
 5760    const BYTE *pSREnginePrivateData;
 5761    LPWSTR pSML;
 5762    SPSEMANTICERRORINFO *pSemanticErrorInfo;
 5763} SPPHRASE_53;
 5764#endif
 5765#define SP_SPPHRASESIZE_530 sizeof (SPPHRASE_53)
 5766#ifdef __cplusplus
 5767typedef struct SPPHRASE : public SPPHRASE_53 {
 5768  SPSEMANTICFORMAT SemanticTagFormat;
 5769} SPPHRASE;
 5770#else
 5771typedef struct SPPHRASE {
 5772    ULONG cbSize;
 5773    WORD LangID;
 5774    WORD wHomophoneGroupId;
 5775    ULONGLONG ullGrammarID;
 5776    ULONGLONG ftStartTime;
 5777    ULONGLONG ullAudioStreamPosition;
 5778    ULONG ulAudioSizeBytes;
 5779    ULONG ulRetainedSizeBytes;
 5780    ULONG ulAudioSizeTime;
 5781    SPPHRASERULE Rule;
 5782    const SPPHRASEPROPERTY *pProperties;
 5783    const SPPHRASEELEMENT *pElements;
 5784    ULONG cReplacements;
 5785    const SPPHRASEREPLACEMENT *pReplacements;
 5786    GUID SREngineID;
 5787    ULONG ulSREnginePrivateDataSize;
 5788    const BYTE *pSREnginePrivateData;
 5789    LPWSTR pSML;
 5790    SPSEMANTICERRORINFO *pSemanticErrorInfo;
 5791    SPSEMANTICFORMAT SemanticTagFormat;
 5792} SPPHRASE;
 5793#endif
 5794typedef struct SPSERIALIZEDPHRASE {
 5795    ULONG ulSerializedSize;
 5796} SPSERIALIZEDPHRASE;
 5797typedef struct SPRULE {
 5798    LPCWSTR pszRuleName;
 5799    ULONG ulRuleId;
 5800    DWORD dwAttributes;
 5801} SPRULE;
 5802typedef struct SPBINARYGRAMMAR {
 5803    ULONG ulTotalSerializedSize;
 5804} SPBINARYGRAMMAR;
 5805#if 0
 5806typedef void *SPSTATEHANDLE;
 5807#else
 5808DECLARE_HANDLE(SPSTATEHANDLE);
 5809#endif
 5810typedef struct SPWORDPRONUNCIATION {
 5811    struct SPWORDPRONUNCIATION *pNextWordPronunciation;
 5812    SPLEXICONTYPE eLexiconType;
 5813    WORD LangID;
 5814    WORD wPronunciationFlags;
 5815    SPPARTOFSPEECH ePartOfSpeech;
 5816    SPPHONEID szPronunciation[1];
 5817} SPWORDPRONUNCIATION;
 5818typedef struct SPWORDPRONUNCIATIONLIST {
 5819    ULONG ulSize;
 5820    BYTE *pvBuffer;
 5821    SPWORDPRONUNCIATION *pFirstWordPronunciation;
 5822} SPWORDPRONUNCIATIONLIST;
 5823typedef struct SPWORD {
 5824    struct SPWORD *pNextWord;
 5825    WORD LangID;
 5826    WORD wReserved;
 5827    SPWORDTYPE eWordType;
 5828    LPWSTR pszWord;
 5829    SPWORDPRONUNCIATION *pFirstWordPronunciation;
 5830} SPWORD;
 5831typedef struct SPWORDLIST {
 5832    ULONG ulSize;
 5833    BYTE *pvBuffer;
 5834    SPWORD *pFirstWord;
 5835} SPWORDLIST;
 5836/*****************************************************************************
 5837 * ISpLexicon interface
 5838 */
 5839#ifndef __ISpLexicon_INTERFACE_DEFINED__
 5840#define __ISpLexicon_INTERFACE_DEFINED__
 5841
 5842DEFINE_GUID(IID_ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58);
 5843#if defined(__cplusplus) && !defined(CINTERFACE)
 5844MIDL_INTERFACE("da41a7c2-5383-4db2-916b-6c1719e3db58")
 5845ISpLexicon : public IUnknown
 5846{
 5847    virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
 5848        LPCWSTR pszWord,
 5849        WORD LangID,
 5850        DWORD dwFlags,
 5851        SPWORDPRONUNCIATIONLIST *pWordPronunciationList) = 0;
 5852
 5853    virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
 5854        LPCWSTR pszWord,
 5855        WORD LangID,
 5856        SPPARTOFSPEECH ePartOfSpeech,
 5857        PCSPPHONEID pszPronunciation) = 0;
 5858
 5859    virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
 5860        LPCWSTR pszWord,
 5861        WORD LangID,
 5862        SPPARTOFSPEECH ePartOfSpeech,
 5863        PCSPPHONEID pszPronunciation) = 0;
 5864
 5865    virtual HRESULT STDMETHODCALLTYPE GetGeneration(
 5866        DWORD *pdwGeneration) = 0;
 5867
 5868    virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
 5869        DWORD dwFlags,
 5870        DWORD *pdwGeneration,
 5871        SPWORDLIST *pWordList) = 0;
 5872
 5873    virtual HRESULT STDMETHODCALLTYPE GetWords(
 5874        DWORD dwFlags,
 5875        DWORD *pdwGeneration,
 5876        DWORD *pdwCookie,
 5877        SPWORDLIST *pWordList) = 0;
 5878
 5879};
 5880#ifdef __CRT_UUID_DECL
 5881__CRT_UUID_DECL(ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58)
 5882#endif
 5883#else
 5884typedef struct ISpLexiconVtbl {
 5885    BEGIN_INTERFACE
 5886
 5887    /*** IUnknown methods ***/
 5888    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5889        ISpLexicon *This,
 5890        REFIID riid,
 5891        void **ppvObject);
 5892
 5893    ULONG (STDMETHODCALLTYPE *AddRef)(
 5894        ISpLexicon *This);
 5895
 5896    ULONG (STDMETHODCALLTYPE *Release)(
 5897        ISpLexicon *This);
 5898
 5899    /*** ISpLexicon methods ***/
 5900    HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
 5901        ISpLexicon *This,
 5902        LPCWSTR pszWord,
 5903        WORD LangID,
 5904        DWORD dwFlags,
 5905        SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
 5906
 5907    HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
 5908        ISpLexicon *This,
 5909        LPCWSTR pszWord,
 5910        WORD LangID,
 5911        SPPARTOFSPEECH ePartOfSpeech,
 5912        PCSPPHONEID pszPronunciation);
 5913
 5914    HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
 5915        ISpLexicon *This,
 5916        LPCWSTR pszWord,
 5917        WORD LangID,
 5918        SPPARTOFSPEECH ePartOfSpeech,
 5919        PCSPPHONEID pszPronunciation);
 5920
 5921    HRESULT (STDMETHODCALLTYPE *GetGeneration)(
 5922        ISpLexicon *This,
 5923        DWORD *pdwGeneration);
 5924
 5925    HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
 5926        ISpLexicon *This,
 5927        DWORD dwFlags,
 5928        DWORD *pdwGeneration,
 5929        SPWORDLIST *pWordList);
 5930
 5931    HRESULT (STDMETHODCALLTYPE *GetWords)(
 5932        ISpLexicon *This,
 5933        DWORD dwFlags,
 5934        DWORD *pdwGeneration,
 5935        DWORD *pdwCookie,
 5936        SPWORDLIST *pWordList);
 5937
 5938    END_INTERFACE
 5939} ISpLexiconVtbl;
 5940
 5941interface ISpLexicon {
 5942    CONST_VTBL ISpLexiconVtbl* lpVtbl;
 5943};
 5944
 5945#ifdef COBJMACROS
 5946#ifndef WIDL_C_INLINE_WRAPPERS
 5947/*** IUnknown methods ***/
 5948#define ISpLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5949#define ISpLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
 5950#define ISpLexicon_Release(This) (This)->lpVtbl->Release(This)
 5951/*** ISpLexicon methods ***/
 5952#define ISpLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
 5953#define ISpLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
 5954#define ISpLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
 5955#define ISpLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
 5956#define ISpLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
 5957#define ISpLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
 5958#else
 5959/*** IUnknown methods ***/
 5960static inline HRESULT ISpLexicon_QueryInterface(ISpLexicon* This,REFIID riid,void **ppvObject) {
 5961    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5962}
 5963static inline ULONG ISpLexicon_AddRef(ISpLexicon* This) {
 5964    return This->lpVtbl->AddRef(This);
 5965}
 5966static inline ULONG ISpLexicon_Release(ISpLexicon* This) {
 5967    return This->lpVtbl->Release(This);
 5968}
 5969/*** ISpLexicon methods ***/
 5970static inline HRESULT ISpLexicon_GetPronunciations(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
 5971    return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
 5972}
 5973static inline HRESULT ISpLexicon_AddPronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
 5974    return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
 5975}
 5976static inline HRESULT ISpLexicon_RemovePronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
 5977    return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
 5978}
 5979static inline HRESULT ISpLexicon_GetGeneration(ISpLexicon* This,DWORD *pdwGeneration) {
 5980    return This->lpVtbl->GetGeneration(This,pdwGeneration);
 5981}
 5982static inline HRESULT ISpLexicon_GetGenerationChange(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
 5983    return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
 5984}
 5985static inline HRESULT ISpLexicon_GetWords(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
 5986    return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
 5987}
 5988#endif
 5989#endif
 5990
 5991#endif
 5992
 5993
 5994#endif  /* __ISpLexicon_INTERFACE_DEFINED__ */
 5995
 5996/*****************************************************************************
 5997 * ISpContainerLexicon interface
 5998 */
 5999#ifndef __ISpContainerLexicon_INTERFACE_DEFINED__
 6000#define __ISpContainerLexicon_INTERFACE_DEFINED__
 6001
 6002DEFINE_GUID(IID_ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44);
 6003#if defined(__cplusplus) && !defined(CINTERFACE)
 6004MIDL_INTERFACE("8565572f-c094-41cc-b56e-10bd9c3ff044")
 6005ISpContainerLexicon : public ISpLexicon
 6006{
 6007    virtual HRESULT STDMETHODCALLTYPE AddLexicon(
 6008        ISpLexicon *pAddLexicon,
 6009        DWORD dwFlags) = 0;
 6010
 6011};
 6012#ifdef __CRT_UUID_DECL
 6013__CRT_UUID_DECL(ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44)
 6014#endif
 6015#else
 6016typedef struct ISpContainerLexiconVtbl {
 6017    BEGIN_INTERFACE
 6018
 6019    /*** IUnknown methods ***/
 6020    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6021        ISpContainerLexicon *This,
 6022        REFIID riid,
 6023        void **ppvObject);
 6024
 6025    ULONG (STDMETHODCALLTYPE *AddRef)(
 6026        ISpContainerLexicon *This);
 6027
 6028    ULONG (STDMETHODCALLTYPE *Release)(
 6029        ISpContainerLexicon *This);
 6030
 6031    /*** ISpLexicon methods ***/
 6032    HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
 6033        ISpContainerLexicon *This,
 6034        LPCWSTR pszWord,
 6035        WORD LangID,
 6036        DWORD dwFlags,
 6037        SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
 6038
 6039    HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
 6040        ISpContainerLexicon *This,
 6041        LPCWSTR pszWord,
 6042        WORD LangID,
 6043        SPPARTOFSPEECH ePartOfSpeech,
 6044        PCSPPHONEID pszPronunciation);
 6045
 6046    HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
 6047        ISpContainerLexicon *This,
 6048        LPCWSTR pszWord,
 6049        WORD LangID,
 6050        SPPARTOFSPEECH ePartOfSpeech,
 6051        PCSPPHONEID pszPronunciation);
 6052
 6053    HRESULT (STDMETHODCALLTYPE *GetGeneration)(
 6054        ISpContainerLexicon *This,
 6055        DWORD *pdwGeneration);
 6056
 6057    HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
 6058        ISpContainerLexicon *This,
 6059        DWORD dwFlags,
 6060        DWORD *pdwGeneration,
 6061        SPWORDLIST *pWordList);
 6062
 6063    HRESULT (STDMETHODCALLTYPE *GetWords)(
 6064        ISpContainerLexicon *This,
 6065        DWORD dwFlags,
 6066        DWORD *pdwGeneration,
 6067        DWORD *pdwCookie,
 6068        SPWORDLIST *pWordList);
 6069
 6070    /*** ISpContainerLexicon methods ***/
 6071    HRESULT (STDMETHODCALLTYPE *AddLexicon)(
 6072        ISpContainerLexicon *This,
 6073        ISpLexicon *pAddLexicon,
 6074        DWORD dwFlags);
 6075
 6076    END_INTERFACE
 6077} ISpContainerLexiconVtbl;
 6078
 6079interface ISpContainerLexicon {
 6080    CONST_VTBL ISpContainerLexiconVtbl* lpVtbl;
 6081};
 6082
 6083#ifdef COBJMACROS
 6084#ifndef WIDL_C_INLINE_WRAPPERS
 6085/*** IUnknown methods ***/
 6086#define ISpContainerLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6087#define ISpContainerLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
 6088#define ISpContainerLexicon_Release(This) (This)->lpVtbl->Release(This)
 6089/*** ISpLexicon methods ***/
 6090#define ISpContainerLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
 6091#define ISpContainerLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
 6092#define ISpContainerLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
 6093#define ISpContainerLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
 6094#define ISpContainerLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
 6095#define ISpContainerLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
 6096/*** ISpContainerLexicon methods ***/
 6097#define ISpContainerLexicon_AddLexicon(This,pAddLexicon,dwFlags) (This)->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags)
 6098#else
 6099/*** IUnknown methods ***/
 6100static inline HRESULT ISpContainerLexicon_QueryInterface(ISpContainerLexicon* This,REFIID riid,void **ppvObject) {
 6101    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6102}
 6103static inline ULONG ISpContainerLexicon_AddRef(ISpContainerLexicon* This) {
 6104    return This->lpVtbl->AddRef(This);
 6105}
 6106static inline ULONG ISpContainerLexicon_Release(ISpContainerLexicon* This) {
 6107    return This->lpVtbl->Release(This);
 6108}
 6109/*** ISpLexicon methods ***/
 6110static inline HRESULT ISpContainerLexicon_GetPronunciations(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
 6111    return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
 6112}
 6113static inline HRESULT ISpContainerLexicon_AddPronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
 6114    return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
 6115}
 6116static inline HRESULT ISpContainerLexicon_RemovePronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
 6117    return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
 6118}
 6119static inline HRESULT ISpContainerLexicon_GetGeneration(ISpContainerLexicon* This,DWORD *pdwGeneration) {
 6120    return This->lpVtbl->GetGeneration(This,pdwGeneration);
 6121}
 6122static inline HRESULT ISpContainerLexicon_GetGenerationChange(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
 6123    return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
 6124}
 6125static inline HRESULT ISpContainerLexicon_GetWords(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
 6126    return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
 6127}
 6128/*** ISpContainerLexicon methods ***/
 6129static inline HRESULT ISpContainerLexicon_AddLexicon(ISpContainerLexicon* This,ISpLexicon *pAddLexicon,DWORD dwFlags) {
 6130    return This->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags);
 6131}
 6132#endif
 6133#endif
 6134
 6135#endif
 6136
 6137
 6138#endif  /* __ISpContainerLexicon_INTERFACE_DEFINED__ */
 6139
 6140typedef struct SPSHORTCUTPAIR {
 6141    struct SPSHORTCUTPAIR *pNextSHORTCUTPAIR;
 6142    WORD LangID;
 6143    SPSHORTCUTTYPE shType;
 6144    LPWSTR pszDisplay;
 6145    LPWSTR pszSpoken;
 6146} SPSHORTCUTPAIR;
 6147typedef struct SPSHORTCUTPAIRLIST {
 6148    ULONG ulSize;
 6149    BYTE *pvBuffer;
 6150    SPSHORTCUTPAIR *pFirstShortcutPair;
 6151} SPSHORTCUTPAIRLIST;
 6152/*****************************************************************************
 6153 * ISpShortcut interface
 6154 */
 6155#ifndef __ISpShortcut_INTERFACE_DEFINED__
 6156#define __ISpShortcut_INTERFACE_DEFINED__
 6157
 6158DEFINE_GUID(IID_ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a);
 6159#if defined(__cplusplus) && !defined(CINTERFACE)
 6160MIDL_INTERFACE("3df681e2-ea56-11d9-8bde-f66bad1e3f3a")
 6161ISpShortcut : public IUnknown
 6162{
 6163    virtual HRESULT STDMETHODCALLTYPE AddShortcut(
 6164        LPCWSTR pszDisplay,
 6165        WORD LangID,
 6166        LPCWSTR pszSpoken,
 6167        SPSHORTCUTTYPE shType) = 0;
 6168
 6169    virtual HRESULT STDMETHODCALLTYPE RemoveShortcut(
 6170        LPCWSTR pszDisplay,
 6171        WORD LangID,
 6172        LPCWSTR pszSpoken,
 6173        SPSHORTCUTTYPE shType) = 0;
 6174
 6175    virtual HRESULT STDMETHODCALLTYPE GetShortcuts(
 6176        WORD LangID,
 6177        SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
 6178
 6179    virtual HRESULT STDMETHODCALLTYPE GetGeneration(
 6180        DWORD *pdwGeneration) = 0;
 6181
 6182    virtual HRESULT STDMETHODCALLTYPE GetWordsFromGenerationChange(
 6183        DWORD *pdwGeneration,
 6184        SPWORDLIST *pWordList) = 0;
 6185
 6186    virtual HRESULT STDMETHODCALLTYPE GetWords(
 6187        DWORD *pdwGeneration,
 6188        DWORD *pdwCookie,
 6189        SPWORDLIST *pWordList) = 0;
 6190
 6191    virtual HRESULT STDMETHODCALLTYPE GetShortcutsForGeneration(
 6192        DWORD *pdwGeneration,
 6193        DWORD *pdwCookie,
 6194        SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
 6195
 6196    virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
 6197        DWORD *pdwGeneration,
 6198        SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
 6199
 6200};
 6201#ifdef __CRT_UUID_DECL
 6202__CRT_UUID_DECL(ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a)
 6203#endif
 6204#else
 6205typedef struct ISpShortcutVtbl {
 6206    BEGIN_INTERFACE
 6207
 6208    /*** IUnknown methods ***/
 6209    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6210        ISpShortcut *This,
 6211        REFIID riid,
 6212        void **ppvObject);
 6213
 6214    ULONG (STDMETHODCALLTYPE *AddRef)(
 6215        ISpShortcut *This);
 6216
 6217    ULONG (STDMETHODCALLTYPE *Release)(
 6218        ISpShortcut *This);
 6219
 6220    /*** ISpShortcut methods ***/
 6221    HRESULT (STDMETHODCALLTYPE *AddShortcut)(
 6222        ISpShortcut *This,
 6223        LPCWSTR pszDisplay,
 6224        WORD LangID,
 6225        LPCWSTR pszSpoken,
 6226        SPSHORTCUTTYPE shType);
 6227
 6228    HRESULT (STDMETHODCALLTYPE *RemoveShortcut)(
 6229        ISpShortcut *This,
 6230        LPCWSTR pszDisplay,
 6231        WORD LangID,
 6232        LPCWSTR pszSpoken,
 6233        SPSHORTCUTTYPE shType);
 6234
 6235    HRESULT (STDMETHODCALLTYPE *GetShortcuts)(
 6236        ISpShortcut *This,
 6237        WORD LangID,
 6238        SPSHORTCUTPAIRLIST *pShortcutpairList);
 6239
 6240    HRESULT (STDMETHODCALLTYPE *GetGeneration)(
 6241        ISpShortcut *This,
 6242        DWORD *pdwGeneration);
 6243
 6244    HRESULT (STDMETHODCALLTYPE *GetWordsFromGenerationChange)(
 6245        ISpShortcut *This,
 6246        DWORD *pdwGeneration,
 6247        SPWORDLIST *pWordList);
 6248
 6249    HRESULT (STDMETHODCALLTYPE *GetWords)(
 6250        ISpShortcut *This,
 6251        DWORD *pdwGeneration,
 6252        DWORD *pdwCookie,
 6253        SPWORDLIST *pWordList);
 6254
 6255    HRESULT (STDMETHODCALLTYPE *GetShortcutsForGeneration)(
 6256        ISpShortcut *This,
 6257        DWORD *pdwGeneration,
 6258        DWORD *pdwCookie,
 6259        SPSHORTCUTPAIRLIST *pShortcutpairList);
 6260
 6261    HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
 6262        ISpShortcut *This,
 6263        DWORD *pdwGeneration,
 6264        SPSHORTCUTPAIRLIST *pShortcutpairList);
 6265
 6266    END_INTERFACE
 6267} ISpShortcutVtbl;
 6268
 6269interface ISpShortcut {
 6270    CONST_VTBL ISpShortcutVtbl* lpVtbl;
 6271};
 6272
 6273#ifdef COBJMACROS
 6274#ifndef WIDL_C_INLINE_WRAPPERS
 6275/*** IUnknown methods ***/
 6276#define ISpShortcut_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6277#define ISpShortcut_AddRef(This) (This)->lpVtbl->AddRef(This)
 6278#define ISpShortcut_Release(This) (This)->lpVtbl->Release(This)
 6279/*** ISpShortcut methods ***/
 6280#define ISpShortcut_AddShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType)
 6281#define ISpShortcut_RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType)
 6282#define ISpShortcut_GetShortcuts(This,LangID,pShortcutpairList) (This)->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList)
 6283#define ISpShortcut_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
 6284#define ISpShortcut_GetWordsFromGenerationChange(This,pdwGeneration,pWordList) (This)->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList)
 6285#define ISpShortcut_GetWords(This,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList)
 6286#define ISpShortcut_GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList) (This)->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList)
 6287#define ISpShortcut_GetGenerationChange(This,pdwGeneration,pShortcutpairList) (This)->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList)
 6288#else
 6289/*** IUnknown methods ***/
 6290static inline HRESULT ISpShortcut_QueryInterface(ISpShortcut* This,REFIID riid,void **ppvObject) {
 6291    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6292}
 6293static inline ULONG ISpShortcut_AddRef(ISpShortcut* This) {
 6294    return This->lpVtbl->AddRef(This);
 6295}
 6296static inline ULONG ISpShortcut_Release(ISpShortcut* This) {
 6297    return This->lpVtbl->Release(This);
 6298}
 6299/*** ISpShortcut methods ***/
 6300static inline HRESULT ISpShortcut_AddShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
 6301    return This->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType);
 6302}
 6303static inline HRESULT ISpShortcut_RemoveShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
 6304    return This->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType);
 6305}
 6306static inline HRESULT ISpShortcut_GetShortcuts(ISpShortcut* This,WORD LangID,SPSHORTCUTPAIRLIST *pShortcutpairList) {
 6307    return This->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList);
 6308}
 6309static inline HRESULT ISpShortcut_GetGeneration(ISpShortcut* This,DWORD *pdwGeneration) {
 6310    return This->lpVtbl->GetGeneration(This,pdwGeneration);
 6311}
 6312static inline HRESULT ISpShortcut_GetWordsFromGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
 6313    return This->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList);
 6314}
 6315static inline HRESULT ISpShortcut_GetWords(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
 6316    return This->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList);
 6317}
 6318static inline HRESULT ISpShortcut_GetShortcutsForGeneration(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPSHORTCUTPAIRLIST *pShortcutpairList) {
 6319    return This->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList);
 6320}
 6321static inline HRESULT ISpShortcut_GetGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPSHORTCUTPAIRLIST *pShortcutpairList) {
 6322    return This->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList);
 6323}
 6324#endif
 6325#endif
 6326
 6327#endif
 6328
 6329
 6330#endif  /* __ISpShortcut_INTERFACE_DEFINED__ */
 6331
 6332/*****************************************************************************
 6333 * ISpPhoneConverter interface
 6334 */
 6335#ifndef __ISpPhoneConverter_INTERFACE_DEFINED__
 6336#define __ISpPhoneConverter_INTERFACE_DEFINED__
 6337
 6338DEFINE_GUID(IID_ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55);
 6339#if defined(__cplusplus) && !defined(CINTERFACE)
 6340MIDL_INTERFACE("8445c581-0cac-4a38-abfe-9b2ce2826455")
 6341ISpPhoneConverter : public ISpObjectWithToken
 6342{
 6343    virtual HRESULT STDMETHODCALLTYPE PhoneToId(
 6344        LPCWSTR pszPhone,
 6345        SPPHONEID *pId) = 0;
 6346
 6347    virtual HRESULT STDMETHODCALLTYPE IdToPhone(
 6348        PCSPPHONEID pId,
 6349        WCHAR *pszPhone) = 0;
 6350
 6351};
 6352#ifdef __CRT_UUID_DECL
 6353__CRT_UUID_DECL(ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55)
 6354#endif
 6355#else
 6356typedef struct ISpPhoneConverterVtbl {
 6357    BEGIN_INTERFACE
 6358
 6359    /*** IUnknown methods ***/
 6360    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6361        ISpPhoneConverter *This,
 6362        REFIID riid,
 6363        void **ppvObject);
 6364
 6365    ULONG (STDMETHODCALLTYPE *AddRef)(
 6366        ISpPhoneConverter *This);
 6367
 6368    ULONG (STDMETHODCALLTYPE *Release)(
 6369        ISpPhoneConverter *This);
 6370
 6371    /*** ISpObjectWithToken methods ***/
 6372    HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
 6373        ISpPhoneConverter *This,
 6374        ISpObjectToken *pToken);
 6375
 6376    HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
 6377        ISpPhoneConverter *This,
 6378        ISpObjectToken **ppToken);
 6379
 6380    /*** ISpPhoneConverter methods ***/
 6381    HRESULT (STDMETHODCALLTYPE *PhoneToId)(
 6382        ISpPhoneConverter *This,
 6383        LPCWSTR pszPhone,
 6384        SPPHONEID *pId);
 6385
 6386    HRESULT (STDMETHODCALLTYPE *IdToPhone)(
 6387        ISpPhoneConverter *This,
 6388        PCSPPHONEID pId,
 6389        WCHAR *pszPhone);
 6390
 6391    END_INTERFACE
 6392} ISpPhoneConverterVtbl;
 6393
 6394interface ISpPhoneConverter {
 6395    CONST_VTBL ISpPhoneConverterVtbl* lpVtbl;
 6396};
 6397
 6398#ifdef COBJMACROS
 6399#ifndef WIDL_C_INLINE_WRAPPERS
 6400/*** IUnknown methods ***/
 6401#define ISpPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6402#define ISpPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
 6403#define ISpPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
 6404/*** ISpObjectWithToken methods ***/
 6405#define ISpPhoneConverter_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
 6406#define ISpPhoneConverter_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
 6407/*** ISpPhoneConverter methods ***/
 6408#define ISpPhoneConverter_PhoneToId(This,pszPhone,pId) (This)->lpVtbl->PhoneToId(This,pszPhone,pId)
 6409#define ISpPhoneConverter_IdToPhone(This,pId,pszPhone) (This)->lpVtbl->IdToPhone(This,pId,pszPhone)
 6410#else
 6411/*** IUnknown methods ***/
 6412static inline HRESULT ISpPhoneConverter_QueryInterface(ISpPhoneConverter* This,REFIID riid,void **ppvObject) {
 6413    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6414}
 6415static inline ULONG ISpPhoneConverter_AddRef(ISpPhoneConverter* This) {
 6416    return This->lpVtbl->AddRef(This);
 6417}
 6418static inline ULONG ISpPhoneConverter_Release(ISpPhoneConverter* This) {
 6419    return This->lpVtbl->Release(This);
 6420}
 6421/*** ISpObjectWithToken methods ***/
 6422static inline HRESULT ISpPhoneConverter_SetObjectToken(ISpPhoneConverter* This,ISpObjectToken *pToken) {
 6423    return This->lpVtbl->SetObjectToken(This,pToken);
 6424}
 6425static inline HRESULT ISpPhoneConverter_GetObjectToken(ISpPhoneConverter* This,ISpObjectToken **ppToken) {
 6426    return This->lpVtbl->GetObjectToken(This,ppToken);
 6427}
 6428/*** ISpPhoneConverter methods ***/
 6429static inline HRESULT ISpPhoneConverter_PhoneToId(ISpPhoneConverter* This,LPCWSTR pszPhone,SPPHONEID *pId) {
 6430    return This->lpVtbl->PhoneToId(This,pszPhone,pId);
 6431}
 6432static inline HRESULT ISpPhoneConverter_IdToPhone(ISpPhoneConverter* This,PCSPPHONEID pId,WCHAR *pszPhone) {
 6433    return This->lpVtbl->IdToPhone(This,pId,pszPhone);
 6434}
 6435#endif
 6436#endif
 6437
 6438#endif
 6439
 6440
 6441#endif  /* __ISpPhoneConverter_INTERFACE_DEFINED__ */
 6442
 6443/*****************************************************************************
 6444 * ISpPhoneticAlphabetConverter interface
 6445 */
 6446#ifndef __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
 6447#define __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
 6448
 6449DEFINE_GUID(IID_ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17);
 6450#if defined(__cplusplus) && !defined(CINTERFACE)
 6451MIDL_INTERFACE("133adcd4-19b4-4020-9fdc-842e78253b17")
 6452ISpPhoneticAlphabetConverter : public IUnknown
 6453{
 6454    virtual HRESULT STDMETHODCALLTYPE GetLangId(
 6455        WORD *pLangID) = 0;
 6456
 6457    virtual HRESULT STDMETHODCALLTYPE SetLangId(
 6458        WORD LangID) = 0;
 6459
 6460    virtual HRESULT STDMETHODCALLTYPE SAPI2UPS(
 6461        const SPPHONEID *pszSAPIId,
 6462        SPPHONEID *pszUPSId,
 6463        DWORD cMaxLength) = 0;
 6464
 6465    virtual HRESULT STDMETHODCALLTYPE UPS2SAPI(
 6466        const SPPHONEID *pszUPSId,
 6467        SPPHONEID *pszSAPIId,
 6468        DWORD cMaxLength) = 0;
 6469
 6470    virtual HRESULT STDMETHODCALLTYPE GetMaxConvertLength(
 6471        DWORD cSrcLength,
 6472        WINBOOL bSAPI2UPS,
 6473        DWORD *pcMaxDestLength) = 0;
 6474
 6475};
 6476#ifdef __CRT_UUID_DECL
 6477__CRT_UUID_DECL(ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17)
 6478#endif
 6479#else
 6480typedef struct ISpPhoneticAlphabetConverterVtbl {
 6481    BEGIN_INTERFACE
 6482
 6483    /*** IUnknown methods ***/
 6484    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6485        ISpPhoneticAlphabetConverter *This,
 6486        REFIID riid,
 6487        void **ppvObject);
 6488
 6489    ULONG (STDMETHODCALLTYPE *AddRef)(
 6490        ISpPhoneticAlphabetConverter *This);
 6491
 6492    ULONG (STDMETHODCALLTYPE *Release)(
 6493        ISpPhoneticAlphabetConverter *This);
 6494
 6495    /*** ISpPhoneticAlphabetConverter methods ***/
 6496    HRESULT (STDMETHODCALLTYPE *GetLangId)(
 6497        ISpPhoneticAlphabetConverter *This,
 6498        WORD *pLangID);
 6499
 6500    HRESULT (STDMETHODCALLTYPE *SetLangId)(
 6501        ISpPhoneticAlphabetConverter *This,
 6502        WORD LangID);
 6503
 6504    HRESULT (STDMETHODCALLTYPE *SAPI2UPS)(
 6505        ISpPhoneticAlphabetConverter *This,
 6506        const SPPHONEID *pszSAPIId,
 6507        SPPHONEID *pszUPSId,
 6508        DWORD cMaxLength);
 6509
 6510    HRESULT (STDMETHODCALLTYPE *UPS2SAPI)(
 6511        ISpPhoneticAlphabetConverter *This,
 6512        const SPPHONEID *pszUPSId,
 6513        SPPHONEID *pszSAPIId,
 6514        DWORD cMaxLength);
 6515
 6516    HRESULT (STDMETHODCALLTYPE *GetMaxConvertLength)(
 6517        ISpPhoneticAlphabetConverter *This,
 6518        DWORD cSrcLength,
 6519        WINBOOL bSAPI2UPS,
 6520        DWORD *pcMaxDestLength);
 6521
 6522    END_INTERFACE
 6523} ISpPhoneticAlphabetConverterVtbl;
 6524
 6525interface ISpPhoneticAlphabetConverter {
 6526    CONST_VTBL ISpPhoneticAlphabetConverterVtbl* lpVtbl;
 6527};
 6528
 6529#ifdef COBJMACROS
 6530#ifndef WIDL_C_INLINE_WRAPPERS
 6531/*** IUnknown methods ***/
 6532#define ISpPhoneticAlphabetConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6533#define ISpPhoneticAlphabetConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
 6534#define ISpPhoneticAlphabetConverter_Release(This) (This)->lpVtbl->Release(This)
 6535/*** ISpPhoneticAlphabetConverter methods ***/
 6536#define ISpPhoneticAlphabetConverter_GetLangId(This,pLangID) (This)->lpVtbl->GetLangId(This,pLangID)
 6537#define ISpPhoneticAlphabetConverter_SetLangId(This,LangID) (This)->lpVtbl->SetLangId(This,LangID)
 6538#define ISpPhoneticAlphabetConverter_SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength) (This)->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength)
 6539#define ISpPhoneticAlphabetConverter_UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength) (This)->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength)
 6540#define ISpPhoneticAlphabetConverter_GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength) (This)->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength)
 6541#else
 6542/*** IUnknown methods ***/
 6543static inline HRESULT ISpPhoneticAlphabetConverter_QueryInterface(ISpPhoneticAlphabetConverter* This,REFIID riid,void **ppvObject) {
 6544    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6545}
 6546static inline ULONG ISpPhoneticAlphabetConverter_AddRef(ISpPhoneticAlphabetConverter* This) {
 6547    return This->lpVtbl->AddRef(This);
 6548}
 6549static inline ULONG ISpPhoneticAlphabetConverter_Release(ISpPhoneticAlphabetConverter* This) {
 6550    return This->lpVtbl->Release(This);
 6551}
 6552/*** ISpPhoneticAlphabetConverter methods ***/
 6553static inline HRESULT ISpPhoneticAlphabetConverter_GetLangId(ISpPhoneticAlphabetConverter* This,WORD *pLangID) {
 6554    return This->lpVtbl->GetLangId(This,pLangID);
 6555}
 6556static inline HRESULT ISpPhoneticAlphabetConverter_SetLangId(ISpPhoneticAlphabetConverter* This,WORD LangID) {
 6557    return This->lpVtbl->SetLangId(This,LangID);
 6558}
 6559static inline HRESULT ISpPhoneticAlphabetConverter_SAPI2UPS(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszSAPIId,SPPHONEID *pszUPSId,DWORD cMaxLength) {
 6560    return This->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength);
 6561}
 6562static inline HRESULT ISpPhoneticAlphabetConverter_UPS2SAPI(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszUPSId,SPPHONEID *pszSAPIId,DWORD cMaxLength) {
 6563    return This->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength);
 6564}
 6565static inline HRESULT ISpPhoneticAlphabetConverter_GetMaxConvertLength(ISpPhoneticAlphabetConverter* This,DWORD cSrcLength,WINBOOL bSAPI2UPS,DWORD *pcMaxDestLength) {
 6566    return This->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength);
 6567}
 6568#endif
 6569#endif
 6570
 6571#endif
 6572
 6573
 6574#endif  /* __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__ */
 6575
 6576/*****************************************************************************
 6577 * ISpPhoneticAlphabetSelection interface
 6578 */
 6579#ifndef __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
 6580#define __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
 6581
 6582DEFINE_GUID(IID_ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90);
 6583#if defined(__cplusplus) && !defined(CINTERFACE)
 6584MIDL_INTERFACE("b2745efd-42ce-48ca-81f1-a96e02538a90")
 6585ISpPhoneticAlphabetSelection : public IUnknown
 6586{
 6587    virtual HRESULT STDMETHODCALLTYPE IsAlphabetUPS(
 6588        WINBOOL *pfIsUPS) = 0;
 6589
 6590    virtual HRESULT STDMETHODCALLTYPE SetAlphabetToUPS(
 6591        WINBOOL fForceUPS) = 0;
 6592
 6593};
 6594#ifdef __CRT_UUID_DECL
 6595__CRT_UUID_DECL(ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90)
 6596#endif
 6597#else
 6598typedef struct ISpPhoneticAlphabetSelectionVtbl {
 6599    BEGIN_INTERFACE
 6600
 6601    /*** IUnknown methods ***/
 6602    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6603        ISpPhoneticAlphabetSelection *This,
 6604        REFIID riid,
 6605        void **ppvObject);
 6606
 6607    ULONG (STDMETHODCALLTYPE *AddRef)(
 6608        ISpPhoneticAlphabetSelection *This);
 6609
 6610    ULONG (STDMETHODCALLTYPE *Release)(
 6611        ISpPhoneticAlphabetSelection *This);
 6612
 6613    /*** ISpPhoneticAlphabetSelection methods ***/
 6614    HRESULT (STDMETHODCALLTYPE *IsAlphabetUPS)(
 6615        ISpPhoneticAlphabetSelection *This,
 6616        WINBOOL *pfIsUPS);
 6617
 6618    HRESULT (STDMETHODCALLTYPE *SetAlphabetToUPS)(
 6619        ISpPhoneticAlphabetSelection *This,
 6620        WINBOOL fForceUPS);
 6621
 6622    END_INTERFACE
 6623} ISpPhoneticAlphabetSelectionVtbl;
 6624
 6625interface ISpPhoneticAlphabetSelection {
 6626    CONST_VTBL ISpPhoneticAlphabetSelectionVtbl* lpVtbl;
 6627};
 6628
 6629#ifdef COBJMACROS
 6630#ifndef WIDL_C_INLINE_WRAPPERS
 6631/*** IUnknown methods ***/
 6632#define ISpPhoneticAlphabetSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6633#define ISpPhoneticAlphabetSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
 6634#define ISpPhoneticAlphabetSelection_Release(This) (This)->lpVtbl->Release(This)
 6635/*** ISpPhoneticAlphabetSelection methods ***/
 6636#define ISpPhoneticAlphabetSelection_IsAlphabetUPS(This,pfIsUPS) (This)->lpVtbl->IsAlphabetUPS(This,pfIsUPS)
 6637#define ISpPhoneticAlphabetSelection_SetAlphabetToUPS(This,fForceUPS) (This)->lpVtbl->SetAlphabetToUPS(This,fForceUPS)
 6638#else
 6639/*** IUnknown methods ***/
 6640static inline HRESULT ISpPhoneticAlphabetSelection_QueryInterface(ISpPhoneticAlphabetSelection* This,REFIID riid,void **ppvObject) {
 6641    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6642}
 6643static inline ULONG ISpPhoneticAlphabetSelection_AddRef(ISpPhoneticAlphabetSelection* This) {
 6644    return This->lpVtbl->AddRef(This);
 6645}
 6646static inline ULONG ISpPhoneticAlphabetSelection_Release(ISpPhoneticAlphabetSelection* This) {
 6647    return This->lpVtbl->Release(This);
 6648}
 6649/*** ISpPhoneticAlphabetSelection methods ***/
 6650static inline HRESULT ISpPhoneticAlphabetSelection_IsAlphabetUPS(ISpPhoneticAlphabetSelection* This,WINBOOL *pfIsUPS) {
 6651    return This->lpVtbl->IsAlphabetUPS(This,pfIsUPS);
 6652}
 6653static inline HRESULT ISpPhoneticAlphabetSelection_SetAlphabetToUPS(ISpPhoneticAlphabetSelection* This,WINBOOL fForceUPS) {
 6654    return This->lpVtbl->SetAlphabetToUPS(This,fForceUPS);
 6655}
 6656#endif
 6657#endif
 6658
 6659#endif
 6660
 6661
 6662#endif  /* __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__ */
 6663
 6664typedef struct SPVPITCH {
 6665    LONG MiddleAdj;
 6666    LONG RangeAdj;
 6667} SPVPITCH;
 6668typedef struct SPVCONTEXT {
 6669    LPCWSTR pCategory;
 6670    LPCWSTR pBefore;
 6671    LPCWSTR pAfter;
 6672} SPVCONTEXT;
 6673typedef struct SPVSTATE {
 6674    SPVACTIONS eAction;
 6675    WORD LangID;
 6676    WORD wReserved;
 6677    LONG EmphAdj;
 6678    LONG RateAdj;
 6679    ULONG Volume;
 6680    SPVPITCH PitchAdj;
 6681    ULONG SilenceMSecs;
 6682    SPPHONEID *pPhoneIds;
 6683    SPPARTOFSPEECH ePartOfSpeech;
 6684    SPVCONTEXT Context;
 6685} SPVSTATE;
 6686typedef struct SPVOICESTATUS {
 6687    ULONG ulCurrentStream;
 6688    ULONG ulLastStreamQueued;
 6689    HRESULT hrLastResult;
 6690    DWORD dwRunningState;
 6691    ULONG ulInputWordPos;
 6692    ULONG ulInputWordLen;
 6693    ULONG ulInputSentPos;
 6694    ULONG ulInputSentLen;
 6695    LONG lBookmarkId;
 6696    SPPHONEID PhonemeId;
 6697    SPVISEMES VisemeId;
 6698    DWORD dwReserved1;
 6699    DWORD dwReserved2;
 6700} SPVOICESTATUS;
 6701typedef enum SPEAKFLAGS {
 6702    SPF_DEFAULT = 0,
 6703    SPF_ASYNC = 1,
 6704    SPF_PURGEBEFORESPEAK = 2,
 6705    SPF_IS_FILENAME = 4,
 6706    SPF_IS_XML = 8,
 6707    SPF_IS_NOT_XML = 0x10,
 6708    SPF_PERSIST_XML = 0x20,
 6709    SPF_NLP_SPEAK_PUNC = 0x40,
 6710    SPF_PARSE_SAPI = 0x80,
 6711    SPF_PARSE_SSML = 0x100,
 6712    SPF_PARSE_AUTODETECT = 0,
 6713    SPF_NLP_MASK = SPF_NLP_SPEAK_PUNC,
 6714    SPF_PARSE_MASK = SPF_PARSE_SAPI | SPF_PARSE_SSML,
 6715    SPF_VOICE_MASK = ((((((SPF_ASYNC | SPF_PURGEBEFORESPEAK) | SPF_IS_FILENAME) | SPF_IS_XML) | SPF_IS_NOT_XML) | SPF_NLP_MASK) | SPF_PERSIST_XML) | SPF_PARSE_MASK,
 6716    SPF_UNUSED_FLAGS = ~SPF_VOICE_MASK
 6717} SPEAKFLAGS;
 6718/*****************************************************************************
 6719 * ISpVoice interface
 6720 */
 6721#ifndef __ISpVoice_INTERFACE_DEFINED__
 6722#define __ISpVoice_INTERFACE_DEFINED__
 6723
 6724DEFINE_GUID(IID_ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4);
 6725#if defined(__cplusplus) && !defined(CINTERFACE)
 6726MIDL_INTERFACE("6c44df74-72b9-4992-a1ec-ef996e0422d4")
 6727ISpVoice : public ISpEventSource
 6728{
 6729    virtual HRESULT STDMETHODCALLTYPE SetOutput(
 6730        IUnknown *pUnkOutput,
 6731        WINBOOL fAllowFormatChanges) = 0;
 6732
 6733    virtual HRESULT STDMETHODCALLTYPE GetOutputObjectToken(
 6734        ISpObjectToken **ppObjectToken) = 0;
 6735
 6736    virtual HRESULT STDMETHODCALLTYPE GetOutputStream(
 6737        ISpStreamFormat **ppStream) = 0;
 6738
 6739    virtual HRESULT STDMETHODCALLTYPE Pause(
 6740        ) = 0;
 6741
 6742    virtual HRESULT STDMETHODCALLTYPE Resume(
 6743        ) = 0;
 6744
 6745    virtual HRESULT STDMETHODCALLTYPE SetVoice(
 6746        ISpObjectToken *pToken) = 0;
 6747
 6748    virtual HRESULT STDMETHODCALLTYPE GetVoice(
 6749        ISpObjectToken **ppToken) = 0;
 6750
 6751    virtual HRESULT STDMETHODCALLTYPE Speak(
 6752        LPCWSTR pwcs,
 6753        DWORD dwFlags,
 6754        ULONG *pulStreamNumber) = 0;
 6755
 6756    virtual HRESULT STDMETHODCALLTYPE SpeakStream(
 6757        IStream *pStream,
 6758        DWORD dwFlags,
 6759        ULONG *pulStreamNumber) = 0;
 6760
 6761    virtual HRESULT STDMETHODCALLTYPE GetStatus(
 6762        SPVOICESTATUS *pStatus,
 6763        LPWSTR *ppszLastBookmark) = 0;
 6764
 6765    virtual HRESULT STDMETHODCALLTYPE Skip(
 6766        LPCWSTR pItemType,
 6767        LONG lNumItems,
 6768        ULONG *pulNumSkipped) = 0;
 6769
 6770    virtual HRESULT STDMETHODCALLTYPE SetPriority(
 6771        SPVPRIORITY ePriority) = 0;
 6772
 6773    virtual HRESULT STDMETHODCALLTYPE GetPriority(
 6774        SPVPRIORITY *pePriority) = 0;
 6775
 6776    virtual HRESULT STDMETHODCALLTYPE SetAlertBoundary(
 6777        SPEVENTENUM eBoundary) = 0;
 6778
 6779    virtual HRESULT STDMETHODCALLTYPE GetAlertBoundary(
 6780        SPEVENTENUM *peBoundary) = 0;
 6781
 6782    virtual HRESULT STDMETHODCALLTYPE SetRate(
 6783        LONG RateAdjust) = 0;
 6784
 6785    virtual HRESULT STDMETHODCALLTYPE GetRate(
 6786        LONG *pRateAdjust) = 0;
 6787
 6788    virtual HRESULT STDMETHODCALLTYPE SetVolume(
 6789        USHORT usVolume) = 0;
 6790
 6791    virtual HRESULT STDMETHODCALLTYPE GetVolume(
 6792        USHORT *pusVolume) = 0;
 6793
 6794    virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
 6795        ULONG msTimeout) = 0;
 6796
 6797    virtual HRESULT STDMETHODCALLTYPE SetSyncSpeakTimeout(
 6798        ULONG msTimeout) = 0;
 6799
 6800    virtual HRESULT STDMETHODCALLTYPE GetSyncSpeakTimeout(
 6801        ULONG *pmsTimeout) = 0;
 6802
 6803    virtual HANDLE STDMETHODCALLTYPE SpeakCompleteEvent(
 6804        ) = 0;
 6805
 6806    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
 6807        LPCWSTR pszTypeOfUI,
 6808        void *pvExtraData,
 6809        ULONG cbExtraData,
 6810        WINBOOL *pfSupported) = 0;
 6811
 6812    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
 6813        HWND hwndParent,
 6814        LPCWSTR pszTitle,
 6815        LPCWSTR pszTypeOfUI,
 6816        void *pvExtraData,
 6817        ULONG cbExtraData) = 0;
 6818
 6819};
 6820#ifdef __CRT_UUID_DECL
 6821__CRT_UUID_DECL(ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4)
 6822#endif
 6823#else
 6824typedef struct ISpVoiceVtbl {
 6825    BEGIN_INTERFACE
 6826
 6827    /*** IUnknown methods ***/
 6828    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6829        ISpVoice *This,
 6830        REFIID riid,
 6831        void **ppvObject);
 6832
 6833    ULONG (STDMETHODCALLTYPE *AddRef)(
 6834        ISpVoice *This);
 6835
 6836    ULONG (STDMETHODCALLTYPE *Release)(
 6837        ISpVoice *This);
 6838
 6839    /*** ISpNotifySource methods ***/
 6840    HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
 6841        ISpVoice *This,
 6842        ISpNotifySink *pNotifySink);
 6843
 6844    HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
 6845        ISpVoice *This,
 6846        HWND hWnd,
 6847        UINT Msg,
 6848        WPARAM wParam,
 6849        LPARAM lParam);
 6850
 6851    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
 6852        ISpVoice *This,
 6853        SPNOTIFYCALLBACK *pfnCallback,
 6854        WPARAM wParam,
 6855        LPARAM lParam);
 6856
 6857    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
 6858        ISpVoice *This,
 6859        ISpNotifyCallback *pSpCallback,
 6860        WPARAM wParam,
 6861        LPARAM lParam);
 6862
 6863    HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
 6864        ISpVoice *This);
 6865
 6866    HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
 6867        ISpVoice *This,
 6868        DWORD dwMilliseconds);
 6869
 6870    HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
 6871        ISpVoice *This);
 6872
 6873    /*** ISpEventSource methods ***/
 6874    HRESULT (STDMETHODCALLTYPE *SetInterest)(
 6875        ISpVoice *This,
 6876        ULONGLONG ullEventInterest,
 6877        ULONGLONG ullQueuedInterest);
 6878
 6879    HRESULT (STDMETHODCALLTYPE *GetEvents)(
 6880        ISpVoice *This,
 6881        ULONG ulCount,
 6882        SPEVENT *pEventArray,
 6883        ULONG *pulFetched);
 6884
 6885    HRESULT (STDMETHODCALLTYPE *GetInfo)(
 6886        ISpVoice *This,
 6887        SPEVENTSOURCEINFO *pInfo);
 6888
 6889    /*** ISpVoice methods ***/
 6890    HRESULT (STDMETHODCALLTYPE *SetOutput)(
 6891        ISpVoice *This,
 6892        IUnknown *pUnkOutput,
 6893        WINBOOL fAllowFormatChanges);
 6894
 6895    HRESULT (STDMETHODCALLTYPE *GetOutputObjectToken)(
 6896        ISpVoice *This,
 6897        ISpObjectToken **ppObjectToken);
 6898
 6899    HRESULT (STDMETHODCALLTYPE *GetOutputStream)(
 6900        ISpVoice *This,
 6901        ISpStreamFormat **ppStream);
 6902
 6903    HRESULT (STDMETHODCALLTYPE *Pause)(
 6904        ISpVoice *This);
 6905
 6906    HRESULT (STDMETHODCALLTYPE *Resume)(
 6907        ISpVoice *This);
 6908
 6909    HRESULT (STDMETHODCALLTYPE *SetVoice)(
 6910        ISpVoice *This,
 6911        ISpObjectToken *pToken);
 6912
 6913    HRESULT (STDMETHODCALLTYPE *GetVoice)(
 6914        ISpVoice *This,
 6915        ISpObjectToken **ppToken);
 6916
 6917    HRESULT (STDMETHODCALLTYPE *Speak)(
 6918        ISpVoice *This,
 6919        LPCWSTR pwcs,
 6920        DWORD dwFlags,
 6921        ULONG *pulStreamNumber);
 6922
 6923    HRESULT (STDMETHODCALLTYPE *SpeakStream)(
 6924        ISpVoice *This,
 6925        IStream *pStream,
 6926        DWORD dwFlags,
 6927        ULONG *pulStreamNumber);
 6928
 6929    HRESULT (STDMETHODCALLTYPE *GetStatus)(
 6930        ISpVoice *This,
 6931        SPVOICESTATUS *pStatus,
 6932        LPWSTR *ppszLastBookmark);
 6933
 6934    HRESULT (STDMETHODCALLTYPE *Skip)(
 6935        ISpVoice *This,
 6936        LPCWSTR pItemType,
 6937        LONG lNumItems,
 6938        ULONG *pulNumSkipped);
 6939
 6940    HRESULT (STDMETHODCALLTYPE *SetPriority)(
 6941        ISpVoice *This,
 6942        SPVPRIORITY ePriority);
 6943
 6944    HRESULT (STDMETHODCALLTYPE *GetPriority)(
 6945        ISpVoice *This,
 6946        SPVPRIORITY *pePriority);
 6947
 6948    HRESULT (STDMETHODCALLTYPE *SetAlertBoundary)(
 6949        ISpVoice *This,
 6950        SPEVENTENUM eBoundary);
 6951
 6952    HRESULT (STDMETHODCALLTYPE *GetAlertBoundary)(
 6953        ISpVoice *This,
 6954        SPEVENTENUM *peBoundary);
 6955
 6956    HRESULT (STDMETHODCALLTYPE *SetRate)(
 6957        ISpVoice *This,
 6958        LONG RateAdjust);
 6959
 6960    HRESULT (STDMETHODCALLTYPE *GetRate)(
 6961        ISpVoice *This,
 6962        LONG *pRateAdjust);
 6963
 6964    HRESULT (STDMETHODCALLTYPE *SetVolume)(
 6965        ISpVoice *This,
 6966        USHORT usVolume);
 6967
 6968    HRESULT (STDMETHODCALLTYPE *GetVolume)(
 6969        ISpVoice *This,
 6970        USHORT *pusVolume);
 6971
 6972    HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
 6973        ISpVoice *This,
 6974        ULONG msTimeout);
 6975
 6976    HRESULT (STDMETHODCALLTYPE *SetSyncSpeakTimeout)(
 6977        ISpVoice *This,
 6978        ULONG msTimeout);
 6979
 6980    HRESULT (STDMETHODCALLTYPE *GetSyncSpeakTimeout)(
 6981        ISpVoice *This,
 6982        ULONG *pmsTimeout);
 6983
 6984    HANDLE (STDMETHODCALLTYPE *SpeakCompleteEvent)(
 6985        ISpVoice *This);
 6986
 6987    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
 6988        ISpVoice *This,
 6989        LPCWSTR pszTypeOfUI,
 6990        void *pvExtraData,
 6991        ULONG cbExtraData,
 6992        WINBOOL *pfSupported);
 6993
 6994    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
 6995        ISpVoice *This,
 6996        HWND hwndParent,
 6997        LPCWSTR pszTitle,
 6998        LPCWSTR pszTypeOfUI,
 6999        void *pvExtraData,
 7000        ULONG cbExtraData);
 7001
 7002    END_INTERFACE
 7003} ISpVoiceVtbl;
 7004
 7005interface ISpVoice {
 7006    CONST_VTBL ISpVoiceVtbl* lpVtbl;
 7007};
 7008
 7009#ifdef COBJMACROS
 7010#ifndef WIDL_C_INLINE_WRAPPERS
 7011/*** IUnknown methods ***/
 7012#define ISpVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7013#define ISpVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
 7014#define ISpVoice_Release(This) (This)->lpVtbl->Release(This)
 7015/*** ISpNotifySource methods ***/
 7016#define ISpVoice_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
 7017#define ISpVoice_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
 7018#define ISpVoice_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
 7019#define ISpVoice_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
 7020#define ISpVoice_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
 7021#define ISpVoice_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
 7022#define ISpVoice_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
 7023/*** ISpEventSource methods ***/
 7024#define ISpVoice_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
 7025#define ISpVoice_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
 7026#define ISpVoice_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
 7027/*** ISpVoice methods ***/
 7028#define ISpVoice_SetOutput(This,pUnkOutput,fAllowFormatChanges) (This)->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges)
 7029#define ISpVoice_GetOutputObjectToken(This,ppObjectToken) (This)->lpVtbl->GetOutputObjectToken(This,ppObjectToken)
 7030#define ISpVoice_GetOutputStream(This,ppStream) (This)->lpVtbl->GetOutputStream(This,ppStream)
 7031#define ISpVoice_Pause(This) (This)->lpVtbl->Pause(This)
 7032#define ISpVoice_Resume(This) (This)->lpVtbl->Resume(This)
 7033#define ISpVoice_SetVoice(This,pToken) (This)->lpVtbl->SetVoice(This,pToken)
 7034#define ISpVoice_GetVoice(This,ppToken) (This)->lpVtbl->GetVoice(This,ppToken)
 7035#define ISpVoice_Speak(This,pwcs,dwFlags,pulStreamNumber) (This)->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber)
 7036#define ISpVoice_SpeakStream(This,pStream,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber)
 7037#define ISpVoice_GetStatus(This,pStatus,ppszLastBookmark) (This)->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark)
 7038#define ISpVoice_Skip(This,pItemType,lNumItems,pulNumSkipped) (This)->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped)
 7039#define ISpVoice_SetPriority(This,ePriority) (This)->lpVtbl->SetPriority(This,ePriority)
 7040#define ISpVoice_GetPriority(This,pePriority) (This)->lpVtbl->GetPriority(This,pePriority)
 7041#define ISpVoice_SetAlertBoundary(This,eBoundary) (This)->lpVtbl->SetAlertBoundary(This,eBoundary)
 7042#define ISpVoice_GetAlertBoundary(This,peBoundary) (This)->lpVtbl->GetAlertBoundary(This,peBoundary)
 7043#define ISpVoice_SetRate(This,RateAdjust) (This)->lpVtbl->SetRate(This,RateAdjust)
 7044#define ISpVoice_GetRate(This,pRateAdjust) (This)->lpVtbl->GetRate(This,pRateAdjust)
 7045#define ISpVoice_SetVolume(This,usVolume) (This)->lpVtbl->SetVolume(This,usVolume)
 7046#define ISpVoice_GetVolume(This,pusVolume) (This)->lpVtbl->GetVolume(This,pusVolume)
 7047#define ISpVoice_WaitUntilDone(This,msTimeout) (This)->lpVtbl->WaitUntilDone(This,msTimeout)
 7048#define ISpVoice_SetSyncSpeakTimeout(This,msTimeout) (This)->lpVtbl->SetSyncSpeakTimeout(This,msTimeout)
 7049#define ISpVoice_GetSyncSpeakTimeout(This,pmsTimeout) (This)->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout)
 7050#define ISpVoice_SpeakCompleteEvent(This) (This)->lpVtbl->SpeakCompleteEvent(This)
 7051#define ISpVoice_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
 7052#define ISpVoice_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
 7053#else
 7054/*** IUnknown methods ***/
 7055static inline HRESULT ISpVoice_QueryInterface(ISpVoice* This,REFIID riid,void **ppvObject) {
 7056    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7057}
 7058static inline ULONG ISpVoice_AddRef(ISpVoice* This) {
 7059    return This->lpVtbl->AddRef(This);
 7060}
 7061static inline ULONG ISpVoice_Release(ISpVoice* This) {
 7062    return This->lpVtbl->Release(This);
 7063}
 7064/*** ISpNotifySource methods ***/
 7065static inline HRESULT ISpVoice_SetNotifySink(ISpVoice* This,ISpNotifySink *pNotifySink) {
 7066    return This->lpVtbl->SetNotifySink(This,pNotifySink);
 7067}
 7068static inline HRESULT ISpVoice_SetNotifyWindowMessage(ISpVoice* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 7069    return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
 7070}
 7071static inline HRESULT ISpVoice_SetNotifyCallbackFunction(ISpVoice* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 7072    return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
 7073}
 7074static inline HRESULT ISpVoice_SetNotifyCallbackInterface(ISpVoice* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 7075    return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
 7076}
 7077static inline HRESULT ISpVoice_SetNotifyWin32Event(ISpVoice* This) {
 7078    return This->lpVtbl->SetNotifyWin32Event(This);
 7079}
 7080static inline HRESULT ISpVoice_WaitForNotifyEvent(ISpVoice* This,DWORD dwMilliseconds) {
 7081    return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
 7082}
 7083static inline HANDLE ISpVoice_GetNotifyEventHandle(ISpVoice* This) {
 7084    return This->lpVtbl->GetNotifyEventHandle(This);
 7085}
 7086/*** ISpEventSource methods ***/
 7087static inline HRESULT ISpVoice_SetInterest(ISpVoice* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
 7088    return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
 7089}
 7090static inline HRESULT ISpVoice_GetEvents(ISpVoice* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
 7091    return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
 7092}
 7093static inline HRESULT ISpVoice_GetInfo(ISpVoice* This,SPEVENTSOURCEINFO *pInfo) {
 7094    return This->lpVtbl->GetInfo(This,pInfo);
 7095}
 7096/*** ISpVoice methods ***/
 7097static inline HRESULT ISpVoice_SetOutput(ISpVoice* This,IUnknown *pUnkOutput,WINBOOL fAllowFormatChanges) {
 7098    return This->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges);
 7099}
 7100static inline HRESULT ISpVoice_GetOutputObjectToken(ISpVoice* This,ISpObjectToken **ppObjectToken) {
 7101    return This->lpVtbl->GetOutputObjectToken(This,ppObjectToken);
 7102}
 7103static inline HRESULT ISpVoice_GetOutputStream(ISpVoice* This,ISpStreamFormat **ppStream) {
 7104    return This->lpVtbl->GetOutputStream(This,ppStream);
 7105}
 7106static inline HRESULT ISpVoice_Pause(ISpVoice* This) {
 7107    return This->lpVtbl->Pause(This);
 7108}
 7109static inline HRESULT ISpVoice_Resume(ISpVoice* This) {
 7110    return This->lpVtbl->Resume(This);
 7111}
 7112static inline HRESULT ISpVoice_SetVoice(ISpVoice* This,ISpObjectToken *pToken) {
 7113    return This->lpVtbl->SetVoice(This,pToken);
 7114}
 7115static inline HRESULT ISpVoice_GetVoice(ISpVoice* This,ISpObjectToken **ppToken) {
 7116    return This->lpVtbl->GetVoice(This,ppToken);
 7117}
 7118static inline HRESULT ISpVoice_Speak(ISpVoice* This,LPCWSTR pwcs,DWORD dwFlags,ULONG *pulStreamNumber) {
 7119    return This->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber);
 7120}
 7121static inline HRESULT ISpVoice_SpeakStream(ISpVoice* This,IStream *pStream,DWORD dwFlags,ULONG *pulStreamNumber) {
 7122    return This->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber);
 7123}
 7124static inline HRESULT ISpVoice_GetStatus(ISpVoice* This,SPVOICESTATUS *pStatus,LPWSTR *ppszLastBookmark) {
 7125    return This->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark);
 7126}
 7127static inline HRESULT ISpVoice_Skip(ISpVoice* This,LPCWSTR pItemType,LONG lNumItems,ULONG *pulNumSkipped) {
 7128    return This->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped);
 7129}
 7130static inline HRESULT ISpVoice_SetPriority(ISpVoice* This,SPVPRIORITY ePriority) {
 7131    return This->lpVtbl->SetPriority(This,ePriority);
 7132}
 7133static inline HRESULT ISpVoice_GetPriority(ISpVoice* This,SPVPRIORITY *pePriority) {
 7134    return This->lpVtbl->GetPriority(This,pePriority);
 7135}
 7136static inline HRESULT ISpVoice_SetAlertBoundary(ISpVoice* This,SPEVENTENUM eBoundary) {
 7137    return This->lpVtbl->SetAlertBoundary(This,eBoundary);
 7138}
 7139static inline HRESULT ISpVoice_GetAlertBoundary(ISpVoice* This,SPEVENTENUM *peBoundary) {
 7140    return This->lpVtbl->GetAlertBoundary(This,peBoundary);
 7141}
 7142static inline HRESULT ISpVoice_SetRate(ISpVoice* This,LONG RateAdjust) {
 7143    return This->lpVtbl->SetRate(This,RateAdjust);
 7144}
 7145static inline HRESULT ISpVoice_GetRate(ISpVoice* This,LONG *pRateAdjust) {
 7146    return This->lpVtbl->GetRate(This,pRateAdjust);
 7147}
 7148static inline HRESULT ISpVoice_SetVolume(ISpVoice* This,USHORT usVolume) {
 7149    return This->lpVtbl->SetVolume(This,usVolume);
 7150}
 7151static inline HRESULT ISpVoice_GetVolume(ISpVoice* This,USHORT *pusVolume) {
 7152    return This->lpVtbl->GetVolume(This,pusVolume);
 7153}
 7154static inline HRESULT ISpVoice_WaitUntilDone(ISpVoice* This,ULONG msTimeout) {
 7155    return This->lpVtbl->WaitUntilDone(This,msTimeout);
 7156}
 7157static inline HRESULT ISpVoice_SetSyncSpeakTimeout(ISpVoice* This,ULONG msTimeout) {
 7158    return This->lpVtbl->SetSyncSpeakTimeout(This,msTimeout);
 7159}
 7160static inline HRESULT ISpVoice_GetSyncSpeakTimeout(ISpVoice* This,ULONG *pmsTimeout) {
 7161    return This->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout);
 7162}
 7163static inline HANDLE ISpVoice_SpeakCompleteEvent(ISpVoice* This) {
 7164    return This->lpVtbl->SpeakCompleteEvent(This);
 7165}
 7166static inline HRESULT ISpVoice_IsUISupported(ISpVoice* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
 7167    return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
 7168}
 7169static inline HRESULT ISpVoice_DisplayUI(ISpVoice* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
 7170    return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
 7171}
 7172#endif
 7173#endif
 7174
 7175#endif
 7176
 7177
 7178#endif  /* __ISpVoice_INTERFACE_DEFINED__ */
 7179
 7180/*****************************************************************************
 7181 * ISpPhrase interface
 7182 */
 7183#ifndef __ISpPhrase_INTERFACE_DEFINED__
 7184#define __ISpPhrase_INTERFACE_DEFINED__
 7185
 7186DEFINE_GUID(IID_ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53);
 7187#if defined(__cplusplus) && !defined(CINTERFACE)
 7188MIDL_INTERFACE("1a5c0354-b621-4b5a-8791-d306ed379e53")
 7189ISpPhrase : public IUnknown
 7190{
 7191    virtual HRESULT STDMETHODCALLTYPE GetPhrase(
 7192        SPPHRASE **ppCoMemPhrase) = 0;
 7193
 7194    virtual HRESULT STDMETHODCALLTYPE GetSerializedPhrase(
 7195        SPSERIALIZEDPHRASE **ppCoMemPhrase) = 0;
 7196
 7197    virtual HRESULT STDMETHODCALLTYPE GetText(
 7198        ULONG ulStart,
 7199        ULONG ulCount,
 7200        WINBOOL fUseTextReplacements,
 7201        LPWSTR *ppszCoMemText,
 7202        BYTE *pbDisplayAttributes) = 0;
 7203
 7204    virtual HRESULT STDMETHODCALLTYPE Discard(
 7205        DWORD dwValueTypes) = 0;
 7206
 7207};
 7208#ifdef __CRT_UUID_DECL
 7209__CRT_UUID_DECL(ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53)
 7210#endif
 7211#else
 7212typedef struct ISpPhraseVtbl {
 7213    BEGIN_INTERFACE
 7214
 7215    /*** IUnknown methods ***/
 7216    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7217        ISpPhrase *This,
 7218        REFIID riid,
 7219        void **ppvObject);
 7220
 7221    ULONG (STDMETHODCALLTYPE *AddRef)(
 7222        ISpPhrase *This);
 7223
 7224    ULONG (STDMETHODCALLTYPE *Release)(
 7225        ISpPhrase *This);
 7226
 7227    /*** ISpPhrase methods ***/
 7228    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 7229        ISpPhrase *This,
 7230        SPPHRASE **ppCoMemPhrase);
 7231
 7232    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 7233        ISpPhrase *This,
 7234        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 7235
 7236    HRESULT (STDMETHODCALLTYPE *GetText)(
 7237        ISpPhrase *This,
 7238        ULONG ulStart,
 7239        ULONG ulCount,
 7240        WINBOOL fUseTextReplacements,
 7241        LPWSTR *ppszCoMemText,
 7242        BYTE *pbDisplayAttributes);
 7243
 7244    HRESULT (STDMETHODCALLTYPE *Discard)(
 7245        ISpPhrase *This,
 7246        DWORD dwValueTypes);
 7247
 7248    END_INTERFACE
 7249} ISpPhraseVtbl;
 7250
 7251interface ISpPhrase {
 7252    CONST_VTBL ISpPhraseVtbl* lpVtbl;
 7253};
 7254
 7255#ifdef COBJMACROS
 7256#ifndef WIDL_C_INLINE_WRAPPERS
 7257/*** IUnknown methods ***/
 7258#define ISpPhrase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7259#define ISpPhrase_AddRef(This) (This)->lpVtbl->AddRef(This)
 7260#define ISpPhrase_Release(This) (This)->lpVtbl->Release(This)
 7261/*** ISpPhrase methods ***/
 7262#define ISpPhrase_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 7263#define ISpPhrase_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 7264#define ISpPhrase_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 7265#define ISpPhrase_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 7266#else
 7267/*** IUnknown methods ***/
 7268static inline HRESULT ISpPhrase_QueryInterface(ISpPhrase* This,REFIID riid,void **ppvObject) {
 7269    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7270}
 7271static inline ULONG ISpPhrase_AddRef(ISpPhrase* This) {
 7272    return This->lpVtbl->AddRef(This);
 7273}
 7274static inline ULONG ISpPhrase_Release(ISpPhrase* This) {
 7275    return This->lpVtbl->Release(This);
 7276}
 7277/*** ISpPhrase methods ***/
 7278static inline HRESULT ISpPhrase_GetPhrase(ISpPhrase* This,SPPHRASE **ppCoMemPhrase) {
 7279    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 7280}
 7281static inline HRESULT ISpPhrase_GetSerializedPhrase(ISpPhrase* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 7282    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 7283}
 7284static inline HRESULT ISpPhrase_GetText(ISpPhrase* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 7285    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 7286}
 7287static inline HRESULT ISpPhrase_Discard(ISpPhrase* This,DWORD dwValueTypes) {
 7288    return This->lpVtbl->Discard(This,dwValueTypes);
 7289}
 7290#endif
 7291#endif
 7292
 7293#endif
 7294
 7295
 7296#endif  /* __ISpPhrase_INTERFACE_DEFINED__ */
 7297
 7298/*****************************************************************************
 7299 * ISpPhraseAlt interface
 7300 */
 7301#ifndef __ISpPhraseAlt_INTERFACE_DEFINED__
 7302#define __ISpPhraseAlt_INTERFACE_DEFINED__
 7303
 7304DEFINE_GUID(IID_ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d);
 7305#if defined(__cplusplus) && !defined(CINTERFACE)
 7306MIDL_INTERFACE("8fcebc98-4e49-4067-9c6c-d86a0e092e3d")
 7307ISpPhraseAlt : public ISpPhrase
 7308{
 7309    virtual HRESULT STDMETHODCALLTYPE GetAltInfo(
 7310        ISpPhrase **ppParent,
 7311        ULONG *pulStartElementInParent,
 7312        ULONG *pcElementsInParent,
 7313        ULONG *pcElementsInAlt) = 0;
 7314
 7315    virtual HRESULT STDMETHODCALLTYPE Commit(
 7316        ) = 0;
 7317
 7318};
 7319#ifdef __CRT_UUID_DECL
 7320__CRT_UUID_DECL(ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d)
 7321#endif
 7322#else
 7323typedef struct ISpPhraseAltVtbl {
 7324    BEGIN_INTERFACE
 7325
 7326    /*** IUnknown methods ***/
 7327    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7328        ISpPhraseAlt *This,
 7329        REFIID riid,
 7330        void **ppvObject);
 7331
 7332    ULONG (STDMETHODCALLTYPE *AddRef)(
 7333        ISpPhraseAlt *This);
 7334
 7335    ULONG (STDMETHODCALLTYPE *Release)(
 7336        ISpPhraseAlt *This);
 7337
 7338    /*** ISpPhrase methods ***/
 7339    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 7340        ISpPhraseAlt *This,
 7341        SPPHRASE **ppCoMemPhrase);
 7342
 7343    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 7344        ISpPhraseAlt *This,
 7345        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 7346
 7347    HRESULT (STDMETHODCALLTYPE *GetText)(
 7348        ISpPhraseAlt *This,
 7349        ULONG ulStart,
 7350        ULONG ulCount,
 7351        WINBOOL fUseTextReplacements,
 7352        LPWSTR *ppszCoMemText,
 7353        BYTE *pbDisplayAttributes);
 7354
 7355    HRESULT (STDMETHODCALLTYPE *Discard)(
 7356        ISpPhraseAlt *This,
 7357        DWORD dwValueTypes);
 7358
 7359    /*** ISpPhraseAlt methods ***/
 7360    HRESULT (STDMETHODCALLTYPE *GetAltInfo)(
 7361        ISpPhraseAlt *This,
 7362        ISpPhrase **ppParent,
 7363        ULONG *pulStartElementInParent,
 7364        ULONG *pcElementsInParent,
 7365        ULONG *pcElementsInAlt);
 7366
 7367    HRESULT (STDMETHODCALLTYPE *Commit)(
 7368        ISpPhraseAlt *This);
 7369
 7370    END_INTERFACE
 7371} ISpPhraseAltVtbl;
 7372
 7373interface ISpPhraseAlt {
 7374    CONST_VTBL ISpPhraseAltVtbl* lpVtbl;
 7375};
 7376
 7377#ifdef COBJMACROS
 7378#ifndef WIDL_C_INLINE_WRAPPERS
 7379/*** IUnknown methods ***/
 7380#define ISpPhraseAlt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7381#define ISpPhraseAlt_AddRef(This) (This)->lpVtbl->AddRef(This)
 7382#define ISpPhraseAlt_Release(This) (This)->lpVtbl->Release(This)
 7383/*** ISpPhrase methods ***/
 7384#define ISpPhraseAlt_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 7385#define ISpPhraseAlt_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 7386#define ISpPhraseAlt_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 7387#define ISpPhraseAlt_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 7388/*** ISpPhraseAlt methods ***/
 7389#define ISpPhraseAlt_GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt) (This)->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
 7390#define ISpPhraseAlt_Commit(This) (This)->lpVtbl->Commit(This)
 7391#else
 7392/*** IUnknown methods ***/
 7393static inline HRESULT ISpPhraseAlt_QueryInterface(ISpPhraseAlt* This,REFIID riid,void **ppvObject) {
 7394    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7395}
 7396static inline ULONG ISpPhraseAlt_AddRef(ISpPhraseAlt* This) {
 7397    return This->lpVtbl->AddRef(This);
 7398}
 7399static inline ULONG ISpPhraseAlt_Release(ISpPhraseAlt* This) {
 7400    return This->lpVtbl->Release(This);
 7401}
 7402/*** ISpPhrase methods ***/
 7403static inline HRESULT ISpPhraseAlt_GetPhrase(ISpPhraseAlt* This,SPPHRASE **ppCoMemPhrase) {
 7404    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 7405}
 7406static inline HRESULT ISpPhraseAlt_GetSerializedPhrase(ISpPhraseAlt* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 7407    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 7408}
 7409static inline HRESULT ISpPhraseAlt_GetText(ISpPhraseAlt* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 7410    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 7411}
 7412static inline HRESULT ISpPhraseAlt_Discard(ISpPhraseAlt* This,DWORD dwValueTypes) {
 7413    return This->lpVtbl->Discard(This,dwValueTypes);
 7414}
 7415/*** ISpPhraseAlt methods ***/
 7416static inline HRESULT ISpPhraseAlt_GetAltInfo(ISpPhraseAlt* This,ISpPhrase **ppParent,ULONG *pulStartElementInParent,ULONG *pcElementsInParent,ULONG *pcElementsInAlt) {
 7417    return This->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt);
 7418}
 7419static inline HRESULT ISpPhraseAlt_Commit(ISpPhraseAlt* This) {
 7420    return This->lpVtbl->Commit(This);
 7421}
 7422#endif
 7423#endif
 7424
 7425#endif
 7426
 7427
 7428#endif  /* __ISpPhraseAlt_INTERFACE_DEFINED__ */
 7429
 7430typedef enum SPXMLRESULTOPTIONS {
 7431    SPXRO_SML = 0,
 7432    SPXRO_Alternates_SML = 1
 7433} SPXMLRESULTOPTIONS;
 7434/*****************************************************************************
 7435 * ISpPhrase2 interface
 7436 */
 7437#ifndef __ISpPhrase2_INTERFACE_DEFINED__
 7438#define __ISpPhrase2_INTERFACE_DEFINED__
 7439
 7440DEFINE_GUID(IID_ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79);
 7441#if defined(__cplusplus) && !defined(CINTERFACE)
 7442MIDL_INTERFACE("f264da52-e457-4696-b856-a737b717af79")
 7443ISpPhrase2 : public ISpPhrase
 7444{
 7445    virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
 7446        LPWSTR *ppszCoMemXMLResult,
 7447        SPXMLRESULTOPTIONS Options) = 0;
 7448
 7449    virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
 7450        SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
 7451
 7452    virtual HRESULT STDMETHODCALLTYPE GetAudio(
 7453        ULONG ulStartElement,
 7454        ULONG cElements,
 7455        ISpStreamFormat **ppStream) = 0;
 7456
 7457};
 7458#ifdef __CRT_UUID_DECL
 7459__CRT_UUID_DECL(ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79)
 7460#endif
 7461#else
 7462typedef struct ISpPhrase2Vtbl {
 7463    BEGIN_INTERFACE
 7464
 7465    /*** IUnknown methods ***/
 7466    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7467        ISpPhrase2 *This,
 7468        REFIID riid,
 7469        void **ppvObject);
 7470
 7471    ULONG (STDMETHODCALLTYPE *AddRef)(
 7472        ISpPhrase2 *This);
 7473
 7474    ULONG (STDMETHODCALLTYPE *Release)(
 7475        ISpPhrase2 *This);
 7476
 7477    /*** ISpPhrase methods ***/
 7478    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 7479        ISpPhrase2 *This,
 7480        SPPHRASE **ppCoMemPhrase);
 7481
 7482    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 7483        ISpPhrase2 *This,
 7484        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 7485
 7486    HRESULT (STDMETHODCALLTYPE *GetText)(
 7487        ISpPhrase2 *This,
 7488        ULONG ulStart,
 7489        ULONG ulCount,
 7490        WINBOOL fUseTextReplacements,
 7491        LPWSTR *ppszCoMemText,
 7492        BYTE *pbDisplayAttributes);
 7493
 7494    HRESULT (STDMETHODCALLTYPE *Discard)(
 7495        ISpPhrase2 *This,
 7496        DWORD dwValueTypes);
 7497
 7498    /*** ISpPhrase2 methods ***/
 7499    HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
 7500        ISpPhrase2 *This,
 7501        LPWSTR *ppszCoMemXMLResult,
 7502        SPXMLRESULTOPTIONS Options);
 7503
 7504    HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
 7505        ISpPhrase2 *This,
 7506        SPSEMANTICERRORINFO *pSemanticErrorInfo);
 7507
 7508    HRESULT (STDMETHODCALLTYPE *GetAudio)(
 7509        ISpPhrase2 *This,
 7510        ULONG ulStartElement,
 7511        ULONG cElements,
 7512        ISpStreamFormat **ppStream);
 7513
 7514    END_INTERFACE
 7515} ISpPhrase2Vtbl;
 7516
 7517interface ISpPhrase2 {
 7518    CONST_VTBL ISpPhrase2Vtbl* lpVtbl;
 7519};
 7520
 7521#ifdef COBJMACROS
 7522#ifndef WIDL_C_INLINE_WRAPPERS
 7523/*** IUnknown methods ***/
 7524#define ISpPhrase2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7525#define ISpPhrase2_AddRef(This) (This)->lpVtbl->AddRef(This)
 7526#define ISpPhrase2_Release(This) (This)->lpVtbl->Release(This)
 7527/*** ISpPhrase methods ***/
 7528#define ISpPhrase2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 7529#define ISpPhrase2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 7530#define ISpPhrase2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 7531#define ISpPhrase2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 7532/*** ISpPhrase2 methods ***/
 7533#define ISpPhrase2_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
 7534#define ISpPhrase2_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
 7535#define ISpPhrase2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
 7536#else
 7537/*** IUnknown methods ***/
 7538static inline HRESULT ISpPhrase2_QueryInterface(ISpPhrase2* This,REFIID riid,void **ppvObject) {
 7539    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7540}
 7541static inline ULONG ISpPhrase2_AddRef(ISpPhrase2* This) {
 7542    return This->lpVtbl->AddRef(This);
 7543}
 7544static inline ULONG ISpPhrase2_Release(ISpPhrase2* This) {
 7545    return This->lpVtbl->Release(This);
 7546}
 7547/*** ISpPhrase methods ***/
 7548static inline HRESULT ISpPhrase2_GetPhrase(ISpPhrase2* This,SPPHRASE **ppCoMemPhrase) {
 7549    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 7550}
 7551static inline HRESULT ISpPhrase2_GetSerializedPhrase(ISpPhrase2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 7552    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 7553}
 7554static inline HRESULT ISpPhrase2_GetText(ISpPhrase2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 7555    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 7556}
 7557static inline HRESULT ISpPhrase2_Discard(ISpPhrase2* This,DWORD dwValueTypes) {
 7558    return This->lpVtbl->Discard(This,dwValueTypes);
 7559}
 7560/*** ISpPhrase2 methods ***/
 7561static inline HRESULT ISpPhrase2_GetXMLResult(ISpPhrase2* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
 7562    return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
 7563}
 7564static inline HRESULT ISpPhrase2_GetXMLErrorInfo(ISpPhrase2* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
 7565    return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
 7566}
 7567static inline HRESULT ISpPhrase2_GetAudio(ISpPhrase2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
 7568    return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
 7569}
 7570#endif
 7571#endif
 7572
 7573#endif
 7574
 7575
 7576#endif  /* __ISpPhrase2_INTERFACE_DEFINED__ */
 7577
 7578typedef struct SPRECORESULTTIMES {
 7579    FILETIME ftStreamTime;
 7580    ULONGLONG ullLength;
 7581    DWORD dwTickCount;
 7582    ULONGLONG ullStart;
 7583} SPRECORESULTTIMES;
 7584typedef struct SPSERIALIZEDRESULT {
 7585    ULONG ulSerializedSize;
 7586} SPSERIALIZEDRESULT;
 7587/*****************************************************************************
 7588 * ISpRecoResult interface
 7589 */
 7590#ifndef __ISpRecoResult_INTERFACE_DEFINED__
 7591#define __ISpRecoResult_INTERFACE_DEFINED__
 7592
 7593DEFINE_GUID(IID_ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42);
 7594#if defined(__cplusplus) && !defined(CINTERFACE)
 7595MIDL_INTERFACE("20b053be-e235-43cd-9a2a-8d17a48b7842")
 7596ISpRecoResult : public ISpPhrase
 7597{
 7598    virtual HRESULT STDMETHODCALLTYPE GetResultTimes(
 7599        SPRECORESULTTIMES *pTimes) = 0;
 7600
 7601    virtual HRESULT STDMETHODCALLTYPE GetAlternates(
 7602        ULONG ulStartElement,
 7603        ULONG cElements,
 7604        ULONG ulRequestCount,
 7605        ISpPhraseAlt **ppPhrases,
 7606        ULONG *pcPhrasesReturned) = 0;
 7607
 7608    virtual HRESULT STDMETHODCALLTYPE GetAudio(
 7609        ULONG ulStartElement,
 7610        ULONG cElements,
 7611        ISpStreamFormat **ppStream) = 0;
 7612
 7613    virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
 7614        ULONG ulStartElement,
 7615        ULONG cElements,
 7616        DWORD dwFlags,
 7617        ULONG *pulStreamNumber) = 0;
 7618
 7619    virtual HRESULT STDMETHODCALLTYPE Serialize(
 7620        SPSERIALIZEDRESULT **ppCoMemSerializedResult) = 0;
 7621
 7622    virtual HRESULT STDMETHODCALLTYPE ScaleAudio(
 7623        const GUID *pAudioFormatId,
 7624        const WAVEFORMATEX *pWaveFormatEx) = 0;
 7625
 7626    virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
 7627        ISpRecoContext **ppRecoContext) = 0;
 7628
 7629};
 7630#ifdef __CRT_UUID_DECL
 7631__CRT_UUID_DECL(ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42)
 7632#endif
 7633#else
 7634typedef struct ISpRecoResultVtbl {
 7635    BEGIN_INTERFACE
 7636
 7637    /*** IUnknown methods ***/
 7638    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7639        ISpRecoResult *This,
 7640        REFIID riid,
 7641        void **ppvObject);
 7642
 7643    ULONG (STDMETHODCALLTYPE *AddRef)(
 7644        ISpRecoResult *This);
 7645
 7646    ULONG (STDMETHODCALLTYPE *Release)(
 7647        ISpRecoResult *This);
 7648
 7649    /*** ISpPhrase methods ***/
 7650    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 7651        ISpRecoResult *This,
 7652        SPPHRASE **ppCoMemPhrase);
 7653
 7654    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 7655        ISpRecoResult *This,
 7656        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 7657
 7658    HRESULT (STDMETHODCALLTYPE *GetText)(
 7659        ISpRecoResult *This,
 7660        ULONG ulStart,
 7661        ULONG ulCount,
 7662        WINBOOL fUseTextReplacements,
 7663        LPWSTR *ppszCoMemText,
 7664        BYTE *pbDisplayAttributes);
 7665
 7666    HRESULT (STDMETHODCALLTYPE *Discard)(
 7667        ISpRecoResult *This,
 7668        DWORD dwValueTypes);
 7669
 7670    /*** ISpRecoResult methods ***/
 7671    HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
 7672        ISpRecoResult *This,
 7673        SPRECORESULTTIMES *pTimes);
 7674
 7675    HRESULT (STDMETHODCALLTYPE *GetAlternates)(
 7676        ISpRecoResult *This,
 7677        ULONG ulStartElement,
 7678        ULONG cElements,
 7679        ULONG ulRequestCount,
 7680        ISpPhraseAlt **ppPhrases,
 7681        ULONG *pcPhrasesReturned);
 7682
 7683    HRESULT (STDMETHODCALLTYPE *GetAudio)(
 7684        ISpRecoResult *This,
 7685        ULONG ulStartElement,
 7686        ULONG cElements,
 7687        ISpStreamFormat **ppStream);
 7688
 7689    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
 7690        ISpRecoResult *This,
 7691        ULONG ulStartElement,
 7692        ULONG cElements,
 7693        DWORD dwFlags,
 7694        ULONG *pulStreamNumber);
 7695
 7696    HRESULT (STDMETHODCALLTYPE *Serialize)(
 7697        ISpRecoResult *This,
 7698        SPSERIALIZEDRESULT **ppCoMemSerializedResult);
 7699
 7700    HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
 7701        ISpRecoResult *This,
 7702        const GUID *pAudioFormatId,
 7703        const WAVEFORMATEX *pWaveFormatEx);
 7704
 7705    HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
 7706        ISpRecoResult *This,
 7707        ISpRecoContext **ppRecoContext);
 7708
 7709    END_INTERFACE
 7710} ISpRecoResultVtbl;
 7711
 7712interface ISpRecoResult {
 7713    CONST_VTBL ISpRecoResultVtbl* lpVtbl;
 7714};
 7715
 7716#ifdef COBJMACROS
 7717#ifndef WIDL_C_INLINE_WRAPPERS
 7718/*** IUnknown methods ***/
 7719#define ISpRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7720#define ISpRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
 7721#define ISpRecoResult_Release(This) (This)->lpVtbl->Release(This)
 7722/*** ISpPhrase methods ***/
 7723#define ISpRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 7724#define ISpRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 7725#define ISpRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 7726#define ISpRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 7727/*** ISpRecoResult methods ***/
 7728#define ISpRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
 7729#define ISpRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
 7730#define ISpRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
 7731#define ISpRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
 7732#define ISpRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
 7733#define ISpRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
 7734#define ISpRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
 7735#else
 7736/*** IUnknown methods ***/
 7737static inline HRESULT ISpRecoResult_QueryInterface(ISpRecoResult* This,REFIID riid,void **ppvObject) {
 7738    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7739}
 7740static inline ULONG ISpRecoResult_AddRef(ISpRecoResult* This) {
 7741    return This->lpVtbl->AddRef(This);
 7742}
 7743static inline ULONG ISpRecoResult_Release(ISpRecoResult* This) {
 7744    return This->lpVtbl->Release(This);
 7745}
 7746/*** ISpPhrase methods ***/
 7747static inline HRESULT ISpRecoResult_GetPhrase(ISpRecoResult* This,SPPHRASE **ppCoMemPhrase) {
 7748    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 7749}
 7750static inline HRESULT ISpRecoResult_GetSerializedPhrase(ISpRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 7751    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 7752}
 7753static inline HRESULT ISpRecoResult_GetText(ISpRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 7754    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 7755}
 7756static inline HRESULT ISpRecoResult_Discard(ISpRecoResult* This,DWORD dwValueTypes) {
 7757    return This->lpVtbl->Discard(This,dwValueTypes);
 7758}
 7759/*** ISpRecoResult methods ***/
 7760static inline HRESULT ISpRecoResult_GetResultTimes(ISpRecoResult* This,SPRECORESULTTIMES *pTimes) {
 7761    return This->lpVtbl->GetResultTimes(This,pTimes);
 7762}
 7763static inline HRESULT ISpRecoResult_GetAlternates(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
 7764    return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
 7765}
 7766static inline HRESULT ISpRecoResult_GetAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
 7767    return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
 7768}
 7769static inline HRESULT ISpRecoResult_SpeakAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
 7770    return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
 7771}
 7772static inline HRESULT ISpRecoResult_Serialize(ISpRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
 7773    return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
 7774}
 7775static inline HRESULT ISpRecoResult_ScaleAudio(ISpRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
 7776    return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
 7777}
 7778static inline HRESULT ISpRecoResult_GetRecoContext(ISpRecoResult* This,ISpRecoContext **ppRecoContext) {
 7779    return This->lpVtbl->GetRecoContext(This,ppRecoContext);
 7780}
 7781#endif
 7782#endif
 7783
 7784#endif
 7785
 7786
 7787#endif  /* __ISpRecoResult_INTERFACE_DEFINED__ */
 7788
 7789typedef enum SPCOMMITFLAGS {
 7790    SPCF_NONE = 0,
 7791    SPCF_ADD_TO_USER_LEXICON = 1 << 0,
 7792    SPCF_DEFINITE_CORRECTION = 1 << 1
 7793} SPCOMMITFLAGS;
 7794/*****************************************************************************
 7795 * ISpRecoResult2 interface
 7796 */
 7797#ifndef __ISpRecoResult2_INTERFACE_DEFINED__
 7798#define __ISpRecoResult2_INTERFACE_DEFINED__
 7799
 7800DEFINE_GUID(IID_ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e);
 7801#if defined(__cplusplus) && !defined(CINTERFACE)
 7802MIDL_INTERFACE("27cac6c4-88f2-41f2-8817-0c95e59f1e6e")
 7803ISpRecoResult2 : public ISpRecoResult
 7804{
 7805    virtual HRESULT STDMETHODCALLTYPE CommitAlternate(
 7806        ISpPhraseAlt *pPhraseAlt,
 7807        ISpRecoResult **ppNewResult) = 0;
 7808
 7809    virtual HRESULT STDMETHODCALLTYPE CommitText(
 7810        ULONG ulStartElement,
 7811        ULONG cElements,
 7812        LPCWSTR pszCorrectedData,
 7813        DWORD eCommitFlags) = 0;
 7814
 7815    virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
 7816        LPCWSTR pszFeedback,
 7817        WINBOOL fSuccessful) = 0;
 7818
 7819};
 7820#ifdef __CRT_UUID_DECL
 7821__CRT_UUID_DECL(ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e)
 7822#endif
 7823#else
 7824typedef struct ISpRecoResult2Vtbl {
 7825    BEGIN_INTERFACE
 7826
 7827    /*** IUnknown methods ***/
 7828    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7829        ISpRecoResult2 *This,
 7830        REFIID riid,
 7831        void **ppvObject);
 7832
 7833    ULONG (STDMETHODCALLTYPE *AddRef)(
 7834        ISpRecoResult2 *This);
 7835
 7836    ULONG (STDMETHODCALLTYPE *Release)(
 7837        ISpRecoResult2 *This);
 7838
 7839    /*** ISpPhrase methods ***/
 7840    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 7841        ISpRecoResult2 *This,
 7842        SPPHRASE **ppCoMemPhrase);
 7843
 7844    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 7845        ISpRecoResult2 *This,
 7846        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 7847
 7848    HRESULT (STDMETHODCALLTYPE *GetText)(
 7849        ISpRecoResult2 *This,
 7850        ULONG ulStart,
 7851        ULONG ulCount,
 7852        WINBOOL fUseTextReplacements,
 7853        LPWSTR *ppszCoMemText,
 7854        BYTE *pbDisplayAttributes);
 7855
 7856    HRESULT (STDMETHODCALLTYPE *Discard)(
 7857        ISpRecoResult2 *This,
 7858        DWORD dwValueTypes);
 7859
 7860    /*** ISpRecoResult methods ***/
 7861    HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
 7862        ISpRecoResult2 *This,
 7863        SPRECORESULTTIMES *pTimes);
 7864
 7865    HRESULT (STDMETHODCALLTYPE *GetAlternates)(
 7866        ISpRecoResult2 *This,
 7867        ULONG ulStartElement,
 7868        ULONG cElements,
 7869        ULONG ulRequestCount,
 7870        ISpPhraseAlt **ppPhrases,
 7871        ULONG *pcPhrasesReturned);
 7872
 7873    HRESULT (STDMETHODCALLTYPE *GetAudio)(
 7874        ISpRecoResult2 *This,
 7875        ULONG ulStartElement,
 7876        ULONG cElements,
 7877        ISpStreamFormat **ppStream);
 7878
 7879    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
 7880        ISpRecoResult2 *This,
 7881        ULONG ulStartElement,
 7882        ULONG cElements,
 7883        DWORD dwFlags,
 7884        ULONG *pulStreamNumber);
 7885
 7886    HRESULT (STDMETHODCALLTYPE *Serialize)(
 7887        ISpRecoResult2 *This,
 7888        SPSERIALIZEDRESULT **ppCoMemSerializedResult);
 7889
 7890    HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
 7891        ISpRecoResult2 *This,
 7892        const GUID *pAudioFormatId,
 7893        const WAVEFORMATEX *pWaveFormatEx);
 7894
 7895    HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
 7896        ISpRecoResult2 *This,
 7897        ISpRecoContext **ppRecoContext);
 7898
 7899    /*** ISpRecoResult2 methods ***/
 7900    HRESULT (STDMETHODCALLTYPE *CommitAlternate)(
 7901        ISpRecoResult2 *This,
 7902        ISpPhraseAlt *pPhraseAlt,
 7903        ISpRecoResult **ppNewResult);
 7904
 7905    HRESULT (STDMETHODCALLTYPE *CommitText)(
 7906        ISpRecoResult2 *This,
 7907        ULONG ulStartElement,
 7908        ULONG cElements,
 7909        LPCWSTR pszCorrectedData,
 7910        DWORD eCommitFlags);
 7911
 7912    HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
 7913        ISpRecoResult2 *This,
 7914        LPCWSTR pszFeedback,
 7915        WINBOOL fSuccessful);
 7916
 7917    END_INTERFACE
 7918} ISpRecoResult2Vtbl;
 7919
 7920interface ISpRecoResult2 {
 7921    CONST_VTBL ISpRecoResult2Vtbl* lpVtbl;
 7922};
 7923
 7924#ifdef COBJMACROS
 7925#ifndef WIDL_C_INLINE_WRAPPERS
 7926/*** IUnknown methods ***/
 7927#define ISpRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7928#define ISpRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
 7929#define ISpRecoResult2_Release(This) (This)->lpVtbl->Release(This)
 7930/*** ISpPhrase methods ***/
 7931#define ISpRecoResult2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 7932#define ISpRecoResult2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 7933#define ISpRecoResult2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 7934#define ISpRecoResult2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 7935/*** ISpRecoResult methods ***/
 7936#define ISpRecoResult2_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
 7937#define ISpRecoResult2_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
 7938#define ISpRecoResult2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
 7939#define ISpRecoResult2_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
 7940#define ISpRecoResult2_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
 7941#define ISpRecoResult2_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
 7942#define ISpRecoResult2_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
 7943/*** ISpRecoResult2 methods ***/
 7944#define ISpRecoResult2_CommitAlternate(This,pPhraseAlt,ppNewResult) (This)->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult)
 7945#define ISpRecoResult2_CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags) (This)->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags)
 7946#define ISpRecoResult2_SetTextFeedback(This,pszFeedback,fSuccessful) (This)->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful)
 7947#else
 7948/*** IUnknown methods ***/
 7949static inline HRESULT ISpRecoResult2_QueryInterface(ISpRecoResult2* This,REFIID riid,void **ppvObject) {
 7950    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7951}
 7952static inline ULONG ISpRecoResult2_AddRef(ISpRecoResult2* This) {
 7953    return This->lpVtbl->AddRef(This);
 7954}
 7955static inline ULONG ISpRecoResult2_Release(ISpRecoResult2* This) {
 7956    return This->lpVtbl->Release(This);
 7957}
 7958/*** ISpPhrase methods ***/
 7959static inline HRESULT ISpRecoResult2_GetPhrase(ISpRecoResult2* This,SPPHRASE **ppCoMemPhrase) {
 7960    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 7961}
 7962static inline HRESULT ISpRecoResult2_GetSerializedPhrase(ISpRecoResult2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 7963    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 7964}
 7965static inline HRESULT ISpRecoResult2_GetText(ISpRecoResult2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 7966    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 7967}
 7968static inline HRESULT ISpRecoResult2_Discard(ISpRecoResult2* This,DWORD dwValueTypes) {
 7969    return This->lpVtbl->Discard(This,dwValueTypes);
 7970}
 7971/*** ISpRecoResult methods ***/
 7972static inline HRESULT ISpRecoResult2_GetResultTimes(ISpRecoResult2* This,SPRECORESULTTIMES *pTimes) {
 7973    return This->lpVtbl->GetResultTimes(This,pTimes);
 7974}
 7975static inline HRESULT ISpRecoResult2_GetAlternates(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
 7976    return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
 7977}
 7978static inline HRESULT ISpRecoResult2_GetAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
 7979    return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
 7980}
 7981static inline HRESULT ISpRecoResult2_SpeakAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
 7982    return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
 7983}
 7984static inline HRESULT ISpRecoResult2_Serialize(ISpRecoResult2* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
 7985    return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
 7986}
 7987static inline HRESULT ISpRecoResult2_ScaleAudio(ISpRecoResult2* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
 7988    return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
 7989}
 7990static inline HRESULT ISpRecoResult2_GetRecoContext(ISpRecoResult2* This,ISpRecoContext **ppRecoContext) {
 7991    return This->lpVtbl->GetRecoContext(This,ppRecoContext);
 7992}
 7993/*** ISpRecoResult2 methods ***/
 7994static inline HRESULT ISpRecoResult2_CommitAlternate(ISpRecoResult2* This,ISpPhraseAlt *pPhraseAlt,ISpRecoResult **ppNewResult) {
 7995    return This->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult);
 7996}
 7997static inline HRESULT ISpRecoResult2_CommitText(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,LPCWSTR pszCorrectedData,DWORD eCommitFlags) {
 7998    return This->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags);
 7999}
 8000static inline HRESULT ISpRecoResult2_SetTextFeedback(ISpRecoResult2* This,LPCWSTR pszFeedback,WINBOOL fSuccessful) {
 8001    return This->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful);
 8002}
 8003#endif
 8004#endif
 8005
 8006#endif
 8007
 8008
 8009#endif  /* __ISpRecoResult2_INTERFACE_DEFINED__ */
 8010
 8011/*****************************************************************************
 8012 * ISpXMLRecoResult interface
 8013 */
 8014#ifndef __ISpXMLRecoResult_INTERFACE_DEFINED__
 8015#define __ISpXMLRecoResult_INTERFACE_DEFINED__
 8016
 8017DEFINE_GUID(IID_ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6);
 8018#if defined(__cplusplus) && !defined(CINTERFACE)
 8019MIDL_INTERFACE("ae39362b-45a8-4074-9b9e-ccf49aa2d0b6")
 8020ISpXMLRecoResult : public ISpRecoResult
 8021{
 8022    virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
 8023        LPWSTR *ppszCoMemXMLResult,
 8024        SPXMLRESULTOPTIONS Options) = 0;
 8025
 8026    virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
 8027        SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
 8028
 8029};
 8030#ifdef __CRT_UUID_DECL
 8031__CRT_UUID_DECL(ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6)
 8032#endif
 8033#else
 8034typedef struct ISpXMLRecoResultVtbl {
 8035    BEGIN_INTERFACE
 8036
 8037    /*** IUnknown methods ***/
 8038    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8039        ISpXMLRecoResult *This,
 8040        REFIID riid,
 8041        void **ppvObject);
 8042
 8043    ULONG (STDMETHODCALLTYPE *AddRef)(
 8044        ISpXMLRecoResult *This);
 8045
 8046    ULONG (STDMETHODCALLTYPE *Release)(
 8047        ISpXMLRecoResult *This);
 8048
 8049    /*** ISpPhrase methods ***/
 8050    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 8051        ISpXMLRecoResult *This,
 8052        SPPHRASE **ppCoMemPhrase);
 8053
 8054    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 8055        ISpXMLRecoResult *This,
 8056        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 8057
 8058    HRESULT (STDMETHODCALLTYPE *GetText)(
 8059        ISpXMLRecoResult *This,
 8060        ULONG ulStart,
 8061        ULONG ulCount,
 8062        WINBOOL fUseTextReplacements,
 8063        LPWSTR *ppszCoMemText,
 8064        BYTE *pbDisplayAttributes);
 8065
 8066    HRESULT (STDMETHODCALLTYPE *Discard)(
 8067        ISpXMLRecoResult *This,
 8068        DWORD dwValueTypes);
 8069
 8070    /*** ISpRecoResult methods ***/
 8071    HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
 8072        ISpXMLRecoResult *This,
 8073        SPRECORESULTTIMES *pTimes);
 8074
 8075    HRESULT (STDMETHODCALLTYPE *GetAlternates)(
 8076        ISpXMLRecoResult *This,
 8077        ULONG ulStartElement,
 8078        ULONG cElements,
 8079        ULONG ulRequestCount,
 8080        ISpPhraseAlt **ppPhrases,
 8081        ULONG *pcPhrasesReturned);
 8082
 8083    HRESULT (STDMETHODCALLTYPE *GetAudio)(
 8084        ISpXMLRecoResult *This,
 8085        ULONG ulStartElement,
 8086        ULONG cElements,
 8087        ISpStreamFormat **ppStream);
 8088
 8089    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
 8090        ISpXMLRecoResult *This,
 8091        ULONG ulStartElement,
 8092        ULONG cElements,
 8093        DWORD dwFlags,
 8094        ULONG *pulStreamNumber);
 8095
 8096    HRESULT (STDMETHODCALLTYPE *Serialize)(
 8097        ISpXMLRecoResult *This,
 8098        SPSERIALIZEDRESULT **ppCoMemSerializedResult);
 8099
 8100    HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
 8101        ISpXMLRecoResult *This,
 8102        const GUID *pAudioFormatId,
 8103        const WAVEFORMATEX *pWaveFormatEx);
 8104
 8105    HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
 8106        ISpXMLRecoResult *This,
 8107        ISpRecoContext **ppRecoContext);
 8108
 8109    /*** ISpXMLRecoResult methods ***/
 8110    HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
 8111        ISpXMLRecoResult *This,
 8112        LPWSTR *ppszCoMemXMLResult,
 8113        SPXMLRESULTOPTIONS Options);
 8114
 8115    HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
 8116        ISpXMLRecoResult *This,
 8117        SPSEMANTICERRORINFO *pSemanticErrorInfo);
 8118
 8119    END_INTERFACE
 8120} ISpXMLRecoResultVtbl;
 8121
 8122interface ISpXMLRecoResult {
 8123    CONST_VTBL ISpXMLRecoResultVtbl* lpVtbl;
 8124};
 8125
 8126#ifdef COBJMACROS
 8127#ifndef WIDL_C_INLINE_WRAPPERS
 8128/*** IUnknown methods ***/
 8129#define ISpXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8130#define ISpXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
 8131#define ISpXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
 8132/*** ISpPhrase methods ***/
 8133#define ISpXMLRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 8134#define ISpXMLRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 8135#define ISpXMLRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 8136#define ISpXMLRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 8137/*** ISpRecoResult methods ***/
 8138#define ISpXMLRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
 8139#define ISpXMLRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
 8140#define ISpXMLRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
 8141#define ISpXMLRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
 8142#define ISpXMLRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
 8143#define ISpXMLRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
 8144#define ISpXMLRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
 8145/*** ISpXMLRecoResult methods ***/
 8146#define ISpXMLRecoResult_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
 8147#define ISpXMLRecoResult_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
 8148#else
 8149/*** IUnknown methods ***/
 8150static inline HRESULT ISpXMLRecoResult_QueryInterface(ISpXMLRecoResult* This,REFIID riid,void **ppvObject) {
 8151    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8152}
 8153static inline ULONG ISpXMLRecoResult_AddRef(ISpXMLRecoResult* This) {
 8154    return This->lpVtbl->AddRef(This);
 8155}
 8156static inline ULONG ISpXMLRecoResult_Release(ISpXMLRecoResult* This) {
 8157    return This->lpVtbl->Release(This);
 8158}
 8159/*** ISpPhrase methods ***/
 8160static inline HRESULT ISpXMLRecoResult_GetPhrase(ISpXMLRecoResult* This,SPPHRASE **ppCoMemPhrase) {
 8161    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 8162}
 8163static inline HRESULT ISpXMLRecoResult_GetSerializedPhrase(ISpXMLRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 8164    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 8165}
 8166static inline HRESULT ISpXMLRecoResult_GetText(ISpXMLRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 8167    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 8168}
 8169static inline HRESULT ISpXMLRecoResult_Discard(ISpXMLRecoResult* This,DWORD dwValueTypes) {
 8170    return This->lpVtbl->Discard(This,dwValueTypes);
 8171}
 8172/*** ISpRecoResult methods ***/
 8173static inline HRESULT ISpXMLRecoResult_GetResultTimes(ISpXMLRecoResult* This,SPRECORESULTTIMES *pTimes) {
 8174    return This->lpVtbl->GetResultTimes(This,pTimes);
 8175}
 8176static inline HRESULT ISpXMLRecoResult_GetAlternates(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
 8177    return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
 8178}
 8179static inline HRESULT ISpXMLRecoResult_GetAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
 8180    return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
 8181}
 8182static inline HRESULT ISpXMLRecoResult_SpeakAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
 8183    return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
 8184}
 8185static inline HRESULT ISpXMLRecoResult_Serialize(ISpXMLRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
 8186    return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
 8187}
 8188static inline HRESULT ISpXMLRecoResult_ScaleAudio(ISpXMLRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
 8189    return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
 8190}
 8191static inline HRESULT ISpXMLRecoResult_GetRecoContext(ISpXMLRecoResult* This,ISpRecoContext **ppRecoContext) {
 8192    return This->lpVtbl->GetRecoContext(This,ppRecoContext);
 8193}
 8194/*** ISpXMLRecoResult methods ***/
 8195static inline HRESULT ISpXMLRecoResult_GetXMLResult(ISpXMLRecoResult* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
 8196    return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
 8197}
 8198static inline HRESULT ISpXMLRecoResult_GetXMLErrorInfo(ISpXMLRecoResult* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
 8199    return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
 8200}
 8201#endif
 8202#endif
 8203
 8204#endif
 8205
 8206
 8207#endif  /* __ISpXMLRecoResult_INTERFACE_DEFINED__ */
 8208
 8209typedef struct tagSPTEXTSELECTIONINFO {
 8210    ULONG ulStartActiveOffset;
 8211    ULONG cchActiveChars;
 8212    ULONG ulStartSelection;
 8213    ULONG cchSelection;
 8214} SPTEXTSELECTIONINFO;
 8215typedef enum SPWORDPRONOUNCEABLE {
 8216    SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0,
 8217    SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1,
 8218    SPWP_KNOWN_WORD_PRONOUNCEABLE = 2
 8219} SPWORDPRONOUNCEABLE;
 8220typedef enum SPGRAMMARSTATE {
 8221    SPGS_DISABLED = 0,
 8222    SPGS_ENABLED = 1,
 8223    SPGS_EXCLUSIVE = 3
 8224} SPGRAMMARSTATE;
 8225typedef enum SPCONTEXTSTATE {
 8226    SPCS_DISABLED = 0,
 8227    SPCS_ENABLED = 1
 8228} SPCONTEXTSTATE;
 8229typedef enum SPRULESTATE {
 8230    SPRS_INACTIVE = 0,
 8231    SPRS_ACTIVE = 1,
 8232    SPRS_ACTIVE_WITH_AUTO_PAUSE = 3,
 8233    SPRS_ACTIVE_USER_DELIMITED = 4
 8234} SPRULESTATE;
 8235#define SP_STREAMPOS_ASAP (0)
 8236
 8237#define SP_STREAMPOS_REALTIME (-1)
 8238
 8239#define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE) (-1)
 8240#define SPRULETRANS_WILDCARD (SPSTATEHANDLE) (-2)
 8241#define SPRULETRANS_DICTATION (SPSTATEHANDLE) (-3)
 8242typedef enum SPGRAMMARWORDTYPE {
 8243    SPWT_DISPLAY = 0,
 8244    SPWT_LEXICAL = 1,
 8245    SPWT_PRONUNCIATION = 2,
 8246    SPWT_LEXICAL_NO_SPECIAL_CHARS = 3
 8247} SPGRAMMARWORDTYPE;
 8248typedef struct tagSPPROPERTYINFO {
 8249    LPCWSTR pszName;
 8250    ULONG ulId;
 8251    LPCWSTR pszValue;
 8252    VARIANT vValue;
 8253} SPPROPERTYINFO;
 8254typedef enum SPCFGRULEATTRIBUTES {
 8255    SPRAF_TopLevel = 0x1,
 8256    SPRAF_Active = 0x2,
 8257    SPRAF_Export = 0x4,
 8258    SPRAF_Import = 0x8,
 8259    SPRAF_Interpreter = 0x10,
 8260    SPRAF_Dynamic = 0x20,
 8261    SPRAF_Root = 0x40,
 8262    SPRAF_AutoPause = 0x10000,
 8263    SPRAF_UserDelimited = 0x20000
 8264} SPCFGRULEATTRIBUTES;
 8265/*****************************************************************************
 8266 * ISpGrammarBuilder interface
 8267 */
 8268#ifndef __ISpGrammarBuilder_INTERFACE_DEFINED__
 8269#define __ISpGrammarBuilder_INTERFACE_DEFINED__
 8270
 8271DEFINE_GUID(IID_ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68);
 8272#if defined(__cplusplus) && !defined(CINTERFACE)
 8273MIDL_INTERFACE("8137828f-591a-4a42-be58-49ea7ebaac68")
 8274ISpGrammarBuilder : public IUnknown
 8275{
 8276    virtual HRESULT STDMETHODCALLTYPE ResetGrammar(
 8277        WORD NewLanguage) = 0;
 8278
 8279    virtual HRESULT STDMETHODCALLTYPE GetRule(
 8280        LPCWSTR pszRuleName,
 8281        DWORD dwRuleId,
 8282        DWORD dwAttributes,
 8283        WINBOOL fCreateIfNotExist,
 8284        SPSTATEHANDLE *phInitialState) = 0;
 8285
 8286    virtual HRESULT STDMETHODCALLTYPE ClearRule(
 8287        SPSTATEHANDLE hState) = 0;
 8288
 8289    virtual HRESULT STDMETHODCALLTYPE CreateNewState(
 8290        SPSTATEHANDLE hState,
 8291        SPSTATEHANDLE *phState) = 0;
 8292
 8293    virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
 8294        SPSTATEHANDLE hFromState,
 8295        SPSTATEHANDLE hToState,
 8296        LPCWSTR psz,
 8297        LPCWSTR pszSeparators,
 8298        SPGRAMMARWORDTYPE eWordType,
 8299        float Weight,
 8300        const SPPROPERTYINFO *pPropInfo) = 0;
 8301
 8302    virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
 8303        SPSTATEHANDLE hFromState,
 8304        SPSTATEHANDLE hToState,
 8305        SPSTATEHANDLE hRule,
 8306        float Weight,
 8307        const SPPROPERTYINFO *pPropInfo) = 0;
 8308
 8309    virtual HRESULT STDMETHODCALLTYPE AddResource(
 8310        SPSTATEHANDLE hRuleState,
 8311        LPCWSTR pszResourceName,
 8312        LPCWSTR pszResourceValue) = 0;
 8313
 8314    virtual HRESULT STDMETHODCALLTYPE Commit(
 8315        DWORD dwReserved) = 0;
 8316
 8317};
 8318#ifdef __CRT_UUID_DECL
 8319__CRT_UUID_DECL(ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68)
 8320#endif
 8321#else
 8322typedef struct ISpGrammarBuilderVtbl {
 8323    BEGIN_INTERFACE
 8324
 8325    /*** IUnknown methods ***/
 8326    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8327        ISpGrammarBuilder *This,
 8328        REFIID riid,
 8329        void **ppvObject);
 8330
 8331    ULONG (STDMETHODCALLTYPE *AddRef)(
 8332        ISpGrammarBuilder *This);
 8333
 8334    ULONG (STDMETHODCALLTYPE *Release)(
 8335        ISpGrammarBuilder *This);
 8336
 8337    /*** ISpGrammarBuilder methods ***/
 8338    HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
 8339        ISpGrammarBuilder *This,
 8340        WORD NewLanguage);
 8341
 8342    HRESULT (STDMETHODCALLTYPE *GetRule)(
 8343        ISpGrammarBuilder *This,
 8344        LPCWSTR pszRuleName,
 8345        DWORD dwRuleId,
 8346        DWORD dwAttributes,
 8347        WINBOOL fCreateIfNotExist,
 8348        SPSTATEHANDLE *phInitialState);
 8349
 8350    HRESULT (STDMETHODCALLTYPE *ClearRule)(
 8351        ISpGrammarBuilder *This,
 8352        SPSTATEHANDLE hState);
 8353
 8354    HRESULT (STDMETHODCALLTYPE *CreateNewState)(
 8355        ISpGrammarBuilder *This,
 8356        SPSTATEHANDLE hState,
 8357        SPSTATEHANDLE *phState);
 8358
 8359    HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
 8360        ISpGrammarBuilder *This,
 8361        SPSTATEHANDLE hFromState,
 8362        SPSTATEHANDLE hToState,
 8363        LPCWSTR psz,
 8364        LPCWSTR pszSeparators,
 8365        SPGRAMMARWORDTYPE eWordType,
 8366        float Weight,
 8367        const SPPROPERTYINFO *pPropInfo);
 8368
 8369    HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
 8370        ISpGrammarBuilder *This,
 8371        SPSTATEHANDLE hFromState,
 8372        SPSTATEHANDLE hToState,
 8373        SPSTATEHANDLE hRule,
 8374        float Weight,
 8375        const SPPROPERTYINFO *pPropInfo);
 8376
 8377    HRESULT (STDMETHODCALLTYPE *AddResource)(
 8378        ISpGrammarBuilder *This,
 8379        SPSTATEHANDLE hRuleState,
 8380        LPCWSTR pszResourceName,
 8381        LPCWSTR pszResourceValue);
 8382
 8383    HRESULT (STDMETHODCALLTYPE *Commit)(
 8384        ISpGrammarBuilder *This,
 8385        DWORD dwReserved);
 8386
 8387    END_INTERFACE
 8388} ISpGrammarBuilderVtbl;
 8389
 8390interface ISpGrammarBuilder {
 8391    CONST_VTBL ISpGrammarBuilderVtbl* lpVtbl;
 8392};
 8393
 8394#ifdef COBJMACROS
 8395#ifndef WIDL_C_INLINE_WRAPPERS
 8396/*** IUnknown methods ***/
 8397#define ISpGrammarBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8398#define ISpGrammarBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
 8399#define ISpGrammarBuilder_Release(This) (This)->lpVtbl->Release(This)
 8400/*** ISpGrammarBuilder methods ***/
 8401#define ISpGrammarBuilder_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
 8402#define ISpGrammarBuilder_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
 8403#define ISpGrammarBuilder_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
 8404#define ISpGrammarBuilder_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
 8405#define ISpGrammarBuilder_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
 8406#define ISpGrammarBuilder_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
 8407#define ISpGrammarBuilder_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
 8408#define ISpGrammarBuilder_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
 8409#else
 8410/*** IUnknown methods ***/
 8411static inline HRESULT ISpGrammarBuilder_QueryInterface(ISpGrammarBuilder* This,REFIID riid,void **ppvObject) {
 8412    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8413}
 8414static inline ULONG ISpGrammarBuilder_AddRef(ISpGrammarBuilder* This) {
 8415    return This->lpVtbl->AddRef(This);
 8416}
 8417static inline ULONG ISpGrammarBuilder_Release(ISpGrammarBuilder* This) {
 8418    return This->lpVtbl->Release(This);
 8419}
 8420/*** ISpGrammarBuilder methods ***/
 8421static inline HRESULT ISpGrammarBuilder_ResetGrammar(ISpGrammarBuilder* This,WORD NewLanguage) {
 8422    return This->lpVtbl->ResetGrammar(This,NewLanguage);
 8423}
 8424static inline HRESULT ISpGrammarBuilder_GetRule(ISpGrammarBuilder* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
 8425    return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
 8426}
 8427static inline HRESULT ISpGrammarBuilder_ClearRule(ISpGrammarBuilder* This,SPSTATEHANDLE hState) {
 8428    return This->lpVtbl->ClearRule(This,hState);
 8429}
 8430static inline HRESULT ISpGrammarBuilder_CreateNewState(ISpGrammarBuilder* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
 8431    return This->lpVtbl->CreateNewState(This,hState,phState);
 8432}
 8433static inline HRESULT ISpGrammarBuilder_AddWordTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
 8434    return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
 8435}
 8436static inline HRESULT ISpGrammarBuilder_AddRuleTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
 8437    return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
 8438}
 8439static inline HRESULT ISpGrammarBuilder_AddResource(ISpGrammarBuilder* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
 8440    return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
 8441}
 8442static inline HRESULT ISpGrammarBuilder_Commit(ISpGrammarBuilder* This,DWORD dwReserved) {
 8443    return This->lpVtbl->Commit(This,dwReserved);
 8444}
 8445#endif
 8446#endif
 8447
 8448#endif
 8449
 8450
 8451#endif  /* __ISpGrammarBuilder_INTERFACE_DEFINED__ */
 8452
 8453typedef enum SPLOADOPTIONS {
 8454    SPLO_STATIC = 0,
 8455    SPLO_DYNAMIC = 1
 8456} SPLOADOPTIONS;
 8457/*****************************************************************************
 8458 * ISpRecoGrammar interface
 8459 */
 8460#ifndef __ISpRecoGrammar_INTERFACE_DEFINED__
 8461#define __ISpRecoGrammar_INTERFACE_DEFINED__
 8462
 8463DEFINE_GUID(IID_ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02);
 8464#if defined(__cplusplus) && !defined(CINTERFACE)
 8465MIDL_INTERFACE("2177db29-7f45-47d0-8554-067e91c80502")
 8466ISpRecoGrammar : public ISpGrammarBuilder
 8467{
 8468    virtual HRESULT STDMETHODCALLTYPE GetGrammarId(
 8469        ULONGLONG *pullGrammarId) = 0;
 8470
 8471    virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
 8472        ISpRecoContext **ppRecoCtxt) = 0;
 8473
 8474    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile(
 8475        LPCWSTR pszFileName,
 8476        SPLOADOPTIONS Options) = 0;
 8477
 8478    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromObject(
 8479        REFCLSID rcid,
 8480        LPCWSTR pszGrammarName,
 8481        SPLOADOPTIONS Options) = 0;
 8482
 8483    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromResource(
 8484        HMODULE hModule,
 8485        LPCWSTR pszResourceName,
 8486        LPCWSTR pszResourceType,
 8487        WORD wLanguage,
 8488        SPLOADOPTIONS Options) = 0;
 8489
 8490    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory(
 8491        const SPBINARYGRAMMAR *pGrammar,
 8492        SPLOADOPTIONS Options) = 0;
 8493
 8494    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromProprietaryGrammar(
 8495        REFGUID rguidParam,
 8496        LPCWSTR pszStringParam,
 8497        const void *pvDataPrarm,
 8498        ULONG cbDataSize,
 8499        SPLOADOPTIONS Options) = 0;
 8500
 8501    virtual HRESULT STDMETHODCALLTYPE SetRuleState(
 8502        LPCWSTR pszName,
 8503        void *pReserved,
 8504        SPRULESTATE NewState) = 0;
 8505
 8506    virtual HRESULT STDMETHODCALLTYPE SetRuleIdState(
 8507        ULONG ulRuleId,
 8508        SPRULESTATE NewState) = 0;
 8509
 8510    virtual HRESULT STDMETHODCALLTYPE LoadDictation(
 8511        LPCWSTR pszTopicName,
 8512        SPLOADOPTIONS Options) = 0;
 8513
 8514    virtual HRESULT STDMETHODCALLTYPE UnloadDictation(
 8515        ) = 0;
 8516
 8517    virtual HRESULT STDMETHODCALLTYPE SetDictationState(
 8518        SPRULESTATE NewState) = 0;
 8519
 8520    virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
 8521        const WCHAR *pText,
 8522        ULONG cchText,
 8523        const SPTEXTSELECTIONINFO *pInfo) = 0;
 8524
 8525    virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
 8526        const SPTEXTSELECTIONINFO *pInfo) = 0;
 8527
 8528    virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
 8529        LPCWSTR pszWord,
 8530        SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
 8531
 8532    virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
 8533        SPGRAMMARSTATE eGrammarState) = 0;
 8534
 8535    virtual HRESULT STDMETHODCALLTYPE SaveCmd(
 8536        IStream *pStream,
 8537        LPWSTR *ppszCoMemErrorText) = 0;
 8538
 8539    virtual HRESULT STDMETHODCALLTYPE GetGrammarState(
 8540        SPGRAMMARSTATE *peGrammarState) = 0;
 8541
 8542};
 8543#ifdef __CRT_UUID_DECL
 8544__CRT_UUID_DECL(ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02)
 8545#endif
 8546#else
 8547typedef struct ISpRecoGrammarVtbl {
 8548    BEGIN_INTERFACE
 8549
 8550    /*** IUnknown methods ***/
 8551    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8552        ISpRecoGrammar *This,
 8553        REFIID riid,
 8554        void **ppvObject);
 8555
 8556    ULONG (STDMETHODCALLTYPE *AddRef)(
 8557        ISpRecoGrammar *This);
 8558
 8559    ULONG (STDMETHODCALLTYPE *Release)(
 8560        ISpRecoGrammar *This);
 8561
 8562    /*** ISpGrammarBuilder methods ***/
 8563    HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
 8564        ISpRecoGrammar *This,
 8565        WORD NewLanguage);
 8566
 8567    HRESULT (STDMETHODCALLTYPE *GetRule)(
 8568        ISpRecoGrammar *This,
 8569        LPCWSTR pszRuleName,
 8570        DWORD dwRuleId,
 8571        DWORD dwAttributes,
 8572        WINBOOL fCreateIfNotExist,
 8573        SPSTATEHANDLE *phInitialState);
 8574
 8575    HRESULT (STDMETHODCALLTYPE *ClearRule)(
 8576        ISpRecoGrammar *This,
 8577        SPSTATEHANDLE hState);
 8578
 8579    HRESULT (STDMETHODCALLTYPE *CreateNewState)(
 8580        ISpRecoGrammar *This,
 8581        SPSTATEHANDLE hState,
 8582        SPSTATEHANDLE *phState);
 8583
 8584    HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
 8585        ISpRecoGrammar *This,
 8586        SPSTATEHANDLE hFromState,
 8587        SPSTATEHANDLE hToState,
 8588        LPCWSTR psz,
 8589        LPCWSTR pszSeparators,
 8590        SPGRAMMARWORDTYPE eWordType,
 8591        float Weight,
 8592        const SPPROPERTYINFO *pPropInfo);
 8593
 8594    HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
 8595        ISpRecoGrammar *This,
 8596        SPSTATEHANDLE hFromState,
 8597        SPSTATEHANDLE hToState,
 8598        SPSTATEHANDLE hRule,
 8599        float Weight,
 8600        const SPPROPERTYINFO *pPropInfo);
 8601
 8602    HRESULT (STDMETHODCALLTYPE *AddResource)(
 8603        ISpRecoGrammar *This,
 8604        SPSTATEHANDLE hRuleState,
 8605        LPCWSTR pszResourceName,
 8606        LPCWSTR pszResourceValue);
 8607
 8608    HRESULT (STDMETHODCALLTYPE *Commit)(
 8609        ISpRecoGrammar *This,
 8610        DWORD dwReserved);
 8611
 8612    /*** ISpRecoGrammar methods ***/
 8613    HRESULT (STDMETHODCALLTYPE *GetGrammarId)(
 8614        ISpRecoGrammar *This,
 8615        ULONGLONG *pullGrammarId);
 8616
 8617    HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
 8618        ISpRecoGrammar *This,
 8619        ISpRecoContext **ppRecoCtxt);
 8620
 8621    HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile)(
 8622        ISpRecoGrammar *This,
 8623        LPCWSTR pszFileName,
 8624        SPLOADOPTIONS Options);
 8625
 8626    HRESULT (STDMETHODCALLTYPE *LoadCmdFromObject)(
 8627        ISpRecoGrammar *This,
 8628        REFCLSID rcid,
 8629        LPCWSTR pszGrammarName,
 8630        SPLOADOPTIONS Options);
 8631
 8632    HRESULT (STDMETHODCALLTYPE *LoadCmdFromResource)(
 8633        ISpRecoGrammar *This,
 8634        HMODULE hModule,
 8635        LPCWSTR pszResourceName,
 8636        LPCWSTR pszResourceType,
 8637        WORD wLanguage,
 8638        SPLOADOPTIONS Options);
 8639
 8640    HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory)(
 8641        ISpRecoGrammar *This,
 8642        const SPBINARYGRAMMAR *pGrammar,
 8643        SPLOADOPTIONS Options);
 8644
 8645    HRESULT (STDMETHODCALLTYPE *LoadCmdFromProprietaryGrammar)(
 8646        ISpRecoGrammar *This,
 8647        REFGUID rguidParam,
 8648        LPCWSTR pszStringParam,
 8649        const void *pvDataPrarm,
 8650        ULONG cbDataSize,
 8651        SPLOADOPTIONS Options);
 8652
 8653    HRESULT (STDMETHODCALLTYPE *SetRuleState)(
 8654        ISpRecoGrammar *This,
 8655        LPCWSTR pszName,
 8656        void *pReserved,
 8657        SPRULESTATE NewState);
 8658
 8659    HRESULT (STDMETHODCALLTYPE *SetRuleIdState)(
 8660        ISpRecoGrammar *This,
 8661        ULONG ulRuleId,
 8662        SPRULESTATE NewState);
 8663
 8664    HRESULT (STDMETHODCALLTYPE *LoadDictation)(
 8665        ISpRecoGrammar *This,
 8666        LPCWSTR pszTopicName,
 8667        SPLOADOPTIONS Options);
 8668
 8669    HRESULT (STDMETHODCALLTYPE *UnloadDictation)(
 8670        ISpRecoGrammar *This);
 8671
 8672    HRESULT (STDMETHODCALLTYPE *SetDictationState)(
 8673        ISpRecoGrammar *This,
 8674        SPRULESTATE NewState);
 8675
 8676    HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
 8677        ISpRecoGrammar *This,
 8678        const WCHAR *pText,
 8679        ULONG cchText,
 8680        const SPTEXTSELECTIONINFO *pInfo);
 8681
 8682    HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
 8683        ISpRecoGrammar *This,
 8684        const SPTEXTSELECTIONINFO *pInfo);
 8685
 8686    HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
 8687        ISpRecoGrammar *This,
 8688        LPCWSTR pszWord,
 8689        SPWORDPRONOUNCEABLE *pWordPronounceable);
 8690
 8691    HRESULT (STDMETHODCALLTYPE *SetGrammarState)(
 8692        ISpRecoGrammar *This,
 8693        SPGRAMMARSTATE eGrammarState);
 8694
 8695    HRESULT (STDMETHODCALLTYPE *SaveCmd)(
 8696        ISpRecoGrammar *This,
 8697        IStream *pStream,
 8698        LPWSTR *ppszCoMemErrorText);
 8699
 8700    HRESULT (STDMETHODCALLTYPE *GetGrammarState)(
 8701        ISpRecoGrammar *This,
 8702        SPGRAMMARSTATE *peGrammarState);
 8703
 8704    END_INTERFACE
 8705} ISpRecoGrammarVtbl;
 8706
 8707interface ISpRecoGrammar {
 8708    CONST_VTBL ISpRecoGrammarVtbl* lpVtbl;
 8709};
 8710
 8711#ifdef COBJMACROS
 8712#ifndef WIDL_C_INLINE_WRAPPERS
 8713/*** IUnknown methods ***/
 8714#define ISpRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8715#define ISpRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
 8716#define ISpRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
 8717/*** ISpGrammarBuilder methods ***/
 8718#define ISpRecoGrammar_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
 8719#define ISpRecoGrammar_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
 8720#define ISpRecoGrammar_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
 8721#define ISpRecoGrammar_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
 8722#define ISpRecoGrammar_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
 8723#define ISpRecoGrammar_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
 8724#define ISpRecoGrammar_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
 8725#define ISpRecoGrammar_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
 8726/*** ISpRecoGrammar methods ***/
 8727#define ISpRecoGrammar_GetGrammarId(This,pullGrammarId) (This)->lpVtbl->GetGrammarId(This,pullGrammarId)
 8728#define ISpRecoGrammar_GetRecoContext(This,ppRecoCtxt) (This)->lpVtbl->GetRecoContext(This,ppRecoCtxt)
 8729#define ISpRecoGrammar_LoadCmdFromFile(This,pszFileName,Options) (This)->lpVtbl->LoadCmdFromFile(This,pszFileName,Options)
 8730#define ISpRecoGrammar_LoadCmdFromObject(This,rcid,pszGrammarName,Options) (This)->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options)
 8731#define ISpRecoGrammar_LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options) (This)->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
 8732#define ISpRecoGrammar_LoadCmdFromMemory(This,pGrammar,Options) (This)->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options)
 8733#define ISpRecoGrammar_LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options) (This)->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
 8734#define ISpRecoGrammar_SetRuleState(This,pszName,pReserved,NewState) (This)->lpVtbl->SetRuleState(This,pszName,pReserved,NewState)
 8735#define ISpRecoGrammar_SetRuleIdState(This,ulRuleId,NewState) (This)->lpVtbl->SetRuleIdState(This,ulRuleId,NewState)
 8736#define ISpRecoGrammar_LoadDictation(This,pszTopicName,Options) (This)->lpVtbl->LoadDictation(This,pszTopicName,Options)
 8737#define ISpRecoGrammar_UnloadDictation(This) (This)->lpVtbl->UnloadDictation(This)
 8738#define ISpRecoGrammar_SetDictationState(This,NewState) (This)->lpVtbl->SetDictationState(This,NewState)
 8739#define ISpRecoGrammar_SetWordSequenceData(This,pText,cchText,pInfo) (This)->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo)
 8740#define ISpRecoGrammar_SetTextSelection(This,pInfo) (This)->lpVtbl->SetTextSelection(This,pInfo)
 8741#define ISpRecoGrammar_IsPronounceable(This,pszWord,pWordPronounceable) (This)->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable)
 8742#define ISpRecoGrammar_SetGrammarState(This,eGrammarState) (This)->lpVtbl->SetGrammarState(This,eGrammarState)
 8743#define ISpRecoGrammar_SaveCmd(This,pStream,ppszCoMemErrorText) (This)->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText)
 8744#define ISpRecoGrammar_GetGrammarState(This,peGrammarState) (This)->lpVtbl->GetGrammarState(This,peGrammarState)
 8745#else
 8746/*** IUnknown methods ***/
 8747static inline HRESULT ISpRecoGrammar_QueryInterface(ISpRecoGrammar* This,REFIID riid,void **ppvObject) {
 8748    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8749}
 8750static inline ULONG ISpRecoGrammar_AddRef(ISpRecoGrammar* This) {
 8751    return This->lpVtbl->AddRef(This);
 8752}
 8753static inline ULONG ISpRecoGrammar_Release(ISpRecoGrammar* This) {
 8754    return This->lpVtbl->Release(This);
 8755}
 8756/*** ISpGrammarBuilder methods ***/
 8757static inline HRESULT ISpRecoGrammar_ResetGrammar(ISpRecoGrammar* This,WORD NewLanguage) {
 8758    return This->lpVtbl->ResetGrammar(This,NewLanguage);
 8759}
 8760static inline HRESULT ISpRecoGrammar_GetRule(ISpRecoGrammar* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
 8761    return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
 8762}
 8763static inline HRESULT ISpRecoGrammar_ClearRule(ISpRecoGrammar* This,SPSTATEHANDLE hState) {
 8764    return This->lpVtbl->ClearRule(This,hState);
 8765}
 8766static inline HRESULT ISpRecoGrammar_CreateNewState(ISpRecoGrammar* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
 8767    return This->lpVtbl->CreateNewState(This,hState,phState);
 8768}
 8769static inline HRESULT ISpRecoGrammar_AddWordTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
 8770    return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
 8771}
 8772static inline HRESULT ISpRecoGrammar_AddRuleTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
 8773    return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
 8774}
 8775static inline HRESULT ISpRecoGrammar_AddResource(ISpRecoGrammar* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
 8776    return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
 8777}
 8778static inline HRESULT ISpRecoGrammar_Commit(ISpRecoGrammar* This,DWORD dwReserved) {
 8779    return This->lpVtbl->Commit(This,dwReserved);
 8780}
 8781/*** ISpRecoGrammar methods ***/
 8782static inline HRESULT ISpRecoGrammar_GetGrammarId(ISpRecoGrammar* This,ULONGLONG *pullGrammarId) {
 8783    return This->lpVtbl->GetGrammarId(This,pullGrammarId);
 8784}
 8785static inline HRESULT ISpRecoGrammar_GetRecoContext(ISpRecoGrammar* This,ISpRecoContext **ppRecoCtxt) {
 8786    return This->lpVtbl->GetRecoContext(This,ppRecoCtxt);
 8787}
 8788static inline HRESULT ISpRecoGrammar_LoadCmdFromFile(ISpRecoGrammar* This,LPCWSTR pszFileName,SPLOADOPTIONS Options) {
 8789    return This->lpVtbl->LoadCmdFromFile(This,pszFileName,Options);
 8790}
 8791static inline HRESULT ISpRecoGrammar_LoadCmdFromObject(ISpRecoGrammar* This,REFCLSID rcid,LPCWSTR pszGrammarName,SPLOADOPTIONS Options) {
 8792    return This->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options);
 8793}
 8794static inline HRESULT ISpRecoGrammar_LoadCmdFromResource(ISpRecoGrammar* This,HMODULE hModule,LPCWSTR pszResourceName,LPCWSTR pszResourceType,WORD wLanguage,SPLOADOPTIONS Options) {
 8795    return This->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options);
 8796}
 8797static inline HRESULT ISpRecoGrammar_LoadCmdFromMemory(ISpRecoGrammar* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options) {
 8798    return This->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options);
 8799}
 8800static inline HRESULT ISpRecoGrammar_LoadCmdFromProprietaryGrammar(ISpRecoGrammar* This,REFGUID rguidParam,LPCWSTR pszStringParam,const void *pvDataPrarm,ULONG cbDataSize,SPLOADOPTIONS Options) {
 8801    return This->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options);
 8802}
 8803static inline HRESULT ISpRecoGrammar_SetRuleState(ISpRecoGrammar* This,LPCWSTR pszName,void *pReserved,SPRULESTATE NewState) {
 8804    return This->lpVtbl->SetRuleState(This,pszName,pReserved,NewState);
 8805}
 8806static inline HRESULT ISpRecoGrammar_SetRuleIdState(ISpRecoGrammar* This,ULONG ulRuleId,SPRULESTATE NewState) {
 8807    return This->lpVtbl->SetRuleIdState(This,ulRuleId,NewState);
 8808}
 8809static inline HRESULT ISpRecoGrammar_LoadDictation(ISpRecoGrammar* This,LPCWSTR pszTopicName,SPLOADOPTIONS Options) {
 8810    return This->lpVtbl->LoadDictation(This,pszTopicName,Options);
 8811}
 8812static inline HRESULT ISpRecoGrammar_UnloadDictation(ISpRecoGrammar* This) {
 8813    return This->lpVtbl->UnloadDictation(This);
 8814}
 8815static inline HRESULT ISpRecoGrammar_SetDictationState(ISpRecoGrammar* This,SPRULESTATE NewState) {
 8816    return This->lpVtbl->SetDictationState(This,NewState);
 8817}
 8818static inline HRESULT ISpRecoGrammar_SetWordSequenceData(ISpRecoGrammar* This,const WCHAR *pText,ULONG cchText,const SPTEXTSELECTIONINFO *pInfo) {
 8819    return This->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo);
 8820}
 8821static inline HRESULT ISpRecoGrammar_SetTextSelection(ISpRecoGrammar* This,const SPTEXTSELECTIONINFO *pInfo) {
 8822    return This->lpVtbl->SetTextSelection(This,pInfo);
 8823}
 8824static inline HRESULT ISpRecoGrammar_IsPronounceable(ISpRecoGrammar* This,LPCWSTR pszWord,SPWORDPRONOUNCEABLE *pWordPronounceable) {
 8825    return This->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable);
 8826}
 8827static inline HRESULT ISpRecoGrammar_SetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE eGrammarState) {
 8828    return This->lpVtbl->SetGrammarState(This,eGrammarState);
 8829}
 8830static inline HRESULT ISpRecoGrammar_SaveCmd(ISpRecoGrammar* This,IStream *pStream,LPWSTR *ppszCoMemErrorText) {
 8831    return This->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText);
 8832}
 8833static inline HRESULT ISpRecoGrammar_GetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE *peGrammarState) {
 8834    return This->lpVtbl->GetGrammarState(This,peGrammarState);
 8835}
 8836#endif
 8837#endif
 8838
 8839#endif
 8840
 8841
 8842#endif  /* __ISpRecoGrammar_INTERFACE_DEFINED__ */
 8843
 8844typedef enum SPMATCHINGMODE {
 8845    AllWords = 0,
 8846    Subsequence = 1,
 8847    OrderedSubset = 3,
 8848    SubsequenceContentRequired = 5,
 8849    OrderedSubsetContentRequired = 7
 8850} SPMATCHINGMODE;
 8851typedef enum PHONETICALPHABET {
 8852    PA_Ipa = 0,
 8853    PA_Ups = 1,
 8854    PA_Sapi = 2
 8855} PHONETICALPHABET;
 8856/*****************************************************************************
 8857 * ISpGrammarBuilder2 interface
 8858 */
 8859#ifndef __ISpGrammarBuilder2_INTERFACE_DEFINED__
 8860#define __ISpGrammarBuilder2_INTERFACE_DEFINED__
 8861
 8862DEFINE_GUID(IID_ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60);
 8863#if defined(__cplusplus) && !defined(CINTERFACE)
 8864MIDL_INTERFACE("8ab10026-20cc-4b20-8c22-a49c9ba78f60")
 8865ISpGrammarBuilder2 : public IUnknown
 8866{
 8867    virtual HRESULT STDMETHODCALLTYPE AddTextSubset(
 8868        SPSTATEHANDLE hFromState,
 8869        SPSTATEHANDLE hToState,
 8870        LPCWSTR psz,
 8871        SPMATCHINGMODE eMatchMode) = 0;
 8872
 8873    virtual HRESULT STDMETHODCALLTYPE SetPhoneticAlphabet(
 8874        PHONETICALPHABET phoneticALphabet) = 0;
 8875
 8876};
 8877#ifdef __CRT_UUID_DECL
 8878__CRT_UUID_DECL(ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60)
 8879#endif
 8880#else
 8881typedef struct ISpGrammarBuilder2Vtbl {
 8882    BEGIN_INTERFACE
 8883
 8884    /*** IUnknown methods ***/
 8885    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8886        ISpGrammarBuilder2 *This,
 8887        REFIID riid,
 8888        void **ppvObject);
 8889
 8890    ULONG (STDMETHODCALLTYPE *AddRef)(
 8891        ISpGrammarBuilder2 *This);
 8892
 8893    ULONG (STDMETHODCALLTYPE *Release)(
 8894        ISpGrammarBuilder2 *This);
 8895
 8896    /*** ISpGrammarBuilder2 methods ***/
 8897    HRESULT (STDMETHODCALLTYPE *AddTextSubset)(
 8898        ISpGrammarBuilder2 *This,
 8899        SPSTATEHANDLE hFromState,
 8900        SPSTATEHANDLE hToState,
 8901        LPCWSTR psz,
 8902        SPMATCHINGMODE eMatchMode);
 8903
 8904    HRESULT (STDMETHODCALLTYPE *SetPhoneticAlphabet)(
 8905        ISpGrammarBuilder2 *This,
 8906        PHONETICALPHABET phoneticALphabet);
 8907
 8908    END_INTERFACE
 8909} ISpGrammarBuilder2Vtbl;
 8910
 8911interface ISpGrammarBuilder2 {
 8912    CONST_VTBL ISpGrammarBuilder2Vtbl* lpVtbl;
 8913};
 8914
 8915#ifdef COBJMACROS
 8916#ifndef WIDL_C_INLINE_WRAPPERS
 8917/*** IUnknown methods ***/
 8918#define ISpGrammarBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8919#define ISpGrammarBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
 8920#define ISpGrammarBuilder2_Release(This) (This)->lpVtbl->Release(This)
 8921/*** ISpGrammarBuilder2 methods ***/
 8922#define ISpGrammarBuilder2_AddTextSubset(This,hFromState,hToState,psz,eMatchMode) (This)->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode)
 8923#define ISpGrammarBuilder2_SetPhoneticAlphabet(This,phoneticALphabet) (This)->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet)
 8924#else
 8925/*** IUnknown methods ***/
 8926static inline HRESULT ISpGrammarBuilder2_QueryInterface(ISpGrammarBuilder2* This,REFIID riid,void **ppvObject) {
 8927    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8928}
 8929static inline ULONG ISpGrammarBuilder2_AddRef(ISpGrammarBuilder2* This) {
 8930    return This->lpVtbl->AddRef(This);
 8931}
 8932static inline ULONG ISpGrammarBuilder2_Release(ISpGrammarBuilder2* This) {
 8933    return This->lpVtbl->Release(This);
 8934}
 8935/*** ISpGrammarBuilder2 methods ***/
 8936static inline HRESULT ISpGrammarBuilder2_AddTextSubset(ISpGrammarBuilder2* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,SPMATCHINGMODE eMatchMode) {
 8937    return This->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode);
 8938}
 8939static inline HRESULT ISpGrammarBuilder2_SetPhoneticAlphabet(ISpGrammarBuilder2* This,PHONETICALPHABET phoneticALphabet) {
 8940    return This->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet);
 8941}
 8942#endif
 8943#endif
 8944
 8945#endif
 8946
 8947
 8948#endif  /* __ISpGrammarBuilder2_INTERFACE_DEFINED__ */
 8949
 8950#define SPRP_NORMAL 0
 8951/*****************************************************************************
 8952 * ISpRecoGrammar2 interface
 8953 */
 8954#ifndef __ISpRecoGrammar2_INTERFACE_DEFINED__
 8955#define __ISpRecoGrammar2_INTERFACE_DEFINED__
 8956
 8957DEFINE_GUID(IID_ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3);
 8958#if defined(__cplusplus) && !defined(CINTERFACE)
 8959MIDL_INTERFACE("4b37bc9e-9ed6-44a3-93d3-18f022b79ec3")
 8960ISpRecoGrammar2 : public IUnknown
 8961{
 8962    virtual HRESULT STDMETHODCALLTYPE GetRules(
 8963        SPRULE **ppCoMemRules,
 8964        UINT *puNumRules) = 0;
 8965
 8966    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile2(
 8967        LPCWSTR pszFileName,
 8968        SPLOADOPTIONS Options,
 8969        LPCWSTR pszSharingUri,
 8970        LPCWSTR pszBaseUri) = 0;
 8971
 8972    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory2(
 8973        const SPBINARYGRAMMAR *pGrammar,
 8974        SPLOADOPTIONS Options,
 8975        LPCWSTR pszSharingUri,
 8976        LPCWSTR pszBaseUri) = 0;
 8977
 8978    virtual HRESULT STDMETHODCALLTYPE SetRulePriority(
 8979        LPCWSTR pszRuleName,
 8980        ULONG ulRuleId,
 8981        int nRulePriority) = 0;
 8982
 8983    virtual HRESULT STDMETHODCALLTYPE SetRuleWeight(
 8984        LPCWSTR pszRuleName,
 8985        ULONG ulRuleId,
 8986        float flWeight) = 0;
 8987
 8988    virtual HRESULT STDMETHODCALLTYPE SetDictationWeight(
 8989        float flWeight) = 0;
 8990
 8991    virtual HRESULT STDMETHODCALLTYPE SetGrammarLoader(
 8992        ISpeechResourceLoader *pLoader) = 0;
 8993
 8994    virtual HRESULT STDMETHODCALLTYPE SetSMLSecurityManager(
 8995        IInternetSecurityManager *pSMLSecurityManager) = 0;
 8996
 8997};
 8998#ifdef __CRT_UUID_DECL
 8999__CRT_UUID_DECL(ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3)
 9000#endif
 9001#else
 9002typedef struct ISpRecoGrammar2Vtbl {
 9003    BEGIN_INTERFACE
 9004
 9005    /*** IUnknown methods ***/
 9006    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9007        ISpRecoGrammar2 *This,
 9008        REFIID riid,
 9009        void **ppvObject);
 9010
 9011    ULONG (STDMETHODCALLTYPE *AddRef)(
 9012        ISpRecoGrammar2 *This);
 9013
 9014    ULONG (STDMETHODCALLTYPE *Release)(
 9015        ISpRecoGrammar2 *This);
 9016
 9017    /*** ISpRecoGrammar2 methods ***/
 9018    HRESULT (STDMETHODCALLTYPE *GetRules)(
 9019        ISpRecoGrammar2 *This,
 9020        SPRULE **ppCoMemRules,
 9021        UINT *puNumRules);
 9022
 9023    HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile2)(
 9024        ISpRecoGrammar2 *This,
 9025        LPCWSTR pszFileName,
 9026        SPLOADOPTIONS Options,
 9027        LPCWSTR pszSharingUri,
 9028        LPCWSTR pszBaseUri);
 9029
 9030    HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory2)(
 9031        ISpRecoGrammar2 *This,
 9032        const SPBINARYGRAMMAR *pGrammar,
 9033        SPLOADOPTIONS Options,
 9034        LPCWSTR pszSharingUri,
 9035        LPCWSTR pszBaseUri);
 9036
 9037    HRESULT (STDMETHODCALLTYPE *SetRulePriority)(
 9038        ISpRecoGrammar2 *This,
 9039        LPCWSTR pszRuleName,
 9040        ULONG ulRuleId,
 9041        int nRulePriority);
 9042
 9043    HRESULT (STDMETHODCALLTYPE *SetRuleWeight)(
 9044        ISpRecoGrammar2 *This,
 9045        LPCWSTR pszRuleName,
 9046        ULONG ulRuleId,
 9047        float flWeight);
 9048
 9049    HRESULT (STDMETHODCALLTYPE *SetDictationWeight)(
 9050        ISpRecoGrammar2 *This,
 9051        float flWeight);
 9052
 9053    HRESULT (STDMETHODCALLTYPE *SetGrammarLoader)(
 9054        ISpRecoGrammar2 *This,
 9055        ISpeechResourceLoader *pLoader);
 9056
 9057    HRESULT (STDMETHODCALLTYPE *SetSMLSecurityManager)(
 9058        ISpRecoGrammar2 *This,
 9059        IInternetSecurityManager *pSMLSecurityManager);
 9060
 9061    END_INTERFACE
 9062} ISpRecoGrammar2Vtbl;
 9063
 9064interface ISpRecoGrammar2 {
 9065    CONST_VTBL ISpRecoGrammar2Vtbl* lpVtbl;
 9066};
 9067
 9068#ifdef COBJMACROS
 9069#ifndef WIDL_C_INLINE_WRAPPERS
 9070/*** IUnknown methods ***/
 9071#define ISpRecoGrammar2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9072#define ISpRecoGrammar2_AddRef(This) (This)->lpVtbl->AddRef(This)
 9073#define ISpRecoGrammar2_Release(This) (This)->lpVtbl->Release(This)
 9074/*** ISpRecoGrammar2 methods ***/
 9075#define ISpRecoGrammar2_GetRules(This,ppCoMemRules,puNumRules) (This)->lpVtbl->GetRules(This,ppCoMemRules,puNumRules)
 9076#define ISpRecoGrammar2_LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri)
 9077#define ISpRecoGrammar2_LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri)
 9078#define ISpRecoGrammar2_SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority) (This)->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority)
 9079#define ISpRecoGrammar2_SetRuleWeight(This,pszRuleName,ulRuleId,flWeight) (This)->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight)
 9080#define ISpRecoGrammar2_SetDictationWeight(This,flWeight) (This)->lpVtbl->SetDictationWeight(This,flWeight)
 9081#define ISpRecoGrammar2_SetGrammarLoader(This,pLoader) (This)->lpVtbl->SetGrammarLoader(This,pLoader)
 9082#define ISpRecoGrammar2_SetSMLSecurityManager(This,pSMLSecurityManager) (This)->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager)
 9083#else
 9084/*** IUnknown methods ***/
 9085static inline HRESULT ISpRecoGrammar2_QueryInterface(ISpRecoGrammar2* This,REFIID riid,void **ppvObject) {
 9086    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9087}
 9088static inline ULONG ISpRecoGrammar2_AddRef(ISpRecoGrammar2* This) {
 9089    return This->lpVtbl->AddRef(This);
 9090}
 9091static inline ULONG ISpRecoGrammar2_Release(ISpRecoGrammar2* This) {
 9092    return This->lpVtbl->Release(This);
 9093}
 9094/*** ISpRecoGrammar2 methods ***/
 9095static inline HRESULT ISpRecoGrammar2_GetRules(ISpRecoGrammar2* This,SPRULE **ppCoMemRules,UINT *puNumRules) {
 9096    return This->lpVtbl->GetRules(This,ppCoMemRules,puNumRules);
 9097}
 9098static inline HRESULT ISpRecoGrammar2_LoadCmdFromFile2(ISpRecoGrammar2* This,LPCWSTR pszFileName,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
 9099    return This->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri);
 9100}
 9101static inline HRESULT ISpRecoGrammar2_LoadCmdFromMemory2(ISpRecoGrammar2* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
 9102    return This->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri);
 9103}
 9104static inline HRESULT ISpRecoGrammar2_SetRulePriority(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,int nRulePriority) {
 9105    return This->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority);
 9106}
 9107static inline HRESULT ISpRecoGrammar2_SetRuleWeight(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,float flWeight) {
 9108    return This->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight);
 9109}
 9110static inline HRESULT ISpRecoGrammar2_SetDictationWeight(ISpRecoGrammar2* This,float flWeight) {
 9111    return This->lpVtbl->SetDictationWeight(This,flWeight);
 9112}
 9113static inline HRESULT ISpRecoGrammar2_SetGrammarLoader(ISpRecoGrammar2* This,ISpeechResourceLoader *pLoader) {
 9114    return This->lpVtbl->SetGrammarLoader(This,pLoader);
 9115}
 9116static inline HRESULT ISpRecoGrammar2_SetSMLSecurityManager(ISpRecoGrammar2* This,IInternetSecurityManager *pSMLSecurityManager) {
 9117    return This->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager);
 9118}
 9119#endif
 9120#endif
 9121
 9122#endif
 9123
 9124
 9125#endif  /* __ISpRecoGrammar2_INTERFACE_DEFINED__ */
 9126
 9127/*****************************************************************************
 9128 * ISpeechResourceLoader interface
 9129 */
 9130#ifndef __ISpeechResourceLoader_INTERFACE_DEFINED__
 9131#define __ISpeechResourceLoader_INTERFACE_DEFINED__
 9132
 9133DEFINE_GUID(IID_ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3);
 9134#if defined(__cplusplus) && !defined(CINTERFACE)
 9135MIDL_INTERFACE("b9ac5783-fcd0-4b21-b119-b4f8da8fd2c3")
 9136ISpeechResourceLoader : public IDispatch
 9137{
 9138    virtual HRESULT STDMETHODCALLTYPE LoadResource(
 9139        BSTR bstrResourceUri,
 9140        VARIANT_BOOL fAlwaysReload,
 9141        IUnknown **pStream,
 9142        BSTR *pbstrMIMEType,
 9143        VARIANT_BOOL *pfModified,
 9144        BSTR *pbstrRedirectUrl) = 0;
 9145
 9146    virtual HRESULT STDMETHODCALLTYPE GetLocalCopy(
 9147        BSTR bstrResourceUri,
 9148        BSTR *pbstrLocalPath,
 9149        BSTR *pbstrMIMEType,
 9150        BSTR *pbstrRedirectUrl) = 0;
 9151
 9152    virtual HRESULT STDMETHODCALLTYPE ReleaseLocalCopy(
 9153        BSTR pbstrLocalPath) = 0;
 9154
 9155};
 9156#ifdef __CRT_UUID_DECL
 9157__CRT_UUID_DECL(ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3)
 9158#endif
 9159#else
 9160typedef struct ISpeechResourceLoaderVtbl {
 9161    BEGIN_INTERFACE
 9162
 9163    /*** IUnknown methods ***/
 9164    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9165        ISpeechResourceLoader *This,
 9166        REFIID riid,
 9167        void **ppvObject);
 9168
 9169    ULONG (STDMETHODCALLTYPE *AddRef)(
 9170        ISpeechResourceLoader *This);
 9171
 9172    ULONG (STDMETHODCALLTYPE *Release)(
 9173        ISpeechResourceLoader *This);
 9174
 9175    /*** IDispatch methods ***/
 9176    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
 9177        ISpeechResourceLoader *This,
 9178        UINT *pctinfo);
 9179
 9180    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
 9181        ISpeechResourceLoader *This,
 9182        UINT iTInfo,
 9183        LCID lcid,
 9184        ITypeInfo **ppTInfo);
 9185
 9186    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
 9187        ISpeechResourceLoader *This,
 9188        REFIID riid,
 9189        LPOLESTR *rgszNames,
 9190        UINT cNames,
 9191        LCID lcid,
 9192        DISPID *rgDispId);
 9193
 9194    HRESULT (STDMETHODCALLTYPE *Invoke)(
 9195        ISpeechResourceLoader *This,
 9196        DISPID dispIdMember,
 9197        REFIID riid,
 9198        LCID lcid,
 9199        WORD wFlags,
 9200        DISPPARAMS *pDispParams,
 9201        VARIANT *pVarResult,
 9202        EXCEPINFO *pExcepInfo,
 9203        UINT *puArgErr);
 9204
 9205    /*** ISpeechResourceLoader methods ***/
 9206    HRESULT (STDMETHODCALLTYPE *LoadResource)(
 9207        ISpeechResourceLoader *This,
 9208        BSTR bstrResourceUri,
 9209        VARIANT_BOOL fAlwaysReload,
 9210        IUnknown **pStream,
 9211        BSTR *pbstrMIMEType,
 9212        VARIANT_BOOL *pfModified,
 9213        BSTR *pbstrRedirectUrl);
 9214
 9215    HRESULT (STDMETHODCALLTYPE *GetLocalCopy)(
 9216        ISpeechResourceLoader *This,
 9217        BSTR bstrResourceUri,
 9218        BSTR *pbstrLocalPath,
 9219        BSTR *pbstrMIMEType,
 9220        BSTR *pbstrRedirectUrl);
 9221
 9222    HRESULT (STDMETHODCALLTYPE *ReleaseLocalCopy)(
 9223        ISpeechResourceLoader *This,
 9224        BSTR pbstrLocalPath);
 9225
 9226    END_INTERFACE
 9227} ISpeechResourceLoaderVtbl;
 9228
 9229interface ISpeechResourceLoader {
 9230    CONST_VTBL ISpeechResourceLoaderVtbl* lpVtbl;
 9231};
 9232
 9233#ifdef COBJMACROS
 9234#ifndef WIDL_C_INLINE_WRAPPERS
 9235/*** IUnknown methods ***/
 9236#define ISpeechResourceLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9237#define ISpeechResourceLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
 9238#define ISpeechResourceLoader_Release(This) (This)->lpVtbl->Release(This)
 9239/*** IDispatch methods ***/
 9240#define ISpeechResourceLoader_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 9241#define ISpeechResourceLoader_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 9242#define ISpeechResourceLoader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 9243#define ISpeechResourceLoader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
 9244/*** ISpeechResourceLoader methods ***/
 9245#define ISpeechResourceLoader_LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl) (This)->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl)
 9246#define ISpeechResourceLoader_GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl) (This)->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl)
 9247#define ISpeechResourceLoader_ReleaseLocalCopy(This,pbstrLocalPath) (This)->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath)
 9248#else
 9249/*** IUnknown methods ***/
 9250static inline HRESULT ISpeechResourceLoader_QueryInterface(ISpeechResourceLoader* This,REFIID riid,void **ppvObject) {
 9251    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9252}
 9253static inline ULONG ISpeechResourceLoader_AddRef(ISpeechResourceLoader* This) {
 9254    return This->lpVtbl->AddRef(This);
 9255}
 9256static inline ULONG ISpeechResourceLoader_Release(ISpeechResourceLoader* This) {
 9257    return This->lpVtbl->Release(This);
 9258}
 9259/*** IDispatch methods ***/
 9260static inline HRESULT ISpeechResourceLoader_GetTypeInfoCount(ISpeechResourceLoader* This,UINT *pctinfo) {
 9261    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
 9262}
 9263static inline HRESULT ISpeechResourceLoader_GetTypeInfo(ISpeechResourceLoader* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
 9264    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
 9265}
 9266static inline HRESULT ISpeechResourceLoader_GetIDsOfNames(ISpeechResourceLoader* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
 9267    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
 9268}
 9269static inline HRESULT ISpeechResourceLoader_Invoke(ISpeechResourceLoader* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
 9270    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
 9271}
 9272/*** ISpeechResourceLoader methods ***/
 9273static inline HRESULT ISpeechResourceLoader_LoadResource(ISpeechResourceLoader* This,BSTR bstrResourceUri,VARIANT_BOOL fAlwaysReload,IUnknown **pStream,BSTR *pbstrMIMEType,VARIANT_BOOL *pfModified,BSTR *pbstrRedirectUrl) {
 9274    return This->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl);
 9275}
 9276static inline HRESULT ISpeechResourceLoader_GetLocalCopy(ISpeechResourceLoader* This,BSTR bstrResourceUri,BSTR *pbstrLocalPath,BSTR *pbstrMIMEType,BSTR *pbstrRedirectUrl) {
 9277    return This->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl);
 9278}
 9279static inline HRESULT ISpeechResourceLoader_ReleaseLocalCopy(ISpeechResourceLoader* This,BSTR pbstrLocalPath) {
 9280    return This->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath);
 9281}
 9282#endif
 9283#endif
 9284
 9285#endif
 9286
 9287
 9288#endif  /* __ISpeechResourceLoader_INTERFACE_DEFINED__ */
 9289
 9290typedef struct SPRECOCONTEXTSTATUS {
 9291    SPINTERFERENCE eInterference;
 9292    WCHAR szRequestTypeOfUI[255];
 9293    DWORD dwReserved1;
 9294    DWORD dwReserved2;
 9295} SPRECOCONTEXTSTATUS;
 9296typedef enum SPBOOKMARKOPTIONS {
 9297    SPBO_NONE = 0,
 9298    SPBO_PAUSE = 0x1,
 9299    SPBO_AHEAD = 0x2,
 9300    SPBO_TIME_UNITS = 0x4
 9301} SPBOOKMARKOPTIONS;
 9302typedef enum SPAUDIOOPTIONS {
 9303    SPAO_NONE = 0,
 9304    SPAO_RETAIN_AUDIO = 0x1
 9305} SPAUDIOOPTIONS;
 9306/*****************************************************************************
 9307 * ISpRecoContext interface
 9308 */
 9309#ifndef __ISpRecoContext_INTERFACE_DEFINED__
 9310#define __ISpRecoContext_INTERFACE_DEFINED__
 9311
 9312DEFINE_GUID(IID_ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d);
 9313#if defined(__cplusplus) && !defined(CINTERFACE)
 9314MIDL_INTERFACE("f740a62f-7c15-489e-8234-940a33d9272d")
 9315ISpRecoContext : public ISpEventSource
 9316{
 9317    virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
 9318        ISpRecognizer **ppRecognizer) = 0;
 9319
 9320    virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
 9321        ULONGLONG ullGrammarId,
 9322        ISpRecoGrammar **ppGrammar) = 0;
 9323
 9324    virtual HRESULT STDMETHODCALLTYPE GetStatus(
 9325        SPRECOCONTEXTSTATUS *pStatus) = 0;
 9326
 9327    virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
 9328        ULONG *pcAlternates) = 0;
 9329
 9330    virtual HRESULT STDMETHODCALLTYPE SetMaxAlternates(
 9331        ULONG cAlternates) = 0;
 9332
 9333    virtual HRESULT STDMETHODCALLTYPE SetAudioOptions(
 9334        SPAUDIOOPTIONS Options,
 9335        const GUID *pAudioFormatId,
 9336        const WAVEFORMATEX *pWaveFormatEx) = 0;
 9337
 9338    virtual HRESULT STDMETHODCALLTYPE GetAudioOptions(
 9339        SPAUDIOOPTIONS *pOptions,
 9340        GUID *pAudioFormatId,
 9341        WAVEFORMATEX **ppCoMemWFEX) = 0;
 9342
 9343    virtual HRESULT STDMETHODCALLTYPE DeserializeResult(
 9344        const SPSERIALIZEDRESULT *pSerializedResult,
 9345        ISpRecoResult **ppResult) = 0;
 9346
 9347    virtual HRESULT STDMETHODCALLTYPE Bookmark(
 9348        SPBOOKMARKOPTIONS Options,
 9349        ULONGLONG ullStreamPosition,
 9350        LPARAM lparamEvent) = 0;
 9351
 9352    virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
 9353        LPCWSTR pAdaptationData,
 9354        const ULONG cch) = 0;
 9355
 9356    virtual HRESULT STDMETHODCALLTYPE Pause(
 9357        DWORD dwReserved) = 0;
 9358
 9359    virtual HRESULT STDMETHODCALLTYPE Resume(
 9360        DWORD dwReserved) = 0;
 9361
 9362    virtual HRESULT STDMETHODCALLTYPE SetVoice(
 9363        ISpVoice *pVoice,
 9364        WINBOOL fAllowFormatChanges) = 0;
 9365
 9366    virtual HRESULT STDMETHODCALLTYPE GetVoice(
 9367        ISpVoice **ppVoice) = 0;
 9368
 9369    virtual HRESULT STDMETHODCALLTYPE SetVoicePurgeEvent(
 9370        ULONGLONG ullEventInterest) = 0;
 9371
 9372    virtual HRESULT STDMETHODCALLTYPE GetVoicePurgeEvent(
 9373        ULONGLONG *pullEventInterest) = 0;
 9374
 9375    virtual HRESULT STDMETHODCALLTYPE SetContextState(
 9376        SPCONTEXTSTATE eContextState) = 0;
 9377
 9378    virtual HRESULT STDMETHODCALLTYPE GetContextState(
 9379        SPCONTEXTSTATE *peContextState) = 0;
 9380
 9381};
 9382#ifdef __CRT_UUID_DECL
 9383__CRT_UUID_DECL(ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d)
 9384#endif
 9385#else
 9386typedef struct ISpRecoContextVtbl {
 9387    BEGIN_INTERFACE
 9388
 9389    /*** IUnknown methods ***/
 9390    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9391        ISpRecoContext *This,
 9392        REFIID riid,
 9393        void **ppvObject);
 9394
 9395    ULONG (STDMETHODCALLTYPE *AddRef)(
 9396        ISpRecoContext *This);
 9397
 9398    ULONG (STDMETHODCALLTYPE *Release)(
 9399        ISpRecoContext *This);
 9400
 9401    /*** ISpNotifySource methods ***/
 9402    HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
 9403        ISpRecoContext *This,
 9404        ISpNotifySink *pNotifySink);
 9405
 9406    HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
 9407        ISpRecoContext *This,
 9408        HWND hWnd,
 9409        UINT Msg,
 9410        WPARAM wParam,
 9411        LPARAM lParam);
 9412
 9413    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
 9414        ISpRecoContext *This,
 9415        SPNOTIFYCALLBACK *pfnCallback,
 9416        WPARAM wParam,
 9417        LPARAM lParam);
 9418
 9419    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
 9420        ISpRecoContext *This,
 9421        ISpNotifyCallback *pSpCallback,
 9422        WPARAM wParam,
 9423        LPARAM lParam);
 9424
 9425    HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
 9426        ISpRecoContext *This);
 9427
 9428    HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
 9429        ISpRecoContext *This,
 9430        DWORD dwMilliseconds);
 9431
 9432    HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
 9433        ISpRecoContext *This);
 9434
 9435    /*** ISpEventSource methods ***/
 9436    HRESULT (STDMETHODCALLTYPE *SetInterest)(
 9437        ISpRecoContext *This,
 9438        ULONGLONG ullEventInterest,
 9439        ULONGLONG ullQueuedInterest);
 9440
 9441    HRESULT (STDMETHODCALLTYPE *GetEvents)(
 9442        ISpRecoContext *This,
 9443        ULONG ulCount,
 9444        SPEVENT *pEventArray,
 9445        ULONG *pulFetched);
 9446
 9447    HRESULT (STDMETHODCALLTYPE *GetInfo)(
 9448        ISpRecoContext *This,
 9449        SPEVENTSOURCEINFO *pInfo);
 9450
 9451    /*** ISpRecoContext methods ***/
 9452    HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
 9453        ISpRecoContext *This,
 9454        ISpRecognizer **ppRecognizer);
 9455
 9456    HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
 9457        ISpRecoContext *This,
 9458        ULONGLONG ullGrammarId,
 9459        ISpRecoGrammar **ppGrammar);
 9460
 9461    HRESULT (STDMETHODCALLTYPE *GetStatus)(
 9462        ISpRecoContext *This,
 9463        SPRECOCONTEXTSTATUS *pStatus);
 9464
 9465    HRESULT (STDMETHODCALLTYPE *GetMaxAlternates)(
 9466        ISpRecoContext *This,
 9467        ULONG *pcAlternates);
 9468
 9469    HRESULT (STDMETHODCALLTYPE *SetMaxAlternates)(
 9470        ISpRecoContext *This,
 9471        ULONG cAlternates);
 9472
 9473    HRESULT (STDMETHODCALLTYPE *SetAudioOptions)(
 9474        ISpRecoContext *This,
 9475        SPAUDIOOPTIONS Options,
 9476        const GUID *pAudioFormatId,
 9477        const WAVEFORMATEX *pWaveFormatEx);
 9478
 9479    HRESULT (STDMETHODCALLTYPE *GetAudioOptions)(
 9480        ISpRecoContext *This,
 9481        SPAUDIOOPTIONS *pOptions,
 9482        GUID *pAudioFormatId,
 9483        WAVEFORMATEX **ppCoMemWFEX);
 9484
 9485    HRESULT (STDMETHODCALLTYPE *DeserializeResult)(
 9486        ISpRecoContext *This,
 9487        const SPSERIALIZEDRESULT *pSerializedResult,
 9488        ISpRecoResult **ppResult);
 9489
 9490    HRESULT (STDMETHODCALLTYPE *Bookmark)(
 9491        ISpRecoContext *This,
 9492        SPBOOKMARKOPTIONS Options,
 9493        ULONGLONG ullStreamPosition,
 9494        LPARAM lparamEvent);
 9495
 9496    HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
 9497        ISpRecoContext *This,
 9498        LPCWSTR pAdaptationData,
 9499        const ULONG cch);
 9500
 9501    HRESULT (STDMETHODCALLTYPE *Pause)(
 9502        ISpRecoContext *This,
 9503        DWORD dwReserved);
 9504
 9505    HRESULT (STDMETHODCALLTYPE *Resume)(
 9506        ISpRecoContext *This,
 9507        DWORD dwReserved);
 9508
 9509    HRESULT (STDMETHODCALLTYPE *SetVoice)(
 9510        ISpRecoContext *This,
 9511        ISpVoice *pVoice,
 9512        WINBOOL fAllowFormatChanges);
 9513
 9514    HRESULT (STDMETHODCALLTYPE *GetVoice)(
 9515        ISpRecoContext *This,
 9516        ISpVoice **ppVoice);
 9517
 9518    HRESULT (STDMETHODCALLTYPE *SetVoicePurgeEvent)(
 9519        ISpRecoContext *This,
 9520        ULONGLONG ullEventInterest);
 9521
 9522    HRESULT (STDMETHODCALLTYPE *GetVoicePurgeEvent)(
 9523        ISpRecoContext *This,
 9524        ULONGLONG *pullEventInterest);
 9525
 9526    HRESULT (STDMETHODCALLTYPE *SetContextState)(
 9527        ISpRecoContext *This,
 9528        SPCONTEXTSTATE eContextState);
 9529
 9530    HRESULT (STDMETHODCALLTYPE *GetContextState)(
 9531        ISpRecoContext *This,
 9532        SPCONTEXTSTATE *peContextState);
 9533
 9534    END_INTERFACE
 9535} ISpRecoContextVtbl;
 9536
 9537interface ISpRecoContext {
 9538    CONST_VTBL ISpRecoContextVtbl* lpVtbl;
 9539};
 9540
 9541#ifdef COBJMACROS
 9542#ifndef WIDL_C_INLINE_WRAPPERS
 9543/*** IUnknown methods ***/
 9544#define ISpRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9545#define ISpRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
 9546#define ISpRecoContext_Release(This) (This)->lpVtbl->Release(This)
 9547/*** ISpNotifySource methods ***/
 9548#define ISpRecoContext_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
 9549#define ISpRecoContext_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
 9550#define ISpRecoContext_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
 9551#define ISpRecoContext_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
 9552#define ISpRecoContext_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
 9553#define ISpRecoContext_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
 9554#define ISpRecoContext_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
 9555/*** ISpEventSource methods ***/
 9556#define ISpRecoContext_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
 9557#define ISpRecoContext_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
 9558#define ISpRecoContext_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
 9559/*** ISpRecoContext methods ***/
 9560#define ISpRecoContext_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
 9561#define ISpRecoContext_CreateGrammar(This,ullGrammarId,ppGrammar) (This)->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar)
 9562#define ISpRecoContext_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
 9563#define ISpRecoContext_GetMaxAlternates(This,pcAlternates) (This)->lpVtbl->GetMaxAlternates(This,pcAlternates)
 9564#define ISpRecoContext_SetMaxAlternates(This,cAlternates) (This)->lpVtbl->SetMaxAlternates(This,cAlternates)
 9565#define ISpRecoContext_SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
 9566#define ISpRecoContext_GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX) (This)->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
 9567#define ISpRecoContext_DeserializeResult(This,pSerializedResult,ppResult) (This)->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult)
 9568#define ISpRecoContext_Bookmark(This,Options,ullStreamPosition,lparamEvent) (This)->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent)
 9569#define ISpRecoContext_SetAdaptationData(This,pAdaptationData,cch) (This)->lpVtbl->SetAdaptationData(This,pAdaptationData,cch)
 9570#define ISpRecoContext_Pause(This,dwReserved) (This)->lpVtbl->Pause(This,dwReserved)
 9571#define ISpRecoContext_Resume(This,dwReserved) (This)->lpVtbl->Resume(This,dwReserved)
 9572#define ISpRecoContext_SetVoice(This,pVoice,fAllowFormatChanges) (This)->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges)
 9573#define ISpRecoContext_GetVoice(This,ppVoice) (This)->lpVtbl->GetVoice(This,ppVoice)
 9574#define ISpRecoContext_SetVoicePurgeEvent(This,ullEventInterest) (This)->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest)
 9575#define ISpRecoContext_GetVoicePurgeEvent(This,pullEventInterest) (This)->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest)
 9576#define ISpRecoContext_SetContextState(This,eContextState) (This)->lpVtbl->SetContextState(This,eContextState)
 9577#define ISpRecoContext_GetContextState(This,peContextState) (This)->lpVtbl->GetContextState(This,peContextState)
 9578#else
 9579/*** IUnknown methods ***/
 9580static inline HRESULT ISpRecoContext_QueryInterface(ISpRecoContext* This,REFIID riid,void **ppvObject) {
 9581    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9582}
 9583static inline ULONG ISpRecoContext_AddRef(ISpRecoContext* This) {
 9584    return This->lpVtbl->AddRef(This);
 9585}
 9586static inline ULONG ISpRecoContext_Release(ISpRecoContext* This) {
 9587    return This->lpVtbl->Release(This);
 9588}
 9589/*** ISpNotifySource methods ***/
 9590static inline HRESULT ISpRecoContext_SetNotifySink(ISpRecoContext* This,ISpNotifySink *pNotifySink) {
 9591    return This->lpVtbl->SetNotifySink(This,pNotifySink);
 9592}
 9593static inline HRESULT ISpRecoContext_SetNotifyWindowMessage(ISpRecoContext* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 9594    return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
 9595}
 9596static inline HRESULT ISpRecoContext_SetNotifyCallbackFunction(ISpRecoContext* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 9597    return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
 9598}
 9599static inline HRESULT ISpRecoContext_SetNotifyCallbackInterface(ISpRecoContext* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 9600    return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
 9601}
 9602static inline HRESULT ISpRecoContext_SetNotifyWin32Event(ISpRecoContext* This) {
 9603    return This->lpVtbl->SetNotifyWin32Event(This);
 9604}
 9605static inline HRESULT ISpRecoContext_WaitForNotifyEvent(ISpRecoContext* This,DWORD dwMilliseconds) {
 9606    return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
 9607}
 9608static inline HANDLE ISpRecoContext_GetNotifyEventHandle(ISpRecoContext* This) {
 9609    return This->lpVtbl->GetNotifyEventHandle(This);
 9610}
 9611/*** ISpEventSource methods ***/
 9612static inline HRESULT ISpRecoContext_SetInterest(ISpRecoContext* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
 9613    return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
 9614}
 9615static inline HRESULT ISpRecoContext_GetEvents(ISpRecoContext* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
 9616    return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
 9617}
 9618static inline HRESULT ISpRecoContext_GetInfo(ISpRecoContext* This,SPEVENTSOURCEINFO *pInfo) {
 9619    return This->lpVtbl->GetInfo(This,pInfo);
 9620}
 9621/*** ISpRecoContext methods ***/
 9622static inline HRESULT ISpRecoContext_GetRecognizer(ISpRecoContext* This,ISpRecognizer **ppRecognizer) {
 9623    return This->lpVtbl->GetRecognizer(This,ppRecognizer);
 9624}
 9625static inline HRESULT ISpRecoContext_CreateGrammar(ISpRecoContext* This,ULONGLONG ullGrammarId,ISpRecoGrammar **ppGrammar) {
 9626    return This->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar);
 9627}
 9628static inline HRESULT ISpRecoContext_GetStatus(ISpRecoContext* This,SPRECOCONTEXTSTATUS *pStatus) {
 9629    return This->lpVtbl->GetStatus(This,pStatus);
 9630}
 9631static inline HRESULT ISpRecoContext_GetMaxAlternates(ISpRecoContext* This,ULONG *pcAlternates) {
 9632    return This->lpVtbl->GetMaxAlternates(This,pcAlternates);
 9633}
 9634static inline HRESULT ISpRecoContext_SetMaxAlternates(ISpRecoContext* This,ULONG cAlternates) {
 9635    return This->lpVtbl->SetMaxAlternates(This,cAlternates);
 9636}
 9637static inline HRESULT ISpRecoContext_SetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS Options,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
 9638    return This->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx);
 9639}
 9640static inline HRESULT ISpRecoContext_GetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS *pOptions,GUID *pAudioFormatId,WAVEFORMATEX **ppCoMemWFEX) {
 9641    return This->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX);
 9642}
 9643static inline HRESULT ISpRecoContext_DeserializeResult(ISpRecoContext* This,const SPSERIALIZEDRESULT *pSerializedResult,ISpRecoResult **ppResult) {
 9644    return This->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult);
 9645}
 9646static inline HRESULT ISpRecoContext_Bookmark(ISpRecoContext* This,SPBOOKMARKOPTIONS Options,ULONGLONG ullStreamPosition,LPARAM lparamEvent) {
 9647    return This->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent);
 9648}
 9649static inline HRESULT ISpRecoContext_SetAdaptationData(ISpRecoContext* This,LPCWSTR pAdaptationData,const ULONG cch) {
 9650    return This->lpVtbl->SetAdaptationData(This,pAdaptationData,cch);
 9651}
 9652static inline HRESULT ISpRecoContext_Pause(ISpRecoContext* This,DWORD dwReserved) {
 9653    return This->lpVtbl->Pause(This,dwReserved);
 9654}
 9655static inline HRESULT ISpRecoContext_Resume(ISpRecoContext* This,DWORD dwReserved) {
 9656    return This->lpVtbl->Resume(This,dwReserved);
 9657}
 9658static inline HRESULT ISpRecoContext_SetVoice(ISpRecoContext* This,ISpVoice *pVoice,WINBOOL fAllowFormatChanges) {
 9659    return This->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges);
 9660}
 9661static inline HRESULT ISpRecoContext_GetVoice(ISpRecoContext* This,ISpVoice **ppVoice) {
 9662    return This->lpVtbl->GetVoice(This,ppVoice);
 9663}
 9664static inline HRESULT ISpRecoContext_SetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG ullEventInterest) {
 9665    return This->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest);
 9666}
 9667static inline HRESULT ISpRecoContext_GetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG *pullEventInterest) {
 9668    return This->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest);
 9669}
 9670static inline HRESULT ISpRecoContext_SetContextState(ISpRecoContext* This,SPCONTEXTSTATE eContextState) {
 9671    return This->lpVtbl->SetContextState(This,eContextState);
 9672}
 9673static inline HRESULT ISpRecoContext_GetContextState(ISpRecoContext* This,SPCONTEXTSTATE *peContextState) {
 9674    return This->lpVtbl->GetContextState(This,peContextState);
 9675}
 9676#endif
 9677#endif
 9678
 9679#endif
 9680
 9681
 9682#endif  /* __ISpRecoContext_INTERFACE_DEFINED__ */
 9683
 9684typedef enum SPGRAMMAROPTIONS {
 9685    SPGO_SAPI = 0x1,
 9686    SPGO_SRGS = 0x2,
 9687    SPGO_UPS = 0x4,
 9688    SPGO_SRGS_MS_SCRIPT = 0x8,
 9689    SPGO_FILE = 0x10,
 9690    SPGO_HTTP = 0x20,
 9691    SPGO_RES = 0x40,
 9692    SPGO_OBJECT = 0x80,
 9693    SPGO_SRGS_W3C_SCRIPT = 0x100,
 9694    SPGO_SRGS_STG_SCRIPT = 0x200,
 9695    SPGO_SRGS_SCRIPT = ((SPGO_SRGS | SPGO_SRGS_MS_SCRIPT) | SPGO_SRGS_W3C_SCRIPT) | SPGO_SRGS_STG_SCRIPT,
 9696    SPGO_DEFAULT = 0x3fb,
 9697    SPGO_ALL = 0x3ff
 9698} SPGRAMMAROPTIONS;
 9699typedef enum SPADAPTATIONSETTINGS {
 9700    SPADS_Default = 0x0,
 9701    SPADS_CurrentRecognizer = 0x1,
 9702    SPADS_RecoProfile = 0x2,
 9703    SPADS_Immediate = 0x4,
 9704    SPADS_Reset = 0x8,
 9705    SPADS_HighVolumeDataSource = 0x10
 9706} SPADAPTATIONSETTINGS;
 9707typedef enum SPADAPTATIONRELEVANCE {
 9708    SPAR_Unknown = 0,
 9709    SPAR_Low = 1,
 9710    SPAR_Medium = 2,
 9711    SPAR_High = 3
 9712} SPADAPTATIONRELEVANCE;
 9713/*****************************************************************************
 9714 * ISpRecoContext2 interface
 9715 */
 9716#ifndef __ISpRecoContext2_INTERFACE_DEFINED__
 9717#define __ISpRecoContext2_INTERFACE_DEFINED__
 9718
 9719DEFINE_GUID(IID_ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d);
 9720#if defined(__cplusplus) && !defined(CINTERFACE)
 9721MIDL_INTERFACE("bead311c-52ff-437f-9464-6b21054ca73d")
 9722ISpRecoContext2 : public IUnknown
 9723{
 9724    virtual HRESULT STDMETHODCALLTYPE SetGrammarOptions(
 9725        DWORD eGrammarOptions) = 0;
 9726
 9727    virtual HRESULT STDMETHODCALLTYPE GetGrammarOptions(
 9728        DWORD *peGrammarOptions) = 0;
 9729
 9730    virtual HRESULT STDMETHODCALLTYPE SetAdaptationData2(
 9731        LPCWSTR pAdaptationData,
 9732        const ULONG cch,
 9733        LPCWSTR pTopicName,
 9734        DWORD eAdaptationSettings,
 9735        SPADAPTATIONRELEVANCE eRelevance) = 0;
 9736
 9737};
 9738#ifdef __CRT_UUID_DECL
 9739__CRT_UUID_DECL(ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d)
 9740#endif
 9741#else
 9742typedef struct ISpRecoContext2Vtbl {
 9743    BEGIN_INTERFACE
 9744
 9745    /*** IUnknown methods ***/
 9746    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9747        ISpRecoContext2 *This,
 9748        REFIID riid,
 9749        void **ppvObject);
 9750
 9751    ULONG (STDMETHODCALLTYPE *AddRef)(
 9752        ISpRecoContext2 *This);
 9753
 9754    ULONG (STDMETHODCALLTYPE *Release)(
 9755        ISpRecoContext2 *This);
 9756
 9757    /*** ISpRecoContext2 methods ***/
 9758    HRESULT (STDMETHODCALLTYPE *SetGrammarOptions)(
 9759        ISpRecoContext2 *This,
 9760        DWORD eGrammarOptions);
 9761
 9762    HRESULT (STDMETHODCALLTYPE *GetGrammarOptions)(
 9763        ISpRecoContext2 *This,
 9764        DWORD *peGrammarOptions);
 9765
 9766    HRESULT (STDMETHODCALLTYPE *SetAdaptationData2)(
 9767        ISpRecoContext2 *This,
 9768        LPCWSTR pAdaptationData,
 9769        const ULONG cch,
 9770        LPCWSTR pTopicName,
 9771        DWORD eAdaptationSettings,
 9772        SPADAPTATIONRELEVANCE eRelevance);
 9773
 9774    END_INTERFACE
 9775} ISpRecoContext2Vtbl;
 9776
 9777interface ISpRecoContext2 {
 9778    CONST_VTBL ISpRecoContext2Vtbl* lpVtbl;
 9779};
 9780
 9781#ifdef COBJMACROS
 9782#ifndef WIDL_C_INLINE_WRAPPERS
 9783/*** IUnknown methods ***/
 9784#define ISpRecoContext2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9785#define ISpRecoContext2_AddRef(This) (This)->lpVtbl->AddRef(This)
 9786#define ISpRecoContext2_Release(This) (This)->lpVtbl->Release(This)
 9787/*** ISpRecoContext2 methods ***/
 9788#define ISpRecoContext2_SetGrammarOptions(This,eGrammarOptions) (This)->lpVtbl->SetGrammarOptions(This,eGrammarOptions)
 9789#define ISpRecoContext2_GetGrammarOptions(This,peGrammarOptions) (This)->lpVtbl->GetGrammarOptions(This,peGrammarOptions)
 9790#define ISpRecoContext2_SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance) (This)->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance)
 9791#else
 9792/*** IUnknown methods ***/
 9793static inline HRESULT ISpRecoContext2_QueryInterface(ISpRecoContext2* This,REFIID riid,void **ppvObject) {
 9794    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9795}
 9796static inline ULONG ISpRecoContext2_AddRef(ISpRecoContext2* This) {
 9797    return This->lpVtbl->AddRef(This);
 9798}
 9799static inline ULONG ISpRecoContext2_Release(ISpRecoContext2* This) {
 9800    return This->lpVtbl->Release(This);
 9801}
 9802/*** ISpRecoContext2 methods ***/
 9803static inline HRESULT ISpRecoContext2_SetGrammarOptions(ISpRecoContext2* This,DWORD eGrammarOptions) {
 9804    return This->lpVtbl->SetGrammarOptions(This,eGrammarOptions);
 9805}
 9806static inline HRESULT ISpRecoContext2_GetGrammarOptions(ISpRecoContext2* This,DWORD *peGrammarOptions) {
 9807    return This->lpVtbl->GetGrammarOptions(This,peGrammarOptions);
 9808}
 9809static inline HRESULT ISpRecoContext2_SetAdaptationData2(ISpRecoContext2* This,LPCWSTR pAdaptationData,const ULONG cch,LPCWSTR pTopicName,DWORD eAdaptationSettings,SPADAPTATIONRELEVANCE eRelevance) {
 9810    return This->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance);
 9811}
 9812#endif
 9813#endif
 9814
 9815#endif
 9816
 9817
 9818#endif  /* __ISpRecoContext2_INTERFACE_DEFINED__ */
 9819
 9820/*****************************************************************************
 9821 * ISpProperties interface
 9822 */
 9823#ifndef __ISpProperties_INTERFACE_DEFINED__
 9824#define __ISpProperties_INTERFACE_DEFINED__
 9825
 9826DEFINE_GUID(IID_ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4);
 9827#if defined(__cplusplus) && !defined(CINTERFACE)
 9828MIDL_INTERFACE("5b4fb971-b115-4de1-ad97-e482e3bf6ee4")
 9829ISpProperties : public IUnknown
 9830{
 9831    virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
 9832        LPCWSTR pName,
 9833        LONG lValue) = 0;
 9834
 9835    virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
 9836        LPCWSTR pName,
 9837        LONG *plValue) = 0;
 9838
 9839    virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
 9840        LPCWSTR pName,
 9841        LPCWSTR pValue) = 0;
 9842
 9843    virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
 9844        LPCWSTR pName,
 9845        LPWSTR *ppCoMemValue) = 0;
 9846
 9847};
 9848#ifdef __CRT_UUID_DECL
 9849__CRT_UUID_DECL(ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4)
 9850#endif
 9851#else
 9852typedef struct ISpPropertiesVtbl {
 9853    BEGIN_INTERFACE
 9854
 9855    /*** IUnknown methods ***/
 9856    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9857        ISpProperties *This,
 9858        REFIID riid,
 9859        void **ppvObject);
 9860
 9861    ULONG (STDMETHODCALLTYPE *AddRef)(
 9862        ISpProperties *This);
 9863
 9864    ULONG (STDMETHODCALLTYPE *Release)(
 9865        ISpProperties *This);
 9866
 9867    /*** ISpProperties methods ***/
 9868    HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
 9869        ISpProperties *This,
 9870        LPCWSTR pName,
 9871        LONG lValue);
 9872
 9873    HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
 9874        ISpProperties *This,
 9875        LPCWSTR pName,
 9876        LONG *plValue);
 9877
 9878    HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
 9879        ISpProperties *This,
 9880        LPCWSTR pName,
 9881        LPCWSTR pValue);
 9882
 9883    HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
 9884        ISpProperties *This,
 9885        LPCWSTR pName,
 9886        LPWSTR *ppCoMemValue);
 9887
 9888    END_INTERFACE
 9889} ISpPropertiesVtbl;
 9890
 9891interface ISpProperties {
 9892    CONST_VTBL ISpPropertiesVtbl* lpVtbl;
 9893};
 9894
 9895#ifdef COBJMACROS
 9896#ifndef WIDL_C_INLINE_WRAPPERS
 9897/*** IUnknown methods ***/
 9898#define ISpProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9899#define ISpProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
 9900#define ISpProperties_Release(This) (This)->lpVtbl->Release(This)
 9901/*** ISpProperties methods ***/
 9902#define ISpProperties_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
 9903#define ISpProperties_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
 9904#define ISpProperties_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
 9905#define ISpProperties_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
 9906#else
 9907/*** IUnknown methods ***/
 9908static inline HRESULT ISpProperties_QueryInterface(ISpProperties* This,REFIID riid,void **ppvObject) {
 9909    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9910}
 9911static inline ULONG ISpProperties_AddRef(ISpProperties* This) {
 9912    return This->lpVtbl->AddRef(This);
 9913}
 9914static inline ULONG ISpProperties_Release(ISpProperties* This) {
 9915    return This->lpVtbl->Release(This);
 9916}
 9917/*** ISpProperties methods ***/
 9918static inline HRESULT ISpProperties_SetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG lValue) {
 9919    return This->lpVtbl->SetPropertyNum(This,pName,lValue);
 9920}
 9921static inline HRESULT ISpProperties_GetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG *plValue) {
 9922    return This->lpVtbl->GetPropertyNum(This,pName,plValue);
 9923}
 9924static inline HRESULT ISpProperties_SetPropertyString(ISpProperties* This,LPCWSTR pName,LPCWSTR pValue) {
 9925    return This->lpVtbl->SetPropertyString(This,pName,pValue);
 9926}
 9927static inline HRESULT ISpProperties_GetPropertyString(ISpProperties* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
 9928    return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
 9929}
 9930#endif
 9931#endif
 9932
 9933#endif
 9934
 9935
 9936#endif  /* __ISpProperties_INTERFACE_DEFINED__ */
 9937
 9938#define SP_MAX_LANGIDS (20)
 9939
 9940typedef struct SPRECOGNIZERSTATUS {
 9941    SPAUDIOSTATUS AudioStatus;
 9942    ULONGLONG ullRecognitionStreamPos;
 9943    ULONG ulStreamNumber;
 9944    ULONG ulNumActive;
 9945    CLSID clsidEngine;
 9946    ULONG cLangIDs;
 9947    WORD aLangID[20];
 9948    ULONGLONG ullRecognitionStreamTime;
 9949} SPRECOGNIZERSTATUS;
 9950typedef enum SPWAVEFORMATTYPE {
 9951    SPWF_INPUT = 0,
 9952    SPWF_SRENGINE = 1
 9953} SPSTREAMFORMATTYPE;
 9954typedef enum SPRECOSTATE {
 9955    SPRST_INACTIVE = 0,
 9956    SPRST_ACTIVE = 1,
 9957    SPRST_ACTIVE_ALWAYS = 2,
 9958    SPRST_INACTIVE_WITH_PURGE = 3,
 9959    SPRST_NUM_STATES = 4
 9960} SPRECOSTATE;
 9961typedef enum SPCATEGORYTYPE {
 9962    SPCT_COMMAND = 0,
 9963    SPCT_DICTATION = 1,
 9964    SPCT_SLEEP = 2,
 9965    SPCT_SUB_COMMAND = 3,
 9966    SPCT_SUB_DICTATION = 4
 9967} SPCATEGORYTYPE;
 9968/*****************************************************************************
 9969 * ISpRecognizer interface
 9970 */
 9971#ifndef __ISpRecognizer_INTERFACE_DEFINED__
 9972#define __ISpRecognizer_INTERFACE_DEFINED__
 9973
 9974DEFINE_GUID(IID_ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c);
 9975#if defined(__cplusplus) && !defined(CINTERFACE)
 9976MIDL_INTERFACE("c2b5f241-daa0-4507-9e16-5a1eaa2b7a5c")
 9977ISpRecognizer : public ISpProperties
 9978{
 9979    virtual HRESULT STDMETHODCALLTYPE SetRecognizer(
 9980        ISpObjectToken *pRecognizer) = 0;
 9981
 9982    virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
 9983        ISpObjectToken **ppRecognizer) = 0;
 9984
 9985    virtual HRESULT STDMETHODCALLTYPE SetInput(
 9986        IUnknown *pUnkInput,
 9987        WINBOOL fAllowFormatChanges) = 0;
 9988
 9989    virtual HRESULT STDMETHODCALLTYPE GetInputObjectToken(
 9990        ISpObjectToken **ppToken) = 0;
 9991
 9992    virtual HRESULT STDMETHODCALLTYPE GetInputStream(
 9993        ISpStreamFormat **ppStream) = 0;
 9994
 9995    virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
 9996        ISpRecoContext **ppNewCtxt) = 0;
 9997
 9998    virtual HRESULT STDMETHODCALLTYPE GetRecoProfile(
 9999        ISpObjectToken **ppToken) = 0;
10000
10001    virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
10002        ISpObjectToken *pToken) = 0;
10003
10004    virtual HRESULT STDMETHODCALLTYPE IsSharedInstance(
10005        ) = 0;
10006
10007    virtual HRESULT STDMETHODCALLTYPE GetRecoState(
10008        SPRECOSTATE *pState) = 0;
10009
10010    virtual HRESULT STDMETHODCALLTYPE SetRecoState(
10011        SPRECOSTATE NewState) = 0;
10012
10013    virtual HRESULT STDMETHODCALLTYPE GetStatus(
10014        SPRECOGNIZERSTATUS *pStatus) = 0;
10015
10016    virtual HRESULT STDMETHODCALLTYPE GetFormat(
10017        SPSTREAMFORMATTYPE WaveFormatType,
10018        GUID *pFormatId,
10019        WAVEFORMATEX **ppCoMemWFEX) = 0;
10020
10021    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
10022        LPCWSTR pszTypeOfUI,
10023        void *pvExtraData,
10024        ULONG cbExtraData,
10025        WINBOOL *pfSupported) = 0;
10026
10027    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
10028        HWND hwndParent,
10029        LPCWSTR pszTitle,
10030        LPCWSTR pszTypeOfUI,
10031        void *pvExtraData,
10032        ULONG cbExtraData) = 0;
10033
10034    virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
10035        ISpPhrase *pPhrase) = 0;
10036
10037};
10038#ifdef __CRT_UUID_DECL
10039__CRT_UUID_DECL(ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c)
10040#endif
10041#else
10042typedef struct ISpRecognizerVtbl {
10043    BEGIN_INTERFACE
10044
10045    /*** IUnknown methods ***/
10046    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10047        ISpRecognizer *This,
10048        REFIID riid,
10049        void **ppvObject);
10050
10051    ULONG (STDMETHODCALLTYPE *AddRef)(
10052        ISpRecognizer *This);
10053
10054    ULONG (STDMETHODCALLTYPE *Release)(
10055        ISpRecognizer *This);
10056
10057    /*** ISpProperties methods ***/
10058    HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
10059        ISpRecognizer *This,
10060        LPCWSTR pName,
10061        LONG lValue);
10062
10063    HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
10064        ISpRecognizer *This,
10065        LPCWSTR pName,
10066        LONG *plValue);
10067
10068    HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
10069        ISpRecognizer *This,
10070        LPCWSTR pName,
10071        LPCWSTR pValue);
10072
10073    HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
10074        ISpRecognizer *This,
10075        LPCWSTR pName,
10076        LPWSTR *ppCoMemValue);
10077
10078    /*** ISpRecognizer methods ***/
10079    HRESULT (STDMETHODCALLTYPE *SetRecognizer)(
10080        ISpRecognizer *This,
10081        ISpObjectToken *pRecognizer);
10082
10083    HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
10084        ISpRecognizer *This,
10085        ISpObjectToken **ppRecognizer);
10086
10087    HRESULT (STDMETHODCALLTYPE *SetInput)(
10088        ISpRecognizer *This,
10089        IUnknown *pUnkInput,
10090        WINBOOL fAllowFormatChanges);
10091
10092    HRESULT (STDMETHODCALLTYPE *GetInputObjectToken)(
10093        ISpRecognizer *This,
10094        ISpObjectToken **ppToken);
10095
10096    HRESULT (STDMETHODCALLTYPE *GetInputStream)(
10097        ISpRecognizer *This,
10098        ISpStreamFormat **ppStream);
10099
10100    HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
10101        ISpRecognizer *This,
10102        ISpRecoContext **ppNewCtxt);
10103
10104    HRESULT (STDMETHODCALLTYPE *GetRecoProfile)(
10105        ISpRecognizer *This,
10106        ISpObjectToken **ppToken);
10107
10108    HRESULT (STDMETHODCALLTYPE *SetRecoProfile)(
10109        ISpRecognizer *This,
10110        ISpObjectToken *pToken);
10111
10112    HRESULT (STDMETHODCALLTYPE *IsSharedInstance)(
10113        ISpRecognizer *This);
10114
10115    HRESULT (STDMETHODCALLTYPE *GetRecoState)(
10116        ISpRecognizer *This,
10117        SPRECOSTATE *pState);
10118
10119    HRESULT (STDMETHODCALLTYPE *SetRecoState)(
10120        ISpRecognizer *This,
10121        SPRECOSTATE NewState);
10122
10123    HRESULT (STDMETHODCALLTYPE *GetStatus)(
10124        ISpRecognizer *This,
10125        SPRECOGNIZERSTATUS *pStatus);
10126
10127    HRESULT (STDMETHODCALLTYPE *GetFormat)(
10128        ISpRecognizer *This,
10129        SPSTREAMFORMATTYPE WaveFormatType,
10130        GUID *pFormatId,
10131        WAVEFORMATEX **ppCoMemWFEX);
10132
10133    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
10134        ISpRecognizer *This,
10135        LPCWSTR pszTypeOfUI,
10136        void *pvExtraData,
10137        ULONG cbExtraData,
10138        WINBOOL *pfSupported);
10139
10140    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
10141        ISpRecognizer *This,
10142        HWND hwndParent,
10143        LPCWSTR pszTitle,
10144        LPCWSTR pszTypeOfUI,
10145        void *pvExtraData,
10146        ULONG cbExtraData);
10147
10148    HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
10149        ISpRecognizer *This,
10150        ISpPhrase *pPhrase);
10151
10152    END_INTERFACE
10153} ISpRecognizerVtbl;
10154
10155interface ISpRecognizer {
10156    CONST_VTBL ISpRecognizerVtbl* lpVtbl;
10157};
10158
10159#ifdef COBJMACROS
10160#ifndef WIDL_C_INLINE_WRAPPERS
10161/*** IUnknown methods ***/
10162#define ISpRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10163#define ISpRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
10164#define ISpRecognizer_Release(This) (This)->lpVtbl->Release(This)
10165/*** ISpProperties methods ***/
10166#define ISpRecognizer_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
10167#define ISpRecognizer_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
10168#define ISpRecognizer_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
10169#define ISpRecognizer_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
10170/*** ISpRecognizer methods ***/
10171#define ISpRecognizer_SetRecognizer(This,pRecognizer) (This)->lpVtbl->SetRecognizer(This,pRecognizer)
10172#define ISpRecognizer_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
10173#define ISpRecognizer_SetInput(This,pUnkInput,fAllowFormatChanges) (This)->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges)
10174#define ISpRecognizer_GetInputObjectToken(This,ppToken) (This)->lpVtbl->GetInputObjectToken(This,ppToken)
10175#define ISpRecognizer_GetInputStream(This,ppStream) (This)->lpVtbl->GetInputStream(This,ppStream)
10176#define ISpRecognizer_CreateRecoContext(This,ppNewCtxt) (This)->lpVtbl->CreateRecoContext(This,ppNewCtxt)
10177#define ISpRecognizer_GetRecoProfile(This,ppToken) (This)->lpVtbl->GetRecoProfile(This,ppToken)
10178#define ISpRecognizer_SetRecoProfile(This,pToken) (This)->lpVtbl->SetRecoProfile(This,pToken)
10179#define ISpRecognizer_IsSharedInstance(This) (This)->lpVtbl->IsSharedInstance(This)
10180#define ISpRecognizer_GetRecoState(This,pState) (This)->lpVtbl->GetRecoState(This,pState)
10181#define ISpRecognizer_SetRecoState(This,NewState) (This)->lpVtbl->SetRecoState(This,NewState)
10182#define ISpRecognizer_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
10183#define ISpRecognizer_GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX) (This)->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
10184#define ISpRecognizer_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
10185#define ISpRecognizer_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
10186#define ISpRecognizer_EmulateRecognition(This,pPhrase) (This)->lpVtbl->EmulateRecognition(This,pPhrase)
10187#else
10188/*** IUnknown methods ***/
10189static inline HRESULT ISpRecognizer_QueryInterface(ISpRecognizer* This,REFIID riid,void **ppvObject) {
10190    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10191}
10192static inline ULONG ISpRecognizer_AddRef(ISpRecognizer* This) {
10193    return This->lpVtbl->AddRef(This);
10194}
10195static inline ULONG ISpRecognizer_Release(ISpRecognizer* This) {
10196    return This->lpVtbl->Release(This);
10197}
10198/*** ISpProperties methods ***/
10199static inline HRESULT ISpRecognizer_SetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG lValue) {
10200    return This->lpVtbl->SetPropertyNum(This,pName,lValue);
10201}
10202static inline HRESULT ISpRecognizer_GetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG *plValue) {
10203    return This->lpVtbl->GetPropertyNum(This,pName,plValue);
10204}
10205static inline HRESULT ISpRecognizer_SetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPCWSTR pValue) {
10206    return This->lpVtbl->SetPropertyString(This,pName,pValue);
10207}
10208static inline HRESULT ISpRecognizer_GetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
10209    return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
10210}
10211/*** ISpRecognizer methods ***/
10212static inline HRESULT ISpRecognizer_SetRecognizer(ISpRecognizer* This,ISpObjectToken *pRecognizer) {
10213    return This->lpVtbl->SetRecognizer(This,pRecognizer);
10214}
10215static inline HRESULT ISpRecognizer_GetRecognizer(ISpRecognizer* This,ISpObjectToken **ppRecognizer) {
10216    return This->lpVtbl->GetRecognizer(This,ppRecognizer);
10217}
10218static inline HRESULT ISpRecognizer_SetInput(ISpRecognizer* This,IUnknown *pUnkInput,WINBOOL fAllowFormatChanges) {
10219    return This->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges);
10220}
10221static inline HRESULT ISpRecognizer_GetInputObjectToken(ISpRecognizer* This,ISpObjectToken **ppToken) {
10222    return This->lpVtbl->GetInputObjectToken(This,ppToken);
10223}
10224static inline HRESULT ISpRecognizer_GetInputStream(ISpRecognizer* This,ISpStreamFormat **ppStream) {
10225    return This->lpVtbl->GetInputStream(This,ppStream);
10226}
10227static inline HRESULT ISpRecognizer_CreateRecoContext(ISpRecognizer* This,ISpRecoContext **ppNewCtxt) {
10228    return This->lpVtbl->CreateRecoContext(This,ppNewCtxt);
10229}
10230static inline HRESULT ISpRecognizer_GetRecoProfile(ISpRecognizer* This,ISpObjectToken **ppToken) {
10231    return This->lpVtbl->GetRecoProfile(This,ppToken);
10232}
10233static inline HRESULT ISpRecognizer_SetRecoProfile(ISpRecognizer* This,ISpObjectToken *pToken) {
10234    return This->lpVtbl->SetRecoProfile(This,pToken);
10235}
10236static inline HRESULT ISpRecognizer_IsSharedInstance(ISpRecognizer* This) {
10237    return This->lpVtbl->IsSharedInstance(This);
10238}
10239static inline HRESULT ISpRecognizer_GetRecoState(ISpRecognizer* This,SPRECOSTATE *pState) {
10240    return This->lpVtbl->GetRecoState(This,pState);
10241}
10242static inline HRESULT ISpRecognizer_SetRecoState(ISpRecognizer* This,SPRECOSTATE NewState) {
10243    return This->lpVtbl->SetRecoState(This,NewState);
10244}
10245static inline HRESULT ISpRecognizer_GetStatus(ISpRecognizer* This,SPRECOGNIZERSTATUS *pStatus) {
10246    return This->lpVtbl->GetStatus(This,pStatus);
10247}
10248static inline HRESULT ISpRecognizer_GetFormat(ISpRecognizer* This,SPSTREAMFORMATTYPE WaveFormatType,GUID *pFormatId,WAVEFORMATEX **ppCoMemWFEX) {
10249    return This->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX);
10250}
10251static inline HRESULT ISpRecognizer_IsUISupported(ISpRecognizer* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
10252    return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
10253}
10254static inline HRESULT ISpRecognizer_DisplayUI(ISpRecognizer* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
10255    return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
10256}
10257static inline HRESULT ISpRecognizer_EmulateRecognition(ISpRecognizer* This,ISpPhrase *pPhrase) {
10258    return This->lpVtbl->EmulateRecognition(This,pPhrase);
10259}
10260#endif
10261#endif
10262
10263#endif
10264
10265
10266#endif  /* __ISpRecognizer_INTERFACE_DEFINED__ */
10267
10268/*****************************************************************************
10269 * ISpSerializeState interface
10270 */
10271#ifndef __ISpSerializeState_INTERFACE_DEFINED__
10272#define __ISpSerializeState_INTERFACE_DEFINED__
10273
10274DEFINE_GUID(IID_ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9);
10275#if defined(__cplusplus) && !defined(CINTERFACE)
10276MIDL_INTERFACE("21b501a0-0ec7-46c9-92c3-a2bc784c54b9")
10277ISpSerializeState : public IUnknown
10278{
10279    virtual HRESULT STDMETHODCALLTYPE GetSerializedState(
10280        BYTE **ppbData,
10281        ULONG *pulSize,
10282        DWORD dwReserved) = 0;
10283
10284    virtual HRESULT STDMETHODCALLTYPE SetSerializedState(
10285        BYTE *pbData,
10286        ULONG ulSize,
10287        DWORD dwReserved) = 0;
10288
10289};
10290#ifdef __CRT_UUID_DECL
10291__CRT_UUID_DECL(ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9)
10292#endif
10293#else
10294typedef struct ISpSerializeStateVtbl {
10295    BEGIN_INTERFACE
10296
10297    /*** IUnknown methods ***/
10298    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10299        ISpSerializeState *This,
10300        REFIID riid,
10301        void **ppvObject);
10302
10303    ULONG (STDMETHODCALLTYPE *AddRef)(
10304        ISpSerializeState *This);
10305
10306    ULONG (STDMETHODCALLTYPE *Release)(
10307        ISpSerializeState *This);
10308
10309    /*** ISpSerializeState methods ***/
10310    HRESULT (STDMETHODCALLTYPE *GetSerializedState)(
10311        ISpSerializeState *This,
10312        BYTE **ppbData,
10313        ULONG *pulSize,
10314        DWORD dwReserved);
10315
10316    HRESULT (STDMETHODCALLTYPE *SetSerializedState)(
10317        ISpSerializeState *This,
10318        BYTE *pbData,
10319        ULONG ulSize,
10320        DWORD dwReserved);
10321
10322    END_INTERFACE
10323} ISpSerializeStateVtbl;
10324
10325interface ISpSerializeState {
10326    CONST_VTBL ISpSerializeStateVtbl* lpVtbl;
10327};
10328
10329#ifdef COBJMACROS
10330#ifndef WIDL_C_INLINE_WRAPPERS
10331/*** IUnknown methods ***/
10332#define ISpSerializeState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10333#define ISpSerializeState_AddRef(This) (This)->lpVtbl->AddRef(This)
10334#define ISpSerializeState_Release(This) (This)->lpVtbl->Release(This)
10335/*** ISpSerializeState methods ***/
10336#define ISpSerializeState_GetSerializedState(This,ppbData,pulSize,dwReserved) (This)->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved)
10337#define ISpSerializeState_SetSerializedState(This,pbData,ulSize,dwReserved) (This)->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved)
10338#else
10339/*** IUnknown methods ***/
10340static inline HRESULT ISpSerializeState_QueryInterface(ISpSerializeState* This,REFIID riid,void **ppvObject) {
10341    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10342}
10343static inline ULONG ISpSerializeState_AddRef(ISpSerializeState* This) {
10344    return This->lpVtbl->AddRef(This);
10345}
10346static inline ULONG ISpSerializeState_Release(ISpSerializeState* This) {
10347    return This->lpVtbl->Release(This);
10348}
10349/*** ISpSerializeState methods ***/
10350static inline HRESULT ISpSerializeState_GetSerializedState(ISpSerializeState* This,BYTE **ppbData,ULONG *pulSize,DWORD dwReserved) {
10351    return This->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved);
10352}
10353static inline HRESULT ISpSerializeState_SetSerializedState(ISpSerializeState* This,BYTE *pbData,ULONG ulSize,DWORD dwReserved) {
10354    return This->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved);
10355}
10356#endif
10357#endif
10358
10359#endif
10360
10361
10362#endif  /* __ISpSerializeState_INTERFACE_DEFINED__ */
10363
10364/*****************************************************************************
10365 * ISpRecognizer2 interface
10366 */
10367#ifndef __ISpRecognizer2_INTERFACE_DEFINED__
10368#define __ISpRecognizer2_INTERFACE_DEFINED__
10369
10370DEFINE_GUID(IID_ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3);
10371#if defined(__cplusplus) && !defined(CINTERFACE)
10372MIDL_INTERFACE("8fc6d974-c81e-4098-93c5-0147f61ed4d3")
10373ISpRecognizer2 : public IUnknown
10374{
10375    virtual HRESULT STDMETHODCALLTYPE EmulateRecognitionEx(
10376        ISpPhrase *pPhrase,
10377        DWORD dwCompareFlags) = 0;
10378
10379    virtual HRESULT STDMETHODCALLTYPE SetTrainingState(
10380        WINBOOL fDoingTraining,
10381        WINBOOL fAdaptFromTrainingData) = 0;
10382
10383    virtual HRESULT STDMETHODCALLTYPE ResetAcousticModelAdaptation(
10384        ) = 0;
10385
10386};
10387#ifdef __CRT_UUID_DECL
10388__CRT_UUID_DECL(ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3)
10389#endif
10390#else
10391typedef struct ISpRecognizer2Vtbl {
10392    BEGIN_INTERFACE
10393
10394    /*** IUnknown methods ***/
10395    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10396        ISpRecognizer2 *This,
10397        REFIID riid,
10398        void **ppvObject);
10399
10400    ULONG (STDMETHODCALLTYPE *AddRef)(
10401        ISpRecognizer2 *This);
10402
10403    ULONG (STDMETHODCALLTYPE *Release)(
10404        ISpRecognizer2 *This);
10405
10406    /*** ISpRecognizer2 methods ***/
10407    HRESULT (STDMETHODCALLTYPE *EmulateRecognitionEx)(
10408        ISpRecognizer2 *This,
10409        ISpPhrase *pPhrase,
10410        DWORD dwCompareFlags);
10411
10412    HRESULT (STDMETHODCALLTYPE *SetTrainingState)(
10413        ISpRecognizer2 *This,
10414        WINBOOL fDoingTraining,
10415        WINBOOL fAdaptFromTrainingData);
10416
10417    HRESULT (STDMETHODCALLTYPE *ResetAcousticModelAdaptation)(
10418        ISpRecognizer2 *This);
10419
10420    END_INTERFACE
10421} ISpRecognizer2Vtbl;
10422
10423interface ISpRecognizer2 {
10424    CONST_VTBL ISpRecognizer2Vtbl* lpVtbl;
10425};
10426
10427#ifdef COBJMACROS
10428#ifndef WIDL_C_INLINE_WRAPPERS
10429/*** IUnknown methods ***/
10430#define ISpRecognizer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10431#define ISpRecognizer2_AddRef(This) (This)->lpVtbl->AddRef(This)
10432#define ISpRecognizer2_Release(This) (This)->lpVtbl->Release(This)
10433/*** ISpRecognizer2 methods ***/
10434#define ISpRecognizer2_EmulateRecognitionEx(This,pPhrase,dwCompareFlags) (This)->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags)
10435#define ISpRecognizer2_SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData) (This)->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData)
10436#define ISpRecognizer2_ResetAcousticModelAdaptation(This) (This)->lpVtbl->ResetAcousticModelAdaptation(This)
10437#else
10438/*** IUnknown methods ***/
10439static inline HRESULT ISpRecognizer2_QueryInterface(ISpRecognizer2* This,REFIID riid,void **ppvObject) {
10440    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10441}
10442static inline ULONG ISpRecognizer2_AddRef(ISpRecognizer2* This) {
10443    return This->lpVtbl->AddRef(This);
10444}
10445static inline ULONG ISpRecognizer2_Release(ISpRecognizer2* This) {
10446    return This->lpVtbl->Release(This);
10447}
10448/*** ISpRecognizer2 methods ***/
10449static inline HRESULT ISpRecognizer2_EmulateRecognitionEx(ISpRecognizer2* This,ISpPhrase *pPhrase,DWORD dwCompareFlags) {
10450    return This->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags);
10451}
10452static inline HRESULT ISpRecognizer2_SetTrainingState(ISpRecognizer2* This,WINBOOL fDoingTraining,WINBOOL fAdaptFromTrainingData) {
10453    return This->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData);
10454}
10455static inline HRESULT ISpRecognizer2_ResetAcousticModelAdaptation(ISpRecognizer2* This) {
10456    return This->lpVtbl->ResetAcousticModelAdaptation(This);
10457}
10458#endif
10459#endif
10460
10461#endif
10462
10463
10464#endif  /* __ISpRecognizer2_INTERFACE_DEFINED__ */
10465
10466/*****************************************************************************
10467 * ISpRecoCategory interface
10468 */
10469#ifndef __ISpRecoCategory_INTERFACE_DEFINED__
10470#define __ISpRecoCategory_INTERFACE_DEFINED__
10471
10472DEFINE_GUID(IID_ISpRecoCategory, 0xda0cd0f9, 0x14a2, 0x4f09, 0x8c,0x2a, 0x85,0xcc,0x48,0x97,0x93,0x45);
10473#if defined(__cplusplus) && !defined(CINTERFACE)
10474MIDL_INTERFACE("da0cd0f9-14a2-4f09-8c2a-85cc48979345")
10475ISpRecoCategory : public IUnknown
10476{
10477    virtual HRESULT STDMETHODCALLTYPE GetType(
10478        SPCATEGORYTYPE *peCategoryType) = 0;
10479
10480};
10481#ifdef __CRT_UUID_DECL
10482__CRT_UUID_DECL(ISpRecoCategory, 0xda0cd0f9, 0x14a2, 0x4f09, 0x8c,0x2a, 0x85,0xcc,0x48,0x97,0x93,0x45)
10483#endif
10484#else
10485typedef struct ISpRecoCategoryVtbl {
10486    BEGIN_INTERFACE
10487
10488    /*** IUnknown methods ***/
10489    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10490        ISpRecoCategory *This,
10491        REFIID riid,
10492        void **ppvObject);
10493
10494    ULONG (STDMETHODCALLTYPE *AddRef)(
10495        ISpRecoCategory *This);
10496
10497    ULONG (STDMETHODCALLTYPE *Release)(
10498        ISpRecoCategory *This);
10499
10500    /*** ISpRecoCategory methods ***/
10501    HRESULT (STDMETHODCALLTYPE *GetType)(
10502        ISpRecoCategory *This,
10503        SPCATEGORYTYPE *peCategoryType);
10504
10505    END_INTERFACE
10506} ISpRecoCategoryVtbl;
10507
10508interface ISpRecoCategory {
10509    CONST_VTBL ISpRecoCategoryVtbl* lpVtbl;
10510};
10511
10512#ifdef COBJMACROS
10513#ifndef WIDL_C_INLINE_WRAPPERS
10514/*** IUnknown methods ***/
10515#define ISpRecoCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10516#define ISpRecoCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
10517#define ISpRecoCategory_Release(This) (This)->lpVtbl->Release(This)
10518/*** ISpRecoCategory methods ***/
10519#define ISpRecoCategory_GetType(This,peCategoryType) (This)->lpVtbl->GetType(This,peCategoryType)
10520#else
10521/*** IUnknown methods ***/
10522static inline HRESULT ISpRecoCategory_QueryInterface(ISpRecoCategory* This,REFIID riid,void **ppvObject) {
10523    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10524}
10525static inline ULONG ISpRecoCategory_AddRef(ISpRecoCategory* This) {
10526    return This->lpVtbl->AddRef(This);
10527}
10528static inline ULONG ISpRecoCategory_Release(ISpRecoCategory* This) {
10529    return This->lpVtbl->Release(This);
10530}
10531/*** ISpRecoCategory methods ***/
10532static inline HRESULT ISpRecoCategory_GetType(ISpRecoCategory* This,SPCATEGORYTYPE *peCategoryType) {
10533    return This->lpVtbl->GetType(This,peCategoryType);
10534}
10535#endif
10536#endif
10537
10538#endif
10539
10540
10541#endif  /* __ISpRecoCategory_INTERFACE_DEFINED__ */
10542
10543/*****************************************************************************
10544 * ISpRecognizer3 interface
10545 */
10546#ifndef __ISpRecognizer3_INTERFACE_DEFINED__
10547#define __ISpRecognizer3_INTERFACE_DEFINED__
10548
10549DEFINE_GUID(IID_ISpRecognizer3, 0xdf1b943c, 0x5838, 0x4aa2, 0x87,0x06, 0xd7,0xcd,0x5b,0x33,0x34,0x99);
10550#if defined(__cplusplus) && !defined(CINTERFACE)
10551MIDL_INTERFACE("df1b943c-5838-4aa2-8706-d7cd5b333499")
10552ISpRecognizer3 : public IUnknown
10553{
10554    virtual HRESULT STDMETHODCALLTYPE GetCategory(
10555        SPCATEGORYTYPE categoryType,
10556        ISpRecoCategory **ppCategory) = 0;
10557
10558    virtual HRESULT STDMETHODCALLTYPE SetActiveCategory(
10559        ISpRecoCategory *pCategory) = 0;
10560
10561    virtual HRESULT STDMETHODCALLTYPE GetActiveCategory(
10562        ISpRecoCategory **ppCategory) = 0;
10563
10564};
10565#ifdef __CRT_UUID_DECL
10566__CRT_UUID_DECL(ISpRecognizer3, 0xdf1b943c, 0x5838, 0x4aa2, 0x87,0x06, 0xd7,0xcd,0x5b,0x33,0x34,0x99)
10567#endif
10568#else
10569typedef struct ISpRecognizer3Vtbl {
10570    BEGIN_INTERFACE
10571
10572    /*** IUnknown methods ***/
10573    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10574        ISpRecognizer3 *This,
10575        REFIID riid,
10576        void **ppvObject);
10577
10578    ULONG (STDMETHODCALLTYPE *AddRef)(
10579        ISpRecognizer3 *This);
10580
10581    ULONG (STDMETHODCALLTYPE *Release)(
10582        ISpRecognizer3 *This);
10583
10584    /*** ISpRecognizer3 methods ***/
10585    HRESULT (STDMETHODCALLTYPE *GetCategory)(
10586        ISpRecognizer3 *This,
10587        SPCATEGORYTYPE categoryType,
10588        ISpRecoCategory **ppCategory);
10589
10590    HRESULT (STDMETHODCALLTYPE *SetActiveCategory)(
10591        ISpRecognizer3 *This,
10592        ISpRecoCategory *pCategory);
10593
10594    HRESULT (STDMETHODCALLTYPE *GetActiveCategory)(
10595        ISpRecognizer3 *This,
10596        ISpRecoCategory **ppCategory);
10597
10598    END_INTERFACE
10599} ISpRecognizer3Vtbl;
10600
10601interface ISpRecognizer3 {
10602    CONST_VTBL ISpRecognizer3Vtbl* lpVtbl;
10603};
10604
10605#ifdef COBJMACROS
10606#ifndef WIDL_C_INLINE_WRAPPERS
10607/*** IUnknown methods ***/
10608#define ISpRecognizer3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10609#define ISpRecognizer3_AddRef(This) (This)->lpVtbl->AddRef(This)
10610#define ISpRecognizer3_Release(This) (This)->lpVtbl->Release(This)
10611/*** ISpRecognizer3 methods ***/
10612#define ISpRecognizer3_GetCategory(This,categoryType,ppCategory) (This)->lpVtbl->GetCategory(This,categoryType,ppCategory)
10613#define ISpRecognizer3_SetActiveCategory(This,pCategory) (This)->lpVtbl->SetActiveCategory(This,pCategory)
10614#define ISpRecognizer3_GetActiveCategory(This,ppCategory) (This)->lpVtbl->GetActiveCategory(This,ppCategory)
10615#else
10616/*** IUnknown methods ***/
10617static inline HRESULT ISpRecognizer3_QueryInterface(ISpRecognizer3* This,REFIID riid,void **ppvObject) {
10618    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10619}
10620static inline ULONG ISpRecognizer3_AddRef(ISpRecognizer3* This) {
10621    return This->lpVtbl->AddRef(This);
10622}
10623static inline ULONG ISpRecognizer3_Release(ISpRecognizer3* This) {
10624    return This->lpVtbl->Release(This);
10625}
10626/*** ISpRecognizer3 methods ***/
10627static inline HRESULT ISpRecognizer3_GetCategory(ISpRecognizer3* This,SPCATEGORYTYPE categoryType,ISpRecoCategory **ppCategory) {
10628    return This->lpVtbl->GetCategory(This,categoryType,ppCategory);
10629}
10630static inline HRESULT ISpRecognizer3_SetActiveCategory(ISpRecognizer3* This,ISpRecoCategory *pCategory) {
10631    return This->lpVtbl->SetActiveCategory(This,pCategory);
10632}
10633static inline HRESULT ISpRecognizer3_GetActiveCategory(ISpRecognizer3* This,ISpRecoCategory **ppCategory) {
10634    return This->lpVtbl->GetActiveCategory(This,ppCategory);
10635}
10636#endif
10637#endif
10638
10639#endif
10640
10641
10642#endif  /* __ISpRecognizer3_INTERFACE_DEFINED__ */
10643
10644typedef struct SPNORMALIZATIONLIST {
10645    ULONG ulSize;
10646    WCHAR **ppszzNormalizedList;
10647} SPNORMALIZATIONLIST;
10648/*****************************************************************************
10649 * ISpEnginePronunciation interface
10650 */
10651#ifndef __ISpEnginePronunciation_INTERFACE_DEFINED__
10652#define __ISpEnginePronunciation_INTERFACE_DEFINED__
10653
10654DEFINE_GUID(IID_ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda);
10655#if defined(__cplusplus) && !defined(CINTERFACE)
10656MIDL_INTERFACE("c360ce4b-76d1-4214-ad68-52657d5083da")
10657ISpEnginePronunciation : public IUnknown
10658{
10659    virtual HRESULT STDMETHODCALLTYPE Normalize(
10660        LPCWSTR pszWord,
10661        LPCWSTR pszLeftContext,
10662        LPCWSTR pszRightContext,
10663        WORD LangID,
10664        SPNORMALIZATIONLIST *pNormalizationList) = 0;
10665
10666    virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
10667        LPCWSTR pszWord,
10668        LPCWSTR pszLeftContext,
10669        LPCWSTR pszRightContext,
10670        WORD LangID,
10671        SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) = 0;
10672
10673};
10674#ifdef __CRT_UUID_DECL
10675__CRT_UUID_DECL(ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda)
10676#endif
10677#else
10678typedef struct ISpEnginePronunciationVtbl {
10679    BEGIN_INTERFACE
10680
10681    /*** IUnknown methods ***/
10682    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10683        ISpEnginePronunciation *This,
10684        REFIID riid,
10685        void **ppvObject);
10686
10687    ULONG (STDMETHODCALLTYPE *AddRef)(
10688        ISpEnginePronunciation *This);
10689
10690    ULONG (STDMETHODCALLTYPE *Release)(
10691        ISpEnginePronunciation *This);
10692
10693    /*** ISpEnginePronunciation methods ***/
10694    HRESULT (STDMETHODCALLTYPE *Normalize)(
10695        ISpEnginePronunciation *This,
10696        LPCWSTR pszWord,
10697        LPCWSTR pszLeftContext,
10698        LPCWSTR pszRightContext,
10699        WORD LangID,
10700        SPNORMALIZATIONLIST *pNormalizationList);
10701
10702    HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
10703        ISpEnginePronunciation *This,
10704        LPCWSTR pszWord,
10705        LPCWSTR pszLeftContext,
10706        LPCWSTR pszRightContext,
10707        WORD LangID,
10708        SPWORDPRONUNCIATIONLIST *pEnginePronunciationList);
10709
10710    END_INTERFACE
10711} ISpEnginePronunciationVtbl;
10712
10713interface ISpEnginePronunciation {
10714    CONST_VTBL ISpEnginePronunciationVtbl* lpVtbl;
10715};
10716
10717#ifdef COBJMACROS
10718#ifndef WIDL_C_INLINE_WRAPPERS
10719/*** IUnknown methods ***/
10720#define ISpEnginePronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10721#define ISpEnginePronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
10722#define ISpEnginePronunciation_Release(This) (This)->lpVtbl->Release(This)
10723/*** ISpEnginePronunciation methods ***/
10724#define ISpEnginePronunciation_Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList) (This)->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList)
10725#define ISpEnginePronunciation_GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList)
10726#else
10727/*** IUnknown methods ***/
10728static inline HRESULT ISpEnginePronunciation_QueryInterface(ISpEnginePronunciation* This,REFIID riid,void **ppvObject) {
10729    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10730}
10731static inline ULONG ISpEnginePronunciation_AddRef(ISpEnginePronunciation* This) {
10732    return This->lpVtbl->AddRef(This);
10733}
10734static inline ULONG ISpEnginePronunciation_Release(ISpEnginePronunciation* This) {
10735    return This->lpVtbl->Release(This);
10736}
10737/*** ISpEnginePronunciation methods ***/
10738static inline HRESULT ISpEnginePronunciation_Normalize(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPNORMALIZATIONLIST *pNormalizationList) {
10739    return This->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList);
10740}
10741static inline HRESULT ISpEnginePronunciation_GetPronunciations(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) {
10742    return This->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList);
10743}
10744#endif
10745#endif
10746
10747#endif
10748
10749
10750#endif  /* __ISpEnginePronunciation_INTERFACE_DEFINED__ */
10751
10752typedef struct SPDISPLAYTOKEN {
10753    const WCHAR *pszLexical;
10754    const WCHAR *pszDisplay;
10755    BYTE bDisplayAttributes;
10756} SPDISPLAYTOKEN;
10757typedef struct SPDISPLAYPHRASE {
10758    ULONG ulNumTokens;
10759    SPDISPLAYTOKEN *pTokens;
10760} SPDISPLAYPHRASE;
10761/*****************************************************************************
10762 * ISpDisplayAlternates interface
10763 */
10764#ifndef __ISpDisplayAlternates_INTERFACE_DEFINED__
10765#define __ISpDisplayAlternates_INTERFACE_DEFINED__
10766
10767DEFINE_GUID(IID_ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e);
10768#if defined(__cplusplus) && !defined(CINTERFACE)
10769MIDL_INTERFACE("c8d7c7e2-0dde-44b7-afe3-b0c991fbeb5e")
10770ISpDisplayAlternates : public IUnknown
10771{
10772    virtual HRESULT STDMETHODCALLTYPE GetDisplayAlternates(
10773        const SPDISPLAYPHRASE *pPhrase,
10774        ULONG cRequestCount,
10775        SPDISPLAYPHRASE **ppCoMemPhrases,
10776        ULONG *pcPhrasesReturned) = 0;
10777
10778    virtual HRESULT STDMETHODCALLTYPE SetFullStopTrailSpace(
10779        ULONG ulTrailSpace) = 0;
10780
10781};
10782#ifdef __CRT_UUID_DECL
10783__CRT_UUID_DECL(ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e)
10784#endif
10785#else
10786typedef struct ISpDisplayAlternatesVtbl {
10787    BEGIN_INTERFACE
10788
10789    /*** IUnknown methods ***/
10790    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10791        ISpDisplayAlternates *This,
10792        REFIID riid,
10793        void **ppvObject);
10794
10795    ULONG (STDMETHODCALLTYPE *AddRef)(
10796        ISpDisplayAlternates *This);
10797
10798    ULONG (STDMETHODCALLTYPE *Release)(
10799        ISpDisplayAlternates *This);
10800
10801    /*** ISpDisplayAlternates methods ***/
10802    HRESULT (STDMETHODCALLTYPE *GetDisplayAlternates)(
10803        ISpDisplayAlternates *This,
10804        const SPDISPLAYPHRASE *pPhrase,
10805        ULONG cRequestCount,
10806        SPDISPLAYPHRASE **ppCoMemPhrases,
10807        ULONG *pcPhrasesReturned);
10808
10809    HRESULT (STDMETHODCALLTYPE *SetFullStopTrailSpace)(
10810        ISpDisplayAlternates *This,
10811        ULONG ulTrailSpace);
10812
10813    END_INTERFACE
10814} ISpDisplayAlternatesVtbl;
10815
10816interface ISpDisplayAlternates {
10817    CONST_VTBL ISpDisplayAlternatesVtbl* lpVtbl;
10818};
10819
10820#ifdef COBJMACROS
10821#ifndef WIDL_C_INLINE_WRAPPERS
10822/*** IUnknown methods ***/
10823#define ISpDisplayAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10824#define ISpDisplayAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
10825#define ISpDisplayAlternates_Release(This) (This)->lpVtbl->Release(This)
10826/*** ISpDisplayAlternates methods ***/
10827#define ISpDisplayAlternates_GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned) (This)->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned)
10828#define ISpDisplayAlternates_SetFullStopTrailSpace(This,ulTrailSpace) (This)->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace)
10829#else
10830/*** IUnknown methods ***/
10831static inline HRESULT ISpDisplayAlternates_QueryInterface(ISpDisplayAlternates* This,REFIID riid,void **ppvObject) {
10832    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10833}
10834static inline ULONG ISpDisplayAlternates_AddRef(ISpDisplayAlternates* This) {
10835    return This->lpVtbl->AddRef(This);
10836}
10837static inline ULONG ISpDisplayAlternates_Release(ISpDisplayAlternates* This) {
10838    return This->lpVtbl->Release(This);
10839}
10840/*** ISpDisplayAlternates methods ***/
10841static inline HRESULT ISpDisplayAlternates_GetDisplayAlternates(ISpDisplayAlternates* This,const SPDISPLAYPHRASE *pPhrase,ULONG cRequestCount,SPDISPLAYPHRASE **ppCoMemPhrases,ULONG *pcPhrasesReturned) {
10842    return This->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned);
10843}
10844static inline HRESULT ISpDisplayAlternates_SetFullStopTrailSpace(ISpDisplayAlternates* This,ULONG ulTrailSpace) {
10845    return This->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace);
10846}
10847#endif
10848#endif
10849
10850#endif
10851
10852
10853#endif  /* __ISpDisplayAlternates_INTERFACE_DEFINED__ */
10854
10855#ifndef __SpeechLib_LIBRARY_DEFINED__
10856#define __SpeechLib_LIBRARY_DEFINED__
10857
10858DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
10859
10860#ifndef __ISpeechDataKey_FWD_DEFINED__
10861#define __ISpeechDataKey_FWD_DEFINED__
10862typedef interface ISpeechDataKey ISpeechDataKey;
10863#ifdef __cplusplus
10864interface ISpeechDataKey;
10865#endif /* __cplusplus */
10866#endif
10867
10868#ifndef __ISpeechObjectToken_FWD_DEFINED__
10869#define __ISpeechObjectToken_FWD_DEFINED__
10870typedef interface ISpeechObjectToken ISpeechObjectToken;
10871#ifdef __cplusplus
10872interface ISpeechObjectToken;
10873#endif /* __cplusplus */
10874#endif
10875
10876#ifndef __ISpeechObjectTokens_FWD_DEFINED__
10877#define __ISpeechObjectTokens_FWD_DEFINED__
10878typedef interface ISpeechObjectTokens ISpeechObjectTokens;
10879#ifdef __cplusplus
10880interface ISpeechObjectTokens;
10881#endif /* __cplusplus */
10882#endif
10883
10884#ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
10885#define __ISpeechObjectTokenCategory_FWD_DEFINED__
10886typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
10887#ifdef __cplusplus
10888interface ISpeechObjectTokenCategory;
10889#endif /* __cplusplus */
10890#endif
10891
10892#ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
10893#define __ISpeechAudioBufferInfo_FWD_DEFINED__
10894typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
10895#ifdef __cplusplus
10896interface ISpeechAudioBufferInfo;
10897#endif /* __cplusplus */
10898#endif
10899
10900#ifndef __ISpeechAudioStatus_FWD_DEFINED__
10901#define __ISpeechAudioStatus_FWD_DEFINED__
10902typedef interface ISpeechAudioStatus ISpeechAudioStatus;
10903#ifdef __cplusplus
10904interface ISpeechAudioStatus;
10905#endif /* __cplusplus */
10906#endif
10907
10908#ifndef __ISpeechAudioFormat_FWD_DEFINED__
10909#define __ISpeechAudioFormat_FWD_DEFINED__
10910typedef interface ISpeechAudioFormat ISpeechAudioFormat;
10911#ifdef __cplusplus
10912interface ISpeechAudioFormat;
10913#endif /* __cplusplus */
10914#endif
10915
10916#ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
10917#define __ISpeechWaveFormatEx_FWD_DEFINED__
10918typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
10919#ifdef __cplusplus
10920interface ISpeechWaveFormatEx;
10921#endif /* __cplusplus */
10922#endif
10923
10924#ifndef __ISpeechBaseStream_FWD_DEFINED__
10925#define __ISpeechBaseStream_FWD_DEFINED__
10926typedef interface ISpeechBaseStream ISpeechBaseStream;
10927#ifdef __cplusplus
10928interface ISpeechBaseStream;
10929#endif /* __cplusplus */
10930#endif
10931
10932#ifndef __ISpeechFileStream_FWD_DEFINED__
10933#define __ISpeechFileStream_FWD_DEFINED__
10934typedef interface ISpeechFileStream ISpeechFileStream;
10935#ifdef __cplusplus
10936interface ISpeechFileStream;
10937#endif /* __cplusplus */
10938#endif
10939
10940#ifndef __ISpeechMemoryStream_FWD_DEFINED__
10941#define __ISpeechMemoryStream_FWD_DEFINED__
10942typedef interface ISpeechMemoryStream ISpeechMemoryStream;
10943#ifdef __cplusplus
10944interface ISpeechMemoryStream;
10945#endif /* __cplusplus */
10946#endif
10947
10948#ifndef __ISpeechCustomStream_FWD_DEFINED__
10949#define __ISpeechCustomStream_FWD_DEFINED__
10950typedef interface ISpeechCustomStream ISpeechCustomStream;
10951#ifdef __cplusplus
10952interface ISpeechCustomStream;
10953#endif /* __cplusplus */
10954#endif
10955
10956#ifndef __ISpeechAudio_FWD_DEFINED__
10957#define __ISpeechAudio_FWD_DEFINED__
10958typedef interface ISpeechAudio ISpeechAudio;
10959#ifdef __cplusplus
10960interface ISpeechAudio;
10961#endif /* __cplusplus */
10962#endif
10963
10964#ifndef __ISpeechMMSysAudio_FWD_DEFINED__
10965#define __ISpeechMMSysAudio_FWD_DEFINED__
10966typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
10967#ifdef __cplusplus
10968interface ISpeechMMSysAudio;
10969#endif /* __cplusplus */
10970#endif
10971
10972#ifndef __ISpeechVoice_FWD_DEFINED__
10973#define __ISpeechVoice_FWD_DEFINED__
10974typedef interface ISpeechVoice ISpeechVoice;
10975#ifdef __cplusplus
10976interface ISpeechVoice;
10977#endif /* __cplusplus */
10978#endif
10979
10980#ifndef __ISpeechVoiceStatus_FWD_DEFINED__
10981#define __ISpeechVoiceStatus_FWD_DEFINED__
10982typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
10983#ifdef __cplusplus
10984interface ISpeechVoiceStatus;
10985#endif /* __cplusplus */
10986#endif
10987
10988#ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
10989#define ___ISpeechVoiceEvents_FWD_DEFINED__
10990typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
10991#ifdef __cplusplus
10992interface _ISpeechVoiceEvents;
10993#endif /* __cplusplus */
10994#endif
10995
10996#ifndef __ISpeechRecognizer_FWD_DEFINED__
10997#define __ISpeechRecognizer_FWD_DEFINED__
10998typedef interface ISpeechRecognizer ISpeechRecognizer;
10999#ifdef __cplusplus
11000interface ISpeechRecognizer;
11001#endif /* __cplusplus */
11002#endif
11003
11004#ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
11005#define __ISpeechRecognizerStatus_FWD_DEFINED__
11006typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
11007#ifdef __cplusplus
11008interface ISpeechRecognizerStatus;
11009#endif /* __cplusplus */
11010#endif
11011
11012#ifndef __ISpeechRecoContext_FWD_DEFINED__
11013#define __ISpeechRecoContext_FWD_DEFINED__
11014typedef interface ISpeechRecoContext ISpeechRecoContext;
11015#ifdef __cplusplus
11016interface ISpeechRecoContext;
11017#endif /* __cplusplus */
11018#endif
11019
11020#ifndef __ISpeechRecoGrammar_FWD_DEFINED__
11021#define __ISpeechRecoGrammar_FWD_DEFINED__
11022typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
11023#ifdef __cplusplus
11024interface ISpeechRecoGrammar;
11025#endif /* __cplusplus */
11026#endif
11027
11028#ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
11029#define ___ISpeechRecoContextEvents_FWD_DEFINED__
11030typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
11031#ifdef __cplusplus
11032interface _ISpeechRecoContextEvents;
11033#endif /* __cplusplus */
11034#endif
11035
11036#ifndef __ISpeechGrammarRule_FWD_DEFINED__
11037#define __ISpeechGrammarRule_FWD_DEFINED__
11038typedef interface ISpeechGrammarRule ISpeechGrammarRule;
11039#ifdef __cplusplus
11040interface ISpeechGrammarRule;
11041#endif /* __cplusplus */
11042#endif
11043
11044#ifndef __ISpeechGrammarRules_FWD_DEFINED__
11045#define __ISpeechGrammarRules_FWD_DEFINED__
11046typedef interface ISpeechGrammarRules ISpeechGrammarRules;
11047#ifdef __cplusplus
11048interface ISpeechGrammarRules;
11049#endif /* __cplusplus */
11050#endif
11051
11052#ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
11053#define __ISpeechGrammarRuleState_FWD_DEFINED__
11054typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
11055#ifdef __cplusplus
11056interface ISpeechGrammarRuleState;
11057#endif /* __cplusplus */
11058#endif
11059
11060#ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
11061#define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
11062typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
11063#ifdef __cplusplus
11064interface ISpeechGrammarRuleStateTransition;
11065#endif /* __cplusplus */
11066#endif
11067
11068#ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
11069#define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
11070typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
11071#ifdef __cplusplus
11072interface ISpeechGrammarRuleStateTransitions;
11073#endif /* __cplusplus */
11074#endif
11075
11076#ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
11077#define __ISpeechTextSelectionInformation_FWD_DEFINED__
11078typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
11079#ifdef __cplusplus
11080interface ISpeechTextSelectionInformation;
11081#endif /* __cplusplus */
11082#endif
11083
11084#ifndef __ISpeechRecoResult_FWD_DEFINED__
11085#define __ISpeechRecoResult_FWD_DEFINED__
11086typedef interface ISpeechRecoResult ISpeechRecoResult;
11087#ifdef __cplusplus
11088interface ISpeechRecoResult;
11089#endif /* __cplusplus */
11090#endif
11091
11092#ifndef __ISpeechRecoResult2_FWD_DEFINED__
11093#define __ISpeechRecoResult2_FWD_DEFINED__
11094typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
11095#ifdef __cplusplus
11096interface ISpeechRecoResult2;
11097#endif /* __cplusplus */
11098#endif
11099
11100#ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
11101#define __ISpeechRecoResultTimes_FWD_DEFINED__
11102typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
11103#ifdef __cplusplus
11104interface ISpeechRecoResultTimes;
11105#endif /* __cplusplus */
11106#endif
11107
11108#ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
11109#define __ISpeechPhraseAlternate_FWD_DEFINED__
11110typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
11111#ifdef __cplusplus
11112interface ISpeechPhraseAlternate;
11113#endif /* __cplusplus */
11114#endif
11115
11116#ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
11117#define __ISpeechPhraseAlternates_FWD_DEFINED__
11118typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
11119#ifdef __cplusplus
11120interface ISpeechPhraseAlternates;
11121#endif /* __cplusplus */
11122#endif
11123
11124#ifndef __ISpeechPhraseInfo_FWD_DEFINED__
11125#define __ISpeechPhraseInfo_FWD_DEFINED__
11126typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
11127#ifdef __cplusplus
11128interface ISpeechPhraseInfo;
11129#endif /* __cplusplus */
11130#endif
11131
11132#ifndef __ISpeechPhraseElement_FWD_DEFINED__
11133#define __ISpeechPhraseElement_FWD_DEFINED__
11134typedef interface ISpeechPhraseElement ISpeechPhraseElement;
11135#ifdef __cplusplus
11136interface ISpeechPhraseElement;
11137#endif /* __cplusplus */
11138#endif
11139
11140#ifndef __ISpeechPhraseElements_FWD_DEFINED__
11141#define __ISpeechPhraseElements_FWD_DEFINED__
11142typedef interface ISpeechPhraseElements ISpeechPhraseElements;
11143#ifdef __cplusplus
11144interface ISpeechPhraseElements;
11145#endif /* __cplusplus */
11146#endif
11147
11148#ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
11149#define __ISpeechPhraseReplacement_FWD_DEFINED__
11150typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
11151#ifdef __cplusplus
11152interface ISpeechPhraseReplacement;
11153#endif /* __cplusplus */
11154#endif
11155
11156#ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
11157#define __ISpeechPhraseReplacements_FWD_DEFINED__
11158typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
11159#ifdef __cplusplus
11160interface ISpeechPhraseReplacements;
11161#endif /* __cplusplus */
11162#endif
11163
11164#ifndef __ISpeechPhraseProperty_FWD_DEFINED__
11165#define __ISpeechPhraseProperty_FWD_DEFINED__
11166typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
11167#ifdef __cplusplus
11168interface ISpeechPhraseProperty;
11169#endif /* __cplusplus */
11170#endif
11171
11172#ifndef __ISpeechPhraseProperties_FWD_DEFINED__
11173#define __ISpeechPhraseProperties_FWD_DEFINED__
11174typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
11175#ifdef __cplusplus
11176interface ISpeechPhraseProperties;
11177#endif /* __cplusplus */
11178#endif
11179
11180#ifndef __ISpeechPhraseRule_FWD_DEFINED__
11181#define __ISpeechPhraseRule_FWD_DEFINED__
11182typedef interface ISpeechPhraseRule ISpeechPhraseRule;
11183#ifdef __cplusplus
11184interface ISpeechPhraseRule;
11185#endif /* __cplusplus */
11186#endif
11187
11188#ifndef __ISpeechPhraseRules_FWD_DEFINED__
11189#define __ISpeechPhraseRules_FWD_DEFINED__
11190typedef interface ISpeechPhraseRules ISpeechPhraseRules;
11191#ifdef __cplusplus
11192interface ISpeechPhraseRules;
11193#endif /* __cplusplus */
11194#endif
11195
11196#ifndef __ISpeechLexicon_FWD_DEFINED__
11197#define __ISpeechLexicon_FWD_DEFINED__
11198typedef interface ISpeechLexicon ISpeechLexicon;
11199#ifdef __cplusplus
11200interface ISpeechLexicon;
11201#endif /* __cplusplus */
11202#endif
11203
11204#ifndef __ISpeechLexiconWords_FWD_DEFINED__
11205#define __ISpeechLexiconWords_FWD_DEFINED__
11206typedef interface ISpeechLexiconWords ISpeechLexiconWords;
11207#ifdef __cplusplus
11208interface ISpeechLexiconWords;
11209#endif /* __cplusplus */
11210#endif
11211
11212#ifndef __ISpeechLexiconWord_FWD_DEFINED__
11213#define __ISpeechLexiconWord_FWD_DEFINED__
11214typedef interface ISpeechLexiconWord ISpeechLexiconWord;
11215#ifdef __cplusplus
11216interface ISpeechLexiconWord;
11217#endif /* __cplusplus */
11218#endif
11219
11220#ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
11221#define __ISpeechLexiconPronunciations_FWD_DEFINED__
11222typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
11223#ifdef __cplusplus
11224interface ISpeechLexiconPronunciations;
11225#endif /* __cplusplus */
11226#endif
11227
11228#ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
11229#define __ISpeechLexiconPronunciation_FWD_DEFINED__
11230typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
11231#ifdef __cplusplus
11232interface ISpeechLexiconPronunciation;
11233#endif /* __cplusplus */
11234#endif
11235
11236typedef LONG SpeechLanguageId;
11237#define __SpeechStringConstants_MODULE_DEFINED__
11238#ifndef __SpeechStringConstants_MODULE_DEFINED__
11239#define __SpeechStringConstants_MODULE_DEFINED__
11240#define SpeechRegistryUserRoot (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech")
11241
11242#define SpeechRegistryLocalMachineRoot (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech")
11243
11244#define SpeechCategoryAudioOut (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioOutput")
11245
11246#define SpeechCategoryAudioIn (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioInput")
11247
11248#define SpeechCategoryVoices (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices")
11249
11250#define SpeechCategoryRecognizers (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Recognizers")
11251
11252#define SpeechCategoryAppLexicons (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AppLexicons")
11253
11254#define SpeechCategoryPhoneConverters (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\PhoneConverters")
11255
11256#define SpeechCategoryRecoProfiles (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\RecoProfiles")
11257
11258#define SpeechTokenIdUserLexicon (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\CurrentUserLexicon")
11259
11260#define SpeechTokenValueCLSID (L"CLSID")
11261
11262#define SpeechTokenKeyFiles (L"Files")
11263
11264#define SpeechTokenKeyUI (L"UI")
11265
11266#define SpeechTokenKeyAttributes (L"Attributes")
11267
11268#define SpeechVoiceCategoryTTSRate (L"DefaultTTSRate")
11269
11270#define SpeechPropertyResourceUsage (L"ResourceUsage")
11271
11272#define SpeechPropertyHighConfidenceThreshold (L"HighConfidenceThreshold")
11273
11274#define SpeechPropertyNormalConfidenceThreshold (L"NormalConfidenceThreshold")
11275
11276#define SpeechPropertyLowConfidenceThreshold (L"LowConfidenceThreshold")
11277
11278#define SpeechPropertyResponseSpeed (L"ResponseSpeed")
11279
11280#define SpeechPropertyComplexResponseSpeed (L"ComplexResponseSpeed")
11281
11282#define SpeechPropertyAdaptationOn (L"AdaptationOn")
11283
11284#define SpeechDictationTopicSpelling (L"Spelling")
11285
11286#define SpeechGrammarTagWildcard (L"...")
11287
11288#define SpeechGrammarTagDictation (L"*")
11289
11290#define SpeechGrammarTagUnlimitedDictation (L"*+")
11291
11292#define SpeechEngineProperties (L"EngineProperties")
11293
11294#define SpeechAddRemoveWord (L"AddRemoveWord")
11295
11296#define SpeechUserTraining (L"UserTraining")
11297
11298#define SpeechMicTraining (L"MicTraining")
11299
11300#define SpeechRecoProfileProperties (L"RecoProfileProperties")
11301
11302#define SpeechAudioProperties (L"AudioProperties")
11303
11304#define SpeechAudioVolume (L"AudioVolume")
11305
11306#define SpeechVoiceSkipTypeSentence (L"Sentence")
11307
11308#define SpeechAudioFormatGUIDWave (L"{C31ADBAE-527F-4ff5-A230-F62BB61FF70C}")
11309
11310#define SpeechAudioFormatGUIDText (L"{7CEEF9F9-3D13-11d2-9EE7-00C04F797396}")
11311
11312#endif /* __SpeechStringConstants_MODULE_DEFINED__ */
11313#ifndef __SpeechConstants_MODULE_DEFINED__
11314#define __SpeechConstants_MODULE_DEFINED__
11315#define Speech_Default_Weight (DEFAULT_WEIGHT)
11316
11317#define Speech_Max_Word_Length (SP_MAX_WORD_LENGTH)
11318
11319#define Speech_Max_Pron_Length (SP_MAX_PRON_LENGTH)
11320
11321#define Speech_StreamPos_Asap (SP_STREAMPOS_ASAP)
11322
11323#define Speech_StreamPos_RealTime (SP_STREAMPOS_REALTIME)
11324
11325#define SpeechAllElements (SPPR_ALL_ELEMENTS)
11326
11327#endif /* __SpeechConstants_MODULE_DEFINED__ */
11328typedef enum DISPID_SpeechDataKey {
11329    DISPID_SDKSetBinaryValue = 1,
11330    DISPID_SDKGetBinaryValue = 2,
11331    DISPID_SDKSetStringValue = 3,
11332    DISPID_SDKGetStringValue = 4,
11333    DISPID_SDKSetLongValue = 5,
11334    DISPID_SDKGetlongValue = 6,
11335    DISPID_SDKOpenKey = 7,
11336    DISPID_SDKCreateKey = 8,
11337    DISPID_SDKDeleteKey = 9,
11338    DISPID_SDKDeleteValue = 10,
11339    DISPID_SDKEnumKeys = 11,
11340    DISPID_SDKEnumValues = 12
11341} DISPID_SpeechDataKey;
11342typedef enum DISPID_SpeechObjectToken {
11343    DISPID_SOTId = 1,
11344    DISPID_SOTDataKey = 2,
11345    DISPID_SOTCategory = 3,
11346    DISPID_SOTGetDescription = 4,
11347    DISPID_SOTSetId = 5,
11348    DISPID_SOTGetAttribute = 6,
11349    DISPID_SOTCreateInstance = 7,
11350    DISPID_SOTRemove = 8,
11351    DISPID_SOTGetStorageFileName = 9,
11352    DISPID_SOTRemoveStorageFileName = 10,
11353    DISPID_SOTIsUISupported = 11,
11354    DISPID_SOTDisplayUI = 12,
11355    DISPID_SOTMatchesAttributes = 13
11356} DISPID_SpeechObjectToken;
11357typedef enum SpeechDataKeyLocation {
11358    SDKLDefaultLocation = SPDKL_DefaultLocation,
11359    SDKLCurrentUser = SPDKL_CurrentUser,
11360    SDKLLocalMachine = SPDKL_LocalMachine,
11361    SDKLCurrentConfig = SPDKL_CurrentConfig
11362} SpeechDataKeyLocation;
11363typedef enum SpeechTokenContext {
11364    STCInprocServer = CLSCTX_INPROC_SERVER,
11365    STCInprocHandler = CLSCTX_INPROC_HANDLER,
11366    STCLocalServer = CLSCTX_LOCAL_SERVER,
11367    STCRemoteServer = CLSCTX_REMOTE_SERVER,
11368    STCAll = ((CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER) | CLSCTX_LOCAL_SERVER) | CLSCTX_REMOTE_SERVER
11369} SpeechTokenContext;
11370typedef enum SpeechTokenShellFolder {
11371    STSF_AppData = 0x1a,
11372    STSF_LocalAppData = 0x1c,
11373    STSF_CommonAppData = 0x23,
11374    STSF_FlagCreate = 0x8000
11375} SpeechTokenShellFolder;
11376typedef enum DISPID_SpeechObjectTokens {
11377    DISPID_SOTsCount = 1,
11378    DISPID_SOTsItem = DISPID_VALUE,
11379    DISPID_SOTs_NewEnum = DISPID_NEWENUM
11380} DISPID_SpeechObjectTokens;
11381typedef enum DISPID_SpeechObjectTokenCategory {
11382    DISPID_SOTCId = 1,
11383    DISPID_SOTCDefault = 2,
11384    DISPID_SOTCSetId = 3,
11385    DISPID_SOTCGetDataKey = 4,
11386    DISPID_SOTCEnumerateTokens = 5
11387} DISPID_SpeechObjectTokenCategory;
11388/*****************************************************************************
11389 * ISpeechDataKey interface
11390 */
11391#ifndef __ISpeechDataKey_INTERFACE_DEFINED__
11392#define __ISpeechDataKey_INTERFACE_DEFINED__
11393
11394DEFINE_GUID(IID_ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd);
11395#if defined(__cplusplus) && !defined(CINTERFACE)
11396MIDL_INTERFACE("ce17c09b-4efa-44d5-a4c9-59d9585ab0cd")
11397ISpeechDataKey : public IDispatch
11398{
11399    virtual HRESULT STDMETHODCALLTYPE SetBinaryValue(
11400        const BSTR ValueName,
11401        VARIANT Value) = 0;
11402
11403    virtual HRESULT STDMETHODCALLTYPE GetBinaryValue(
11404        const BSTR ValueName,
11405        VARIANT *Value) = 0;
11406
11407    virtual HRESULT STDMETHODCALLTYPE SetStringValue(
11408        const BSTR ValueName,
11409        const BSTR Value) = 0;
11410
11411    virtual HRESULT STDMETHODCALLTYPE GetStringValue(
11412        const BSTR ValueName,
11413        BSTR *Value) = 0;
11414
11415    virtual HRESULT STDMETHODCALLTYPE SetLongValue(
11416        const BSTR ValueName,
11417        LONG Value) = 0;
11418
11419    virtual HRESULT STDMETHODCALLTYPE GetLongValue(
11420        const BSTR ValueName,
11421        LONG *Value) = 0;
11422
11423    virtual HRESULT STDMETHODCALLTYPE OpenKey(
11424        const BSTR SubKeyName,
11425        ISpeechDataKey **SubKey) = 0;
11426
11427    virtual HRESULT STDMETHODCALLTYPE CreateKey(
11428        const BSTR SubKeyName,
11429        ISpeechDataKey **SubKey) = 0;
11430
11431    virtual HRESULT STDMETHODCALLTYPE DeleteKey(
11432        const BSTR SubKeyName) = 0;
11433
11434    virtual HRESULT STDMETHODCALLTYPE DeleteValue(
11435        const BSTR ValueName) = 0;
11436
11437    virtual HRESULT STDMETHODCALLTYPE EnumKeys(
11438        LONG Index,
11439        BSTR *SubKeyName) = 0;
11440
11441    virtual HRESULT STDMETHODCALLTYPE EnumValues(
11442        LONG Index,
11443        BSTR *ValueName) = 0;
11444
11445};
11446#ifdef __CRT_UUID_DECL
11447__CRT_UUID_DECL(ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd)
11448#endif
11449#else
11450typedef struct ISpeechDataKeyVtbl {
11451    BEGIN_INTERFACE
11452
11453    /*** IUnknown methods ***/
11454    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11455        ISpeechDataKey *This,
11456        REFIID riid,
11457        void **ppvObject);
11458
11459    ULONG (STDMETHODCALLTYPE *AddRef)(
11460        ISpeechDataKey *This);
11461
11462    ULONG (STDMETHODCALLTYPE *Release)(
11463        ISpeechDataKey *This);
11464
11465    /*** IDispatch methods ***/
11466    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11467        ISpeechDataKey *This,
11468        UINT *pctinfo);
11469
11470    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11471        ISpeechDataKey *This,
11472        UINT iTInfo,
11473        LCID lcid,
11474        ITypeInfo **ppTInfo);
11475
11476    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11477        ISpeechDataKey *This,
11478        REFIID riid,
11479        LPOLESTR *rgszNames,
11480        UINT cNames,
11481        LCID lcid,
11482        DISPID *rgDispId);
11483
11484    HRESULT (STDMETHODCALLTYPE *Invoke)(
11485        ISpeechDataKey *This,
11486        DISPID dispIdMember,
11487        REFIID riid,
11488        LCID lcid,
11489        WORD wFlags,
11490        DISPPARAMS *pDispParams,
11491        VARIANT *pVarResult,
11492        EXCEPINFO *pExcepInfo,
11493        UINT *puArgErr);
11494
11495    /*** ISpeechDataKey methods ***/
11496    HRESULT (STDMETHODCALLTYPE *SetBinaryValue)(
11497        ISpeechDataKey *This,
11498        const BSTR ValueName,
11499        VARIANT Value);
11500
11501    HRESULT (STDMETHODCALLTYPE *GetBinaryValue)(
11502        ISpeechDataKey *This,
11503        const BSTR ValueName,
11504        VARIANT *Value);
11505
11506    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
11507        ISpeechDataKey *This,
11508        const BSTR ValueName,
11509        const BSTR Value);
11510
11511    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
11512        ISpeechDataKey *This,
11513        const BSTR ValueName,
11514        BSTR *Value);
11515
11516    HRESULT (STDMETHODCALLTYPE *SetLongValue)(
11517        ISpeechDataKey *This,
11518        const BSTR ValueName,
11519        LONG Value);
11520
11521    HRESULT (STDMETHODCALLTYPE *GetLongValue)(
11522        ISpeechDataKey *This,
11523        const BSTR ValueName,
11524        LONG *Value);
11525
11526    HRESULT (STDMETHODCALLTYPE *OpenKey)(
11527        ISpeechDataKey *This,
11528        const BSTR SubKeyName,
11529        ISpeechDataKey **SubKey);
11530
11531    HRESULT (STDMETHODCALLTYPE *CreateKey)(
11532        ISpeechDataKey *This,
11533        const BSTR SubKeyName,
11534        ISpeechDataKey **SubKey);
11535
11536    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
11537        ISpeechDataKey *This,
11538        const BSTR SubKeyName);
11539
11540    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
11541        ISpeechDataKey *This,
11542        const BSTR ValueName);
11543
11544    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
11545        ISpeechDataKey *This,
11546        LONG Index,
11547        BSTR *SubKeyName);
11548
11549    HRESULT (STDMETHODCALLTYPE *EnumValues)(
11550        ISpeechDataKey *This,
11551        LONG Index,
11552        BSTR *ValueName);
11553
11554    END_INTERFACE
11555} ISpeechDataKeyVtbl;
11556
11557interface ISpeechDataKey {
11558    CONST_VTBL ISpeechDataKeyVtbl* lpVtbl;
11559};
11560
11561#ifdef COBJMACROS
11562#ifndef WIDL_C_INLINE_WRAPPERS
11563/*** IUnknown methods ***/
11564#define ISpeechDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11565#define ISpeechDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
11566#define ISpeechDataKey_Release(This) (This)->lpVtbl->Release(This)
11567/*** IDispatch methods ***/
11568#define ISpeechDataKey_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11569#define ISpeechDataKey_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11570#define ISpeechDataKey_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11571#define ISpeechDataKey_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11572/*** ISpeechDataKey methods ***/
11573#define ISpeechDataKey_SetBinaryValue(This,ValueName,Value) (This)->lpVtbl->SetBinaryValue(This,ValueName,Value)
11574#define ISpeechDataKey_GetBinaryValue(This,ValueName,Value) (This)->lpVtbl->GetBinaryValue(This,ValueName,Value)
11575#define ISpeechDataKey_SetStringValue(This,ValueName,Value) (This)->lpVtbl->SetStringValue(This,ValueName,Value)
11576#define ISpeechDataKey_GetStringValue(This,ValueName,Value) (This)->lpVtbl->GetStringValue(This,ValueName,Value)
11577#define ISpeechDataKey_SetLongValue(This,ValueName,Value) (This)->lpVtbl->SetLongValue(This,ValueName,Value)
11578#define ISpeechDataKey_GetLongValue(This,ValueName,Value) (This)->lpVtbl->GetLongValue(This,ValueName,Value)
11579#define ISpeechDataKey_OpenKey(This,SubKeyName,SubKey) (This)->lpVtbl->OpenKey(This,SubKeyName,SubKey)
11580#define ISpeechDataKey_CreateKey(This,SubKeyName,SubKey) (This)->lpVtbl->CreateKey(This,SubKeyName,SubKey)
11581#define ISpeechDataKey_DeleteKey(This,SubKeyName) (This)->lpVtbl->DeleteKey(This,SubKeyName)
11582#define ISpeechDataKey_DeleteValue(This,ValueName) (This)->lpVtbl->DeleteValue(This,ValueName)
11583#define ISpeechDataKey_EnumKeys(This,Index,SubKeyName) (This)->lpVtbl->EnumKeys(This,Index,SubKeyName)
11584#define ISpeechDataKey_EnumValues(This,Index,ValueName) (This)->lpVtbl->EnumValues(This,Index,ValueName)
11585#else
11586/*** IUnknown methods ***/
11587static inline HRESULT ISpeechDataKey_QueryInterface(ISpeechDataKey* This,REFIID riid,void **ppvObject) {
11588    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11589}
11590static inline ULONG ISpeechDataKey_AddRef(ISpeechDataKey* This) {
11591    return This->lpVtbl->AddRef(This);
11592}
11593static inline ULONG ISpeechDataKey_Release(ISpeechDataKey* This) {
11594    return This->lpVtbl->Release(This);
11595}
11596/*** IDispatch methods ***/
11597static inline HRESULT ISpeechDataKey_GetTypeInfoCount(ISpeechDataKey* This,UINT *pctinfo) {
11598    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11599}
11600static inline HRESULT ISpeechDataKey_GetTypeInfo(ISpeechDataKey* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11601    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11602}
11603static inline HRESULT ISpeechDataKey_GetIDsOfNames(ISpeechDataKey* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11604    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11605}
11606static inline HRESULT ISpeechDataKey_Invoke(ISpeechDataKey* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11607    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11608}
11609/*** ISpeechDataKey methods ***/
11610static inline HRESULT ISpeechDataKey_SetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT Value) {
11611    return This->lpVtbl->SetBinaryValue(This,ValueName,Value);
11612}
11613static inline HRESULT ISpeechDataKey_GetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT *Value) {
11614    return This->lpVtbl->GetBinaryValue(This,ValueName,Value);
11615}
11616static inline HRESULT ISpeechDataKey_SetStringValue(ISpeechDataKey* This,const BSTR ValueName,const BSTR Value) {
11617    return This->lpVtbl->SetStringValue(This,ValueName,Value);
11618}
11619static inline HRESULT ISpeechDataKey_GetStringValue(ISpeechDataKey* This,const BSTR ValueName,BSTR *Value) {
11620    return This->lpVtbl->GetStringValue(This,ValueName,Value);
11621}
11622static inline HRESULT ISpeechDataKey_SetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG Value) {
11623    return This->lpVtbl->SetLongValue(This,ValueName,Value);
11624}
11625static inline HRESULT ISpeechDataKey_GetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG *Value) {
11626    return This->lpVtbl->GetLongValue(This,ValueName,Value);
11627}
11628static inline HRESULT ISpeechDataKey_OpenKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
11629    return This->lpVtbl->OpenKey(This,SubKeyName,SubKey);
11630}
11631static inline HRESULT ISpeechDataKey_CreateKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
11632    return This->lpVtbl->CreateKey(This,SubKeyName,SubKey);
11633}
11634static inline HRESULT ISpeechDataKey_DeleteKey(ISpeechDataKey* This,const BSTR SubKeyName) {
11635    return This->lpVtbl->DeleteKey(This,SubKeyName);
11636}
11637static inline HRESULT ISpeechDataKey_DeleteValue(ISpeechDataKey* This,const BSTR ValueName) {
11638    return This->lpVtbl->DeleteValue(This,ValueName);
11639}
11640static inline HRESULT ISpeechDataKey_EnumKeys(ISpeechDataKey* This,LONG Index,BSTR *SubKeyName) {
11641    return This->lpVtbl->EnumKeys(This,Index,SubKeyName);
11642}
11643static inline HRESULT ISpeechDataKey_EnumValues(ISpeechDataKey* This,LONG Index,BSTR *ValueName) {
11644    return This->lpVtbl->EnumValues(This,Index,ValueName);
11645}
11646#endif
11647#endif
11648
11649#endif
11650
11651
11652#endif  /* __ISpeechDataKey_INTERFACE_DEFINED__ */
11653
11654/*****************************************************************************
11655 * ISpeechObjectToken interface
11656 */
11657#ifndef __ISpeechObjectToken_INTERFACE_DEFINED__
11658#define __ISpeechObjectToken_INTERFACE_DEFINED__
11659
11660DEFINE_GUID(IID_ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c);
11661#if defined(__cplusplus) && !defined(CINTERFACE)
11662MIDL_INTERFACE("c74a3adc-b727-4500-a84a-b526721c8b8c")
11663ISpeechObjectToken : public IDispatch
11664{
11665    virtual HRESULT STDMETHODCALLTYPE get_Id(
11666        BSTR *ObjectId) = 0;
11667
11668    virtual HRESULT STDMETHODCALLTYPE get_DataKey(
11669        ISpeechDataKey **DataKey) = 0;
11670
11671    virtual HRESULT STDMETHODCALLTYPE get_Category(
11672        ISpeechObjectTokenCategory **Category) = 0;
11673
11674    virtual HRESULT STDMETHODCALLTYPE GetDescription(
11675        LONG Locale,
11676        BSTR *Description) = 0;
11677
11678    virtual HRESULT STDMETHODCALLTYPE SetId(
11679        BSTR Id,
11680        BSTR CategoryID = L"",
11681        VARIANT_BOOL CreateIfNotExist = 0) = 0;
11682
11683    virtual HRESULT STDMETHODCALLTYPE GetAttribute(
11684        BSTR AttributeName,
11685        BSTR *AttributeValue) = 0;
11686
11687    virtual HRESULT STDMETHODCALLTYPE CreateInstance(
11688        IUnknown *pUnkOuter,
11689        SpeechTokenContext ClsContext,
11690        IUnknown **Object) = 0;
11691
11692    virtual HRESULT STDMETHODCALLTYPE Remove(
11693        BSTR ObjectStorageCLSID) = 0;
11694
11695    virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
11696        BSTR ObjectStorageCLSID,
11697        BSTR KeyName,
11698        BSTR FileName,
11699        SpeechTokenShellFolder Folder,
11700        BSTR *FilePath) = 0;
11701
11702    virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
11703        BSTR ObjectStorageCLSID,
11704        BSTR KeyName,
11705        VARIANT_BOOL DeleteFile) = 0;
11706
11707    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
11708        const BSTR TypeOfUI,
11709        const VARIANT *ExtraData,
11710        IUnknown *Object,
11711        VARIANT_BOOL *Supported) = 0;
11712
11713    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
11714        LONG hWnd,
11715        BSTR Title,
11716        const BSTR TypeOfUI,
11717        const VARIANT *ExtraData = 0,
11718        IUnknown *Object = 0) = 0;
11719
11720    virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
11721        BSTR Attributes,
11722        VARIANT_BOOL *Matches) = 0;
11723
11724};
11725#ifdef __CRT_UUID_DECL
11726__CRT_UUID_DECL(ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c)
11727#endif
11728#else
11729typedef struct ISpeechObjectTokenVtbl {
11730    BEGIN_INTERFACE
11731
11732    /*** IUnknown methods ***/
11733    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11734        ISpeechObjectToken *This,
11735        REFIID riid,
11736        void **ppvObject);
11737
11738    ULONG (STDMETHODCALLTYPE *AddRef)(
11739        ISpeechObjectToken *This);
11740
11741    ULONG (STDMETHODCALLTYPE *Release)(
11742        ISpeechObjectToken *This);
11743
11744    /*** IDispatch methods ***/
11745    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11746        ISpeechObjectToken *This,
11747        UINT *pctinfo);
11748
11749    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11750        ISpeechObjectToken *This,
11751        UINT iTInfo,
11752        LCID lcid,
11753        ITypeInfo **ppTInfo);
11754
11755    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11756        ISpeechObjectToken *This,
11757        REFIID riid,
11758        LPOLESTR *rgszNames,
11759        UINT cNames,
11760        LCID lcid,
11761        DISPID *rgDispId);
11762
11763    HRESULT (STDMETHODCALLTYPE *Invoke)(
11764        ISpeechObjectToken *This,
11765        DISPID dispIdMember,
11766        REFIID riid,
11767        LCID lcid,
11768        WORD wFlags,
11769        DISPPARAMS *pDispParams,
11770        VARIANT *pVarResult,
11771        EXCEPINFO *pExcepInfo,
11772        UINT *puArgErr);
11773
11774    /*** ISpeechObjectToken methods ***/
11775    HRESULT (STDMETHODCALLTYPE *get_Id)(
11776        ISpeechObjectToken *This,
11777        BSTR *ObjectId);
11778
11779    HRESULT (STDMETHODCALLTYPE *get_DataKey)(
11780        ISpeechObjectToken *This,
11781        ISpeechDataKey **DataKey);
11782
11783    HRESULT (STDMETHODCALLTYPE *get_Category)(
11784        ISpeechObjectToken *This,
11785        ISpeechObjectTokenCategory **Category);
11786
11787    HRESULT (STDMETHODCALLTYPE *GetDescription)(
11788        ISpeechObjectToken *This,
11789        LONG Locale,
11790        BSTR *Description);
11791
11792    HRESULT (STDMETHODCALLTYPE *SetId)(
11793        ISpeechObjectToken *This,
11794        BSTR Id,
11795        BSTR CategoryID,
11796        VARIANT_BOOL CreateIfNotExist);
11797
11798    HRESULT (STDMETHODCALLTYPE *GetAttribute)(
11799        ISpeechObjectToken *This,
11800        BSTR AttributeName,
11801        BSTR *AttributeValue);
11802
11803    HRESULT (STDMETHODCALLTYPE *CreateInstance)(
11804        ISpeechObjectToken *This,
11805        IUnknown *pUnkOuter,
11806        SpeechTokenContext ClsContext,
11807        IUnknown **Object);
11808
11809    HRESULT (STDMETHODCALLTYPE *Remove)(
11810        ISpeechObjectToken *This,
11811        BSTR ObjectStorageCLSID);
11812
11813    HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
11814        ISpeechObjectToken *This,
11815        BSTR ObjectStorageCLSID,
11816        BSTR KeyName,
11817        BSTR FileName,
11818        SpeechTokenShellFolder Folder,
11819        BSTR *FilePath);
11820
11821    HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
11822        ISpeechObjectToken *This,
11823        BSTR ObjectStorageCLSID,
11824        BSTR KeyName,
11825        VARIANT_BOOL DeleteFile);
11826
11827    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
11828        ISpeechObjectToken *This,
11829        const BSTR TypeOfUI,
11830        const VARIANT *ExtraData,
11831        IUnknown *Object,
11832        VARIANT_BOOL *Supported);
11833
11834    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
11835        ISpeechObjectToken *This,
11836        LONG hWnd,
11837        BSTR Title,
11838        const BSTR TypeOfUI,
11839        const VARIANT *ExtraData,
11840        IUnknown *Object);
11841
11842    HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
11843        ISpeechObjectToken *This,
11844        BSTR Attributes,
11845        VARIANT_BOOL *Matches);
11846
11847    END_INTERFACE
11848} ISpeechObjectTokenVtbl;
11849
11850interface ISpeechObjectToken {
11851    CONST_VTBL ISpeechObjectTokenVtbl* lpVtbl;
11852};
11853
11854#ifdef COBJMACROS
11855#ifndef WIDL_C_INLINE_WRAPPERS
11856/*** IUnknown methods ***/
11857#define ISpeechObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11858#define ISpeechObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
11859#define ISpeechObjectToken_Release(This) (This)->lpVtbl->Release(This)
11860/*** IDispatch methods ***/
11861#define ISpeechObjectToken_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11862#define ISpeechObjectToken_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11863#define ISpeechObjectToken_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11864#define ISpeechObjectToken_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11865/*** ISpeechObjectToken methods ***/
11866#define ISpeechObjectToken_get_Id(This,ObjectId) (This)->lpVtbl->get_Id(This,ObjectId)
11867#define ISpeechObjectToken_get_DataKey(This,DataKey) (This)->lpVtbl->get_DataKey(This,DataKey)
11868#define ISpeechObjectToken_get_Category(This,Category) (This)->lpVtbl->get_Category(This,Category)
11869#define ISpeechObjectToken_GetDescription(This,Locale,Description) (This)->lpVtbl->GetDescription(This,Locale,Description)
11870#define ISpeechObjectToken_SetId(This,Id,CategoryID,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist)
11871#define ISpeechObjectToken_GetAttribute(This,AttributeName,AttributeValue) (This)->lpVtbl->GetAttribute(This,AttributeName,AttributeValue)
11872#define ISpeechObjectToken_CreateInstance(This,pUnkOuter,ClsContext,Object) (This)->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object)
11873#define ISpeechObjectToken_Remove(This,ObjectStorageCLSID) (This)->lpVtbl->Remove(This,ObjectStorageCLSID)
11874#define ISpeechObjectToken_GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath) (This)->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath)
11875#define ISpeechObjectToken_RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile)
11876#define ISpeechObjectToken_IsUISupported(This,TypeOfUI,ExtraData,Object,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported)
11877#define ISpeechObjectToken_DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object) (This)->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object)
11878#define ISpeechObjectToken_MatchesAttributes(This,Attributes,Matches) (This)->lpVtbl->MatchesAttributes(This,Attributes,Matches)
11879#else
11880/*** IUnknown methods ***/
11881static inline HRESULT ISpeechObjectToken_QueryInterface(ISpeechObjectToken* This,REFIID riid,void **ppvObject) {
11882    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11883}
11884static inline ULONG ISpeechObjectToken_AddRef(ISpeechObjectToken* This) {
11885    return This->lpVtbl->AddRef(This);
11886}
11887static inline ULONG ISpeechObjectToken_Release(ISpeechObjectToken* This) {
11888    return This->lpVtbl->Release(This);
11889}
11890/*** IDispatch methods ***/
11891static inline HRESULT ISpeechObjectToken_GetTypeInfoCount(ISpeechObjectToken* This,UINT *pctinfo) {
11892    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11893}
11894static inline HRESULT ISpeechObjectToken_GetTypeInfo(ISpeechObjectToken* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11895    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11896}
11897static inline HRESULT ISpeechObjectToken_GetIDsOfNames(ISpeechObjectToken* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11898    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11899}
11900static inline HRESULT ISpeechObjectToken_Invoke(ISpeechObjectToken* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11901    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11902}
11903/*** ISpeechObjectToken methods ***/
11904static inline HRESULT ISpeechObjectToken_get_Id(ISpeechObjectToken* This,BSTR *ObjectId) {
11905    return This->lpVtbl->get_Id(This,ObjectId);
11906}
11907static inline HRESULT ISpeechObjectToken_get_DataKey(ISpeechObjectToken* This,ISpeechDataKey **DataKey) {
11908    return This->lpVtbl->get_DataKey(This,DataKey);
11909}
11910static inline HRESULT ISpeechObjectToken_get_Category(ISpeechObjectToken* This,ISpeechObjectTokenCategory **Category) {
11911    return This->lpVtbl->get_Category(This,Category);
11912}
11913static inline HRESULT ISpeechObjectToken_GetDescription(ISpeechObjectToken* This,LONG Locale,BSTR *Description) {
11914    return This->lpVtbl->GetDescription(This,Locale,Description);
11915}
11916static inline HRESULT ISpeechObjectToken_SetId(ISpeechObjectToken* This,BSTR Id,BSTR CategoryID,VARIANT_BOOL CreateIfNotExist) {
11917    return This->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist);
11918}
11919static inline HRESULT ISpeechObjectToken_GetAttribute(ISpeechObjectToken* This,BSTR AttributeName,BSTR *AttributeValue) {
11920    return This->lpVtbl->GetAttribute(This,AttributeName,AttributeValue);
11921}
11922static inline HRESULT ISpeechObjectToken_CreateInstance(ISpeechObjectToken* This,IUnknown *pUnkOuter,SpeechTokenContext ClsContext,IUnknown **Object) {
11923    return This->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object);
11924}
11925static inline HRESULT ISpeechObjectToken_Remove(ISpeechObjectToken* This,BSTR ObjectStorageCLSID) {
11926    return This->lpVtbl->Remove(This,ObjectStorageCLSID);
11927}
11928static inline HRESULT ISpeechObjectToken_GetStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,BSTR FileName,SpeechTokenShellFolder Folder,BSTR *FilePath) {
11929    return This->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath);
11930}
11931static inline HRESULT ISpeechObjectToken_RemoveStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,VARIANT_BOOL DeleteFile) {
11932    return This->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile);
11933}
11934static inline HRESULT ISpeechObjectToken_IsUISupported(ISpeechObjectToken* This,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object,VARIANT_BOOL *Supported) {
11935    return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported);
11936}
11937static inline HRESULT ISpeechObjectToken_DisplayUI(ISpeechObjectToken* This,LONG hWnd,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object) {
11938    return This->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object);
11939}
11940static inline HRESULT ISpeechObjectToken_MatchesAttributes(ISpeechObjectToken* This,BSTR Attributes,VARIANT_BOOL *Matches) {
11941    return This->lpVtbl->MatchesAttributes(This,Attributes,Matches);
11942}
11943#endif
11944#endif
11945
11946#endif
11947
11948
11949#endif  /* __ISpeechObjectToken_INTERFACE_DEFINED__ */
11950
11951/*****************************************************************************
11952 * ISpeechObjectTokens interface
11953 */
11954#ifndef __ISpeechObjectTokens_INTERFACE_DEFINED__
11955#define __ISpeechObjectTokens_INTERFACE_DEFINED__
11956
11957DEFINE_GUID(IID_ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f);
11958#if defined(__cplusplus) && !defined(CINTERFACE)
11959MIDL_INTERFACE("9285b776-2e7b-4bc0-b53e-580eb6fa967f")
11960ISpeechObjectTokens : public IDispatch
11961{
11962    virtual HRESULT STDMETHODCALLTYPE get_Count(
11963        LONG *Count) = 0;
11964
11965    virtual HRESULT STDMETHODCALLTYPE Item(
11966        LONG Index,
11967        ISpeechObjectToken **Token) = 0;
11968
11969    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
11970        IUnknown **ppEnumVARIANT) = 0;
11971
11972};
11973#ifdef __CRT_UUID_DECL
11974__CRT_UUID_DECL(ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f)
11975#endif
11976#else
11977typedef struct ISpeechObjectTokensVtbl {
11978    BEGIN_INTERFACE
11979
11980    /*** IUnknown methods ***/
11981    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11982        ISpeechObjectTokens *This,
11983        REFIID riid,
11984        void **ppvObject);
11985
11986    ULONG (STDMETHODCALLTYPE *AddRef)(
11987        ISpeechObjectTokens *This);
11988
11989    ULONG (STDMETHODCALLTYPE *Release)(
11990        ISpeechObjectTokens *This);
11991
11992    /*** IDispatch methods ***/
11993    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11994        ISpeechObjectTokens *This,
11995        UINT *pctinfo);
11996
11997    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11998        ISpeechObjectTokens *This,
11999        UINT iTInfo,
12000        LCID lcid,
12001        ITypeInfo **ppTInfo);
12002
12003    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12004        ISpeechObjectTokens *This,
12005        REFIID riid,
12006        LPOLESTR *rgszNames,
12007        UINT cNames,
12008        LCID lcid,
12009        DISPID *rgDispId);
12010
12011    HRESULT (STDMETHODCALLTYPE *Invoke)(
12012        ISpeechObjectTokens *This,
12013        DISPID dispIdMember,
12014        REFIID riid,
12015        LCID lcid,
12016        WORD wFlags,
12017        DISPPARAMS *pDispParams,
12018        VARIANT *pVarResult,
12019        EXCEPINFO *pExcepInfo,
12020        UINT *puArgErr);
12021
12022    /*** ISpeechObjectTokens methods ***/
12023    HRESULT (STDMETHODCALLTYPE *get_Count)(
12024        ISpeechObjectTokens *This,
12025        LONG *Count);
12026
12027    HRESULT (STDMETHODCALLTYPE *Item)(
12028        ISpeechObjectTokens *This,
12029        LONG Index,
12030        ISpeechObjectToken **Token);
12031
12032    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
12033        ISpeechObjectTokens *This,
12034        IUnknown **ppEnumVARIANT);
12035
12036    END_INTERFACE
12037} ISpeechObjectTokensVtbl;
12038
12039interface ISpeechObjectTokens {
12040    CONST_VTBL ISpeechObjectTokensVtbl* lpVtbl;
12041};
12042
12043#ifdef COBJMACROS
12044#ifndef WIDL_C_INLINE_WRAPPERS
12045/*** IUnknown methods ***/
12046#define ISpeechObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12047#define ISpeechObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
12048#define ISpeechObjectTokens_Release(This) (This)->lpVtbl->Release(This)
12049/*** IDispatch methods ***/
12050#define ISpeechObjectTokens_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12051#define ISpeechObjectTokens_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12052#define ISpeechObjectTokens_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12053#define ISpeechObjectTokens_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12054/*** ISpeechObjectTokens methods ***/
12055#define ISpeechObjectTokens_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
12056#define ISpeechObjectTokens_Item(This,Index,Token) (This)->lpVtbl->Item(This,Index,Token)
12057#define ISpeechObjectTokens_get__NewEnum(This,ppEnumVARIANT) (This)->lpVtbl->get__NewEnum(This,ppEnumVARIANT)
12058#else
12059/*** IUnknown methods ***/
12060static inline HRESULT ISpeechObjectTokens_QueryInterface(ISpeechObjectTokens* This,REFIID riid,void **ppvObject) {
12061    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12062}
12063static inline ULONG ISpeechObjectTokens_AddRef(ISpeechObjectTokens* This) {
12064    return This->lpVtbl->AddRef(This);
12065}
12066static inline ULONG ISpeechObjectTokens_Release(ISpeechObjectTokens* This) {
12067    return This->lpVtbl->Release(This);
12068}
12069/*** IDispatch methods ***/
12070static inline HRESULT ISpeechObjectTokens_GetTypeInfoCount(ISpeechObjectTokens* This,UINT *pctinfo) {
12071    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12072}
12073static inline HRESULT ISpeechObjectTokens_GetTypeInfo(ISpeechObjectTokens* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12074    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12075}
12076static inline HRESULT ISpeechObjectTokens_GetIDsOfNames(ISpeechObjectTokens* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12077    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12078}
12079static inline HRESULT ISpeechObjectTokens_Invoke(ISpeechObjectTokens* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12080    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12081}
12082/*** ISpeechObjectTokens methods ***/
12083static inline HRESULT ISpeechObjectTokens_get_Count(ISpeechObjectTokens* This,LONG *Count) {
12084    return This->lpVtbl->get_Count(This,Count);
12085}
12086static inline HRESULT ISpeechObjectTokens_Item(ISpeechObjectTokens* This,LONG Index,ISpeechObjectToken **Token) {
12087    return This->lpVtbl->Item(This,Index,Token);
12088}
12089static inline HRESULT ISpeechObjectTokens_get__NewEnum(ISpeechObjectTokens* This,IUnknown **ppEnumVARIANT) {
12090    return This->lpVtbl->get__NewEnum(This,ppEnumVARIANT);
12091}
12092#endif
12093#endif
12094
12095#endif
12096
12097
12098#endif  /* __ISpeechObjectTokens_INTERFACE_DEFINED__ */
12099
12100/*****************************************************************************
12101 * ISpeechObjectTokenCategory interface
12102 */
12103#ifndef __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
12104#define __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
12105
12106DEFINE_GUID(IID_ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69);
12107#if defined(__cplusplus) && !defined(CINTERFACE)
12108MIDL_INTERFACE("ca7eac50-2d01-4145-86d4-5ae7d70f4469")
12109ISpeechObjectTokenCategory : public IDispatch
12110{
12111    virtual HRESULT STDMETHODCALLTYPE get_Id(
12112        BSTR *Id) = 0;
12113
12114    virtual HRESULT STDMETHODCALLTYPE put_Default(
12115        const BSTR TokenId) = 0;
12116
12117    virtual HRESULT STDMETHODCALLTYPE get_Default(
12118        BSTR *TokenId) = 0;
12119
12120    virtual HRESULT STDMETHODCALLTYPE SetId(
12121        const BSTR Id,
12122        VARIANT_BOOL CreateIfNotExist = 0) = 0;
12123
12124    virtual HRESULT STDMETHODCALLTYPE GetDataKey(
12125        SpeechDataKeyLocation Location,
12126        ISpeechDataKey **DataKey) = 0;
12127
12128    virtual HRESULT STDMETHODCALLTYPE EnumerateTokens(
12129        BSTR RequiredAttributes,
12130        BSTR OptionalAttributes,
12131        ISpeechObjectTokens **Tokens) = 0;
12132
12133};
12134#ifdef __CRT_UUID_DECL
12135__CRT_UUID_DECL(ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69)
12136#endif
12137#else
12138typedef struct ISpeechObjectTokenCategoryVtbl {
12139    BEGIN_INTERFACE
12140
12141    /*** IUnknown methods ***/
12142    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12143        ISpeechObjectTokenCategory *This,
12144        REFIID riid,
12145        void **ppvObject);
12146
12147    ULONG (STDMETHODCALLTYPE *AddRef)(
12148        ISpeechObjectTokenCategory *This);
12149
12150    ULONG (STDMETHODCALLTYPE *Release)(
12151        ISpeechObjectTokenCategory *This);
12152
12153    /*** IDispatch methods ***/
12154    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12155        ISpeechObjectTokenCategory *This,
12156        UINT *pctinfo);
12157
12158    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12159        ISpeechObjectTokenCategory *This,
12160        UINT iTInfo,
12161        LCID lcid,
12162        ITypeInfo **ppTInfo);
12163
12164    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12165        ISpeechObjectTokenCategory *This,
12166        REFIID riid,
12167        LPOLESTR *rgszNames,
12168        UINT cNames,
12169        LCID lcid,
12170        DISPID *rgDispId);
12171
12172    HRESULT (STDMETHODCALLTYPE *Invoke)(
12173        ISpeechObjectTokenCategory *This,
12174        DISPID dispIdMember,
12175        REFIID riid,
12176        LCID lcid,
12177        WORD wFlags,
12178        DISPPARAMS *pDispParams,
12179        VARIANT *pVarResult,
12180        EXCEPINFO *pExcepInfo,
12181        UINT *puArgErr);
12182
12183    /*** ISpeechObjectTokenCategory methods ***/
12184    HRESULT (STDMETHODCALLTYPE *get_Id)(
12185        ISpeechObjectTokenCategory *This,
12186        BSTR *Id);
12187
12188    HRESULT (STDMETHODCALLTYPE *put_Default)(
12189        ISpeechObjectTokenCategory *This,
12190        const BSTR TokenId);
12191
12192    HRESULT (STDMETHODCALLTYPE *get_Default)(
12193        ISpeechObjectTokenCategory *This,
12194        BSTR *TokenId);
12195
12196    HRESULT (STDMETHODCALLTYPE *SetId)(
12197        ISpeechObjectTokenCategory *This,
12198        const BSTR Id,
12199        VARIANT_BOOL CreateIfNotExist);
12200
12201    HRESULT (STDMETHODCALLTYPE *GetDataKey)(
12202        ISpeechObjectTokenCategory *This,
12203        SpeechDataKeyLocation Location,
12204        ISpeechDataKey **DataKey);
12205
12206    HRESULT (STDMETHODCALLTYPE *EnumerateTokens)(
12207        ISpeechObjectTokenCategory *This,
12208        BSTR RequiredAttributes,
12209        BSTR OptionalAttributes,
12210        ISpeechObjectTokens **Tokens);
12211
12212    END_INTERFACE
12213} ISpeechObjectTokenCategoryVtbl;
12214
12215interface ISpeechObjectTokenCategory {
12216    CONST_VTBL ISpeechObjectTokenCategoryVtbl* lpVtbl;
12217};
12218
12219#ifdef COBJMACROS
12220#ifndef WIDL_C_INLINE_WRAPPERS
12221/*** IUnknown methods ***/
12222#define ISpeechObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12223#define ISpeechObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
12224#define ISpeechObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
12225/*** IDispatch methods ***/
12226#define ISpeechObjectTokenCategory_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12227#define ISpeechObjectTokenCategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12228#define ISpeechObjectTokenCategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12229#define ISpeechObjectTokenCategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12230/*** ISpeechObjectTokenCategory methods ***/
12231#define ISpeechObjectTokenCategory_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
12232#define ISpeechObjectTokenCategory_put_Default(This,TokenId) (This)->lpVtbl->put_Default(This,TokenId)
12233#define ISpeechObjectTokenCategory_get_Default(This,TokenId) (This)->lpVtbl->get_Default(This,TokenId)
12234#define ISpeechObjectTokenCategory_SetId(This,Id,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CreateIfNotExist)
12235#define ISpeechObjectTokenCategory_GetDataKey(This,Location,DataKey) (This)->lpVtbl->GetDataKey(This,Location,DataKey)
12236#define ISpeechObjectTokenCategory_EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens) (This)->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens)
12237#else
12238/*** IUnknown methods ***/
12239static inline HRESULT ISpeechObjectTokenCategory_QueryInterface(ISpeechObjectTokenCategory* This,REFIID riid,void **ppvObject) {
12240    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12241}
12242static inline ULONG ISpeechObjectTokenCategory_AddRef(ISpeechObjectTokenCategory* This) {
12243    return This->lpVtbl->AddRef(This);
12244}
12245static inline ULONG ISpeechObjectTokenCategory_Release(ISpeechObjectTokenCategory* This) {
12246    return This->lpVtbl->Release(This);
12247}
12248/*** IDispatch methods ***/
12249static inline HRESULT ISpeechObjectTokenCategory_GetTypeInfoCount(ISpeechObjectTokenCategory* This,UINT *pctinfo) {
12250    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12251}
12252static inline HRESULT ISpeechObjectTokenCategory_GetTypeInfo(ISpeechObjectTokenCategory* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12253    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12254}
12255static inline HRESULT ISpeechObjectTokenCategory_GetIDsOfNames(ISpeechObjectTokenCategory* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12256    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12257}
12258static inline HRESULT ISpeechObjectTokenCategory_Invoke(ISpeechObjectTokenCategory* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12259    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12260}
12261/*** ISpeechObjectTokenCategory methods ***/
12262static inline HRESULT ISpeechObjectTokenCategory_get_Id(ISpeechObjectTokenCategory* This,BSTR *Id) {
12263    return This->lpVtbl->get_Id(This,Id);
12264}
12265static inline HRESULT ISpeechObjectTokenCategory_put_Default(ISpeechObjectTokenCategory* This,const BSTR TokenId) {
12266    return This->lpVtbl->put_Default(This,TokenId);
12267}
12268static inline HRESULT ISpeechObjectTokenCategory_get_Default(ISpeechObjectTokenCategory* This,BSTR *TokenId) {
12269    return This->lpVtbl->get_Default(This,TokenId);
12270}
12271static inline HRESULT ISpeechObjectTokenCategory_SetId(ISpeechObjectTokenCategory* This,const BSTR Id,VARIANT_BOOL CreateIfNotExist) {
12272    return This->lpVtbl->SetId(This,Id,CreateIfNotExist);
12273}
12274static inline HRESULT ISpeechObjectTokenCategory_GetDataKey(ISpeechObjectTokenCategory* This,SpeechDataKeyLocation Location,ISpeechDataKey **DataKey) {
12275    return This->lpVtbl->GetDataKey(This,Location,DataKey);
12276}
12277static inline HRESULT ISpeechObjectTokenCategory_EnumerateTokens(ISpeechObjectTokenCategory* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **Tokens) {
12278    return This->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens);
12279}
12280#endif
12281#endif
12282
12283#endif
12284
12285
12286#endif  /* __ISpeechObjectTokenCategory_INTERFACE_DEFINED__ */
12287
12288typedef enum SpeechAudioFormatType {
12289    SAFTDefault = -1,
12290    SAFTNoAssignedFormat = 0,
12291    SAFTText = 1,
12292    SAFTNonStandardFormat = 2,
12293    SAFTExtendedAudioFormat = 3,
12294    SAFT8kHz8BitMono = 4,
12295    SAFT8kHz8BitStereo = 5,
12296    SAFT8kHz16BitMono = 6,
12297    SAFT8kHz16BitStereo = 7,
12298    SAFT11kHz8BitMono = 8,
12299    SAFT11kHz8BitStereo = 9,
12300    SAFT11kHz16BitMono = 10,
12301    SAFT11kHz16BitStereo = 11,
12302    SAFT12kHz8BitMono = 12,
12303    SAFT12kHz8BitStereo = 13,
12304    SAFT12kHz16BitMono = 14,
12305    SAFT12kHz16BitStereo = 15,
12306    SAFT16kHz8BitMono = 16,
12307    SAFT16kHz8BitStereo = 17,
12308    SAFT16kHz16BitMono = 18,
12309    SAFT16kHz16BitStereo = 19,
12310    SAFT22kHz8BitMono = 20,
12311    SAFT22kHz8BitStereo = 21,
12312    SAFT22kHz16BitMono = 22,
12313    SAFT22kHz16BitStereo = 23,
12314    SAFT24kHz8BitMono = 24,
12315    SAFT24kHz8BitStereo = 25,
12316    SAFT24kHz16BitMono = 26,
12317    SAFT24kHz16BitStereo = 27,
12318    SAFT32kHz8BitMono = 28,
12319    SAFT32kHz8BitStereo = 29,
12320    SAFT32kHz16BitMono = 30,
12321    SAFT32kHz16BitStereo = 31,
12322    SAFT44kHz8BitMono = 32,
12323    SAFT44kHz8BitStereo = 33,
12324    SAFT44kHz16BitMono = 34,
12325    SAFT44kHz16BitStereo = 35,
12326    SAFT48kHz8BitMono = 36,
12327    SAFT48kHz8BitStereo = 37,
12328    SAFT48kHz16BitMono = 38,
12329    SAFT48kHz16BitStereo = 39,
12330    SAFTTrueSpeech_8kHz1BitMono = 40,
12331    SAFTCCITT_ALaw_8kHzMono = 41,
12332    SAFTCCITT_ALaw_8kHzStereo = 42,
12333    SAFTCCITT_ALaw_11kHzMono = 43,
12334    SAFTCCITT_ALaw_11kHzStereo = 44,
12335    SAFTCCITT_ALaw_22kHzMono = 45,
12336    SAFTCCITT_ALaw_22kHzStereo = 46,
12337    SAFTCCITT_ALaw_44kHzMono = 47,
12338    SAFTCCITT_ALaw_44kHzStereo = 48,
12339    SAFTCCITT_uLaw_8kHzMono = 49,
12340    SAFTCCITT_uLaw_8kHzStereo = 50,
12341    SAFTCCITT_uLaw_11kHzMono = 51,
12342    SAFTCCITT_uLaw_11kHzStereo = 52,
12343    SAFTCCITT_uLaw_22kHzMono = 53,
12344    SAFTCCITT_uLaw_22kHzStereo = 54,
12345    SAFTCCITT_uLaw_44kHzMono = 55,
12346    SAFTCCITT_uLaw_44kHzStereo = 56,
12347    SAFTADPCM_8kHzMono = 57,
12348    SAFTADPCM_8kHzStereo = 58,
12349    SAFTADPCM_11kHzMono = 59,
12350    SAFTADPCM_11kHzStereo = 60,
12351    SAFTADPCM_22kHzMono = 61,
12352    SAFTADPCM_22kHzStereo = 62,
12353    SAFTADPCM_44kHzMono = 63,
12354    SAFTADPCM_44kHzStereo = 64,
12355    SAFTGSM610_8kHzMono = 65,
12356    SAFTGSM610_11kHzMono = 66,
12357    SAFTGSM610_22kHzMono = 67,
12358    SAFTGSM610_44kHzMono = 68
12359} SpeechAudioFormatType;
12360typedef enum DISPID_SpeechAudioFormat {
12361    DISPID_SAFType = 1,
12362    DISPID_SAFGuid = 2,
12363    DISPID_SAFGetWaveFormatEx = 3,
12364    DISPID_SAFSetWaveFormatEx = 4
12365} DISPID_SpeechAudioFormat;
12366typedef enum DISPID_SpeechBaseStream {
12367    DISPID_SBSFormat = 1,
12368    DISPID_SBSRead = 2,
12369    DISPID_SBSWrite = 3,
12370    DISPID_SBSSeek = 4
12371} DISPID_SpeechBaseStream;
12372typedef enum SpeechStreamSeekPositionType {
12373    SSSPTRelativeToStart = STREAM_SEEK_SET,
12374    SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR,
12375    SSSPTRelativeToEnd = STREAM_SEEK_END
12376} SpeechStreamSeekPositionType;
12377typedef enum DISPID_SpeechAudio {
12378    DISPID_SAStatus = 200,
12379    DISPID_SABufferInfo = 201,
12380    DISPID_SADefaultFormat = 202,
12381    DISPID_SAVolume = 203,
12382    DISPID_SABufferNotifySize = 204,
12383    DISPID_SAEventHandle = 205,
12384    DISPID_SASetState = 206
12385} DISPID_SpeechAudio;
12386typedef enum SpeechAudioState {
12387    SASClosed = SPAS_CLOSED,
12388    SASStop = SPAS_STOP,
12389    SASPause = SPAS_PAUSE,
12390    SASRun = SPAS_RUN
12391} SpeechAudioState;
12392typedef enum DISPID_SpeechMMSysAudio {
12393    DISPID_SMSADeviceId = 300,
12394    DISPID_SMSALineId = 301,
12395    DISPID_SMSAMMHandle = 302
12396} DISPID_SpeechMMSysAudio;
12397typedef enum DISPID_SpeechFileStream {
12398    DISPID_SFSOpen = 100,
12399    DISPID_SFSClose = 101
12400} DISPID_SpeechFileStream;
12401typedef enum SpeechStreamFileMode {
12402    SSFMOpenForRead = SPFM_OPEN_READONLY,
12403    SSFMOpenReadWrite = SPFM_OPEN_READWRITE,
12404    SSFMCreate = SPFM_CREATE,
12405    SSFMCreateForWrite = SPFM_CREATE_ALWAYS
12406} SpeechStreamFileMode;
12407typedef enum DISPID_SpeechCustomStream {
12408    DISPID_SCSBaseStream = 100
12409} DISPID_SpeechCustomStream;
12410typedef enum DISPID_SpeechMemoryStream {
12411    DISPID_SMSSetData = 100,
12412    DISPID_SMSGetData = 101
12413} DISPID_SpeechMemoryStream;
12414typedef enum DISPID_SpeechAudioStatus {
12415    DISPID_SASFreeBufferSpace = 1,
12416    DISPID_SASNonBlockingIO = 2,
12417    DISPID_SASState = 3,
12418    DISPID_SASCurrentSeekPosition = 4,
12419    DISPID_SASCurrentDevicePosition = 5
12420} DISPID_SpeechAudioStatus;
12421typedef enum DISPID_SpeechAudioBufferInfo {
12422    DISPID_SABIMinNotification = 1,
12423    DISPID_SABIBufferSize = 2,
12424    DISPID_SABIEventBias = 3
12425} DISPID_SpeechAudioBufferInfo;
12426typedef enum DISPID_SpeechWaveFormatEx {
12427    DISPID_SWFEFormatTag = 1,
12428    DISPID_SWFEChannels = 2,
12429    DISPID_SWFESamplesPerSec = 3,
12430    DISPID_SWFEAvgBytesPerSec = 4,
12431    DISPID_SWFEBlockAlign = 5,
12432    DISPID_SWFEBitsPerSample = 6,
12433    DISPID_SWFEExtraData = 7
12434} DISPID_SpeechWaveFormatEx;
12435typedef enum DISPID_SpeechVoice {
12436    DISPID_SVStatus = 1,
12437    DISPID_SVVoice = 2,
12438    DISPID_SVAudioOutput = 3,
12439    DISPID_SVAudioOutputStream = 4,
12440    DISPID_SVRate = 5,
12441    DISPID_SVVolume = 6,
12442    DISPID_SVAllowAudioOuputFormatChangesOnNextSet = 7,
12443    DISPID_SVEventInterests = 8,
12444    DISPID_SVPriority = 9,
12445    DISPID_SVAlertBoundary = 10,
12446    DISPID_SVSyncronousSpeakTimeout = 11,
12447    DISPID_SVSpeak = 12,
12448    DISPID_SVSpeakStream = 13,
12449    DISPID_SVPause = 14,
12450    DISPID_SVResume = 15,
12451    DISPID_SVSkip = 16,
12452    DISPID_SVGetVoices = 17,
12453    DISPID_SVGetAudioOutputs = 18,
12454    DISPID_SVWaitUntilDone = 19,
12455    DISPID_SVSpeakCompleteEvent = 20,
12456    DISPID_SVIsUISupported = 21,
12457    DISPID_SVDisplayUI = 22
12458} DISPID_SpeechVoice;
12459typedef enum SpeechVoicePriority {
12460    SVPNormal = SPVPRI_NORMAL,
12461    SVPAlert = SPVPRI_ALERT,
12462    SVPOver = SPVPRI_OVER
12463} SpeechVoicePriority;
12464typedef enum SpeechVoiceSpeakFlags {
12465    SVSFDefault = SPF_DEFAULT,
12466    SVSFlagsAsync = SPF_ASYNC,
12467    SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK,
12468    SVSFIsFilename = SPF_IS_FILENAME,
12469    SVSFIsXML = SPF_IS_XML,
12470    SVSFIsNotXML = SPF_IS_NOT_XML,
12471    SVSFPersistXML = SPF_PERSIST_XML,
12472    SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC,
12473    SVSFParseSapi = SPF_PARSE_SAPI,
12474    SVSFParseSsml = SPF_PARSE_SSML,
12475    SVSFParseAutodetect = SPF_PARSE_AUTODETECT,
12476    SVSFNLPMask = SPF_NLP_MASK,
12477    SVSFParseMask = SPF_PARSE_MASK,
12478    SVSFVoiceMask = SPF_VOICE_MASK,
12479    SVSFUnusedFlags = SPF_UNUSED_FLAGS
12480} SpeechVoiceSpeakFlags;
12481typedef enum SpeechVoiceEvents {
12482    SVEStartInputStream = 0x2,
12483    SVEEndInputStream = 0x4,
12484    SVEVoiceChange = 0x8,
12485    SVEBookmark = 0x10,
12486    SVEWordBoundary = 0x20,
12487    SVEPhoneme = 0x40,
12488    SVESentenceBoundary = 0x80,
12489    SVEViseme = 0x100,
12490    SVEAudioLevel = 0x200,
12491    SVEPrivate = 0x8000,
12492    SVEAllEvents = 0x83fe
12493} SpeechVoiceEvents;
12494typedef enum DISPID_SpeechVoiceStatus {
12495    DISPID_SVSCurrentStreamNumber = 1,
12496    DISPID_SVSLastStreamNumberQueued = 2,
12497    DISPID_SVSLastResult = 3,
12498    DISPID_SVSRunningState = 4,
12499    DISPID_SVSInputWordPosition = 5,
12500    DISPID_SVSInputWordLength = 6,
12501    DISPID_SVSInputSentencePosition = 7,
12502    DISPID_SVSInputSentenceLength = 8,
12503    DISPID_SVSLastBookmark = 9,
12504    DISPID_SVSLastBookmarkId = 10,
12505    DISPID_SVSPhonemeId = 11,
12506    DISPID_SVSVisemeId = 12
12507} DISPID_SpeechVoiceStatus;
12508typedef enum SpeechRunState {
12509    SRSEDone = SPRS_DONE,
12510    SRSEIsSpeaking = SPRS_IS_SPEAKING
12511} SpeechRunState;
12512/*****************************************************************************
12513 * ISpeechAudioFormat interface
12514 */
12515#ifndef __ISpeechAudioFormat_INTERFACE_DEFINED__
12516#define __ISpeechAudioFormat_INTERFACE_DEFINED__
12517
12518DEFINE_GUID(IID_ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7);
12519#if defined(__cplusplus) && !defined(CINTERFACE)
12520MIDL_INTERFACE("e6e9c590-3e18-40e3-8299-061f98bde7c7")
12521ISpeechAudioFormat : public IDispatch
12522{
12523    virtual HRESULT STDMETHODCALLTYPE get_Type(
12524        SpeechAudioFormatType *AudioFormat) = 0;
12525
12526    virtual HRESULT STDMETHODCALLTYPE put_Type(
12527        SpeechAudioFormatType AudioFormat) = 0;
12528
12529    virtual HRESULT STDMETHODCALLTYPE get_Guid(
12530        BSTR *Guid) = 0;
12531
12532    virtual HRESULT STDMETHODCALLTYPE put_Guid(
12533        BSTR Guid) = 0;
12534
12535    virtual HRESULT STDMETHODCALLTYPE GetWaveFormatEx(
12536        ISpeechWaveFormatEx **SpeechWaveFormatEx) = 0;
12537
12538    virtual HRESULT STDMETHODCALLTYPE SetWaveFormatEx(
12539        ISpeechWaveFormatEx *SpeechWaveFormatEx) = 0;
12540
12541};
12542#ifdef __CRT_UUID_DECL
12543__CRT_UUID_DECL(ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7)
12544#endif
12545#else
12546typedef struct ISpeechAudioFormatVtbl {
12547    BEGIN_INTERFACE
12548
12549    /*** IUnknown methods ***/
12550    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12551        ISpeechAudioFormat *This,
12552        REFIID riid,
12553        void **ppvObject);
12554
12555    ULONG (STDMETHODCALLTYPE *AddRef)(
12556        ISpeechAudioFormat *This);
12557
12558    ULONG (STDMETHODCALLTYPE *Release)(
12559        ISpeechAudioFormat *This);
12560
12561    /*** IDispatch methods ***/
12562    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12563        ISpeechAudioFormat *This,
12564        UINT *pctinfo);
12565
12566    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12567        ISpeechAudioFormat *This,
12568        UINT iTInfo,
12569        LCID lcid,
12570        ITypeInfo **ppTInfo);
12571
12572    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12573        ISpeechAudioFormat *This,
12574        REFIID riid,
12575        LPOLESTR *rgszNames,
12576        UINT cNames,
12577        LCID lcid,
12578        DISPID *rgDispId);
12579
12580    HRESULT (STDMETHODCALLTYPE *Invoke)(
12581        ISpeechAudioFormat *This,
12582        DISPID dispIdMember,
12583        REFIID riid,
12584        LCID lcid,
12585        WORD wFlags,
12586        DISPPARAMS *pDispParams,
12587        VARIANT *pVarResult,
12588        EXCEPINFO *pExcepInfo,
12589        UINT *puArgErr);
12590
12591    /*** ISpeechAudioFormat methods ***/
12592    HRESULT (STDMETHODCALLTYPE *get_Type)(
12593        ISpeechAudioFormat *This,
12594        SpeechAudioFormatType *AudioFormat);
12595
12596    HRESULT (STDMETHODCALLTYPE *put_Type)(
12597        ISpeechAudioFormat *This,
12598        SpeechAudioFormatType AudioFormat);
12599
12600    HRESULT (STDMETHODCALLTYPE *get_Guid)(
12601        ISpeechAudioFormat *This,
12602        BSTR *Guid);
12603
12604    HRESULT (STDMETHODCALLTYPE *put_Guid)(
12605        ISpeechAudioFormat *This,
12606        BSTR Guid);
12607
12608    HRESULT (STDMETHODCALLTYPE *GetWaveFormatEx)(
12609        ISpeechAudioFormat *This,
12610        ISpeechWaveFormatEx **SpeechWaveFormatEx);
12611
12612    HRESULT (STDMETHODCALLTYPE *SetWaveFormatEx)(
12613        ISpeechAudioFormat *This,
12614        ISpeechWaveFormatEx *SpeechWaveFormatEx);
12615
12616    END_INTERFACE
12617} ISpeechAudioFormatVtbl;
12618
12619interface ISpeechAudioFormat {
12620    CONST_VTBL ISpeechAudioFormatVtbl* lpVtbl;
12621};
12622
12623#ifdef COBJMACROS
12624#ifndef WIDL_C_INLINE_WRAPPERS
12625/*** IUnknown methods ***/
12626#define ISpeechAudioFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12627#define ISpeechAudioFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
12628#define ISpeechAudioFormat_Release(This) (This)->lpVtbl->Release(This)
12629/*** IDispatch methods ***/
12630#define ISpeechAudioFormat_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12631#define ISpeechAudioFormat_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12632#define ISpeechAudioFormat_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12633#define ISpeechAudioFormat_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12634/*** ISpeechAudioFormat methods ***/
12635#define ISpeechAudioFormat_get_Type(This,AudioFormat) (This)->lpVtbl->get_Type(This,AudioFormat)
12636#define ISpeechAudioFormat_put_Type(This,AudioFormat) (This)->lpVtbl->put_Type(This,AudioFormat)
12637#define ISpeechAudioFormat_get_Guid(This,Guid) (This)->lpVtbl->get_Guid(This,Guid)
12638#define ISpeechAudioFormat_put_Guid(This,Guid) (This)->lpVtbl->put_Guid(This,Guid)
12639#define ISpeechAudioFormat_GetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx)
12640#define ISpeechAudioFormat_SetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx)
12641#else
12642/*** IUnknown methods ***/
12643static inline HRESULT ISpeechAudioFormat_QueryInterface(ISpeechAudioFormat* This,REFIID riid,void **ppvObject) {
12644    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12645}
12646static inline ULONG ISpeechAudioFormat_AddRef(ISpeechAudioFormat* This) {
12647    return This->lpVtbl->AddRef(This);
12648}
12649static inline ULONG ISpeechAudioFormat_Release(ISpeechAudioFormat* This) {
12650    return This->lpVtbl->Release(This);
12651}
12652/*** IDispatch methods ***/
12653static inline HRESULT ISpeechAudioFormat_GetTypeInfoCount(ISpeechAudioFormat* This,UINT *pctinfo) {
12654    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12655}
12656static inline HRESULT ISpeechAudioFormat_GetTypeInfo(ISpeechAudioFormat* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12657    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12658}
12659static inline HRESULT ISpeechAudioFormat_GetIDsOfNames(ISpeechAudioFormat* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12660    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12661}
12662static inline HRESULT ISpeechAudioFormat_Invoke(ISpeechAudioFormat* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12663    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12664}
12665/*** ISpeechAudioFormat methods ***/
12666static inline HRESULT ISpeechAudioFormat_get_Type(ISpeechAudioFormat* This,SpeechAudioFormatType *AudioFormat) {
12667    return This->lpVtbl->get_Type(This,AudioFormat);
12668}
12669static inline HRESULT ISpeechAudioFormat_put_Type(ISpeechAudioFormat* This,SpeechAudioFormatType AudioFormat) {
12670    return This->lpVtbl->put_Type(This,AudioFormat);
12671}
12672static inline HRESULT ISpeechAudioFormat_get_Guid(ISpeechAudioFormat* This,BSTR *Guid) {
12673    return This->lpVtbl->get_Guid(This,Guid);
12674}
12675static inline HRESULT ISpeechAudioFormat_put_Guid(ISpeechAudioFormat* This,BSTR Guid) {
12676    return This->lpVtbl->put_Guid(This,Guid);
12677}
12678static inline HRESULT ISpeechAudioFormat_GetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx **SpeechWaveFormatEx) {
12679    return This->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx);
12680}
12681static inline HRESULT ISpeechAudioFormat_SetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx *SpeechWaveFormatEx) {
12682    return This->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx);
12683}
12684#endif
12685#endif
12686
12687#endif
12688
12689
12690#endif  /* __ISpeechAudioFormat_INTERFACE_DEFINED__ */
12691
12692/*****************************************************************************
12693 * ISpeechBaseStream interface
12694 */
12695#ifndef __ISpeechBaseStream_INTERFACE_DEFINED__
12696#define __ISpeechBaseStream_INTERFACE_DEFINED__
12697
12698DEFINE_GUID(IID_ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94);
12699#if defined(__cplusplus) && !defined(CINTERFACE)
12700MIDL_INTERFACE("6450336f-7d49-4ced-8097-49d6dee37294")
12701ISpeechBaseStream : public IDispatch
12702{
12703    virtual HRESULT STDMETHODCALLTYPE get_Format(
12704        ISpeechAudioFormat **AudioFormat) = 0;
12705
12706    virtual HRESULT STDMETHODCALLTYPE putref_Format(
12707        ISpeechAudioFormat *AudioFormat) = 0;
12708
12709    virtual HRESULT STDMETHODCALLTYPE Read(
12710        VARIANT *Buffer,
12711        LONG NumberOfBytes,
12712        LONG *BytesRead) = 0;
12713
12714    virtual HRESULT STDMETHODCALLTYPE Write(
12715        VARIANT Buffer,
12716        LONG *BytesWritten) = 0;
12717
12718    virtual HRESULT STDMETHODCALLTYPE Seek(
12719        VARIANT Position,
12720        SpeechStreamSeekPositionType Origin,
12721        VARIANT *NewPosition) = 0;
12722
12723};
12724#ifdef __CRT_UUID_DECL
12725__CRT_UUID_DECL(ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94)
12726#endif
12727#else
12728typedef struct ISpeechBaseStreamVtbl {
12729    BEGIN_INTERFACE
12730
12731    /*** IUnknown methods ***/
12732    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12733        ISpeechBaseStream *This,
12734        REFIID riid,
12735        void **ppvObject);
12736
12737    ULONG (STDMETHODCALLTYPE *AddRef)(
12738        ISpeechBaseStream *This);
12739
12740    ULONG (STDMETHODCALLTYPE *Release)(
12741        ISpeechBaseStream *This);
12742
12743    /*** IDispatch methods ***/
12744    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12745        ISpeechBaseStream *This,
12746        UINT *pctinfo);
12747
12748    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12749        ISpeechBaseStream *This,
12750        UINT iTInfo,
12751        LCID lcid,
12752        ITypeInfo **ppTInfo);
12753
12754    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12755        ISpeechBaseStream *This,
12756        REFIID riid,
12757        LPOLESTR *rgszNames,
12758        UINT cNames,
12759        LCID lcid,
12760        DISPID *rgDispId);
12761
12762    HRESULT (STDMETHODCALLTYPE *Invoke)(
12763        ISpeechBaseStream *This,
12764        DISPID dispIdMember,
12765        REFIID riid,
12766        LCID lcid,
12767        WORD wFlags,
12768        DISPPARAMS *pDispParams,
12769        VARIANT *pVarResult,
12770        EXCEPINFO *pExcepInfo,
12771        UINT *puArgErr);
12772
12773    /*** ISpeechBaseStream methods ***/
12774    HRESULT (STDMETHODCALLTYPE *get_Format)(
12775        ISpeechBaseStream *This,
12776        ISpeechAudioFormat **AudioFormat);
12777
12778    HRESULT (STDMETHODCALLTYPE *putref_Format)(
12779        ISpeechBaseStream *This,
12780        ISpeechAudioFormat *AudioFormat);
12781
12782    HRESULT (STDMETHODCALLTYPE *Read)(
12783        ISpeechBaseStream *This,
12784        VARIANT *Buffer,
12785        LONG NumberOfBytes,
12786        LONG *BytesRead);
12787
12788    HRESULT (STDMETHODCALLTYPE *Write)(
12789        ISpeechBaseStream *This,
12790        VARIANT Buffer,
12791        LONG *BytesWritten);
12792
12793    HRESULT (STDMETHODCALLTYPE *Seek)(
12794        ISpeechBaseStream *This,
12795        VARIANT Position,
12796        SpeechStreamSeekPositionType Origin,
12797        VARIANT *NewPosition);
12798
12799    END_INTERFACE
12800} ISpeechBaseStreamVtbl;
12801
12802interface ISpeechBaseStream {
12803    CONST_VTBL ISpeechBaseStreamVtbl* lpVtbl;
12804};
12805
12806#ifdef COBJMACROS
12807#ifndef WIDL_C_INLINE_WRAPPERS
12808/*** IUnknown methods ***/
12809#define ISpeechBaseStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12810#define ISpeechBaseStream_AddRef(This) (This)->lpVtbl->AddRef(This)
12811#define ISpeechBaseStream_Release(This) (This)->lpVtbl->Release(This)
12812/*** IDispatch methods ***/
12813#define ISpeechBaseStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12814#define ISpeechBaseStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12815#define ISpeechBaseStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12816#define ISpeechBaseStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12817/*** ISpeechBaseStream methods ***/
12818#define ISpeechBaseStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
12819#define ISpeechBaseStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
12820#define ISpeechBaseStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
12821#define ISpeechBaseStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
12822#define ISpeechBaseStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
12823#else
12824/*** IUnknown methods ***/
12825static inline HRESULT ISpeechBaseStream_QueryInterface(ISpeechBaseStream* This,REFIID riid,void **ppvObject) {
12826    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12827}
12828static inline ULONG ISpeechBaseStream_AddRef(ISpeechBaseStream* This) {
12829    return This->lpVtbl->AddRef(This);
12830}
12831static inline ULONG ISpeechBaseStream_Release(ISpeechBaseStream* This) {
12832    return This->lpVtbl->Release(This);
12833}
12834/*** IDispatch methods ***/
12835static inline HRESULT ISpeechBaseStream_GetTypeInfoCount(ISpeechBaseStream* This,UINT *pctinfo) {
12836    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12837}
12838static inline HRESULT ISpeechBaseStream_GetTypeInfo(ISpeechBaseStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12839    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12840}
12841static inline HRESULT ISpeechBaseStream_GetIDsOfNames(ISpeechBaseStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12842    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12843}
12844static inline HRESULT ISpeechBaseStream_Invoke(ISpeechBaseStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12845    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12846}
12847/*** ISpeechBaseStream methods ***/
12848static inline HRESULT ISpeechBaseStream_get_Format(ISpeechBaseStream* This,ISpeechAudioFormat **AudioFormat) {
12849    return This->lpVtbl->get_Format(This,AudioFormat);
12850}
12851static inline HRESULT ISpeechBaseStream_putref_Format(ISpeechBaseStream* This,ISpeechAudioFormat *AudioFormat) {
12852    return This->lpVtbl->putref_Format(This,AudioFormat);
12853}
12854static inline HRESULT ISpeechBaseStream_Read(ISpeechBaseStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
12855    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
12856}
12857static inline HRESULT ISpeechBaseStream_Write(ISpeechBaseStream* This,VARIANT Buffer,LONG *BytesWritten) {
12858    return This->lpVtbl->Write(This,Buffer,BytesWritten);
12859}
12860static inline HRESULT ISpeechBaseStream_Seek(ISpeechBaseStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
12861    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
12862}
12863#endif
12864#endif
12865
12866#endif
12867
12868
12869#endif  /* __ISpeechBaseStream_INTERFACE_DEFINED__ */
12870
12871/*****************************************************************************
12872 * ISpeechAudio interface
12873 */
12874#ifndef __ISpeechAudio_INTERFACE_DEFINED__
12875#define __ISpeechAudio_INTERFACE_DEFINED__
12876
12877DEFINE_GUID(IID_ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
12878#if defined(__cplusplus) && !defined(CINTERFACE)
12879MIDL_INTERFACE("cff8e175-019e-11d3-a08e-00c04f8ef9b5")
12880ISpeechAudio : public ISpeechBaseStream
12881{
12882    virtual HRESULT STDMETHODCALLTYPE get_Status(
12883        ISpeechAudioStatus **Status) = 0;
12884
12885    virtual HRESULT STDMETHODCALLTYPE get_BufferInfo(
12886        ISpeechAudioBufferInfo **BufferInfo) = 0;
12887
12888    virtual HRESULT STDMETHODCALLTYPE get_DefaultFormat(
12889        ISpeechAudioFormat **StreamFormat) = 0;
12890
12891    virtual HRESULT STDMETHODCALLTYPE get_Volume(
12892        LONG *Volume) = 0;
12893
12894    virtual HRESULT STDMETHODCALLTYPE put_Volume(
12895        LONG Volume) = 0;
12896
12897    virtual HRESULT STDMETHODCALLTYPE get_BufferNotifySize(
12898        LONG *BufferNotifySize) = 0;
12899
12900    virtual HRESULT STDMETHODCALLTYPE put_BufferNotifySize(
12901        LONG BufferNotifySize) = 0;
12902
12903    virtual HRESULT STDMETHODCALLTYPE get_EventHandle(
12904        LONG *EventHandle) = 0;
12905
12906    virtual HRESULT STDMETHODCALLTYPE SetState(
12907        SpeechAudioState State) = 0;
12908
12909};
12910#ifdef __CRT_UUID_DECL
12911__CRT_UUID_DECL(ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
12912#endif
12913#else
12914typedef struct ISpeechAudioVtbl {
12915    BEGIN_INTERFACE
12916
12917    /*** IUnknown methods ***/
12918    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12919        ISpeechAudio *This,
12920        REFIID riid,
12921        void **ppvObject);
12922
12923    ULONG (STDMETHODCALLTYPE *AddRef)(
12924        ISpeechAudio *This);
12925
12926    ULONG (STDMETHODCALLTYPE *Release)(
12927        ISpeechAudio *This);
12928
12929    /*** IDispatch methods ***/
12930    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12931        ISpeechAudio *This,
12932        UINT *pctinfo);
12933
12934    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12935        ISpeechAudio *This,
12936        UINT iTInfo,
12937        LCID lcid,
12938        ITypeInfo **ppTInfo);
12939
12940    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12941        ISpeechAudio *This,
12942        REFIID riid,
12943        LPOLESTR *rgszNames,
12944        UINT cNames,
12945        LCID lcid,
12946        DISPID *rgDispId);
12947
12948    HRESULT (STDMETHODCALLTYPE *Invoke)(
12949        ISpeechAudio *This,
12950        DISPID dispIdMember,
12951        REFIID riid,
12952        LCID lcid,
12953        WORD wFlags,
12954        DISPPARAMS *pDispParams,
12955        VARIANT *pVarResult,
12956        EXCEPINFO *pExcepInfo,
12957        UINT *puArgErr);
12958
12959    /*** ISpeechBaseStream methods ***/
12960    HRESULT (STDMETHODCALLTYPE *get_Format)(
12961        ISpeechAudio *This,
12962        ISpeechAudioFormat **AudioFormat);
12963
12964    HRESULT (STDMETHODCALLTYPE *putref_Format)(
12965        ISpeechAudio *This,
12966        ISpeechAudioFormat *AudioFormat);
12967
12968    HRESULT (STDMETHODCALLTYPE *Read)(
12969        ISpeechAudio *This,
12970        VARIANT *Buffer,
12971        LONG NumberOfBytes,
12972        LONG *BytesRead);
12973
12974    HRESULT (STDMETHODCALLTYPE *Write)(
12975        ISpeechAudio *This,
12976        VARIANT Buffer,
12977        LONG *BytesWritten);
12978
12979    HRESULT (STDMETHODCALLTYPE *Seek)(
12980        ISpeechAudio *This,
12981        VARIANT Position,
12982        SpeechStreamSeekPositionType Origin,
12983        VARIANT *NewPosition);
12984
12985    /*** ISpeechAudio methods ***/
12986    HRESULT (STDMETHODCALLTYPE *get_Status)(
12987        ISpeechAudio *This,
12988        ISpeechAudioStatus **Status);
12989
12990    HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
12991        ISpeechAudio *This,
12992        ISpeechAudioBufferInfo **BufferInfo);
12993
12994    HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
12995        ISpeechAudio *This,
12996        ISpeechAudioFormat **StreamFormat);
12997
12998    HRESULT (STDMETHODCALLTYPE *get_Volume)(
12999        ISpeechAudio *This,
13000        LONG *Volume);
13001
13002    HRESULT (STDMETHODCALLTYPE *put_Volume)(
13003        ISpeechAudio *This,
13004        LONG Volume);
13005
13006    HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
13007        ISpeechAudio *This,
13008        LONG *BufferNotifySize);
13009
13010    HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
13011        ISpeechAudio *This,
13012        LONG BufferNotifySize);
13013
13014    HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
13015        ISpeechAudio *This,
13016        LONG *EventHandle);
13017
13018    HRESULT (STDMETHODCALLTYPE *SetState)(
13019        ISpeechAudio *This,
13020        SpeechAudioState State);
13021
13022    END_INTERFACE
13023} ISpeechAudioVtbl;
13024
13025interface ISpeechAudio {
13026    CONST_VTBL ISpeechAudioVtbl* lpVtbl;
13027};
13028
13029#ifdef COBJMACROS
13030#ifndef WIDL_C_INLINE_WRAPPERS
13031/*** IUnknown methods ***/
13032#define ISpeechAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13033#define ISpeechAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
13034#define ISpeechAudio_Release(This) (This)->lpVtbl->Release(This)
13035/*** IDispatch methods ***/
13036#define ISpeechAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13037#define ISpeechAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13038#define ISpeechAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13039#define ISpeechAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13040/*** ISpeechBaseStream methods ***/
13041#define ISpeechAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13042#define ISpeechAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13043#define ISpeechAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13044#define ISpeechAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13045#define ISpeechAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13046/*** ISpeechAudio methods ***/
13047#define ISpeechAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
13048#define ISpeechAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
13049#define ISpeechAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
13050#define ISpeechAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
13051#define ISpeechAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
13052#define ISpeechAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
13053#define ISpeechAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
13054#define ISpeechAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
13055#define ISpeechAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
13056#else
13057/*** IUnknown methods ***/
13058static inline HRESULT ISpeechAudio_QueryInterface(ISpeechAudio* This,REFIID riid,void **ppvObject) {
13059    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13060}
13061static inline ULONG ISpeechAudio_AddRef(ISpeechAudio* This) {
13062    return This->lpVtbl->AddRef(This);
13063}
13064static inline ULONG ISpeechAudio_Release(ISpeechAudio* This) {
13065    return This->lpVtbl->Release(This);
13066}
13067/*** IDispatch methods ***/
13068static inline HRESULT ISpeechAudio_GetTypeInfoCount(ISpeechAudio* This,UINT *pctinfo) {
13069    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13070}
13071static inline HRESULT ISpeechAudio_GetTypeInfo(ISpeechAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13072    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13073}
13074static inline HRESULT ISpeechAudio_GetIDsOfNames(ISpeechAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13075    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13076}
13077static inline HRESULT ISpeechAudio_Invoke(ISpeechAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13078    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13079}
13080/*** ISpeechBaseStream methods ***/
13081static inline HRESULT ISpeechAudio_get_Format(ISpeechAudio* This,ISpeechAudioFormat **AudioFormat) {
13082    return This->lpVtbl->get_Format(This,AudioFormat);
13083}
13084static inline HRESULT ISpeechAudio_putref_Format(ISpeechAudio* This,ISpeechAudioFormat *AudioFormat) {
13085    return This->lpVtbl->putref_Format(This,AudioFormat);
13086}
13087static inline HRESULT ISpeechAudio_Read(ISpeechAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13088    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13089}
13090static inline HRESULT ISpeechAudio_Write(ISpeechAudio* This,VARIANT Buffer,LONG *BytesWritten) {
13091    return This->lpVtbl->Write(This,Buffer,BytesWritten);
13092}
13093static inline HRESULT ISpeechAudio_Seek(ISpeechAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13094    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13095}
13096/*** ISpeechAudio methods ***/
13097static inline HRESULT ISpeechAudio_get_Status(ISpeechAudio* This,ISpeechAudioStatus **Status) {
13098    return This->lpVtbl->get_Status(This,Status);
13099}
13100static inline HRESULT ISpeechAudio_get_BufferInfo(ISpeechAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
13101    return This->lpVtbl->get_BufferInfo(This,BufferInfo);
13102}
13103static inline HRESULT ISpeechAudio_get_DefaultFormat(ISpeechAudio* This,ISpeechAudioFormat **StreamFormat) {
13104    return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
13105}
13106static inline HRESULT ISpeechAudio_get_Volume(ISpeechAudio* This,LONG *Volume) {
13107    return This->lpVtbl->get_Volume(This,Volume);
13108}
13109static inline HRESULT ISpeechAudio_put_Volume(ISpeechAudio* This,LONG Volume) {
13110    return This->lpVtbl->put_Volume(This,Volume);
13111}
13112static inline HRESULT ISpeechAudio_get_BufferNotifySize(ISpeechAudio* This,LONG *BufferNotifySize) {
13113    return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
13114}
13115static inline HRESULT ISpeechAudio_put_BufferNotifySize(ISpeechAudio* This,LONG BufferNotifySize) {
13116    return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
13117}
13118static inline HRESULT ISpeechAudio_get_EventHandle(ISpeechAudio* This,LONG *EventHandle) {
13119    return This->lpVtbl->get_EventHandle(This,EventHandle);
13120}
13121static inline HRESULT ISpeechAudio_SetState(ISpeechAudio* This,SpeechAudioState State) {
13122    return This->lpVtbl->SetState(This,State);
13123}
13124#endif
13125#endif
13126
13127#endif
13128
13129
13130#endif  /* __ISpeechAudio_INTERFACE_DEFINED__ */
13131
13132/*****************************************************************************
13133 * ISpeechMMSysAudio interface
13134 */
13135#ifndef __ISpeechMMSysAudio_INTERFACE_DEFINED__
13136#define __ISpeechMMSysAudio_INTERFACE_DEFINED__
13137
13138DEFINE_GUID(IID_ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44);
13139#if defined(__cplusplus) && !defined(CINTERFACE)
13140MIDL_INTERFACE("3c76af6d-1fd7-4831-81d1-3b71d5a13c44")
13141ISpeechMMSysAudio : public ISpeechAudio
13142{
13143    virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
13144        LONG *DeviceId) = 0;
13145
13146    virtual HRESULT STDMETHODCALLTYPE put_DeviceId(
13147        LONG DeviceId) = 0;
13148
13149    virtual HRESULT STDMETHODCALLTYPE get_LineId(
13150        LONG *LineId) = 0;
13151
13152    virtual HRESULT STDMETHODCALLTYPE put_LineId(
13153        LONG LineId) = 0;
13154
13155    virtual HRESULT STDMETHODCALLTYPE get_MMHandle(
13156        LONG *Handle) = 0;
13157
13158};
13159#ifdef __CRT_UUID_DECL
13160__CRT_UUID_DECL(ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44)
13161#endif
13162#else
13163typedef struct ISpeechMMSysAudioVtbl {
13164    BEGIN_INTERFACE
13165
13166    /*** IUnknown methods ***/
13167    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13168        ISpeechMMSysAudio *This,
13169        REFIID riid,
13170        void **ppvObject);
13171
13172    ULONG (STDMETHODCALLTYPE *AddRef)(
13173        ISpeechMMSysAudio *This);
13174
13175    ULONG (STDMETHODCALLTYPE *Release)(
13176        ISpeechMMSysAudio *This);
13177
13178    /*** IDispatch methods ***/
13179    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13180        ISpeechMMSysAudio *This,
13181        UINT *pctinfo);
13182
13183    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13184        ISpeechMMSysAudio *This,
13185        UINT iTInfo,
13186        LCID lcid,
13187        ITypeInfo **ppTInfo);
13188
13189    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13190        ISpeechMMSysAudio *This,
13191        REFIID riid,
13192        LPOLESTR *rgszNames,
13193        UINT cNames,
13194        LCID lcid,
13195        DISPID *rgDispId);
13196
13197    HRESULT (STDMETHODCALLTYPE *Invoke)(
13198        ISpeechMMSysAudio *This,
13199        DISPID dispIdMember,
13200        REFIID riid,
13201        LCID lcid,
13202        WORD wFlags,
13203        DISPPARAMS *pDispParams,
13204        VARIANT *pVarResult,
13205        EXCEPINFO *pExcepInfo,
13206        UINT *puArgErr);
13207
13208    /*** ISpeechBaseStream methods ***/
13209    HRESULT (STDMETHODCALLTYPE *get_Format)(
13210        ISpeechMMSysAudio *This,
13211        ISpeechAudioFormat **AudioFormat);
13212
13213    HRESULT (STDMETHODCALLTYPE *putref_Format)(
13214        ISpeechMMSysAudio *This,
13215        ISpeechAudioFormat *AudioFormat);
13216
13217    HRESULT (STDMETHODCALLTYPE *Read)(
13218        ISpeechMMSysAudio *This,
13219        VARIANT *Buffer,
13220        LONG NumberOfBytes,
13221        LONG *BytesRead);
13222
13223    HRESULT (STDMETHODCALLTYPE *Write)(
13224        ISpeechMMSysAudio *This,
13225        VARIANT Buffer,
13226        LONG *BytesWritten);
13227
13228    HRESULT (STDMETHODCALLTYPE *Seek)(
13229        ISpeechMMSysAudio *This,
13230        VARIANT Position,
13231        SpeechStreamSeekPositionType Origin,
13232        VARIANT *NewPosition);
13233
13234    /*** ISpeechAudio methods ***/
13235    HRESULT (STDMETHODCALLTYPE *get_Status)(
13236        ISpeechMMSysAudio *This,
13237        ISpeechAudioStatus **Status);
13238
13239    HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
13240        ISpeechMMSysAudio *This,
13241        ISpeechAudioBufferInfo **BufferInfo);
13242
13243    HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
13244        ISpeechMMSysAudio *This,
13245        ISpeechAudioFormat **StreamFormat);
13246
13247    HRESULT (STDMETHODCALLTYPE *get_Volume)(
13248        ISpeechMMSysAudio *This,
13249        LONG *Volume);
13250
13251    HRESULT (STDMETHODCALLTYPE *put_Volume)(
13252        ISpeechMMSysAudio *This,
13253        LONG Volume);
13254
13255    HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
13256        ISpeechMMSysAudio *This,
13257        LONG *BufferNotifySize);
13258
13259    HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
13260        ISpeechMMSysAudio *This,
13261        LONG BufferNotifySize);
13262
13263    HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
13264        ISpeechMMSysAudio *This,
13265        LONG *EventHandle);
13266
13267    HRESULT (STDMETHODCALLTYPE *SetState)(
13268        ISpeechMMSysAudio *This,
13269        SpeechAudioState State);
13270
13271    /*** ISpeechMMSysAudio methods ***/
13272    HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
13273        ISpeechMMSysAudio *This,
13274        LONG *DeviceId);
13275
13276    HRESULT (STDMETHODCALLTYPE *put_DeviceId)(
13277        ISpeechMMSysAudio *This,
13278        LONG DeviceId);
13279
13280    HRESULT (STDMETHODCALLTYPE *get_LineId)(
13281        ISpeechMMSysAudio *This,
13282        LONG *LineId);
13283
13284    HRESULT (STDMETHODCALLTYPE *put_LineId)(
13285        ISpeechMMSysAudio *This,
13286        LONG LineId);
13287
13288    HRESULT (STDMETHODCALLTYPE *get_MMHandle)(
13289        ISpeechMMSysAudio *This,
13290        LONG *Handle);
13291
13292    END_INTERFACE
13293} ISpeechMMSysAudioVtbl;
13294
13295interface ISpeechMMSysAudio {
13296    CONST_VTBL ISpeechMMSysAudioVtbl* lpVtbl;
13297};
13298
13299#ifdef COBJMACROS
13300#ifndef WIDL_C_INLINE_WRAPPERS
13301/*** IUnknown methods ***/
13302#define ISpeechMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13303#define ISpeechMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
13304#define ISpeechMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
13305/*** IDispatch methods ***/
13306#define ISpeechMMSysAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13307#define ISpeechMMSysAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13308#define ISpeechMMSysAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13309#define ISpeechMMSysAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13310/*** ISpeechBaseStream methods ***/
13311#define ISpeechMMSysAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13312#define ISpeechMMSysAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13313#define ISpeechMMSysAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13314#define ISpeechMMSysAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13315#define ISpeechMMSysAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13316/*** ISpeechAudio methods ***/
13317#define ISpeechMMSysAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
13318#define ISpeechMMSysAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
13319#define ISpeechMMSysAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
13320#define ISpeechMMSysAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
13321#define ISpeechMMSysAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
13322#define ISpeechMMSysAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
13323#define ISpeechMMSysAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
13324#define ISpeechMMSysAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
13325#define ISpeechMMSysAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
13326/*** ISpeechMMSysAudio methods ***/
13327#define ISpeechMMSysAudio_get_DeviceId(This,DeviceId) (This)->lpVtbl->get_DeviceId(This,DeviceId)
13328#define ISpeechMMSysAudio_put_DeviceId(This,DeviceId) (This)->lpVtbl->put_DeviceId(This,DeviceId)
13329#define ISpeechMMSysAudio_get_LineId(This,LineId) (This)->lpVtbl->get_LineId(This,LineId)
13330#define ISpeechMMSysAudio_put_LineId(This,LineId) (This)->lpVtbl->put_LineId(This,LineId)
13331#define ISpeechMMSysAudio_get_MMHandle(This,Handle) (This)->lpVtbl->get_MMHandle(This,Handle)
13332#else
13333/*** IUnknown methods ***/
13334static inline HRESULT ISpeechMMSysAudio_QueryInterface(ISpeechMMSysAudio* This,REFIID riid,void **ppvObject) {
13335    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13336}
13337static inline ULONG ISpeechMMSysAudio_AddRef(ISpeechMMSysAudio* This) {
13338    return This->lpVtbl->AddRef(This);
13339}
13340static inline ULONG ISpeechMMSysAudio_Release(ISpeechMMSysAudio* This) {
13341    return This->lpVtbl->Release(This);
13342}
13343/*** IDispatch methods ***/
13344static inline HRESULT ISpeechMMSysAudio_GetTypeInfoCount(ISpeechMMSysAudio* This,UINT *pctinfo) {
13345    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13346}
13347static inline HRESULT ISpeechMMSysAudio_GetTypeInfo(ISpeechMMSysAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13348    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13349}
13350static inline HRESULT ISpeechMMSysAudio_GetIDsOfNames(ISpeechMMSysAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13351    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13352}
13353static inline HRESULT ISpeechMMSysAudio_Invoke(ISpeechMMSysAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13354    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13355}
13356/*** ISpeechBaseStream methods ***/
13357static inline HRESULT ISpeechMMSysAudio_get_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat **AudioFormat) {
13358    return This->lpVtbl->get_Format(This,AudioFormat);
13359}
13360static inline HRESULT ISpeechMMSysAudio_putref_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat *AudioFormat) {
13361    return This->lpVtbl->putref_Format(This,AudioFormat);
13362}
13363static inline HRESULT ISpeechMMSysAudio_Read(ISpeechMMSysAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13364    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13365}
13366static inline HRESULT ISpeechMMSysAudio_Write(ISpeechMMSysAudio* This,VARIANT Buffer,LONG *BytesWritten) {
13367    return This->lpVtbl->Write(This,Buffer,BytesWritten);
13368}
13369static inline HRESULT ISpeechMMSysAudio_Seek(ISpeechMMSysAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13370    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13371}
13372/*** ISpeechAudio methods ***/
13373static inline HRESULT ISpeechMMSysAudio_get_Status(ISpeechMMSysAudio* This,ISpeechAudioStatus **Status) {
13374    return This->lpVtbl->get_Status(This,Status);
13375}
13376static inline HRESULT ISpeechMMSysAudio_get_BufferInfo(ISpeechMMSysAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
13377    return This->lpVtbl->get_BufferInfo(This,BufferInfo);
13378}
13379static inline HRESULT ISpeechMMSysAudio_get_DefaultFormat(ISpeechMMSysAudio* This,ISpeechAudioFormat **StreamFormat) {
13380    return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
13381}
13382static inline HRESULT ISpeechMMSysAudio_get_Volume(ISpeechMMSysAudio* This,LONG *Volume) {
13383    return This->lpVtbl->get_Volume(This,Volume);
13384}
13385static inline HRESULT ISpeechMMSysAudio_put_Volume(ISpeechMMSysAudio* This,LONG Volume) {
13386    return This->lpVtbl->put_Volume(This,Volume);
13387}
13388static inline HRESULT ISpeechMMSysAudio_get_BufferNotifySize(ISpeechMMSysAudio* This,LONG *BufferNotifySize) {
13389    return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
13390}
13391static inline HRESULT ISpeechMMSysAudio_put_BufferNotifySize(ISpeechMMSysAudio* This,LONG BufferNotifySize) {
13392    return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
13393}
13394static inline HRESULT ISpeechMMSysAudio_get_EventHandle(ISpeechMMSysAudio* This,LONG *EventHandle) {
13395    return This->lpVtbl->get_EventHandle(This,EventHandle);
13396}
13397static inline HRESULT ISpeechMMSysAudio_SetState(ISpeechMMSysAudio* This,SpeechAudioState State) {
13398    return This->lpVtbl->SetState(This,State);
13399}
13400/*** ISpeechMMSysAudio methods ***/
13401static inline HRESULT ISpeechMMSysAudio_get_DeviceId(ISpeechMMSysAudio* This,LONG *DeviceId) {
13402    return This->lpVtbl->get_DeviceId(This,DeviceId);
13403}
13404static inline HRESULT ISpeechMMSysAudio_put_DeviceId(ISpeechMMSysAudio* This,LONG DeviceId) {
13405    return This->lpVtbl->put_DeviceId(This,DeviceId);
13406}
13407static inline HRESULT ISpeechMMSysAudio_get_LineId(ISpeechMMSysAudio* This,LONG *LineId) {
13408    return This->lpVtbl->get_LineId(This,LineId);
13409}
13410static inline HRESULT ISpeechMMSysAudio_put_LineId(ISpeechMMSysAudio* This,LONG LineId) {
13411    return This->lpVtbl->put_LineId(This,LineId);
13412}
13413static inline HRESULT ISpeechMMSysAudio_get_MMHandle(ISpeechMMSysAudio* This,LONG *Handle) {
13414    return This->lpVtbl->get_MMHandle(This,Handle);
13415}
13416#endif
13417#endif
13418
13419#endif
13420
13421
13422#endif  /* __ISpeechMMSysAudio_INTERFACE_DEFINED__ */
13423
13424/*****************************************************************************
13425 * ISpeechFileStream interface
13426 */
13427#ifndef __ISpeechFileStream_INTERFACE_DEFINED__
13428#define __ISpeechFileStream_INTERFACE_DEFINED__
13429
13430DEFINE_GUID(IID_ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7);
13431#if defined(__cplusplus) && !defined(CINTERFACE)
13432MIDL_INTERFACE("af67f125-ab39-4e93-b4a2-cc2e66e182a7")
13433ISpeechFileStream : public ISpeechBaseStream
13434{
13435    virtual HRESULT STDMETHODCALLTYPE Open(
13436        BSTR FileName,
13437        SpeechStreamFileMode FileMode = SSFMOpenForRead,
13438        VARIANT_BOOL DoEvents = 0) = 0;
13439
13440    virtual HRESULT STDMETHODCALLTYPE Close(
13441        ) = 0;
13442
13443};
13444#ifdef __CRT_UUID_DECL
13445__CRT_UUID_DECL(ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7)
13446#endif
13447#else
13448typedef struct ISpeechFileStreamVtbl {
13449    BEGIN_INTERFACE
13450
13451    /*** IUnknown methods ***/
13452    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13453        ISpeechFileStream *This,
13454        REFIID riid,
13455        void **ppvObject);
13456
13457    ULONG (STDMETHODCALLTYPE *AddRef)(
13458        ISpeechFileStream *This);
13459
13460    ULONG (STDMETHODCALLTYPE *Release)(
13461        ISpeechFileStream *This);
13462
13463    /*** IDispatch methods ***/
13464    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13465        ISpeechFileStream *This,
13466        UINT *pctinfo);
13467
13468    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13469        ISpeechFileStream *This,
13470        UINT iTInfo,
13471        LCID lcid,
13472        ITypeInfo **ppTInfo);
13473
13474    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13475        ISpeechFileStream *This,
13476        REFIID riid,
13477        LPOLESTR *rgszNames,
13478        UINT cNames,
13479        LCID lcid,
13480        DISPID *rgDispId);
13481
13482    HRESULT (STDMETHODCALLTYPE *Invoke)(
13483        ISpeechFileStream *This,
13484        DISPID dispIdMember,
13485        REFIID riid,
13486        LCID lcid,
13487        WORD wFlags,
13488        DISPPARAMS *pDispParams,
13489        VARIANT *pVarResult,
13490        EXCEPINFO *pExcepInfo,
13491        UINT *puArgErr);
13492
13493    /*** ISpeechBaseStream methods ***/
13494    HRESULT (STDMETHODCALLTYPE *get_Format)(
13495        ISpeechFileStream *This,
13496        ISpeechAudioFormat **AudioFormat);
13497
13498    HRESULT (STDMETHODCALLTYPE *putref_Format)(
13499        ISpeechFileStream *This,
13500        ISpeechAudioFormat *AudioFormat);
13501
13502    HRESULT (STDMETHODCALLTYPE *Read)(
13503        ISpeechFileStream *This,
13504        VARIANT *Buffer,
13505        LONG NumberOfBytes,
13506        LONG *BytesRead);
13507
13508    HRESULT (STDMETHODCALLTYPE *Write)(
13509        ISpeechFileStream *This,
13510        VARIANT Buffer,
13511        LONG *BytesWritten);
13512
13513    HRESULT (STDMETHODCALLTYPE *Seek)(
13514        ISpeechFileStream *This,
13515        VARIANT Position,
13516        SpeechStreamSeekPositionType Origin,
13517        VARIANT *NewPosition);
13518
13519    /*** ISpeechFileStream methods ***/
13520    HRESULT (STDMETHODCALLTYPE *Open)(
13521        ISpeechFileStream *This,
13522        BSTR FileName,
13523        SpeechStreamFileMode FileMode,
13524        VARIANT_BOOL DoEvents);
13525
13526    HRESULT (STDMETHODCALLTYPE *Close)(
13527        ISpeechFileStream *This);
13528
13529    END_INTERFACE
13530} ISpeechFileStreamVtbl;
13531
13532interface ISpeechFileStream {
13533    CONST_VTBL ISpeechFileStreamVtbl* lpVtbl;
13534};
13535
13536#ifdef COBJMACROS
13537#ifndef WIDL_C_INLINE_WRAPPERS
13538/*** IUnknown methods ***/
13539#define ISpeechFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13540#define ISpeechFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
13541#define ISpeechFileStream_Release(This) (This)->lpVtbl->Release(This)
13542/*** IDispatch methods ***/
13543#define ISpeechFileStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13544#define ISpeechFileStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13545#define ISpeechFileStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13546#define ISpeechFileStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13547/*** ISpeechBaseStream methods ***/
13548#define ISpeechFileStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13549#define ISpeechFileStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13550#define ISpeechFileStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13551#define ISpeechFileStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13552#define ISpeechFileStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13553/*** ISpeechFileStream methods ***/
13554#define ISpeechFileStream_Open(This,FileName,FileMode,DoEvents) (This)->lpVtbl->Open(This,FileName,FileMode,DoEvents)
13555#define ISpeechFileStream_Close(This) (This)->lpVtbl->Close(This)
13556#else
13557/*** IUnknown methods ***/
13558static inline HRESULT ISpeechFileStream_QueryInterface(ISpeechFileStream* This,REFIID riid,void **ppvObject) {
13559    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13560}
13561static inline ULONG ISpeechFileStream_AddRef(ISpeechFileStream* This) {
13562    return This->lpVtbl->AddRef(This);
13563}
13564static inline ULONG ISpeechFileStream_Release(ISpeechFileStream* This) {
13565    return This->lpVtbl->Release(This);
13566}
13567/*** IDispatch methods ***/
13568static inline HRESULT ISpeechFileStream_GetTypeInfoCount(ISpeechFileStream* This,UINT *pctinfo) {
13569    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13570}
13571static inline HRESULT ISpeechFileStream_GetTypeInfo(ISpeechFileStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13572    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13573}
13574static inline HRESULT ISpeechFileStream_GetIDsOfNames(ISpeechFileStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13575    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13576}
13577static inline HRESULT ISpeechFileStream_Invoke(ISpeechFileStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13578    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13579}
13580/*** ISpeechBaseStream methods ***/
13581static inline HRESULT ISpeechFileStream_get_Format(ISpeechFileStream* This,ISpeechAudioFormat **AudioFormat) {
13582    return This->lpVtbl->get_Format(This,AudioFormat);
13583}
13584static inline HRESULT ISpeechFileStream_putref_Format(ISpeechFileStream* This,ISpeechAudioFormat *AudioFormat) {
13585    return This->lpVtbl->putref_Format(This,AudioFormat);
13586}
13587static inline HRESULT ISpeechFileStream_Read(ISpeechFileStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13588    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13589}
13590static inline HRESULT ISpeechFileStream_Write(ISpeechFileStream* This,VARIANT Buffer,LONG *BytesWritten) {
13591    return This->lpVtbl->Write(This,Buffer,BytesWritten);
13592}
13593static inline HRESULT ISpeechFileStream_Seek(ISpeechFileStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13594    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13595}
13596/*** ISpeechFileStream methods ***/
13597static inline HRESULT ISpeechFileStream_Open(ISpeechFileStream* This,BSTR FileName,SpeechStreamFileMode FileMode,VARIANT_BOOL DoEvents) {
13598    return This->lpVtbl->Open(This,FileName,FileMode,DoEvents);
13599}
13600static inline HRESULT ISpeechFileStream_Close(ISpeechFileStream* This) {
13601    return This->lpVtbl->Close(This);
13602}
13603#endif
13604#endif
13605
13606#endif
13607
13608
13609#endif  /* __ISpeechFileStream_INTERFACE_DEFINED__ */
13610
13611/*****************************************************************************
13612 * ISpeechCustomStream interface
13613 */
13614#ifndef __ISpeechCustomStream_INTERFACE_DEFINED__
13615#define __ISpeechCustomStream_INTERFACE_DEFINED__
13616
13617DEFINE_GUID(IID_ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae);
13618#if defined(__cplusplus) && !defined(CINTERFACE)
13619MIDL_INTERFACE("1a9e9f4f-104f-4db8-a115-efd7fd0c97ae")
13620ISpeechCustomStream : public ISpeechBaseStream
13621{
13622    virtual HRESULT STDMETHODCALLTYPE get_BaseStream(
13623        IUnknown **ppUnkStream) = 0;
13624
13625    virtual HRESULT STDMETHODCALLTYPE putref_BaseStream(
13626        IUnknown *pUnkStream) = 0;
13627
13628};
13629#ifdef __CRT_UUID_DECL
13630__CRT_UUID_DECL(ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae)
13631#endif
13632#else
13633typedef struct ISpeechCustomStreamVtbl {
13634    BEGIN_INTERFACE
13635
13636    /*** IUnknown methods ***/
13637    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13638        ISpeechCustomStream *This,
13639        REFIID riid,
13640        void **ppvObject);
13641
13642    ULONG (STDMETHODCALLTYPE *AddRef)(
13643        ISpeechCustomStream *This);
13644
13645    ULONG (STDMETHODCALLTYPE *Release)(
13646        ISpeechCustomStream *This);
13647
13648    /*** IDispatch methods ***/
13649    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13650        ISpeechCustomStream *This,
13651        UINT *pctinfo);
13652
13653    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13654        ISpeechCustomStream *This,
13655        UINT iTInfo,
13656        LCID lcid,
13657        ITypeInfo **ppTInfo);
13658
13659    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13660        ISpeechCustomStream *This,
13661        REFIID riid,
13662        LPOLESTR *rgszNames,
13663        UINT cNames,
13664        LCID lcid,
13665        DISPID *rgDispId);
13666
13667    HRESULT (STDMETHODCALLTYPE *Invoke)(
13668        ISpeechCustomStream *This,
13669        DISPID dispIdMember,
13670        REFIID riid,
13671        LCID lcid,
13672        WORD wFlags,
13673        DISPPARAMS *pDispParams,
13674        VARIANT *pVarResult,
13675        EXCEPINFO *pExcepInfo,
13676        UINT *puArgErr);
13677
13678    /*** ISpeechBaseStream methods ***/
13679    HRESULT (STDMETHODCALLTYPE *get_Format)(
13680        ISpeechCustomStream *This,
13681        ISpeechAudioFormat **AudioFormat);
13682
13683    HRESULT (STDMETHODCALLTYPE *putref_Format)(
13684        ISpeechCustomStream *This,
13685        ISpeechAudioFormat *AudioFormat);
13686
13687    HRESULT (STDMETHODCALLTYPE *Read)(
13688        ISpeechCustomStream *This,
13689        VARIANT *Buffer,
13690        LONG NumberOfBytes,
13691        LONG *BytesRead);
13692
13693    HRESULT (STDMETHODCALLTYPE *Write)(
13694        ISpeechCustomStream *This,
13695        VARIANT Buffer,
13696        LONG *BytesWritten);
13697
13698    HRESULT (STDMETHODCALLTYPE *Seek)(
13699        ISpeechCustomStream *This,
13700        VARIANT Position,
13701        SpeechStreamSeekPositionType Origin,
13702        VARIANT *NewPosition);
13703
13704    /*** ISpeechCustomStream methods ***/
13705    HRESULT (STDMETHODCALLTYPE *get_BaseStream)(
13706        ISpeechCustomStream *This,
13707        IUnknown **ppUnkStream);
13708
13709    HRESULT (STDMETHODCALLTYPE *putref_BaseStream)(
13710        ISpeechCustomStream *This,
13711        IUnknown *pUnkStream);
13712
13713    END_INTERFACE
13714} ISpeechCustomStreamVtbl;
13715
13716interface ISpeechCustomStream {
13717    CONST_VTBL ISpeechCustomStreamVtbl* lpVtbl;
13718};
13719
13720#ifdef COBJMACROS
13721#ifndef WIDL_C_INLINE_WRAPPERS
13722/*** IUnknown methods ***/
13723#define ISpeechCustomStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13724#define ISpeechCustomStream_AddRef(This) (This)->lpVtbl->AddRef(This)
13725#define ISpeechCustomStream_Release(This) (This)->lpVtbl->Release(This)
13726/*** IDispatch methods ***/
13727#define ISpeechCustomStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13728#define ISpeechCustomStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13729#define ISpeechCustomStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13730#define ISpeechCustomStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13731/*** ISpeechBaseStream methods ***/
13732#define ISpeechCustomStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13733#define ISpeechCustomStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13734#define ISpeechCustomStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13735#define ISpeechCustomStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13736#define ISpeechCustomStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13737/*** ISpeechCustomStream methods ***/
13738#define ISpeechCustomStream_get_BaseStream(This,ppUnkStream) (This)->lpVtbl->get_BaseStream(This,ppUnkStream)
13739#define ISpeechCustomStream_putref_BaseStream(This,pUnkStream) (This)->lpVtbl->putref_BaseStream(This,pUnkStream)
13740#else
13741/*** IUnknown methods ***/
13742static inline HRESULT ISpeechCustomStream_QueryInterface(ISpeechCustomStream* This,REFIID riid,void **ppvObject) {
13743    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13744}
13745static inline ULONG ISpeechCustomStream_AddRef(ISpeechCustomStream* This) {
13746    return This->lpVtbl->AddRef(This);
13747}
13748static inline ULONG ISpeechCustomStream_Release(ISpeechCustomStream* This) {
13749    return This->lpVtbl->Release(This);
13750}
13751/*** IDispatch methods ***/
13752static inline HRESULT ISpeechCustomStream_GetTypeInfoCount(ISpeechCustomStream* This,UINT *pctinfo) {
13753    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13754}
13755static inline HRESULT ISpeechCustomStream_GetTypeInfo(ISpeechCustomStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13756    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13757}
13758static inline HRESULT ISpeechCustomStream_GetIDsOfNames(ISpeechCustomStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13759    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13760}
13761static inline HRESULT ISpeechCustomStream_Invoke(ISpeechCustomStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13762    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13763}
13764/*** ISpeechBaseStream methods ***/
13765static inline HRESULT ISpeechCustomStream_get_Format(ISpeechCustomStream* This,ISpeechAudioFormat **AudioFormat) {
13766    return This->lpVtbl->get_Format(This,AudioFormat);
13767}
13768static inline HRESULT ISpeechCustomStream_putref_Format(ISpeechCustomStream* This,ISpeechAudioFormat *AudioFormat) {
13769    return This->lpVtbl->putref_Format(This,AudioFormat);
13770}
13771static inline HRESULT ISpeechCustomStream_Read(ISpeechCustomStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13772    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13773}
13774static inline HRESULT ISpeechCustomStream_Write(ISpeechCustomStream* This,VARIANT Buffer,LONG *BytesWritten) {
13775    return This->lpVtbl->Write(This,Buffer,BytesWritten);
13776}
13777static inline HRESULT ISpeechCustomStream_Seek(ISpeechCustomStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13778    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13779}
13780/*** ISpeechCustomStream methods ***/
13781static inline HRESULT ISpeechCustomStream_get_BaseStream(ISpeechCustomStream* This,IUnknown **ppUnkStream) {
13782    return This->lpVtbl->get_BaseStream(This,ppUnkStream);
13783}
13784static inline HRESULT ISpeechCustomStream_putref_BaseStream(ISpeechCustomStream* This,IUnknown *pUnkStream) {
13785    return This->lpVtbl->putref_BaseStream(This,pUnkStream);
13786}
13787#endif
13788#endif
13789
13790#endif
13791
13792
13793#endif  /* __ISpeechCustomStream_INTERFACE_DEFINED__ */
13794
13795/*****************************************************************************
13796 * ISpeechMemoryStream interface
13797 */
13798#ifndef __ISpeechMemoryStream_INTERFACE_DEFINED__
13799#define __ISpeechMemoryStream_INTERFACE_DEFINED__
13800
13801DEFINE_GUID(IID_ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08);
13802#if defined(__cplusplus) && !defined(CINTERFACE)
13803MIDL_INTERFACE("eeb14b68-808b-4abe-a5ea-b51da7588008")
13804ISpeechMemoryStream : public ISpeechBaseStream
13805{
13806    virtual HRESULT STDMETHODCALLTYPE SetData(
13807        VARIANT Data) = 0;
13808
13809    virtual HRESULT STDMETHODCALLTYPE GetData(
13810        VARIANT *pData) = 0;
13811
13812};
13813#ifdef __CRT_UUID_DECL
13814__CRT_UUID_DECL(ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08)
13815#endif
13816#else
13817typedef struct ISpeechMemoryStreamVtbl {
13818    BEGIN_INTERFACE
13819
13820    /*** IUnknown methods ***/
13821    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13822        ISpeechMemoryStream *This,
13823        REFIID riid,
13824        void **ppvObject);
13825
13826    ULONG (STDMETHODCALLTYPE *AddRef)(
13827        ISpeechMemoryStream *This);
13828
13829    ULONG (STDMETHODCALLTYPE *Release)(
13830        ISpeechMemoryStream *This);
13831
13832    /*** IDispatch methods ***/
13833    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13834        ISpeechMemoryStream *This,
13835        UINT *pctinfo);
13836
13837    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13838        ISpeechMemoryStream *This,
13839        UINT iTInfo,
13840        LCID lcid,
13841        ITypeInfo **ppTInfo);
13842
13843    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13844        ISpeechMemoryStream *This,
13845        REFIID riid,
13846        LPOLESTR *rgszNames,
13847        UINT cNames,
13848        LCID lcid,
13849        DISPID *rgDispId);
13850
13851    HRESULT (STDMETHODCALLTYPE *Invoke)(
13852        ISpeechMemoryStream *This,
13853        DISPID dispIdMember,
13854        REFIID riid,
13855        LCID lcid,
13856        WORD wFlags,
13857        DISPPARAMS *pDispParams,
13858        VARIANT *pVarResult,
13859        EXCEPINFO *pExcepInfo,
13860        UINT *puArgErr);
13861
13862    /*** ISpeechBaseStream methods ***/
13863    HRESULT (STDMETHODCALLTYPE *get_Format)(
13864        ISpeechMemoryStream *This,
13865        ISpeechAudioFormat **AudioFormat);
13866
13867    HRESULT (STDMETHODCALLTYPE *putref_Format)(
13868        ISpeechMemoryStream *This,
13869        ISpeechAudioFormat *AudioFormat);
13870
13871    HRESULT (STDMETHODCALLTYPE *Read)(
13872        ISpeechMemoryStream *This,
13873        VARIANT *Buffer,
13874        LONG NumberOfBytes,
13875        LONG *BytesRead);
13876
13877    HRESULT (STDMETHODCALLTYPE *Write)(
13878        ISpeechMemoryStream *This,
13879        VARIANT Buffer,
13880        LONG *BytesWritten);
13881
13882    HRESULT (STDMETHODCALLTYPE *Seek)(
13883        ISpeechMemoryStream *This,
13884        VARIANT Position,
13885        SpeechStreamSeekPositionType Origin,
13886        VARIANT *NewPosition);
13887
13888    /*** ISpeechMemoryStream methods ***/
13889    HRESULT (STDMETHODCALLTYPE *SetData)(
13890        ISpeechMemoryStream *This,
13891        VARIANT Data);
13892
13893    HRESULT (STDMETHODCALLTYPE *GetData)(
13894        ISpeechMemoryStream *This,
13895        VARIANT *pData);
13896
13897    END_INTERFACE
13898} ISpeechMemoryStreamVtbl;
13899
13900interface ISpeechMemoryStream {
13901    CONST_VTBL ISpeechMemoryStreamVtbl* lpVtbl;
13902};
13903
13904#ifdef COBJMACROS
13905#ifndef WIDL_C_INLINE_WRAPPERS
13906/*** IUnknown methods ***/
13907#define ISpeechMemoryStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13908#define ISpeechMemoryStream_AddRef(This) (This)->lpVtbl->AddRef(This)
13909#define ISpeechMemoryStream_Release(This) (This)->lpVtbl->Release(This)
13910/*** IDispatch methods ***/
13911#define ISpeechMemoryStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13912#define ISpeechMemoryStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13913#define ISpeechMemoryStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13914#define ISpeechMemoryStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13915/*** ISpeechBaseStream methods ***/
13916#define ISpeechMemoryStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13917#define ISpeechMemoryStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13918#define ISpeechMemoryStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13919#define ISpeechMemoryStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13920#define ISpeechMemoryStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13921/*** ISpeechMemoryStream methods ***/
13922#define ISpeechMemoryStream_SetData(This,Data) (This)->lpVtbl->SetData(This,Data)
13923#define ISpeechMemoryStream_GetData(This,pData) (This)->lpVtbl->GetData(This,pData)
13924#else
13925/*** IUnknown methods ***/
13926static inline HRESULT ISpeechMemoryStream_QueryInterface(ISpeechMemoryStream* This,REFIID riid,void **ppvObject) {
13927    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13928}
13929static inline ULONG ISpeechMemoryStream_AddRef(ISpeechMemoryStream* This) {
13930    return This->lpVtbl->AddRef(This);
13931}
13932static inline ULONG ISpeechMemoryStream_Release(ISpeechMemoryStream* This) {
13933    return This->lpVtbl->Release(This);
13934}
13935/*** IDispatch methods ***/
13936static inline HRESULT ISpeechMemoryStream_GetTypeInfoCount(ISpeechMemoryStream* This,UINT *pctinfo) {
13937    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13938}
13939static inline HRESULT ISpeechMemoryStream_GetTypeInfo(ISpeechMemoryStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13940    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13941}
13942static inline HRESULT ISpeechMemoryStream_GetIDsOfNames(ISpeechMemoryStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13943    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13944}
13945static inline HRESULT ISpeechMemoryStream_Invoke(ISpeechMemoryStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13946    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13947}
13948/*** ISpeechBaseStream methods ***/
13949static inline HRESULT ISpeechMemoryStream_get_Format(ISpeechMemoryStream* This,ISpeechAudioFormat **AudioFormat) {
13950    return This->lpVtbl->get_Format(This,AudioFormat);
13951}
13952static inline HRESULT ISpeechMemoryStream_putref_Format(ISpeechMemoryStream* This,ISpeechAudioFormat *AudioFormat) {
13953    return This->lpVtbl->putref_Format(This,AudioFormat);
13954}
13955static inline HRESULT ISpeechMemoryStream_Read(ISpeechMemoryStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13956    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13957}
13958static inline HRESULT ISpeechMemoryStream_Write(ISpeechMemoryStream* This,VARIANT Buffer,LONG *BytesWritten) {
13959    return This->lpVtbl->Write(This,Buffer,BytesWritten);
13960}
13961static inline HRESULT ISpeechMemoryStream_Seek(ISpeechMemoryStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13962    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13963}
13964/*** ISpeechMemoryStream methods ***/
13965static inline HRESULT ISpeechMemoryStream_SetData(ISpeechMemoryStream* This,VARIANT Data) {
13966    return This->lpVtbl->SetData(This,Data);
13967}
13968static inline HRESULT ISpeechMemoryStream_GetData(ISpeechMemoryStream* This,VARIANT *pData) {
13969    return This->lpVtbl->GetData(This,pData);
13970}
13971#endif
13972#endif
13973
13974#endif
13975
13976
13977#endif  /* __ISpeechMemoryStream_INTERFACE_DEFINED__ */
13978
13979/*****************************************************************************
13980 * ISpeechAudioStatus interface
13981 */
13982#ifndef __ISpeechAudioStatus_INTERFACE_DEFINED__
13983#define __ISpeechAudioStatus_INTERFACE_DEFINED__
13984
13985DEFINE_GUID(IID_ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78);
13986#if defined(__cplusplus) && !defined(CINTERFACE)
13987MIDL_INTERFACE("c62d9c91-7458-47f6-862d-1ef86fb0b278")
13988ISpeechAudioStatus : public IDispatch
13989{
13990    virtual HRESULT STDMETHODCALLTYPE get_FreeBufferSpace(
13991        LONG *FreeBufferSpace) = 0;
13992
13993    virtual HRESULT STDMETHODCALLTYPE get_NonBlockingIO(
13994        LONG *NonBlockingIO) = 0;
13995
13996    virtual HRESULT STDMETHODCALLTYPE get_State(
13997        SpeechAudioState *State) = 0;
13998
13999    virtual HRESULT STDMETHODCALLTYPE get_CurrentSeekPosition(
14000        VARIANT *CurrentSeekPosition) = 0;
14001
14002    virtual HRESULT STDMETHODCALLTYPE get_CurrentDevicePosition(
14003        VARIANT *CurrentDevicePosition) = 0;
14004
14005};
14006#ifdef __CRT_UUID_DECL
14007__CRT_UUID_DECL(ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78)
14008#endif
14009#else
14010typedef struct ISpeechAudioStatusVtbl {
14011    BEGIN_INTERFACE
14012
14013    /*** IUnknown methods ***/
14014    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14015        ISpeechAudioStatus *This,
14016        REFIID riid,
14017        void **ppvObject);
14018
14019    ULONG (STDMETHODCALLTYPE *AddRef)(
14020        ISpeechAudioStatus *This);
14021
14022    ULONG (STDMETHODCALLTYPE *Release)(
14023        ISpeechAudioStatus *This);
14024
14025    /*** IDispatch methods ***/
14026    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14027        ISpeechAudioStatus *This,
14028        UINT *pctinfo);
14029
14030    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14031        ISpeechAudioStatus *This,
14032        UINT iTInfo,
14033        LCID lcid,
14034        ITypeInfo **ppTInfo);
14035
14036    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14037        ISpeechAudioStatus *This,
14038        REFIID riid,
14039        LPOLESTR *rgszNames,
14040        UINT cNames,
14041        LCID lcid,
14042        DISPID *rgDispId);
14043
14044    HRESULT (STDMETHODCALLTYPE *Invoke)(
14045        ISpeechAudioStatus *This,
14046        DISPID dispIdMember,
14047        REFIID riid,
14048        LCID lcid,
14049        WORD wFlags,
14050        DISPPARAMS *pDispParams,
14051        VARIANT *pVarResult,
14052        EXCEPINFO *pExcepInfo,
14053        UINT *puArgErr);
14054
14055    /*** ISpeechAudioStatus methods ***/
14056    HRESULT (STDMETHODCALLTYPE *get_FreeBufferSpace)(
14057        ISpeechAudioStatus *This,
14058        LONG *FreeBufferSpace);
14059
14060    HRESULT (STDMETHODCALLTYPE *get_NonBlockingIO)(
14061        ISpeechAudioStatus *This,
14062        LONG *NonBlockingIO);
14063
14064    HRESULT (STDMETHODCALLTYPE *get_State)(
14065        ISpeechAudioStatus *This,
14066        SpeechAudioState *State);
14067
14068    HRESULT (STDMETHODCALLTYPE *get_CurrentSeekPosition)(
14069        ISpeechAudioStatus *This,
14070        VARIANT *CurrentSeekPosition);
14071
14072    HRESULT (STDMETHODCALLTYPE *get_CurrentDevicePosition)(
14073        ISpeechAudioStatus *This,
14074        VARIANT *CurrentDevicePosition);
14075
14076    END_INTERFACE
14077} ISpeechAudioStatusVtbl;
14078
14079interface ISpeechAudioStatus {
14080    CONST_VTBL ISpeechAudioStatusVtbl* lpVtbl;
14081};
14082
14083#ifdef COBJMACROS
14084#ifndef WIDL_C_INLINE_WRAPPERS
14085/*** IUnknown methods ***/
14086#define ISpeechAudioStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14087#define ISpeechAudioStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
14088#define ISpeechAudioStatus_Release(This) (This)->lpVtbl->Release(This)
14089/*** IDispatch methods ***/
14090#define ISpeechAudioStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14091#define ISpeechAudioStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14092#define ISpeechAudioStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14093#define ISpeechAudioStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14094/*** ISpeechAudioStatus methods ***/
14095#define ISpeechAudioStatus_get_FreeBufferSpace(This,FreeBufferSpace) (This)->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace)
14096#define ISpeechAudioStatus_get_NonBlockingIO(This,NonBlockingIO) (This)->lpVtbl->get_NonBlockingIO(This,NonBlockingIO)
14097#define ISpeechAudioStatus_get_State(This,State) (This)->lpVtbl->get_State(This,State)
14098#define ISpeechAudioStatus_get_CurrentSeekPosition(This,CurrentSeekPosition) (This)->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition)
14099#define ISpeechAudioStatus_get_CurrentDevicePosition(This,CurrentDevicePosition) (This)->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition)
14100#else
14101/*** IUnknown methods ***/
14102static inline HRESULT ISpeechAudioStatus_QueryInterface(ISpeechAudioStatus* This,REFIID riid,void **ppvObject) {
14103    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14104}
14105static inline ULONG ISpeechAudioStatus_AddRef(ISpeechAudioStatus* This) {
14106    return This->lpVtbl->AddRef(This);
14107}
14108static inline ULONG ISpeechAudioStatus_Release(ISpeechAudioStatus* This) {
14109    return This->lpVtbl->Release(This);
14110}
14111/*** IDispatch methods ***/
14112static inline HRESULT ISpeechAudioStatus_GetTypeInfoCount(ISpeechAudioStatus* This,UINT *pctinfo) {
14113    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14114}
14115static inline HRESULT ISpeechAudioStatus_GetTypeInfo(ISpeechAudioStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14116    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14117}
14118static inline HRESULT ISpeechAudioStatus_GetIDsOfNames(ISpeechAudioStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14119    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14120}
14121static inline HRESULT ISpeechAudioStatus_Invoke(ISpeechAudioStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14122    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14123}
14124/*** ISpeechAudioStatus methods ***/
14125static inline HRESULT ISpeechAudioStatus_get_FreeBufferSpace(ISpeechAudioStatus* This,LONG *FreeBufferSpace) {
14126    return This->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace);
14127}
14128static inline HRESULT ISpeechAudioStatus_get_NonBlockingIO(ISpeechAudioStatus* This,LONG *NonBlockingIO) {
14129    return This->lpVtbl->get_NonBlockingIO(This,NonBlockingIO);
14130}
14131static inline HRESULT ISpeechAudioStatus_get_State(ISpeechAudioStatus* This,SpeechAudioState *State) {
14132    return This->lpVtbl->get_State(This,State);
14133}
14134static inline HRESULT ISpeechAudioStatus_get_CurrentSeekPosition(ISpeechAudioStatus* This,VARIANT *CurrentSeekPosition) {
14135    return This->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition);
14136}
14137static inline HRESULT ISpeechAudioStatus_get_CurrentDevicePosition(ISpeechAudioStatus* This,VARIANT *CurrentDevicePosition) {
14138    return This->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition);
14139}
14140#endif
14141#endif
14142
14143#endif
14144
14145
14146#endif  /* __ISpeechAudioStatus_INTERFACE_DEFINED__ */
14147
14148/*****************************************************************************
14149 * ISpeechAudioBufferInfo interface
14150 */
14151#ifndef __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
14152#define __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
14153
14154DEFINE_GUID(IID_ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc);
14155#if defined(__cplusplus) && !defined(CINTERFACE)
14156MIDL_INTERFACE("11b103d8-1142-4edf-a093-82fb3915f8cc")
14157ISpeechAudioBufferInfo : public IDispatch
14158{
14159    virtual HRESULT STDMETHODCALLTYPE get_MinNotification(
14160        LONG *MinNotification) = 0;
14161
14162    virtual HRESULT STDMETHODCALLTYPE put_MinNotification(
14163        LONG MinNotification) = 0;
14164
14165    virtual HRESULT STDMETHODCALLTYPE get_BufferSize(
14166        LONG *BufferSize) = 0;
14167
14168    virtual HRESULT STDMETHODCALLTYPE put_BufferSize(
14169        LONG BufferSize) = 0;
14170
14171    virtual HRESULT STDMETHODCALLTYPE get_EventBias(
14172        LONG *EventBias) = 0;
14173
14174    virtual HRESULT STDMETHODCALLTYPE put_EventBias(
14175        LONG EventBias) = 0;
14176
14177};
14178#ifdef __CRT_UUID_DECL
14179__CRT_UUID_DECL(ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc)
14180#endif
14181#else
14182typedef struct ISpeechAudioBufferInfoVtbl {
14183    BEGIN_INTERFACE
14184
14185    /*** IUnknown methods ***/
14186    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14187        ISpeechAudioBufferInfo *This,
14188        REFIID riid,
14189        void **ppvObject);
14190
14191    ULONG (STDMETHODCALLTYPE *AddRef)(
14192        ISpeechAudioBufferInfo *This);
14193
14194    ULONG (STDMETHODCALLTYPE *Release)(
14195        ISpeechAudioBufferInfo *This);
14196
14197    /*** IDispatch methods ***/
14198    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14199        ISpeechAudioBufferInfo *This,
14200        UINT *pctinfo);
14201
14202    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14203        ISpeechAudioBufferInfo *This,
14204        UINT iTInfo,
14205        LCID lcid,
14206        ITypeInfo **ppTInfo);
14207
14208    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14209        ISpeechAudioBufferInfo *This,
14210        REFIID riid,
14211        LPOLESTR *rgszNames,
14212        UINT cNames,
14213        LCID lcid,
14214        DISPID *rgDispId);
14215
14216    HRESULT (STDMETHODCALLTYPE *Invoke)(
14217        ISpeechAudioBufferInfo *This,
14218        DISPID dispIdMember,
14219        REFIID riid,
14220        LCID lcid,
14221        WORD wFlags,
14222        DISPPARAMS *pDispParams,
14223        VARIANT *pVarResult,
14224        EXCEPINFO *pExcepInfo,
14225        UINT *puArgErr);
14226
14227    /*** ISpeechAudioBufferInfo methods ***/
14228    HRESULT (STDMETHODCALLTYPE *get_MinNotification)(
14229        ISpeechAudioBufferInfo *This,
14230        LONG *MinNotification);
14231
14232    HRESULT (STDMETHODCALLTYPE *put_MinNotification)(
14233        ISpeechAudioBufferInfo *This,
14234        LONG MinNotification);
14235
14236    HRESULT (STDMETHODCALLTYPE *get_BufferSize)(
14237        ISpeechAudioBufferInfo *This,
14238        LONG *BufferSize);
14239
14240    HRESULT (STDMETHODCALLTYPE *put_BufferSize)(
14241        ISpeechAudioBufferInfo *This,
14242        LONG BufferSize);
14243
14244    HRESULT (STDMETHODCALLTYPE *get_EventBias)(
14245        ISpeechAudioBufferInfo *This,
14246        LONG *EventBias);
14247
14248    HRESULT (STDMETHODCALLTYPE *put_EventBias)(
14249        ISpeechAudioBufferInfo *This,
14250        LONG EventBias);
14251
14252    END_INTERFACE
14253} ISpeechAudioBufferInfoVtbl;
14254
14255interface ISpeechAudioBufferInfo {
14256    CONST_VTBL ISpeechAudioBufferInfoVtbl* lpVtbl;
14257};
14258
14259#ifdef COBJMACROS
14260#ifndef WIDL_C_INLINE_WRAPPERS
14261/*** IUnknown methods ***/
14262#define ISpeechAudioBufferInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14263#define ISpeechAudioBufferInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
14264#define ISpeechAudioBufferInfo_Release(This) (This)->lpVtbl->Release(This)
14265/*** IDispatch methods ***/
14266#define ISpeechAudioBufferInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14267#define ISpeechAudioBufferInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14268#define ISpeechAudioBufferInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14269#define ISpeechAudioBufferInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14270/*** ISpeechAudioBufferInfo methods ***/
14271#define ISpeechAudioBufferInfo_get_MinNotification(This,MinNotification) (This)->lpVtbl->get_MinNotification(This,MinNotification)
14272#define ISpeechAudioBufferInfo_put_MinNotification(This,MinNotification) (This)->lpVtbl->put_MinNotification(This,MinNotification)
14273#define ISpeechAudioBufferInfo_get_BufferSize(This,BufferSize) (This)->lpVtbl->get_BufferSize(This,BufferSize)
14274#define ISpeechAudioBufferInfo_put_BufferSize(This,BufferSize) (This)->lpVtbl->put_BufferSize(This,BufferSize)
14275#define ISpeechAudioBufferInfo_get_EventBias(This,EventBias) (This)->lpVtbl->get_EventBias(This,EventBias)
14276#define ISpeechAudioBufferInfo_put_EventBias(This,EventBias) (This)->lpVtbl->put_EventBias(This,EventBias)
14277#else
14278/*** IUnknown methods ***/
14279static inline HRESULT ISpeechAudioBufferInfo_QueryInterface(ISpeechAudioBufferInfo* This,REFIID riid,void **ppvObject) {
14280    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14281}
14282static inline ULONG ISpeechAudioBufferInfo_AddRef(ISpeechAudioBufferInfo* This) {
14283    return This->lpVtbl->AddRef(This);
14284}
14285static inline ULONG ISpeechAudioBufferInfo_Release(ISpeechAudioBufferInfo* This) {
14286    return This->lpVtbl->Release(This);
14287}
14288/*** IDispatch methods ***/
14289static inline HRESULT ISpeechAudioBufferInfo_GetTypeInfoCount(ISpeechAudioBufferInfo* This,UINT *pctinfo) {
14290    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14291}
14292static inline HRESULT ISpeechAudioBufferInfo_GetTypeInfo(ISpeechAudioBufferInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14293    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14294}
14295static inline HRESULT ISpeechAudioBufferInfo_GetIDsOfNames(ISpeechAudioBufferInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14296    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14297}
14298static inline HRESULT ISpeechAudioBufferInfo_Invoke(ISpeechAudioBufferInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14299    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14300}
14301/*** ISpeechAudioBufferInfo methods ***/
14302static inline HRESULT ISpeechAudioBufferInfo_get_MinNotification(ISpeechAudioBufferInfo* This,LONG *MinNotification) {
14303    return This->lpVtbl->get_MinNotification(This,MinNotification);
14304}
14305static inline HRESULT ISpeechAudioBufferInfo_put_MinNotification(ISpeechAudioBufferInfo* This,LONG MinNotification) {
14306    return This->lpVtbl->put_MinNotification(This,MinNotification);
14307}
14308static inline HRESULT ISpeechAudioBufferInfo_get_BufferSize(ISpeechAudioBufferInfo* This,LONG *BufferSize) {
14309    return This->lpVtbl->get_BufferSize(This,BufferSize);
14310}
14311static inline HRESULT ISpeechAudioBufferInfo_put_BufferSize(ISpeechAudioBufferInfo* This,LONG BufferSize) {
14312    return This->lpVtbl->put_BufferSize(This,BufferSize);
14313}
14314static inline HRESULT ISpeechAudioBufferInfo_get_EventBias(ISpeechAudioBufferInfo* This,LONG *EventBias) {
14315    return This->lpVtbl->get_EventBias(This,EventBias);
14316}
14317static inline HRESULT ISpeechAudioBufferInfo_put_EventBias(ISpeechAudioBufferInfo* This,LONG EventBias) {
14318    return This->lpVtbl->put_EventBias(This,EventBias);
14319}
14320#endif
14321#endif
14322
14323#endif
14324
14325
14326#endif  /* __ISpeechAudioBufferInfo_INTERFACE_DEFINED__ */
14327
14328/*****************************************************************************
14329 * ISpeechWaveFormatEx interface
14330 */
14331#ifndef __ISpeechWaveFormatEx_INTERFACE_DEFINED__
14332#define __ISpeechWaveFormatEx_INTERFACE_DEFINED__
14333
14334DEFINE_GUID(IID_ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10);
14335#if defined(__cplusplus) && !defined(CINTERFACE)
14336MIDL_INTERFACE("7a1ef0d5-1581-4741-88e4-209a49f11a10")
14337ISpeechWaveFormatEx : public IDispatch
14338{
14339    virtual HRESULT STDMETHODCALLTYPE get_FormatTag(
14340        short *FormatTag) = 0;
14341
14342    virtual HRESULT STDMETHODCALLTYPE put_FormatTag(
14343        short FormatTag) = 0;
14344
14345    virtual HRESULT STDMETHODCALLTYPE get_Channels(
14346        short *Channels) = 0;
14347
14348    virtual HRESULT STDMETHODCALLTYPE put_Channels(
14349        short Channels) = 0;
14350
14351    virtual HRESULT STDMETHODCALLTYPE get_SamplesPerSec(
14352        LONG *SamplesPerSec) = 0;
14353
14354    virtual HRESULT STDMETHODCALLTYPE put_SamplesPerSec(
14355        LONG SamplesPerSec) = 0;
14356
14357    virtual HRESULT STDMETHODCALLTYPE get_AvgBytesPerSec(
14358        LONG *AvgBytesPerSec) = 0;
14359
14360    virtual HRESULT STDMETHODCALLTYPE put_AvgBytesPerSec(
14361        LONG AvgBytesPerSec) = 0;
14362
14363    virtual HRESULT STDMETHODCALLTYPE get_BlockAlign(
14364        short *BlockAlign) = 0;
14365
14366    virtual HRESULT STDMETHODCALLTYPE put_BlockAlign(
14367        short BlockAlign) = 0;
14368
14369    virtual HRESULT STDMETHODCALLTYPE get_BitsPerSample(
14370        short *BitsPerSample) = 0;
14371
14372    virtual HRESULT STDMETHODCALLTYPE put_BitsPerSample(
14373        short BitsPerSample) = 0;
14374
14375    virtual HRESULT STDMETHODCALLTYPE get_ExtraData(
14376        VARIANT *ExtraData) = 0;
14377
14378    virtual HRESULT STDMETHODCALLTYPE put_ExtraData(
14379        VARIANT ExtraData) = 0;
14380
14381};
14382#ifdef __CRT_UUID_DECL
14383__CRT_UUID_DECL(ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10)
14384#endif
14385#else
14386typedef struct ISpeechWaveFormatExVtbl {
14387    BEGIN_INTERFACE
14388
14389    /*** IUnknown methods ***/
14390    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14391        ISpeechWaveFormatEx *This,
14392        REFIID riid,
14393        void **ppvObject);
14394
14395    ULONG (STDMETHODCALLTYPE *AddRef)(
14396        ISpeechWaveFormatEx *This);
14397
14398    ULONG (STDMETHODCALLTYPE *Release)(
14399        ISpeechWaveFormatEx *This);
14400
14401    /*** IDispatch methods ***/
14402    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14403        ISpeechWaveFormatEx *This,
14404        UINT *pctinfo);
14405
14406    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14407        ISpeechWaveFormatEx *This,
14408        UINT iTInfo,
14409        LCID lcid,
14410        ITypeInfo **ppTInfo);
14411
14412    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14413        ISpeechWaveFormatEx *This,
14414        REFIID riid,
14415        LPOLESTR *rgszNames,
14416        UINT cNames,
14417        LCID lcid,
14418        DISPID *rgDispId);
14419
14420    HRESULT (STDMETHODCALLTYPE *Invoke)(
14421        ISpeechWaveFormatEx *This,
14422        DISPID dispIdMember,
14423        REFIID riid,
14424        LCID lcid,
14425        WORD wFlags,
14426        DISPPARAMS *pDispParams,
14427        VARIANT *pVarResult,
14428        EXCEPINFO *pExcepInfo,
14429        UINT *puArgErr);
14430
14431    /*** ISpeechWaveFormatEx methods ***/
14432    HRESULT (STDMETHODCALLTYPE *get_FormatTag)(
14433        ISpeechWaveFormatEx *This,
14434        short *FormatTag);
14435
14436    HRESULT (STDMETHODCALLTYPE *put_FormatTag)(
14437        ISpeechWaveFormatEx *This,
14438        short FormatTag);
14439
14440    HRESULT (STDMETHODCALLTYPE *get_Channels)(
14441        ISpeechWaveFormatEx *This,
14442        short *Channels);
14443
14444    HRESULT (STDMETHODCALLTYPE *put_Channels)(
14445        ISpeechWaveFormatEx *This,
14446        short Channels);
14447
14448    HRESULT (STDMETHODCALLTYPE *get_SamplesPerSec)(
14449        ISpeechWaveFormatEx *This,
14450        LONG *SamplesPerSec);
14451
14452    HRESULT (STDMETHODCALLTYPE *put_SamplesPerSec)(
14453        ISpeechWaveFormatEx *This,
14454        LONG SamplesPerSec);
14455
14456    HRESULT (STDMETHODCALLTYPE *get_AvgBytesPerSec)(
14457        ISpeechWaveFormatEx *This,
14458        LONG *AvgBytesPerSec);
14459
14460    HRESULT (STDMETHODCALLTYPE *put_AvgBytesPerSec)(
14461        ISpeechWaveFormatEx *This,
14462        LONG AvgBytesPerSec);
14463
14464    HRESULT (STDMETHODCALLTYPE *get_BlockAlign)(
14465        ISpeechWaveFormatEx *This,
14466        short *BlockAlign);
14467
14468    HRESULT (STDMETHODCALLTYPE *put_BlockAlign)(
14469        ISpeechWaveFormatEx *This,
14470        short BlockAlign);
14471
14472    HRESULT (STDMETHODCALLTYPE *get_BitsPerSample)(
14473        ISpeechWaveFormatEx *This,
14474        short *BitsPerSample);
14475
14476    HRESULT (STDMETHODCALLTYPE *put_BitsPerSample)(
14477        ISpeechWaveFormatEx *This,
14478        short BitsPerSample);
14479
14480    HRESULT (STDMETHODCALLTYPE *get_ExtraData)(
14481        ISpeechWaveFormatEx *This,
14482        VARIANT *ExtraData);
14483
14484    HRESULT (STDMETHODCALLTYPE *put_ExtraData)(
14485        ISpeechWaveFormatEx *This,
14486        VARIANT ExtraData);
14487
14488    END_INTERFACE
14489} ISpeechWaveFormatExVtbl;
14490
14491interface ISpeechWaveFormatEx {
14492    CONST_VTBL ISpeechWaveFormatExVtbl* lpVtbl;
14493};
14494
14495#ifdef COBJMACROS
14496#ifndef WIDL_C_INLINE_WRAPPERS
14497/*** IUnknown methods ***/
14498#define ISpeechWaveFormatEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14499#define ISpeechWaveFormatEx_AddRef(This) (This)->lpVtbl->AddRef(This)
14500#define ISpeechWaveFormatEx_Release(This) (This)->lpVtbl->Release(This)
14501/*** IDispatch methods ***/
14502#define ISpeechWaveFormatEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14503#define ISpeechWaveFormatEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14504#define ISpeechWaveFormatEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14505#define ISpeechWaveFormatEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14506/*** ISpeechWaveFormatEx methods ***/
14507#define ISpeechWaveFormatEx_get_FormatTag(This,FormatTag) (This)->lpVtbl->get_FormatTag(This,FormatTag)
14508#define ISpeechWaveFormatEx_put_FormatTag(This,FormatTag) (This)->lpVtbl->put_FormatTag(This,FormatTag)
14509#define ISpeechWaveFormatEx_get_Channels(This,Channels) (This)->lpVtbl->get_Channels(This,Channels)
14510#define ISpeechWaveFormatEx_put_Channels(This,Channels) (This)->lpVtbl->put_Channels(This,Channels)
14511#define ISpeechWaveFormatEx_get_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->get_SamplesPerSec(This,SamplesPerSec)
14512#define ISpeechWaveFormatEx_put_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->put_SamplesPerSec(This,SamplesPerSec)
14513#define ISpeechWaveFormatEx_get_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec)
14514#define ISpeechWaveFormatEx_put_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec)
14515#define ISpeechWaveFormatEx_get_BlockAlign(This,BlockAlign) (This)->lpVtbl->get_BlockAlign(This,BlockAlign)
14516#define ISpeechWaveFormatEx_put_BlockAlign(This,BlockAlign) (This)->lpVtbl->put_BlockAlign(This,BlockAlign)
14517#define ISpeechWaveFormatEx_get_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->get_BitsPerSample(This,BitsPerSample)
14518#define ISpeechWaveFormatEx_put_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->put_BitsPerSample(This,BitsPerSample)
14519#define ISpeechWaveFormatEx_get_ExtraData(This,ExtraData) (This)->lpVtbl->get_ExtraData(This,ExtraData)
14520#define ISpeechWaveFormatEx_put_ExtraData(This,ExtraData) (This)->lpVtbl->put_ExtraData(This,ExtraData)
14521#else
14522/*** IUnknown methods ***/
14523static inline HRESULT ISpeechWaveFormatEx_QueryInterface(ISpeechWaveFormatEx* This,REFIID riid,void **ppvObject) {
14524    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14525}
14526static inline ULONG ISpeechWaveFormatEx_AddRef(ISpeechWaveFormatEx* This) {
14527    return This->lpVtbl->AddRef(This);
14528}
14529static inline ULONG ISpeechWaveFormatEx_Release(ISpeechWaveFormatEx* This) {
14530    return This->lpVtbl->Release(This);
14531}
14532/*** IDispatch methods ***/
14533static inline HRESULT ISpeechWaveFormatEx_GetTypeInfoCount(ISpeechWaveFormatEx* This,UINT *pctinfo) {
14534    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14535}
14536static inline HRESULT ISpeechWaveFormatEx_GetTypeInfo(ISpeechWaveFormatEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14537    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14538}
14539static inline HRESULT ISpeechWaveFormatEx_GetIDsOfNames(ISpeechWaveFormatEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14540    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14541}
14542static inline HRESULT ISpeechWaveFormatEx_Invoke(ISpeechWaveFormatEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14543    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14544}
14545/*** ISpeechWaveFormatEx methods ***/
14546static inline HRESULT ISpeechWaveFormatEx_get_FormatTag(ISpeechWaveFormatEx* This,short *FormatTag) {
14547    return This->lpVtbl->get_FormatTag(This,FormatTag);
14548}
14549static inline HRESULT ISpeechWaveFormatEx_put_FormatTag(ISpeechWaveFormatEx* This,short FormatTag) {
14550    return This->lpVtbl->put_FormatTag(This,FormatTag);
14551}
14552static inline HRESULT ISpeechWaveFormatEx_get_Channels(ISpeechWaveFormatEx* This,short *Channels) {
14553    return This->lpVtbl->get_Channels(This,Channels);
14554}
14555static inline HRESULT ISpeechWaveFormatEx_put_Channels(ISpeechWaveFormatEx* This,short Channels) {
14556    return This->lpVtbl->put_Channels(This,Channels);
14557}
14558static inline HRESULT ISpeechWaveFormatEx_get_SamplesPerSec(ISpeechWaveFormatEx* This,LONG *SamplesPerSec) {
14559    return This->lpVtbl->get_SamplesPerSec(This,SamplesPerSec);
14560}
14561static inline HRESULT ISpeechWaveFormatEx_put_SamplesPerSec(ISpeechWaveFormatEx* This,LONG SamplesPerSec) {
14562    return This->lpVtbl->put_SamplesPerSec(This,SamplesPerSec);
14563}
14564static inline HRESULT ISpeechWaveFormatEx_get_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG *AvgBytesPerSec) {
14565    return This->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec);
14566}
14567static inline HRESULT ISpeechWaveFormatEx_put_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG AvgBytesPerSec) {
14568    return This->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec);
14569}
14570static inline HRESULT ISpeechWaveFormatEx_get_BlockAlign(ISpeechWaveFormatEx* This,short *BlockAlign) {
14571    return This->lpVtbl->get_BlockAlign(This,BlockAlign);
14572}
14573static inline HRESULT ISpeechWaveFormatEx_put_BlockAlign(ISpeechWaveFormatEx* This,short BlockAlign) {
14574    return This->lpVtbl->put_BlockAlign(This,BlockAlign);
14575}
14576static inline HRESULT ISpeechWaveFormatEx_get_BitsPerSample(ISpeechWaveFormatEx* This,short *BitsPerSample) {
14577    return This->lpVtbl->get_BitsPerSample(This,BitsPerSample);
14578}
14579static inline HRESULT ISpeechWaveFormatEx_put_BitsPerSample(ISpeechWaveFormatEx* This,short BitsPerSample) {
14580    return This->lpVtbl->put_BitsPerSample(This,BitsPerSample);
14581}
14582static inline HRESULT ISpeechWaveFormatEx_get_ExtraData(ISpeechWaveFormatEx* This,VARIANT *ExtraData) {
14583    return This->lpVtbl->get_ExtraData(This,ExtraData);
14584}
14585static inline HRESULT ISpeechWaveFormatEx_put_ExtraData(ISpeechWaveFormatEx* This,VARIANT ExtraData) {
14586    return This->lpVtbl->put_ExtraData(This,ExtraData);
14587}
14588#endif
14589#endif
14590
14591#endif
14592
14593
14594#endif  /* __ISpeechWaveFormatEx_INTERFACE_DEFINED__ */
14595
14596/*****************************************************************************
14597 * ISpeechVoice interface
14598 */
14599#ifndef __ISpeechVoice_INTERFACE_DEFINED__
14600#define __ISpeechVoice_INTERFACE_DEFINED__
14601
14602DEFINE_GUID(IID_ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
14603#if defined(__cplusplus) && !defined(CINTERFACE)
14604MIDL_INTERFACE("269316d8-57bd-11d2-9eee-00c04f797396")
14605ISpeechVoice : public IDispatch
14606{
14607    virtual HRESULT STDMETHODCALLTYPE get_Status(
14608        ISpeechVoiceStatus **Status) = 0;
14609
14610    virtual HRESULT STDMETHODCALLTYPE get_Voice(
14611        ISpeechObjectToken **Voice) = 0;
14612
14613    virtual HRESULT STDMETHODCALLTYPE putref_Voice(
14614        ISpeechObjectToken *Voice) = 0;
14615
14616    virtual HRESULT STDMETHODCALLTYPE get_AudioOutput(
14617        ISpeechObjectToken **AudioOutput) = 0;
14618
14619    virtual HRESULT STDMETHODCALLTYPE putref_AudioOutput(
14620        ISpeechObjectToken *AudioOutput) = 0;
14621
14622    virtual HRESULT STDMETHODCALLTYPE get_AudioOutputStream(
14623        ISpeechBaseStream **AudioOutputStream) = 0;
14624
14625    virtual HRESULT STDMETHODCALLTYPE putref_AudioOutputStream(
14626        ISpeechBaseStream *AudioOutputStream) = 0;
14627
14628    virtual HRESULT STDMETHODCALLTYPE get_Rate(
14629        LONG *Rate) = 0;
14630
14631    virtual HRESULT STDMETHODCALLTYPE put_Rate(
14632        LONG Rate) = 0;
14633
14634    virtual HRESULT STDMETHODCALLTYPE get_Volume(
14635        LONG *Volume) = 0;
14636
14637    virtual HRESULT STDMETHODCALLTYPE put_Volume(
14638        LONG Volume) = 0;
14639
14640    virtual HRESULT STDMETHODCALLTYPE put_AllowAudioOutputFormatChangesOnNextSet(
14641        VARIANT_BOOL Allow) = 0;
14642
14643    virtual HRESULT STDMETHODCALLTYPE get_AllowAudioOutputFormatChangesOnNextSet(
14644        VARIANT_BOOL *Allow) = 0;
14645
14646    virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
14647        SpeechVoiceEvents *EventInterestFlags) = 0;
14648
14649    virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
14650        SpeechVoiceEvents EventInterestFlags) = 0;
14651
14652    virtual HRESULT STDMETHODCALLTYPE put_Priority(
14653        SpeechVoicePriority Priority) = 0;
14654
14655    virtual HRESULT STDMETHODCALLTYPE get_Priority(
14656        SpeechVoicePriority *Priority) = 0;
14657
14658    virtual HRESULT STDMETHODCALLTYPE put_AlertBoundary(
14659        SpeechVoiceEvents Boundary) = 0;
14660
14661    virtual HRESULT STDMETHODCALLTYPE get_AlertBoundary(
14662        SpeechVoiceEvents *Boundary) = 0;
14663
14664    virtual HRESULT STDMETHODCALLTYPE put_SynchronousSpeakTimeout(
14665        LONG msTimeout) = 0;
14666
14667    virtual HRESULT STDMETHODCALLTYPE get_SynchronousSpeakTimeout(
14668        LONG *msTimeout) = 0;
14669
14670    virtual HRESULT STDMETHODCALLTYPE Speak(
14671        BSTR Text,
14672        SpeechVoiceSpeakFlags Flags,
14673        LONG *StreamNumber) = 0;
14674
14675    virtual HRESULT STDMETHODCALLTYPE SpeakStream(
14676        ISpeechBaseStream *Stream,
14677        SpeechVoiceSpeakFlags Flags,
14678        LONG *StreamNumber) = 0;
14679
14680    virtual HRESULT STDMETHODCALLTYPE Pause(
14681        ) = 0;
14682
14683    virtual HRESULT STDMETHODCALLTYPE Resume(
14684        ) = 0;
14685
14686    virtual HRESULT STDMETHODCALLTYPE Skip(
14687        const BSTR Type,
14688        LONG NumItems,
14689        LONG *NumSkipped) = 0;
14690
14691    virtual HRESULT STDMETHODCALLTYPE GetVoices(
14692        BSTR RequiredAttributes,
14693        BSTR OptionalAttributes,
14694        ISpeechObjectTokens **ObjectTokens) = 0;
14695
14696    virtual HRESULT STDMETHODCALLTYPE GetAudioOutputs(
14697        BSTR RequiredAttributes,
14698        BSTR OptionalAttributes,
14699        ISpeechObjectTokens **ObjectTokens) = 0;
14700
14701    virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
14702        LONG msTimeout,
14703        VARIANT_BOOL *Done) = 0;
14704
14705    virtual HRESULT STDMETHODCALLTYPE SpeakCompleteEvent(
14706        LONG *Handle) = 0;
14707
14708    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
14709        const BSTR TypeOfUI,
14710        const VARIANT *ExtraData,
14711        VARIANT_BOOL *Supported) = 0;
14712
14713    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
14714        LONG hWndParent,
14715        BSTR Title,
14716        const BSTR TypeOfUI,
14717        const VARIANT *ExtraData = 0) = 0;
14718
14719};
14720#ifdef __CRT_UUID_DECL
14721__CRT_UUID_DECL(ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
14722#endif
14723#else
14724typedef struct ISpeechVoiceVtbl {
14725    BEGIN_INTERFACE
14726
14727    /*** IUnknown methods ***/
14728    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14729        ISpeechVoice *This,
14730        REFIID riid,
14731        void **ppvObject);
14732
14733    ULONG (STDMETHODCALLTYPE *AddRef)(
14734        ISpeechVoice *This);
14735
14736    ULONG (STDMETHODCALLTYPE *Release)(
14737        ISpeechVoice *This);
14738
14739    /*** IDispatch methods ***/
14740    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14741        ISpeechVoice *This,
14742        UINT *pctinfo);
14743
14744    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14745        ISpeechVoice *This,
14746        UINT iTInfo,
14747        LCID lcid,
14748        ITypeInfo **ppTInfo);
14749
14750    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14751        ISpeechVoice *This,
14752        REFIID riid,
14753        LPOLESTR *rgszNames,
14754        UINT cNames,
14755        LCID lcid,
14756        DISPID *rgDispId);
14757
14758    HRESULT (STDMETHODCALLTYPE *Invoke)(
14759        ISpeechVoice *This,
14760        DISPID dispIdMember,
14761        REFIID riid,
14762        LCID lcid,
14763        WORD wFlags,
14764        DISPPARAMS *pDispParams,
14765        VARIANT *pVarResult,
14766        EXCEPINFO *pExcepInfo,
14767        UINT *puArgErr);
14768
14769    /*** ISpeechVoice methods ***/
14770    HRESULT (STDMETHODCALLTYPE *get_Status)(
14771        ISpeechVoice *This,
14772        ISpeechVoiceStatus **Status);
14773
14774    HRESULT (STDMETHODCALLTYPE *get_Voice)(
14775        ISpeechVoice *This,
14776        ISpeechObjectToken **Voice);
14777
14778    HRESULT (STDMETHODCALLTYPE *putref_Voice)(
14779        ISpeechVoice *This,
14780        ISpeechObjectToken *Voice);
14781
14782    HRESULT (STDMETHODCALLTYPE *get_AudioOutput)(
14783        ISpeechVoice *This,
14784        ISpeechObjectToken **AudioOutput);
14785
14786    HRESULT (STDMETHODCALLTYPE *putref_AudioOutput)(
14787        ISpeechVoice *This,
14788        ISpeechObjectToken *AudioOutput);
14789
14790    HRESULT (STDMETHODCALLTYPE *get_AudioOutputStream)(
14791        ISpeechVoice *This,
14792        ISpeechBaseStream **AudioOutputStream);
14793
14794    HRESULT (STDMETHODCALLTYPE *putref_AudioOutputStream)(
14795        ISpeechVoice *This,
14796        ISpeechBaseStream *AudioOutputStream);
14797
14798    HRESULT (STDMETHODCALLTYPE *get_Rate)(
14799        ISpeechVoice *This,
14800        LONG *Rate);
14801
14802    HRESULT (STDMETHODCALLTYPE *put_Rate)(
14803        ISpeechVoice *This,
14804        LONG Rate);
14805
14806    HRESULT (STDMETHODCALLTYPE *get_Volume)(
14807        ISpeechVoice *This,
14808        LONG *Volume);
14809
14810    HRESULT (STDMETHODCALLTYPE *put_Volume)(
14811        ISpeechVoice *This,
14812        LONG Volume);
14813
14814    HRESULT (STDMETHODCALLTYPE *put_AllowAudioOutputFormatChangesOnNextSet)(
14815        ISpeechVoice *This,
14816        VARIANT_BOOL Allow);
14817
14818    HRESULT (STDMETHODCALLTYPE *get_AllowAudioOutputFormatChangesOnNextSet)(
14819        ISpeechVoice *This,
14820        VARIANT_BOOL *Allow);
14821
14822    HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
14823        ISpeechVoice *This,
14824        SpeechVoiceEvents *EventInterestFlags);
14825
14826    HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
14827        ISpeechVoice *This,
14828        SpeechVoiceEvents EventInterestFlags);
14829
14830    HRESULT (STDMETHODCALLTYPE *put_Priority)(
14831        ISpeechVoice *This,
14832        SpeechVoicePriority Priority);
14833
14834    HRESULT (STDMETHODCALLTYPE *get_Priority)(
14835        ISpeechVoice *This,
14836        SpeechVoicePriority *Priority);
14837
14838    HRESULT (STDMETHODCALLTYPE *put_AlertBoundary)(
14839        ISpeechVoice *This,
14840        SpeechVoiceEvents Boundary);
14841
14842    HRESULT (STDMETHODCALLTYPE *get_AlertBoundary)(
14843        ISpeechVoice *This,
14844        SpeechVoiceEvents *Boundary);
14845
14846    HRESULT (STDMETHODCALLTYPE *put_SynchronousSpeakTimeout)(
14847        ISpeechVoice *This,
14848        LONG msTimeout);
14849
14850    HRESULT (STDMETHODCALLTYPE *get_SynchronousSpeakTimeout)(
14851        ISpeechVoice *This,
14852        LONG *msTimeout);
14853
14854    HRESULT (STDMETHODCALLTYPE *Speak)(
14855        ISpeechVoice *This,
14856        BSTR Text,
14857        SpeechVoiceSpeakFlags Flags,
14858        LONG *StreamNumber);
14859
14860    HRESULT (STDMETHODCALLTYPE *SpeakStream)(
14861        ISpeechVoice *This,
14862        ISpeechBaseStream *Stream,
14863        SpeechVoiceSpeakFlags Flags,
14864        LONG *StreamNumber);
14865
14866    HRESULT (STDMETHODCALLTYPE *Pause)(
14867        ISpeechVoice *This);
14868
14869    HRESULT (STDMETHODCALLTYPE *Resume)(
14870        ISpeechVoice *This);
14871
14872    HRESULT (STDMETHODCALLTYPE *Skip)(
14873        ISpeechVoice *This,
14874        const BSTR Type,
14875        LONG NumItems,
14876        LONG *NumSkipped);
14877
14878    HRESULT (STDMETHODCALLTYPE *GetVoices)(
14879        ISpeechVoice *This,
14880        BSTR RequiredAttributes,
14881        BSTR OptionalAttributes,
14882        ISpeechObjectTokens **ObjectTokens);
14883
14884    HRESULT (STDMETHODCALLTYPE *GetAudioOutputs)(
14885        ISpeechVoice *This,
14886        BSTR RequiredAttributes,
14887        BSTR OptionalAttributes,
14888        ISpeechObjectTokens **ObjectTokens);
14889
14890    HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
14891        ISpeechVoice *This,
14892        LONG msTimeout,
14893        VARIANT_BOOL *Done);
14894
14895    HRESULT (STDMETHODCALLTYPE *SpeakCompleteEvent)(
14896        ISpeechVoice *This,
14897        LONG *Handle);
14898
14899    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
14900        ISpeechVoice *This,
14901        const BSTR TypeOfUI,
14902        const VARIANT *ExtraData,
14903        VARIANT_BOOL *Supported);
14904
14905    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
14906        ISpeechVoice *This,
14907        LONG hWndParent,
14908        BSTR Title,
14909        const BSTR TypeOfUI,
14910        const VARIANT *ExtraData);
14911
14912    END_INTERFACE
14913} ISpeechVoiceVtbl;
14914
14915interface ISpeechVoice {
14916    CONST_VTBL ISpeechVoiceVtbl* lpVtbl;
14917};
14918
14919#ifdef COBJMACROS
14920#ifndef WIDL_C_INLINE_WRAPPERS
14921/*** IUnknown methods ***/
14922#define ISpeechVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14923#define ISpeechVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
14924#define ISpeechVoice_Release(This) (This)->lpVtbl->Release(This)
14925/*** IDispatch methods ***/
14926#define ISpeechVoice_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14927#define ISpeechVoice_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14928#define ISpeechVoice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14929#define ISpeechVoice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14930/*** ISpeechVoice methods ***/
14931#define ISpeechVoice_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
14932#define ISpeechVoice_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
14933#define ISpeechVoice_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
14934#define ISpeechVoice_get_AudioOutput(This,AudioOutput) (This)->lpVtbl->get_AudioOutput(This,AudioOutput)
14935#define ISpeechVoice_putref_AudioOutput(This,AudioOutput) (This)->lpVtbl->putref_AudioOutput(This,AudioOutput)
14936#define ISpeechVoice_get_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->get_AudioOutputStream(This,AudioOutputStream)
14937#define ISpeechVoice_putref_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream)
14938#define ISpeechVoice_get_Rate(This,Rate) (This)->lpVtbl->get_Rate(This,Rate)
14939#define ISpeechVoice_put_Rate(This,Rate) (This)->lpVtbl->put_Rate(This,Rate)
14940#define ISpeechVoice_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
14941#define ISpeechVoice_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
14942#define ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
14943#define ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
14944#define ISpeechVoice_get_EventInterests(This,EventInterestFlags) (This)->lpVtbl->get_EventInterests(This,EventInterestFlags)
14945#define ISpeechVoice_put_EventInterests(This,EventInterestFlags) (This)->lpVtbl->put_EventInterests(This,EventInterestFlags)
14946#define ISpeechVoice_put_Priority(This,Priority) (This)->lpVtbl->put_Priority(This,Priority)
14947#define ISpeechVoice_get_Priority(This,Priority) (This)->lpVtbl->get_Priority(This,Priority)
14948#define ISpeechVoice_put_AlertBoundary(This,Boundary) (This)->lpVtbl->put_AlertBoundary(This,Boundary)
14949#define ISpeechVoice_get_AlertBoundary(This,Boundary) (This)->lpVtbl->get_AlertBoundary(This,Boundary)
14950#define ISpeechVoice_put_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout)
14951#define ISpeechVoice_get_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout)
14952#define ISpeechVoice_Speak(This,Text,Flags,StreamNumber) (This)->lpVtbl->Speak(This,Text,Flags,StreamNumber)
14953#define ISpeechVoice_SpeakStream(This,Stream,Flags,StreamNumber) (This)->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber)
14954#define ISpeechVoice_Pause(This) (This)->lpVtbl->Pause(This)
14955#define ISpeechVoice_Resume(This) (This)->lpVtbl->Resume(This)
14956#define ISpeechVoice_Skip(This,Type,NumItems,NumSkipped) (This)->lpVtbl->Skip(This,Type,NumItems,NumSkipped)
14957#define ISpeechVoice_GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
14958#define ISpeechVoice_GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
14959#define ISpeechVoice_WaitUntilDone(This,msTimeout,Done) (This)->lpVtbl->WaitUntilDone(This,msTimeout,Done)
14960#define ISpeechVoice_SpeakCompleteEvent(This,Handle) (This)->lpVtbl->SpeakCompleteEvent(This,Handle)
14961#define ISpeechVoice_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
14962#define ISpeechVoice_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
14963#else
14964/*** IUnknown methods ***/
14965static inline HRESULT ISpeechVoice_QueryInterface(ISpeechVoice* This,REFIID riid,void **ppvObject) {
14966    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14967}
14968static inline ULONG ISpeechVoice_AddRef(ISpeechVoice* This) {
14969    return This->lpVtbl->AddRef(This);
14970}
14971static inline ULONG ISpeechVoice_Release(ISpeechVoice* This) {
14972    return This->lpVtbl->Release(This);
14973}
14974/*** IDispatch methods ***/
14975static inline HRESULT ISpeechVoice_GetTypeInfoCount(ISpeechVoice* This,UINT *pctinfo) {
14976    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14977}
14978static inline HRESULT ISpeechVoice_GetTypeInfo(ISpeechVoice* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14979    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14980}
14981static inline HRESULT ISpeechVoice_GetIDsOfNames(ISpeechVoice* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14982    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14983}
14984static inline HRESULT ISpeechVoice_Invoke(ISpeechVoice* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14985    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14986}
14987/*** ISpeechVoice methods ***/
14988static inline HRESULT ISpeechVoice_get_Status(ISpeechVoice* This,ISpeechVoiceStatus **Status) {
14989    return This->lpVtbl->get_Status(This,Status);
14990}
14991static inline HRESULT ISpeechVoice_get_Voice(ISpeechVoice* This,ISpeechObjectToken **Voice) {
14992    return This->lpVtbl->get_Voice(This,Voice);
14993}
14994static inline HRESULT ISpeechVoice_putref_Voice(ISpeechVoice* This,ISpeechObjectToken *Voice) {
14995    return This->lpVtbl->putref_Voice(This,Voice);
14996}
14997static inline HRESULT ISpeechVoice_get_AudioOutput(ISpeechVoice* This,ISpeechObjectToken **AudioOutput) {
14998    return This->lpVtbl->get_AudioOutput(This,AudioOutput);
14999}
15000static inline HRESULT ISpeechVoice_putref_AudioOutput(ISpeechVoice* This,ISpeechObjectToken *AudioOutput) {
15001    return This->lpVtbl->putref_AudioOutput(This,AudioOutput);
15002}
15003static inline HRESULT ISpeechVoice_get_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream **AudioOutputStream) {
15004    return This->lpVtbl->get_AudioOutputStream(This,AudioOutputStream);
15005}
15006static inline HRESULT ISpeechVoice_putref_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream *AudioOutputStream) {
15007    return This->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream);
15008}
15009static inline HRESULT ISpeechVoice_get_Rate(ISpeechVoice* This,LONG *Rate) {
15010    return This->lpVtbl->get_Rate(This,Rate);
15011}
15012static inline HRESULT ISpeechVoice_put_Rate(ISpeechVoice* This,LONG Rate) {
15013    return This->lpVtbl->put_Rate(This,Rate);
15014}
15015static inline HRESULT ISpeechVoice_get_Volume(ISpeechVoice* This,LONG *Volume) {
15016    return This->lpVtbl->get_Volume(This,Volume);
15017}
15018static inline HRESULT ISpeechVoice_put_Volume(ISpeechVoice* This,LONG Volume) {
15019    return This->lpVtbl->put_Volume(This,Volume);
15020}
15021static inline HRESULT ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL Allow) {
15022    return This->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
15023}
15024static inline HRESULT ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL *Allow) {
15025    return This->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
15026}
15027static inline HRESULT ISpeechVoice_get_EventInterests(ISpeechVoice* This,SpeechVoiceEvents *EventInterestFlags) {
15028    return This->lpVtbl->get_EventInterests(This,EventInterestFlags);
15029}
15030static inline HRESULT ISpeechVoice_put_EventInterests(ISpeechVoice* This,SpeechVoiceEvents EventInterestFlags) {
15031    return This->lpVtbl->put_EventInterests(This,EventInterestFlags);
15032}
15033static inline HRESULT ISpeechVoice_put_Priority(ISpeechVoice* This,SpeechVoicePriority Priority) {
15034    return This->lpVtbl->put_Priority(This,Priority);
15035}
15036static inline HRESULT ISpeechVoice_get_Priority(ISpeechVoice* This,SpeechVoicePriority *Priority) {
15037    return This->lpVtbl->get_Priority(This,Priority);
15038}
15039static inline HRESULT ISpeechVoice_put_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents Boundary) {
15040    return This->lpVtbl->put_AlertBoundary(This,Boundary);
15041}
15042static inline HRESULT ISpeechVoice_get_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents *Boundary) {
15043    return This->lpVtbl->get_AlertBoundary(This,Boundary);
15044}
15045static inline HRESULT ISpeechVoice_put_SynchronousSpeakTimeout(ISpeechVoice* This,LONG msTimeout) {
15046    return This->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout);
15047}
15048static inline HRESULT ISpeechVoice_get_SynchronousSpeakTimeout(ISpeechVoice* This,LONG *msTimeout) {
15049    return This->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout);
15050}
15051static inline HRESULT ISpeechVoice_Speak(ISpeechVoice* This,BSTR Text,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
15052    return This->lpVtbl->Speak(This,Text,Flags,StreamNumber);
15053}
15054static inline HRESULT ISpeechVoice_SpeakStream(ISpeechVoice* This,ISpeechBaseStream *Stream,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
15055    return This->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber);
15056}
15057static inline HRESULT ISpeechVoice_Pause(ISpeechVoice* This) {
15058    return This->lpVtbl->Pause(This);
15059}
15060static inline HRESULT ISpeechVoice_Resume(ISpeechVoice* This) {
15061    return This->lpVtbl->Resume(This);
15062}
15063static inline HRESULT ISpeechVoice_Skip(ISpeechVoice* This,const BSTR Type,LONG NumItems,LONG *NumSkipped) {
15064    return This->lpVtbl->Skip(This,Type,NumItems,NumSkipped);
15065}
15066static inline HRESULT ISpeechVoice_GetVoices(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
15067    return This->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
15068}
15069static inline HRESULT ISpeechVoice_GetAudioOutputs(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
15070    return This->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
15071}
15072static inline HRESULT ISpeechVoice_WaitUntilDone(ISpeechVoice* This,LONG msTimeout,VARIANT_BOOL *Done) {
15073    return This->lpVtbl->WaitUntilDone(This,msTimeout,Done);
15074}
15075static inline HRESULT ISpeechVoice_SpeakCompleteEvent(ISpeechVoice* This,LONG *Handle) {
15076    return This->lpVtbl->SpeakCompleteEvent(This,Handle);
15077}
15078static inline HRESULT ISpeechVoice_IsUISupported(ISpeechVoice* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
15079    return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
15080}
15081static inline HRESULT ISpeechVoice_DisplayUI(ISpeechVoice* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
15082    return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
15083}
15084#endif
15085#endif
15086
15087#endif
15088
15089
15090#endif  /* __ISpeechVoice_INTERFACE_DEFINED__ */
15091
15092/*****************************************************************************
15093 * ISpeechVoiceStatus interface
15094 */
15095#ifndef __ISpeechVoiceStatus_INTERFACE_DEFINED__
15096#define __ISpeechVoiceStatus_INTERFACE_DEFINED__
15097
15098DEFINE_GUID(IID_ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
15099#if defined(__cplusplus) && !defined(CINTERFACE)
15100MIDL_INTERFACE("8be47b07-57f6-11d2-9eee-00c04f797396")
15101ISpeechVoiceStatus : public IDispatch
15102{
15103    virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
15104        LONG *StreamNumber) = 0;
15105
15106    virtual HRESULT STDMETHODCALLTYPE get_LastStreamNumberQueued(
15107        LONG *StreamNumber) = 0;
15108
15109    virtual HRESULT STDMETHODCALLTYPE get_LastHResult(
15110        LONG *HResult) = 0;
15111
15112    virtual HRESULT STDMETHODCALLTYPE get_RunningState(
15113        SpeechRunState *State) = 0;
15114
15115    virtual HRESULT STDMETHODCALLTYPE get_InputWordPosition(
15116        LONG *Position) = 0;
15117
15118    virtual HRESULT STDMETHODCALLTYPE get_InputWordLength(
15119        LONG *Length) = 0;
15120
15121    virtual HRESULT STDMETHODCALLTYPE get_InputSentencePosition(
15122        LONG *Position) = 0;
15123
15124    virtual HRESULT STDMETHODCALLTYPE get_InputSentenceLength(
15125        LONG *Length) = 0;
15126
15127    virtual HRESULT STDMETHODCALLTYPE get_LastBookmark(
15128        BSTR *Bookmark) = 0;
15129
15130    virtual HRESULT STDMETHODCALLTYPE get_LastBookmarkId(
15131        LONG *BookmarkId) = 0;
15132
15133    virtual HRESULT STDMETHODCALLTYPE get_PhonemeId(
15134        short *PhoneId) = 0;
15135
15136    virtual HRESULT STDMETHODCALLTYPE get_VisemeId(
15137        short *VisemeId) = 0;
15138
15139};
15140#ifdef __CRT_UUID_DECL
15141__CRT_UUID_DECL(ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
15142#endif
15143#else
15144typedef struct ISpeechVoiceStatusVtbl {
15145    BEGIN_INTERFACE
15146
15147    /*** IUnknown methods ***/
15148    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15149        ISpeechVoiceStatus *This,
15150        REFIID riid,
15151        void **ppvObject);
15152
15153    ULONG (STDMETHODCALLTYPE *AddRef)(
15154        ISpeechVoiceStatus *This);
15155
15156    ULONG (STDMETHODCALLTYPE *Release)(
15157        ISpeechVoiceStatus *This);
15158
15159    /*** IDispatch methods ***/
15160    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15161        ISpeechVoiceStatus *This,
15162        UINT *pctinfo);
15163
15164    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15165        ISpeechVoiceStatus *This,
15166        UINT iTInfo,
15167        LCID lcid,
15168        ITypeInfo **ppTInfo);
15169
15170    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15171        ISpeechVoiceStatus *This,
15172        REFIID riid,
15173        LPOLESTR *rgszNames,
15174        UINT cNames,
15175        LCID lcid,
15176        DISPID *rgDispId);
15177
15178    HRESULT (STDMETHODCALLTYPE *Invoke)(
15179        ISpeechVoiceStatus *This,
15180        DISPID dispIdMember,
15181        REFIID riid,
15182        LCID lcid,
15183        WORD wFlags,
15184        DISPPARAMS *pDispParams,
15185        VARIANT *pVarResult,
15186        EXCEPINFO *pExcepInfo,
15187        UINT *puArgErr);
15188
15189    /*** ISpeechVoiceStatus methods ***/
15190    HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
15191        ISpeechVoiceStatus *This,
15192        LONG *StreamNumber);
15193
15194    HRESULT (STDMETHODCALLTYPE *get_LastStreamNumberQueued)(
15195        ISpeechVoiceStatus *This,
15196        LONG *StreamNumber);
15197
15198    HRESULT (STDMETHODCALLTYPE *get_LastHResult)(
15199        ISpeechVoiceStatus *This,
15200        LONG *HResult);
15201
15202    HRESULT (STDMETHODCALLTYPE *get_RunningState)(
15203        ISpeechVoiceStatus *This,
15204        SpeechRunState *State);
15205
15206    HRESULT (STDMETHODCALLTYPE *get_InputWordPosition)(
15207        ISpeechVoiceStatus *This,
15208        LONG *Position);
15209
15210    HRESULT (STDMETHODCALLTYPE *get_InputWordLength)(
15211        ISpeechVoiceStatus *This,
15212        LONG *Length);
15213
15214    HRESULT (STDMETHODCALLTYPE *get_InputSentencePosition)(
15215        ISpeechVoiceStatus *This,
15216        LONG *Position);
15217
15218    HRESULT (STDMETHODCALLTYPE *get_InputSentenceLength)(
15219        ISpeechVoiceStatus *This,
15220        LONG *Length);
15221
15222    HRESULT (STDMETHODCALLTYPE *get_LastBookmark)(
15223        ISpeechVoiceStatus *This,
15224        BSTR *Bookmark);
15225
15226    HRESULT (STDMETHODCALLTYPE *get_LastBookmarkId)(
15227        ISpeechVoiceStatus *This,
15228        LONG *BookmarkId);
15229
15230    HRESULT (STDMETHODCALLTYPE *get_PhonemeId)(
15231        ISpeechVoiceStatus *This,
15232        short *PhoneId);
15233
15234    HRESULT (STDMETHODCALLTYPE *get_VisemeId)(
15235        ISpeechVoiceStatus *This,
15236        short *VisemeId);
15237
15238    END_INTERFACE
15239} ISpeechVoiceStatusVtbl;
15240
15241interface ISpeechVoiceStatus {
15242    CONST_VTBL ISpeechVoiceStatusVtbl* lpVtbl;
15243};
15244
15245#ifdef COBJMACROS
15246#ifndef WIDL_C_INLINE_WRAPPERS
15247/*** IUnknown methods ***/
15248#define ISpeechVoiceStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15249#define ISpeechVoiceStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
15250#define ISpeechVoiceStatus_Release(This) (This)->lpVtbl->Release(This)
15251/*** IDispatch methods ***/
15252#define ISpeechVoiceStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15253#define ISpeechVoiceStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15254#define ISpeechVoiceStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15255#define ISpeechVoiceStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15256/*** ISpeechVoiceStatus methods ***/
15257#define ISpeechVoiceStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
15258#define ISpeechVoiceStatus_get_LastStreamNumberQueued(This,StreamNumber) (This)->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber)
15259#define ISpeechVoiceStatus_get_LastHResult(This,HResult) (This)->lpVtbl->get_LastHResult(This,HResult)
15260#define ISpeechVoiceStatus_get_RunningState(This,State) (This)->lpVtbl->get_RunningState(This,State)
15261#define ISpeechVoiceStatus_get_InputWordPosition(This,Position) (This)->lpVtbl->get_InputWordPosition(This,Position)
15262#define ISpeechVoiceStatus_get_InputWordLength(This,Length) (This)->lpVtbl->get_InputWordLength(This,Length)
15263#define ISpeechVoiceStatus_get_InputSentencePosition(This,Position) (This)->lpVtbl->get_InputSentencePosition(This,Position)
15264#define ISpeechVoiceStatus_get_InputSentenceLength(This,Length) (This)->lpVtbl->get_InputSentenceLength(This,Length)
15265#define ISpeechVoiceStatus_get_LastBookmark(This,Bookmark) (This)->lpVtbl->get_LastBookmark(This,Bookmark)
15266#define ISpeechVoiceStatus_get_LastBookmarkId(This,BookmarkId) (This)->lpVtbl->get_LastBookmarkId(This,BookmarkId)
15267#define ISpeechVoiceStatus_get_PhonemeId(This,PhoneId) (This)->lpVtbl->get_PhonemeId(This,PhoneId)
15268#define ISpeechVoiceStatus_get_VisemeId(This,VisemeId) (This)->lpVtbl->get_VisemeId(This,VisemeId)
15269#else
15270/*** IUnknown methods ***/
15271static inline HRESULT ISpeechVoiceStatus_QueryInterface(ISpeechVoiceStatus* This,REFIID riid,void **ppvObject) {
15272    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15273}
15274static inline ULONG ISpeechVoiceStatus_AddRef(ISpeechVoiceStatus* This) {
15275    return This->lpVtbl->AddRef(This);
15276}
15277static inline ULONG ISpeechVoiceStatus_Release(ISpeechVoiceStatus* This) {
15278    return This->lpVtbl->Release(This);
15279}
15280/*** IDispatch methods ***/
15281static inline HRESULT ISpeechVoiceStatus_GetTypeInfoCount(ISpeechVoiceStatus* This,UINT *pctinfo) {
15282    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15283}
15284static inline HRESULT ISpeechVoiceStatus_GetTypeInfo(ISpeechVoiceStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15285    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15286}
15287static inline HRESULT ISpeechVoiceStatus_GetIDsOfNames(ISpeechVoiceStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15288    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15289}
15290static inline HRESULT ISpeechVoiceStatus_Invoke(ISpeechVoiceStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15291    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15292}
15293/*** ISpeechVoiceStatus methods ***/
15294static inline HRESULT ISpeechVoiceStatus_get_CurrentStreamNumber(ISpeechVoiceStatus* This,LONG *StreamNumber) {
15295    return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
15296}
15297static inline HRESULT ISpeechVoiceStatus_get_LastStreamNumberQueued(ISpeechVoiceStatus* This,LONG *StreamNumber) {
15298    return This->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber);
15299}
15300static inline HRESULT ISpeechVoiceStatus_get_LastHResult(ISpeechVoiceStatus* This,LONG *HResult) {
15301    return This->lpVtbl->get_LastHResult(This,HResult);
15302}
15303static inline HRESULT ISpeechVoiceStatus_get_RunningState(ISpeechVoiceStatus* This,SpeechRunState *State) {
15304    return This->lpVtbl->get_RunningState(This,State);
15305}
15306static inline HRESULT ISpeechVoiceStatus_get_InputWordPosition(ISpeechVoiceStatus* This,LONG *Position) {
15307    return This->lpVtbl->get_InputWordPosition(This,Position);
15308}
15309static inline HRESULT ISpeechVoiceStatus_get_InputWordLength(ISpeechVoiceStatus* This,LONG *Length) {
15310    return This->lpVtbl->get_InputWordLength(This,Length);
15311}
15312static inline HRESULT ISpeechVoiceStatus_get_InputSentencePosition(ISpeechVoiceStatus* This,LONG *Position) {
15313    return This->lpVtbl->get_InputSentencePosition(This,Position);
15314}
15315static inline HRESULT ISpeechVoiceStatus_get_InputSentenceLength(ISpeechVoiceStatus* This,LONG *Length) {
15316    return This->lpVtbl->get_InputSentenceLength(This,Length);
15317}
15318static inline HRESULT ISpeechVoiceStatus_get_LastBookmark(ISpeechVoiceStatus* This,BSTR *Bookmark) {
15319    return This->lpVtbl->get_LastBookmark(This,Bookmark);
15320}
15321static inline HRESULT ISpeechVoiceStatus_get_LastBookmarkId(ISpeechVoiceStatus* This,LONG *BookmarkId) {
15322    return This->lpVtbl->get_LastBookmarkId(This,BookmarkId);
15323}
15324static inline HRESULT ISpeechVoiceStatus_get_PhonemeId(ISpeechVoiceStatus* This,short *PhoneId) {
15325    return This->lpVtbl->get_PhonemeId(This,PhoneId);
15326}
15327static inline HRESULT ISpeechVoiceStatus_get_VisemeId(ISpeechVoiceStatus* This,short *VisemeId) {
15328    return This->lpVtbl->get_VisemeId(This,VisemeId);
15329}
15330#endif
15331#endif
15332
15333#endif
15334
15335
15336#endif  /* __ISpeechVoiceStatus_INTERFACE_DEFINED__ */
15337
15338typedef enum SpeechVisemeType {
15339    SVP_0 = 0,
15340    SVP_1 = 1,
15341    SVP_2 = 2,
15342    SVP_3 = 3,
15343    SVP_4 = 4,
15344    SVP_5 = 5,
15345    SVP_6 = 6,
15346    SVP_7 = 7,
15347    SVP_8 = 8,
15348    SVP_9 = 9,
15349    SVP_10 = 10,
15350    SVP_11 = 11,
15351    SVP_12 = 12,
15352    SVP_13 = 13,
15353    SVP_14 = 14,
15354    SVP_15 = 15,
15355    SVP_16 = 16,
15356    SVP_17 = 17,
15357    SVP_18 = 18,
15358    SVP_19 = 19,
15359    SVP_20 = 20,
15360    SVP_21 = 21
15361} SpeechVisemeType;
15362typedef enum SpeechVisemeFeature {
15363    SVF_None = 0,
15364    SVF_Stressed = SPVFEATURE_STRESSED,
15365    SVF_Emphasis = SPVFEATURE_EMPHASIS
15366} SpeechVisemeFeature;
15367typedef enum DISPID_SpeechVoiceEvent {
15368    DISPID_SVEStreamStart = 1,
15369    DISPID_SVEStreamEnd = 2,
15370    DISPID_SVEVoiceChange = 3,
15371    DISPID_SVEBookmark = 4,
15372    DISPID_SVEWord = 5,
15373    DISPID_SVEPhoneme = 6,
15374    DISPID_SVESentenceBoundary = 7,
15375    DISPID_SVEViseme = 8,
15376    DISPID_SVEAudioLevel = 9,
15377    DISPID_SVEEnginePrivate = 10
15378} DISPID_SpeechVoiceEvent;
15379typedef enum DISPID_SpeechRecognizer {
15380    DISPID_SRRecognizer = 1,
15381    DISPID_SRAllowAudioInputFormatChangesOnNextSet = 2,
15382    DISPID_SRAudioInput = 3,
15383    DISPID_SRAudioInputStream = 4,
15384    DISPID_SRIsShared = 5,
15385    DISPID_SRState = 6,
15386    DISPID_SRStatus = 7,
15387    DISPID_SRProfile = 8,
15388    DISPID_SREmulateRecognition = 9,
15389    DISPID_SRCreateRecoContext = 10,
15390    DISPID_SRGetFormat = 11,
15391    DISPID_SRSetPropertyNumber = 12,
15392    DISPID_SRGetPropertyNumber = 13,
15393    DISPID_SRSetPropertyString = 14,
15394    DISPID_SRGetPropertyString = 15,
15395    DISPID_SRIsUISupported = 16,
15396    DISPID_SRDisplayUI = 17,
15397    DISPID_SRGetRecognizers = 18,
15398    DISPID_SVGetAudioInputs = 19,
15399    DISPID_SVGetProfiles = 20
15400} DISPID_SpeechRecognizer;
15401typedef enum SpeechRecognizerState {
15402    SRSInactive = SPRST_INACTIVE,
15403    SRSActive = SPRST_ACTIVE,
15404    SRSActiveAlways = SPRST_ACTIVE_ALWAYS,
15405    SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE
15406} SpeechRecognizerState;
15407typedef enum SpeechDisplayAttributes {
15408    SDA_No_Trailing_Space = 0,
15409    SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE,
15410    SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES,
15411    SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES
15412} SpeechDisplayAttributes;
15413typedef enum SpeechFormatType {
15414    SFTInput = SPWF_INPUT,
15415    SFTSREngine = SPWF_SRENGINE
15416} SpeechFormatType;
15417typedef enum DISPID_SpeechRecognizerStatus {
15418    DISPID_SRSAudioStatus = 1,
15419    DISPID_SRSCurrentStreamPosition = 2,
15420    DISPID_SRSCurrentStreamNumber = 3,
15421    DISPID_SRSNumberOfActiveRules = 4,
15422    DISPID_SRSClsidEngine = 5,
15423    DISPID_SRSSupportedLanguages = 6
15424} DISPID_SpeechRecognizerStatus;
15425typedef enum DISPID_SpeechRecoContext {
15426    DISPID_SRCRecognizer = 1,
15427    DISPID_SRCAudioInInterferenceStatus = 2,
15428    DISPID_SRCRequestedUIType = 3,
15429    DISPID_SRCVoice = 4,
15430    DISPID_SRAllowVoiceFormatMatchingOnNextSet = 5,
15431    DISPID_SRCVoicePurgeEvent = 6,
15432    DISPID_SRCEventInterests = 7,
15433    DISPID_SRCCmdMaxAlternates = 8,
15434    DISPID_SRCState = 9,
15435    DISPID_SRCRetainedAudio = 10,
15436    DISPID_SRCRetainedAudioFormat = 11,
15437    DISPID_SRCPause = 12,
15438    DISPID_SRCResume = 13,
15439    DISPID_SRCCreateGrammar = 14,
15440    DISPID_SRCCreateResultFromMemory = 15,
15441    DISPID_SRCBookmark = 16,
15442    DISPID_SRCSetAdaptationData = 17
15443} DISPID_SpeechRecoContext;
15444typedef enum SpeechRetainedAudioOptions {
15445    SRAONone = SPAO_NONE,
15446    SRAORetainAudio = SPAO_RETAIN_AUDIO
15447} SpeechRetainedAudioOptions;
15448typedef enum SpeechBookmarkOptions {
15449    SBONone = SPBO_NONE,
15450    SBOPause = SPBO_PAUSE
15451} SpeechBookmarkOptions;
15452typedef enum SpeechInterference {
15453    SINone = SPINTERFERENCE_NONE,
15454    SINoise = SPINTERFERENCE_NOISE,
15455    SINoSignal = SPINTERFERENCE_NOSIGNAL,
15456    SITooLoud = SPINTERFERENCE_TOOLOUD,
15457    SITooQuiet = SPINTERFERENCE_TOOQUIET,
15458    SITooFast = SPINTERFERENCE_TOOFAST,
15459    SITooSlow = SPINTERFERENCE_TOOSLOW
15460} SpeechInterference;
15461typedef enum SpeechRecoEvents {
15462    SREStreamEnd = 0x1,
15463    SRESoundStart = 0x2,
15464    SRESoundEnd = 0x4,
15465    SREPhraseStart = 0x8,
15466    SRERecognition = 0x10,
15467    SREHypothesis = 0x20,
15468    SREBookmark = 0x40,
15469    SREPropertyNumChange = 0x80,
15470    SREPropertyStringChange = 0x100,
15471    SREFalseRecognition = 0x200,
15472    SREInterference = 0x400,
15473    SRERequestUI = 0x800,
15474    SREStateChange = 0x1000,
15475    SREAdaptation = 0x2000,
15476    SREStreamStart = 0x4000,
15477    SRERecoOtherContext = 0x8000,
15478    SREAudioLevel = 0x10000,
15479    SREPrivate = 0x40000,
15480    SREAllEvents = 0x5ffff
15481} SpeechRecoEvents;
15482typedef enum SpeechRecoContextState {
15483    SRCS_Disabled = SPCS_DISABLED,
15484    SRCS_Enabled = SPCS_ENABLED
15485} SpeechRecoContextState;
15486typedef enum DISPIDSPRG {
15487    DISPID_SRGId = 1,
15488    DISPID_SRGRecoContext = 2,
15489    DISPID_SRGState = 3,
15490    DISPID_SRGRules = 4,
15491    DISPID_SRGReset = 5,
15492    DISPID_SRGCommit = 6,
15493    DISPID_SRGCmdLoadFromFile = 7,
15494    DISPID_SRGCmdLoadFromObject = 8,
15495    DISPID_SRGCmdLoadFromResource = 9,
15496    DISPID_SRGCmdLoadFromMemory = 10,
15497    DISPID_SRGCmdLoadFromProprietaryGrammar = 11,
15498    DISPID_SRGCmdSetRuleState = 12,
15499    DISPID_SRGCmdSetRuleIdState = 13,
15500    DISPID_SRGDictationLoad = 14,
15501    DISPID_SRGDictationUnload = 15,
15502    DISPID_SRGDictationSetState = 16,
15503    DISPID_SRGSetWordSequenceData = 17,
15504    DISPID_SRGSetTextSelection = 18,
15505    DISPID_SRGIsPronounceable = 19
15506} DISPIDSPRG;
15507typedef enum SpeechLoadOption {
15508    SLOStatic = SPLO_STATIC,
15509    SLODynamic = SPLO_DYNAMIC
15510} SpeechLoadOption;
15511typedef enum SpeechWordPronounceable {
15512    SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
15513    SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
15514    SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE
15515} SpeechWordPronounceable;
15516typedef enum SpeechGrammarState {
15517    SGSEnabled = SPGS_ENABLED,
15518    SGSDisabled = SPGS_DISABLED,
15519    SGSExclusive = SPGS_EXCLUSIVE
15520} SpeechGrammarState;
15521typedef enum SpeechRuleState {
15522    SGDSInactive = SPRS_INACTIVE,
15523    SGDSActive = SPRS_ACTIVE,
15524    SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE,
15525    SGDSActiveUserDelimited = SPRS_ACTIVE_USER_DELIMITED
15526} SpeechRuleState;
15527typedef enum SpeechRuleAttributes {
15528    SRATopLevel = SPRAF_TopLevel,
15529    SRADefaultToActive = SPRAF_Active,
15530    SRAExport = SPRAF_Export,
15531    SRAImport = SPRAF_Import,
15532    SRAInterpreter = SPRAF_Interpreter,
15533    SRADynamic = SPRAF_Dynamic,
15534    SRARoot = SPRAF_Root
15535} SpeechRuleAttributes;
15536typedef enum SpeechGrammarWordType {
15537    SGDisplay = SPWT_DISPLAY,
15538    SGLexical = SPWT_LEXICAL,
15539    SGPronounciation = SPWT_PRONUNCIATION,
15540    SGLexicalNoSpecialChars = SPWT_LEXICAL_NO_SPECIAL_CHARS
15541} SpeechGrammarWordType;
15542typedef enum DISPID_SpeechRecoContextEvents {
15543    DISPID_SRCEStartStream = 1,
15544    DISPID_SRCEEndStream = 2,
15545    DISPID_SRCEBookmark = 3,
15546    DISPID_SRCESoundStart = 4,
15547    DISPID_SRCESoundEnd = 5,
15548    DISPID_SRCEPhraseStart = 6,
15549    DISPID_SRCERecognition = 7,
15550    DISPID_SRCEHypothesis = 8,
15551    DISPID_SRCEPropertyNumberChange = 9,
15552    DISPID_SRCEPropertyStringChange = 10,
15553    DISPID_SRCEFalseRecognition = 11,
15554    DISPID_SRCEInterference = 12,
15555    DISPID_SRCERequestUI = 13,
15556    DISPID_SRCERecognizerStateChange = 14,
15557    DISPID_SRCEAdaptation = 15,
15558    DISPID_SRCERecognitionForOtherContext = 16,
15559    DISPID_SRCEAudioLevel = 17,
15560    DISPID_SRCEEnginePrivate = 18
15561} DISPID_SpeechRecoContextEvents;
15562typedef enum SpeechRecognitionType {
15563    SRTStandard = 0,
15564    SRTAutopause = SPREF_AutoPause,
15565    SRTEmulated = SPREF_Emulated,
15566    SRTSMLTimeout = SPREF_SMLTimeout,
15567    SRTExtendableParse = SPREF_ExtendableParse,
15568    SRTReSent = SPREF_ReSent
15569} SpeechRecognitionType;
15570typedef enum DISPID_SpeechGrammarRule {
15571    DISPID_SGRAttributes = 1,
15572    DISPID_SGRInitialState = 2,
15573    DISPID_SGRName = 3,
15574    DISPID_SGRId = 4,
15575    DISPID_SGRClear = 5,
15576    DISPID_SGRAddResource = 6,
15577    DISPID_SGRAddState = 7
15578} DISPID_SpeechGrammarRule;
15579typedef enum DISPID_SpeechGrammarRules {
15580    DISPID_SGRsCount = 1,
15581    DISPID_SGRsDynamic = 2,
15582    DISPID_SGRsAdd = 3,
15583    DISPID_SGRsCommit = 4,
15584    DISPID_SGRsCommitAndSave = 5,
15585    DISPID_SGRsFindRule = 6,
15586    DISPID_SGRsItem = DISPID_VALUE,
15587    DISPID_SGRs_NewEnum = DISPID_NEWENUM
15588} DISPID_SpeechGrammarRules;
15589typedef enum DISPID_SpeechGrammarRuleState {
15590    DISPID_SGRSRule = 1,
15591    DISPID_SGRSTransitions = 2,
15592    DISPID_SGRSAddWordTransition = 3,
15593    DISPID_SGRSAddRuleTransition = 4,
15594    DISPID_SGRSAddSpecialTransition = 5
15595} DISPID_SpeechGrammarRuleState;
15596typedef enum SpeechSpecialTransitionType {
15597    SSTTWildcard = 1,
15598    SSTTDictation = 2,
15599    SSTTTextBuffer = 3
15600} SpeechSpecialTransitionType;
15601typedef enum DISPID_SpeechGrammarRuleStateTransitions {
15602    DISPID_SGRSTsCount = 1,
15603    DISPID_SGRSTsItem = DISPID_VALUE,
15604    DISPID_SGRSTs_NewEnum = DISPID_NEWENUM
15605} DISPID_SpeechGrammarRuleStateTransitions;
15606typedef enum DISPID_SpeechGrammarRuleStateTransition {
15607    DISPID_SGRSTType = 1,
15608    DISPID_SGRSTText = 2,
15609    DISPID_SGRSTRule = 3,
15610    DISPID_SGRSTWeight = 4,
15611    DISPID_SGRSTPropertyName = 5,
15612    DISPID_SGRSTPropertyId = 6,
15613    DISPID_SGRSTPropertyValue = 7,
15614    DISPID_SGRSTNextState = 8
15615} DISPID_SpeechGrammarRuleStateTransition;
15616typedef enum SpeechGrammarRuleStateTransitionType {
15617    SGRSTTEpsilon = 0,
15618    SGRSTTWord = 1,
15619    SGRSTTRule = 2,
15620    SGRSTTDictation = 3,
15621    SGRSTTWildcard = 4,
15622    SGRSTTTextBuffer = 5
15623} SpeechGrammarRuleStateTransitionType;
15624typedef enum DISPIDSPTSI {
15625    DISPIDSPTSI_ActiveOffset = 1,
15626    DISPIDSPTSI_ActiveLength = 2,
15627    DISPIDSPTSI_SelectionOffset = 3,
15628    DISPIDSPTSI_SelectionLength = 4
15629} DISPIDSPTSI;
15630typedef enum DISPID_SpeechRecoResult {
15631    DISPID_SRRRecoContext = 1,
15632    DISPID_SRRTimes = 2,
15633    DISPID_SRRAudioFormat = 3,
15634    DISPID_SRRPhraseInfo = 4,
15635    DISPID_SRRAlternates = 5,
15636    DISPID_SRRAudio = 6,
15637    DISPID_SRRSpeakAudio = 7,
15638    DISPID_SRRSaveToMemory = 8,
15639    DISPID_SRRDiscardResultInfo = 9
15640} DISPID_SpeechRecoResult;
15641typedef enum SpeechDiscardType {
15642    SDTProperty = SPDF_PROPERTY,
15643    SDTReplacement = SPDF_REPLACEMENT,
15644    SDTRule = SPDF_RULE,
15645    SDTDisplayText = SPDF_DISPLAYTEXT,
15646    SDTLexicalForm = SPDF_LEXICALFORM,
15647    SDTPronunciation = SPDF_PRONUNCIATION,
15648    SDTAudio = SPDF_AUDIO,
15649    SDTAlternates = SPDF_ALTERNATES,
15650    SDTAll = SPDF_ALL
15651} SpeechDiscardType;
15652typedef enum SpeechEmulationCompareFlags {
15653    SECFIgnoreCase = 0x1,
15654    SECFIgnoreKanaType = 0x10000,
15655    SECFIgnoreWidth = 0x20000,
15656    SECFNoSpecialChars = 0x20000000,
15657    SECFEmulateResult = 0x40000000,
15658    SECFDefault = (SECFIgnoreCase | SECFIgnoreKanaType) | SECFIgnoreWidth
15659} SpeechEmulationCompareFlags;
15660typedef enum DISPID_SpeechXMLRecoResult {
15661    DISPID_SRRGetXMLResult = DISPID_SRRDiscardResultInfo + 1,
15662    DISPID_SRRGetXMLErrorInfo = DISPID_SRRGetXMLResult + 1
15663} DISPID_SpeechXMLRecoResult;
15664typedef enum DISPID_SpeechRecoResult2 {
15665    DISPID_SRRSetTextFeedback = DISPID_SRRGetXMLErrorInfo + 1
15666} DISPID_SpeechRecoResult2;
15667typedef enum DISPID_SpeechPhraseBuilder {
15668    DISPID_SPPBRestorePhraseFromMemory = 1
15669} DISPID_SpeechPhraseBuilder;
15670typedef enum DISPID_SpeechRecoResultTimes {
15671    DISPID_SRRTStreamTime = 1,
15672    DISPID_SRRTLength = 2,
15673    DISPID_SRRTTickCount = 3,
15674    DISPID_SRRTOffsetFromStart = 4
15675} DISPID_SpeechRecoResultTimes;
15676typedef enum DISPID_SpeechPhraseAlternate {
15677    DISPID_SPARecoResult = 1,
15678    DISPID_SPAStartElementInResult = 2,
15679    DISPID_SPANumberOfElementsInResult = 3,
15680    DISPID_SPAPhraseInfo = 4,
15681    DISPID_SPACommit = 5
15682} DISPID_SpeechPhraseAlternate;
15683typedef enum DISPID_SpeechPhraseAlternates {
15684    DISPID_SPAsCount = 1,
15685    DISPID_SPAsItem = DISPID_VALUE,
15686    DISPID_SPAs_NewEnum = DISPID_NEWENUM
15687} DISPID_SpeechPhraseAlternates;
15688typedef enum DISPID_SpeechPhraseInfo {
15689    DISPID_SPILanguageId = 1,
15690    DISPID_SPIGrammarId = 2,
15691    DISPID_SPIStartTime = 3,
15692    DISPID_SPIAudioStreamPosition = 4,
15693    DISPID_SPIAudioSizeBytes = 5,
15694    DISPID_SPIRetainedSizeBytes = 6,
15695    DISPID_SPIAudioSizeTime = 7,
15696    DISPID_SPIRule = 8,
15697    DISPID_SPIProperties = 9,
15698    DISPID_SPIElements = 10,
15699    DISPID_SPIReplacements = 11,
15700    DISPID_SPIEngineId = 12,
15701    DISPID_SPIEnginePrivateData = 13,
15702    DISPID_SPISaveToMemory = 14,
15703    DISPID_SPIGetText = 15,
15704    DISPID_SPIGetDisplayAttributes = 16
15705} DISPID_SpeechPhraseInfo;
15706typedef enum DISPID_SpeechPhraseElement {
15707    DISPID_SPEAudioTimeOffset = 1,
15708    DISPID_SPEAudioSizeTime = 2,
15709    DISPID_SPEAudioStreamOffset = 3,
15710    DISPID_SPEAudioSizeBytes = 4,
15711    DISPID_SPERetainedStreamOffset = 5,
15712    DISPID_SPERetainedSizeBytes = 6,
15713    DISPID_SPEDisplayText = 7,
15714    DISPID_SPELexicalForm = 8,
15715    DISPID_SPEPronunciation = 9,
15716    DISPID_SPEDisplayAttributes = 10,
15717    DISPID_SPERequiredConfidence = 11,
15718    DISPID_SPEActualConfidence = 12,
15719    DISPID_SPEEngineConfidence = 13
15720} DISPID_SpeechPhraseElement;
15721typedef enum SpeechEngineConfidence {
15722    SECLowConfidence = -1,
15723    SECNormalConfidence = 0,
15724    SECHighConfidence = 1
15725} SpeechEngineConfidence;
15726typedef enum DISPID_SpeechPhraseElements {
15727    DISPID_SPEsCount = 1,
15728    DISPID_SPEsItem = DISPID_VALUE,
15729    DISPID_SPEs_NewEnum = DISPID_NEWENUM
15730} DISPID_SpeechPhraseElements;
15731typedef enum DISPID_SpeechPhraseReplacement {
15732    DISPID_SPRDisplayAttributes = 1,
15733    DISPID_SPRText = 2,
15734    DISPID_SPRFirstElement = 3,
15735    DISPID_SPRNumberOfElements = 4
15736} DISPID_SpeechPhraseReplacement;
15737typedef enum DISPID_SpeechPhraseReplacements {
15738    DISPID_SPRsCount = 1,
15739    DISPID_SPRsItem = DISPID_VALUE,
15740    DISPID_SPRs_NewEnum = DISPID_NEWENUM
15741} DISPID_SpeechPhraseReplacements;
15742typedef enum DISPID_SpeechPhraseProperty {
15743    DISPID_SPPName = 1,
15744    DISPID_SPPId = 2,
15745    DISPID_SPPValue = 3,
15746    DISPID_SPPFirstElement = 4,
15747    DISPID_SPPNumberOfElements = 5,
15748    DISPID_SPPEngineConfidence = 6,
15749    DISPID_SPPConfidence = 7,
15750    DISPID_SPPParent = 8,
15751    DISPID_SPPChildren = 9
15752} DISPID_SpeechPhraseProperty;
15753typedef enum DISPID_SpeechPhraseProperties {
15754    DISPID_SPPsCount = 1,
15755    DISPID_SPPsItem = DISPID_VALUE,
15756    DISPID_SPPs_NewEnum = DISPID_NEWENUM
15757} DISPID_SpeechPhraseProperties;
15758typedef enum DISPID_SpeechPhraseRule {
15759    DISPID_SPRuleName = 1,
15760    DISPID_SPRuleId = 2,
15761    DISPID_SPRuleFirstElement = 3,
15762    DISPID_SPRuleNumberOfElements = 4,
15763    DISPID_SPRuleParent = 5,
15764    DISPID_SPRuleChildren = 6,
15765    DISPID_SPRuleConfidence = 7,
15766    DISPID_SPRuleEngineConfidence = 8
15767} DISPID_SpeechPhraseRule;
15768typedef enum DISPID_SpeechPhraseRules {
15769    DISPID_SPRulesCount = 1,
15770    DISPID_SPRulesItem = DISPID_VALUE,
15771    DISPID_SPRules_NewEnum = DISPID_NEWENUM
15772} DISPID_SpeechPhraseRules;
15773typedef enum DISPID_SpeechLexicon {
15774    DISPID_SLGenerationId = 1,
15775    DISPID_SLGetWords = 2,
15776    DISPID_SLAddPronunciation = 3,
15777    DISPID_SLAddPronunciationByPhoneIds = 4,
15778    DISPID_SLRemovePronunciation = 5,
15779    DISPID_SLRemovePronunciationByPhoneIds = 6,
15780    DISPID_SLGetPronunciations = 7,
15781    DISPID_SLGetGenerationChange = 8
15782} DISPID_SpeechLexicon;
15783typedef enum SpeechLexiconType {
15784    SLTUser = eLEXTYPE_USER,
15785    SLTApp = eLEXTYPE_APP
15786} SpeechLexiconType;
15787typedef enum SpeechPartOfSpeech {
15788    SPSNotOverriden = SPPS_NotOverriden,
15789    SPSUnknown = SPPS_Unknown,
15790    SPSNoun = SPPS_Noun,
15791    SPSVerb = SPPS_Verb,
15792    SPSModifier = SPPS_Modifier,
15793    SPSFunction = SPPS_Function,
15794    SPSInterjection = SPPS_Interjection,
15795    SPSLMA = SPPS_LMA,
15796    SPSSuppressWord = SPPS_SuppressWord
15797} SpeechPartOfSpeech;
15798typedef enum DISPID_SpeechLexiconWords {
15799    DISPID_SLWsCount = 1,
15800    DISPID_SLWsItem = DISPID_VALUE,
15801    DISPID_SLWs_NewEnum = DISPID_NEWENUM
15802} DISPID_SpeechLexiconWords;
15803typedef enum SpeechWordType {
15804    SWTAdded = eWORDTYPE_ADDED,
15805    SWTDeleted = eWORDTYPE_DELETED
15806} SpeechWordType;
15807typedef enum DISPID_SpeechLexiconWord {
15808    DISPID_SLWLangId = 1,
15809    DISPID_SLWType = 2,
15810    DISPID_SLWWord = 3,
15811    DISPID_SLWPronunciations = 4
15812} DISPID_SpeechLexiconWord;
15813typedef enum DISPID_SpeechLexiconProns {
15814    DISPID_SLPsCount = 1,
15815    DISPID_SLPsItem = DISPID_VALUE,
15816    DISPID_SLPs_NewEnum = DISPID_NEWENUM
15817} DISPID_SpeechLexiconProns;
15818typedef enum DISPID_SpeechLexiconPronunciation {
15819    DISPID_SLPType = 1,
15820    DISPID_SLPLangId = 2,
15821    DISPID_SLPPartOfSpeech = 3,
15822    DISPID_SLPPhoneIds = 4,
15823    DISPID_SLPSymbolic = 5
15824} DISPID_SpeechLexiconPronunciation;
15825typedef enum DISPID_SpeechPhoneConverter {
15826    DISPID_SPCLangId = 1,
15827    DISPID_SPCPhoneToId = 2,
15828    DISPID_SPCIdToPhone = 3
15829} DISPID_SpeechPhoneConverter;
15830/*****************************************************************************
15831 * _ISpeechVoiceEvents dispinterface
15832 */
15833#ifndef ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
15834#define ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
15835
15836DEFINE_GUID(DIID__ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8);
15837#if defined(__cplusplus) && !defined(CINTERFACE)
15838MIDL_INTERFACE("a372acd1-3bef-4bbd-8ffb-cb3e2b416af8")
15839_ISpeechVoiceEvents : public IDispatch
15840{
15841};
15842#ifdef __CRT_UUID_DECL
15843__CRT_UUID_DECL(_ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8)
15844#endif
15845#else
15846typedef struct _ISpeechVoiceEventsVtbl {
15847    BEGIN_INTERFACE
15848
15849    /*** IUnknown methods ***/
15850    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15851        _ISpeechVoiceEvents *This,
15852        REFIID riid,
15853        void **ppvObject);
15854
15855    ULONG (STDMETHODCALLTYPE *AddRef)(
15856        _ISpeechVoiceEvents *This);
15857
15858    ULONG (STDMETHODCALLTYPE *Release)(
15859        _ISpeechVoiceEvents *This);
15860
15861    /*** IDispatch methods ***/
15862    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15863        _ISpeechVoiceEvents *This,
15864        UINT *pctinfo);
15865
15866    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15867        _ISpeechVoiceEvents *This,
15868        UINT iTInfo,
15869        LCID lcid,
15870        ITypeInfo **ppTInfo);
15871
15872    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15873        _ISpeechVoiceEvents *This,
15874        REFIID riid,
15875        LPOLESTR *rgszNames,
15876        UINT cNames,
15877        LCID lcid,
15878        DISPID *rgDispId);
15879
15880    HRESULT (STDMETHODCALLTYPE *Invoke)(
15881        _ISpeechVoiceEvents *This,
15882        DISPID dispIdMember,
15883        REFIID riid,
15884        LCID lcid,
15885        WORD wFlags,
15886        DISPPARAMS *pDispParams,
15887        VARIANT *pVarResult,
15888        EXCEPINFO *pExcepInfo,
15889        UINT *puArgErr);
15890
15891    END_INTERFACE
15892} _ISpeechVoiceEventsVtbl;
15893
15894interface _ISpeechVoiceEvents {
15895    CONST_VTBL _ISpeechVoiceEventsVtbl* lpVtbl;
15896};
15897
15898#ifdef COBJMACROS
15899#ifndef WIDL_C_INLINE_WRAPPERS
15900/*** IUnknown methods ***/
15901#define _ISpeechVoiceEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15902#define _ISpeechVoiceEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
15903#define _ISpeechVoiceEvents_Release(This) (This)->lpVtbl->Release(This)
15904/*** IDispatch methods ***/
15905#define _ISpeechVoiceEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15906#define _ISpeechVoiceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15907#define _ISpeechVoiceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15908#define _ISpeechVoiceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15909#else
15910/*** IUnknown methods ***/
15911static inline HRESULT _ISpeechVoiceEvents_QueryInterface(_ISpeechVoiceEvents* This,REFIID riid,void **ppvObject) {
15912    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15913}
15914static inline ULONG _ISpeechVoiceEvents_AddRef(_ISpeechVoiceEvents* This) {
15915    return This->lpVtbl->AddRef(This);
15916}
15917static inline ULONG _ISpeechVoiceEvents_Release(_ISpeechVoiceEvents* This) {
15918    return This->lpVtbl->Release(This);
15919}
15920/*** IDispatch methods ***/
15921static inline HRESULT _ISpeechVoiceEvents_GetTypeInfoCount(_ISpeechVoiceEvents* This,UINT *pctinfo) {
15922    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15923}
15924static inline HRESULT _ISpeechVoiceEvents_GetTypeInfo(_ISpeechVoiceEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15925    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15926}
15927static inline HRESULT _ISpeechVoiceEvents_GetIDsOfNames(_ISpeechVoiceEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15928    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15929}
15930static inline HRESULT _ISpeechVoiceEvents_Invoke(_ISpeechVoiceEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15931    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15932}
15933#endif
15934#endif
15935
15936#endif
15937
15938#endif  /* ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__ */
15939
15940/*****************************************************************************
15941 * ISpeechRecognizer interface
15942 */
15943#ifndef __ISpeechRecognizer_INTERFACE_DEFINED__
15944#define __ISpeechRecognizer_INTERFACE_DEFINED__
15945
15946DEFINE_GUID(IID_ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c);
15947#if defined(__cplusplus) && !defined(CINTERFACE)
15948MIDL_INTERFACE("2d5f1c0c-bd75-4b08-9478-3b11fea2586c")
15949ISpeechRecognizer : public IDispatch
15950{
15951    virtual HRESULT STDMETHODCALLTYPE putref_Recognizer(
15952        ISpeechObjectToken *Recognizer) = 0;
15953
15954    virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
15955        ISpeechObjectToken **Recognizer) = 0;
15956
15957    virtual HRESULT STDMETHODCALLTYPE put_AllowAudioInputFormatChangesOnNextSet(
15958        VARIANT_BOOL Allow) = 0;
15959
15960    virtual HRESULT STDMETHODCALLTYPE get_AllowAudioInputFormatChangesOnNextSet(
15961        VARIANT_BOOL *Allow) = 0;
15962
15963    virtual HRESULT STDMETHODCALLTYPE putref_AudioInput(
15964        ISpeechObjectToken *AudioInput = 0) = 0;
15965
15966    virtual HRESULT STDMETHODCALLTYPE get_AudioInput(
15967        ISpeechObjectToken **AudioInput) = 0;
15968
15969    virtual HRESULT STDMETHODCALLTYPE putref_AudioInputStream(
15970        ISpeechBaseStream *AudioInputStream = 0) = 0;
15971
15972    virtual HRESULT STDMETHODCALLTYPE get_AudioInputStream(
15973        ISpeechBaseStream **AudioInputStream) = 0;
15974
15975    virtual HRESULT STDMETHODCALLTYPE get_IsShared(
15976        VARIANT_BOOL *Shared) = 0;
15977
15978    virtual HRESULT STDMETHODCALLTYPE put_State(
15979        SpeechRecognizerState State) = 0;
15980
15981    virtual HRESULT STDMETHODCALLTYPE get_State(
15982        SpeechRecognizerState *State) = 0;
15983
15984    virtual HRESULT STDMETHODCALLTYPE get_Status(
15985        ISpeechRecognizerStatus **Status) = 0;
15986
15987    virtual HRESULT STDMETHODCALLTYPE putref_Profile(
15988        ISpeechObjectToken *Profile = 0) = 0;
15989
15990    virtual HRESULT STDMETHODCALLTYPE get_Profile(
15991        ISpeechObjectToken **Profile) = 0;
15992
15993    virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
15994        VARIANT TextElements,
15995        VARIANT *ElementDisplayAttributes = 0,
15996        LONG LanguageId = 0) = 0;
15997
15998    virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
15999        ISpeechRecoContext **NewContext) = 0;
16000
16001    virtual HRESULT STDMETHODCALLTYPE GetFormat(
16002        SpeechFormatType Type,
16003        ISpeechAudioFormat **Format) = 0;
16004
16005    virtual HRESULT STDMETHODCALLTYPE SetPropertyNumber(
16006        const BSTR Name,
16007        LONG Value,
16008        VARIANT_BOOL *Supported) = 0;
16009
16010    virtual HRESULT STDMETHODCALLTYPE GetPropertyNumber(
16011        const BSTR Name,
16012        LONG *Value,
16013        VARIANT_BOOL *Supported) = 0;
16014
16015    virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
16016        const BSTR Name,
16017        const BSTR Value,
16018        VARIANT_BOOL *Supported) = 0;
16019
16020    virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
16021        const BSTR Name,
16022        BSTR *Value,
16023        VARIANT_BOOL *Supported) = 0;
16024
16025    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
16026        const BSTR TypeOfUI,
16027        const VARIANT *ExtraData,
16028        VARIANT_BOOL *Supported) = 0;
16029
16030    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
16031        LONG hWndParent,
16032        BSTR Title,
16033        const BSTR TypeOfUI,
16034        const VARIANT *ExtraData = 0) = 0;
16035
16036    virtual HRESULT STDMETHODCALLTYPE GetRecognizers(
16037        BSTR RequiredAttributes,
16038        BSTR OptionalAttributes,
16039        ISpeechObjectTokens **ObjectTokens) = 0;
16040
16041    virtual HRESULT STDMETHODCALLTYPE GetAudioInputs(
16042        BSTR RequiredAttributes,
16043        BSTR OptionalAttributes,
16044        ISpeechObjectTokens **ObjectTokens) = 0;
16045
16046    virtual HRESULT STDMETHODCALLTYPE GetProfiles(
16047        BSTR RequiredAttributes,
16048        BSTR OptionalAttributes,
16049        ISpeechObjectTokens **ObjectTokens) = 0;
16050
16051};
16052#ifdef __CRT_UUID_DECL
16053__CRT_UUID_DECL(ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c)
16054#endif
16055#else
16056typedef struct ISpeechRecognizerVtbl {
16057    BEGIN_INTERFACE
16058
16059    /*** IUnknown methods ***/
16060    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16061        ISpeechRecognizer *This,
16062        REFIID riid,
16063        void **ppvObject);
16064
16065    ULONG (STDMETHODCALLTYPE *AddRef)(
16066        ISpeechRecognizer *This);
16067
16068    ULONG (STDMETHODCALLTYPE *Release)(
16069        ISpeechRecognizer *This);
16070
16071    /*** IDispatch methods ***/
16072    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16073        ISpeechRecognizer *This,
16074        UINT *pctinfo);
16075
16076    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16077        ISpeechRecognizer *This,
16078        UINT iTInfo,
16079        LCID lcid,
16080        ITypeInfo **ppTInfo);
16081
16082    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16083        ISpeechRecognizer *This,
16084        REFIID riid,
16085        LPOLESTR *rgszNames,
16086        UINT cNames,
16087        LCID lcid,
16088        DISPID *rgDispId);
16089
16090    HRESULT (STDMETHODCALLTYPE *Invoke)(
16091        ISpeechRecognizer *This,
16092        DISPID dispIdMember,
16093        REFIID riid,
16094        LCID lcid,
16095        WORD wFlags,
16096        DISPPARAMS *pDispParams,
16097        VARIANT *pVarResult,
16098        EXCEPINFO *pExcepInfo,
16099        UINT *puArgErr);
16100
16101    /*** ISpeechRecognizer methods ***/
16102    HRESULT (STDMETHODCALLTYPE *putref_Recognizer)(
16103        ISpeechRecognizer *This,
16104        ISpeechObjectToken *Recognizer);
16105
16106    HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
16107        ISpeechRecognizer *This,
16108        ISpeechObjectToken **Recognizer);
16109
16110    HRESULT (STDMETHODCALLTYPE *put_AllowAudioInputFormatChangesOnNextSet)(
16111        ISpeechRecognizer *This,
16112        VARIANT_BOOL Allow);
16113
16114    HRESULT (STDMETHODCALLTYPE *get_AllowAudioInputFormatChangesOnNextSet)(
16115        ISpeechRecognizer *This,
16116        VARIANT_BOOL *Allow);
16117
16118    HRESULT (STDMETHODCALLTYPE *putref_AudioInput)(
16119        ISpeechRecognizer *This,
16120        ISpeechObjectToken *AudioInput);
16121
16122    HRESULT (STDMETHODCALLTYPE *get_AudioInput)(
16123        ISpeechRecognizer *This,
16124        ISpeechObjectToken **AudioInput);
16125
16126    HRESULT (STDMETHODCALLTYPE *putref_AudioInputStream)(
16127        ISpeechRecognizer *This,
16128        ISpeechBaseStream *AudioInputStream);
16129
16130    HRESULT (STDMETHODCALLTYPE *get_AudioInputStream)(
16131        ISpeechRecognizer *This,
16132        ISpeechBaseStream **AudioInputStream);
16133
16134    HRESULT (STDMETHODCALLTYPE *get_IsShared)(
16135        ISpeechRecognizer *This,
16136        VARIANT_BOOL *Shared);
16137
16138    HRESULT (STDMETHODCALLTYPE *put_State)(
16139        ISpeechRecognizer *This,
16140        SpeechRecognizerState State);
16141
16142    HRESULT (STDMETHODCALLTYPE *get_State)(
16143        ISpeechRecognizer *This,
16144        SpeechRecognizerState *State);
16145
16146    HRESULT (STDMETHODCALLTYPE *get_Status)(
16147        ISpeechRecognizer *This,
16148        ISpeechRecognizerStatus **Status);
16149
16150    HRESULT (STDMETHODCALLTYPE *putref_Profile)(
16151        ISpeechRecognizer *This,
16152        ISpeechObjectToken *Profile);
16153
16154    HRESULT (STDMETHODCALLTYPE *get_Profile)(
16155        ISpeechRecognizer *This,
16156        ISpeechObjectToken **Profile);
16157
16158    HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
16159        ISpeechRecognizer *This,
16160        VARIANT TextElements,
16161        VARIANT *ElementDisplayAttributes,
16162        LONG LanguageId);
16163
16164    HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
16165        ISpeechRecognizer *This,
16166        ISpeechRecoContext **NewContext);
16167
16168    HRESULT (STDMETHODCALLTYPE *GetFormat)(
16169        ISpeechRecognizer *This,
16170        SpeechFormatType Type,
16171        ISpeechAudioFormat **Format);
16172
16173    HRESULT (STDMETHODCALLTYPE *SetPropertyNumber)(
16174        ISpeechRecognizer *This,
16175        const BSTR Name,
16176        LONG Value,
16177        VARIANT_BOOL *Supported);
16178
16179    HRESULT (STDMETHODCALLTYPE *GetPropertyNumber)(
16180        ISpeechRecognizer *This,
16181        const BSTR Name,
16182        LONG *Value,
16183        VARIANT_BOOL *Supported);
16184
16185    HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
16186        ISpeechRecognizer *This,
16187        const BSTR Name,
16188        const BSTR Value,
16189        VARIANT_BOOL *Supported);
16190
16191    HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
16192        ISpeechRecognizer *This,
16193        const BSTR Name,
16194        BSTR *Value,
16195        VARIANT_BOOL *Supported);
16196
16197    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
16198        ISpeechRecognizer *This,
16199        const BSTR TypeOfUI,
16200        const VARIANT *ExtraData,
16201        VARIANT_BOOL *Supported);
16202
16203    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
16204        ISpeechRecognizer *This,
16205        LONG hWndParent,
16206        BSTR Title,
16207        const BSTR TypeOfUI,
16208        const VARIANT *ExtraData);
16209
16210    HRESULT (STDMETHODCALLTYPE *GetRecognizers)(
16211        ISpeechRecognizer *This,
16212        BSTR RequiredAttributes,
16213        BSTR OptionalAttributes,
16214        ISpeechObjectTokens **ObjectTokens);
16215
16216    HRESULT (STDMETHODCALLTYPE *GetAudioInputs)(
16217        ISpeechRecognizer *This,
16218        BSTR RequiredAttributes,
16219        BSTR OptionalAttributes,
16220        ISpeechObjectTokens **ObjectTokens);
16221
16222    HRESULT (STDMETHODCALLTYPE *GetProfiles)(
16223        ISpeechRecognizer *This,
16224        BSTR RequiredAttributes,
16225        BSTR OptionalAttributes,
16226        ISpeechObjectTokens **ObjectTokens);
16227
16228    END_INTERFACE
16229} ISpeechRecognizerVtbl;
16230
16231interface ISpeechRecognizer {
16232    CONST_VTBL ISpeechRecognizerVtbl* lpVtbl;
16233};
16234
16235#ifdef COBJMACROS
16236#ifndef WIDL_C_INLINE_WRAPPERS
16237/*** IUnknown methods ***/
16238#define ISpeechRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16239#define ISpeechRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
16240#define ISpeechRecognizer_Release(This) (This)->lpVtbl->Release(This)
16241/*** IDispatch methods ***/
16242#define ISpeechRecognizer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16243#define ISpeechRecognizer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16244#define ISpeechRecognizer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16245#define ISpeechRecognizer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16246/*** ISpeechRecognizer methods ***/
16247#define ISpeechRecognizer_putref_Recognizer(This,Recognizer) (This)->lpVtbl->putref_Recognizer(This,Recognizer)
16248#define ISpeechRecognizer_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
16249#define ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow)
16250#define ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow)
16251#define ISpeechRecognizer_putref_AudioInput(This,AudioInput) (This)->lpVtbl->putref_AudioInput(This,AudioInput)
16252#define ISpeechRecognizer_get_AudioInput(This,AudioInput) (This)->lpVtbl->get_AudioInput(This,AudioInput)
16253#define ISpeechRecognizer_putref_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->putref_AudioInputStream(This,AudioInputStream)
16254#define ISpeechRecognizer_get_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->get_AudioInputStream(This,AudioInputStream)
16255#define ISpeechRecognizer_get_IsShared(This,Shared) (This)->lpVtbl->get_IsShared(This,Shared)
16256#define ISpeechRecognizer_put_State(This,State) (This)->lpVtbl->put_State(This,State)
16257#define ISpeechRecognizer_get_State(This,State) (This)->lpVtbl->get_State(This,State)
16258#define ISpeechRecognizer_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
16259#define ISpeechRecognizer_putref_Profile(This,Profile) (This)->lpVtbl->putref_Profile(This,Profile)
16260#define ISpeechRecognizer_get_Profile(This,Profile) (This)->lpVtbl->get_Profile(This,Profile)
16261#define ISpeechRecognizer_EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId) (This)->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId)
16262#define ISpeechRecognizer_CreateRecoContext(This,NewContext) (This)->lpVtbl->CreateRecoContext(This,NewContext)
16263#define ISpeechRecognizer_GetFormat(This,Type,Format) (This)->lpVtbl->GetFormat(This,Type,Format)
16264#define ISpeechRecognizer_SetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyNumber(This,Name,Value,Supported)
16265#define ISpeechRecognizer_GetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyNumber(This,Name,Value,Supported)
16266#define ISpeechRecognizer_SetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyString(This,Name,Value,Supported)
16267#define ISpeechRecognizer_GetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyString(This,Name,Value,Supported)
16268#define ISpeechRecognizer_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
16269#define ISpeechRecognizer_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
16270#define ISpeechRecognizer_GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
16271#define ISpeechRecognizer_GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
16272#define ISpeechRecognizer_GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
16273#else
16274/*** IUnknown methods ***/
16275static inline HRESULT ISpeechRecognizer_QueryInterface(ISpeechRecognizer* This,REFIID riid,void **ppvObject) {
16276    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16277}
16278static inline ULONG ISpeechRecognizer_AddRef(ISpeechRecognizer* This) {
16279    return This->lpVtbl->AddRef(This);
16280}
16281static inline ULONG ISpeechRecognizer_Release(ISpeechRecognizer* This) {
16282    return This->lpVtbl->Release(This);
16283}
16284/*** IDispatch methods ***/
16285static inline HRESULT ISpeechRecognizer_GetTypeInfoCount(ISpeechRecognizer* This,UINT *pctinfo) {
16286    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16287}
16288static inline HRESULT ISpeechRecognizer_GetTypeInfo(ISpeechRecognizer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16289    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16290}
16291static inline HRESULT ISpeechRecognizer_GetIDsOfNames(ISpeechRecognizer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16292    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16293}
16294static inline HRESULT ISpeechRecognizer_Invoke(ISpeechRecognizer* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16295    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16296}
16297/*** ISpeechRecognizer methods ***/
16298static inline HRESULT ISpeechRecognizer_putref_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken *Recognizer) {
16299    return This->lpVtbl->putref_Recognizer(This,Recognizer);
16300}
16301static inline HRESULT ISpeechRecognizer_get_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken **Recognizer) {
16302    return This->lpVtbl->get_Recognizer(This,Recognizer);
16303}
16304static inline HRESULT ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL Allow) {
16305    return This->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow);
16306}
16307static inline HRESULT ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL *Allow) {
16308    return This->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow);
16309}
16310static inline HRESULT ISpeechRecognizer_putref_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken *AudioInput) {
16311    return This->lpVtbl->putref_AudioInput(This,AudioInput);
16312}
16313static inline HRESULT ISpeechRecognizer_get_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken **AudioInput) {
16314    return This->lpVtbl->get_AudioInput(This,AudioInput);
16315}
16316static inline HRESULT ISpeechRecognizer_putref_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream *AudioInputStream) {
16317    return This->lpVtbl->putref_AudioInputStream(This,AudioInputStream);
16318}
16319static inline HRESULT ISpeechRecognizer_get_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream **AudioInputStream) {
16320    return This->lpVtbl->get_AudioInputStream(This,AudioInputStream);
16321}
16322static inline HRESULT ISpeechRecognizer_get_IsShared(ISpeechRecognizer* This,VARIANT_BOOL *Shared) {
16323    return This->lpVtbl->get_IsShared(This,Shared);
16324}
16325static inline HRESULT ISpeechRecognizer_put_State(ISpeechRecognizer* This,SpeechRecognizerState State) {
16326    return This->lpVtbl->put_State(This,State);
16327}
16328static inline HRESULT ISpeechRecognizer_get_State(ISpeechRecognizer* This,SpeechRecognizerState *State) {
16329    return This->lpVtbl->get_State(This,State);
16330}
16331static inline HRESULT ISpeechRecognizer_get_Status(ISpeechRecognizer* This,ISpeechRecognizerStatus **Status) {
16332    return This->lpVtbl->get_Status(This,Status);
16333}
16334static inline HRESULT ISpeechRecognizer_putref_Profile(ISpeechRecognizer* This,ISpeechObjectToken *Profile) {
16335    return This->lpVtbl->putref_Profile(This,Profile);
16336}
16337static inline HRESULT ISpeechRecognizer_get_Profile(ISpeechRecognizer* This,ISpeechObjectToken **Profile) {
16338    return This->lpVtbl->get_Profile(This,Profile);
16339}
16340static inline HRESULT ISpeechRecognizer_EmulateRecognition(ISpeechRecognizer* This,VARIANT TextElements,VARIANT *ElementDisplayAttributes,LONG LanguageId) {
16341    return This->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId);
16342}
16343static inline HRESULT ISpeechRecognizer_CreateRecoContext(ISpeechRecognizer* This,ISpeechRecoContext **NewContext) {
16344    return This->lpVtbl->CreateRecoContext(This,NewContext);
16345}
16346static inline HRESULT ISpeechRecognizer_GetFormat(ISpeechRecognizer* This,SpeechFormatType Type,ISpeechAudioFormat **Format) {
16347    return This->lpVtbl->GetFormat(This,Type,Format);
16348}
16349static inline HRESULT ISpeechRecognizer_SetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG Value,VARIANT_BOOL *Supported) {
16350    return This->lpVtbl->SetPropertyNumber(This,Name,Value,Supported);
16351}
16352static inline HRESULT ISpeechRecognizer_GetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG *Value,VARIANT_BOOL *Supported) {
16353    return This->lpVtbl->GetPropertyNumber(This,Name,Value,Supported);
16354}
16355static inline HRESULT ISpeechRecognizer_SetPropertyString(ISpeechRecognizer* This,const BSTR Name,const BSTR Value,VARIANT_BOOL *Supported) {
16356    return This->lpVtbl->SetPropertyString(This,Name,Value,Supported);
16357}
16358static inline HRESULT ISpeechRecognizer_GetPropertyString(ISpeechRecognizer* This,const BSTR Name,BSTR *Value,VARIANT_BOOL *Supported) {
16359    return This->lpVtbl->GetPropertyString(This,Name,Value,Supported);
16360}
16361static inline HRESULT ISpeechRecognizer_IsUISupported(ISpeechRecognizer* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
16362    return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
16363}
16364static inline HRESULT ISpeechRecognizer_DisplayUI(ISpeechRecognizer* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
16365    return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
16366}
16367static inline HRESULT ISpeechRecognizer_GetRecognizers(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
16368    return This->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
16369}
16370static inline HRESULT ISpeechRecognizer_GetAudioInputs(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
16371    return This->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
16372}
16373static inline HRESULT ISpeechRecognizer_GetProfiles(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
16374    return This->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
16375}
16376#endif
16377#endif
16378
16379#endif
16380
16381
16382#endif  /* __ISpeechRecognizer_INTERFACE_DEFINED__ */
16383
16384/*****************************************************************************
16385 * ISpeechRecognizerStatus interface
16386 */
16387#ifndef __ISpeechRecognizerStatus_INTERFACE_DEFINED__
16388#define __ISpeechRecognizerStatus_INTERFACE_DEFINED__
16389
16390DEFINE_GUID(IID_ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c);
16391#if defined(__cplusplus) && !defined(CINTERFACE)
16392MIDL_INTERFACE("bff9e781-53ec-484e-bb8a-0e1b5551e35c")
16393ISpeechRecognizerStatus : public IDispatch
16394{
16395    virtual HRESULT STDMETHODCALLTYPE get_AudioStatus(
16396        ISpeechAudioStatus **AudioStatus) = 0;
16397
16398    virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamPosition(
16399        VARIANT *pCurrentStreamPos) = 0;
16400
16401    virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
16402        LONG *StreamNumber) = 0;
16403
16404    virtual HRESULT STDMETHODCALLTYPE get_NumberOfActiveRules(
16405        LONG *NumberOfActiveRules) = 0;
16406
16407    virtual HRESULT STDMETHODCALLTYPE get_ClsidEngine(
16408        BSTR *ClsidEngine) = 0;
16409
16410    virtual HRESULT STDMETHODCALLTYPE get_SupportedLanguages(
16411        VARIANT *SupportedLanguages) = 0;
16412
16413};
16414#ifdef __CRT_UUID_DECL
16415__CRT_UUID_DECL(ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c)
16416#endif
16417#else
16418typedef struct ISpeechRecognizerStatusVtbl {
16419    BEGIN_INTERFACE
16420
16421    /*** IUnknown methods ***/
16422    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16423        ISpeechRecognizerStatus *This,
16424        REFIID riid,
16425        void **ppvObject);
16426
16427    ULONG (STDMETHODCALLTYPE *AddRef)(
16428        ISpeechRecognizerStatus *This);
16429
16430    ULONG (STDMETHODCALLTYPE *Release)(
16431        ISpeechRecognizerStatus *This);
16432
16433    /*** IDispatch methods ***/
16434    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16435        ISpeechRecognizerStatus *This,
16436        UINT *pctinfo);
16437
16438    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16439        ISpeechRecognizerStatus *This,
16440        UINT iTInfo,
16441        LCID lcid,
16442        ITypeInfo **ppTInfo);
16443
16444    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16445        ISpeechRecognizerStatus *This,
16446        REFIID riid,
16447        LPOLESTR *rgszNames,
16448        UINT cNames,
16449        LCID lcid,
16450        DISPID *rgDispId);
16451
16452    HRESULT (STDMETHODCALLTYPE *Invoke)(
16453        ISpeechRecognizerStatus *This,
16454        DISPID dispIdMember,
16455        REFIID riid,
16456        LCID lcid,
16457        WORD wFlags,
16458        DISPPARAMS *pDispParams,
16459        VARIANT *pVarResult,
16460        EXCEPINFO *pExcepInfo,
16461        UINT *puArgErr);
16462
16463    /*** ISpeechRecognizerStatus methods ***/
16464    HRESULT (STDMETHODCALLTYPE *get_AudioStatus)(
16465        ISpeechRecognizerStatus *This,
16466        ISpeechAudioStatus **AudioStatus);
16467
16468    HRESULT (STDMETHODCALLTYPE *get_CurrentStreamPosition)(
16469        ISpeechRecognizerStatus *This,
16470        VARIANT *pCurrentStreamPos);
16471
16472    HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
16473        ISpeechRecognizerStatus *This,
16474        LONG *StreamNumber);
16475
16476    HRESULT (STDMETHODCALLTYPE *get_NumberOfActiveRules)(
16477        ISpeechRecognizerStatus *This,
16478        LONG *NumberOfActiveRules);
16479
16480    HRESULT (STDMETHODCALLTYPE *get_ClsidEngine)(
16481        ISpeechRecognizerStatus *This,
16482        BSTR *ClsidEngine);
16483
16484    HRESULT (STDMETHODCALLTYPE *get_SupportedLanguages)(
16485        ISpeechRecognizerStatus *This,
16486        VARIANT *SupportedLanguages);
16487
16488    END_INTERFACE
16489} ISpeechRecognizerStatusVtbl;
16490
16491interface ISpeechRecognizerStatus {
16492    CONST_VTBL ISpeechRecognizerStatusVtbl* lpVtbl;
16493};
16494
16495#ifdef COBJMACROS
16496#ifndef WIDL_C_INLINE_WRAPPERS
16497/*** IUnknown methods ***/
16498#define ISpeechRecognizerStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16499#define ISpeechRecognizerStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
16500#define ISpeechRecognizerStatus_Release(This) (This)->lpVtbl->Release(This)
16501/*** IDispatch methods ***/
16502#define ISpeechRecognizerStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16503#define ISpeechRecognizerStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16504#define ISpeechRecognizerStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16505#define ISpeechRecognizerStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16506/*** ISpeechRecognizerStatus methods ***/
16507#define ISpeechRecognizerStatus_get_AudioStatus(This,AudioStatus) (This)->lpVtbl->get_AudioStatus(This,AudioStatus)
16508#define ISpeechRecognizerStatus_get_CurrentStreamPosition(This,pCurrentStreamPos) (This)->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos)
16509#define ISpeechRecognizerStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
16510#define ISpeechRecognizerStatus_get_NumberOfActiveRules(This,NumberOfActiveRules) (This)->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules)
16511#define ISpeechRecognizerStatus_get_ClsidEngine(This,ClsidEngine) (This)->lpVtbl->get_ClsidEngine(This,ClsidEngine)
16512#define ISpeechRecognizerStatus_get_SupportedLanguages(This,SupportedLanguages) (This)->lpVtbl->get_SupportedLanguages(This,SupportedLanguages)
16513#else
16514/*** IUnknown methods ***/
16515static inline HRESULT ISpeechRecognizerStatus_QueryInterface(ISpeechRecognizerStatus* This,REFIID riid,void **ppvObject) {
16516    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16517}
16518static inline ULONG ISpeechRecognizerStatus_AddRef(ISpeechRecognizerStatus* This) {
16519    return This->lpVtbl->AddRef(This);
16520}
16521static inline ULONG ISpeechRecognizerStatus_Release(ISpeechRecognizerStatus* This) {
16522    return This->lpVtbl->Release(This);
16523}
16524/*** IDispatch methods ***/
16525static inline HRESULT ISpeechRecognizerStatus_GetTypeInfoCount(ISpeechRecognizerStatus* This,UINT *pctinfo) {
16526    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16527}
16528static inline HRESULT ISpeechRecognizerStatus_GetTypeInfo(ISpeechRecognizerStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16529    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16530}
16531static inline HRESULT ISpeechRecognizerStatus_GetIDsOfNames(ISpeechRecognizerStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16532    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16533}
16534static inline HRESULT ISpeechRecognizerStatus_Invoke(ISpeechRecognizerStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16535    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16536}
16537/*** ISpeechRecognizerStatus methods ***/
16538static inline HRESULT ISpeechRecognizerStatus_get_AudioStatus(ISpeechRecognizerStatus* This,ISpeechAudioStatus **AudioStatus) {
16539    return This->lpVtbl->get_AudioStatus(This,AudioStatus);
16540}
16541static inline HRESULT ISpeechRecognizerStatus_get_CurrentStreamPosition(ISpeechRecognizerStatus* This,VARIANT *pCurrentStreamPos) {
16542    return This->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos);
16543}
16544static inline HRESULT ISpeechRecognizerStatus_get_CurrentStreamNumber(ISpeechRecognizerStatus* This,LONG *StreamNumber) {
16545    return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
16546}
16547static inline HRESULT ISpeechRecognizerStatus_get_NumberOfActiveRules(ISpeechRecognizerStatus* This,LONG *NumberOfActiveRules) {
16548    return This->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules);
16549}
16550static inline HRESULT ISpeechRecognizerStatus_get_ClsidEngine(ISpeechRecognizerStatus* This,BSTR *ClsidEngine) {
16551    return This->lpVtbl->get_ClsidEngine(This,ClsidEngine);
16552}
16553static inline HRESULT ISpeechRecognizerStatus_get_SupportedLanguages(ISpeechRecognizerStatus* This,VARIANT *SupportedLanguages) {
16554    return This->lpVtbl->get_SupportedLanguages(This,SupportedLanguages);
16555}
16556#endif
16557#endif
16558
16559#endif
16560
16561
16562#endif  /* __ISpeechRecognizerStatus_INTERFACE_DEFINED__ */
16563
16564/*****************************************************************************
16565 * ISpeechRecoContext interface
16566 */
16567#ifndef __ISpeechRecoContext_INTERFACE_DEFINED__
16568#define __ISpeechRecoContext_INTERFACE_DEFINED__
16569
16570DEFINE_GUID(IID_ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8);
16571#if defined(__cplusplus) && !defined(CINTERFACE)
16572MIDL_INTERFACE("580aa49d-7e1e-4809-b8e2-57da806104b8")
16573ISpeechRecoContext : public IDispatch
16574{
16575    virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
16576        ISpeechRecognizer **Recognizer) = 0;
16577
16578    virtual HRESULT STDMETHODCALLTYPE get_AudioInputInterferenceStatus(
16579        SpeechInterference *Interference) = 0;
16580
16581    virtual HRESULT STDMETHODCALLTYPE get_RequestedUIType(
16582        BSTR *UIType) = 0;
16583
16584    virtual HRESULT STDMETHODCALLTYPE putref_Voice(
16585        ISpeechVoice *Voice) = 0;
16586
16587    virtual HRESULT STDMETHODCALLTYPE get_Voice(
16588        ISpeechVoice **Voice) = 0;
16589
16590    virtual HRESULT STDMETHODCALLTYPE put_AllowVoiceFormatMatchingOnNextSet(
16591        VARIANT_BOOL Allow) = 0;
16592
16593    virtual HRESULT STDMETHODCALLTYPE get_AllowVoiceFormatMatchingOnNextSet(
16594        VARIANT_BOOL *pAllow) = 0;
16595
16596    virtual HRESULT STDMETHODCALLTYPE put_VoicePurgeEvent(
16597        SpeechRecoEvents EventInterest) = 0;
16598
16599    virtual HRESULT STDMETHODCALLTYPE get_VoicePurgeEvent(
16600        SpeechRecoEvents *EventInterest) = 0;
16601
16602    virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
16603        SpeechRecoEvents EventInterest) = 0;
16604
16605    virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
16606        SpeechRecoEvents *EventInterest) = 0;
16607
16608    virtual HRESULT STDMETHODCALLTYPE put_CmdMaxAlternates(
16609        LONG MaxAlternates) = 0;
16610
16611    virtual HRESULT STDMETHODCALLTYPE get_CmdMaxAlternates(
16612        LONG *MaxAlternates) = 0;
16613
16614    virtual HRESULT STDMETHODCALLTYPE put_State(
16615        SpeechRecoContextState State) = 0;
16616
16617    virtual HRESULT STDMETHODCALLTYPE get_State(
16618        SpeechRecoContextState *State) = 0;
16619
16620    virtual HRESULT STDMETHODCALLTYPE put_RetainedAudio(
16621        SpeechRetainedAudioOptions Option) = 0;
16622
16623    virtual HRESULT STDMETHODCALLTYPE get_RetainedAudio(
16624        SpeechRetainedAudioOptions *Option) = 0;
16625
16626    virtual HRESULT STDMETHODCALLTYPE putref_RetainedAudioFormat(
16627        ISpeechAudioFormat *Format) = 0;
16628
16629    virtual HRESULT STDMETHODCALLTYPE get_RetainedAudioFormat(
16630        ISpeechAudioFormat **Format) = 0;
16631
16632    virtual HRESULT STDMETHODCALLTYPE Pause(
16633        ) = 0;
16634
16635    virtual HRESULT STDMETHODCALLTYPE Resume(
16636        ) = 0;
16637
16638    virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
16639        VARIANT GrammarId,
16640        ISpeechRecoGrammar **Grammar) = 0;
16641
16642    virtual HRESULT STDMETHODCALLTYPE CreateResultFromMemory(
16643        VARIANT *ResultBlock,
16644        ISpeechRecoResult **Result) = 0;
16645
16646    virtual HRESULT STDMETHODCALLTYPE Bookmark(
16647        SpeechBookmarkOptions Options,
16648        VARIANT StreamPos,
16649        VARIANT BookmarkId) = 0;
16650
16651    virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
16652        BSTR AdaptationString) = 0;
16653
16654};
16655#ifdef __CRT_UUID_DECL
16656__CRT_UUID_DECL(ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8)
16657#endif
16658#else
16659typedef struct ISpeechRecoContextVtbl {
16660    BEGIN_INTERFACE
16661
16662    /*** IUnknown methods ***/
16663    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16664        ISpeechRecoContext *This,
16665        REFIID riid,
16666        void **ppvObject);
16667
16668    ULONG (STDMETHODCALLTYPE *AddRef)(
16669        ISpeechRecoContext *This);
16670
16671    ULONG (STDMETHODCALLTYPE *Release)(
16672        ISpeechRecoContext *This);
16673
16674    /*** IDispatch methods ***/
16675    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16676        ISpeechRecoContext *This,
16677        UINT *pctinfo);
16678
16679    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16680        ISpeechRecoContext *This,
16681        UINT iTInfo,
16682        LCID lcid,
16683        ITypeInfo **ppTInfo);
16684
16685    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16686        ISpeechRecoContext *This,
16687        REFIID riid,
16688        LPOLESTR *rgszNames,
16689        UINT cNames,
16690        LCID lcid,
16691        DISPID *rgDispId);
16692
16693    HRESULT (STDMETHODCALLTYPE *Invoke)(
16694        ISpeechRecoContext *This,
16695        DISPID dispIdMember,
16696        REFIID riid,
16697        LCID lcid,
16698        WORD wFlags,
16699        DISPPARAMS *pDispParams,
16700        VARIANT *pVarResult,
16701        EXCEPINFO *pExcepInfo,
16702        UINT *puArgErr);
16703
16704    /*** ISpeechRecoContext methods ***/
16705    HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
16706        ISpeechRecoContext *This,
16707        ISpeechRecognizer **Recognizer);
16708
16709    HRESULT (STDMETHODCALLTYPE *get_AudioInputInterferenceStatus)(
16710        ISpeechRecoContext *This,
16711        SpeechInterference *Interference);
16712
16713    HRESULT (STDMETHODCALLTYPE *get_RequestedUIType)(
16714        ISpeechRecoContext *This,
16715        BSTR *UIType);
16716
16717    HRESULT (STDMETHODCALLTYPE *putref_Voice)(
16718        ISpeechRecoContext *This,
16719        ISpeechVoice *Voice);
16720
16721    HRESULT (STDMETHODCALLTYPE *get_Voice)(
16722        ISpeechRecoContext *This,
16723        ISpeechVoice **Voice);
16724
16725    HRESULT (STDMETHODCALLTYPE *put_AllowVoiceFormatMatchingOnNextSet)(
16726        ISpeechRecoContext *This,
16727        VARIANT_BOOL Allow);
16728
16729    HRESULT (STDMETHODCALLTYPE *get_AllowVoiceFormatMatchingOnNextSet)(
16730        ISpeechRecoContext *This,
16731        VARIANT_BOOL *pAllow);
16732
16733    HRESULT (STDMETHODCALLTYPE *put_VoicePurgeEvent)(
16734        ISpeechRecoContext *This,
16735        SpeechRecoEvents EventInterest);
16736
16737    HRESULT (STDMETHODCALLTYPE *get_VoicePurgeEvent)(
16738        ISpeechRecoContext *This,
16739        SpeechRecoEvents *EventInterest);
16740
16741    HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
16742        ISpeechRecoContext *This,
16743        SpeechRecoEvents EventInterest);
16744
16745    HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
16746        ISpeechRecoContext *This,
16747        SpeechRecoEvents *EventInterest);
16748
16749    HRESULT (STDMETHODCALLTYPE *put_CmdMaxAlternates)(
16750        ISpeechRecoContext *This,
16751        LONG MaxAlternates);
16752
16753    HRESULT (STDMETHODCALLTYPE *get_CmdMaxAlternates)(
16754        ISpeechRecoContext *This,
16755        LONG *MaxAlternates);
16756
16757    HRESULT (STDMETHODCALLTYPE *put_State)(
16758        ISpeechRecoContext *This,
16759        SpeechRecoContextState State);
16760
16761    HRESULT (STDMETHODCALLTYPE *get_State)(
16762        ISpeechRecoContext *This,
16763        SpeechRecoContextState *State);
16764
16765    HRESULT (STDMETHODCALLTYPE *put_RetainedAudio)(
16766        ISpeechRecoContext *This,
16767        SpeechRetainedAudioOptions Option);
16768
16769    HRESULT (STDMETHODCALLTYPE *get_RetainedAudio)(
16770        ISpeechRecoContext *This,
16771        SpeechRetainedAudioOptions *Option);
16772
16773    HRESULT (STDMETHODCALLTYPE *putref_RetainedAudioFormat)(
16774        ISpeechRecoContext *This,
16775        ISpeechAudioFormat *Format);
16776
16777    HRESULT (STDMETHODCALLTYPE *get_RetainedAudioFormat)(
16778        ISpeechRecoContext *This,
16779        ISpeechAudioFormat **Format);
16780
16781    HRESULT (STDMETHODCALLTYPE *Pause)(
16782        ISpeechRecoContext *This);
16783
16784    HRESULT (STDMETHODCALLTYPE *Resume)(
16785        ISpeechRecoContext *This);
16786
16787    HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
16788        ISpeechRecoContext *This,
16789        VARIANT GrammarId,
16790        ISpeechRecoGrammar **Grammar);
16791
16792    HRESULT (STDMETHODCALLTYPE *CreateResultFromMemory)(
16793        ISpeechRecoContext *This,
16794        VARIANT *ResultBlock,
16795        ISpeechRecoResult **Result);
16796
16797    HRESULT (STDMETHODCALLTYPE *Bookmark)(
16798        ISpeechRecoContext *This,
16799        SpeechBookmarkOptions Options,
16800        VARIANT StreamPos,
16801        VARIANT BookmarkId);
16802
16803    HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
16804        ISpeechRecoContext *This,
16805        BSTR AdaptationString);
16806
16807    END_INTERFACE
16808} ISpeechRecoContextVtbl;
16809
16810interface ISpeechRecoContext {
16811    CONST_VTBL ISpeechRecoContextVtbl* lpVtbl;
16812};
16813
16814#ifdef COBJMACROS
16815#ifndef WIDL_C_INLINE_WRAPPERS
16816/*** IUnknown methods ***/
16817#define ISpeechRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16818#define ISpeechRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
16819#define ISpeechRecoContext_Release(This) (This)->lpVtbl->Release(This)
16820/*** IDispatch methods ***/
16821#define ISpeechRecoContext_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16822#define ISpeechRecoContext_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16823#define ISpeechRecoContext_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16824#define ISpeechRecoContext_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16825/*** ISpeechRecoContext methods ***/
16826#define ISpeechRecoContext_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
16827#define ISpeechRecoContext_get_AudioInputInterferenceStatus(This,Interference) (This)->lpVtbl->get_AudioInputInterferenceStatus(This,Interference)
16828#define ISpeechRecoContext_get_RequestedUIType(This,UIType) (This)->lpVtbl->get_RequestedUIType(This,UIType)
16829#define ISpeechRecoContext_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
16830#define ISpeechRecoContext_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
16831#define ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(This,Allow) (This)->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow)
16832#define ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(This,pAllow) (This)->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow)
16833#define ISpeechRecoContext_put_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->put_VoicePurgeEvent(This,EventInterest)
16834#define ISpeechRecoContext_get_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->get_VoicePurgeEvent(This,EventInterest)
16835#define ISpeechRecoContext_put_EventInterests(This,EventInterest) (This)->lpVtbl->put_EventInterests(This,EventInterest)
16836#define ISpeechRecoContext_get_EventInterests(This,EventInterest) (This)->lpVtbl->get_EventInterests(This,EventInterest)
16837#define ISpeechRecoContext_put_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates)
16838#define ISpeechRecoContext_get_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates)
16839#define ISpeechRecoContext_put_State(This,State) (This)->lpVtbl->put_State(This,State)
16840#define ISpeechRecoContext_get_State(This,State) (This)->lpVtbl->get_State(This,State)
16841#define ISpeechRecoContext_put_RetainedAudio(This,Option) (This)->lpVtbl->put_RetainedAudio(This,Option)
16842#define ISpeechRecoContext_get_RetainedAudio(This,Option) (This)->lpVtbl->get_RetainedAudio(This,Option)
16843#define ISpeechRecoContext_putref_RetainedAudioFormat(This,Format) (This)->lpVtbl->putref_RetainedAudioFormat(This,Format)
16844#define ISpeechRecoContext_get_RetainedAudioFormat(This,Format) (This)->lpVtbl->get_RetainedAudioFormat(This,Format)
16845#define ISpeechRecoContext_Pause(This) (This)->lpVtbl->Pause(This)
16846#define ISpeechRecoContext_Resume(This) (This)->lpVtbl->Resume(This)
16847#define ISpeechRecoContext_CreateGrammar(This,GrammarId,Grammar) (This)->lpVtbl->CreateGrammar(This,GrammarId,Grammar)
16848#define ISpeechRecoContext_CreateResultFromMemory(This,ResultBlock,Result) (This)->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result)
16849#define ISpeechRecoContext_Bookmark(This,Options,StreamPos,BookmarkId) (This)->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId)
16850#define ISpeechRecoContext_SetAdaptationData(This,AdaptationString) (This)->lpVtbl->SetAdaptationData(This,AdaptationString)
16851#else
16852/*** IUnknown methods ***/
16853static inline HRESULT ISpeechRecoContext_QueryInterface(ISpeechRecoContext* This,REFIID riid,void **ppvObject) {
16854    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16855}
16856static inline ULONG ISpeechRecoContext_AddRef(ISpeechRecoContext* This) {
16857    return This->lpVtbl->AddRef(This);
16858}
16859static inline ULONG ISpeechRecoContext_Release(ISpeechRecoContext* This) {
16860    return This->lpVtbl->Release(This);
16861}
16862/*** IDispatch methods ***/
16863static inline HRESULT ISpeechRecoContext_GetTypeInfoCount(ISpeechRecoContext* This,UINT *pctinfo) {
16864    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16865}
16866static inline HRESULT ISpeechRecoContext_GetTypeInfo(ISpeechRecoContext* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16867    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16868}
16869static inline HRESULT ISpeechRecoContext_GetIDsOfNames(ISpeechRecoContext* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16870    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16871}
16872static inline HRESULT ISpeechRecoContext_Invoke(ISpeechRecoContext* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16873    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16874}
16875/*** ISpeechRecoContext methods ***/
16876static inline HRESULT ISpeechRecoContext_get_Recognizer(ISpeechRecoContext* This,ISpeechRecognizer **Recognizer) {
16877    return This->lpVtbl->get_Recognizer(This,Recognizer);
16878}
16879static inline HRESULT ISpeechRecoContext_get_AudioInputInterferenceStatus(ISpeechRecoContext* This,SpeechInterference *Interference) {
16880    return This->lpVtbl->get_AudioInputInterferenceStatus(This,Interference);
16881}
16882static inline HRESULT ISpeechRecoContext_get_RequestedUIType(ISpeechRecoContext* This,BSTR *UIType) {
16883    return This->lpVtbl->get_RequestedUIType(This,UIType);
16884}
16885static inline HRESULT ISpeechRecoContext_putref_Voice(ISpeechRecoContext* This,ISpeechVoice *Voice) {
16886    return This->lpVtbl->putref_Voice(This,Voice);
16887}
16888static inline HRESULT ISpeechRecoContext_get_Voice(ISpeechRecoContext* This,ISpeechVoice **Voice) {
16889    return This->lpVtbl->get_Voice(This,Voice);
16890}
16891static inline HRESULT ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL Allow) {
16892    return This->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow);
16893}
16894static inline HRESULT ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL *pAllow) {
16895    return This->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow);
16896}
16897static inline HRESULT ISpeechRecoContext_put_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
16898    return This->lpVtbl->put_VoicePurgeEvent(This,EventInterest);
16899}
16900static inline HRESULT ISpeechRecoContext_get_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
16901    return This->lpVtbl->get_VoicePurgeEvent(This,EventInterest);
16902}
16903static inline HRESULT ISpeechRecoContext_put_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
16904    return This->lpVtbl->put_EventInterests(This,EventInterest);
16905}
16906static inline HRESULT ISpeechRecoContext_get_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
16907    return This->lpVtbl->get_EventInterests(This,EventInterest);
16908}
16909static inline HRESULT ISpeechRecoContext_put_CmdMaxAlternates(ISpeechRecoContext* This,LONG MaxAlternates) {
16910    return This->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates);
16911}
16912static inline HRESULT ISpeechRecoContext_get_CmdMaxAlternates(ISpeechRecoContext* This,LONG *MaxAlternates) {
16913    return This->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates);
16914}
16915static inline HRESULT ISpeechRecoContext_put_State(ISpeechRecoContext* This,SpeechRecoContextState State) {
16916    return This->lpVtbl->put_State(This,State);
16917}
16918static inline HRESULT ISpeechRecoContext_get_State(ISpeechRecoContext* This,SpeechRecoContextState *State) {
16919    return This->lpVtbl->get_State(This,State);
16920}
16921static inline HRESULT ISpeechRecoContext_put_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions Option) {
16922    return This->lpVtbl->put_RetainedAudio(This,Option);
16923}
16924static inline HRESULT ISpeechRecoContext_get_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions *Option) {
16925    return This->lpVtbl->get_RetainedAudio(This,Option);
16926}
16927static inline HRESULT ISpeechRecoContext_putref_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat *Format) {
16928    return This->lpVtbl->putref_RetainedAudioFormat(This,Format);
16929}
16930static inline HRESULT ISpeechRecoContext_get_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat **Format) {
16931    return This->lpVtbl->get_RetainedAudioFormat(This,Format);
16932}
16933static inline HRESULT ISpeechRecoContext_Pause(ISpeechRecoContext* This) {
16934    return This->lpVtbl->Pause(This);
16935}
16936static inline HRESULT ISpeechRecoContext_Resume(ISpeechRecoContext* This) {
16937    return This->lpVtbl->Resume(This);
16938}
16939static inline HRESULT ISpeechRecoContext_CreateGrammar(ISpeechRecoContext* This,VARIANT GrammarId,ISpeechRecoGrammar **Grammar) {
16940    return This->lpVtbl->CreateGrammar(This,GrammarId,Grammar);
16941}
16942static inline HRESULT ISpeechRecoContext_CreateResultFromMemory(ISpeechRecoContext* This,VARIANT *ResultBlock,ISpeechRecoResult **Result) {
16943    return This->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result);
16944}
16945static inline HRESULT ISpeechRecoContext_Bookmark(ISpeechRecoContext* This,SpeechBookmarkOptions Options,VARIANT StreamPos,VARIANT BookmarkId) {
16946    return This->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId);
16947}
16948static inline HRESULT ISpeechRecoContext_SetAdaptationData(ISpeechRecoContext* This,BSTR AdaptationString) {
16949    return This->lpVtbl->SetAdaptationData(This,AdaptationString);
16950}
16951#endif
16952#endif
16953
16954#endif
16955
16956
16957#endif  /* __ISpeechRecoContext_INTERFACE_DEFINED__ */
16958
16959/*****************************************************************************
16960 * ISpeechRecoGrammar interface
16961 */
16962#ifndef __ISpeechRecoGrammar_INTERFACE_DEFINED__
16963#define __ISpeechRecoGrammar_INTERFACE_DEFINED__
16964
16965DEFINE_GUID(IID_ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09);
16966#if defined(__cplusplus) && !defined(CINTERFACE)
16967MIDL_INTERFACE("b6d6f79f-2158-4e50-b5bc-9a9ccd852a09")
16968ISpeechRecoGrammar : public IDispatch
16969{
16970    virtual HRESULT STDMETHODCALLTYPE get_Id(
16971        VARIANT *Id) = 0;
16972
16973    virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
16974        ISpeechRecoContext **RecoContext) = 0;
16975
16976    virtual HRESULT STDMETHODCALLTYPE put_State(
16977        SpeechGrammarState State) = 0;
16978
16979    virtual HRESULT STDMETHODCALLTYPE get_State(
16980        SpeechGrammarState *State) = 0;
16981
16982    virtual HRESULT STDMETHODCALLTYPE get_Rules(
16983        ISpeechGrammarRules **Rules) = 0;
16984
16985    virtual HRESULT STDMETHODCALLTYPE Reset(
16986        SpeechLanguageId NewLanguage = 0) = 0;
16987
16988    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromFile(
16989        const BSTR FileName,
16990        SpeechLoadOption LoadOption = SLOStatic) = 0;
16991
16992    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromObject(
16993        const BSTR ClassId,
16994        const BSTR GrammarName,
16995        SpeechLoadOption LoadOption = SLOStatic) = 0;
16996
16997    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromResource(
16998        LONG hModule,
16999        VARIANT ResourceName,
17000        VARIANT ResourceType,
17001        SpeechLanguageId LanguageId,
17002        SpeechLoadOption LoadOption = SLOStatic) = 0;
17003
17004    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromMemory(
17005        VARIANT GrammarData,
17006        SpeechLoadOption LoadOption = SLOStatic) = 0;
17007
17008    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromProprietaryGrammar(
17009        const BSTR ProprietaryGuid,
17010        const BSTR ProprietaryString,
17011        VARIANT ProprietaryData,
17012        SpeechLoadOption LoadOption = SLOStatic) = 0;
17013
17014    virtual HRESULT STDMETHODCALLTYPE CmdSetRuleState(
17015        const BSTR Name,
17016        SpeechRuleState State) = 0;
17017
17018    virtual HRESULT STDMETHODCALLTYPE CmdSetRuleIdState(
17019        LONG RuleId,
17020        SpeechRuleState State) = 0;
17021
17022    virtual HRESULT STDMETHODCALLTYPE DictationLoad(
17023        const BSTR TopicName = L"",
17024        SpeechLoadOption LoadOption = SLOStatic) = 0;
17025
17026    virtual HRESULT STDMETHODCALLTYPE DictationUnload(
17027        ) = 0;
17028
17029    virtual HRESULT STDMETHODCALLTYPE DictationSetState(
17030        SpeechRuleState State) = 0;
17031
17032    virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
17033        const BSTR Text,
17034        LONG TextLength,
17035        ISpeechTextSelectionInformation *Info) = 0;
17036
17037    virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
17038        ISpeechTextSelectionInformation *Info) = 0;
17039
17040    virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
17041        const BSTR Word,
17042        SpeechWordPronounceable *WordPronounceable) = 0;
17043
17044};
17045#ifdef __CRT_UUID_DECL
17046__CRT_UUID_DECL(ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09)
17047#endif
17048#else
17049typedef struct ISpeechRecoGrammarVtbl {
17050    BEGIN_INTERFACE
17051
17052    /*** IUnknown methods ***/
17053    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17054        ISpeechRecoGrammar *This,
17055        REFIID riid,
17056        void **ppvObject);
17057
17058    ULONG (STDMETHODCALLTYPE *AddRef)(
17059        ISpeechRecoGrammar *This);
17060
17061    ULONG (STDMETHODCALLTYPE *Release)(
17062        ISpeechRecoGrammar *This);
17063
17064    /*** IDispatch methods ***/
17065    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17066        ISpeechRecoGrammar *This,
17067        UINT *pctinfo);
17068
17069    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17070        ISpeechRecoGrammar *This,
17071        UINT iTInfo,
17072        LCID lcid,
17073        ITypeInfo **ppTInfo);
17074
17075    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17076        ISpeechRecoGrammar *This,
17077        REFIID riid,
17078        LPOLESTR *rgszNames,
17079        UINT cNames,
17080        LCID lcid,
17081        DISPID *rgDispId);
17082
17083    HRESULT (STDMETHODCALLTYPE *Invoke)(
17084        ISpeechRecoGrammar *This,
17085        DISPID dispIdMember,
17086        REFIID riid,
17087        LCID lcid,
17088        WORD wFlags,
17089        DISPPARAMS *pDispParams,
17090        VARIANT *pVarResult,
17091        EXCEPINFO *pExcepInfo,
17092        UINT *puArgErr);
17093
17094    /*** ISpeechRecoGrammar methods ***/
17095    HRESULT (STDMETHODCALLTYPE *get_Id)(
17096        ISpeechRecoGrammar *This,
17097        VARIANT *Id);
17098
17099    HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
17100        ISpeechRecoGrammar *This,
17101        ISpeechRecoContext **RecoContext);
17102
17103    HRESULT (STDMETHODCALLTYPE *put_State)(
17104        ISpeechRecoGrammar *This,
17105        SpeechGrammarState State);
17106
17107    HRESULT (STDMETHODCALLTYPE *get_State)(
17108        ISpeechRecoGrammar *This,
17109        SpeechGrammarState *State);
17110
17111    HRESULT (STDMETHODCALLTYPE *get_Rules)(
17112        ISpeechRecoGrammar *This,
17113        ISpeechGrammarRules **Rules);
17114
17115    HRESULT (STDMETHODCALLTYPE *Reset)(
17116        ISpeechRecoGrammar *This,
17117        SpeechLanguageId NewLanguage);
17118
17119    HRESULT (STDMETHODCALLTYPE *CmdLoadFromFile)(
17120        ISpeechRecoGrammar *This,
17121        const BSTR FileName,
17122        SpeechLoadOption LoadOption);
17123
17124    HRESULT (STDMETHODCALLTYPE *CmdLoadFromObject)(
17125        ISpeechRecoGrammar *This,
17126        const BSTR ClassId,
17127        const BSTR GrammarName,
17128        SpeechLoadOption LoadOption);
17129
17130    HRESULT (STDMETHODCALLTYPE *CmdLoadFromResource)(
17131        ISpeechRecoGrammar *This,
17132        LONG hModule,
17133        VARIANT ResourceName,
17134        VARIANT ResourceType,
17135        SpeechLanguageId LanguageId,
17136        SpeechLoadOption LoadOption);
17137
17138    HRESULT (STDMETHODCALLTYPE *CmdLoadFromMemory)(
17139        ISpeechRecoGrammar *This,
17140        VARIANT GrammarData,
17141        SpeechLoadOption LoadOption);
17142
17143    HRESULT (STDMETHODCALLTYPE *CmdLoadFromProprietaryGrammar)(
17144        ISpeechRecoGrammar *This,
17145        const BSTR ProprietaryGuid,
17146        const BSTR ProprietaryString,
17147        VARIANT ProprietaryData,
17148        SpeechLoadOption LoadOption);
17149
17150    HRESULT (STDMETHODCALLTYPE *CmdSetRuleState)(
17151        ISpeechRecoGrammar *This,
17152        const BSTR Name,
17153        SpeechRuleState State);
17154
17155    HRESULT (STDMETHODCALLTYPE *CmdSetRuleIdState)(
17156        ISpeechRecoGrammar *This,
17157        LONG RuleId,
17158        SpeechRuleState State);
17159
17160    HRESULT (STDMETHODCALLTYPE *DictationLoad)(
17161        ISpeechRecoGrammar *This,
17162        const BSTR TopicName,
17163        SpeechLoadOption LoadOption);
17164
17165    HRESULT (STDMETHODCALLTYPE *DictationUnload)(
17166        ISpeechRecoGrammar *This);
17167
17168    HRESULT (STDMETHODCALLTYPE *DictationSetState)(
17169        ISpeechRecoGrammar *This,
17170        SpeechRuleState State);
17171
17172    HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
17173        ISpeechRecoGrammar *This,
17174        const BSTR Text,
17175        LONG TextLength,
17176        ISpeechTextSelectionInformation *Info);
17177
17178    HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
17179        ISpeechRecoGrammar *This,
17180        ISpeechTextSelectionInformation *Info);
17181
17182    HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
17183        ISpeechRecoGrammar *This,
17184        const BSTR Word,
17185        SpeechWordPronounceable *WordPronounceable);
17186
17187    END_INTERFACE
17188} ISpeechRecoGrammarVtbl;
17189
17190interface ISpeechRecoGrammar {
17191    CONST_VTBL ISpeechRecoGrammarVtbl* lpVtbl;
17192};
17193
17194#ifdef COBJMACROS
17195#ifndef WIDL_C_INLINE_WRAPPERS
17196/*** IUnknown methods ***/
17197#define ISpeechRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17198#define ISpeechRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
17199#define ISpeechRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
17200/*** IDispatch methods ***/
17201#define ISpeechRecoGrammar_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17202#define ISpeechRecoGrammar_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17203#define ISpeechRecoGrammar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17204#define ISpeechRecoGrammar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17205/*** ISpeechRecoGrammar methods ***/
17206#define ISpeechRecoGrammar_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
17207#define ISpeechRecoGrammar_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
17208#define ISpeechRecoGrammar_put_State(This,State) (This)->lpVtbl->put_State(This,State)
17209#define ISpeechRecoGrammar_get_State(This,State) (This)->lpVtbl->get_State(This,State)
17210#define ISpeechRecoGrammar_get_Rules(This,Rules) (This)->lpVtbl->get_Rules(This,Rules)
17211#define ISpeechRecoGrammar_Reset(This,NewLanguage) (This)->lpVtbl->Reset(This,NewLanguage)
17212#define ISpeechRecoGrammar_CmdLoadFromFile(This,FileName,LoadOption) (This)->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption)
17213#define ISpeechRecoGrammar_CmdLoadFromObject(This,ClassId,GrammarName,LoadOption) (This)->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption)
17214#define ISpeechRecoGrammar_CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption) (This)->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption)
17215#define ISpeechRecoGrammar_CmdLoadFromMemory(This,GrammarData,LoadOption) (This)->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption)
17216#define ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption) (This)->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption)
17217#define ISpeechRecoGrammar_CmdSetRuleState(This,Name,State) (This)->lpVtbl->CmdSetRuleState(This,Name,State)
17218#define ISpeechRecoGrammar_CmdSetRuleIdState(This,RuleId,State) (This)->lpVtbl->CmdSetRuleIdState(This,RuleId,State)
17219#define ISpeechRecoGrammar_DictationLoad(This,TopicName,LoadOption) (This)->lpVtbl->DictationLoad(This,TopicName,LoadOption)
17220#define ISpeechRecoGrammar_DictationUnload(This) (This)->lpVtbl->DictationUnload(This)
17221#define ISpeechRecoGrammar_DictationSetState(This,State) (This)->lpVtbl->DictationSetState(This,State)
17222#define ISpeechRecoGrammar_SetWordSequenceData(This,Text,TextLength,Info) (This)->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info)
17223#define ISpeechRecoGrammar_SetTextSelection(This,Info) (This)->lpVtbl->SetTextSelection(This,Info)
17224#define ISpeechRecoGrammar_IsPronounceable(This,Word,WordPronounceable) (This)->lpVtbl->IsPronounceable(This,Word,WordPronounceable)
17225#else
17226/*** IUnknown methods ***/
17227static inline HRESULT ISpeechRecoGrammar_QueryInterface(ISpeechRecoGrammar* This,REFIID riid,void **ppvObject) {
17228    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17229}
17230static inline ULONG ISpeechRecoGrammar_AddRef(ISpeechRecoGrammar* This) {
17231    return This->lpVtbl->AddRef(This);
17232}
17233static inline ULONG ISpeechRecoGrammar_Release(ISpeechRecoGrammar* This) {
17234    return This->lpVtbl->Release(This);
17235}
17236/*** IDispatch methods ***/
17237static inline HRESULT ISpeechRecoGrammar_GetTypeInfoCount(ISpeechRecoGrammar* This,UINT *pctinfo) {
17238    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17239}
17240static inline HRESULT ISpeechRecoGrammar_GetTypeInfo(ISpeechRecoGrammar* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17241    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17242}
17243static inline HRESULT ISpeechRecoGrammar_GetIDsOfNames(ISpeechRecoGrammar* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17244    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17245}
17246static inline HRESULT ISpeechRecoGrammar_Invoke(ISpeechRecoGrammar* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17247    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17248}
17249/*** ISpeechRecoGrammar methods ***/
17250static inline HRESULT ISpeechRecoGrammar_get_Id(ISpeechRecoGrammar* This,VARIANT *Id) {
17251    return This->lpVtbl->get_Id(This,Id);
17252}
17253static inline HRESULT ISpeechRecoGrammar_get_RecoContext(ISpeechRecoGrammar* This,ISpeechRecoContext **RecoContext) {
17254    return This->lpVtbl->get_RecoContext(This,RecoContext);
17255}
17256static inline HRESULT ISpeechRecoGrammar_put_State(ISpeechRecoGrammar* This,SpeechGrammarState State) {
17257    return This->lpVtbl->put_State(This,State);
17258}
17259static inline HRESULT ISpeechRecoGrammar_get_State(ISpeechRecoGrammar* This,SpeechGrammarState *State) {
17260    return This->lpVtbl->get_State(This,State);
17261}
17262static inline HRESULT ISpeechRecoGrammar_get_Rules(ISpeechRecoGrammar* This,ISpeechGrammarRules **Rules) {
17263    return This->lpVtbl->get_Rules(This,Rules);
17264}
17265static inline HRESULT ISpeechRecoGrammar_Reset(ISpeechRecoGrammar* This,SpeechLanguageId NewLanguage) {
17266    return This->lpVtbl->Reset(This,NewLanguage);
17267}
17268static inline HRESULT ISpeechRecoGrammar_CmdLoadFromFile(ISpeechRecoGrammar* This,const BSTR FileName,SpeechLoadOption LoadOption) {
17269    return This->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption);
17270}
17271static inline HRESULT ISpeechRecoGrammar_CmdLoadFromObject(ISpeechRecoGrammar* This,const BSTR ClassId,const BSTR GrammarName,SpeechLoadOption LoadOption) {
17272    return This->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption);
17273}
17274static inline HRESULT ISpeechRecoGrammar_CmdLoadFromResource(ISpeechRecoGrammar* This,LONG hModule,VARIANT ResourceName,VARIANT ResourceType,SpeechLanguageId LanguageId,SpeechLoadOption LoadOption) {
17275    return This->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption);
17276}
17277static inline HRESULT ISpeechRecoGrammar_CmdLoadFromMemory(ISpeechRecoGrammar* This,VARIANT GrammarData,SpeechLoadOption LoadOption) {
17278    return This->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption);
17279}
17280static inline HRESULT ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(ISpeechRecoGrammar* This,const BSTR ProprietaryGuid,const BSTR ProprietaryString,VARIANT ProprietaryData,SpeechLoadOption LoadOption) {
17281    return This->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption);
17282}
17283static inline HRESULT ISpeechRecoGrammar_CmdSetRuleState(ISpeechRecoGrammar* This,const BSTR Name,SpeechRuleState State) {
17284    return This->lpVtbl->CmdSetRuleState(This,Name,State);
17285}
17286static inline HRESULT ISpeechRecoGrammar_CmdSetRuleIdState(ISpeechRecoGrammar* This,LONG RuleId,SpeechRuleState State) {
17287    return This->lpVtbl->CmdSetRuleIdState(This,RuleId,State);
17288}
17289static inline HRESULT ISpeechRecoGrammar_DictationLoad(ISpeechRecoGrammar* This,const BSTR TopicName,SpeechLoadOption LoadOption) {
17290    return This->lpVtbl->DictationLoad(This,TopicName,LoadOption);
17291}
17292static inline HRESULT ISpeechRecoGrammar_DictationUnload(ISpeechRecoGrammar* This) {
17293    return This->lpVtbl->DictationUnload(This);
17294}
17295static inline HRESULT ISpeechRecoGrammar_DictationSetState(ISpeechRecoGrammar* This,SpeechRuleState State) {
17296    return This->lpVtbl->DictationSetState(This,State);
17297}
17298static inline HRESULT ISpeechRecoGrammar_SetWordSequenceData(ISpeechRecoGrammar* This,const BSTR Text,LONG TextLength,ISpeechTextSelectionInformation *Info) {
17299    return This->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info);
17300}
17301static inline HRESULT ISpeechRecoGrammar_SetTextSelection(ISpeechRecoGrammar* This,ISpeechTextSelectionInformation *Info) {
17302    return This->lpVtbl->SetTextSelection(This,Info);
17303}
17304static inline HRESULT ISpeechRecoGrammar_IsPronounceable(ISpeechRecoGrammar* This,const BSTR Word,SpeechWordPronounceable *WordPronounceable) {
17305    return This->lpVtbl->IsPronounceable(This,Word,WordPronounceable);
17306}
17307#endif
17308#endif
17309
17310#endif
17311
17312
17313#endif  /* __ISpeechRecoGrammar_INTERFACE_DEFINED__ */
17314
17315/*****************************************************************************
17316 * _ISpeechRecoContextEvents dispinterface
17317 */
17318#ifndef ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
17319#define ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
17320
17321DEFINE_GUID(DIID__ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d);
17322#if defined(__cplusplus) && !defined(CINTERFACE)
17323MIDL_INTERFACE("7b8fcb42-0e9d-4f00-a048-7b04d6179d3d")
17324_ISpeechRecoContextEvents : public IDispatch
17325{
17326};
17327#ifdef __CRT_UUID_DECL
17328__CRT_UUID_DECL(_ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d)
17329#endif
17330#else
17331typedef struct _ISpeechRecoContextEventsVtbl {
17332    BEGIN_INTERFACE
17333
17334    /*** IUnknown methods ***/
17335    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17336        _ISpeechRecoContextEvents *This,
17337        REFIID riid,
17338        void **ppvObject);
17339
17340    ULONG (STDMETHODCALLTYPE *AddRef)(
17341        _ISpeechRecoContextEvents *This);
17342
17343    ULONG (STDMETHODCALLTYPE *Release)(
17344        _ISpeechRecoContextEvents *This);
17345
17346    /*** IDispatch methods ***/
17347    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17348        _ISpeechRecoContextEvents *This,
17349        UINT *pctinfo);
17350
17351    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17352        _ISpeechRecoContextEvents *This,
17353        UINT iTInfo,
17354        LCID lcid,
17355        ITypeInfo **ppTInfo);
17356
17357    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17358        _ISpeechRecoContextEvents *This,
17359        REFIID riid,
17360        LPOLESTR *rgszNames,
17361        UINT cNames,
17362        LCID lcid,
17363        DISPID *rgDispId);
17364
17365    HRESULT (STDMETHODCALLTYPE *Invoke)(
17366        _ISpeechRecoContextEvents *This,
17367        DISPID dispIdMember,
17368        REFIID riid,
17369        LCID lcid,
17370        WORD wFlags,
17371        DISPPARAMS *pDispParams,
17372        VARIANT *pVarResult,
17373        EXCEPINFO *pExcepInfo,
17374        UINT *puArgErr);
17375
17376    END_INTERFACE
17377} _ISpeechRecoContextEventsVtbl;
17378
17379interface _ISpeechRecoContextEvents {
17380    CONST_VTBL _ISpeechRecoContextEventsVtbl* lpVtbl;
17381};
17382
17383#ifdef COBJMACROS
17384#ifndef WIDL_C_INLINE_WRAPPERS
17385/*** IUnknown methods ***/
17386#define _ISpeechRecoContextEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17387#define _ISpeechRecoContextEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
17388#define _ISpeechRecoContextEvents_Release(This) (This)->lpVtbl->Release(This)
17389/*** IDispatch methods ***/
17390#define _ISpeechRecoContextEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17391#define _ISpeechRecoContextEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17392#define _ISpeechRecoContextEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17393#define _ISpeechRecoContextEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17394#else
17395/*** IUnknown methods ***/
17396static inline HRESULT _ISpeechRecoContextEvents_QueryInterface(_ISpeechRecoContextEvents* This,REFIID riid,void **ppvObject) {
17397    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17398}
17399static inline ULONG _ISpeechRecoContextEvents_AddRef(_ISpeechRecoContextEvents* This) {
17400    return This->lpVtbl->AddRef(This);
17401}
17402static inline ULONG _ISpeechRecoContextEvents_Release(_ISpeechRecoContextEvents* This) {
17403    return This->lpVtbl->Release(This);
17404}
17405/*** IDispatch methods ***/
17406static inline HRESULT _ISpeechRecoContextEvents_GetTypeInfoCount(_ISpeechRecoContextEvents* This,UINT *pctinfo) {
17407    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17408}
17409static inline HRESULT _ISpeechRecoContextEvents_GetTypeInfo(_ISpeechRecoContextEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17410    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17411}
17412static inline HRESULT _ISpeechRecoContextEvents_GetIDsOfNames(_ISpeechRecoContextEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17413    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17414}
17415static inline HRESULT _ISpeechRecoContextEvents_Invoke(_ISpeechRecoContextEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17416    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17417}
17418#endif
17419#endif
17420
17421#endif
17422
17423#endif  /* ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__ */
17424
17425/*****************************************************************************
17426 * ISpeechGrammarRule interface
17427 */
17428#ifndef __ISpeechGrammarRule_INTERFACE_DEFINED__
17429#define __ISpeechGrammarRule_INTERFACE_DEFINED__
17430
17431DEFINE_GUID(IID_ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc);
17432#if defined(__cplusplus) && !defined(CINTERFACE)
17433MIDL_INTERFACE("afe719cf-5dd1-44f2-999c-7a399f1cfccc")
17434ISpeechGrammarRule : public IDispatch
17435{
17436    virtual HRESULT STDMETHODCALLTYPE get_Attributes(
17437        SpeechRuleAttributes *Attributes) = 0;
17438
17439    virtual HRESULT STDMETHODCALLTYPE get_InitialState(
17440        ISpeechGrammarRuleState **State) = 0;
17441
17442    virtual HRESULT STDMETHODCALLTYPE get_Name(
17443        BSTR *Name) = 0;
17444
17445    virtual HRESULT STDMETHODCALLTYPE get_Id(
17446        LONG *Id) = 0;
17447
17448    virtual HRESULT STDMETHODCALLTYPE Clear(
17449        ) = 0;
17450
17451    virtual HRESULT STDMETHODCALLTYPE AddResource(
17452        const BSTR ResourceName,
17453        const BSTR ResourceValue) = 0;
17454
17455    virtual HRESULT STDMETHODCALLTYPE AddState(
17456        ISpeechGrammarRuleState **State) = 0;
17457
17458};
17459#ifdef __CRT_UUID_DECL
17460__CRT_UUID_DECL(ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc)
17461#endif
17462#else
17463typedef struct ISpeechGrammarRuleVtbl {
17464    BEGIN_INTERFACE
17465
17466    /*** IUnknown methods ***/
17467    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17468        ISpeechGrammarRule *This,
17469        REFIID riid,
17470        void **ppvObject);
17471
17472    ULONG (STDMETHODCALLTYPE *AddRef)(
17473        ISpeechGrammarRule *This);
17474
17475    ULONG (STDMETHODCALLTYPE *Release)(
17476        ISpeechGrammarRule *This);
17477
17478    /*** IDispatch methods ***/
17479    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17480        ISpeechGrammarRule *This,
17481        UINT *pctinfo);
17482
17483    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17484        ISpeechGrammarRule *This,
17485        UINT iTInfo,
17486        LCID lcid,
17487        ITypeInfo **ppTInfo);
17488
17489    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17490        ISpeechGrammarRule *This,
17491        REFIID riid,
17492        LPOLESTR *rgszNames,
17493        UINT cNames,
17494        LCID lcid,
17495        DISPID *rgDispId);
17496
17497    HRESULT (STDMETHODCALLTYPE *Invoke)(
17498        ISpeechGrammarRule *This,
17499        DISPID dispIdMember,
17500        REFIID riid,
17501        LCID lcid,
17502        WORD wFlags,
17503        DISPPARAMS *pDispParams,
17504        VARIANT *pVarResult,
17505        EXCEPINFO *pExcepInfo,
17506        UINT *puArgErr);
17507
17508    /*** ISpeechGrammarRule methods ***/
17509    HRESULT (STDMETHODCALLTYPE *get_Attributes)(
17510        ISpeechGrammarRule *This,
17511        SpeechRuleAttributes *Attributes);
17512
17513    HRESULT (STDMETHODCALLTYPE *get_InitialState)(
17514        ISpeechGrammarRule *This,
17515        ISpeechGrammarRuleState **State);
17516
17517    HRESULT (STDMETHODCALLTYPE *get_Name)(
17518        ISpeechGrammarRule *This,
17519        BSTR *Name);
17520
17521    HRESULT (STDMETHODCALLTYPE *get_Id)(
17522        ISpeechGrammarRule *This,
17523        LONG *Id);
17524
17525    HRESULT (STDMETHODCALLTYPE *Clear)(
17526        ISpeechGrammarRule *This);
17527
17528    HRESULT (STDMETHODCALLTYPE *AddResource)(
17529        ISpeechGrammarRule *This,
17530        const BSTR ResourceName,
17531        const BSTR ResourceValue);
17532
17533    HRESULT (STDMETHODCALLTYPE *AddState)(
17534        ISpeechGrammarRule *This,
17535        ISpeechGrammarRuleState **State);
17536
17537    END_INTERFACE
17538} ISpeechGrammarRuleVtbl;
17539
17540interface ISpeechGrammarRule {
17541    CONST_VTBL ISpeechGrammarRuleVtbl* lpVtbl;
17542};
17543
17544#ifdef COBJMACROS
17545#ifndef WIDL_C_INLINE_WRAPPERS
17546/*** IUnknown methods ***/
17547#define ISpeechGrammarRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17548#define ISpeechGrammarRule_AddRef(This) (This)->lpVtbl->AddRef(This)
17549#define ISpeechGrammarRule_Release(This) (This)->lpVtbl->Release(This)
17550/*** IDispatch methods ***/
17551#define ISpeechGrammarRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17552#define ISpeechGrammarRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17553#define ISpeechGrammarRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17554#define ISpeechGrammarRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17555/*** ISpeechGrammarRule methods ***/
17556#define ISpeechGrammarRule_get_Attributes(This,Attributes) (This)->lpVtbl->get_Attributes(This,Attributes)
17557#define ISpeechGrammarRule_get_InitialState(This,State) (This)->lpVtbl->get_InitialState(This,State)
17558#define ISpeechGrammarRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
17559#define ISpeechGrammarRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
17560#define ISpeechGrammarRule_Clear(This) (This)->lpVtbl->Clear(This)
17561#define ISpeechGrammarRule_AddResource(This,ResourceName,ResourceValue) (This)->lpVtbl->AddResource(This,ResourceName,ResourceValue)
17562#define ISpeechGrammarRule_AddState(This,State) (This)->lpVtbl->AddState(This,State)
17563#else
17564/*** IUnknown methods ***/
17565static inline HRESULT ISpeechGrammarRule_QueryInterface(ISpeechGrammarRule* This,REFIID riid,void **ppvObject) {
17566    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17567}
17568static inline ULONG ISpeechGrammarRule_AddRef(ISpeechGrammarRule* This) {
17569    return This->lpVtbl->AddRef(This);
17570}
17571static inline ULONG ISpeechGrammarRule_Release(ISpeechGrammarRule* This) {
17572    return This->lpVtbl->Release(This);
17573}
17574/*** IDispatch methods ***/
17575static inline HRESULT ISpeechGrammarRule_GetTypeInfoCount(ISpeechGrammarRule* This,UINT *pctinfo) {
17576    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17577}
17578static inline HRESULT ISpeechGrammarRule_GetTypeInfo(ISpeechGrammarRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17579    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17580}
17581static inline HRESULT ISpeechGrammarRule_GetIDsOfNames(ISpeechGrammarRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17582    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17583}
17584static inline HRESULT ISpeechGrammarRule_Invoke(ISpeechGrammarRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17585    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17586}
17587/*** ISpeechGrammarRule methods ***/
17588static inline HRESULT ISpeechGrammarRule_get_Attributes(ISpeechGrammarRule* This,SpeechRuleAttributes *Attributes) {
17589    return This->lpVtbl->get_Attributes(This,Attributes);
17590}
17591static inline HRESULT ISpeechGrammarRule_get_InitialState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
17592    return This->lpVtbl->get_InitialState(This,State);
17593}
17594static inline HRESULT ISpeechGrammarRule_get_Name(ISpeechGrammarRule* This,BSTR *Name) {
17595    return This->lpVtbl->get_Name(This,Name);
17596}
17597static inline HRESULT ISpeechGrammarRule_get_Id(ISpeechGrammarRule* This,LONG *Id) {
17598    return This->lpVtbl->get_Id(This,Id);
17599}
17600static inline HRESULT ISpeechGrammarRule_Clear(ISpeechGrammarRule* This) {
17601    return This->lpVtbl->Clear(This);
17602}
17603static inline HRESULT ISpeechGrammarRule_AddResource(ISpeechGrammarRule* This,const BSTR ResourceName,const BSTR ResourceValue) {
17604    return This->lpVtbl->AddResource(This,ResourceName,ResourceValue);
17605}
17606static inline HRESULT ISpeechGrammarRule_AddState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
17607    return This->lpVtbl->AddState(This,State);
17608}
17609#endif
17610#endif
17611
17612#endif
17613
17614
17615#endif  /* __ISpeechGrammarRule_INTERFACE_DEFINED__ */
17616
17617/*****************************************************************************
17618 * ISpeechGrammarRules interface
17619 */
17620#ifndef __ISpeechGrammarRules_INTERFACE_DEFINED__
17621#define __ISpeechGrammarRules_INTERFACE_DEFINED__
17622
17623DEFINE_GUID(IID_ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1);
17624#if defined(__cplusplus) && !defined(CINTERFACE)
17625MIDL_INTERFACE("6ffa3b44-fc2d-40d1-8afc-32911c7f1ad1")
17626ISpeechGrammarRules : public IDispatch
17627{
17628    virtual HRESULT STDMETHODCALLTYPE get_Count(
17629        LONG *Count) = 0;
17630
17631    virtual HRESULT STDMETHODCALLTYPE FindRule(
17632        VARIANT RuleNameOrId,
17633        ISpeechGrammarRule **Rule) = 0;
17634
17635    virtual HRESULT STDMETHODCALLTYPE Item(
17636        LONG Index,
17637        ISpeechGrammarRule **Rule) = 0;
17638
17639    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
17640        IUnknown **EnumVARIANT) = 0;
17641
17642    virtual HRESULT STDMETHODCALLTYPE get_Dynamic(
17643        VARIANT_BOOL *Dynamic) = 0;
17644
17645    virtual HRESULT STDMETHODCALLTYPE Add(
17646        BSTR RuleName,
17647        SpeechRuleAttributes Attributes,
17648        LONG RuleId,
17649        ISpeechGrammarRule **Rule) = 0;
17650
17651    virtual HRESULT STDMETHODCALLTYPE Commit(
17652        ) = 0;
17653
17654    virtual HRESULT STDMETHODCALLTYPE CommitAndSave(
17655        BSTR *ErrorText,
17656        VARIANT *SaveStream) = 0;
17657
17658};
17659#ifdef __CRT_UUID_DECL
17660__CRT_UUID_DECL(ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1)
17661#endif
17662#else
17663typedef struct ISpeechGrammarRulesVtbl {
17664    BEGIN_INTERFACE
17665
17666    /*** IUnknown methods ***/
17667    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17668        ISpeechGrammarRules *This,
17669        REFIID riid,
17670        void **ppvObject);
17671
17672    ULONG (STDMETHODCALLTYPE *AddRef)(
17673        ISpeechGrammarRules *This);
17674
17675    ULONG (STDMETHODCALLTYPE *Release)(
17676        ISpeechGrammarRules *This);
17677
17678    /*** IDispatch methods ***/
17679    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17680        ISpeechGrammarRules *This,
17681        UINT *pctinfo);
17682
17683    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17684        ISpeechGrammarRules *This,
17685        UINT iTInfo,
17686        LCID lcid,
17687        ITypeInfo **ppTInfo);
17688
17689    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17690        ISpeechGrammarRules *This,
17691        REFIID riid,
17692        LPOLESTR *rgszNames,
17693        UINT cNames,
17694        LCID lcid,
17695        DISPID *rgDispId);
17696
17697    HRESULT (STDMETHODCALLTYPE *Invoke)(
17698        ISpeechGrammarRules *This,
17699        DISPID dispIdMember,
17700        REFIID riid,
17701        LCID lcid,
17702        WORD wFlags,
17703        DISPPARAMS *pDispParams,
17704        VARIANT *pVarResult,
17705        EXCEPINFO *pExcepInfo,
17706        UINT *puArgErr);
17707
17708    /*** ISpeechGrammarRules methods ***/
17709    HRESULT (STDMETHODCALLTYPE *get_Count)(
17710        ISpeechGrammarRules *This,
17711        LONG *Count);
17712
17713    HRESULT (STDMETHODCALLTYPE *FindRule)(
17714        ISpeechGrammarRules *This,
17715        VARIANT RuleNameOrId,
17716        ISpeechGrammarRule **Rule);
17717
17718    HRESULT (STDMETHODCALLTYPE *Item)(
17719        ISpeechGrammarRules *This,
17720        LONG Index,
17721        ISpeechGrammarRule **Rule);
17722
17723    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
17724        ISpeechGrammarRules *This,
17725        IUnknown **EnumVARIANT);
17726
17727    HRESULT (STDMETHODCALLTYPE *get_Dynamic)(
17728        ISpeechGrammarRules *This,
17729        VARIANT_BOOL *Dynamic);
17730
17731    HRESULT (STDMETHODCALLTYPE *Add)(
17732        ISpeechGrammarRules *This,
17733        BSTR RuleName,
17734        SpeechRuleAttributes Attributes,
17735        LONG RuleId,
17736        ISpeechGrammarRule **Rule);
17737
17738    HRESULT (STDMETHODCALLTYPE *Commit)(
17739        ISpeechGrammarRules *This);
17740
17741    HRESULT (STDMETHODCALLTYPE *CommitAndSave)(
17742        ISpeechGrammarRules *This,
17743        BSTR *ErrorText,
17744        VARIANT *SaveStream);
17745
17746    END_INTERFACE
17747} ISpeechGrammarRulesVtbl;
17748
17749interface ISpeechGrammarRules {
17750    CONST_VTBL ISpeechGrammarRulesVtbl* lpVtbl;
17751};
17752
17753#ifdef COBJMACROS
17754#ifndef WIDL_C_INLINE_WRAPPERS
17755/*** IUnknown methods ***/
17756#define ISpeechGrammarRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17757#define ISpeechGrammarRules_AddRef(This) (This)->lpVtbl->AddRef(This)
17758#define ISpeechGrammarRules_Release(This) (This)->lpVtbl->Release(This)
17759/*** IDispatch methods ***/
17760#define ISpeechGrammarRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17761#define ISpeechGrammarRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17762#define ISpeechGrammarRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17763#define ISpeechGrammarRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17764/*** ISpeechGrammarRules methods ***/
17765#define ISpeechGrammarRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
17766#define ISpeechGrammarRules_FindRule(This,RuleNameOrId,Rule) (This)->lpVtbl->FindRule(This,RuleNameOrId,Rule)
17767#define ISpeechGrammarRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
17768#define ISpeechGrammarRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
17769#define ISpeechGrammarRules_get_Dynamic(This,Dynamic) (This)->lpVtbl->get_Dynamic(This,Dynamic)
17770#define ISpeechGrammarRules_Add(This,RuleName,Attributes,RuleId,Rule) (This)->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule)
17771#define ISpeechGrammarRules_Commit(This) (This)->lpVtbl->Commit(This)
17772#define ISpeechGrammarRules_CommitAndSave(This,ErrorText,SaveStream) (This)->lpVtbl->CommitAndSave(This,ErrorText,SaveStream)
17773#else
17774/*** IUnknown methods ***/
17775static inline HRESULT ISpeechGrammarRules_QueryInterface(ISpeechGrammarRules* This,REFIID riid,void **ppvObject) {
17776    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17777}
17778static inline ULONG ISpeechGrammarRules_AddRef(ISpeechGrammarRules* This) {
17779    return This->lpVtbl->AddRef(This);
17780}
17781static inline ULONG ISpeechGrammarRules_Release(ISpeechGrammarRules* This) {
17782    return This->lpVtbl->Release(This);
17783}
17784/*** IDispatch methods ***/
17785static inline HRESULT ISpeechGrammarRules_GetTypeInfoCount(ISpeechGrammarRules* This,UINT *pctinfo) {
17786    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17787}
17788static inline HRESULT ISpeechGrammarRules_GetTypeInfo(ISpeechGrammarRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17789    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17790}
17791static inline HRESULT ISpeechGrammarRules_GetIDsOfNames(ISpeechGrammarRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17792    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17793}
17794static inline HRESULT ISpeechGrammarRules_Invoke(ISpeechGrammarRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17795    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17796}
17797/*** ISpeechGrammarRules methods ***/
17798static inline HRESULT ISpeechGrammarRules_get_Count(ISpeechGrammarRules* This,LONG *Count) {
17799    return This->lpVtbl->get_Count(This,Count);
17800}
17801static inline HRESULT ISpeechGrammarRules_FindRule(ISpeechGrammarRules* This,VARIANT RuleNameOrId,ISpeechGrammarRule **Rule) {
17802    return This->lpVtbl->FindRule(This,RuleNameOrId,Rule);
17803}
17804static inline HRESULT ISpeechGrammarRules_Item(ISpeechGrammarRules* This,LONG Index,ISpeechGrammarRule **Rule) {
17805    return This->lpVtbl->Item(This,Index,Rule);
17806}
17807static inline HRESULT ISpeechGrammarRules_get__NewEnum(ISpeechGrammarRules* This,IUnknown **EnumVARIANT) {
17808    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
17809}
17810static inline HRESULT ISpeechGrammarRules_get_Dynamic(ISpeechGrammarRules* This,VARIANT_BOOL *Dynamic) {
17811    return This->lpVtbl->get_Dynamic(This,Dynamic);
17812}
17813static inline HRESULT ISpeechGrammarRules_Add(ISpeechGrammarRules* This,BSTR RuleName,SpeechRuleAttributes Attributes,LONG RuleId,ISpeechGrammarRule **Rule) {
17814    return This->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule);
17815}
17816static inline HRESULT ISpeechGrammarRules_Commit(ISpeechGrammarRules* This) {
17817    return This->lpVtbl->Commit(This);
17818}
17819static inline HRESULT ISpeechGrammarRules_CommitAndSave(ISpeechGrammarRules* This,BSTR *ErrorText,VARIANT *SaveStream) {
17820    return This->lpVtbl->CommitAndSave(This,ErrorText,SaveStream);
17821}
17822#endif
17823#endif
17824
17825#endif
17826
17827
17828#endif  /* __ISpeechGrammarRules_INTERFACE_DEFINED__ */
17829
17830/*****************************************************************************
17831 * ISpeechGrammarRuleState interface
17832 */
17833#ifndef __ISpeechGrammarRuleState_INTERFACE_DEFINED__
17834#define __ISpeechGrammarRuleState_INTERFACE_DEFINED__
17835
17836DEFINE_GUID(IID_ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda);
17837#if defined(__cplusplus) && !defined(CINTERFACE)
17838MIDL_INTERFACE("d4286f2c-ee67-45ae-b928-28d695362eda")
17839ISpeechGrammarRuleState : public IDispatch
17840{
17841    virtual HRESULT STDMETHODCALLTYPE get_Rule(
17842        ISpeechGrammarRule **Rule) = 0;
17843
17844    virtual HRESULT STDMETHODCALLTYPE get_Transitions(
17845        ISpeechGrammarRuleStateTransitions **Transitions) = 0;
17846
17847    virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
17848        ISpeechGrammarRuleState *DestState,
17849        const BSTR Words,
17850        const BSTR Separators = L" ",
17851        SpeechGrammarWordType Type = SGLexical,
17852        const BSTR PropertyName = L"",
17853        LONG PropertyId = 0,
17854        VARIANT *PropertyValue = 0,
17855        float Weight = 1) = 0;
17856
17857    virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
17858        ISpeechGrammarRuleState *DestinationState,
17859        ISpeechGrammarRule *Rule,
17860        const BSTR PropertyName = L"",
17861        LONG PropertyId = 0,
17862        VARIANT *PropertyValue = 0,
17863        float Weight = 1) = 0;
17864
17865    virtual HRESULT STDMETHODCALLTYPE AddSpecialTransition(
17866        ISpeechGrammarRuleState *DestinationState,
17867        SpeechSpecialTransitionType Type,
17868        const BSTR PropertyName = L"",
17869        LONG PropertyId = 0,
17870        VARIANT *PropertyValue = 0,
17871        float Weight = 1) = 0;
17872
17873};
17874#ifdef __CRT_UUID_DECL
17875__CRT_UUID_DECL(ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda)
17876#endif
17877#else
17878typedef struct ISpeechGrammarRuleStateVtbl {
17879    BEGIN_INTERFACE
17880
17881    /*** IUnknown methods ***/
17882    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17883        ISpeechGrammarRuleState *This,
17884        REFIID riid,
17885        void **ppvObject);
17886
17887    ULONG (STDMETHODCALLTYPE *AddRef)(
17888        ISpeechGrammarRuleState *This);
17889
17890    ULONG (STDMETHODCALLTYPE *Release)(
17891        ISpeechGrammarRuleState *This);
17892
17893    /*** IDispatch methods ***/
17894    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17895        ISpeechGrammarRuleState *This,
17896        UINT *pctinfo);
17897
17898    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17899        ISpeechGrammarRuleState *This,
17900        UINT iTInfo,
17901        LCID lcid,
17902        ITypeInfo **ppTInfo);
17903
17904    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17905        ISpeechGrammarRuleState *This,
17906        REFIID riid,
17907        LPOLESTR *rgszNames,
17908        UINT cNames,
17909        LCID lcid,
17910        DISPID *rgDispId);
17911
17912    HRESULT (STDMETHODCALLTYPE *Invoke)(
17913        ISpeechGrammarRuleState *This,
17914        DISPID dispIdMember,
17915        REFIID riid,
17916        LCID lcid,
17917        WORD wFlags,
17918        DISPPARAMS *pDispParams,
17919        VARIANT *pVarResult,
17920        EXCEPINFO *pExcepInfo,
17921        UINT *puArgErr);
17922
17923    /*** ISpeechGrammarRuleState methods ***/
17924    HRESULT (STDMETHODCALLTYPE *get_Rule)(
17925        ISpeechGrammarRuleState *This,
17926        ISpeechGrammarRule **Rule);
17927
17928    HRESULT (STDMETHODCALLTYPE *get_Transitions)(
17929        ISpeechGrammarRuleState *This,
17930        ISpeechGrammarRuleStateTransitions **Transitions);
17931
17932    HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
17933        ISpeechGrammarRuleState *This,
17934        ISpeechGrammarRuleState *DestState,
17935        const BSTR Words,
17936        const BSTR Separators,
17937        SpeechGrammarWordType Type,
17938        const BSTR PropertyName,
17939        LONG PropertyId,
17940        VARIANT *PropertyValue,
17941        float Weight);
17942
17943    HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
17944        ISpeechGrammarRuleState *This,
17945        ISpeechGrammarRuleState *DestinationState,
17946        ISpeechGrammarRule *Rule,
17947        const BSTR PropertyName,
17948        LONG PropertyId,
17949        VARIANT *PropertyValue,
17950        float Weight);
17951
17952    HRESULT (STDMETHODCALLTYPE *AddSpecialTransition)(
17953        ISpeechGrammarRuleState *This,
17954        ISpeechGrammarRuleState *DestinationState,
17955        SpeechSpecialTransitionType Type,
17956        const BSTR PropertyName,
17957        LONG PropertyId,
17958        VARIANT *PropertyValue,
17959        float Weight);
17960
17961    END_INTERFACE
17962} ISpeechGrammarRuleStateVtbl;
17963
17964interface ISpeechGrammarRuleState {
17965    CONST_VTBL ISpeechGrammarRuleStateVtbl* lpVtbl;
17966};
17967
17968#ifdef COBJMACROS
17969#ifndef WIDL_C_INLINE_WRAPPERS
17970/*** IUnknown methods ***/
17971#define ISpeechGrammarRuleState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17972#define ISpeechGrammarRuleState_AddRef(This) (This)->lpVtbl->AddRef(This)
17973#define ISpeechGrammarRuleState_Release(This) (This)->lpVtbl->Release(This)
17974/*** IDispatch methods ***/
17975#define ISpeechGrammarRuleState_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17976#define ISpeechGrammarRuleState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17977#define ISpeechGrammarRuleState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17978#define ISpeechGrammarRuleState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17979/*** ISpeechGrammarRuleState methods ***/
17980#define ISpeechGrammarRuleState_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
17981#define ISpeechGrammarRuleState_get_Transitions(This,Transitions) (This)->lpVtbl->get_Transitions(This,Transitions)
17982#define ISpeechGrammarRuleState_AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight)
17983#define ISpeechGrammarRuleState_AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight)
17984#define ISpeechGrammarRuleState_AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight)
17985#else
17986/*** IUnknown methods ***/
17987static inline HRESULT ISpeechGrammarRuleState_QueryInterface(ISpeechGrammarRuleState* This,REFIID riid,void **ppvObject) {
17988    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17989}
17990static inline ULONG ISpeechGrammarRuleState_AddRef(ISpeechGrammarRuleState* This) {
17991    return This->lpVtbl->AddRef(This);
17992}
17993static inline ULONG ISpeechGrammarRuleState_Release(ISpeechGrammarRuleState* This) {
17994    return This->lpVtbl->Release(This);
17995}
17996/*** IDispatch methods ***/
17997static inline HRESULT ISpeechGrammarRuleState_GetTypeInfoCount(ISpeechGrammarRuleState* This,UINT *pctinfo) {
17998    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17999}
18000static inline HRESULT ISpeechGrammarRuleState_GetTypeInfo(ISpeechGrammarRuleState* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18001    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18002}
18003static inline HRESULT ISpeechGrammarRuleState_GetIDsOfNames(ISpeechGrammarRuleState* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18004    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18005}
18006static inline HRESULT ISpeechGrammarRuleState_Invoke(ISpeechGrammarRuleState* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18007    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18008}
18009/*** ISpeechGrammarRuleState methods ***/
18010static inline HRESULT ISpeechGrammarRuleState_get_Rule(ISpeechGrammarRuleState* This,ISpeechGrammarRule **Rule) {
18011    return This->lpVtbl->get_Rule(This,Rule);
18012}
18013static inline HRESULT ISpeechGrammarRuleState_get_Transitions(ISpeechGrammarRuleState* This,ISpeechGrammarRuleStateTransitions **Transitions) {
18014    return This->lpVtbl->get_Transitions(This,Transitions);
18015}
18016static inline HRESULT ISpeechGrammarRuleState_AddWordTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestState,const BSTR Words,const BSTR Separators,SpeechGrammarWordType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
18017    return This->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight);
18018}
18019static inline HRESULT ISpeechGrammarRuleState_AddRuleTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,ISpeechGrammarRule *Rule,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
18020    return This->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight);
18021}
18022static inline HRESULT ISpeechGrammarRuleState_AddSpecialTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,SpeechSpecialTransitionType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
18023    return This->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight);
18024}
18025#endif
18026#endif
18027
18028#endif
18029
18030
18031#endif  /* __ISpeechGrammarRuleState_INTERFACE_DEFINED__ */
18032
18033/*****************************************************************************
18034 * ISpeechGrammarRuleStateTransitions interface
18035 */
18036#ifndef __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
18037#define __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
18038
18039DEFINE_GUID(IID_ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63);
18040#if defined(__cplusplus) && !defined(CINTERFACE)
18041MIDL_INTERFACE("eabce657-75bc-44a2-aa7f-c56476742963")
18042ISpeechGrammarRuleStateTransitions : public IDispatch
18043{
18044    virtual HRESULT STDMETHODCALLTYPE get_Count(
18045        LONG *Count) = 0;
18046
18047    virtual HRESULT STDMETHODCALLTYPE Item(
18048        LONG Index,
18049        ISpeechGrammarRuleStateTransition **Transition) = 0;
18050
18051    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
18052        IUnknown **EnumVARIANT) = 0;
18053
18054};
18055#ifdef __CRT_UUID_DECL
18056__CRT_UUID_DECL(ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63)
18057#endif
18058#else
18059typedef struct ISpeechGrammarRuleStateTransitionsVtbl {
18060    BEGIN_INTERFACE
18061
18062    /*** IUnknown methods ***/
18063    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18064        ISpeechGrammarRuleStateTransitions *This,
18065        REFIID riid,
18066        void **ppvObject);
18067
18068    ULONG (STDMETHODCALLTYPE *AddRef)(
18069        ISpeechGrammarRuleStateTransitions *This);
18070
18071    ULONG (STDMETHODCALLTYPE *Release)(
18072        ISpeechGrammarRuleStateTransitions *This);
18073
18074    /*** IDispatch methods ***/
18075    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18076        ISpeechGrammarRuleStateTransitions *This,
18077        UINT *pctinfo);
18078
18079    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18080        ISpeechGrammarRuleStateTransitions *This,
18081        UINT iTInfo,
18082        LCID lcid,
18083        ITypeInfo **ppTInfo);
18084
18085    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18086        ISpeechGrammarRuleStateTransitions *This,
18087        REFIID riid,
18088        LPOLESTR *rgszNames,
18089        UINT cNames,
18090        LCID lcid,
18091        DISPID *rgDispId);
18092
18093    HRESULT (STDMETHODCALLTYPE *Invoke)(
18094        ISpeechGrammarRuleStateTransitions *This,
18095        DISPID dispIdMember,
18096        REFIID riid,
18097        LCID lcid,
18098        WORD wFlags,
18099        DISPPARAMS *pDispParams,
18100        VARIANT *pVarResult,
18101        EXCEPINFO *pExcepInfo,
18102        UINT *puArgErr);
18103
18104    /*** ISpeechGrammarRuleStateTransitions methods ***/
18105    HRESULT (STDMETHODCALLTYPE *get_Count)(
18106        ISpeechGrammarRuleStateTransitions *This,
18107        LONG *Count);
18108
18109    HRESULT (STDMETHODCALLTYPE *Item)(
18110        ISpeechGrammarRuleStateTransitions *This,
18111        LONG Index,
18112        ISpeechGrammarRuleStateTransition **Transition);
18113
18114    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
18115        ISpeechGrammarRuleStateTransitions *This,
18116        IUnknown **EnumVARIANT);
18117
18118    END_INTERFACE
18119} ISpeechGrammarRuleStateTransitionsVtbl;
18120
18121interface ISpeechGrammarRuleStateTransitions {
18122    CONST_VTBL ISpeechGrammarRuleStateTransitionsVtbl* lpVtbl;
18123};
18124
18125#ifdef COBJMACROS
18126#ifndef WIDL_C_INLINE_WRAPPERS
18127/*** IUnknown methods ***/
18128#define ISpeechGrammarRuleStateTransitions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18129#define ISpeechGrammarRuleStateTransitions_AddRef(This) (This)->lpVtbl->AddRef(This)
18130#define ISpeechGrammarRuleStateTransitions_Release(This) (This)->lpVtbl->Release(This)
18131/*** IDispatch methods ***/
18132#define ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18133#define ISpeechGrammarRuleStateTransitions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18134#define ISpeechGrammarRuleStateTransitions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18135#define ISpeechGrammarRuleStateTransitions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18136/*** ISpeechGrammarRuleStateTransitions methods ***/
18137#define ISpeechGrammarRuleStateTransitions_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
18138#define ISpeechGrammarRuleStateTransitions_Item(This,Index,Transition) (This)->lpVtbl->Item(This,Index,Transition)
18139#define ISpeechGrammarRuleStateTransitions_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
18140#else
18141/*** IUnknown methods ***/
18142static inline HRESULT ISpeechGrammarRuleStateTransitions_QueryInterface(ISpeechGrammarRuleStateTransitions* This,REFIID riid,void **ppvObject) {
18143    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18144}
18145static inline ULONG ISpeechGrammarRuleStateTransitions_AddRef(ISpeechGrammarRuleStateTransitions* This) {
18146    return This->lpVtbl->AddRef(This);
18147}
18148static inline ULONG ISpeechGrammarRuleStateTransitions_Release(ISpeechGrammarRuleStateTransitions* This) {
18149    return This->lpVtbl->Release(This);
18150}
18151/*** IDispatch methods ***/
18152static inline HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(ISpeechGrammarRuleStateTransitions* This,UINT *pctinfo) {
18153    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18154}
18155static inline HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfo(ISpeechGrammarRuleStateTransitions* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18156    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18157}
18158static inline HRESULT ISpeechGrammarRuleStateTransitions_GetIDsOfNames(ISpeechGrammarRuleStateTransitions* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18159    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18160}
18161static inline HRESULT ISpeechGrammarRuleStateTransitions_Invoke(ISpeechGrammarRuleStateTransitions* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18162    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18163}
18164/*** ISpeechGrammarRuleStateTransitions methods ***/
18165static inline HRESULT ISpeechGrammarRuleStateTransitions_get_Count(ISpeechGrammarRuleStateTransitions* This,LONG *Count) {
18166    return This->lpVtbl->get_Count(This,Count);
18167}
18168static inline HRESULT ISpeechGrammarRuleStateTransitions_Item(ISpeechGrammarRuleStateTransitions* This,LONG Index,ISpeechGrammarRuleStateTransition **Transition) {
18169    return This->lpVtbl->Item(This,Index,Transition);
18170}
18171static inline HRESULT ISpeechGrammarRuleStateTransitions_get__NewEnum(ISpeechGrammarRuleStateTransitions* This,IUnknown **EnumVARIANT) {
18172    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
18173}
18174#endif
18175#endif
18176
18177#endif
18178
18179
18180#endif  /* __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__ */
18181
18182/*****************************************************************************
18183 * ISpeechGrammarRuleStateTransition interface
18184 */
18185#ifndef __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
18186#define __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
18187
18188DEFINE_GUID(IID_ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a);
18189#if defined(__cplusplus) && !defined(CINTERFACE)
18190MIDL_INTERFACE("cafd1db1-41d1-4a06-9863-e2e81da17a9a")
18191ISpeechGrammarRuleStateTransition : public IDispatch
18192{
18193    virtual HRESULT STDMETHODCALLTYPE get_Type(
18194        SpeechGrammarRuleStateTransitionType *Type) = 0;
18195
18196    virtual HRESULT STDMETHODCALLTYPE get_Text(
18197        BSTR *Text) = 0;
18198
18199    virtual HRESULT STDMETHODCALLTYPE get_Rule(
18200        ISpeechGrammarRule **Rule) = 0;
18201
18202    virtual HRESULT STDMETHODCALLTYPE get_Weight(
18203        VARIANT *Weight) = 0;
18204
18205    virtual HRESULT STDMETHODCALLTYPE get_PropertyName(
18206        BSTR *PropertyName) = 0;
18207
18208    virtual HRESULT STDMETHODCALLTYPE get_PropertyId(
18209        LONG *PropertyId) = 0;
18210
18211    virtual HRESULT STDMETHODCALLTYPE get_PropertyValue(
18212        VARIANT *PropertyValue) = 0;
18213
18214    virtual HRESULT STDMETHODCALLTYPE get_NextState(
18215        ISpeechGrammarRuleState **NextState) = 0;
18216
18217};
18218#ifdef __CRT_UUID_DECL
18219__CRT_UUID_DECL(ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a)
18220#endif
18221#else
18222typedef struct ISpeechGrammarRuleStateTransitionVtbl {
18223    BEGIN_INTERFACE
18224
18225    /*** IUnknown methods ***/
18226    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18227        ISpeechGrammarRuleStateTransition *This,
18228        REFIID riid,
18229        void **ppvObject);
18230
18231    ULONG (STDMETHODCALLTYPE *AddRef)(
18232        ISpeechGrammarRuleStateTransition *This);
18233
18234    ULONG (STDMETHODCALLTYPE *Release)(
18235        ISpeechGrammarRuleStateTransition *This);
18236
18237    /*** IDispatch methods ***/
18238    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18239        ISpeechGrammarRuleStateTransition *This,
18240        UINT *pctinfo);
18241
18242    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18243        ISpeechGrammarRuleStateTransition *This,
18244        UINT iTInfo,
18245        LCID lcid,
18246        ITypeInfo **ppTInfo);
18247
18248    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18249        ISpeechGrammarRuleStateTransition *This,
18250        REFIID riid,
18251        LPOLESTR *rgszNames,
18252        UINT cNames,
18253        LCID lcid,
18254        DISPID *rgDispId);
18255
18256    HRESULT (STDMETHODCALLTYPE *Invoke)(
18257        ISpeechGrammarRuleStateTransition *This,
18258        DISPID dispIdMember,
18259        REFIID riid,
18260        LCID lcid,
18261        WORD wFlags,
18262        DISPPARAMS *pDispParams,
18263        VARIANT *pVarResult,
18264        EXCEPINFO *pExcepInfo,
18265        UINT *puArgErr);
18266
18267    /*** ISpeechGrammarRuleStateTransition methods ***/
18268    HRESULT (STDMETHODCALLTYPE *get_Type)(
18269        ISpeechGrammarRuleStateTransition *This,
18270        SpeechGrammarRuleStateTransitionType *Type);
18271
18272    HRESULT (STDMETHODCALLTYPE *get_Text)(
18273        ISpeechGrammarRuleStateTransition *This,
18274        BSTR *Text);
18275
18276    HRESULT (STDMETHODCALLTYPE *get_Rule)(
18277        ISpeechGrammarRuleStateTransition *This,
18278        ISpeechGrammarRule **Rule);
18279
18280    HRESULT (STDMETHODCALLTYPE *get_Weight)(
18281        ISpeechGrammarRuleStateTransition *This,
18282        VARIANT *Weight);
18283
18284    HRESULT (STDMETHODCALLTYPE *get_PropertyName)(
18285        ISpeechGrammarRuleStateTransition *This,
18286        BSTR *PropertyName);
18287
18288    HRESULT (STDMETHODCALLTYPE *get_PropertyId)(
18289        ISpeechGrammarRuleStateTransition *This,
18290        LONG *PropertyId);
18291
18292    HRESULT (STDMETHODCALLTYPE *get_PropertyValue)(
18293        ISpeechGrammarRuleStateTransition *This,
18294        VARIANT *PropertyValue);
18295
18296    HRESULT (STDMETHODCALLTYPE *get_NextState)(
18297        ISpeechGrammarRuleStateTransition *This,
18298        ISpeechGrammarRuleState **NextState);
18299
18300    END_INTERFACE
18301} ISpeechGrammarRuleStateTransitionVtbl;
18302
18303interface ISpeechGrammarRuleStateTransition {
18304    CONST_VTBL ISpeechGrammarRuleStateTransitionVtbl* lpVtbl;
18305};
18306
18307#ifdef COBJMACROS
18308#ifndef WIDL_C_INLINE_WRAPPERS
18309/*** IUnknown methods ***/
18310#define ISpeechGrammarRuleStateTransition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18311#define ISpeechGrammarRuleStateTransition_AddRef(This) (This)->lpVtbl->AddRef(This)
18312#define ISpeechGrammarRuleStateTransition_Release(This) (This)->lpVtbl->Release(This)
18313/*** IDispatch methods ***/
18314#define ISpeechGrammarRuleStateTransition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18315#define ISpeechGrammarRuleStateTransition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18316#define ISpeechGrammarRuleStateTransition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18317#define ISpeechGrammarRuleStateTransition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18318/*** ISpeechGrammarRuleStateTransition methods ***/
18319#define ISpeechGrammarRuleStateTransition_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
18320#define ISpeechGrammarRuleStateTransition_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
18321#define ISpeechGrammarRuleStateTransition_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
18322#define ISpeechGrammarRuleStateTransition_get_Weight(This,Weight) (This)->lpVtbl->get_Weight(This,Weight)
18323#define ISpeechGrammarRuleStateTransition_get_PropertyName(This,PropertyName) (This)->lpVtbl->get_PropertyName(This,PropertyName)
18324#define ISpeechGrammarRuleStateTransition_get_PropertyId(This,PropertyId) (This)->lpVtbl->get_PropertyId(This,PropertyId)
18325#define ISpeechGrammarRuleStateTransition_get_PropertyValue(This,PropertyValue) (This)->lpVtbl->get_PropertyValue(This,PropertyValue)
18326#define ISpeechGrammarRuleStateTransition_get_NextState(This,NextState) (This)->lpVtbl->get_NextState(This,NextState)
18327#else
18328/*** IUnknown methods ***/
18329static inline HRESULT ISpeechGrammarRuleStateTransition_QueryInterface(ISpeechGrammarRuleStateTransition* This,REFIID riid,void **ppvObject) {
18330    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18331}
18332static inline ULONG ISpeechGrammarRuleStateTransition_AddRef(ISpeechGrammarRuleStateTransition* This) {
18333    return This->lpVtbl->AddRef(This);
18334}
18335static inline ULONG ISpeechGrammarRuleStateTransition_Release(ISpeechGrammarRuleStateTransition* This) {
18336    return This->lpVtbl->Release(This);
18337}
18338/*** IDispatch methods ***/
18339static inline HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfoCount(ISpeechGrammarRuleStateTransition* This,UINT *pctinfo) {
18340    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18341}
18342static inline HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfo(ISpeechGrammarRuleStateTransition* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18343    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18344}
18345static inline HRESULT ISpeechGrammarRuleStateTransition_GetIDsOfNames(ISpeechGrammarRuleStateTransition* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18346    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18347}
18348static inline HRESULT ISpeechGrammarRuleStateTransition_Invoke(ISpeechGrammarRuleStateTransition* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18349    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18350}
18351/*** ISpeechGrammarRuleStateTransition methods ***/
18352static inline HRESULT ISpeechGrammarRuleStateTransition_get_Type(ISpeechGrammarRuleStateTransition* This,SpeechGrammarRuleStateTransitionType *Type) {
18353    return This->lpVtbl->get_Type(This,Type);
18354}
18355static inline HRESULT ISpeechGrammarRuleStateTransition_get_Text(ISpeechGrammarRuleStateTransition* This,BSTR *Text) {
18356    return This->lpVtbl->get_Text(This,Text);
18357}
18358static inline HRESULT ISpeechGrammarRuleStateTransition_get_Rule(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRule **Rule) {
18359    return This->lpVtbl->get_Rule(This,Rule);
18360}
18361static inline HRESULT ISpeechGrammarRuleStateTransition_get_Weight(ISpeechGrammarRuleStateTransition* This,VARIANT *Weight) {
18362    return This->lpVtbl->get_Weight(This,Weight);
18363}
18364static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyName(ISpeechGrammarRuleStateTransition* This,BSTR *PropertyName) {
18365    return This->lpVtbl->get_PropertyName(This,PropertyName);
18366}
18367static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyId(ISpeechGrammarRuleStateTransition* This,LONG *PropertyId) {
18368    return This->lpVtbl->get_PropertyId(This,PropertyId);
18369}
18370static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyValue(ISpeechGrammarRuleStateTransition* This,VARIANT *PropertyValue) {
18371    return This->lpVtbl->get_PropertyValue(This,PropertyValue);
18372}
18373static inline HRESULT ISpeechGrammarRuleStateTransition_get_NextState(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRuleState **NextState) {
18374    return This->lpVtbl->get_NextState(This,NextState);
18375}
18376#endif
18377#endif
18378
18379#endif
18380
18381
18382#endif  /* __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__ */
18383
18384/*****************************************************************************
18385 * ISpeechTextSelectionInformation interface
18386 */
18387#ifndef __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
18388#define __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
18389
18390DEFINE_GUID(IID_ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe);
18391#if defined(__cplusplus) && !defined(CINTERFACE)
18392MIDL_INTERFACE("3b9c7e7a-6eee-4ded-9092-11657279adbe")
18393ISpeechTextSelectionInformation : public IDispatch
18394{
18395    virtual HRESULT STDMETHODCALLTYPE put_ActiveOffset(
18396        LONG ActiveOffset) = 0;
18397
18398    virtual HRESULT STDMETHODCALLTYPE get_ActiveOffset(
18399        LONG *ActiveOffset) = 0;
18400
18401    virtual HRESULT STDMETHODCALLTYPE put_ActiveLength(
18402        LONG ActiveLength) = 0;
18403
18404    virtual HRESULT STDMETHODCALLTYPE get_ActiveLength(
18405        LONG *ActiveLength) = 0;
18406
18407    virtual HRESULT STDMETHODCALLTYPE put_SelectionOffset(
18408        LONG SelectionOffset) = 0;
18409
18410    virtual HRESULT STDMETHODCALLTYPE get_SelectionOffset(
18411        LONG *SelectionOffset) = 0;
18412
18413    virtual HRESULT STDMETHODCALLTYPE put_SelectionLength(
18414        LONG SelectionLength) = 0;
18415
18416    virtual HRESULT STDMETHODCALLTYPE get_SelectionLength(
18417        LONG *SelectionLength) = 0;
18418
18419};
18420#ifdef __CRT_UUID_DECL
18421__CRT_UUID_DECL(ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe)
18422#endif
18423#else
18424typedef struct ISpeechTextSelectionInformationVtbl {
18425    BEGIN_INTERFACE
18426
18427    /*** IUnknown methods ***/
18428    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18429        ISpeechTextSelectionInformation *This,
18430        REFIID riid,
18431        void **ppvObject);
18432
18433    ULONG (STDMETHODCALLTYPE *AddRef)(
18434        ISpeechTextSelectionInformation *This);
18435
18436    ULONG (STDMETHODCALLTYPE *Release)(
18437        ISpeechTextSelectionInformation *This);
18438
18439    /*** IDispatch methods ***/
18440    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18441        ISpeechTextSelectionInformation *This,
18442        UINT *pctinfo);
18443
18444    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18445        ISpeechTextSelectionInformation *This,
18446        UINT iTInfo,
18447        LCID lcid,
18448        ITypeInfo **ppTInfo);
18449
18450    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18451        ISpeechTextSelectionInformation *This,
18452        REFIID riid,
18453        LPOLESTR *rgszNames,
18454        UINT cNames,
18455        LCID lcid,
18456        DISPID *rgDispId);
18457
18458    HRESULT (STDMETHODCALLTYPE *Invoke)(
18459        ISpeechTextSelectionInformation *This,
18460        DISPID dispIdMember,
18461        REFIID riid,
18462        LCID lcid,
18463        WORD wFlags,
18464        DISPPARAMS *pDispParams,
18465        VARIANT *pVarResult,
18466        EXCEPINFO *pExcepInfo,
18467        UINT *puArgErr);
18468
18469    /*** ISpeechTextSelectionInformation methods ***/
18470    HRESULT (STDMETHODCALLTYPE *put_ActiveOffset)(
18471        ISpeechTextSelectionInformation *This,
18472        LONG ActiveOffset);
18473
18474    HRESULT (STDMETHODCALLTYPE *get_ActiveOffset)(
18475        ISpeechTextSelectionInformation *This,
18476        LONG *ActiveOffset);
18477
18478    HRESULT (STDMETHODCALLTYPE *put_ActiveLength)(
18479        ISpeechTextSelectionInformation *This,
18480        LONG ActiveLength);
18481
18482    HRESULT (STDMETHODCALLTYPE *get_ActiveLength)(
18483        ISpeechTextSelectionInformation *This,
18484        LONG *ActiveLength);
18485
18486    HRESULT (STDMETHODCALLTYPE *put_SelectionOffset)(
18487        ISpeechTextSelectionInformation *This,
18488        LONG SelectionOffset);
18489
18490    HRESULT (STDMETHODCALLTYPE *get_SelectionOffset)(
18491        ISpeechTextSelectionInformation *This,
18492        LONG *SelectionOffset);
18493
18494    HRESULT (STDMETHODCALLTYPE *put_SelectionLength)(
18495        ISpeechTextSelectionInformation *This,
18496        LONG SelectionLength);
18497
18498    HRESULT (STDMETHODCALLTYPE *get_SelectionLength)(
18499        ISpeechTextSelectionInformation *This,
18500        LONG *SelectionLength);
18501
18502    END_INTERFACE
18503} ISpeechTextSelectionInformationVtbl;
18504
18505interface ISpeechTextSelectionInformation {
18506    CONST_VTBL ISpeechTextSelectionInformationVtbl* lpVtbl;
18507};
18508
18509#ifdef COBJMACROS
18510#ifndef WIDL_C_INLINE_WRAPPERS
18511/*** IUnknown methods ***/
18512#define ISpeechTextSelectionInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18513#define ISpeechTextSelectionInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
18514#define ISpeechTextSelectionInformation_Release(This) (This)->lpVtbl->Release(This)
18515/*** IDispatch methods ***/
18516#define ISpeechTextSelectionInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18517#define ISpeechTextSelectionInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18518#define ISpeechTextSelectionInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18519#define ISpeechTextSelectionInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18520/*** ISpeechTextSelectionInformation methods ***/
18521#define ISpeechTextSelectionInformation_put_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->put_ActiveOffset(This,ActiveOffset)
18522#define ISpeechTextSelectionInformation_get_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->get_ActiveOffset(This,ActiveOffset)
18523#define ISpeechTextSelectionInformation_put_ActiveLength(This,ActiveLength) (This)->lpVtbl->put_ActiveLength(This,ActiveLength)
18524#define ISpeechTextSelectionInformation_get_ActiveLength(This,ActiveLength) (This)->lpVtbl->get_ActiveLength(This,ActiveLength)
18525#define ISpeechTextSelectionInformation_put_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->put_SelectionOffset(This,SelectionOffset)
18526#define ISpeechTextSelectionInformation_get_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->get_SelectionOffset(This,SelectionOffset)
18527#define ISpeechTextSelectionInformation_put_SelectionLength(This,SelectionLength) (This)->lpVtbl->put_SelectionLength(This,SelectionLength)
18528#define ISpeechTextSelectionInformation_get_SelectionLength(This,SelectionLength) (This)->lpVtbl->get_SelectionLength(This,SelectionLength)
18529#else
18530/*** IUnknown methods ***/
18531static inline HRESULT ISpeechTextSelectionInformation_QueryInterface(ISpeechTextSelectionInformation* This,REFIID riid,void **ppvObject) {
18532    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18533}
18534static inline ULONG ISpeechTextSelectionInformation_AddRef(ISpeechTextSelectionInformation* This) {
18535    return This->lpVtbl->AddRef(This);
18536}
18537static inline ULONG ISpeechTextSelectionInformation_Release(ISpeechTextSelectionInformation* This) {
18538    return This->lpVtbl->Release(This);
18539}
18540/*** IDispatch methods ***/
18541static inline HRESULT ISpeechTextSelectionInformation_GetTypeInfoCount(ISpeechTextSelectionInformation* This,UINT *pctinfo) {
18542    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18543}
18544static inline HRESULT ISpeechTextSelectionInformation_GetTypeInfo(ISpeechTextSelectionInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18545    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18546}
18547static inline HRESULT ISpeechTextSelectionInformation_GetIDsOfNames(ISpeechTextSelectionInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18548    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18549}
18550static inline HRESULT ISpeechTextSelectionInformation_Invoke(ISpeechTextSelectionInformation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18551    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18552}
18553/*** ISpeechTextSelectionInformation methods ***/
18554static inline HRESULT ISpeechTextSelectionInformation_put_ActiveOffset(ISpeechTextSelectionInformation* This,LONG ActiveOffset) {
18555    return This->lpVtbl->put_ActiveOffset(This,ActiveOffset);
18556}
18557static inline HRESULT ISpeechTextSelectionInformation_get_ActiveOffset(ISpeechTextSelectionInformation* This,LONG *ActiveOffset) {
18558    return This->lpVtbl->get_ActiveOffset(This,ActiveOffset);
18559}
18560static inline HRESULT ISpeechTextSelectionInformation_put_ActiveLength(ISpeechTextSelectionInformation* This,LONG ActiveLength) {
18561    return This->lpVtbl->put_ActiveLength(This,ActiveLength);
18562}
18563static inline HRESULT ISpeechTextSelectionInformation_get_ActiveLength(ISpeechTextSelectionInformation* This,LONG *ActiveLength) {
18564    return This->lpVtbl->get_ActiveLength(This,ActiveLength);
18565}
18566static inline HRESULT ISpeechTextSelectionInformation_put_SelectionOffset(ISpeechTextSelectionInformation* This,LONG SelectionOffset) {
18567    return This->lpVtbl->put_SelectionOffset(This,SelectionOffset);
18568}
18569static inline HRESULT ISpeechTextSelectionInformation_get_SelectionOffset(ISpeechTextSelectionInformation* This,LONG *SelectionOffset) {
18570    return This->lpVtbl->get_SelectionOffset(This,SelectionOffset);
18571}
18572static inline HRESULT ISpeechTextSelectionInformation_put_SelectionLength(ISpeechTextSelectionInformation* This,LONG SelectionLength) {
18573    return This->lpVtbl->put_SelectionLength(This,SelectionLength);
18574}
18575static inline HRESULT ISpeechTextSelectionInformation_get_SelectionLength(ISpeechTextSelectionInformation* This,LONG *SelectionLength) {
18576    return This->lpVtbl->get_SelectionLength(This,SelectionLength);
18577}
18578#endif
18579#endif
18580
18581#endif
18582
18583
18584#endif  /* __ISpeechTextSelectionInformation_INTERFACE_DEFINED__ */
18585
18586/*****************************************************************************
18587 * ISpeechRecoResult interface
18588 */
18589#ifndef __ISpeechRecoResult_INTERFACE_DEFINED__
18590#define __ISpeechRecoResult_INTERFACE_DEFINED__
18591
18592DEFINE_GUID(IID_ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d);
18593#if defined(__cplusplus) && !defined(CINTERFACE)
18594MIDL_INTERFACE("ed2879cf-ced9-4ee6-a534-de0191d5468d")
18595ISpeechRecoResult : public IDispatch
18596{
18597    virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
18598        ISpeechRecoContext **RecoContext) = 0;
18599
18600    virtual HRESULT STDMETHODCALLTYPE get_Times(
18601        ISpeechRecoResultTimes **Times) = 0;
18602
18603    virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
18604        ISpeechAudioFormat *Format) = 0;
18605
18606    virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
18607        ISpeechAudioFormat **Format) = 0;
18608
18609    virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
18610        ISpeechPhraseInfo **PhraseInfo) = 0;
18611
18612    virtual HRESULT STDMETHODCALLTYPE Alternates(
18613        LONG RequestCount,
18614        LONG StartElement,
18615        LONG Elements,
18616        ISpeechPhraseAlternates **Alternates) = 0;
18617
18618    virtual HRESULT STDMETHODCALLTYPE Audio(
18619        LONG StartElement,
18620        LONG Elements,
18621        ISpeechMemoryStream **Stream) = 0;
18622
18623    virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
18624        LONG StartElement,
18625        LONG Elements,
18626        SpeechVoiceSpeakFlags Flags,
18627        LONG *StreamNumber) = 0;
18628
18629    virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
18630        VARIANT *ResultBlock) = 0;
18631
18632    virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
18633        SpeechDiscardType ValueTypes) = 0;
18634
18635};
18636#ifdef __CRT_UUID_DECL
18637__CRT_UUID_DECL(ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d)
18638#endif
18639#else
18640typedef struct ISpeechRecoResultVtbl {
18641    BEGIN_INTERFACE
18642
18643    /*** IUnknown methods ***/
18644    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18645        ISpeechRecoResult *This,
18646        REFIID riid,
18647        void **ppvObject);
18648
18649    ULONG (STDMETHODCALLTYPE *AddRef)(
18650        ISpeechRecoResult *This);
18651
18652    ULONG (STDMETHODCALLTYPE *Release)(
18653        ISpeechRecoResult *This);
18654
18655    /*** IDispatch methods ***/
18656    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18657        ISpeechRecoResult *This,
18658        UINT *pctinfo);
18659
18660    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18661        ISpeechRecoResult *This,
18662        UINT iTInfo,
18663        LCID lcid,
18664        ITypeInfo **ppTInfo);
18665
18666    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18667        ISpeechRecoResult *This,
18668        REFIID riid,
18669        LPOLESTR *rgszNames,
18670        UINT cNames,
18671        LCID lcid,
18672        DISPID *rgDispId);
18673
18674    HRESULT (STDMETHODCALLTYPE *Invoke)(
18675        ISpeechRecoResult *This,
18676        DISPID dispIdMember,
18677        REFIID riid,
18678        LCID lcid,
18679        WORD wFlags,
18680        DISPPARAMS *pDispParams,
18681        VARIANT *pVarResult,
18682        EXCEPINFO *pExcepInfo,
18683        UINT *puArgErr);
18684
18685    /*** ISpeechRecoResult methods ***/
18686    HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
18687        ISpeechRecoResult *This,
18688        ISpeechRecoContext **RecoContext);
18689
18690    HRESULT (STDMETHODCALLTYPE *get_Times)(
18691        ISpeechRecoResult *This,
18692        ISpeechRecoResultTimes **Times);
18693
18694    HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
18695        ISpeechRecoResult *This,
18696        ISpeechAudioFormat *Format);
18697
18698    HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
18699        ISpeechRecoResult *This,
18700        ISpeechAudioFormat **Format);
18701
18702    HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
18703        ISpeechRecoResult *This,
18704        ISpeechPhraseInfo **PhraseInfo);
18705
18706    HRESULT (STDMETHODCALLTYPE *Alternates)(
18707        ISpeechRecoResult *This,
18708        LONG RequestCount,
18709        LONG StartElement,
18710        LONG Elements,
18711        ISpeechPhraseAlternates **Alternates);
18712
18713    HRESULT (STDMETHODCALLTYPE *Audio)(
18714        ISpeechRecoResult *This,
18715        LONG StartElement,
18716        LONG Elements,
18717        ISpeechMemoryStream **Stream);
18718
18719    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
18720        ISpeechRecoResult *This,
18721        LONG StartElement,
18722        LONG Elements,
18723        SpeechVoiceSpeakFlags Flags,
18724        LONG *StreamNumber);
18725
18726    HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
18727        ISpeechRecoResult *This,
18728        VARIANT *ResultBlock);
18729
18730    HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
18731        ISpeechRecoResult *This,
18732        SpeechDiscardType ValueTypes);
18733
18734    END_INTERFACE
18735} ISpeechRecoResultVtbl;
18736
18737interface ISpeechRecoResult {
18738    CONST_VTBL ISpeechRecoResultVtbl* lpVtbl;
18739};
18740
18741#ifdef COBJMACROS
18742#ifndef WIDL_C_INLINE_WRAPPERS
18743/*** IUnknown methods ***/
18744#define ISpeechRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18745#define ISpeechRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
18746#define ISpeechRecoResult_Release(This) (This)->lpVtbl->Release(This)
18747/*** IDispatch methods ***/
18748#define ISpeechRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18749#define ISpeechRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18750#define ISpeechRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18751#define ISpeechRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18752/*** ISpeechRecoResult methods ***/
18753#define ISpeechRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
18754#define ISpeechRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
18755#define ISpeechRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
18756#define ISpeechRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
18757#define ISpeechRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
18758#define ISpeechRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
18759#define ISpeechRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
18760#define ISpeechRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
18761#define ISpeechRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
18762#define ISpeechRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
18763#else
18764/*** IUnknown methods ***/
18765static inline HRESULT ISpeechRecoResult_QueryInterface(ISpeechRecoResult* This,REFIID riid,void **ppvObject) {
18766    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18767}
18768static inline ULONG ISpeechRecoResult_AddRef(ISpeechRecoResult* This) {
18769    return This->lpVtbl->AddRef(This);
18770}
18771static inline ULONG ISpeechRecoResult_Release(ISpeechRecoResult* This) {
18772    return This->lpVtbl->Release(This);
18773}
18774/*** IDispatch methods ***/
18775static inline HRESULT ISpeechRecoResult_GetTypeInfoCount(ISpeechRecoResult* This,UINT *pctinfo) {
18776    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18777}
18778static inline HRESULT ISpeechRecoResult_GetTypeInfo(ISpeechRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18779    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18780}
18781static inline HRESULT ISpeechRecoResult_GetIDsOfNames(ISpeechRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18782    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18783}
18784static inline HRESULT ISpeechRecoResult_Invoke(ISpeechRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18785    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18786}
18787/*** ISpeechRecoResult methods ***/
18788static inline HRESULT ISpeechRecoResult_get_RecoContext(ISpeechRecoResult* This,ISpeechRecoContext **RecoContext) {
18789    return This->lpVtbl->get_RecoContext(This,RecoContext);
18790}
18791static inline HRESULT ISpeechRecoResult_get_Times(ISpeechRecoResult* This,ISpeechRecoResultTimes **Times) {
18792    return This->lpVtbl->get_Times(This,Times);
18793}
18794static inline HRESULT ISpeechRecoResult_putref_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat *Format) {
18795    return This->lpVtbl->putref_AudioFormat(This,Format);
18796}
18797static inline HRESULT ISpeechRecoResult_get_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat **Format) {
18798    return This->lpVtbl->get_AudioFormat(This,Format);
18799}
18800static inline HRESULT ISpeechRecoResult_get_PhraseInfo(ISpeechRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
18801    return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
18802}
18803static inline HRESULT ISpeechRecoResult_Alternates(ISpeechRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
18804    return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
18805}
18806static inline HRESULT ISpeechRecoResult_Audio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
18807    return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
18808}
18809static inline HRESULT ISpeechRecoResult_SpeakAudio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
18810    return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
18811}
18812static inline HRESULT ISpeechRecoResult_SaveToMemory(ISpeechRecoResult* This,VARIANT *ResultBlock) {
18813    return This->lpVtbl->SaveToMemory(This,ResultBlock);
18814}
18815static inline HRESULT ISpeechRecoResult_DiscardResultInfo(ISpeechRecoResult* This,SpeechDiscardType ValueTypes) {
18816    return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
18817}
18818#endif
18819#endif
18820
18821#endif
18822
18823
18824#endif  /* __ISpeechRecoResult_INTERFACE_DEFINED__ */
18825
18826/*****************************************************************************
18827 * ISpeechXMLRecoResult interface
18828 */
18829#ifndef __ISpeechXMLRecoResult_INTERFACE_DEFINED__
18830#define __ISpeechXMLRecoResult_INTERFACE_DEFINED__
18831
18832DEFINE_GUID(IID_ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19);
18833#if defined(__cplusplus) && !defined(CINTERFACE)
18834MIDL_INTERFACE("aaec54af-8f85-4924-944d-b79d39d72e19")
18835ISpeechXMLRecoResult : public ISpeechRecoResult
18836{
18837    virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
18838        SPXMLRESULTOPTIONS Options,
18839        BSTR *pResult) = 0;
18840
18841    virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
18842        LONG *LineNumber,
18843        BSTR *ScriptLine,
18844        BSTR *Source,
18845        BSTR *Description,
18846        LONG *ResultCode,
18847        VARIANT_BOOL *IsError) = 0;
18848
18849};
18850#ifdef __CRT_UUID_DECL
18851__CRT_UUID_DECL(ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19)
18852#endif
18853#else
18854typedef struct ISpeechXMLRecoResultVtbl {
18855    BEGIN_INTERFACE
18856
18857    /*** IUnknown methods ***/
18858    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18859        ISpeechXMLRecoResult *This,
18860        REFIID riid,
18861        void **ppvObject);
18862
18863    ULONG (STDMETHODCALLTYPE *AddRef)(
18864        ISpeechXMLRecoResult *This);
18865
18866    ULONG (STDMETHODCALLTYPE *Release)(
18867        ISpeechXMLRecoResult *This);
18868
18869    /*** IDispatch methods ***/
18870    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18871        ISpeechXMLRecoResult *This,
18872        UINT *pctinfo);
18873
18874    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18875        ISpeechXMLRecoResult *This,
18876        UINT iTInfo,
18877        LCID lcid,
18878        ITypeInfo **ppTInfo);
18879
18880    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18881        ISpeechXMLRecoResult *This,
18882        REFIID riid,
18883        LPOLESTR *rgszNames,
18884        UINT cNames,
18885        LCID lcid,
18886        DISPID *rgDispId);
18887
18888    HRESULT (STDMETHODCALLTYPE *Invoke)(
18889        ISpeechXMLRecoResult *This,
18890        DISPID dispIdMember,
18891        REFIID riid,
18892        LCID lcid,
18893        WORD wFlags,
18894        DISPPARAMS *pDispParams,
18895        VARIANT *pVarResult,
18896        EXCEPINFO *pExcepInfo,
18897        UINT *puArgErr);
18898
18899    /*** ISpeechRecoResult methods ***/
18900    HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
18901        ISpeechXMLRecoResult *This,
18902        ISpeechRecoContext **RecoContext);
18903
18904    HRESULT (STDMETHODCALLTYPE *get_Times)(
18905        ISpeechXMLRecoResult *This,
18906        ISpeechRecoResultTimes **Times);
18907
18908    HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
18909        ISpeechXMLRecoResult *This,
18910        ISpeechAudioFormat *Format);
18911
18912    HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
18913        ISpeechXMLRecoResult *This,
18914        ISpeechAudioFormat **Format);
18915
18916    HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
18917        ISpeechXMLRecoResult *This,
18918        ISpeechPhraseInfo **PhraseInfo);
18919
18920    HRESULT (STDMETHODCALLTYPE *Alternates)(
18921        ISpeechXMLRecoResult *This,
18922        LONG RequestCount,
18923        LONG StartElement,
18924        LONG Elements,
18925        ISpeechPhraseAlternates **Alternates);
18926
18927    HRESULT (STDMETHODCALLTYPE *Audio)(
18928        ISpeechXMLRecoResult *This,
18929        LONG StartElement,
18930        LONG Elements,
18931        ISpeechMemoryStream **Stream);
18932
18933    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
18934        ISpeechXMLRecoResult *This,
18935        LONG StartElement,
18936        LONG Elements,
18937        SpeechVoiceSpeakFlags Flags,
18938        LONG *StreamNumber);
18939
18940    HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
18941        ISpeechXMLRecoResult *This,
18942        VARIANT *ResultBlock);
18943
18944    HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
18945        ISpeechXMLRecoResult *This,
18946        SpeechDiscardType ValueTypes);
18947
18948    /*** ISpeechXMLRecoResult methods ***/
18949    HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
18950        ISpeechXMLRecoResult *This,
18951        SPXMLRESULTOPTIONS Options,
18952        BSTR *pResult);
18953
18954    HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
18955        ISpeechXMLRecoResult *This,
18956        LONG *LineNumber,
18957        BSTR *ScriptLine,
18958        BSTR *Source,
18959        BSTR *Description,
18960        LONG *ResultCode,
18961        VARIANT_BOOL *IsError);
18962
18963    END_INTERFACE
18964} ISpeechXMLRecoResultVtbl;
18965
18966interface ISpeechXMLRecoResult {
18967    CONST_VTBL ISpeechXMLRecoResultVtbl* lpVtbl;
18968};
18969
18970#ifdef COBJMACROS
18971#ifndef WIDL_C_INLINE_WRAPPERS
18972/*** IUnknown methods ***/
18973#define ISpeechXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18974#define ISpeechXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
18975#define ISpeechXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
18976/*** IDispatch methods ***/
18977#define ISpeechXMLRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18978#define ISpeechXMLRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18979#define ISpeechXMLRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18980#define ISpeechXMLRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18981/*** ISpeechRecoResult methods ***/
18982#define ISpeechXMLRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
18983#define ISpeechXMLRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
18984#define ISpeechXMLRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
18985#define ISpeechXMLRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
18986#define ISpeechXMLRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
18987#define ISpeechXMLRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
18988#define ISpeechXMLRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
18989#define ISpeechXMLRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
18990#define ISpeechXMLRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
18991#define ISpeechXMLRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
18992/*** ISpeechXMLRecoResult methods ***/
18993#define ISpeechXMLRecoResult_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
18994#define ISpeechXMLRecoResult_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
18995#else
18996/*** IUnknown methods ***/
18997static inline HRESULT ISpeechXMLRecoResult_QueryInterface(ISpeechXMLRecoResult* This,REFIID riid,void **ppvObject) {
18998    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18999}
19000static inline ULONG ISpeechXMLRecoResult_AddRef(ISpeechXMLRecoResult* This) {
19001    return This->lpVtbl->AddRef(This);
19002}
19003static inline ULONG ISpeechXMLRecoResult_Release(ISpeechXMLRecoResult* This) {
19004    return This->lpVtbl->Release(This);
19005}
19006/*** IDispatch methods ***/
19007static inline HRESULT ISpeechXMLRecoResult_GetTypeInfoCount(ISpeechXMLRecoResult* This,UINT *pctinfo) {
19008    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19009}
19010static inline HRESULT ISpeechXMLRecoResult_GetTypeInfo(ISpeechXMLRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19011    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19012}
19013static inline HRESULT ISpeechXMLRecoResult_GetIDsOfNames(ISpeechXMLRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19014    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19015}
19016static inline HRESULT ISpeechXMLRecoResult_Invoke(ISpeechXMLRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19017    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19018}
19019/*** ISpeechRecoResult methods ***/
19020static inline HRESULT ISpeechXMLRecoResult_get_RecoContext(ISpeechXMLRecoResult* This,ISpeechRecoContext **RecoContext) {
19021    return This->lpVtbl->get_RecoContext(This,RecoContext);
19022}
19023static inline HRESULT ISpeechXMLRecoResult_get_Times(ISpeechXMLRecoResult* This,ISpeechRecoResultTimes **Times) {
19024    return This->lpVtbl->get_Times(This,Times);
19025}
19026static inline HRESULT ISpeechXMLRecoResult_putref_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat *Format) {
19027    return This->lpVtbl->putref_AudioFormat(This,Format);
19028}
19029static inline HRESULT ISpeechXMLRecoResult_get_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat **Format) {
19030    return This->lpVtbl->get_AudioFormat(This,Format);
19031}
19032static inline HRESULT ISpeechXMLRecoResult_get_PhraseInfo(ISpeechXMLRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
19033    return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
19034}
19035static inline HRESULT ISpeechXMLRecoResult_Alternates(ISpeechXMLRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
19036    return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
19037}
19038static inline HRESULT ISpeechXMLRecoResult_Audio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
19039    return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
19040}
19041static inline HRESULT ISpeechXMLRecoResult_SpeakAudio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
19042    return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
19043}
19044static inline HRESULT ISpeechXMLRecoResult_SaveToMemory(ISpeechXMLRecoResult* This,VARIANT *ResultBlock) {
19045    return This->lpVtbl->SaveToMemory(This,ResultBlock);
19046}
19047static inline HRESULT ISpeechXMLRecoResult_DiscardResultInfo(ISpeechXMLRecoResult* This,SpeechDiscardType ValueTypes) {
19048    return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
19049}
19050/*** ISpeechXMLRecoResult methods ***/
19051static inline HRESULT ISpeechXMLRecoResult_GetXMLResult(ISpeechXMLRecoResult* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
19052    return This->lpVtbl->GetXMLResult(This,Options,pResult);
19053}
19054static inline HRESULT ISpeechXMLRecoResult_GetXMLErrorInfo(ISpeechXMLRecoResult* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,LONG *ResultCode,VARIANT_BOOL *IsError) {
19055    return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
19056}
19057#endif
19058#endif
19059
19060#endif
19061
19062
19063#endif  /* __ISpeechXMLRecoResult_INTERFACE_DEFINED__ */
19064
19065/*****************************************************************************
19066 * ISpeechRecoResult2 interface
19067 */
19068#ifndef __ISpeechRecoResult2_INTERFACE_DEFINED__
19069#define __ISpeechRecoResult2_INTERFACE_DEFINED__
19070
19071DEFINE_GUID(IID_ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c);
19072#if defined(__cplusplus) && !defined(CINTERFACE)
19073MIDL_INTERFACE("8e0a246d-d3c8-45de-8657-04290c458c3c")
19074ISpeechRecoResult2 : public ISpeechRecoResult
19075{
19076    virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
19077        BSTR Feedback,
19078        VARIANT_BOOL WasSuccessful) = 0;
19079
19080};
19081#ifdef __CRT_UUID_DECL
19082__CRT_UUID_DECL(ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c)
19083#endif
19084#else
19085typedef struct ISpeechRecoResult2Vtbl {
19086    BEGIN_INTERFACE
19087
19088    /*** IUnknown methods ***/
19089    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19090        ISpeechRecoResult2 *This,
19091        REFIID riid,
19092        void **ppvObject);
19093
19094    ULONG (STDMETHODCALLTYPE *AddRef)(
19095        ISpeechRecoResult2 *This);
19096
19097    ULONG (STDMETHODCALLTYPE *Release)(
19098        ISpeechRecoResult2 *This);
19099
19100    /*** IDispatch methods ***/
19101    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19102        ISpeechRecoResult2 *This,
19103        UINT *pctinfo);
19104
19105    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19106        ISpeechRecoResult2 *This,
19107        UINT iTInfo,
19108        LCID lcid,
19109        ITypeInfo **ppTInfo);
19110
19111    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19112        ISpeechRecoResult2 *This,
19113        REFIID riid,
19114        LPOLESTR *rgszNames,
19115        UINT cNames,
19116        LCID lcid,
19117        DISPID *rgDispId);
19118
19119    HRESULT (STDMETHODCALLTYPE *Invoke)(
19120        ISpeechRecoResult2 *This,
19121        DISPID dispIdMember,
19122        REFIID riid,
19123        LCID lcid,
19124        WORD wFlags,
19125        DISPPARAMS *pDispParams,
19126        VARIANT *pVarResult,
19127        EXCEPINFO *pExcepInfo,
19128        UINT *puArgErr);
19129
19130    /*** ISpeechRecoResult methods ***/
19131    HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
19132        ISpeechRecoResult2 *This,
19133        ISpeechRecoContext **RecoContext);
19134
19135    HRESULT (STDMETHODCALLTYPE *get_Times)(
19136        ISpeechRecoResult2 *This,
19137        ISpeechRecoResultTimes **Times);
19138
19139    HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
19140        ISpeechRecoResult2 *This,
19141        ISpeechAudioFormat *Format);
19142
19143    HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
19144        ISpeechRecoResult2 *This,
19145        ISpeechAudioFormat **Format);
19146
19147    HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
19148        ISpeechRecoResult2 *This,
19149        ISpeechPhraseInfo **PhraseInfo);
19150
19151    HRESULT (STDMETHODCALLTYPE *Alternates)(
19152        ISpeechRecoResult2 *This,
19153        LONG RequestCount,
19154        LONG StartElement,
19155        LONG Elements,
19156        ISpeechPhraseAlternates **Alternates);
19157
19158    HRESULT (STDMETHODCALLTYPE *Audio)(
19159        ISpeechRecoResult2 *This,
19160        LONG StartElement,
19161        LONG Elements,
19162        ISpeechMemoryStream **Stream);
19163
19164    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
19165        ISpeechRecoResult2 *This,
19166        LONG StartElement,
19167        LONG Elements,
19168        SpeechVoiceSpeakFlags Flags,
19169        LONG *StreamNumber);
19170
19171    HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
19172        ISpeechRecoResult2 *This,
19173        VARIANT *ResultBlock);
19174
19175    HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
19176        ISpeechRecoResult2 *This,
19177        SpeechDiscardType ValueTypes);
19178
19179    /*** ISpeechRecoResult2 methods ***/
19180    HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
19181        ISpeechRecoResult2 *This,
19182        BSTR Feedback,
19183        VARIANT_BOOL WasSuccessful);
19184
19185    END_INTERFACE
19186} ISpeechRecoResult2Vtbl;
19187
19188interface ISpeechRecoResult2 {
19189    CONST_VTBL ISpeechRecoResult2Vtbl* lpVtbl;
19190};
19191
19192#ifdef COBJMACROS
19193#ifndef WIDL_C_INLINE_WRAPPERS
19194/*** IUnknown methods ***/
19195#define ISpeechRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19196#define ISpeechRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
19197#define ISpeechRecoResult2_Release(This) (This)->lpVtbl->Release(This)
19198/*** IDispatch methods ***/
19199#define ISpeechRecoResult2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19200#define ISpeechRecoResult2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19201#define ISpeechRecoResult2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19202#define ISpeechRecoResult2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19203/*** ISpeechRecoResult methods ***/
19204#define ISpeechRecoResult2_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
19205#define ISpeechRecoResult2_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
19206#define ISpeechRecoResult2_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
19207#define ISpeechRecoResult2_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
19208#define ISpeechRecoResult2_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
19209#define ISpeechRecoResult2_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
19210#define ISpeechRecoResult2_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
19211#define ISpeechRecoResult2_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
19212#define ISpeechRecoResult2_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
19213#define ISpeechRecoResult2_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
19214/*** ISpeechRecoResult2 methods ***/
19215#define ISpeechRecoResult2_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
19216#else
19217/*** IUnknown methods ***/
19218static inline HRESULT ISpeechRecoResult2_QueryInterface(ISpeechRecoResult2* This,REFIID riid,void **ppvObject) {
19219    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19220}
19221static inline ULONG ISpeechRecoResult2_AddRef(ISpeechRecoResult2* This) {
19222    return This->lpVtbl->AddRef(This);
19223}
19224static inline ULONG ISpeechRecoResult2_Release(ISpeechRecoResult2* This) {
19225    return This->lpVtbl->Release(This);
19226}
19227/*** IDispatch methods ***/
19228static inline HRESULT ISpeechRecoResult2_GetTypeInfoCount(ISpeechRecoResult2* This,UINT *pctinfo) {
19229    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19230}
19231static inline HRESULT ISpeechRecoResult2_GetTypeInfo(ISpeechRecoResult2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19232    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19233}
19234static inline HRESULT ISpeechRecoResult2_GetIDsOfNames(ISpeechRecoResult2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19235    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19236}
19237static inline HRESULT ISpeechRecoResult2_Invoke(ISpeechRecoResult2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19238    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19239}
19240/*** ISpeechRecoResult methods ***/
19241static inline HRESULT ISpeechRecoResult2_get_RecoContext(ISpeechRecoResult2* This,ISpeechRecoContext **RecoContext) {
19242    return This->lpVtbl->get_RecoContext(This,RecoContext);
19243}
19244static inline HRESULT ISpeechRecoResult2_get_Times(ISpeechRecoResult2* This,ISpeechRecoResultTimes **Times) {
19245    return This->lpVtbl->get_Times(This,Times);
19246}
19247static inline HRESULT ISpeechRecoResult2_putref_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat *Format) {
19248    return This->lpVtbl->putref_AudioFormat(This,Format);
19249}
19250static inline HRESULT ISpeechRecoResult2_get_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat **Format) {
19251    return This->lpVtbl->get_AudioFormat(This,Format);
19252}
19253static inline HRESULT ISpeechRecoResult2_get_PhraseInfo(ISpeechRecoResult2* This,ISpeechPhraseInfo **PhraseInfo) {
19254    return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
19255}
19256static inline HRESULT ISpeechRecoResult2_Alternates(ISpeechRecoResult2* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
19257    return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
19258}
19259static inline HRESULT ISpeechRecoResult2_Audio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
19260    return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
19261}
19262static inline HRESULT ISpeechRecoResult2_SpeakAudio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
19263    return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
19264}
19265static inline HRESULT ISpeechRecoResult2_SaveToMemory(ISpeechRecoResult2* This,VARIANT *ResultBlock) {
19266    return This->lpVtbl->SaveToMemory(This,ResultBlock);
19267}
19268static inline HRESULT ISpeechRecoResult2_DiscardResultInfo(ISpeechRecoResult2* This,SpeechDiscardType ValueTypes) {
19269    return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
19270}
19271/*** ISpeechRecoResult2 methods ***/
19272static inline HRESULT ISpeechRecoResult2_SetTextFeedback(ISpeechRecoResult2* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
19273    return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
19274}
19275#endif
19276#endif
19277
19278#endif
19279
19280
19281#endif  /* __ISpeechRecoResult2_INTERFACE_DEFINED__ */
19282
19283/*****************************************************************************
19284 * ISpeechRecoResultDispatch interface
19285 */
19286#ifndef __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
19287#define __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
19288
19289DEFINE_GUID(IID_ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2);
19290#if defined(__cplusplus) && !defined(CINTERFACE)
19291MIDL_INTERFACE("6d60eb64-aced-40a6-bbf3-4e557f71dee2")
19292ISpeechRecoResultDispatch : public IDispatch
19293{
19294    virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
19295        ISpeechRecoContext **RecoContext) = 0;
19296
19297    virtual HRESULT STDMETHODCALLTYPE get_Times(
19298        ISpeechRecoResultTimes **Times) = 0;
19299
19300    virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
19301        ISpeechAudioFormat *Format) = 0;
19302
19303    virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
19304        ISpeechAudioFormat **Format) = 0;
19305
19306    virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
19307        ISpeechPhraseInfo **PhraseInfo) = 0;
19308
19309    virtual HRESULT STDMETHODCALLTYPE Alternates(
19310        LONG RequestCount,
19311        LONG StartElement,
19312        LONG Elements,
19313        ISpeechPhraseAlternates **Alternates) = 0;
19314
19315    virtual HRESULT STDMETHODCALLTYPE Audio(
19316        LONG StartElement,
19317        LONG Elements,
19318        ISpeechMemoryStream **Stream) = 0;
19319
19320    virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
19321        LONG StartElement,
19322        LONG Elements,
19323        SpeechVoiceSpeakFlags Flags,
19324        LONG *StreamNumber) = 0;
19325
19326    virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
19327        VARIANT *ResultBlock) = 0;
19328
19329    virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
19330        SpeechDiscardType ValueTypes) = 0;
19331
19332    virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
19333        SPXMLRESULTOPTIONS Options,
19334        BSTR *pResult) = 0;
19335
19336    virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
19337        LONG *LineNumber,
19338        BSTR *ScriptLine,
19339        BSTR *Source,
19340        BSTR *Description,
19341        HRESULT *ResultCode,
19342        VARIANT_BOOL *IsError) = 0;
19343
19344    virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
19345        BSTR Feedback,
19346        VARIANT_BOOL WasSuccessful) = 0;
19347
19348};
19349#ifdef __CRT_UUID_DECL
19350__CRT_UUID_DECL(ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2)
19351#endif
19352#else
19353typedef struct ISpeechRecoResultDispatchVtbl {
19354    BEGIN_INTERFACE
19355
19356    /*** IUnknown methods ***/
19357    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19358        ISpeechRecoResultDispatch *This,
19359        REFIID riid,
19360        void **ppvObject);
19361
19362    ULONG (STDMETHODCALLTYPE *AddRef)(
19363        ISpeechRecoResultDispatch *This);
19364
19365    ULONG (STDMETHODCALLTYPE *Release)(
19366        ISpeechRecoResultDispatch *This);
19367
19368    /*** IDispatch methods ***/
19369    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19370        ISpeechRecoResultDispatch *This,
19371        UINT *pctinfo);
19372
19373    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19374        ISpeechRecoResultDispatch *This,
19375        UINT iTInfo,
19376        LCID lcid,
19377        ITypeInfo **ppTInfo);
19378
19379    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19380        ISpeechRecoResultDispatch *This,
19381        REFIID riid,
19382        LPOLESTR *rgszNames,
19383        UINT cNames,
19384        LCID lcid,
19385        DISPID *rgDispId);
19386
19387    HRESULT (STDMETHODCALLTYPE *Invoke)(
19388        ISpeechRecoResultDispatch *This,
19389        DISPID dispIdMember,
19390        REFIID riid,
19391        LCID lcid,
19392        WORD wFlags,
19393        DISPPARAMS *pDispParams,
19394        VARIANT *pVarResult,
19395        EXCEPINFO *pExcepInfo,
19396        UINT *puArgErr);
19397
19398    /*** ISpeechRecoResultDispatch methods ***/
19399    HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
19400        ISpeechRecoResultDispatch *This,
19401        ISpeechRecoContext **RecoContext);
19402
19403    HRESULT (STDMETHODCALLTYPE *get_Times)(
19404        ISpeechRecoResultDispatch *This,
19405        ISpeechRecoResultTimes **Times);
19406
19407    HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
19408        ISpeechRecoResultDispatch *This,
19409        ISpeechAudioFormat *Format);
19410
19411    HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
19412        ISpeechRecoResultDispatch *This,
19413        ISpeechAudioFormat **Format);
19414
19415    HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
19416        ISpeechRecoResultDispatch *This,
19417        ISpeechPhraseInfo **PhraseInfo);
19418
19419    HRESULT (STDMETHODCALLTYPE *Alternates)(
19420        ISpeechRecoResultDispatch *This,
19421        LONG RequestCount,
19422        LONG StartElement,
19423        LONG Elements,
19424        ISpeechPhraseAlternates **Alternates);
19425
19426    HRESULT (STDMETHODCALLTYPE *Audio)(
19427        ISpeechRecoResultDispatch *This,
19428        LONG StartElement,
19429        LONG Elements,
19430        ISpeechMemoryStream **Stream);
19431
19432    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
19433        ISpeechRecoResultDispatch *This,
19434        LONG StartElement,
19435        LONG Elements,
19436        SpeechVoiceSpeakFlags Flags,
19437        LONG *StreamNumber);
19438
19439    HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
19440        ISpeechRecoResultDispatch *This,
19441        VARIANT *ResultBlock);
19442
19443    HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
19444        ISpeechRecoResultDispatch *This,
19445        SpeechDiscardType ValueTypes);
19446
19447    HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
19448        ISpeechRecoResultDispatch *This,
19449        SPXMLRESULTOPTIONS Options,
19450        BSTR *pResult);
19451
19452    HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
19453        ISpeechRecoResultDispatch *This,
19454        LONG *LineNumber,
19455        BSTR *ScriptLine,
19456        BSTR *Source,
19457        BSTR *Description,
19458        HRESULT *ResultCode,
19459        VARIANT_BOOL *IsError);
19460
19461    HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
19462        ISpeechRecoResultDispatch *This,
19463        BSTR Feedback,
19464        VARIANT_BOOL WasSuccessful);
19465
19466    END_INTERFACE
19467} ISpeechRecoResultDispatchVtbl;
19468
19469interface ISpeechRecoResultDispatch {
19470    CONST_VTBL ISpeechRecoResultDispatchVtbl* lpVtbl;
19471};
19472
19473#ifdef COBJMACROS
19474#ifndef WIDL_C_INLINE_WRAPPERS
19475/*** IUnknown methods ***/
19476#define ISpeechRecoResultDispatch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19477#define ISpeechRecoResultDispatch_AddRef(This) (This)->lpVtbl->AddRef(This)
19478#define ISpeechRecoResultDispatch_Release(This) (This)->lpVtbl->Release(This)
19479/*** IDispatch methods ***/
19480#define ISpeechRecoResultDispatch_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19481#define ISpeechRecoResultDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19482#define ISpeechRecoResultDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19483#define ISpeechRecoResultDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19484/*** ISpeechRecoResultDispatch methods ***/
19485#define ISpeechRecoResultDispatch_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
19486#define ISpeechRecoResultDispatch_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
19487#define ISpeechRecoResultDispatch_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
19488#define ISpeechRecoResultDispatch_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
19489#define ISpeechRecoResultDispatch_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
19490#define ISpeechRecoResultDispatch_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
19491#define ISpeechRecoResultDispatch_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
19492#define ISpeechRecoResultDispatch_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
19493#define ISpeechRecoResultDispatch_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
19494#define ISpeechRecoResultDispatch_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
19495#define ISpeechRecoResultDispatch_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
19496#define ISpeechRecoResultDispatch_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
19497#define ISpeechRecoResultDispatch_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
19498#else
19499/*** IUnknown methods ***/
19500static inline HRESULT ISpeechRecoResultDispatch_QueryInterface(ISpeechRecoResultDispatch* This,REFIID riid,void **ppvObject) {
19501    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19502}
19503static inline ULONG ISpeechRecoResultDispatch_AddRef(ISpeechRecoResultDispatch* This) {
19504    return This->lpVtbl->AddRef(This);
19505}
19506static inline ULONG ISpeechRecoResultDispatch_Release(ISpeechRecoResultDispatch* This) {
19507    return This->lpVtbl->Release(This);
19508}
19509/*** IDispatch methods ***/
19510static inline HRESULT ISpeechRecoResultDispatch_GetTypeInfoCount(ISpeechRecoResultDispatch* This,UINT *pctinfo) {
19511    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19512}
19513static inline HRESULT ISpeechRecoResultDispatch_GetTypeInfo(ISpeechRecoResultDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19514    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19515}
19516static inline HRESULT ISpeechRecoResultDispatch_GetIDsOfNames(ISpeechRecoResultDispatch* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19517    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19518}
19519static inline HRESULT ISpeechRecoResultDispatch_Invoke(ISpeechRecoResultDispatch* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19520    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19521}
19522/*** ISpeechRecoResultDispatch methods ***/
19523static inline HRESULT ISpeechRecoResultDispatch_get_RecoContext(ISpeechRecoResultDispatch* This,ISpeechRecoContext **RecoContext) {
19524    return This->lpVtbl->get_RecoContext(This,RecoContext);
19525}
19526static inline HRESULT ISpeechRecoResultDispatch_get_Times(ISpeechRecoResultDispatch* This,ISpeechRecoResultTimes **Times) {
19527    return This->lpVtbl->get_Times(This,Times);
19528}
19529static inline HRESULT ISpeechRecoResultDispatch_putref_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat *Format) {
19530    return This->lpVtbl->putref_AudioFormat(This,Format);
19531}
19532static inline HRESULT ISpeechRecoResultDispatch_get_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat **Format) {
19533    return This->lpVtbl->get_AudioFormat(This,Format);
19534}
19535static inline HRESULT ISpeechRecoResultDispatch_get_PhraseInfo(ISpeechRecoResultDispatch* This,ISpeechPhraseInfo **PhraseInfo) {
19536    return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
19537}
19538static inline HRESULT ISpeechRecoResultDispatch_Alternates(ISpeechRecoResultDispatch* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
19539    return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
19540}
19541static inline HRESULT ISpeechRecoResultDispatch_Audio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
19542    return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
19543}
19544static inline HRESULT ISpeechRecoResultDispatch_SpeakAudio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
19545    return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
19546}
19547static inline HRESULT ISpeechRecoResultDispatch_SaveToMemory(ISpeechRecoResultDispatch* This,VARIANT *ResultBlock) {
19548    return This->lpVtbl->SaveToMemory(This,ResultBlock);
19549}
19550static inline HRESULT ISpeechRecoResultDispatch_DiscardResultInfo(ISpeechRecoResultDispatch* This,SpeechDiscardType ValueTypes) {
19551    return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
19552}
19553static inline HRESULT ISpeechRecoResultDispatch_GetXMLResult(ISpeechRecoResultDispatch* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
19554    return This->lpVtbl->GetXMLResult(This,Options,pResult);
19555}
19556static inline HRESULT ISpeechRecoResultDispatch_GetXMLErrorInfo(ISpeechRecoResultDispatch* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,HRESULT *ResultCode,VARIANT_BOOL *IsError) {
19557    return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
19558}
19559static inline HRESULT ISpeechRecoResultDispatch_SetTextFeedback(ISpeechRecoResultDispatch* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
19560    return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
19561}
19562#endif
19563#endif
19564
19565#endif
19566
19567
19568#endif  /* __ISpeechRecoResultDispatch_INTERFACE_DEFINED__ */
19569
19570/*****************************************************************************
19571 * ISpeechPhraseInfoBuilder interface
19572 */
19573#ifndef __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
19574#define __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
19575
19576DEFINE_GUID(IID_ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33);
19577#if defined(__cplusplus) && !defined(CINTERFACE)
19578MIDL_INTERFACE("3b151836-df3a-4e0a-846c-d2adc9334333")
19579ISpeechPhraseInfoBuilder : public IDispatch
19580{
19581    virtual HRESULT STDMETHODCALLTYPE RestorePhraseFromMemory(
19582        VARIANT *PhraseInMemory,
19583        ISpeechPhraseInfo **PhraseInfo) = 0;
19584
19585};
19586#ifdef __CRT_UUID_DECL
19587__CRT_UUID_DECL(ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33)
19588#endif
19589#else
19590typedef struct ISpeechPhraseInfoBuilderVtbl {
19591    BEGIN_INTERFACE
19592
19593    /*** IUnknown methods ***/
19594    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19595        ISpeechPhraseInfoBuilder *This,
19596        REFIID riid,
19597        void **ppvObject);
19598
19599    ULONG (STDMETHODCALLTYPE *AddRef)(
19600        ISpeechPhraseInfoBuilder *This);
19601
19602    ULONG (STDMETHODCALLTYPE *Release)(
19603        ISpeechPhraseInfoBuilder *This);
19604
19605    /*** IDispatch methods ***/
19606    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19607        ISpeechPhraseInfoBuilder *This,
19608        UINT *pctinfo);
19609
19610    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19611        ISpeechPhraseInfoBuilder *This,
19612        UINT iTInfo,
19613        LCID lcid,
19614        ITypeInfo **ppTInfo);
19615
19616    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19617        ISpeechPhraseInfoBuilder *This,
19618        REFIID riid,
19619        LPOLESTR *rgszNames,
19620        UINT cNames,
19621        LCID lcid,
19622        DISPID *rgDispId);
19623
19624    HRESULT (STDMETHODCALLTYPE *Invoke)(
19625        ISpeechPhraseInfoBuilder *This,
19626        DISPID dispIdMember,
19627        REFIID riid,
19628        LCID lcid,
19629        WORD wFlags,
19630        DISPPARAMS *pDispParams,
19631        VARIANT *pVarResult,
19632        EXCEPINFO *pExcepInfo,
19633        UINT *puArgErr);
19634
19635    /*** ISpeechPhraseInfoBuilder methods ***/
19636    HRESULT (STDMETHODCALLTYPE *RestorePhraseFromMemory)(
19637        ISpeechPhraseInfoBuilder *This,
19638        VARIANT *PhraseInMemory,
19639        ISpeechPhraseInfo **PhraseInfo);
19640
19641    END_INTERFACE
19642} ISpeechPhraseInfoBuilderVtbl;
19643
19644interface ISpeechPhraseInfoBuilder {
19645    CONST_VTBL ISpeechPhraseInfoBuilderVtbl* lpVtbl;
19646};
19647
19648#ifdef COBJMACROS
19649#ifndef WIDL_C_INLINE_WRAPPERS
19650/*** IUnknown methods ***/
19651#define ISpeechPhraseInfoBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19652#define ISpeechPhraseInfoBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
19653#define ISpeechPhraseInfoBuilder_Release(This) (This)->lpVtbl->Release(This)
19654/*** IDispatch methods ***/
19655#define ISpeechPhraseInfoBuilder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19656#define ISpeechPhraseInfoBuilder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19657#define ISpeechPhraseInfoBuilder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19658#define ISpeechPhraseInfoBuilder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19659/*** ISpeechPhraseInfoBuilder methods ***/
19660#define ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo) (This)->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo)
19661#else
19662/*** IUnknown methods ***/
19663static inline HRESULT ISpeechPhraseInfoBuilder_QueryInterface(ISpeechPhraseInfoBuilder* This,REFIID riid,void **ppvObject) {
19664    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19665}
19666static inline ULONG ISpeechPhraseInfoBuilder_AddRef(ISpeechPhraseInfoBuilder* This) {
19667    return This->lpVtbl->AddRef(This);
19668}
19669static inline ULONG ISpeechPhraseInfoBuilder_Release(ISpeechPhraseInfoBuilder* This) {
19670    return This->lpVtbl->Release(This);
19671}
19672/*** IDispatch methods ***/
19673static inline HRESULT ISpeechPhraseInfoBuilder_GetTypeInfoCount(ISpeechPhraseInfoBuilder* This,UINT *pctinfo) {
19674    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19675}
19676static inline HRESULT ISpeechPhraseInfoBuilder_GetTypeInfo(ISpeechPhraseInfoBuilder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19677    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19678}
19679static inline HRESULT ISpeechPhraseInfoBuilder_GetIDsOfNames(ISpeechPhraseInfoBuilder* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19680    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19681}
19682static inline HRESULT ISpeechPhraseInfoBuilder_Invoke(ISpeechPhraseInfoBuilder* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19683    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19684}
19685/*** ISpeechPhraseInfoBuilder methods ***/
19686static inline HRESULT ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(ISpeechPhraseInfoBuilder* This,VARIANT *PhraseInMemory,ISpeechPhraseInfo **PhraseInfo) {
19687    return This->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo);
19688}
19689#endif
19690#endif
19691
19692#endif
19693
19694
19695#endif  /* __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__ */
19696
19697/*****************************************************************************
19698 * ISpeechRecoResultTimes interface
19699 */
19700#ifndef __ISpeechRecoResultTimes_INTERFACE_DEFINED__
19701#define __ISpeechRecoResultTimes_INTERFACE_DEFINED__
19702
19703DEFINE_GUID(IID_ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0);
19704#if defined(__cplusplus) && !defined(CINTERFACE)
19705MIDL_INTERFACE("62b3b8fb-f6e7-41be-bdcb-056b1c29efc0")
19706ISpeechRecoResultTimes : public IDispatch
19707{
19708    virtual HRESULT STDMETHODCALLTYPE get_StreamTime(
19709        VARIANT *Time) = 0;
19710
19711    virtual HRESULT STDMETHODCALLTYPE get_Length(
19712        VARIANT *Length) = 0;
19713
19714    virtual HRESULT STDMETHODCALLTYPE get_TickCount(
19715        LONG *TickCount) = 0;
19716
19717    virtual HRESULT STDMETHODCALLTYPE get_OffsetFromStart(
19718        VARIANT *OffsetFromStart) = 0;
19719
19720};
19721#ifdef __CRT_UUID_DECL
19722__CRT_UUID_DECL(ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0)
19723#endif
19724#else
19725typedef struct ISpeechRecoResultTimesVtbl {
19726    BEGIN_INTERFACE
19727
19728    /*** IUnknown methods ***/
19729    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19730        ISpeechRecoResultTimes *This,
19731        REFIID riid,
19732        void **ppvObject);
19733
19734    ULONG (STDMETHODCALLTYPE *AddRef)(
19735        ISpeechRecoResultTimes *This);
19736
19737    ULONG (STDMETHODCALLTYPE *Release)(
19738        ISpeechRecoResultTimes *This);
19739
19740    /*** IDispatch methods ***/
19741    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19742        ISpeechRecoResultTimes *This,
19743        UINT *pctinfo);
19744
19745    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19746        ISpeechRecoResultTimes *This,
19747        UINT iTInfo,
19748        LCID lcid,
19749        ITypeInfo **ppTInfo);
19750
19751    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19752        ISpeechRecoResultTimes *This,
19753        REFIID riid,
19754        LPOLESTR *rgszNames,
19755        UINT cNames,
19756        LCID lcid,
19757        DISPID *rgDispId);
19758
19759    HRESULT (STDMETHODCALLTYPE *Invoke)(
19760        ISpeechRecoResultTimes *This,
19761        DISPID dispIdMember,
19762        REFIID riid,
19763        LCID lcid,
19764        WORD wFlags,
19765        DISPPARAMS *pDispParams,
19766        VARIANT *pVarResult,
19767        EXCEPINFO *pExcepInfo,
19768        UINT *puArgErr);
19769
19770    /*** ISpeechRecoResultTimes methods ***/
19771    HRESULT (STDMETHODCALLTYPE *get_StreamTime)(
19772        ISpeechRecoResultTimes *This,
19773        VARIANT *Time);
19774
19775    HRESULT (STDMETHODCALLTYPE *get_Length)(
19776        ISpeechRecoResultTimes *This,
19777        VARIANT *Length);
19778
19779    HRESULT (STDMETHODCALLTYPE *get_TickCount)(
19780        ISpeechRecoResultTimes *This,
19781        LONG *TickCount);
19782
19783    HRESULT (STDMETHODCALLTYPE *get_OffsetFromStart)(
19784        ISpeechRecoResultTimes *This,
19785        VARIANT *OffsetFromStart);
19786
19787    END_INTERFACE
19788} ISpeechRecoResultTimesVtbl;
19789
19790interface ISpeechRecoResultTimes {
19791    CONST_VTBL ISpeechRecoResultTimesVtbl* lpVtbl;
19792};
19793
19794#ifdef COBJMACROS
19795#ifndef WIDL_C_INLINE_WRAPPERS
19796/*** IUnknown methods ***/
19797#define ISpeechRecoResultTimes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19798#define ISpeechRecoResultTimes_AddRef(This) (This)->lpVtbl->AddRef(This)
19799#define ISpeechRecoResultTimes_Release(This) (This)->lpVtbl->Release(This)
19800/*** IDispatch methods ***/
19801#define ISpeechRecoResultTimes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19802#define ISpeechRecoResultTimes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19803#define ISpeechRecoResultTimes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19804#define ISpeechRecoResultTimes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19805/*** ISpeechRecoResultTimes methods ***/
19806#define ISpeechRecoResultTimes_get_StreamTime(This,Time) (This)->lpVtbl->get_StreamTime(This,Time)
19807#define ISpeechRecoResultTimes_get_Length(This,Length) (This)->lpVtbl->get_Length(This,Length)
19808#define ISpeechRecoResultTimes_get_TickCount(This,TickCount) (This)->lpVtbl->get_TickCount(This,TickCount)
19809#define ISpeechRecoResultTimes_get_OffsetFromStart(This,OffsetFromStart) (This)->lpVtbl->get_OffsetFromStart(This,OffsetFromStart)
19810#else
19811/*** IUnknown methods ***/
19812static inline HRESULT ISpeechRecoResultTimes_QueryInterface(ISpeechRecoResultTimes* This,REFIID riid,void **ppvObject) {
19813    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19814}
19815static inline ULONG ISpeechRecoResultTimes_AddRef(ISpeechRecoResultTimes* This) {
19816    return This->lpVtbl->AddRef(This);
19817}
19818static inline ULONG ISpeechRecoResultTimes_Release(ISpeechRecoResultTimes* This) {
19819    return This->lpVtbl->Release(This);
19820}
19821/*** IDispatch methods ***/
19822static inline HRESULT ISpeechRecoResultTimes_GetTypeInfoCount(ISpeechRecoResultTimes* This,UINT *pctinfo) {
19823    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19824}
19825static inline HRESULT ISpeechRecoResultTimes_GetTypeInfo(ISpeechRecoResultTimes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19826    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19827}
19828static inline HRESULT ISpeechRecoResultTimes_GetIDsOfNames(ISpeechRecoResultTimes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19829    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19830}
19831static inline HRESULT ISpeechRecoResultTimes_Invoke(ISpeechRecoResultTimes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19832    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19833}
19834/*** ISpeechRecoResultTimes methods ***/
19835static inline HRESULT ISpeechRecoResultTimes_get_StreamTime(ISpeechRecoResultTimes* This,VARIANT *Time) {
19836    return This->lpVtbl->get_StreamTime(This,Time);
19837}
19838static inline HRESULT ISpeechRecoResultTimes_get_Length(ISpeechRecoResultTimes* This,VARIANT *Length) {
19839    return This->lpVtbl->get_Length(This,Length);
19840}
19841static inline HRESULT ISpeechRecoResultTimes_get_TickCount(ISpeechRecoResultTimes* This,LONG *TickCount) {
19842    return This->lpVtbl->get_TickCount(This,TickCount);
19843}
19844static inline HRESULT ISpeechRecoResultTimes_get_OffsetFromStart(ISpeechRecoResultTimes* This,VARIANT *OffsetFromStart) {
19845    return This->lpVtbl->get_OffsetFromStart(This,OffsetFromStart);
19846}
19847#endif
19848#endif
19849
19850#endif
19851
19852
19853#endif  /* __ISpeechRecoResultTimes_INTERFACE_DEFINED__ */
19854
19855/*****************************************************************************
19856 * ISpeechPhraseAlternate interface
19857 */
19858#ifndef __ISpeechPhraseAlternate_INTERFACE_DEFINED__
19859#define __ISpeechPhraseAlternate_INTERFACE_DEFINED__
19860
19861DEFINE_GUID(IID_ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73);
19862#if defined(__cplusplus) && !defined(CINTERFACE)
19863MIDL_INTERFACE("27864a2a-2b9f-4cb8-92d3-0d2722fd1e73")
19864ISpeechPhraseAlternate : public IDispatch
19865{
19866    virtual HRESULT STDMETHODCALLTYPE get_RecoResult(
19867        ISpeechRecoResult **RecoResult) = 0;
19868
19869    virtual HRESULT STDMETHODCALLTYPE get_StartElementInResult(
19870        LONG *StartElement) = 0;
19871
19872    virtual HRESULT STDMETHODCALLTYPE get_NumberOfElementsInResult(
19873        LONG *NumberOfElements) = 0;
19874
19875    virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
19876        ISpeechPhraseInfo **PhraseInfo) = 0;
19877
19878    virtual HRESULT STDMETHODCALLTYPE Commit(
19879        ) = 0;
19880
19881};
19882#ifdef __CRT_UUID_DECL
19883__CRT_UUID_DECL(ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73)
19884#endif
19885#else
19886typedef struct ISpeechPhraseAlternateVtbl {
19887    BEGIN_INTERFACE
19888
19889    /*** IUnknown methods ***/
19890    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19891        ISpeechPhraseAlternate *This,
19892        REFIID riid,
19893        void **ppvObject);
19894
19895    ULONG (STDMETHODCALLTYPE *AddRef)(
19896        ISpeechPhraseAlternate *This);
19897
19898    ULONG (STDMETHODCALLTYPE *Release)(
19899        ISpeechPhraseAlternate *This);
19900
19901    /*** IDispatch methods ***/
19902    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19903        ISpeechPhraseAlternate *This,
19904        UINT *pctinfo);
19905
19906    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19907        ISpeechPhraseAlternate *This,
19908        UINT iTInfo,
19909        LCID lcid,
19910        ITypeInfo **ppTInfo);
19911
19912    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19913        ISpeechPhraseAlternate *This,
19914        REFIID riid,
19915        LPOLESTR *rgszNames,
19916        UINT cNames,
19917        LCID lcid,
19918        DISPID *rgDispId);
19919
19920    HRESULT (STDMETHODCALLTYPE *Invoke)(
19921        ISpeechPhraseAlternate *This,
19922        DISPID dispIdMember,
19923        REFIID riid,
19924        LCID lcid,
19925        WORD wFlags,
19926        DISPPARAMS *pDispParams,
19927        VARIANT *pVarResult,
19928        EXCEPINFO *pExcepInfo,
19929        UINT *puArgErr);
19930
19931    /*** ISpeechPhraseAlternate methods ***/
19932    HRESULT (STDMETHODCALLTYPE *get_RecoResult)(
19933        ISpeechPhraseAlternate *This,
19934        ISpeechRecoResult **RecoResult);
19935
19936    HRESULT (STDMETHODCALLTYPE *get_StartElementInResult)(
19937        ISpeechPhraseAlternate *This,
19938        LONG *StartElement);
19939
19940    HRESULT (STDMETHODCALLTYPE *get_NumberOfElementsInResult)(
19941        ISpeechPhraseAlternate *This,
19942        LONG *NumberOfElements);
19943
19944    HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
19945        ISpeechPhraseAlternate *This,
19946        ISpeechPhraseInfo **PhraseInfo);
19947
19948    HRESULT (STDMETHODCALLTYPE *Commit)(
19949        ISpeechPhraseAlternate *This);
19950
19951    END_INTERFACE
19952} ISpeechPhraseAlternateVtbl;
19953
19954interface ISpeechPhraseAlternate {
19955    CONST_VTBL ISpeechPhraseAlternateVtbl* lpVtbl;
19956};
19957
19958#ifdef COBJMACROS
19959#ifndef WIDL_C_INLINE_WRAPPERS
19960/*** IUnknown methods ***/
19961#define ISpeechPhraseAlternate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19962#define ISpeechPhraseAlternate_AddRef(This) (This)->lpVtbl->AddRef(This)
19963#define ISpeechPhraseAlternate_Release(This) (This)->lpVtbl->Release(This)
19964/*** IDispatch methods ***/
19965#define ISpeechPhraseAlternate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19966#define ISpeechPhraseAlternate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19967#define ISpeechPhraseAlternate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19968#define ISpeechPhraseAlternate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19969/*** ISpeechPhraseAlternate methods ***/
19970#define ISpeechPhraseAlternate_get_RecoResult(This,RecoResult) (This)->lpVtbl->get_RecoResult(This,RecoResult)
19971#define ISpeechPhraseAlternate_get_StartElementInResult(This,StartElement) (This)->lpVtbl->get_StartElementInResult(This,StartElement)
19972#define ISpeechPhraseAlternate_get_NumberOfElementsInResult(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements)
19973#define ISpeechPhraseAlternate_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
19974#define ISpeechPhraseAlternate_Commit(This) (This)->lpVtbl->Commit(This)
19975#else
19976/*** IUnknown methods ***/
19977static inline HRESULT ISpeechPhraseAlternate_QueryInterface(ISpeechPhraseAlternate* This,REFIID riid,void **ppvObject) {
19978    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19979}
19980static inline ULONG ISpeechPhraseAlternate_AddRef(ISpeechPhraseAlternate* This) {
19981    return This->lpVtbl->AddRef(This);
19982}
19983static inline ULONG ISpeechPhraseAlternate_Release(ISpeechPhraseAlternate* This) {
19984    return This->lpVtbl->Release(This);
19985}
19986/*** IDispatch methods ***/
19987static inline HRESULT ISpeechPhraseAlternate_GetTypeInfoCount(ISpeechPhraseAlternate* This,UINT *pctinfo) {
19988    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19989}
19990static inline HRESULT ISpeechPhraseAlternate_GetTypeInfo(ISpeechPhraseAlternate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19991    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19992}
19993static inline HRESULT ISpeechPhraseAlternate_GetIDsOfNames(ISpeechPhraseAlternate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19994    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19995}
19996static inline HRESULT ISpeechPhraseAlternate_Invoke(ISpeechPhraseAlternate* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19997    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19998}
19999/*** ISpeechPhraseAlternate methods ***/
20000static inline HRESULT ISpeechPhraseAlternate_get_RecoResult(ISpeechPhraseAlternate* This,ISpeechRecoResult **RecoResult) {
20001    return This->lpVtbl->get_RecoResult(This,RecoResult);
20002}
20003static inline HRESULT ISpeechPhraseAlternate_get_StartElementInResult(ISpeechPhraseAlternate* This,LONG *StartElement) {
20004    return This->lpVtbl->get_StartElementInResult(This,StartElement);
20005}
20006static inline HRESULT ISpeechPhraseAlternate_get_NumberOfElementsInResult(ISpeechPhraseAlternate* This,LONG *NumberOfElements) {
20007    return This->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements);
20008}
20009static inline HRESULT ISpeechPhraseAlternate_get_PhraseInfo(ISpeechPhraseAlternate* This,ISpeechPhraseInfo **PhraseInfo) {
20010    return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
20011}
20012static inline HRESULT ISpeechPhraseAlternate_Commit(ISpeechPhraseAlternate* This) {
20013    return This->lpVtbl->Commit(This);
20014}
20015#endif
20016#endif
20017
20018#endif
20019
20020
20021#endif  /* __ISpeechPhraseAlternate_INTERFACE_DEFINED__ */
20022
20023/*****************************************************************************
20024 * ISpeechPhraseAlternates interface
20025 */
20026#ifndef __ISpeechPhraseAlternates_INTERFACE_DEFINED__
20027#define __ISpeechPhraseAlternates_INTERFACE_DEFINED__
20028
20029DEFINE_GUID(IID_ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2);
20030#if defined(__cplusplus) && !defined(CINTERFACE)
20031MIDL_INTERFACE("b238b6d5-f276-4c3d-a6c1-2974801c3cc2")
20032ISpeechPhraseAlternates : public IDispatch
20033{
20034    virtual HRESULT STDMETHODCALLTYPE get_Count(
20035        LONG *Count) = 0;
20036
20037    virtual HRESULT STDMETHODCALLTYPE Item(
20038        LONG Index,
20039        ISpeechPhraseAlternate **PhraseAlternate) = 0;
20040
20041    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
20042        IUnknown **EnumVARIANT) = 0;
20043
20044};
20045#ifdef __CRT_UUID_DECL
20046__CRT_UUID_DECL(ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2)
20047#endif
20048#else
20049typedef struct ISpeechPhraseAlternatesVtbl {
20050    BEGIN_INTERFACE
20051
20052    /*** IUnknown methods ***/
20053    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20054        ISpeechPhraseAlternates *This,
20055        REFIID riid,
20056        void **ppvObject);
20057
20058    ULONG (STDMETHODCALLTYPE *AddRef)(
20059        ISpeechPhraseAlternates *This);
20060
20061    ULONG (STDMETHODCALLTYPE *Release)(
20062        ISpeechPhraseAlternates *This);
20063
20064    /*** IDispatch methods ***/
20065    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20066        ISpeechPhraseAlternates *This,
20067        UINT *pctinfo);
20068
20069    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20070        ISpeechPhraseAlternates *This,
20071        UINT iTInfo,
20072        LCID lcid,
20073        ITypeInfo **ppTInfo);
20074
20075    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20076        ISpeechPhraseAlternates *This,
20077        REFIID riid,
20078        LPOLESTR *rgszNames,
20079        UINT cNames,
20080        LCID lcid,
20081        DISPID *rgDispId);
20082
20083    HRESULT (STDMETHODCALLTYPE *Invoke)(
20084        ISpeechPhraseAlternates *This,
20085        DISPID dispIdMember,
20086        REFIID riid,
20087        LCID lcid,
20088        WORD wFlags,
20089        DISPPARAMS *pDispParams,
20090        VARIANT *pVarResult,
20091        EXCEPINFO *pExcepInfo,
20092        UINT *puArgErr);
20093
20094    /*** ISpeechPhraseAlternates methods ***/
20095    HRESULT (STDMETHODCALLTYPE *get_Count)(
20096        ISpeechPhraseAlternates *This,
20097        LONG *Count);
20098
20099    HRESULT (STDMETHODCALLTYPE *Item)(
20100        ISpeechPhraseAlternates *This,
20101        LONG Index,
20102        ISpeechPhraseAlternate **PhraseAlternate);
20103
20104    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
20105        ISpeechPhraseAlternates *This,
20106        IUnknown **EnumVARIANT);
20107
20108    END_INTERFACE
20109} ISpeechPhraseAlternatesVtbl;
20110
20111interface ISpeechPhraseAlternates {
20112    CONST_VTBL ISpeechPhraseAlternatesVtbl* lpVtbl;
20113};
20114
20115#ifdef COBJMACROS
20116#ifndef WIDL_C_INLINE_WRAPPERS
20117/*** IUnknown methods ***/
20118#define ISpeechPhraseAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20119#define ISpeechPhraseAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
20120#define ISpeechPhraseAlternates_Release(This) (This)->lpVtbl->Release(This)
20121/*** IDispatch methods ***/
20122#define ISpeechPhraseAlternates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20123#define ISpeechPhraseAlternates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20124#define ISpeechPhraseAlternates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20125#define ISpeechPhraseAlternates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20126/*** ISpeechPhraseAlternates methods ***/
20127#define ISpeechPhraseAlternates_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
20128#define ISpeechPhraseAlternates_Item(This,Index,PhraseAlternate) (This)->lpVtbl->Item(This,Index,PhraseAlternate)
20129#define ISpeechPhraseAlternates_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
20130#else
20131/*** IUnknown methods ***/
20132static inline HRESULT ISpeechPhraseAlternates_QueryInterface(ISpeechPhraseAlternates* This,REFIID riid,void **ppvObject) {
20133    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20134}
20135static inline ULONG ISpeechPhraseAlternates_AddRef(ISpeechPhraseAlternates* This) {
20136    return This->lpVtbl->AddRef(This);
20137}
20138static inline ULONG ISpeechPhraseAlternates_Release(ISpeechPhraseAlternates* This) {
20139    return This->lpVtbl->Release(This);
20140}
20141/*** IDispatch methods ***/
20142static inline HRESULT ISpeechPhraseAlternates_GetTypeInfoCount(ISpeechPhraseAlternates* This,UINT *pctinfo) {
20143    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20144}
20145static inline HRESULT ISpeechPhraseAlternates_GetTypeInfo(ISpeechPhraseAlternates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20146    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20147}
20148static inline HRESULT ISpeechPhraseAlternates_GetIDsOfNames(ISpeechPhraseAlternates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20149    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20150}
20151static inline HRESULT ISpeechPhraseAlternates_Invoke(ISpeechPhraseAlternates* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20152    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20153}
20154/*** ISpeechPhraseAlternates methods ***/
20155static inline HRESULT ISpeechPhraseAlternates_get_Count(ISpeechPhraseAlternates* This,LONG *Count) {
20156    return This->lpVtbl->get_Count(This,Count);
20157}
20158static inline HRESULT ISpeechPhraseAlternates_Item(ISpeechPhraseAlternates* This,LONG Index,ISpeechPhraseAlternate **PhraseAlternate) {
20159    return This->lpVtbl->Item(This,Index,PhraseAlternate);
20160}
20161static inline HRESULT ISpeechPhraseAlternates_get__NewEnum(ISpeechPhraseAlternates* This,IUnknown **EnumVARIANT) {
20162    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
20163}
20164#endif
20165#endif
20166
20167#endif
20168
20169
20170#endif  /* __ISpeechPhraseAlternates_INTERFACE_DEFINED__ */
20171
20172/*****************************************************************************
20173 * ISpeechPhraseInfo interface
20174 */
20175#ifndef __ISpeechPhraseInfo_INTERFACE_DEFINED__
20176#define __ISpeechPhraseInfo_INTERFACE_DEFINED__
20177
20178DEFINE_GUID(IID_ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3);
20179#if defined(__cplusplus) && !defined(CINTERFACE)
20180MIDL_INTERFACE("961559cf-4e67-4662-8bf0-d93f1fcd61b3")
20181ISpeechPhraseInfo : public IDispatch
20182{
20183    virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
20184        LONG *LanguageId) = 0;
20185
20186    virtual HRESULT STDMETHODCALLTYPE get_GrammarId(
20187        VARIANT *GrammarId) = 0;
20188
20189    virtual HRESULT STDMETHODCALLTYPE get_StartTime(
20190        VARIANT *StartTime) = 0;
20191
20192    virtual HRESULT STDMETHODCALLTYPE get_AudioStreamPosition(
20193        VARIANT *AudioStreamPosition) = 0;
20194
20195    virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
20196        LONG *pAudioSizeBytes) = 0;
20197
20198    virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
20199        LONG *RetainedSizeBytes) = 0;
20200
20201    virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
20202        LONG *AudioSizeTime) = 0;
20203
20204    virtual HRESULT STDMETHODCALLTYPE get_Rule(
20205        ISpeechPhraseRule **Rule) = 0;
20206
20207    virtual HRESULT STDMETHODCALLTYPE get_Properties(
20208        ISpeechPhraseProperties **Properties) = 0;
20209
20210    virtual HRESULT STDMETHODCALLTYPE get_Elements(
20211        ISpeechPhraseElements **Elements) = 0;
20212
20213    virtual HRESULT STDMETHODCALLTYPE get_Replacements(
20214        ISpeechPhraseReplacements **Replacements) = 0;
20215
20216    virtual HRESULT STDMETHODCALLTYPE get_EngineId(
20217        BSTR *EngineIdGuid) = 0;
20218
20219    virtual HRESULT STDMETHODCALLTYPE get_EnginePrivateData(
20220        VARIANT *PrivateData) = 0;
20221
20222    virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
20223        VARIANT *PhraseBlock) = 0;
20224
20225    virtual HRESULT STDMETHODCALLTYPE GetText(
20226        LONG StartElement,
20227        LONG Elements,
20228        VARIANT_BOOL UseReplacements,
20229        BSTR *Text) = 0;
20230
20231    virtual HRESULT STDMETHODCALLTYPE GetDisplayAttributes(
20232        LONG StartElement,
20233        LONG Elements,
20234        VARIANT_BOOL UseReplacements,
20235        SpeechDisplayAttributes *DisplayAttributes) = 0;
20236
20237};
20238#ifdef __CRT_UUID_DECL
20239__CRT_UUID_DECL(ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3)
20240#endif
20241#else
20242typedef struct ISpeechPhraseInfoVtbl {
20243    BEGIN_INTERFACE
20244
20245    /*** IUnknown methods ***/
20246    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20247        ISpeechPhraseInfo *This,
20248        REFIID riid,
20249        void **ppvObject);
20250
20251    ULONG (STDMETHODCALLTYPE *AddRef)(
20252        ISpeechPhraseInfo *This);
20253
20254    ULONG (STDMETHODCALLTYPE *Release)(
20255        ISpeechPhraseInfo *This);
20256
20257    /*** IDispatch methods ***/
20258    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20259        ISpeechPhraseInfo *This,
20260        UINT *pctinfo);
20261
20262    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20263        ISpeechPhraseInfo *This,
20264        UINT iTInfo,
20265        LCID lcid,
20266        ITypeInfo **ppTInfo);
20267
20268    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20269        ISpeechPhraseInfo *This,
20270        REFIID riid,
20271        LPOLESTR *rgszNames,
20272        UINT cNames,
20273        LCID lcid,
20274        DISPID *rgDispId);
20275
20276    HRESULT (STDMETHODCALLTYPE *Invoke)(
20277        ISpeechPhraseInfo *This,
20278        DISPID dispIdMember,
20279        REFIID riid,
20280        LCID lcid,
20281        WORD wFlags,
20282        DISPPARAMS *pDispParams,
20283        VARIANT *pVarResult,
20284        EXCEPINFO *pExcepInfo,
20285        UINT *puArgErr);
20286
20287    /*** ISpeechPhraseInfo methods ***/
20288    HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
20289        ISpeechPhraseInfo *This,
20290        LONG *LanguageId);
20291
20292    HRESULT (STDMETHODCALLTYPE *get_GrammarId)(
20293        ISpeechPhraseInfo *This,
20294        VARIANT *GrammarId);
20295
20296    HRESULT (STDMETHODCALLTYPE *get_StartTime)(
20297        ISpeechPhraseInfo *This,
20298        VARIANT *StartTime);
20299
20300    HRESULT (STDMETHODCALLTYPE *get_AudioStreamPosition)(
20301        ISpeechPhraseInfo *This,
20302        VARIANT *AudioStreamPosition);
20303
20304    HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
20305        ISpeechPhraseInfo *This,
20306        LONG *pAudioSizeBytes);
20307
20308    HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
20309        ISpeechPhraseInfo *This,
20310        LONG *RetainedSizeBytes);
20311
20312    HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
20313        ISpeechPhraseInfo *This,
20314        LONG *AudioSizeTime);
20315
20316    HRESULT (STDMETHODCALLTYPE *get_Rule)(
20317        ISpeechPhraseInfo *This,
20318        ISpeechPhraseRule **Rule);
20319
20320    HRESULT (STDMETHODCALLTYPE *get_Properties)(
20321        ISpeechPhraseInfo *This,
20322        ISpeechPhraseProperties **Properties);
20323
20324    HRESULT (STDMETHODCALLTYPE *get_Elements)(
20325        ISpeechPhraseInfo *This,
20326        ISpeechPhraseElements **Elements);
20327
20328    HRESULT (STDMETHODCALLTYPE *get_Replacements)(
20329        ISpeechPhraseInfo *This,
20330        ISpeechPhraseReplacements **Replacements);
20331
20332    HRESULT (STDMETHODCALLTYPE *get_EngineId)(
20333        ISpeechPhraseInfo *This,
20334        BSTR *EngineIdGuid);
20335
20336    HRESULT (STDMETHODCALLTYPE *get_EnginePrivateData)(
20337        ISpeechPhraseInfo *This,
20338        VARIANT *PrivateData);
20339
20340    HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
20341        ISpeechPhraseInfo *This,
20342        VARIANT *PhraseBlock);
20343
20344    HRESULT (STDMETHODCALLTYPE *GetText)(
20345        ISpeechPhraseInfo *This,
20346        LONG StartElement,
20347        LONG Elements,
20348        VARIANT_BOOL UseReplacements,
20349        BSTR *Text);
20350
20351    HRESULT (STDMETHODCALLTYPE *GetDisplayAttributes)(
20352        ISpeechPhraseInfo *This,
20353        LONG StartElement,
20354        LONG Elements,
20355        VARIANT_BOOL UseReplacements,
20356        SpeechDisplayAttributes *DisplayAttributes);
20357
20358    END_INTERFACE
20359} ISpeechPhraseInfoVtbl;
20360
20361interface ISpeechPhraseInfo {
20362    CONST_VTBL ISpeechPhraseInfoVtbl* lpVtbl;
20363};
20364
20365#ifdef COBJMACROS
20366#ifndef WIDL_C_INLINE_WRAPPERS
20367/*** IUnknown methods ***/
20368#define ISpeechPhraseInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20369#define ISpeechPhraseInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
20370#define ISpeechPhraseInfo_Release(This) (This)->lpVtbl->Release(This)
20371/*** IDispatch methods ***/
20372#define ISpeechPhraseInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20373#define ISpeechPhraseInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20374#define ISpeechPhraseInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20375#define ISpeechPhraseInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20376/*** ISpeechPhraseInfo methods ***/
20377#define ISpeechPhraseInfo_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
20378#define ISpeechPhraseInfo_get_GrammarId(This,GrammarId) (This)->lpVtbl->get_GrammarId(This,GrammarId)
20379#define ISpeechPhraseInfo_get_StartTime(This,StartTime) (This)->lpVtbl->get_StartTime(This,StartTime)
20380#define ISpeechPhraseInfo_get_AudioStreamPosition(This,AudioStreamPosition) (This)->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition)
20381#define ISpeechPhraseInfo_get_AudioSizeBytes(This,pAudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes)
20382#define ISpeechPhraseInfo_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
20383#define ISpeechPhraseInfo_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
20384#define ISpeechPhraseInfo_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
20385#define ISpeechPhraseInfo_get_Properties(This,Properties) (This)->lpVtbl->get_Properties(This,Properties)
20386#define ISpeechPhraseInfo_get_Elements(This,Elements) (This)->lpVtbl->get_Elements(This,Elements)
20387#define ISpeechPhraseInfo_get_Replacements(This,Replacements) (This)->lpVtbl->get_Replacements(This,Replacements)
20388#define ISpeechPhraseInfo_get_EngineId(This,EngineIdGuid) (This)->lpVtbl->get_EngineId(This,EngineIdGuid)
20389#define ISpeechPhraseInfo_get_EnginePrivateData(This,PrivateData) (This)->lpVtbl->get_EnginePrivateData(This,PrivateData)
20390#define ISpeechPhraseInfo_SaveToMemory(This,PhraseBlock) (This)->lpVtbl->SaveToMemory(This,PhraseBlock)
20391#define ISpeechPhraseInfo_GetText(This,StartElement,Elements,UseReplacements,Text) (This)->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text)
20392#define ISpeechPhraseInfo_GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes) (This)->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes)
20393#else
20394/*** IUnknown methods ***/
20395static inline HRESULT ISpeechPhraseInfo_QueryInterface(ISpeechPhraseInfo* This,REFIID riid,void **ppvObject) {
20396    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20397}
20398static inline ULONG ISpeechPhraseInfo_AddRef(ISpeechPhraseInfo* This) {
20399    return This->lpVtbl->AddRef(This);
20400}
20401static inline ULONG ISpeechPhraseInfo_Release(ISpeechPhraseInfo* This) {
20402    return This->lpVtbl->Release(This);
20403}
20404/*** IDispatch methods ***/
20405static inline HRESULT ISpeechPhraseInfo_GetTypeInfoCount(ISpeechPhraseInfo* This,UINT *pctinfo) {
20406    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20407}
20408static inline HRESULT ISpeechPhraseInfo_GetTypeInfo(ISpeechPhraseInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20409    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20410}
20411static inline HRESULT ISpeechPhraseInfo_GetIDsOfNames(ISpeechPhraseInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20412    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20413}
20414static inline HRESULT ISpeechPhraseInfo_Invoke(ISpeechPhraseInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20415    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20416}
20417/*** ISpeechPhraseInfo methods ***/
20418static inline HRESULT ISpeechPhraseInfo_get_LanguageId(ISpeechPhraseInfo* This,LONG *LanguageId) {
20419    return This->lpVtbl->get_LanguageId(This,LanguageId);
20420}
20421static inline HRESULT ISpeechPhraseInfo_get_GrammarId(ISpeechPhraseInfo* This,VARIANT *GrammarId) {
20422    return This->lpVtbl->get_GrammarId(This,GrammarId);
20423}
20424static inline HRESULT ISpeechPhraseInfo_get_StartTime(ISpeechPhraseInfo* This,VARIANT *StartTime) {
20425    return This->lpVtbl->get_StartTime(This,StartTime);
20426}
20427static inline HRESULT ISpeechPhraseInfo_get_AudioStreamPosition(ISpeechPhraseInfo* This,VARIANT *AudioStreamPosition) {
20428    return This->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition);
20429}
20430static inline HRESULT ISpeechPhraseInfo_get_AudioSizeBytes(ISpeechPhraseInfo* This,LONG *pAudioSizeBytes) {
20431    return This->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes);
20432}
20433static inline HRESULT ISpeechPhraseInfo_get_RetainedSizeBytes(ISpeechPhraseInfo* This,LONG *RetainedSizeBytes) {
20434    return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
20435}
20436static inline HRESULT ISpeechPhraseInfo_get_AudioSizeTime(ISpeechPhraseInfo* This,LONG *AudioSizeTime) {
20437    return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
20438}
20439static inline HRESULT ISpeechPhraseInfo_get_Rule(ISpeechPhraseInfo* This,ISpeechPhraseRule **Rule) {
20440    return This->lpVtbl->get_Rule(This,Rule);
20441}
20442static inline HRESULT ISpeechPhraseInfo_get_Properties(ISpeechPhraseInfo* This,ISpeechPhraseProperties **Properties) {
20443    return This->lpVtbl->get_Properties(This,Properties);
20444}
20445static inline HRESULT ISpeechPhraseInfo_get_Elements(ISpeechPhraseInfo* This,ISpeechPhraseElements **Elements) {
20446    return This->lpVtbl->get_Elements(This,Elements);
20447}
20448static inline HRESULT ISpeechPhraseInfo_get_Replacements(ISpeechPhraseInfo* This,ISpeechPhraseReplacements **Replacements) {
20449    return This->lpVtbl->get_Replacements(This,Replacements);
20450}
20451static inline HRESULT ISpeechPhraseInfo_get_EngineId(ISpeechPhraseInfo* This,BSTR *EngineIdGuid) {
20452    return This->lpVtbl->get_EngineId(This,EngineIdGuid);
20453}
20454static inline HRESULT ISpeechPhraseInfo_get_EnginePrivateData(ISpeechPhraseInfo* This,VARIANT *PrivateData) {
20455    return This->lpVtbl->get_EnginePrivateData(This,PrivateData);
20456}
20457static inline HRESULT ISpeechPhraseInfo_SaveToMemory(ISpeechPhraseInfo* This,VARIANT *PhraseBlock) {
20458    return This->lpVtbl->SaveToMemory(This,PhraseBlock);
20459}
20460static inline HRESULT ISpeechPhraseInfo_GetText(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,BSTR *Text) {
20461    return This->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text);
20462}
20463static inline HRESULT ISpeechPhraseInfo_GetDisplayAttributes(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,SpeechDisplayAttributes *DisplayAttributes) {
20464    return This->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes);
20465}
20466#endif
20467#endif
20468
20469#endif
20470
20471
20472#endif  /* __ISpeechPhraseInfo_INTERFACE_DEFINED__ */
20473
20474/*****************************************************************************
20475 * ISpeechPhraseElement interface
20476 */
20477#ifndef __ISpeechPhraseElement_INTERFACE_DEFINED__
20478#define __ISpeechPhraseElement_INTERFACE_DEFINED__
20479
20480DEFINE_GUID(IID_ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4);
20481#if defined(__cplusplus) && !defined(CINTERFACE)
20482MIDL_INTERFACE("e6176f96-e373-4801-b223-3b62c068c0b4")
20483ISpeechPhraseElement : public IDispatch
20484{
20485    virtual HRESULT STDMETHODCALLTYPE get_AudioTimeOffset(
20486        LONG *AudioTimeOffset) = 0;
20487
20488    virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
20489        LONG *AudioSizeTime) = 0;
20490
20491    virtual HRESULT STDMETHODCALLTYPE get_AudioStreamOffset(
20492        LONG *AudioStreamOffset) = 0;
20493
20494    virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
20495        LONG *AudioSizeBytes) = 0;
20496
20497    virtual HRESULT STDMETHODCALLTYPE get_RetainedStreamOffset(
20498        LONG *RetainedStreamOffset) = 0;
20499
20500    virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
20501        LONG *RetainedSizeBytes) = 0;
20502
20503    virtual HRESULT STDMETHODCALLTYPE get_DisplayText(
20504        BSTR *DisplayText) = 0;
20505
20506    virtual HRESULT STDMETHODCALLTYPE get_LexicalForm(
20507        BSTR *LexicalForm) = 0;
20508
20509    virtual HRESULT STDMETHODCALLTYPE get_Pronunciation(
20510        VARIANT *Pronunciation) = 0;
20511
20512    virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
20513        SpeechDisplayAttributes *DisplayAttributes) = 0;
20514
20515    virtual HRESULT STDMETHODCALLTYPE get_RequiredConfidence(
20516        SpeechEngineConfidence *RequiredConfidence) = 0;
20517
20518    virtual HRESULT STDMETHODCALLTYPE get_ActualConfidence(
20519        SpeechEngineConfidence *ActualConfidence) = 0;
20520
20521    virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
20522        float *EngineConfidence) = 0;
20523
20524};
20525#ifdef __CRT_UUID_DECL
20526__CRT_UUID_DECL(ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4)
20527#endif
20528#else
20529typedef struct ISpeechPhraseElementVtbl {
20530    BEGIN_INTERFACE
20531
20532    /*** IUnknown methods ***/
20533    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20534        ISpeechPhraseElement *This,
20535        REFIID riid,
20536        void **ppvObject);
20537
20538    ULONG (STDMETHODCALLTYPE *AddRef)(
20539        ISpeechPhraseElement *This);
20540
20541    ULONG (STDMETHODCALLTYPE *Release)(
20542        ISpeechPhraseElement *This);
20543
20544    /*** IDispatch methods ***/
20545    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20546        ISpeechPhraseElement *This,
20547        UINT *pctinfo);
20548
20549    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20550        ISpeechPhraseElement *This,
20551        UINT iTInfo,
20552        LCID lcid,
20553        ITypeInfo **ppTInfo);
20554
20555    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20556        ISpeechPhraseElement *This,
20557        REFIID riid,
20558        LPOLESTR *rgszNames,
20559        UINT cNames,
20560        LCID lcid,
20561        DISPID *rgDispId);
20562
20563    HRESULT (STDMETHODCALLTYPE *Invoke)(
20564        ISpeechPhraseElement *This,
20565        DISPID dispIdMember,
20566        REFIID riid,
20567        LCID lcid,
20568        WORD wFlags,
20569        DISPPARAMS *pDispParams,
20570        VARIANT *pVarResult,
20571        EXCEPINFO *pExcepInfo,
20572        UINT *puArgErr);
20573
20574    /*** ISpeechPhraseElement methods ***/
20575    HRESULT (STDMETHODCALLTYPE *get_AudioTimeOffset)(
20576        ISpeechPhraseElement *This,
20577        LONG *AudioTimeOffset);
20578
20579    HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
20580        ISpeechPhraseElement *This,
20581        LONG *AudioSizeTime);
20582
20583    HRESULT (STDMETHODCALLTYPE *get_AudioStreamOffset)(
20584        ISpeechPhraseElement *This,
20585        LONG *AudioStreamOffset);
20586
20587    HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
20588        ISpeechPhraseElement *This,
20589        LONG *AudioSizeBytes);
20590
20591    HRESULT (STDMETHODCALLTYPE *get_RetainedStreamOffset)(
20592        ISpeechPhraseElement *This,
20593        LONG *RetainedStreamOffset);
20594
20595    HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
20596        ISpeechPhraseElement *This,
20597        LONG *RetainedSizeBytes);
20598
20599    HRESULT (STDMETHODCALLTYPE *get_DisplayText)(
20600        ISpeechPhraseElement *This,
20601        BSTR *DisplayText);
20602
20603    HRESULT (STDMETHODCALLTYPE *get_LexicalForm)(
20604        ISpeechPhraseElement *This,
20605        BSTR *LexicalForm);
20606
20607    HRESULT (STDMETHODCALLTYPE *get_Pronunciation)(
20608        ISpeechPhraseElement *This,
20609        VARIANT *Pronunciation);
20610
20611    HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
20612        ISpeechPhraseElement *This,
20613        SpeechDisplayAttributes *DisplayAttributes);
20614
20615    HRESULT (STDMETHODCALLTYPE *get_RequiredConfidence)(
20616        ISpeechPhraseElement *This,
20617        SpeechEngineConfidence *RequiredConfidence);
20618
20619    HRESULT (STDMETHODCALLTYPE *get_ActualConfidence)(
20620        ISpeechPhraseElement *This,
20621        SpeechEngineConfidence *ActualConfidence);
20622
20623    HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
20624        ISpeechPhraseElement *This,
20625        float *EngineConfidence);
20626
20627    END_INTERFACE
20628} ISpeechPhraseElementVtbl;
20629
20630interface ISpeechPhraseElement {
20631    CONST_VTBL ISpeechPhraseElementVtbl* lpVtbl;
20632};
20633
20634#ifdef COBJMACROS
20635#ifndef WIDL_C_INLINE_WRAPPERS
20636/*** IUnknown methods ***/
20637#define ISpeechPhraseElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20638#define ISpeechPhraseElement_AddRef(This) (This)->lpVtbl->AddRef(This)
20639#define ISpeechPhraseElement_Release(This) (This)->lpVtbl->Release(This)
20640/*** IDispatch methods ***/
20641#define ISpeechPhraseElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20642#define ISpeechPhraseElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20643#define ISpeechPhraseElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20644#define ISpeechPhraseElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20645/*** ISpeechPhraseElement methods ***/
20646#define ISpeechPhraseElement_get_AudioTimeOffset(This,AudioTimeOffset) (This)->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset)
20647#define ISpeechPhraseElement_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
20648#define ISpeechPhraseElement_get_AudioStreamOffset(This,AudioStreamOffset) (This)->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset)
20649#define ISpeechPhraseElement_get_AudioSizeBytes(This,AudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes)
20650#define ISpeechPhraseElement_get_RetainedStreamOffset(This,RetainedStreamOffset) (This)->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset)
20651#define ISpeechPhraseElement_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
20652#define ISpeechPhraseElement_get_DisplayText(This,DisplayText) (This)->lpVtbl->get_DisplayText(This,DisplayText)
20653#define ISpeechPhraseElement_get_LexicalForm(This,LexicalForm) (This)->lpVtbl->get_LexicalForm(This,LexicalForm)
20654#define ISpeechPhraseElement_get_Pronunciation(This,Pronunciation) (This)->lpVtbl->get_Pronunciation(This,Pronunciation)
20655#define ISpeechPhraseElement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
20656#define ISpeechPhraseElement_get_RequiredConfidence(This,RequiredConfidence) (This)->lpVtbl->get_RequiredConfidence(This,RequiredConfidence)
20657#define ISpeechPhraseElement_get_ActualConfidence(This,ActualConfidence) (This)->lpVtbl->get_ActualConfidence(This,ActualConfidence)
20658#define ISpeechPhraseElement_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
20659#else
20660/*** IUnknown methods ***/
20661static inline HRESULT ISpeechPhraseElement_QueryInterface(ISpeechPhraseElement* This,REFIID riid,void **ppvObject) {
20662    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20663}
20664static inline ULONG ISpeechPhraseElement_AddRef(ISpeechPhraseElement* This) {
20665    return This->lpVtbl->AddRef(This);
20666}
20667static inline ULONG ISpeechPhraseElement_Release(ISpeechPhraseElement* This) {
20668    return This->lpVtbl->Release(This);
20669}
20670/*** IDispatch methods ***/
20671static inline HRESULT ISpeechPhraseElement_GetTypeInfoCount(ISpeechPhraseElement* This,UINT *pctinfo) {
20672    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20673}
20674static inline HRESULT ISpeechPhraseElement_GetTypeInfo(ISpeechPhraseElement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20675    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20676}
20677static inline HRESULT ISpeechPhraseElement_GetIDsOfNames(ISpeechPhraseElement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20678    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20679}
20680static inline HRESULT ISpeechPhraseElement_Invoke(ISpeechPhraseElement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20681    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20682}
20683/*** ISpeechPhraseElement methods ***/
20684static inline HRESULT ISpeechPhraseElement_get_AudioTimeOffset(ISpeechPhraseElement* This,LONG *AudioTimeOffset) {
20685    return This->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset);
20686}
20687static inline HRESULT ISpeechPhraseElement_get_AudioSizeTime(ISpeechPhraseElement* This,LONG *AudioSizeTime) {
20688    return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
20689}
20690static inline HRESULT ISpeechPhraseElement_get_AudioStreamOffset(ISpeechPhraseElement* This,LONG *AudioStreamOffset) {
20691    return This->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset);
20692}
20693static inline HRESULT ISpeechPhraseElement_get_AudioSizeBytes(ISpeechPhraseElement* This,LONG *AudioSizeBytes) {
20694    return This->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes);
20695}
20696static inline HRESULT ISpeechPhraseElement_get_RetainedStreamOffset(ISpeechPhraseElement* This,LONG *RetainedStreamOffset) {
20697    return This->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset);
20698}
20699static inline HRESULT ISpeechPhraseElement_get_RetainedSizeBytes(ISpeechPhraseElement* This,LONG *RetainedSizeBytes) {
20700    return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
20701}
20702static inline HRESULT ISpeechPhraseElement_get_DisplayText(ISpeechPhraseElement* This,BSTR *DisplayText) {
20703    return This->lpVtbl->get_DisplayText(This,DisplayText);
20704}
20705static inline HRESULT ISpeechPhraseElement_get_LexicalForm(ISpeechPhraseElement* This,BSTR *LexicalForm) {
20706    return This->lpVtbl->get_LexicalForm(This,LexicalForm);
20707}
20708static inline HRESULT ISpeechPhraseElement_get_Pronunciation(ISpeechPhraseElement* This,VARIANT *Pronunciation) {
20709    return This->lpVtbl->get_Pronunciation(This,Pronunciation);
20710}
20711static inline HRESULT ISpeechPhraseElement_get_DisplayAttributes(ISpeechPhraseElement* This,SpeechDisplayAttributes *DisplayAttributes) {
20712    return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
20713}
20714static inline HRESULT ISpeechPhraseElement_get_RequiredConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *RequiredConfidence) {
20715    return This->lpVtbl->get_RequiredConfidence(This,RequiredConfidence);
20716}
20717static inline HRESULT ISpeechPhraseElement_get_ActualConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *ActualConfidence) {
20718    return This->lpVtbl->get_ActualConfidence(This,ActualConfidence);
20719}
20720static inline HRESULT ISpeechPhraseElement_get_EngineConfidence(ISpeechPhraseElement* This,float *EngineConfidence) {
20721    return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
20722}
20723#endif
20724#endif
20725
20726#endif
20727
20728
20729#endif  /* __ISpeechPhraseElement_INTERFACE_DEFINED__ */
20730
20731/*****************************************************************************
20732 * ISpeechPhraseElements interface
20733 */
20734#ifndef __ISpeechPhraseElements_INTERFACE_DEFINED__
20735#define __ISpeechPhraseElements_INTERFACE_DEFINED__
20736
20737DEFINE_GUID(IID_ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3);
20738#if defined(__cplusplus) && !defined(CINTERFACE)
20739MIDL_INTERFACE("0626b328-3478-467d-a0b3-d0853b93dda3")
20740ISpeechPhraseElements : public IDispatch
20741{
20742    virtual HRESULT STDMETHODCALLTYPE get_Count(
20743        LONG *Count) = 0;
20744
20745    virtual HRESULT STDMETHODCALLTYPE Item(
20746        LONG Index,
20747        ISpeechPhraseElement **Element) = 0;
20748
20749    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
20750        IUnknown **EnumVARIANT) = 0;
20751
20752};
20753#ifdef __CRT_UUID_DECL
20754__CRT_UUID_DECL(ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3)
20755#endif
20756#else
20757typedef struct ISpeechPhraseElementsVtbl {
20758    BEGIN_INTERFACE
20759
20760    /*** IUnknown methods ***/
20761    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20762        ISpeechPhraseElements *This,
20763        REFIID riid,
20764        void **ppvObject);
20765
20766    ULONG (STDMETHODCALLTYPE *AddRef)(
20767        ISpeechPhraseElements *This);
20768
20769    ULONG (STDMETHODCALLTYPE *Release)(
20770        ISpeechPhraseElements *This);
20771
20772    /*** IDispatch methods ***/
20773    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20774        ISpeechPhraseElements *This,
20775        UINT *pctinfo);
20776
20777    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20778        ISpeechPhraseElements *This,
20779        UINT iTInfo,
20780        LCID lcid,
20781        ITypeInfo **ppTInfo);
20782
20783    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20784        ISpeechPhraseElements *This,
20785        REFIID riid,
20786        LPOLESTR *rgszNames,
20787        UINT cNames,
20788        LCID lcid,
20789        DISPID *rgDispId);
20790
20791    HRESULT (STDMETHODCALLTYPE *Invoke)(
20792        ISpeechPhraseElements *This,
20793        DISPID dispIdMember,
20794        REFIID riid,
20795        LCID lcid,
20796        WORD wFlags,
20797        DISPPARAMS *pDispParams,
20798        VARIANT *pVarResult,
20799        EXCEPINFO *pExcepInfo,
20800        UINT *puArgErr);
20801
20802    /*** ISpeechPhraseElements methods ***/
20803    HRESULT (STDMETHODCALLTYPE *get_Count)(
20804        ISpeechPhraseElements *This,
20805        LONG *Count);
20806
20807    HRESULT (STDMETHODCALLTYPE *Item)(
20808        ISpeechPhraseElements *This,
20809        LONG Index,
20810        ISpeechPhraseElement **Element);
20811
20812    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
20813        ISpeechPhraseElements *This,
20814        IUnknown **EnumVARIANT);
20815
20816    END_INTERFACE
20817} ISpeechPhraseElementsVtbl;
20818
20819interface ISpeechPhraseElements {
20820    CONST_VTBL ISpeechPhraseElementsVtbl* lpVtbl;
20821};
20822
20823#ifdef COBJMACROS
20824#ifndef WIDL_C_INLINE_WRAPPERS
20825/*** IUnknown methods ***/
20826#define ISpeechPhraseElements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20827#define ISpeechPhraseElements_AddRef(This) (This)->lpVtbl->AddRef(This)
20828#define ISpeechPhraseElements_Release(This) (This)->lpVtbl->Release(This)
20829/*** IDispatch methods ***/
20830#define ISpeechPhraseElements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20831#define ISpeechPhraseElements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20832#define ISpeechPhraseElements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20833#define ISpeechPhraseElements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20834/*** ISpeechPhraseElements methods ***/
20835#define ISpeechPhraseElements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
20836#define ISpeechPhraseElements_Item(This,Index,Element) (This)->lpVtbl->Item(This,Index,Element)
20837#define ISpeechPhraseElements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
20838#else
20839/*** IUnknown methods ***/
20840static inline HRESULT ISpeechPhraseElements_QueryInterface(ISpeechPhraseElements* This,REFIID riid,void **ppvObject) {
20841    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20842}
20843static inline ULONG ISpeechPhraseElements_AddRef(ISpeechPhraseElements* This) {
20844    return This->lpVtbl->AddRef(This);
20845}
20846static inline ULONG ISpeechPhraseElements_Release(ISpeechPhraseElements* This) {
20847    return This->lpVtbl->Release(This);
20848}
20849/*** IDispatch methods ***/
20850static inline HRESULT ISpeechPhraseElements_GetTypeInfoCount(ISpeechPhraseElements* This,UINT *pctinfo) {
20851    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20852}
20853static inline HRESULT ISpeechPhraseElements_GetTypeInfo(ISpeechPhraseElements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20854    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20855}
20856static inline HRESULT ISpeechPhraseElements_GetIDsOfNames(ISpeechPhraseElements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20857    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20858}
20859static inline HRESULT ISpeechPhraseElements_Invoke(ISpeechPhraseElements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20860    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20861}
20862/*** ISpeechPhraseElements methods ***/
20863static inline HRESULT ISpeechPhraseElements_get_Count(ISpeechPhraseElements* This,LONG *Count) {
20864    return This->lpVtbl->get_Count(This,Count);
20865}
20866static inline HRESULT ISpeechPhraseElements_Item(ISpeechPhraseElements* This,LONG Index,ISpeechPhraseElement **Element) {
20867    return This->lpVtbl->Item(This,Index,Element);
20868}
20869static inline HRESULT ISpeechPhraseElements_get__NewEnum(ISpeechPhraseElements* This,IUnknown **EnumVARIANT) {
20870    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
20871}
20872#endif
20873#endif
20874
20875#endif
20876
20877
20878#endif  /* __ISpeechPhraseElements_INTERFACE_DEFINED__ */
20879
20880/*****************************************************************************
20881 * ISpeechPhraseReplacement interface
20882 */
20883#ifndef __ISpeechPhraseReplacement_INTERFACE_DEFINED__
20884#define __ISpeechPhraseReplacement_INTERFACE_DEFINED__
20885
20886DEFINE_GUID(IID_ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02);
20887#if defined(__cplusplus) && !defined(CINTERFACE)
20888MIDL_INTERFACE("2890a410-53a7-4fb5-94ec-06d4998e3d02")
20889ISpeechPhraseReplacement : public IDispatch
20890{
20891    virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
20892        SpeechDisplayAttributes *DisplayAttributes) = 0;
20893
20894    virtual HRESULT STDMETHODCALLTYPE get_Text(
20895        BSTR *Text) = 0;
20896
20897    virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
20898        LONG *FirstElement) = 0;
20899
20900    virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
20901        LONG *NumberOfElements) = 0;
20902
20903};
20904#ifdef __CRT_UUID_DECL
20905__CRT_UUID_DECL(ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02)
20906#endif
20907#else
20908typedef struct ISpeechPhraseReplacementVtbl {
20909    BEGIN_INTERFACE
20910
20911    /*** IUnknown methods ***/
20912    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20913        ISpeechPhraseReplacement *This,
20914        REFIID riid,
20915        void **ppvObject);
20916
20917    ULONG (STDMETHODCALLTYPE *AddRef)(
20918        ISpeechPhraseReplacement *This);
20919
20920    ULONG (STDMETHODCALLTYPE *Release)(
20921        ISpeechPhraseReplacement *This);
20922
20923    /*** IDispatch methods ***/
20924    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20925        ISpeechPhraseReplacement *This,
20926        UINT *pctinfo);
20927
20928    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20929        ISpeechPhraseReplacement *This,
20930        UINT iTInfo,
20931        LCID lcid,
20932        ITypeInfo **ppTInfo);
20933
20934    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20935        ISpeechPhraseReplacement *This,
20936        REFIID riid,
20937        LPOLESTR *rgszNames,
20938        UINT cNames,
20939        LCID lcid,
20940        DISPID *rgDispId);
20941
20942    HRESULT (STDMETHODCALLTYPE *Invoke)(
20943        ISpeechPhraseReplacement *This,
20944        DISPID dispIdMember,
20945        REFIID riid,
20946        LCID lcid,
20947        WORD wFlags,
20948        DISPPARAMS *pDispParams,
20949        VARIANT *pVarResult,
20950        EXCEPINFO *pExcepInfo,
20951        UINT *puArgErr);
20952
20953    /*** ISpeechPhraseReplacement methods ***/
20954    HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
20955        ISpeechPhraseReplacement *This,
20956        SpeechDisplayAttributes *DisplayAttributes);
20957
20958    HRESULT (STDMETHODCALLTYPE *get_Text)(
20959        ISpeechPhraseReplacement *This,
20960        BSTR *Text);
20961
20962    HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
20963        ISpeechPhraseReplacement *This,
20964        LONG *FirstElement);
20965
20966    HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
20967        ISpeechPhraseReplacement *This,
20968        LONG *NumberOfElements);
20969
20970    END_INTERFACE
20971} ISpeechPhraseReplacementVtbl;
20972
20973interface ISpeechPhraseReplacement {
20974    CONST_VTBL ISpeechPhraseReplacementVtbl* lpVtbl;
20975};
20976
20977#ifdef COBJMACROS
20978#ifndef WIDL_C_INLINE_WRAPPERS
20979/*** IUnknown methods ***/
20980#define ISpeechPhraseReplacement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20981#define ISpeechPhraseReplacement_AddRef(This) (This)->lpVtbl->AddRef(This)
20982#define ISpeechPhraseReplacement_Release(This) (This)->lpVtbl->Release(This)
20983/*** IDispatch methods ***/
20984#define ISpeechPhraseReplacement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20985#define ISpeechPhraseReplacement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20986#define ISpeechPhraseReplacement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20987#define ISpeechPhraseReplacement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20988/*** ISpeechPhraseReplacement methods ***/
20989#define ISpeechPhraseReplacement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
20990#define ISpeechPhraseReplacement_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
20991#define ISpeechPhraseReplacement_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
20992#define ISpeechPhraseReplacement_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
20993#else
20994/*** IUnknown methods ***/
20995static inline HRESULT ISpeechPhraseReplacement_QueryInterface(ISpeechPhraseReplacement* This,REFIID riid,void **ppvObject) {
20996    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20997}
20998static inline ULONG ISpeechPhraseReplacement_AddRef(ISpeechPhraseReplacement* This) {
20999    return This->lpVtbl->AddRef(This);
21000}
21001static inline ULONG ISpeechPhraseReplacement_Release(ISpeechPhraseReplacement* This) {
21002    return This->lpVtbl->Release(This);
21003}
21004/*** IDispatch methods ***/
21005static inline HRESULT ISpeechPhraseReplacement_GetTypeInfoCount(ISpeechPhraseReplacement* This,UINT *pctinfo) {
21006    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21007}
21008static inline HRESULT ISpeechPhraseReplacement_GetTypeInfo(ISpeechPhraseReplacement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21009    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21010}
21011static inline HRESULT ISpeechPhraseReplacement_GetIDsOfNames(ISpeechPhraseReplacement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21012    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21013}
21014static inline HRESULT ISpeechPhraseReplacement_Invoke(ISpeechPhraseReplacement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21015    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21016}
21017/*** ISpeechPhraseReplacement methods ***/
21018static inline HRESULT ISpeechPhraseReplacement_get_DisplayAttributes(ISpeechPhraseReplacement* This,SpeechDisplayAttributes *DisplayAttributes) {
21019    return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
21020}
21021static inline HRESULT ISpeechPhraseReplacement_get_Text(ISpeechPhraseReplacement* This,BSTR *Text) {
21022    return This->lpVtbl->get_Text(This,Text);
21023}
21024static inline HRESULT ISpeechPhraseReplacement_get_FirstElement(ISpeechPhraseReplacement* This,LONG *FirstElement) {
21025    return This->lpVtbl->get_FirstElement(This,FirstElement);
21026}
21027static inline HRESULT ISpeechPhraseReplacement_get_NumberOfElements(ISpeechPhraseReplacement* This,LONG *NumberOfElements) {
21028    return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
21029}
21030#endif
21031#endif
21032
21033#endif
21034
21035
21036#endif  /* __ISpeechPhraseReplacement_INTERFACE_DEFINED__ */
21037
21038/*****************************************************************************
21039 * ISpeechPhraseReplacements interface
21040 */
21041#ifndef __ISpeechPhraseReplacements_INTERFACE_DEFINED__
21042#define __ISpeechPhraseReplacements_INTERFACE_DEFINED__
21043
21044DEFINE_GUID(IID_ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05);
21045#if defined(__cplusplus) && !defined(CINTERFACE)
21046MIDL_INTERFACE("38bc662f-2257-4525-959e-2069d2596c05")
21047ISpeechPhraseReplacements : public IDispatch
21048{
21049    virtual HRESULT STDMETHODCALLTYPE get_Count(
21050        LONG *Count) = 0;
21051
21052    virtual HRESULT STDMETHODCALLTYPE Item(
21053        LONG Index,
21054        ISpeechPhraseReplacement **Reps) = 0;
21055
21056    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21057        IUnknown **EnumVARIANT) = 0;
21058
21059};
21060#ifdef __CRT_UUID_DECL
21061__CRT_UUID_DECL(ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05)
21062#endif
21063#else
21064typedef struct ISpeechPhraseReplacementsVtbl {
21065    BEGIN_INTERFACE
21066
21067    /*** IUnknown methods ***/
21068    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21069        ISpeechPhraseReplacements *This,
21070        REFIID riid,
21071        void **ppvObject);
21072
21073    ULONG (STDMETHODCALLTYPE *AddRef)(
21074        ISpeechPhraseReplacements *This);
21075
21076    ULONG (STDMETHODCALLTYPE *Release)(
21077        ISpeechPhraseReplacements *This);
21078
21079    /*** IDispatch methods ***/
21080    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21081        ISpeechPhraseReplacements *This,
21082        UINT *pctinfo);
21083
21084    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21085        ISpeechPhraseReplacements *This,
21086        UINT iTInfo,
21087        LCID lcid,
21088        ITypeInfo **ppTInfo);
21089
21090    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21091        ISpeechPhraseReplacements *This,
21092        REFIID riid,
21093        LPOLESTR *rgszNames,
21094        UINT cNames,
21095        LCID lcid,
21096        DISPID *rgDispId);
21097
21098    HRESULT (STDMETHODCALLTYPE *Invoke)(
21099        ISpeechPhraseReplacements *This,
21100        DISPID dispIdMember,
21101        REFIID riid,
21102        LCID lcid,
21103        WORD wFlags,
21104        DISPPARAMS *pDispParams,
21105        VARIANT *pVarResult,
21106        EXCEPINFO *pExcepInfo,
21107        UINT *puArgErr);
21108
21109    /*** ISpeechPhraseReplacements methods ***/
21110    HRESULT (STDMETHODCALLTYPE *get_Count)(
21111        ISpeechPhraseReplacements *This,
21112        LONG *Count);
21113
21114    HRESULT (STDMETHODCALLTYPE *Item)(
21115        ISpeechPhraseReplacements *This,
21116        LONG Index,
21117        ISpeechPhraseReplacement **Reps);
21118
21119    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21120        ISpeechPhraseReplacements *This,
21121        IUnknown **EnumVARIANT);
21122
21123    END_INTERFACE
21124} ISpeechPhraseReplacementsVtbl;
21125
21126interface ISpeechPhraseReplacements {
21127    CONST_VTBL ISpeechPhraseReplacementsVtbl* lpVtbl;
21128};
21129
21130#ifdef COBJMACROS
21131#ifndef WIDL_C_INLINE_WRAPPERS
21132/*** IUnknown methods ***/
21133#define ISpeechPhraseReplacements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21134#define ISpeechPhraseReplacements_AddRef(This) (This)->lpVtbl->AddRef(This)
21135#define ISpeechPhraseReplacements_Release(This) (This)->lpVtbl->Release(This)
21136/*** IDispatch methods ***/
21137#define ISpeechPhraseReplacements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21138#define ISpeechPhraseReplacements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21139#define ISpeechPhraseReplacements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21140#define ISpeechPhraseReplacements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21141/*** ISpeechPhraseReplacements methods ***/
21142#define ISpeechPhraseReplacements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21143#define ISpeechPhraseReplacements_Item(This,Index,Reps) (This)->lpVtbl->Item(This,Index,Reps)
21144#define ISpeechPhraseReplacements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21145#else
21146/*** IUnknown methods ***/
21147static inline HRESULT ISpeechPhraseReplacements_QueryInterface(ISpeechPhraseReplacements* This,REFIID riid,void **ppvObject) {
21148    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21149}
21150static inline ULONG ISpeechPhraseReplacements_AddRef(ISpeechPhraseReplacements* This) {
21151    return This->lpVtbl->AddRef(This);
21152}
21153static inline ULONG ISpeechPhraseReplacements_Release(ISpeechPhraseReplacements* This) {
21154    return This->lpVtbl->Release(This);
21155}
21156/*** IDispatch methods ***/
21157static inline HRESULT ISpeechPhraseReplacements_GetTypeInfoCount(ISpeechPhraseReplacements* This,UINT *pctinfo) {
21158    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21159}
21160static inline HRESULT ISpeechPhraseReplacements_GetTypeInfo(ISpeechPhraseReplacements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21161    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21162}
21163static inline HRESULT ISpeechPhraseReplacements_GetIDsOfNames(ISpeechPhraseReplacements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21164    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21165}
21166static inline HRESULT ISpeechPhraseReplacements_Invoke(ISpeechPhraseReplacements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21167    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21168}
21169/*** ISpeechPhraseReplacements methods ***/
21170static inline HRESULT ISpeechPhraseReplacements_get_Count(ISpeechPhraseReplacements* This,LONG *Count) {
21171    return This->lpVtbl->get_Count(This,Count);
21172}
21173static inline HRESULT ISpeechPhraseReplacements_Item(ISpeechPhraseReplacements* This,LONG Index,ISpeechPhraseReplacement **Reps) {
21174    return This->lpVtbl->Item(This,Index,Reps);
21175}
21176static inline HRESULT ISpeechPhraseReplacements_get__NewEnum(ISpeechPhraseReplacements* This,IUnknown **EnumVARIANT) {
21177    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21178}
21179#endif
21180#endif
21181
21182#endif
21183
21184
21185#endif  /* __ISpeechPhraseReplacements_INTERFACE_DEFINED__ */
21186
21187/*****************************************************************************
21188 * ISpeechPhraseProperty interface
21189 */
21190#ifndef __ISpeechPhraseProperty_INTERFACE_DEFINED__
21191#define __ISpeechPhraseProperty_INTERFACE_DEFINED__
21192
21193DEFINE_GUID(IID_ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe);
21194#if defined(__cplusplus) && !defined(CINTERFACE)
21195MIDL_INTERFACE("ce563d48-961e-4732-a2e1-378a42b430be")
21196ISpeechPhraseProperty : public IDispatch
21197{
21198    virtual HRESULT STDMETHODCALLTYPE get_Name(
21199        BSTR *Name) = 0;
21200
21201    virtual HRESULT STDMETHODCALLTYPE get_Id(
21202        LONG *Id) = 0;
21203
21204    virtual HRESULT STDMETHODCALLTYPE get_Value(
21205        VARIANT *Value) = 0;
21206
21207    virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
21208        LONG *FirstElement) = 0;
21209
21210    virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
21211        LONG *NumberOfElements) = 0;
21212
21213    virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
21214        float *Confidence) = 0;
21215
21216    virtual HRESULT STDMETHODCALLTYPE get_Confidence(
21217        SpeechEngineConfidence *Confidence) = 0;
21218
21219    virtual HRESULT STDMETHODCALLTYPE get_Parent(
21220        ISpeechPhraseProperty **ParentProperty) = 0;
21221
21222    virtual HRESULT STDMETHODCALLTYPE get_Children(
21223        ISpeechPhraseProperties **Children) = 0;
21224
21225};
21226#ifdef __CRT_UUID_DECL
21227__CRT_UUID_DECL(ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe)
21228#endif
21229#else
21230typedef struct ISpeechPhrasePropertyVtbl {
21231    BEGIN_INTERFACE
21232
21233    /*** IUnknown methods ***/
21234    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21235        ISpeechPhraseProperty *This,
21236        REFIID riid,
21237        void **ppvObject);
21238
21239    ULONG (STDMETHODCALLTYPE *AddRef)(
21240        ISpeechPhraseProperty *This);
21241
21242    ULONG (STDMETHODCALLTYPE *Release)(
21243        ISpeechPhraseProperty *This);
21244
21245    /*** IDispatch methods ***/
21246    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21247        ISpeechPhraseProperty *This,
21248        UINT *pctinfo);
21249
21250    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21251        ISpeechPhraseProperty *This,
21252        UINT iTInfo,
21253        LCID lcid,
21254        ITypeInfo **ppTInfo);
21255
21256    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21257        ISpeechPhraseProperty *This,
21258        REFIID riid,
21259        LPOLESTR *rgszNames,
21260        UINT cNames,
21261        LCID lcid,
21262        DISPID *rgDispId);
21263
21264    HRESULT (STDMETHODCALLTYPE *Invoke)(
21265        ISpeechPhraseProperty *This,
21266        DISPID dispIdMember,
21267        REFIID riid,
21268        LCID lcid,
21269        WORD wFlags,
21270        DISPPARAMS *pDispParams,
21271        VARIANT *pVarResult,
21272        EXCEPINFO *pExcepInfo,
21273        UINT *puArgErr);
21274
21275    /*** ISpeechPhraseProperty methods ***/
21276    HRESULT (STDMETHODCALLTYPE *get_Name)(
21277        ISpeechPhraseProperty *This,
21278        BSTR *Name);
21279
21280    HRESULT (STDMETHODCALLTYPE *get_Id)(
21281        ISpeechPhraseProperty *This,
21282        LONG *Id);
21283
21284    HRESULT (STDMETHODCALLTYPE *get_Value)(
21285        ISpeechPhraseProperty *This,
21286        VARIANT *Value);
21287
21288    HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
21289        ISpeechPhraseProperty *This,
21290        LONG *FirstElement);
21291
21292    HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
21293        ISpeechPhraseProperty *This,
21294        LONG *NumberOfElements);
21295
21296    HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
21297        ISpeechPhraseProperty *This,
21298        float *Confidence);
21299
21300    HRESULT (STDMETHODCALLTYPE *get_Confidence)(
21301        ISpeechPhraseProperty *This,
21302        SpeechEngineConfidence *Confidence);
21303
21304    HRESULT (STDMETHODCALLTYPE *get_Parent)(
21305        ISpeechPhraseProperty *This,
21306        ISpeechPhraseProperty **ParentProperty);
21307
21308    HRESULT (STDMETHODCALLTYPE *get_Children)(
21309        ISpeechPhraseProperty *This,
21310        ISpeechPhraseProperties **Children);
21311
21312    END_INTERFACE
21313} ISpeechPhrasePropertyVtbl;
21314
21315interface ISpeechPhraseProperty {
21316    CONST_VTBL ISpeechPhrasePropertyVtbl* lpVtbl;
21317};
21318
21319#ifdef COBJMACROS
21320#ifndef WIDL_C_INLINE_WRAPPERS
21321/*** IUnknown methods ***/
21322#define ISpeechPhraseProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21323#define ISpeechPhraseProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
21324#define ISpeechPhraseProperty_Release(This) (This)->lpVtbl->Release(This)
21325/*** IDispatch methods ***/
21326#define ISpeechPhraseProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21327#define ISpeechPhraseProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21328#define ISpeechPhraseProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21329#define ISpeechPhraseProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21330/*** ISpeechPhraseProperty methods ***/
21331#define ISpeechPhraseProperty_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
21332#define ISpeechPhraseProperty_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
21333#define ISpeechPhraseProperty_get_Value(This,Value) (This)->lpVtbl->get_Value(This,Value)
21334#define ISpeechPhraseProperty_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
21335#define ISpeechPhraseProperty_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
21336#define ISpeechPhraseProperty_get_EngineConfidence(This,Confidence) (This)->lpVtbl->get_EngineConfidence(This,Confidence)
21337#define ISpeechPhraseProperty_get_Confidence(This,Confidence) (This)->lpVtbl->get_Confidence(This,Confidence)
21338#define ISpeechPhraseProperty_get_Parent(This,ParentProperty) (This)->lpVtbl->get_Parent(This,ParentProperty)
21339#define ISpeechPhraseProperty_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
21340#else
21341/*** IUnknown methods ***/
21342static inline HRESULT ISpeechPhraseProperty_QueryInterface(ISpeechPhraseProperty* This,REFIID riid,void **ppvObject) {
21343    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21344}
21345static inline ULONG ISpeechPhraseProperty_AddRef(ISpeechPhraseProperty* This) {
21346    return This->lpVtbl->AddRef(This);
21347}
21348static inline ULONG ISpeechPhraseProperty_Release(ISpeechPhraseProperty* This) {
21349    return This->lpVtbl->Release(This);
21350}
21351/*** IDispatch methods ***/
21352static inline HRESULT ISpeechPhraseProperty_GetTypeInfoCount(ISpeechPhraseProperty* This,UINT *pctinfo) {
21353    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21354}
21355static inline HRESULT ISpeechPhraseProperty_GetTypeInfo(ISpeechPhraseProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21356    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21357}
21358static inline HRESULT ISpeechPhraseProperty_GetIDsOfNames(ISpeechPhraseProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21359    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21360}
21361static inline HRESULT ISpeechPhraseProperty_Invoke(ISpeechPhraseProperty* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21362    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21363}
21364/*** ISpeechPhraseProperty methods ***/
21365static inline HRESULT ISpeechPhraseProperty_get_Name(ISpeechPhraseProperty* This,BSTR *Name) {
21366    return This->lpVtbl->get_Name(This,Name);
21367}
21368static inline HRESULT ISpeechPhraseProperty_get_Id(ISpeechPhraseProperty* This,LONG *Id) {
21369    return This->lpVtbl->get_Id(This,Id);
21370}
21371static inline HRESULT ISpeechPhraseProperty_get_Value(ISpeechPhraseProperty* This,VARIANT *Value) {
21372    return This->lpVtbl->get_Value(This,Value);
21373}
21374static inline HRESULT ISpeechPhraseProperty_get_FirstElement(ISpeechPhraseProperty* This,LONG *FirstElement) {
21375    return This->lpVtbl->get_FirstElement(This,FirstElement);
21376}
21377static inline HRESULT ISpeechPhraseProperty_get_NumberOfElements(ISpeechPhraseProperty* This,LONG *NumberOfElements) {
21378    return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
21379}
21380static inline HRESULT ISpeechPhraseProperty_get_EngineConfidence(ISpeechPhraseProperty* This,float *Confidence) {
21381    return This->lpVtbl->get_EngineConfidence(This,Confidence);
21382}
21383static inline HRESULT ISpeechPhraseProperty_get_Confidence(ISpeechPhraseProperty* This,SpeechEngineConfidence *Confidence) {
21384    return This->lpVtbl->get_Confidence(This,Confidence);
21385}
21386static inline HRESULT ISpeechPhraseProperty_get_Parent(ISpeechPhraseProperty* This,ISpeechPhraseProperty **ParentProperty) {
21387    return This->lpVtbl->get_Parent(This,ParentProperty);
21388}
21389static inline HRESULT ISpeechPhraseProperty_get_Children(ISpeechPhraseProperty* This,ISpeechPhraseProperties **Children) {
21390    return This->lpVtbl->get_Children(This,Children);
21391}
21392#endif
21393#endif
21394
21395#endif
21396
21397
21398#endif  /* __ISpeechPhraseProperty_INTERFACE_DEFINED__ */
21399
21400/*****************************************************************************
21401 * ISpeechPhraseProperties interface
21402 */
21403#ifndef __ISpeechPhraseProperties_INTERFACE_DEFINED__
21404#define __ISpeechPhraseProperties_INTERFACE_DEFINED__
21405
21406DEFINE_GUID(IID_ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4);
21407#if defined(__cplusplus) && !defined(CINTERFACE)
21408MIDL_INTERFACE("08166b47-102e-4b23-a599-bdb98dbfd1f4")
21409ISpeechPhraseProperties : public IDispatch
21410{
21411    virtual HRESULT STDMETHODCALLTYPE get_Count(
21412        LONG *Count) = 0;
21413
21414    virtual HRESULT STDMETHODCALLTYPE Item(
21415        LONG Index,
21416        ISpeechPhraseProperty **Property) = 0;
21417
21418    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21419        IUnknown **EnumVARIANT) = 0;
21420
21421};
21422#ifdef __CRT_UUID_DECL
21423__CRT_UUID_DECL(ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4)
21424#endif
21425#else
21426typedef struct ISpeechPhrasePropertiesVtbl {
21427    BEGIN_INTERFACE
21428
21429    /*** IUnknown methods ***/
21430    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21431        ISpeechPhraseProperties *This,
21432        REFIID riid,
21433        void **ppvObject);
21434
21435    ULONG (STDMETHODCALLTYPE *AddRef)(
21436        ISpeechPhraseProperties *This);
21437
21438    ULONG (STDMETHODCALLTYPE *Release)(
21439        ISpeechPhraseProperties *This);
21440
21441    /*** IDispatch methods ***/
21442    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21443        ISpeechPhraseProperties *This,
21444        UINT *pctinfo);
21445
21446    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21447        ISpeechPhraseProperties *This,
21448        UINT iTInfo,
21449        LCID lcid,
21450        ITypeInfo **ppTInfo);
21451
21452    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21453        ISpeechPhraseProperties *This,
21454        REFIID riid,
21455        LPOLESTR *rgszNames,
21456        UINT cNames,
21457        LCID lcid,
21458        DISPID *rgDispId);
21459
21460    HRESULT (STDMETHODCALLTYPE *Invoke)(
21461        ISpeechPhraseProperties *This,
21462        DISPID dispIdMember,
21463        REFIID riid,
21464        LCID lcid,
21465        WORD wFlags,
21466        DISPPARAMS *pDispParams,
21467        VARIANT *pVarResult,
21468        EXCEPINFO *pExcepInfo,
21469        UINT *puArgErr);
21470
21471    /*** ISpeechPhraseProperties methods ***/
21472    HRESULT (STDMETHODCALLTYPE *get_Count)(
21473        ISpeechPhraseProperties *This,
21474        LONG *Count);
21475
21476    HRESULT (STDMETHODCALLTYPE *Item)(
21477        ISpeechPhraseProperties *This,
21478        LONG Index,
21479        ISpeechPhraseProperty **Property);
21480
21481    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21482        ISpeechPhraseProperties *This,
21483        IUnknown **EnumVARIANT);
21484
21485    END_INTERFACE
21486} ISpeechPhrasePropertiesVtbl;
21487
21488interface ISpeechPhraseProperties {
21489    CONST_VTBL ISpeechPhrasePropertiesVtbl* lpVtbl;
21490};
21491
21492#ifdef COBJMACROS
21493#ifndef WIDL_C_INLINE_WRAPPERS
21494/*** IUnknown methods ***/
21495#define ISpeechPhraseProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21496#define ISpeechPhraseProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
21497#define ISpeechPhraseProperties_Release(This) (This)->lpVtbl->Release(This)
21498/*** IDispatch methods ***/
21499#define ISpeechPhraseProperties_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21500#define ISpeechPhraseProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21501#define ISpeechPhraseProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21502#define ISpeechPhraseProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21503/*** ISpeechPhraseProperties methods ***/
21504#define ISpeechPhraseProperties_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21505#define ISpeechPhraseProperties_Item(This,Index,Property) (This)->lpVtbl->Item(This,Index,Property)
21506#define ISpeechPhraseProperties_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21507#else
21508/*** IUnknown methods ***/
21509static inline HRESULT ISpeechPhraseProperties_QueryInterface(ISpeechPhraseProperties* This,REFIID riid,void **ppvObject) {
21510    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21511}
21512static inline ULONG ISpeechPhraseProperties_AddRef(ISpeechPhraseProperties* This) {
21513    return This->lpVtbl->AddRef(This);
21514}
21515static inline ULONG ISpeechPhraseProperties_Release(ISpeechPhraseProperties* This) {
21516    return This->lpVtbl->Release(This);
21517}
21518/*** IDispatch methods ***/
21519static inline HRESULT ISpeechPhraseProperties_GetTypeInfoCount(ISpeechPhraseProperties* This,UINT *pctinfo) {
21520    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21521}
21522static inline HRESULT ISpeechPhraseProperties_GetTypeInfo(ISpeechPhraseProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21523    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21524}
21525static inline HRESULT ISpeechPhraseProperties_GetIDsOfNames(ISpeechPhraseProperties* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21526    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21527}
21528static inline HRESULT ISpeechPhraseProperties_Invoke(ISpeechPhraseProperties* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21529    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21530}
21531/*** ISpeechPhraseProperties methods ***/
21532static inline HRESULT ISpeechPhraseProperties_get_Count(ISpeechPhraseProperties* This,LONG *Count) {
21533    return This->lpVtbl->get_Count(This,Count);
21534}
21535static inline HRESULT ISpeechPhraseProperties_Item(ISpeechPhraseProperties* This,LONG Index,ISpeechPhraseProperty **Property) {
21536    return This->lpVtbl->Item(This,Index,Property);
21537}
21538static inline HRESULT ISpeechPhraseProperties_get__NewEnum(ISpeechPhraseProperties* This,IUnknown **EnumVARIANT) {
21539    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21540}
21541#endif
21542#endif
21543
21544#endif
21545
21546
21547#endif  /* __ISpeechPhraseProperties_INTERFACE_DEFINED__ */
21548
21549/*****************************************************************************
21550 * ISpeechPhraseRule interface
21551 */
21552#ifndef __ISpeechPhraseRule_INTERFACE_DEFINED__
21553#define __ISpeechPhraseRule_INTERFACE_DEFINED__
21554
21555DEFINE_GUID(IID_ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64);
21556#if defined(__cplusplus) && !defined(CINTERFACE)
21557MIDL_INTERFACE("a7bfe112-a4a0-48d9-b602-c313843f6964")
21558ISpeechPhraseRule : public IDispatch
21559{
21560    virtual HRESULT STDMETHODCALLTYPE get_Name(
21561        BSTR *Name) = 0;
21562
21563    virtual HRESULT STDMETHODCALLTYPE get_Id(
21564        LONG *Id) = 0;
21565
21566    virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
21567        LONG *FirstElement) = 0;
21568
21569    virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
21570        LONG *NumberOfElements) = 0;
21571
21572    virtual HRESULT STDMETHODCALLTYPE get_Parent(
21573        ISpeechPhraseRule **Parent) = 0;
21574
21575    virtual HRESULT STDMETHODCALLTYPE get_Children(
21576        ISpeechPhraseRules **Children) = 0;
21577
21578    virtual HRESULT STDMETHODCALLTYPE get_Confidence(
21579        SpeechEngineConfidence *ActualConfidence) = 0;
21580
21581    virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
21582        float *EngineConfidence) = 0;
21583
21584};
21585#ifdef __CRT_UUID_DECL
21586__CRT_UUID_DECL(ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64)
21587#endif
21588#else
21589typedef struct ISpeechPhraseRuleVtbl {
21590    BEGIN_INTERFACE
21591
21592    /*** IUnknown methods ***/
21593    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21594        ISpeechPhraseRule *This,
21595        REFIID riid,
21596        void **ppvObject);
21597
21598    ULONG (STDMETHODCALLTYPE *AddRef)(
21599        ISpeechPhraseRule *This);
21600
21601    ULONG (STDMETHODCALLTYPE *Release)(
21602        ISpeechPhraseRule *This);
21603
21604    /*** IDispatch methods ***/
21605    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21606        ISpeechPhraseRule *This,
21607        UINT *pctinfo);
21608
21609    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21610        ISpeechPhraseRule *This,
21611        UINT iTInfo,
21612        LCID lcid,
21613        ITypeInfo **ppTInfo);
21614
21615    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21616        ISpeechPhraseRule *This,
21617        REFIID riid,
21618        LPOLESTR *rgszNames,
21619        UINT cNames,
21620        LCID lcid,
21621        DISPID *rgDispId);
21622
21623    HRESULT (STDMETHODCALLTYPE *Invoke)(
21624        ISpeechPhraseRule *This,
21625        DISPID dispIdMember,
21626        REFIID riid,
21627        LCID lcid,
21628        WORD wFlags,
21629        DISPPARAMS *pDispParams,
21630        VARIANT *pVarResult,
21631        EXCEPINFO *pExcepInfo,
21632        UINT *puArgErr);
21633
21634    /*** ISpeechPhraseRule methods ***/
21635    HRESULT (STDMETHODCALLTYPE *get_Name)(
21636        ISpeechPhraseRule *This,
21637        BSTR *Name);
21638
21639    HRESULT (STDMETHODCALLTYPE *get_Id)(
21640        ISpeechPhraseRule *This,
21641        LONG *Id);
21642
21643    HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
21644        ISpeechPhraseRule *This,
21645        LONG *FirstElement);
21646
21647    HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
21648        ISpeechPhraseRule *This,
21649        LONG *NumberOfElements);
21650
21651    HRESULT (STDMETHODCALLTYPE *get_Parent)(
21652        ISpeechPhraseRule *This,
21653        ISpeechPhraseRule **Parent);
21654
21655    HRESULT (STDMETHODCALLTYPE *get_Children)(
21656        ISpeechPhraseRule *This,
21657        ISpeechPhraseRules **Children);
21658
21659    HRESULT (STDMETHODCALLTYPE *get_Confidence)(
21660        ISpeechPhraseRule *This,
21661        SpeechEngineConfidence *ActualConfidence);
21662
21663    HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
21664        ISpeechPhraseRule *This,
21665        float *EngineConfidence);
21666
21667    END_INTERFACE
21668} ISpeechPhraseRuleVtbl;
21669
21670interface ISpeechPhraseRule {
21671    CONST_VTBL ISpeechPhraseRuleVtbl* lpVtbl;
21672};
21673
21674#ifdef COBJMACROS
21675#ifndef WIDL_C_INLINE_WRAPPERS
21676/*** IUnknown methods ***/
21677#define ISpeechPhraseRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21678#define ISpeechPhraseRule_AddRef(This) (This)->lpVtbl->AddRef(This)
21679#define ISpeechPhraseRule_Release(This) (This)->lpVtbl->Release(This)
21680/*** IDispatch methods ***/
21681#define ISpeechPhraseRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21682#define ISpeechPhraseRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21683#define ISpeechPhraseRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21684#define ISpeechPhraseRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21685/*** ISpeechPhraseRule methods ***/
21686#define ISpeechPhraseRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
21687#define ISpeechPhraseRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
21688#define ISpeechPhraseRule_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
21689#define ISpeechPhraseRule_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
21690#define ISpeechPhraseRule_get_Parent(This,Parent) (This)->lpVtbl->get_Parent(This,Parent)
21691#define ISpeechPhraseRule_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
21692#define ISpeechPhraseRule_get_Confidence(This,ActualConfidence) (This)->lpVtbl->get_Confidence(This,ActualConfidence)
21693#define ISpeechPhraseRule_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
21694#else
21695/*** IUnknown methods ***/
21696static inline HRESULT ISpeechPhraseRule_QueryInterface(ISpeechPhraseRule* This,REFIID riid,void **ppvObject) {
21697    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21698}
21699static inline ULONG ISpeechPhraseRule_AddRef(ISpeechPhraseRule* This) {
21700    return This->lpVtbl->AddRef(This);
21701}
21702static inline ULONG ISpeechPhraseRule_Release(ISpeechPhraseRule* This) {
21703    return This->lpVtbl->Release(This);
21704}
21705/*** IDispatch methods ***/
21706static inline HRESULT ISpeechPhraseRule_GetTypeInfoCount(ISpeechPhraseRule* This,UINT *pctinfo) {
21707    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21708}
21709static inline HRESULT ISpeechPhraseRule_GetTypeInfo(ISpeechPhraseRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21710    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21711}
21712static inline HRESULT ISpeechPhraseRule_GetIDsOfNames(ISpeechPhraseRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21713    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21714}
21715static inline HRESULT ISpeechPhraseRule_Invoke(ISpeechPhraseRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21716    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21717}
21718/*** ISpeechPhraseRule methods ***/
21719static inline HRESULT ISpeechPhraseRule_get_Name(ISpeechPhraseRule* This,BSTR *Name) {
21720    return This->lpVtbl->get_Name(This,Name);
21721}
21722static inline HRESULT ISpeechPhraseRule_get_Id(ISpeechPhraseRule* This,LONG *Id) {
21723    return This->lpVtbl->get_Id(This,Id);
21724}
21725static inline HRESULT ISpeechPhraseRule_get_FirstElement(ISpeechPhraseRule* This,LONG *FirstElement) {
21726    return This->lpVtbl->get_FirstElement(This,FirstElement);
21727}
21728static inline HRESULT ISpeechPhraseRule_get_NumberOfElements(ISpeechPhraseRule* This,LONG *NumberOfElements) {
21729    return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
21730}
21731static inline HRESULT ISpeechPhraseRule_get_Parent(ISpeechPhraseRule* This,ISpeechPhraseRule **Parent) {
21732    return This->lpVtbl->get_Parent(This,Parent);
21733}
21734static inline HRESULT ISpeechPhraseRule_get_Children(ISpeechPhraseRule* This,ISpeechPhraseRules **Children) {
21735    return This->lpVtbl->get_Children(This,Children);
21736}
21737static inline HRESULT ISpeechPhraseRule_get_Confidence(ISpeechPhraseRule* This,SpeechEngineConfidence *ActualConfidence) {
21738    return This->lpVtbl->get_Confidence(This,ActualConfidence);
21739}
21740static inline HRESULT ISpeechPhraseRule_get_EngineConfidence(ISpeechPhraseRule* This,float *EngineConfidence) {
21741    return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
21742}
21743#endif
21744#endif
21745
21746#endif
21747
21748
21749#endif  /* __ISpeechPhraseRule_INTERFACE_DEFINED__ */
21750
21751/*****************************************************************************
21752 * ISpeechPhraseRules interface
21753 */
21754#ifndef __ISpeechPhraseRules_INTERFACE_DEFINED__
21755#define __ISpeechPhraseRules_INTERFACE_DEFINED__
21756
21757DEFINE_GUID(IID_ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07);
21758#if defined(__cplusplus) && !defined(CINTERFACE)
21759MIDL_INTERFACE("9047d593-01dd-4b72-81a3-e4a0ca69f407")
21760ISpeechPhraseRules : public IDispatch
21761{
21762    virtual HRESULT STDMETHODCALLTYPE get_Count(
21763        LONG *Count) = 0;
21764
21765    virtual HRESULT STDMETHODCALLTYPE Item(
21766        LONG Index,
21767        ISpeechPhraseRule **Rule) = 0;
21768
21769    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21770        IUnknown **EnumVARIANT) = 0;
21771
21772};
21773#ifdef __CRT_UUID_DECL
21774__CRT_UUID_DECL(ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07)
21775#endif
21776#else
21777typedef struct ISpeechPhraseRulesVtbl {
21778    BEGIN_INTERFACE
21779
21780    /*** IUnknown methods ***/
21781    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21782        ISpeechPhraseRules *This,
21783        REFIID riid,
21784        void **ppvObject);
21785
21786    ULONG (STDMETHODCALLTYPE *AddRef)(
21787        ISpeechPhraseRules *This);
21788
21789    ULONG (STDMETHODCALLTYPE *Release)(
21790        ISpeechPhraseRules *This);
21791
21792    /*** IDispatch methods ***/
21793    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21794        ISpeechPhraseRules *This,
21795        UINT *pctinfo);
21796
21797    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21798        ISpeechPhraseRules *This,
21799        UINT iTInfo,
21800        LCID lcid,
21801        ITypeInfo **ppTInfo);
21802
21803    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21804        ISpeechPhraseRules *This,
21805        REFIID riid,
21806        LPOLESTR *rgszNames,
21807        UINT cNames,
21808        LCID lcid,
21809        DISPID *rgDispId);
21810
21811    HRESULT (STDMETHODCALLTYPE *Invoke)(
21812        ISpeechPhraseRules *This,
21813        DISPID dispIdMember,
21814        REFIID riid,
21815        LCID lcid,
21816        WORD wFlags,
21817        DISPPARAMS *pDispParams,
21818        VARIANT *pVarResult,
21819        EXCEPINFO *pExcepInfo,
21820        UINT *puArgErr);
21821
21822    /*** ISpeechPhraseRules methods ***/
21823    HRESULT (STDMETHODCALLTYPE *get_Count)(
21824        ISpeechPhraseRules *This,
21825        LONG *Count);
21826
21827    HRESULT (STDMETHODCALLTYPE *Item)(
21828        ISpeechPhraseRules *This,
21829        LONG Index,
21830        ISpeechPhraseRule **Rule);
21831
21832    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21833        ISpeechPhraseRules *This,
21834        IUnknown **EnumVARIANT);
21835
21836    END_INTERFACE
21837} ISpeechPhraseRulesVtbl;
21838
21839interface ISpeechPhraseRules {
21840    CONST_VTBL ISpeechPhraseRulesVtbl* lpVtbl;
21841};
21842
21843#ifdef COBJMACROS
21844#ifndef WIDL_C_INLINE_WRAPPERS
21845/*** IUnknown methods ***/
21846#define ISpeechPhraseRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21847#define ISpeechPhraseRules_AddRef(This) (This)->lpVtbl->AddRef(This)
21848#define ISpeechPhraseRules_Release(This) (This)->lpVtbl->Release(This)
21849/*** IDispatch methods ***/
21850#define ISpeechPhraseRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21851#define ISpeechPhraseRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21852#define ISpeechPhraseRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21853#define ISpeechPhraseRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21854/*** ISpeechPhraseRules methods ***/
21855#define ISpeechPhraseRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21856#define ISpeechPhraseRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
21857#define ISpeechPhraseRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21858#else
21859/*** IUnknown methods ***/
21860static inline HRESULT ISpeechPhraseRules_QueryInterface(ISpeechPhraseRules* This,REFIID riid,void **ppvObject) {
21861    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21862}
21863static inline ULONG ISpeechPhraseRules_AddRef(ISpeechPhraseRules* This) {
21864    return This->lpVtbl->AddRef(This);
21865}
21866static inline ULONG ISpeechPhraseRules_Release(ISpeechPhraseRules* This) {
21867    return This->lpVtbl->Release(This);
21868}
21869/*** IDispatch methods ***/
21870static inline HRESULT ISpeechPhraseRules_GetTypeInfoCount(ISpeechPhraseRules* This,UINT *pctinfo) {
21871    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21872}
21873static inline HRESULT ISpeechPhraseRules_GetTypeInfo(ISpeechPhraseRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21874    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21875}
21876static inline HRESULT ISpeechPhraseRules_GetIDsOfNames(ISpeechPhraseRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21877    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21878}
21879static inline HRESULT ISpeechPhraseRules_Invoke(ISpeechPhraseRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21880    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21881}
21882/*** ISpeechPhraseRules methods ***/
21883static inline HRESULT ISpeechPhraseRules_get_Count(ISpeechPhraseRules* This,LONG *Count) {
21884    return This->lpVtbl->get_Count(This,Count);
21885}
21886static inline HRESULT ISpeechPhraseRules_Item(ISpeechPhraseRules* This,LONG Index,ISpeechPhraseRule **Rule) {
21887    return This->lpVtbl->Item(This,Index,Rule);
21888}
21889static inline HRESULT ISpeechPhraseRules_get__NewEnum(ISpeechPhraseRules* This,IUnknown **EnumVARIANT) {
21890    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21891}
21892#endif
21893#endif
21894
21895#endif
21896
21897
21898#endif  /* __ISpeechPhraseRules_INTERFACE_DEFINED__ */
21899
21900/*****************************************************************************
21901 * ISpeechLexiconWords interface
21902 */
21903#ifndef __ISpeechLexiconWords_INTERFACE_DEFINED__
21904#define __ISpeechLexiconWords_INTERFACE_DEFINED__
21905
21906DEFINE_GUID(IID_ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6);
21907#if defined(__cplusplus) && !defined(CINTERFACE)
21908MIDL_INTERFACE("8d199862-415e-47d5-ac4f-faa608b424e6")
21909ISpeechLexiconWords : public IDispatch
21910{
21911    virtual HRESULT STDMETHODCALLTYPE get_Count(
21912        LONG *Count) = 0;
21913
21914    virtual HRESULT STDMETHODCALLTYPE Item(
21915        LONG Index,
21916        ISpeechLexiconWord **Word) = 0;
21917
21918    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21919        IUnknown **EnumVARIANT) = 0;
21920
21921};
21922#ifdef __CRT_UUID_DECL
21923__CRT_UUID_DECL(ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6)
21924#endif
21925#else
21926typedef struct ISpeechLexiconWordsVtbl {
21927    BEGIN_INTERFACE
21928
21929    /*** IUnknown methods ***/
21930    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21931        ISpeechLexiconWords *This,
21932        REFIID riid,
21933        void **ppvObject);
21934
21935    ULONG (STDMETHODCALLTYPE *AddRef)(
21936        ISpeechLexiconWords *This);
21937
21938    ULONG (STDMETHODCALLTYPE *Release)(
21939        ISpeechLexiconWords *This);
21940
21941    /*** IDispatch methods ***/
21942    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21943        ISpeechLexiconWords *This,
21944        UINT *pctinfo);
21945
21946    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21947        ISpeechLexiconWords *This,
21948        UINT iTInfo,
21949        LCID lcid,
21950        ITypeInfo **ppTInfo);
21951
21952    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21953        ISpeechLexiconWords *This,
21954        REFIID riid,
21955        LPOLESTR *rgszNames,
21956        UINT cNames,
21957        LCID lcid,
21958        DISPID *rgDispId);
21959
21960    HRESULT (STDMETHODCALLTYPE *Invoke)(
21961        ISpeechLexiconWords *This,
21962        DISPID dispIdMember,
21963        REFIID riid,
21964        LCID lcid,
21965        WORD wFlags,
21966        DISPPARAMS *pDispParams,
21967        VARIANT *pVarResult,
21968        EXCEPINFO *pExcepInfo,
21969        UINT *puArgErr);
21970
21971    /*** ISpeechLexiconWords methods ***/
21972    HRESULT (STDMETHODCALLTYPE *get_Count)(
21973        ISpeechLexiconWords *This,
21974        LONG *Count);
21975
21976    HRESULT (STDMETHODCALLTYPE *Item)(
21977        ISpeechLexiconWords *This,
21978        LONG Index,
21979        ISpeechLexiconWord **Word);
21980
21981    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21982        ISpeechLexiconWords *This,
21983        IUnknown **EnumVARIANT);
21984
21985    END_INTERFACE
21986} ISpeechLexiconWordsVtbl;
21987
21988interface ISpeechLexiconWords {
21989    CONST_VTBL ISpeechLexiconWordsVtbl* lpVtbl;
21990};
21991
21992#ifdef COBJMACROS
21993#ifndef WIDL_C_INLINE_WRAPPERS
21994/*** IUnknown methods ***/
21995#define ISpeechLexiconWords_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21996#define ISpeechLexiconWords_AddRef(This) (This)->lpVtbl->AddRef(This)
21997#define ISpeechLexiconWords_Release(This) (This)->lpVtbl->Release(This)
21998/*** IDispatch methods ***/
21999#define ISpeechLexiconWords_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22000#define ISpeechLexiconWords_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22001#define ISpeechLexiconWords_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22002#define ISpeechLexiconWords_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22003/*** ISpeechLexiconWords methods ***/
22004#define ISpeechLexiconWords_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
22005#define ISpeechLexiconWords_Item(This,Index,Word) (This)->lpVtbl->Item(This,Index,Word)
22006#define ISpeechLexiconWords_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
22007#else
22008/*** IUnknown methods ***/
22009static inline HRESULT ISpeechLexiconWords_QueryInterface(ISpeechLexiconWords* This,REFIID riid,void **ppvObject) {
22010    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22011}
22012static inline ULONG ISpeechLexiconWords_AddRef(ISpeechLexiconWords* This) {
22013    return This->lpVtbl->AddRef(This);
22014}
22015static inline ULONG ISpeechLexiconWords_Release(ISpeechLexiconWords* This) {
22016    return This->lpVtbl->Release(This);
22017}
22018/*** IDispatch methods ***/
22019static inline HRESULT ISpeechLexiconWords_GetTypeInfoCount(ISpeechLexiconWords* This,UINT *pctinfo) {
22020    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22021}
22022static inline HRESULT ISpeechLexiconWords_GetTypeInfo(ISpeechLexiconWords* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22023    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22024}
22025static inline HRESULT ISpeechLexiconWords_GetIDsOfNames(ISpeechLexiconWords* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22026    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22027}
22028static inline HRESULT ISpeechLexiconWords_Invoke(ISpeechLexiconWords* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22029    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22030}
22031/*** ISpeechLexiconWords methods ***/
22032static inline HRESULT ISpeechLexiconWords_get_Count(ISpeechLexiconWords* This,LONG *Count) {
22033    return This->lpVtbl->get_Count(This,Count);
22034}
22035static inline HRESULT ISpeechLexiconWords_Item(ISpeechLexiconWords* This,LONG Index,ISpeechLexiconWord **Word) {
22036    return This->lpVtbl->Item(This,Index,Word);
22037}
22038static inline HRESULT ISpeechLexiconWords_get__NewEnum(ISpeechLexiconWords* This,IUnknown **EnumVARIANT) {
22039    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
22040}
22041#endif
22042#endif
22043
22044#endif
22045
22046
22047#endif  /* __ISpeechLexiconWords_INTERFACE_DEFINED__ */
22048
22049/*****************************************************************************
22050 * ISpeechLexicon interface
22051 */
22052#ifndef __ISpeechLexicon_INTERFACE_DEFINED__
22053#define __ISpeechLexicon_INTERFACE_DEFINED__
22054
22055DEFINE_GUID(IID_ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25);
22056#if defined(__cplusplus) && !defined(CINTERFACE)
22057MIDL_INTERFACE("3da7627a-c7ae-4b23-8708-638c50362c25")
22058ISpeechLexicon : public IDispatch
22059{
22060    virtual HRESULT STDMETHODCALLTYPE get_GenerationId(
22061        LONG *GenerationId) = 0;
22062
22063    virtual HRESULT STDMETHODCALLTYPE GetWords(
22064        SpeechLexiconType Flags,
22065        LONG *GenerationID,
22066        ISpeechLexiconWords **Words) = 0;
22067
22068    virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
22069        BSTR bstrWord,
22070        SpeechLanguageId LangId,
22071        SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
22072        BSTR bstrPronunciation = L"") = 0;
22073
22074    virtual HRESULT STDMETHODCALLTYPE AddPronunciationByPhoneIds(
22075        BSTR bstrWord,
22076        SpeechLanguageId LangId,
22077        SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
22078        VARIANT *PhoneIds = 0) = 0;
22079
22080    virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
22081        BSTR bstrWord,
22082        SpeechLanguageId LangId,
22083        SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
22084        BSTR bstrPronunciation = L"") = 0;
22085
22086    virtual HRESULT STDMETHODCALLTYPE RemovePronunciationByPhoneIds(
22087        BSTR bstrWord,
22088        SpeechLanguageId LangId,
22089        SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
22090        VARIANT *PhoneIds = 0) = 0;
22091
22092    virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
22093        BSTR bstrWord,
22094        SpeechLanguageId LangId,
22095        SpeechLexiconType TypeFlags,
22096        ISpeechLexiconPronunciations **ppPronunciations) = 0;
22097
22098    virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
22099        LONG *GenerationID,
22100        ISpeechLexiconWords **ppWords) = 0;
22101
22102};
22103#ifdef __CRT_UUID_DECL
22104__CRT_UUID_DECL(ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25)
22105#endif
22106#else
22107typedef struct ISpeechLexiconVtbl {
22108    BEGIN_INTERFACE
22109
22110    /*** IUnknown methods ***/
22111    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22112        ISpeechLexicon *This,
22113        REFIID riid,
22114        void **ppvObject);
22115
22116    ULONG (STDMETHODCALLTYPE *AddRef)(
22117        ISpeechLexicon *This);
22118
22119    ULONG (STDMETHODCALLTYPE *Release)(
22120        ISpeechLexicon *This);
22121
22122    /*** IDispatch methods ***/
22123    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22124        ISpeechLexicon *This,
22125        UINT *pctinfo);
22126
22127    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22128        ISpeechLexicon *This,
22129        UINT iTInfo,
22130        LCID lcid,
22131        ITypeInfo **ppTInfo);
22132
22133    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22134        ISpeechLexicon *This,
22135        REFIID riid,
22136        LPOLESTR *rgszNames,
22137        UINT cNames,
22138        LCID lcid,
22139        DISPID *rgDispId);
22140
22141    HRESULT (STDMETHODCALLTYPE *Invoke)(
22142        ISpeechLexicon *This,
22143        DISPID dispIdMember,
22144        REFIID riid,
22145        LCID lcid,
22146        WORD wFlags,
22147        DISPPARAMS *pDispParams,
22148        VARIANT *pVarResult,
22149        EXCEPINFO *pExcepInfo,
22150        UINT *puArgErr);
22151
22152    /*** ISpeechLexicon methods ***/
22153    HRESULT (STDMETHODCALLTYPE *get_GenerationId)(
22154        ISpeechLexicon *This,
22155        LONG *GenerationId);
22156
22157    HRESULT (STDMETHODCALLTYPE *GetWords)(
22158        ISpeechLexicon *This,
22159        SpeechLexiconType Flags,
22160        LONG *GenerationID,
22161        ISpeechLexiconWords **Words);
22162
22163    HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
22164        ISpeechLexicon *This,
22165        BSTR bstrWord,
22166        SpeechLanguageId LangId,
22167        SpeechPartOfSpeech PartOfSpeech,
22168        BSTR bstrPronunciation);
22169
22170    HRESULT (STDMETHODCALLTYPE *AddPronunciationByPhoneIds)(
22171        ISpeechLexicon *This,
22172        BSTR bstrWord,
22173        SpeechLanguageId LangId,
22174        SpeechPartOfSpeech PartOfSpeech,
22175        VARIANT *PhoneIds);
22176
22177    HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
22178        ISpeechLexicon *This,
22179        BSTR bstrWord,
22180        SpeechLanguageId LangId,
22181        SpeechPartOfSpeech PartOfSpeech,
22182        BSTR bstrPronunciation);
22183
22184    HRESULT (STDMETHODCALLTYPE *RemovePronunciationByPhoneIds)(
22185        ISpeechLexicon *This,
22186        BSTR bstrWord,
22187        SpeechLanguageId LangId,
22188        SpeechPartOfSpeech PartOfSpeech,
22189        VARIANT *PhoneIds);
22190
22191    HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
22192        ISpeechLexicon *This,
22193        BSTR bstrWord,
22194        SpeechLanguageId LangId,
22195        SpeechLexiconType TypeFlags,
22196        ISpeechLexiconPronunciations **ppPronunciations);
22197
22198    HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
22199        ISpeechLexicon *This,
22200        LONG *GenerationID,
22201        ISpeechLexiconWords **ppWords);
22202
22203    END_INTERFACE
22204} ISpeechLexiconVtbl;
22205
22206interface ISpeechLexicon {
22207    CONST_VTBL ISpeechLexiconVtbl* lpVtbl;
22208};
22209
22210#ifdef COBJMACROS
22211#ifndef WIDL_C_INLINE_WRAPPERS
22212/*** IUnknown methods ***/
22213#define ISpeechLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22214#define ISpeechLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
22215#define ISpeechLexicon_Release(This) (This)->lpVtbl->Release(This)
22216/*** IDispatch methods ***/
22217#define ISpeechLexicon_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22218#define ISpeechLexicon_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22219#define ISpeechLexicon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22220#define ISpeechLexicon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22221/*** ISpeechLexicon methods ***/
22222#define ISpeechLexicon_get_GenerationId(This,GenerationId) (This)->lpVtbl->get_GenerationId(This,GenerationId)
22223#define ISpeechLexicon_GetWords(This,Flags,GenerationID,Words) (This)->lpVtbl->GetWords(This,Flags,GenerationID,Words)
22224#define ISpeechLexicon_AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
22225#define ISpeechLexicon_AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
22226#define ISpeechLexicon_RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
22227#define ISpeechLexicon_RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
22228#define ISpeechLexicon_GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations) (This)->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations)
22229#define ISpeechLexicon_GetGenerationChange(This,GenerationID,ppWords) (This)->lpVtbl->GetGenerationChange(This,GenerationID,ppWords)
22230#else
22231/*** IUnknown methods ***/
22232static inline HRESULT ISpeechLexicon_QueryInterface(ISpeechLexicon* This,REFIID riid,void **ppvObject) {
22233    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22234}
22235static inline ULONG ISpeechLexicon_AddRef(ISpeechLexicon* This) {
22236    return This->lpVtbl->AddRef(This);
22237}
22238static inline ULONG ISpeechLexicon_Release(ISpeechLexicon* This) {
22239    return This->lpVtbl->Release(This);
22240}
22241/*** IDispatch methods ***/
22242static inline HRESULT ISpeechLexicon_GetTypeInfoCount(ISpeechLexicon* This,UINT *pctinfo) {
22243    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22244}
22245static inline HRESULT ISpeechLexicon_GetTypeInfo(ISpeechLexicon* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22246    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22247}
22248static inline HRESULT ISpeechLexicon_GetIDsOfNames(ISpeechLexicon* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22249    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22250}
22251static inline HRESULT ISpeechLexicon_Invoke(ISpeechLexicon* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22252    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22253}
22254/*** ISpeechLexicon methods ***/
22255static inline HRESULT ISpeechLexicon_get_GenerationId(ISpeechLexicon* This,LONG *GenerationId) {
22256    return This->lpVtbl->get_GenerationId(This,GenerationId);
22257}
22258static inline HRESULT ISpeechLexicon_GetWords(ISpeechLexicon* This,SpeechLexiconType Flags,LONG *GenerationID,ISpeechLexiconWords **Words) {
22259    return This->lpVtbl->GetWords(This,Flags,GenerationID,Words);
22260}
22261static inline HRESULT ISpeechLexicon_AddPronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
22262    return This->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
22263}
22264static inline HRESULT ISpeechLexicon_AddPronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
22265    return This->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
22266}
22267static inline HRESULT ISpeechLexicon_RemovePronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
22268    return This->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
22269}
22270static inline HRESULT ISpeechLexicon_RemovePronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
22271    return This->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
22272}
22273static inline HRESULT ISpeechLexicon_GetPronunciations(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechLexiconType TypeFlags,ISpeechLexiconPronunciations **ppPronunciations) {
22274    return This->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations);
22275}
22276static inline HRESULT ISpeechLexicon_GetGenerationChange(ISpeechLexicon* This,LONG *GenerationID,ISpeechLexiconWords **ppWords) {
22277    return This->lpVtbl->GetGenerationChange(This,GenerationID,ppWords);
22278}
22279#endif
22280#endif
22281
22282#endif
22283
22284
22285#endif  /* __ISpeechLexicon_INTERFACE_DEFINED__ */
22286
22287/*****************************************************************************
22288 * ISpeechLexiconWord interface
22289 */
22290#ifndef __ISpeechLexiconWord_INTERFACE_DEFINED__
22291#define __ISpeechLexiconWord_INTERFACE_DEFINED__
22292
22293DEFINE_GUID(IID_ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff);
22294#if defined(__cplusplus) && !defined(CINTERFACE)
22295MIDL_INTERFACE("4e5b933c-c9be-48ed-8842-1ee51bb1d4ff")
22296ISpeechLexiconWord : public IDispatch
22297{
22298    virtual HRESULT STDMETHODCALLTYPE get_LangId(
22299        SpeechLanguageId *LangId) = 0;
22300
22301    virtual HRESULT STDMETHODCALLTYPE get_Type(
22302        SpeechWordType *WordType) = 0;
22303
22304    virtual HRESULT STDMETHODCALLTYPE get_Word(
22305        BSTR *Word) = 0;
22306
22307    virtual HRESULT STDMETHODCALLTYPE get_Pronunciations(
22308        ISpeechLexiconPronunciations **Pronunciations) = 0;
22309
22310};
22311#ifdef __CRT_UUID_DECL
22312__CRT_UUID_DECL(ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff)
22313#endif
22314#else
22315typedef struct ISpeechLexiconWordVtbl {
22316    BEGIN_INTERFACE
22317
22318    /*** IUnknown methods ***/
22319    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22320        ISpeechLexiconWord *This,
22321        REFIID riid,
22322        void **ppvObject);
22323
22324    ULONG (STDMETHODCALLTYPE *AddRef)(
22325        ISpeechLexiconWord *This);
22326
22327    ULONG (STDMETHODCALLTYPE *Release)(
22328        ISpeechLexiconWord *This);
22329
22330    /*** IDispatch methods ***/
22331    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22332        ISpeechLexiconWord *This,
22333        UINT *pctinfo);
22334
22335    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22336        ISpeechLexiconWord *This,
22337        UINT iTInfo,
22338        LCID lcid,
22339        ITypeInfo **ppTInfo);
22340
22341    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22342        ISpeechLexiconWord *This,
22343        REFIID riid,
22344        LPOLESTR *rgszNames,
22345        UINT cNames,
22346        LCID lcid,
22347        DISPID *rgDispId);
22348
22349    HRESULT (STDMETHODCALLTYPE *Invoke)(
22350        ISpeechLexiconWord *This,
22351        DISPID dispIdMember,
22352        REFIID riid,
22353        LCID lcid,
22354        WORD wFlags,
22355        DISPPARAMS *pDispParams,
22356        VARIANT *pVarResult,
22357        EXCEPINFO *pExcepInfo,
22358        UINT *puArgErr);
22359
22360    /*** ISpeechLexiconWord methods ***/
22361    HRESULT (STDMETHODCALLTYPE *get_LangId)(
22362        ISpeechLexiconWord *This,
22363        SpeechLanguageId *LangId);
22364
22365    HRESULT (STDMETHODCALLTYPE *get_Type)(
22366        ISpeechLexiconWord *This,
22367        SpeechWordType *WordType);
22368
22369    HRESULT (STDMETHODCALLTYPE *get_Word)(
22370        ISpeechLexiconWord *This,
22371        BSTR *Word);
22372
22373    HRESULT (STDMETHODCALLTYPE *get_Pronunciations)(
22374        ISpeechLexiconWord *This,
22375        ISpeechLexiconPronunciations **Pronunciations);
22376
22377    END_INTERFACE
22378} ISpeechLexiconWordVtbl;
22379
22380interface ISpeechLexiconWord {
22381    CONST_VTBL ISpeechLexiconWordVtbl* lpVtbl;
22382};
22383
22384#ifdef COBJMACROS
22385#ifndef WIDL_C_INLINE_WRAPPERS
22386/*** IUnknown methods ***/
22387#define ISpeechLexiconWord_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22388#define ISpeechLexiconWord_AddRef(This) (This)->lpVtbl->AddRef(This)
22389#define ISpeechLexiconWord_Release(This) (This)->lpVtbl->Release(This)
22390/*** IDispatch methods ***/
22391#define ISpeechLexiconWord_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22392#define ISpeechLexiconWord_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22393#define ISpeechLexiconWord_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22394#define ISpeechLexiconWord_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22395/*** ISpeechLexiconWord methods ***/
22396#define ISpeechLexiconWord_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
22397#define ISpeechLexiconWord_get_Type(This,WordType) (This)->lpVtbl->get_Type(This,WordType)
22398#define ISpeechLexiconWord_get_Word(This,Word) (This)->lpVtbl->get_Word(This,Word)
22399#define ISpeechLexiconWord_get_Pronunciations(This,Pronunciations) (This)->lpVtbl->get_Pronunciations(This,Pronunciations)
22400#else
22401/*** IUnknown methods ***/
22402static inline HRESULT ISpeechLexiconWord_QueryInterface(ISpeechLexiconWord* This,REFIID riid,void **ppvObject) {
22403    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22404}
22405static inline ULONG ISpeechLexiconWord_AddRef(ISpeechLexiconWord* This) {
22406    return This->lpVtbl->AddRef(This);
22407}
22408static inline ULONG ISpeechLexiconWord_Release(ISpeechLexiconWord* This) {
22409    return This->lpVtbl->Release(This);
22410}
22411/*** IDispatch methods ***/
22412static inline HRESULT ISpeechLexiconWord_GetTypeInfoCount(ISpeechLexiconWord* This,UINT *pctinfo) {
22413    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22414}
22415static inline HRESULT ISpeechLexiconWord_GetTypeInfo(ISpeechLexiconWord* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22416    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22417}
22418static inline HRESULT ISpeechLexiconWord_GetIDsOfNames(ISpeechLexiconWord* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22419    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22420}
22421static inline HRESULT ISpeechLexiconWord_Invoke(ISpeechLexiconWord* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22422    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22423}
22424/*** ISpeechLexiconWord methods ***/
22425static inline HRESULT ISpeechLexiconWord_get_LangId(ISpeechLexiconWord* This,SpeechLanguageId *LangId) {
22426    return This->lpVtbl->get_LangId(This,LangId);
22427}
22428static inline HRESULT ISpeechLexiconWord_get_Type(ISpeechLexiconWord* This,SpeechWordType *WordType) {
22429    return This->lpVtbl->get_Type(This,WordType);
22430}
22431static inline HRESULT ISpeechLexiconWord_get_Word(ISpeechLexiconWord* This,BSTR *Word) {
22432    return This->lpVtbl->get_Word(This,Word);
22433}
22434static inline HRESULT ISpeechLexiconWord_get_Pronunciations(ISpeechLexiconWord* This,ISpeechLexiconPronunciations **Pronunciations) {
22435    return This->lpVtbl->get_Pronunciations(This,Pronunciations);
22436}
22437#endif
22438#endif
22439
22440#endif
22441
22442
22443#endif  /* __ISpeechLexiconWord_INTERFACE_DEFINED__ */
22444
22445/*****************************************************************************
22446 * ISpeechLexiconPronunciations interface
22447 */
22448#ifndef __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
22449#define __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
22450
22451DEFINE_GUID(IID_ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3);
22452#if defined(__cplusplus) && !defined(CINTERFACE)
22453MIDL_INTERFACE("72829128-5682-4704-a0d4-3e2bb6f2ead3")
22454ISpeechLexiconPronunciations : public IDispatch
22455{
22456    virtual HRESULT STDMETHODCALLTYPE get_Count(
22457        LONG *Count) = 0;
22458
22459    virtual HRESULT STDMETHODCALLTYPE Item(
22460        LONG Index,
22461        ISpeechLexiconPronunciation **Pronunciation) = 0;
22462
22463    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
22464        IUnknown **EnumVARIANT) = 0;
22465
22466};
22467#ifdef __CRT_UUID_DECL
22468__CRT_UUID_DECL(ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3)
22469#endif
22470#else
22471typedef struct ISpeechLexiconPronunciationsVtbl {
22472    BEGIN_INTERFACE
22473
22474    /*** IUnknown methods ***/
22475    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22476        ISpeechLexiconPronunciations *This,
22477        REFIID riid,
22478        void **ppvObject);
22479
22480    ULONG (STDMETHODCALLTYPE *AddRef)(
22481        ISpeechLexiconPronunciations *This);
22482
22483    ULONG (STDMETHODCALLTYPE *Release)(
22484        ISpeechLexiconPronunciations *This);
22485
22486    /*** IDispatch methods ***/
22487    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22488        ISpeechLexiconPronunciations *This,
22489        UINT *pctinfo);
22490
22491    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22492        ISpeechLexiconPronunciations *This,
22493        UINT iTInfo,
22494        LCID lcid,
22495        ITypeInfo **ppTInfo);
22496
22497    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22498        ISpeechLexiconPronunciations *This,
22499        REFIID riid,
22500        LPOLESTR *rgszNames,
22501        UINT cNames,
22502        LCID lcid,
22503        DISPID *rgDispId);
22504
22505    HRESULT (STDMETHODCALLTYPE *Invoke)(
22506        ISpeechLexiconPronunciations *This,
22507        DISPID dispIdMember,
22508        REFIID riid,
22509        LCID lcid,
22510        WORD wFlags,
22511        DISPPARAMS *pDispParams,
22512        VARIANT *pVarResult,
22513        EXCEPINFO *pExcepInfo,
22514        UINT *puArgErr);
22515
22516    /*** ISpeechLexiconPronunciations methods ***/
22517    HRESULT (STDMETHODCALLTYPE *get_Count)(
22518        ISpeechLexiconPronunciations *This,
22519        LONG *Count);
22520
22521    HRESULT (STDMETHODCALLTYPE *Item)(
22522        ISpeechLexiconPronunciations *This,
22523        LONG Index,
22524        ISpeechLexiconPronunciation **Pronunciation);
22525
22526    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
22527        ISpeechLexiconPronunciations *This,
22528        IUnknown **EnumVARIANT);
22529
22530    END_INTERFACE
22531} ISpeechLexiconPronunciationsVtbl;
22532
22533interface ISpeechLexiconPronunciations {
22534    CONST_VTBL ISpeechLexiconPronunciationsVtbl* lpVtbl;
22535};
22536
22537#ifdef COBJMACROS
22538#ifndef WIDL_C_INLINE_WRAPPERS
22539/*** IUnknown methods ***/
22540#define ISpeechLexiconPronunciations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22541#define ISpeechLexiconPronunciations_AddRef(This) (This)->lpVtbl->AddRef(This)
22542#define ISpeechLexiconPronunciations_Release(This) (This)->lpVtbl->Release(This)
22543/*** IDispatch methods ***/
22544#define ISpeechLexiconPronunciations_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22545#define ISpeechLexiconPronunciations_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22546#define ISpeechLexiconPronunciations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22547#define ISpeechLexiconPronunciations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22548/*** ISpeechLexiconPronunciations methods ***/
22549#define ISpeechLexiconPronunciations_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
22550#define ISpeechLexiconPronunciations_Item(This,Index,Pronunciation) (This)->lpVtbl->Item(This,Index,Pronunciation)
22551#define ISpeechLexiconPronunciations_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
22552#else
22553/*** IUnknown methods ***/
22554static inline HRESULT ISpeechLexiconPronunciations_QueryInterface(ISpeechLexiconPronunciations* This,REFIID riid,void **ppvObject) {
22555    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22556}
22557static inline ULONG ISpeechLexiconPronunciations_AddRef(ISpeechLexiconPronunciations* This) {
22558    return This->lpVtbl->AddRef(This);
22559}
22560static inline ULONG ISpeechLexiconPronunciations_Release(ISpeechLexiconPronunciations* This) {
22561    return This->lpVtbl->Release(This);
22562}
22563/*** IDispatch methods ***/
22564static inline HRESULT ISpeechLexiconPronunciations_GetTypeInfoCount(ISpeechLexiconPronunciations* This,UINT *pctinfo) {
22565    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22566}
22567static inline HRESULT ISpeechLexiconPronunciations_GetTypeInfo(ISpeechLexiconPronunciations* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22568    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22569}
22570static inline HRESULT ISpeechLexiconPronunciations_GetIDsOfNames(ISpeechLexiconPronunciations* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22571    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22572}
22573static inline HRESULT ISpeechLexiconPronunciations_Invoke(ISpeechLexiconPronunciations* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22574    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22575}
22576/*** ISpeechLexiconPronunciations methods ***/
22577static inline HRESULT ISpeechLexiconPronunciations_get_Count(ISpeechLexiconPronunciations* This,LONG *Count) {
22578    return This->lpVtbl->get_Count(This,Count);
22579}
22580static inline HRESULT ISpeechLexiconPronunciations_Item(ISpeechLexiconPronunciations* This,LONG Index,ISpeechLexiconPronunciation **Pronunciation) {
22581    return This->lpVtbl->Item(This,Index,Pronunciation);
22582}
22583static inline HRESULT ISpeechLexiconPronunciations_get__NewEnum(ISpeechLexiconPronunciations* This,IUnknown **EnumVARIANT) {
22584    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
22585}
22586#endif
22587#endif
22588
22589#endif
22590
22591
22592#endif  /* __ISpeechLexiconPronunciations_INTERFACE_DEFINED__ */
22593
22594/*****************************************************************************
22595 * ISpeechLexiconPronunciation interface
22596 */
22597#ifndef __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
22598#define __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
22599
22600DEFINE_GUID(IID_ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f);
22601#if defined(__cplusplus) && !defined(CINTERFACE)
22602MIDL_INTERFACE("95252c5d-9e43-4f4a-9899-48ee73352f9f")
22603ISpeechLexiconPronunciation : public IDispatch
22604{
22605    virtual HRESULT STDMETHODCALLTYPE get_Type(
22606        SpeechLexiconType *LexiconType) = 0;
22607
22608    virtual HRESULT STDMETHODCALLTYPE get_LangId(
22609        SpeechLanguageId *LangId) = 0;
22610
22611    virtual HRESULT STDMETHODCALLTYPE get_PartOfSpeech(
22612        SpeechPartOfSpeech *PartOfSpeech) = 0;
22613
22614    virtual HRESULT STDMETHODCALLTYPE get_PhoneIds(
22615        VARIANT *PhoneIds) = 0;
22616
22617    virtual HRESULT STDMETHODCALLTYPE get_Symbolic(
22618        BSTR *Symbolic) = 0;
22619
22620};
22621#ifdef __CRT_UUID_DECL
22622__CRT_UUID_DECL(ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f)
22623#endif
22624#else
22625typedef struct ISpeechLexiconPronunciationVtbl {
22626    BEGIN_INTERFACE
22627
22628    /*** IUnknown methods ***/
22629    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22630        ISpeechLexiconPronunciation *This,
22631        REFIID riid,
22632        void **ppvObject);
22633
22634    ULONG (STDMETHODCALLTYPE *AddRef)(
22635        ISpeechLexiconPronunciation *This);
22636
22637    ULONG (STDMETHODCALLTYPE *Release)(
22638        ISpeechLexiconPronunciation *This);
22639
22640    /*** IDispatch methods ***/
22641    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22642        ISpeechLexiconPronunciation *This,
22643        UINT *pctinfo);
22644
22645    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22646        ISpeechLexiconPronunciation *This,
22647        UINT iTInfo,
22648        LCID lcid,
22649        ITypeInfo **ppTInfo);
22650
22651    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22652        ISpeechLexiconPronunciation *This,
22653        REFIID riid,
22654        LPOLESTR *rgszNames,
22655        UINT cNames,
22656        LCID lcid,
22657        DISPID *rgDispId);
22658
22659    HRESULT (STDMETHODCALLTYPE *Invoke)(
22660        ISpeechLexiconPronunciation *This,
22661        DISPID dispIdMember,
22662        REFIID riid,
22663        LCID lcid,
22664        WORD wFlags,
22665        DISPPARAMS *pDispParams,
22666        VARIANT *pVarResult,
22667        EXCEPINFO *pExcepInfo,
22668        UINT *puArgErr);
22669
22670    /*** ISpeechLexiconPronunciation methods ***/
22671    HRESULT (STDMETHODCALLTYPE *get_Type)(
22672        ISpeechLexiconPronunciation *This,
22673        SpeechLexiconType *LexiconType);
22674
22675    HRESULT (STDMETHODCALLTYPE *get_LangId)(
22676        ISpeechLexiconPronunciation *This,
22677        SpeechLanguageId *LangId);
22678
22679    HRESULT (STDMETHODCALLTYPE *get_PartOfSpeech)(
22680        ISpeechLexiconPronunciation *This,
22681        SpeechPartOfSpeech *PartOfSpeech);
22682
22683    HRESULT (STDMETHODCALLTYPE *get_PhoneIds)(
22684        ISpeechLexiconPronunciation *This,
22685        VARIANT *PhoneIds);
22686
22687    HRESULT (STDMETHODCALLTYPE *get_Symbolic)(
22688        ISpeechLexiconPronunciation *This,
22689        BSTR *Symbolic);
22690
22691    END_INTERFACE
22692} ISpeechLexiconPronunciationVtbl;
22693
22694interface ISpeechLexiconPronunciation {
22695    CONST_VTBL ISpeechLexiconPronunciationVtbl* lpVtbl;
22696};
22697
22698#ifdef COBJMACROS
22699#ifndef WIDL_C_INLINE_WRAPPERS
22700/*** IUnknown methods ***/
22701#define ISpeechLexiconPronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22702#define ISpeechLexiconPronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
22703#define ISpeechLexiconPronunciation_Release(This) (This)->lpVtbl->Release(This)
22704/*** IDispatch methods ***/
22705#define ISpeechLexiconPronunciation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22706#define ISpeechLexiconPronunciation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22707#define ISpeechLexiconPronunciation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22708#define ISpeechLexiconPronunciation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22709/*** ISpeechLexiconPronunciation methods ***/
22710#define ISpeechLexiconPronunciation_get_Type(This,LexiconType) (This)->lpVtbl->get_Type(This,LexiconType)
22711#define ISpeechLexiconPronunciation_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
22712#define ISpeechLexiconPronunciation_get_PartOfSpeech(This,PartOfSpeech) (This)->lpVtbl->get_PartOfSpeech(This,PartOfSpeech)
22713#define ISpeechLexiconPronunciation_get_PhoneIds(This,PhoneIds) (This)->lpVtbl->get_PhoneIds(This,PhoneIds)
22714#define ISpeechLexiconPronunciation_get_Symbolic(This,Symbolic) (This)->lpVtbl->get_Symbolic(This,Symbolic)
22715#else
22716/*** IUnknown methods ***/
22717static inline HRESULT ISpeechLexiconPronunciation_QueryInterface(ISpeechLexiconPronunciation* This,REFIID riid,void **ppvObject) {
22718    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22719}
22720static inline ULONG ISpeechLexiconPronunciation_AddRef(ISpeechLexiconPronunciation* This) {
22721    return This->lpVtbl->AddRef(This);
22722}
22723static inline ULONG ISpeechLexiconPronunciation_Release(ISpeechLexiconPronunciation* This) {
22724    return This->lpVtbl->Release(This);
22725}
22726/*** IDispatch methods ***/
22727static inline HRESULT ISpeechLexiconPronunciation_GetTypeInfoCount(ISpeechLexiconPronunciation* This,UINT *pctinfo) {
22728    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22729}
22730static inline HRESULT ISpeechLexiconPronunciation_GetTypeInfo(ISpeechLexiconPronunciation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22731    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22732}
22733static inline HRESULT ISpeechLexiconPronunciation_GetIDsOfNames(ISpeechLexiconPronunciation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22734    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22735}
22736static inline HRESULT ISpeechLexiconPronunciation_Invoke(ISpeechLexiconPronunciation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22737    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22738}
22739/*** ISpeechLexiconPronunciation methods ***/
22740static inline HRESULT ISpeechLexiconPronunciation_get_Type(ISpeechLexiconPronunciation* This,SpeechLexiconType *LexiconType) {
22741    return This->lpVtbl->get_Type(This,LexiconType);
22742}
22743static inline HRESULT ISpeechLexiconPronunciation_get_LangId(ISpeechLexiconPronunciation* This,SpeechLanguageId *LangId) {
22744    return This->lpVtbl->get_LangId(This,LangId);
22745}
22746static inline HRESULT ISpeechLexiconPronunciation_get_PartOfSpeech(ISpeechLexiconPronunciation* This,SpeechPartOfSpeech *PartOfSpeech) {
22747    return This->lpVtbl->get_PartOfSpeech(This,PartOfSpeech);
22748}
22749static inline HRESULT ISpeechLexiconPronunciation_get_PhoneIds(ISpeechLexiconPronunciation* This,VARIANT *PhoneIds) {
22750    return This->lpVtbl->get_PhoneIds(This,PhoneIds);
22751}
22752static inline HRESULT ISpeechLexiconPronunciation_get_Symbolic(ISpeechLexiconPronunciation* This,BSTR *Symbolic) {
22753    return This->lpVtbl->get_Symbolic(This,Symbolic);
22754}
22755#endif
22756#endif
22757
22758#endif
22759
22760
22761#endif  /* __ISpeechLexiconPronunciation_INTERFACE_DEFINED__ */
22762
22763/*****************************************************************************
22764 * ISpeechPhoneConverter interface
22765 */
22766#ifndef __ISpeechPhoneConverter_INTERFACE_DEFINED__
22767#define __ISpeechPhoneConverter_INTERFACE_DEFINED__
22768
22769DEFINE_GUID(IID_ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d);
22770#if defined(__cplusplus) && !defined(CINTERFACE)
22771MIDL_INTERFACE("c3e4f353-433f-43d6-89a1-6a62a7054c3d")
22772ISpeechPhoneConverter : public IDispatch
22773{
22774    virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
22775        SpeechLanguageId *LanguageId) = 0;
22776
22777    virtual HRESULT STDMETHODCALLTYPE put_LanguageId(
22778        SpeechLanguageId LanguageId) = 0;
22779
22780    virtual HRESULT STDMETHODCALLTYPE PhoneToId(
22781        const BSTR Phonemes,
22782        VARIANT *IdArray) = 0;
22783
22784    virtual HRESULT STDMETHODCALLTYPE IdToPhone(
22785        const VARIANT IdArray,
22786        BSTR *Phonemes) = 0;
22787
22788};
22789#ifdef __CRT_UUID_DECL
22790__CRT_UUID_DECL(ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d)
22791#endif
22792#else
22793typedef struct ISpeechPhoneConverterVtbl {
22794    BEGIN_INTERFACE
22795
22796    /*** IUnknown methods ***/
22797    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22798        ISpeechPhoneConverter *This,
22799        REFIID riid,
22800        void **ppvObject);
22801
22802    ULONG (STDMETHODCALLTYPE *AddRef)(
22803        ISpeechPhoneConverter *This);
22804
22805    ULONG (STDMETHODCALLTYPE *Release)(
22806        ISpeechPhoneConverter *This);
22807
22808    /*** IDispatch methods ***/
22809    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22810        ISpeechPhoneConverter *This,
22811        UINT *pctinfo);
22812
22813    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22814        ISpeechPhoneConverter *This,
22815        UINT iTInfo,
22816        LCID lcid,
22817        ITypeInfo **ppTInfo);
22818
22819    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22820        ISpeechPhoneConverter *This,
22821        REFIID riid,
22822        LPOLESTR *rgszNames,
22823        UINT cNames,
22824        LCID lcid,
22825        DISPID *rgDispId);
22826
22827    HRESULT (STDMETHODCALLTYPE *Invoke)(
22828        ISpeechPhoneConverter *This,
22829        DISPID dispIdMember,
22830        REFIID riid,
22831        LCID lcid,
22832        WORD wFlags,
22833        DISPPARAMS *pDispParams,
22834        VARIANT *pVarResult,
22835        EXCEPINFO *pExcepInfo,
22836        UINT *puArgErr);
22837
22838    /*** ISpeechPhoneConverter methods ***/
22839    HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
22840        ISpeechPhoneConverter *This,
22841        SpeechLanguageId *LanguageId);
22842
22843    HRESULT (STDMETHODCALLTYPE *put_LanguageId)(
22844        ISpeechPhoneConverter *This,
22845        SpeechLanguageId LanguageId);
22846
22847    HRESULT (STDMETHODCALLTYPE *PhoneToId)(
22848        ISpeechPhoneConverter *This,
22849        const BSTR Phonemes,
22850        VARIANT *IdArray);
22851
22852    HRESULT (STDMETHODCALLTYPE *IdToPhone)(
22853        ISpeechPhoneConverter *This,
22854        const VARIANT IdArray,
22855        BSTR *Phonemes);
22856
22857    END_INTERFACE
22858} ISpeechPhoneConverterVtbl;
22859
22860interface ISpeechPhoneConverter {
22861    CONST_VTBL ISpeechPhoneConverterVtbl* lpVtbl;
22862};
22863
22864#ifdef COBJMACROS
22865#ifndef WIDL_C_INLINE_WRAPPERS
22866/*** IUnknown methods ***/
22867#define ISpeechPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22868#define ISpeechPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
22869#define ISpeechPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
22870/*** IDispatch methods ***/
22871#define ISpeechPhoneConverter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22872#define ISpeechPhoneConverter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22873#define ISpeechPhoneConverter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22874#define ISpeechPhoneConverter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22875/*** ISpeechPhoneConverter methods ***/
22876#define ISpeechPhoneConverter_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
22877#define ISpeechPhoneConverter_put_LanguageId(This,LanguageId) (This)->lpVtbl->put_LanguageId(This,LanguageId)
22878#define ISpeechPhoneConverter_PhoneToId(This,Phonemes,IdArray) (This)->lpVtbl->PhoneToId(This,Phonemes,IdArray)
22879#define ISpeechPhoneConverter_IdToPhone(This,IdArray,Phonemes) (This)->lpVtbl->IdToPhone(This,IdArray,Phonemes)
22880#else
22881/*** IUnknown methods ***/
22882static inline HRESULT ISpeechPhoneConverter_QueryInterface(ISpeechPhoneConverter* This,REFIID riid,void **ppvObject) {
22883    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22884}
22885static inline ULONG ISpeechPhoneConverter_AddRef(ISpeechPhoneConverter* This) {
22886    return This->lpVtbl->AddRef(This);
22887}
22888static inline ULONG ISpeechPhoneConverter_Release(ISpeechPhoneConverter* This) {
22889    return This->lpVtbl->Release(This);
22890}
22891/*** IDispatch methods ***/
22892static inline HRESULT ISpeechPhoneConverter_GetTypeInfoCount(ISpeechPhoneConverter* This,UINT *pctinfo) {
22893    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22894}
22895static inline HRESULT ISpeechPhoneConverter_GetTypeInfo(ISpeechPhoneConverter* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22896    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22897}
22898static inline HRESULT ISpeechPhoneConverter_GetIDsOfNames(ISpeechPhoneConverter* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22899    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22900}
22901static inline HRESULT ISpeechPhoneConverter_Invoke(ISpeechPhoneConverter* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22902    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22903}
22904/*** ISpeechPhoneConverter methods ***/
22905static inline HRESULT ISpeechPhoneConverter_get_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId *LanguageId) {
22906    return This->lpVtbl->get_LanguageId(This,LanguageId);
22907}
22908static inline HRESULT ISpeechPhoneConverter_put_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId LanguageId) {
22909    return This->lpVtbl->put_LanguageId(This,LanguageId);
22910}
22911static inline HRESULT ISpeechPhoneConverter_PhoneToId(ISpeechPhoneConverter* This,const BSTR Phonemes,VARIANT *IdArray) {
22912    return This->lpVtbl->PhoneToId(This,Phonemes,IdArray);
22913}
22914static inline HRESULT ISpeechPhoneConverter_IdToPhone(ISpeechPhoneConverter* This,const VARIANT IdArray,BSTR *Phonemes) {
22915    return This->lpVtbl->IdToPhone(This,IdArray,Phonemes);
22916}
22917#endif
22918#endif
22919
22920#endif
22921
22922
22923#endif  /* __ISpeechPhoneConverter_INTERFACE_DEFINED__ */
22924
22925/*****************************************************************************
22926 * SpNotifyTranslator coclass
22927 */
22928
22929DEFINE_GUID(CLSID_SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22930
22931#ifdef __cplusplus
22932class DECLSPEC_UUID("e2ae5372-5d40-11d2-960e-00c04f8ee628") SpNotifyTranslator;
22933#ifdef __CRT_UUID_DECL
22934__CRT_UUID_DECL(SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22935#endif
22936#endif
22937
22938/*****************************************************************************
22939 * SpObjectTokenCategory coclass
22940 */
22941
22942DEFINE_GUID(CLSID_SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53);
22943
22944#ifdef __cplusplus
22945class DECLSPEC_UUID("a910187f-0c7a-45ac-92cc-59edafb77b53") SpObjectTokenCategory;
22946#ifdef __CRT_UUID_DECL
22947__CRT_UUID_DECL(SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53)
22948#endif
22949#endif
22950
22951/*****************************************************************************
22952 * SpObjectToken coclass
22953 */
22954
22955DEFINE_GUID(CLSID_SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe);
22956
22957#ifdef __cplusplus
22958class DECLSPEC_UUID("ef411752-3736-4cb4-9c8c-8ef4ccb58efe") SpObjectToken;
22959#ifdef __CRT_UUID_DECL
22960__CRT_UUID_DECL(SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe)
22961#endif
22962#endif
22963
22964/*****************************************************************************
22965 * SpResourceManager coclass
22966 */
22967
22968DEFINE_GUID(CLSID_SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
22969
22970#ifdef __cplusplus
22971class DECLSPEC_UUID("96749373-3391-11d2-9ee3-00c04f797396") SpResourceManager;
22972#ifdef __CRT_UUID_DECL
22973__CRT_UUID_DECL(SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
22974#endif
22975#endif
22976
22977/*****************************************************************************
22978 * SpStreamFormatConverter coclass
22979 */
22980
22981DEFINE_GUID(CLSID_SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
22982
22983#ifdef __cplusplus
22984class DECLSPEC_UUID("7013943a-e2ec-11d2-a086-00c04f8ef9b5") SpStreamFormatConverter;
22985#ifdef __CRT_UUID_DECL
22986__CRT_UUID_DECL(SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
22987#endif
22988#endif
22989
22990/*****************************************************************************
22991 * SpMMAudioEnum coclass
22992 */
22993
22994DEFINE_GUID(CLSID_SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
22995
22996#ifdef __cplusplus
22997class DECLSPEC_UUID("ab1890a0-e91f-11d2-bb91-00c04f8ee6c0") SpMMAudioEnum;
22998#ifdef __CRT_UUID_DECL
22999__CRT_UUID_DECL(SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
23000#endif
23001#endif
23002
23003/*****************************************************************************
23004 * SpMMAudioIn coclass
23005 */
23006
23007DEFINE_GUID(CLSID_SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
23008
23009#ifdef __cplusplus
23010class DECLSPEC_UUID("cf3d2e50-53f2-11d2-960c-00c04f8ee628") SpMMAudioIn;
23011#ifdef __CRT_UUID_DECL
23012__CRT_UUID_DECL(SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
23013#endif
23014#endif
23015
23016/*****************************************************************************
23017 * SpMMAudioOut coclass
23018 */
23019
23020DEFINE_GUID(CLSID_SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96);
23021
23022#ifdef __cplusplus
23023class DECLSPEC_UUID("a8c680eb-3d32-11d2-9ee7-00c04f797396") SpMMAudioOut;
23024#ifdef __CRT_UUID_DECL
23025__CRT_UUID_DECL(SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96)
23026#endif
23027#endif
23028
23029/*****************************************************************************
23030 * SpStream coclass
23031 */
23032
23033DEFINE_GUID(CLSID_SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
23034
23035#ifdef __cplusplus
23036class DECLSPEC_UUID("715d9c59-4442-11d2-9605-00c04f8ee628") SpStream;
23037#ifdef __CRT_UUID_DECL
23038__CRT_UUID_DECL(SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
23039#endif
23040#endif
23041
23042/*****************************************************************************
23043 * SpVoice coclass
23044 */
23045
23046DEFINE_GUID(CLSID_SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
23047
23048#ifdef __cplusplus
23049class DECLSPEC_UUID("96749377-3391-11d2-9ee3-00c04f797396") SpVoice;
23050#ifdef __CRT_UUID_DECL
23051__CRT_UUID_DECL(SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
23052#endif
23053#endif
23054
23055/*****************************************************************************
23056 * SpSharedRecoContext coclass
23057 */
23058
23059DEFINE_GUID(CLSID_SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
23060
23061#ifdef __cplusplus
23062class DECLSPEC_UUID("47206204-5eca-11d2-960f-00c04f8ee628") SpSharedRecoContext;
23063#ifdef __CRT_UUID_DECL
23064__CRT_UUID_DECL(SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
23065#endif
23066#endif
23067
23068/*****************************************************************************
23069 * SpInprocRecognizer coclass
23070 */
23071
23072DEFINE_GUID(CLSID_SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
23073
23074#ifdef __cplusplus
23075class DECLSPEC_UUID("41b89b6b-9399-11d2-9623-00c04f8ee628") SpInprocRecognizer;
23076#ifdef __CRT_UUID_DECL
23077__CRT_UUID_DECL(SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
23078#endif
23079#endif
23080
23081/*****************************************************************************
23082 * SpSharedRecognizer coclass
23083 */
23084
23085DEFINE_GUID(CLSID_SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f);
23086
23087#ifdef __cplusplus
23088class DECLSPEC_UUID("3bee4890-4fe9-4a37-8c1e-5e7e12791c1f") SpSharedRecognizer;
23089#ifdef __CRT_UUID_DECL
23090__CRT_UUID_DECL(SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f)
23091#endif
23092#endif
23093
23094/*****************************************************************************
23095 * SpLexicon coclass
23096 */
23097
23098DEFINE_GUID(CLSID_SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
23099
23100#ifdef __cplusplus
23101class DECLSPEC_UUID("0655e396-25d0-11d3-9c26-00c04f8ef87c") SpLexicon;
23102#ifdef __CRT_UUID_DECL
23103__CRT_UUID_DECL(SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
23104#endif
23105#endif
23106
23107/*****************************************************************************
23108 * SpUnCompressedLexicon coclass
23109 */
23110
23111DEFINE_GUID(CLSID_SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a);
23112
23113#ifdef __cplusplus
23114class DECLSPEC_UUID("c9e37c15-df92-4727-85d6-72e5eeb6995a") SpUnCompressedLexicon;
23115#ifdef __CRT_UUID_DECL
23116__CRT_UUID_DECL(SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a)
23117#endif
23118#endif
23119
23120/*****************************************************************************
23121 * SpCompressedLexicon coclass
23122 */
23123
23124DEFINE_GUID(CLSID_SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
23125
23126#ifdef __cplusplus
23127class DECLSPEC_UUID("90903716-2f42-11d3-9c26-00c04f8ef87c") SpCompressedLexicon;
23128#ifdef __CRT_UUID_DECL
23129__CRT_UUID_DECL(SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
23130#endif
23131#endif
23132
23133/*****************************************************************************
23134 * SpShortcut coclass
23135 */
23136
23137DEFINE_GUID(CLSID_SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa);
23138
23139#ifdef __cplusplus
23140class DECLSPEC_UUID("0d722f1a-9fcf-4e62-96d8-6df8f01a26aa") SpShortcut;
23141#ifdef __CRT_UUID_DECL
23142__CRT_UUID_DECL(SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa)
23143#endif
23144#endif
23145
23146/*****************************************************************************
23147 * SpPhoneConverter coclass
23148 */
23149
23150DEFINE_GUID(CLSID_SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8);
23151
23152#ifdef __cplusplus
23153class DECLSPEC_UUID("9185f743-1143-4c28-86b5-bff14f20e5c8") SpPhoneConverter;
23154#ifdef __CRT_UUID_DECL
23155__CRT_UUID_DECL(SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8)
23156#endif
23157#endif
23158
23159/*****************************************************************************
23160 * SpPhoneticAlphabetConverter coclass
23161 */
23162
23163DEFINE_GUID(CLSID_SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad);
23164
23165#ifdef __cplusplus
23166class DECLSPEC_UUID("4f414126-dfe3-4629-99ee-797978317ead") SpPhoneticAlphabetConverter;
23167#ifdef __CRT_UUID_DECL
23168__CRT_UUID_DECL(SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad)
23169#endif
23170#endif
23171
23172/*****************************************************************************
23173 * SpNullPhoneConverter coclass
23174 */
23175
23176DEFINE_GUID(CLSID_SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3);
23177
23178#ifdef __cplusplus
23179class DECLSPEC_UUID("455f24e9-7396-4a16-9715-7c0fdbe3efe3") SpNullPhoneConverter;
23180#ifdef __CRT_UUID_DECL
23181__CRT_UUID_DECL(SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3)
23182#endif
23183#endif
23184
23185/*****************************************************************************
23186 * SpTextSelectionInformation coclass
23187 */
23188
23189DEFINE_GUID(CLSID_SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6);
23190
23191#ifdef __cplusplus
23192class DECLSPEC_UUID("0f92030a-cbfd-4ab8-a164-ff5985547ff6") SpTextSelectionInformation;
23193#ifdef __CRT_UUID_DECL
23194__CRT_UUID_DECL(SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6)
23195#endif
23196#endif
23197
23198/*****************************************************************************
23199 * SpPhraseInfoBuilder coclass
23200 */
23201
23202DEFINE_GUID(CLSID_SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1);
23203
23204#ifdef __cplusplus
23205class DECLSPEC_UUID("c23fc28d-c55f-4720-8b32-91f73c2bd5d1") SpPhraseInfoBuilder;
23206#ifdef __CRT_UUID_DECL
23207__CRT_UUID_DECL(SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1)
23208#endif
23209#endif
23210
23211/*****************************************************************************
23212 * SpAudioFormat coclass
23213 */
23214
23215DEFINE_GUID(CLSID_SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec);
23216
23217#ifdef __cplusplus
23218class DECLSPEC_UUID("9ef96870-e160-4792-820d-48cf0649e4ec") SpAudioFormat;
23219#ifdef __CRT_UUID_DECL
23220__CRT_UUID_DECL(SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec)
23221#endif
23222#endif
23223
23224/*****************************************************************************
23225 * SpWaveFormatEx coclass
23226 */
23227
23228DEFINE_GUID(CLSID_SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe);
23229
23230#ifdef __cplusplus
23231class DECLSPEC_UUID("c79a574c-63be-44b9-801f-283f87f898be") SpWaveFormatEx;
23232#ifdef __CRT_UUID_DECL
23233__CRT_UUID_DECL(SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe)
23234#endif
23235#endif
23236
23237/*****************************************************************************
23238 * SpInProcRecoContext coclass
23239 */
23240
23241DEFINE_GUID(CLSID_SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a);
23242
23243#ifdef __cplusplus
23244class DECLSPEC_UUID("73ad6842-ace0-45e8-a4dd-8795881a2c2a") SpInProcRecoContext;
23245#ifdef __CRT_UUID_DECL
23246__CRT_UUID_DECL(SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a)
23247#endif
23248#endif
23249
23250/*****************************************************************************
23251 * SpCustomStream coclass
23252 */
23253
23254DEFINE_GUID(CLSID_SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8);
23255
23256#ifdef __cplusplus
23257class DECLSPEC_UUID("8dbef13f-1948-4aa8-8cf0-048eebed95d8") SpCustomStream;
23258#ifdef __CRT_UUID_DECL
23259__CRT_UUID_DECL(SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8)
23260#endif
23261#endif
23262
23263/*****************************************************************************
23264 * SpFileStream coclass
23265 */
23266
23267DEFINE_GUID(CLSID_SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91);
23268
23269#ifdef __cplusplus
23270class DECLSPEC_UUID("947812b3-2ae1-4644-ba86-9e90ded7ec91") SpFileStream;
23271#ifdef __CRT_UUID_DECL
23272__CRT_UUID_DECL(SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91)
23273#endif
23274#endif
23275
23276/*****************************************************************************
23277 * SpMemoryStream coclass
23278 */
23279
23280DEFINE_GUID(CLSID_SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94);
23281
23282#ifdef __cplusplus
23283class DECLSPEC_UUID("5fb7ef7d-dff4-468a-b6b7-2fcbd188f994") SpMemoryStream;
23284#ifdef __CRT_UUID_DECL
23285__CRT_UUID_DECL(SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94)
23286#endif
23287#endif
23288
23289#ifndef __ISpXMLRecoResult_FWD_DEFINED__
23290#define __ISpXMLRecoResult_FWD_DEFINED__
23291typedef interface ISpXMLRecoResult ISpXMLRecoResult;
23292#ifdef __cplusplus
23293interface ISpXMLRecoResult;
23294#endif /* __cplusplus */
23295#endif
23296
23297#ifndef __ISpRecoGrammar2_FWD_DEFINED__
23298#define __ISpRecoGrammar2_FWD_DEFINED__
23299typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
23300#ifdef __cplusplus
23301interface ISpRecoGrammar2;
23302#endif /* __cplusplus */
23303#endif
23304
23305#ifndef __ISpeechResourceLoader_FWD_DEFINED__
23306#define __ISpeechResourceLoader_FWD_DEFINED__
23307typedef interface ISpeechResourceLoader ISpeechResourceLoader;
23308#ifdef __cplusplus
23309interface ISpeechResourceLoader;
23310#endif /* __cplusplus */
23311#endif
23312
23313#endif /* __SpeechLib_LIBRARY_DEFINED__ */
23314/* Begin additional prototypes for all interfaces */
23315
23316ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
23317unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
23318unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
23319void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
23320ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
23321unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
23322unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
23323void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
23324ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
23325unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
23326unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
23327void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
23328
23329/* End additional prototypes */
23330
23331#ifdef __cplusplus
23332}
23333#endif
23334
23335#endif /* __sapi54_h__ */