master
    1/*** Autogenerated by WIDL 10.4 from include/sapi53.idl - Do not edit ***/
    2
    3#ifdef _WIN32
    4#ifndef __REQUIRED_RPCNDR_H_VERSION__
    5#define __REQUIRED_RPCNDR_H_VERSION__ 475
    6#endif
    7#include <rpc.h>
    8#include <rpcndr.h>
    9#endif
   10
   11#ifndef COM_NO_WINDOWS_H
   12#include <windows.h>
   13#include <ole2.h>
   14#endif
   15
   16#ifndef __sapi53_h__
   17#define __sapi53_h__
   18
   19/* Forward declarations */
   20
   21#ifndef __ISpNotifySource_FWD_DEFINED__
   22#define __ISpNotifySource_FWD_DEFINED__
   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 __ISpEnginePronunciation_FWD_DEFINED__
  374#define __ISpEnginePronunciation_FWD_DEFINED__
  375typedef interface ISpEnginePronunciation ISpEnginePronunciation;
  376#ifdef __cplusplus
  377interface ISpEnginePronunciation;
  378#endif /* __cplusplus */
  379#endif
  380
  381#ifndef __ISpDisplayAlternates_FWD_DEFINED__
  382#define __ISpDisplayAlternates_FWD_DEFINED__
  383typedef interface ISpDisplayAlternates ISpDisplayAlternates;
  384#ifdef __cplusplus
  385interface ISpDisplayAlternates;
  386#endif /* __cplusplus */
  387#endif
  388
  389#ifndef __ISpeechDataKey_FWD_DEFINED__
  390#define __ISpeechDataKey_FWD_DEFINED__
  391typedef interface ISpeechDataKey ISpeechDataKey;
  392#ifdef __cplusplus
  393interface ISpeechDataKey;
  394#endif /* __cplusplus */
  395#endif
  396
  397#ifndef __ISpeechObjectToken_FWD_DEFINED__
  398#define __ISpeechObjectToken_FWD_DEFINED__
  399typedef interface ISpeechObjectToken ISpeechObjectToken;
  400#ifdef __cplusplus
  401interface ISpeechObjectToken;
  402#endif /* __cplusplus */
  403#endif
  404
  405#ifndef __ISpeechObjectTokens_FWD_DEFINED__
  406#define __ISpeechObjectTokens_FWD_DEFINED__
  407typedef interface ISpeechObjectTokens ISpeechObjectTokens;
  408#ifdef __cplusplus
  409interface ISpeechObjectTokens;
  410#endif /* __cplusplus */
  411#endif
  412
  413#ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
  414#define __ISpeechObjectTokenCategory_FWD_DEFINED__
  415typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
  416#ifdef __cplusplus
  417interface ISpeechObjectTokenCategory;
  418#endif /* __cplusplus */
  419#endif
  420
  421#ifndef __ISpeechAudioFormat_FWD_DEFINED__
  422#define __ISpeechAudioFormat_FWD_DEFINED__
  423typedef interface ISpeechAudioFormat ISpeechAudioFormat;
  424#ifdef __cplusplus
  425interface ISpeechAudioFormat;
  426#endif /* __cplusplus */
  427#endif
  428
  429#ifndef __ISpeechBaseStream_FWD_DEFINED__
  430#define __ISpeechBaseStream_FWD_DEFINED__
  431typedef interface ISpeechBaseStream ISpeechBaseStream;
  432#ifdef __cplusplus
  433interface ISpeechBaseStream;
  434#endif /* __cplusplus */
  435#endif
  436
  437#ifndef __ISpeechAudio_FWD_DEFINED__
  438#define __ISpeechAudio_FWD_DEFINED__
  439typedef interface ISpeechAudio ISpeechAudio;
  440#ifdef __cplusplus
  441interface ISpeechAudio;
  442#endif /* __cplusplus */
  443#endif
  444
  445#ifndef __ISpeechMMSysAudio_FWD_DEFINED__
  446#define __ISpeechMMSysAudio_FWD_DEFINED__
  447typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
  448#ifdef __cplusplus
  449interface ISpeechMMSysAudio;
  450#endif /* __cplusplus */
  451#endif
  452
  453#ifndef __ISpeechFileStream_FWD_DEFINED__
  454#define __ISpeechFileStream_FWD_DEFINED__
  455typedef interface ISpeechFileStream ISpeechFileStream;
  456#ifdef __cplusplus
  457interface ISpeechFileStream;
  458#endif /* __cplusplus */
  459#endif
  460
  461#ifndef __ISpeechCustomStream_FWD_DEFINED__
  462#define __ISpeechCustomStream_FWD_DEFINED__
  463typedef interface ISpeechCustomStream ISpeechCustomStream;
  464#ifdef __cplusplus
  465interface ISpeechCustomStream;
  466#endif /* __cplusplus */
  467#endif
  468
  469#ifndef __ISpeechMemoryStream_FWD_DEFINED__
  470#define __ISpeechMemoryStream_FWD_DEFINED__
  471typedef interface ISpeechMemoryStream ISpeechMemoryStream;
  472#ifdef __cplusplus
  473interface ISpeechMemoryStream;
  474#endif /* __cplusplus */
  475#endif
  476
  477#ifndef __ISpeechAudioStatus_FWD_DEFINED__
  478#define __ISpeechAudioStatus_FWD_DEFINED__
  479typedef interface ISpeechAudioStatus ISpeechAudioStatus;
  480#ifdef __cplusplus
  481interface ISpeechAudioStatus;
  482#endif /* __cplusplus */
  483#endif
  484
  485#ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
  486#define __ISpeechAudioBufferInfo_FWD_DEFINED__
  487typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
  488#ifdef __cplusplus
  489interface ISpeechAudioBufferInfo;
  490#endif /* __cplusplus */
  491#endif
  492
  493#ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
  494#define __ISpeechWaveFormatEx_FWD_DEFINED__
  495typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
  496#ifdef __cplusplus
  497interface ISpeechWaveFormatEx;
  498#endif /* __cplusplus */
  499#endif
  500
  501#ifndef __ISpeechVoice_FWD_DEFINED__
  502#define __ISpeechVoice_FWD_DEFINED__
  503typedef interface ISpeechVoice ISpeechVoice;
  504#ifdef __cplusplus
  505interface ISpeechVoice;
  506#endif /* __cplusplus */
  507#endif
  508
  509#ifndef __ISpeechVoiceStatus_FWD_DEFINED__
  510#define __ISpeechVoiceStatus_FWD_DEFINED__
  511typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
  512#ifdef __cplusplus
  513interface ISpeechVoiceStatus;
  514#endif /* __cplusplus */
  515#endif
  516
  517#ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
  518#define ___ISpeechVoiceEvents_FWD_DEFINED__
  519typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
  520#ifdef __cplusplus
  521interface _ISpeechVoiceEvents;
  522#endif /* __cplusplus */
  523#endif
  524
  525#ifndef __ISpeechRecognizer_FWD_DEFINED__
  526#define __ISpeechRecognizer_FWD_DEFINED__
  527typedef interface ISpeechRecognizer ISpeechRecognizer;
  528#ifdef __cplusplus
  529interface ISpeechRecognizer;
  530#endif /* __cplusplus */
  531#endif
  532
  533#ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
  534#define __ISpeechRecognizerStatus_FWD_DEFINED__
  535typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
  536#ifdef __cplusplus
  537interface ISpeechRecognizerStatus;
  538#endif /* __cplusplus */
  539#endif
  540
  541#ifndef __ISpeechRecoContext_FWD_DEFINED__
  542#define __ISpeechRecoContext_FWD_DEFINED__
  543typedef interface ISpeechRecoContext ISpeechRecoContext;
  544#ifdef __cplusplus
  545interface ISpeechRecoContext;
  546#endif /* __cplusplus */
  547#endif
  548
  549#ifndef __ISpeechRecoGrammar_FWD_DEFINED__
  550#define __ISpeechRecoGrammar_FWD_DEFINED__
  551typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
  552#ifdef __cplusplus
  553interface ISpeechRecoGrammar;
  554#endif /* __cplusplus */
  555#endif
  556
  557#ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
  558#define ___ISpeechRecoContextEvents_FWD_DEFINED__
  559typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
  560#ifdef __cplusplus
  561interface _ISpeechRecoContextEvents;
  562#endif /* __cplusplus */
  563#endif
  564
  565#ifndef __ISpeechGrammarRule_FWD_DEFINED__
  566#define __ISpeechGrammarRule_FWD_DEFINED__
  567typedef interface ISpeechGrammarRule ISpeechGrammarRule;
  568#ifdef __cplusplus
  569interface ISpeechGrammarRule;
  570#endif /* __cplusplus */
  571#endif
  572
  573#ifndef __ISpeechGrammarRules_FWD_DEFINED__
  574#define __ISpeechGrammarRules_FWD_DEFINED__
  575typedef interface ISpeechGrammarRules ISpeechGrammarRules;
  576#ifdef __cplusplus
  577interface ISpeechGrammarRules;
  578#endif /* __cplusplus */
  579#endif
  580
  581#ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
  582#define __ISpeechGrammarRuleState_FWD_DEFINED__
  583typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
  584#ifdef __cplusplus
  585interface ISpeechGrammarRuleState;
  586#endif /* __cplusplus */
  587#endif
  588
  589#ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
  590#define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
  591typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
  592#ifdef __cplusplus
  593interface ISpeechGrammarRuleStateTransitions;
  594#endif /* __cplusplus */
  595#endif
  596
  597#ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
  598#define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
  599typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
  600#ifdef __cplusplus
  601interface ISpeechGrammarRuleStateTransition;
  602#endif /* __cplusplus */
  603#endif
  604
  605#ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
  606#define __ISpeechTextSelectionInformation_FWD_DEFINED__
  607typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
  608#ifdef __cplusplus
  609interface ISpeechTextSelectionInformation;
  610#endif /* __cplusplus */
  611#endif
  612
  613#ifndef __ISpeechRecoResult_FWD_DEFINED__
  614#define __ISpeechRecoResult_FWD_DEFINED__
  615typedef interface ISpeechRecoResult ISpeechRecoResult;
  616#ifdef __cplusplus
  617interface ISpeechRecoResult;
  618#endif /* __cplusplus */
  619#endif
  620
  621#ifndef __ISpeechXMLRecoResult_FWD_DEFINED__
  622#define __ISpeechXMLRecoResult_FWD_DEFINED__
  623typedef interface ISpeechXMLRecoResult ISpeechXMLRecoResult;
  624#ifdef __cplusplus
  625interface ISpeechXMLRecoResult;
  626#endif /* __cplusplus */
  627#endif
  628
  629#ifndef __ISpeechRecoResult2_FWD_DEFINED__
  630#define __ISpeechRecoResult2_FWD_DEFINED__
  631typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
  632#ifdef __cplusplus
  633interface ISpeechRecoResult2;
  634#endif /* __cplusplus */
  635#endif
  636
  637#ifndef __ISpeechRecoResultDispatch_FWD_DEFINED__
  638#define __ISpeechRecoResultDispatch_FWD_DEFINED__
  639typedef interface ISpeechRecoResultDispatch ISpeechRecoResultDispatch;
  640#ifdef __cplusplus
  641interface ISpeechRecoResultDispatch;
  642#endif /* __cplusplus */
  643#endif
  644
  645#ifndef __ISpeechPhraseInfoBuilder_FWD_DEFINED__
  646#define __ISpeechPhraseInfoBuilder_FWD_DEFINED__
  647typedef interface ISpeechPhraseInfoBuilder ISpeechPhraseInfoBuilder;
  648#ifdef __cplusplus
  649interface ISpeechPhraseInfoBuilder;
  650#endif /* __cplusplus */
  651#endif
  652
  653#ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
  654#define __ISpeechRecoResultTimes_FWD_DEFINED__
  655typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
  656#ifdef __cplusplus
  657interface ISpeechRecoResultTimes;
  658#endif /* __cplusplus */
  659#endif
  660
  661#ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
  662#define __ISpeechPhraseAlternate_FWD_DEFINED__
  663typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
  664#ifdef __cplusplus
  665interface ISpeechPhraseAlternate;
  666#endif /* __cplusplus */
  667#endif
  668
  669#ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
  670#define __ISpeechPhraseAlternates_FWD_DEFINED__
  671typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
  672#ifdef __cplusplus
  673interface ISpeechPhraseAlternates;
  674#endif /* __cplusplus */
  675#endif
  676
  677#ifndef __ISpeechPhraseInfo_FWD_DEFINED__
  678#define __ISpeechPhraseInfo_FWD_DEFINED__
  679typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
  680#ifdef __cplusplus
  681interface ISpeechPhraseInfo;
  682#endif /* __cplusplus */
  683#endif
  684
  685#ifndef __ISpeechPhraseElement_FWD_DEFINED__
  686#define __ISpeechPhraseElement_FWD_DEFINED__
  687typedef interface ISpeechPhraseElement ISpeechPhraseElement;
  688#ifdef __cplusplus
  689interface ISpeechPhraseElement;
  690#endif /* __cplusplus */
  691#endif
  692
  693#ifndef __ISpeechPhraseElements_FWD_DEFINED__
  694#define __ISpeechPhraseElements_FWD_DEFINED__
  695typedef interface ISpeechPhraseElements ISpeechPhraseElements;
  696#ifdef __cplusplus
  697interface ISpeechPhraseElements;
  698#endif /* __cplusplus */
  699#endif
  700
  701#ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
  702#define __ISpeechPhraseReplacement_FWD_DEFINED__
  703typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
  704#ifdef __cplusplus
  705interface ISpeechPhraseReplacement;
  706#endif /* __cplusplus */
  707#endif
  708
  709#ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
  710#define __ISpeechPhraseReplacements_FWD_DEFINED__
  711typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
  712#ifdef __cplusplus
  713interface ISpeechPhraseReplacements;
  714#endif /* __cplusplus */
  715#endif
  716
  717#ifndef __ISpeechPhraseProperty_FWD_DEFINED__
  718#define __ISpeechPhraseProperty_FWD_DEFINED__
  719typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
  720#ifdef __cplusplus
  721interface ISpeechPhraseProperty;
  722#endif /* __cplusplus */
  723#endif
  724
  725#ifndef __ISpeechPhraseProperties_FWD_DEFINED__
  726#define __ISpeechPhraseProperties_FWD_DEFINED__
  727typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
  728#ifdef __cplusplus
  729interface ISpeechPhraseProperties;
  730#endif /* __cplusplus */
  731#endif
  732
  733#ifndef __ISpeechPhraseRule_FWD_DEFINED__
  734#define __ISpeechPhraseRule_FWD_DEFINED__
  735typedef interface ISpeechPhraseRule ISpeechPhraseRule;
  736#ifdef __cplusplus
  737interface ISpeechPhraseRule;
  738#endif /* __cplusplus */
  739#endif
  740
  741#ifndef __ISpeechPhraseRules_FWD_DEFINED__
  742#define __ISpeechPhraseRules_FWD_DEFINED__
  743typedef interface ISpeechPhraseRules ISpeechPhraseRules;
  744#ifdef __cplusplus
  745interface ISpeechPhraseRules;
  746#endif /* __cplusplus */
  747#endif
  748
  749#ifndef __ISpeechLexiconWords_FWD_DEFINED__
  750#define __ISpeechLexiconWords_FWD_DEFINED__
  751typedef interface ISpeechLexiconWords ISpeechLexiconWords;
  752#ifdef __cplusplus
  753interface ISpeechLexiconWords;
  754#endif /* __cplusplus */
  755#endif
  756
  757#ifndef __ISpeechLexicon_FWD_DEFINED__
  758#define __ISpeechLexicon_FWD_DEFINED__
  759typedef interface ISpeechLexicon ISpeechLexicon;
  760#ifdef __cplusplus
  761interface ISpeechLexicon;
  762#endif /* __cplusplus */
  763#endif
  764
  765#ifndef __ISpeechLexiconWord_FWD_DEFINED__
  766#define __ISpeechLexiconWord_FWD_DEFINED__
  767typedef interface ISpeechLexiconWord ISpeechLexiconWord;
  768#ifdef __cplusplus
  769interface ISpeechLexiconWord;
  770#endif /* __cplusplus */
  771#endif
  772
  773#ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
  774#define __ISpeechLexiconPronunciations_FWD_DEFINED__
  775typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
  776#ifdef __cplusplus
  777interface ISpeechLexiconPronunciations;
  778#endif /* __cplusplus */
  779#endif
  780
  781#ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
  782#define __ISpeechLexiconPronunciation_FWD_DEFINED__
  783typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
  784#ifdef __cplusplus
  785interface ISpeechLexiconPronunciation;
  786#endif /* __cplusplus */
  787#endif
  788
  789#ifndef __ISpeechPhoneConverter_FWD_DEFINED__
  790#define __ISpeechPhoneConverter_FWD_DEFINED__
  791typedef interface ISpeechPhoneConverter ISpeechPhoneConverter;
  792#ifdef __cplusplus
  793interface ISpeechPhoneConverter;
  794#endif /* __cplusplus */
  795#endif
  796
  797#ifndef __SpNotifyTranslator_FWD_DEFINED__
  798#define __SpNotifyTranslator_FWD_DEFINED__
  799#ifdef __cplusplus
  800typedef class SpNotifyTranslator SpNotifyTranslator;
  801#else
  802typedef struct SpNotifyTranslator SpNotifyTranslator;
  803#endif /* defined __cplusplus */
  804#endif /* defined __SpNotifyTranslator_FWD_DEFINED__ */
  805
  806#ifndef __SpObjectTokenCategory_FWD_DEFINED__
  807#define __SpObjectTokenCategory_FWD_DEFINED__
  808#ifdef __cplusplus
  809typedef class SpObjectTokenCategory SpObjectTokenCategory;
  810#else
  811typedef struct SpObjectTokenCategory SpObjectTokenCategory;
  812#endif /* defined __cplusplus */
  813#endif /* defined __SpObjectTokenCategory_FWD_DEFINED__ */
  814
  815#ifndef __SpObjectToken_FWD_DEFINED__
  816#define __SpObjectToken_FWD_DEFINED__
  817#ifdef __cplusplus
  818typedef class SpObjectToken SpObjectToken;
  819#else
  820typedef struct SpObjectToken SpObjectToken;
  821#endif /* defined __cplusplus */
  822#endif /* defined __SpObjectToken_FWD_DEFINED__ */
  823
  824#ifndef __SpResourceManager_FWD_DEFINED__
  825#define __SpResourceManager_FWD_DEFINED__
  826#ifdef __cplusplus
  827typedef class SpResourceManager SpResourceManager;
  828#else
  829typedef struct SpResourceManager SpResourceManager;
  830#endif /* defined __cplusplus */
  831#endif /* defined __SpResourceManager_FWD_DEFINED__ */
  832
  833#ifndef __SpStreamFormatConverter_FWD_DEFINED__
  834#define __SpStreamFormatConverter_FWD_DEFINED__
  835#ifdef __cplusplus
  836typedef class SpStreamFormatConverter SpStreamFormatConverter;
  837#else
  838typedef struct SpStreamFormatConverter SpStreamFormatConverter;
  839#endif /* defined __cplusplus */
  840#endif /* defined __SpStreamFormatConverter_FWD_DEFINED__ */
  841
  842#ifndef __SpMMAudioEnum_FWD_DEFINED__
  843#define __SpMMAudioEnum_FWD_DEFINED__
  844#ifdef __cplusplus
  845typedef class SpMMAudioEnum SpMMAudioEnum;
  846#else
  847typedef struct SpMMAudioEnum SpMMAudioEnum;
  848#endif /* defined __cplusplus */
  849#endif /* defined __SpMMAudioEnum_FWD_DEFINED__ */
  850
  851#ifndef __SpMMAudioIn_FWD_DEFINED__
  852#define __SpMMAudioIn_FWD_DEFINED__
  853#ifdef __cplusplus
  854typedef class SpMMAudioIn SpMMAudioIn;
  855#else
  856typedef struct SpMMAudioIn SpMMAudioIn;
  857#endif /* defined __cplusplus */
  858#endif /* defined __SpMMAudioIn_FWD_DEFINED__ */
  859
  860#ifndef __SpMMAudioOut_FWD_DEFINED__
  861#define __SpMMAudioOut_FWD_DEFINED__
  862#ifdef __cplusplus
  863typedef class SpMMAudioOut SpMMAudioOut;
  864#else
  865typedef struct SpMMAudioOut SpMMAudioOut;
  866#endif /* defined __cplusplus */
  867#endif /* defined __SpMMAudioOut_FWD_DEFINED__ */
  868
  869#ifndef __SpStream_FWD_DEFINED__
  870#define __SpStream_FWD_DEFINED__
  871#ifdef __cplusplus
  872typedef class SpStream SpStream;
  873#else
  874typedef struct SpStream SpStream;
  875#endif /* defined __cplusplus */
  876#endif /* defined __SpStream_FWD_DEFINED__ */
  877
  878#ifndef __SpVoice_FWD_DEFINED__
  879#define __SpVoice_FWD_DEFINED__
  880#ifdef __cplusplus
  881typedef class SpVoice SpVoice;
  882#else
  883typedef struct SpVoice SpVoice;
  884#endif /* defined __cplusplus */
  885#endif /* defined __SpVoice_FWD_DEFINED__ */
  886
  887#ifndef __SpSharedRecoContext_FWD_DEFINED__
  888#define __SpSharedRecoContext_FWD_DEFINED__
  889#ifdef __cplusplus
  890typedef class SpSharedRecoContext SpSharedRecoContext;
  891#else
  892typedef struct SpSharedRecoContext SpSharedRecoContext;
  893#endif /* defined __cplusplus */
  894#endif /* defined __SpSharedRecoContext_FWD_DEFINED__ */
  895
  896#ifndef __SpInprocRecognizer_FWD_DEFINED__
  897#define __SpInprocRecognizer_FWD_DEFINED__
  898#ifdef __cplusplus
  899typedef class SpInprocRecognizer SpInprocRecognizer;
  900#else
  901typedef struct SpInprocRecognizer SpInprocRecognizer;
  902#endif /* defined __cplusplus */
  903#endif /* defined __SpInprocRecognizer_FWD_DEFINED__ */
  904
  905#ifndef __SpSharedRecognizer_FWD_DEFINED__
  906#define __SpSharedRecognizer_FWD_DEFINED__
  907#ifdef __cplusplus
  908typedef class SpSharedRecognizer SpSharedRecognizer;
  909#else
  910typedef struct SpSharedRecognizer SpSharedRecognizer;
  911#endif /* defined __cplusplus */
  912#endif /* defined __SpSharedRecognizer_FWD_DEFINED__ */
  913
  914#ifndef __SpLexicon_FWD_DEFINED__
  915#define __SpLexicon_FWD_DEFINED__
  916#ifdef __cplusplus
  917typedef class SpLexicon SpLexicon;
  918#else
  919typedef struct SpLexicon SpLexicon;
  920#endif /* defined __cplusplus */
  921#endif /* defined __SpLexicon_FWD_DEFINED__ */
  922
  923#ifndef __SpUnCompressedLexicon_FWD_DEFINED__
  924#define __SpUnCompressedLexicon_FWD_DEFINED__
  925#ifdef __cplusplus
  926typedef class SpUnCompressedLexicon SpUnCompressedLexicon;
  927#else
  928typedef struct SpUnCompressedLexicon SpUnCompressedLexicon;
  929#endif /* defined __cplusplus */
  930#endif /* defined __SpUnCompressedLexicon_FWD_DEFINED__ */
  931
  932#ifndef __SpCompressedLexicon_FWD_DEFINED__
  933#define __SpCompressedLexicon_FWD_DEFINED__
  934#ifdef __cplusplus
  935typedef class SpCompressedLexicon SpCompressedLexicon;
  936#else
  937typedef struct SpCompressedLexicon SpCompressedLexicon;
  938#endif /* defined __cplusplus */
  939#endif /* defined __SpCompressedLexicon_FWD_DEFINED__ */
  940
  941#ifndef __SpShortcut_FWD_DEFINED__
  942#define __SpShortcut_FWD_DEFINED__
  943#ifdef __cplusplus
  944typedef class SpShortcut SpShortcut;
  945#else
  946typedef struct SpShortcut SpShortcut;
  947#endif /* defined __cplusplus */
  948#endif /* defined __SpShortcut_FWD_DEFINED__ */
  949
  950#ifndef __SpPhoneConverter_FWD_DEFINED__
  951#define __SpPhoneConverter_FWD_DEFINED__
  952#ifdef __cplusplus
  953typedef class SpPhoneConverter SpPhoneConverter;
  954#else
  955typedef struct SpPhoneConverter SpPhoneConverter;
  956#endif /* defined __cplusplus */
  957#endif /* defined __SpPhoneConverter_FWD_DEFINED__ */
  958
  959#ifndef __SpPhoneticAlphabetConverter_FWD_DEFINED__
  960#define __SpPhoneticAlphabetConverter_FWD_DEFINED__
  961#ifdef __cplusplus
  962typedef class SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
  963#else
  964typedef struct SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
  965#endif /* defined __cplusplus */
  966#endif /* defined __SpPhoneticAlphabetConverter_FWD_DEFINED__ */
  967
  968#ifndef __SpNullPhoneConverter_FWD_DEFINED__
  969#define __SpNullPhoneConverter_FWD_DEFINED__
  970#ifdef __cplusplus
  971typedef class SpNullPhoneConverter SpNullPhoneConverter;
  972#else
  973typedef struct SpNullPhoneConverter SpNullPhoneConverter;
  974#endif /* defined __cplusplus */
  975#endif /* defined __SpNullPhoneConverter_FWD_DEFINED__ */
  976
  977#ifndef __SpTextSelectionInformation_FWD_DEFINED__
  978#define __SpTextSelectionInformation_FWD_DEFINED__
  979#ifdef __cplusplus
  980typedef class SpTextSelectionInformation SpTextSelectionInformation;
  981#else
  982typedef struct SpTextSelectionInformation SpTextSelectionInformation;
  983#endif /* defined __cplusplus */
  984#endif /* defined __SpTextSelectionInformation_FWD_DEFINED__ */
  985
  986#ifndef __SpPhraseInfoBuilder_FWD_DEFINED__
  987#define __SpPhraseInfoBuilder_FWD_DEFINED__
  988#ifdef __cplusplus
  989typedef class SpPhraseInfoBuilder SpPhraseInfoBuilder;
  990#else
  991typedef struct SpPhraseInfoBuilder SpPhraseInfoBuilder;
  992#endif /* defined __cplusplus */
  993#endif /* defined __SpPhraseInfoBuilder_FWD_DEFINED__ */
  994
  995#ifndef __SpAudioFormat_FWD_DEFINED__
  996#define __SpAudioFormat_FWD_DEFINED__
  997#ifdef __cplusplus
  998typedef class SpAudioFormat SpAudioFormat;
  999#else
 1000typedef struct SpAudioFormat SpAudioFormat;
 1001#endif /* defined __cplusplus */
 1002#endif /* defined __SpAudioFormat_FWD_DEFINED__ */
 1003
 1004#ifndef __SpWaveFormatEx_FWD_DEFINED__
 1005#define __SpWaveFormatEx_FWD_DEFINED__
 1006#ifdef __cplusplus
 1007typedef class SpWaveFormatEx SpWaveFormatEx;
 1008#else
 1009typedef struct SpWaveFormatEx SpWaveFormatEx;
 1010#endif /* defined __cplusplus */
 1011#endif /* defined __SpWaveFormatEx_FWD_DEFINED__ */
 1012
 1013#ifndef __SpInProcRecoContext_FWD_DEFINED__
 1014#define __SpInProcRecoContext_FWD_DEFINED__
 1015#ifdef __cplusplus
 1016typedef class SpInProcRecoContext SpInProcRecoContext;
 1017#else
 1018typedef struct SpInProcRecoContext SpInProcRecoContext;
 1019#endif /* defined __cplusplus */
 1020#endif /* defined __SpInProcRecoContext_FWD_DEFINED__ */
 1021
 1022#ifndef __SpCustomStream_FWD_DEFINED__
 1023#define __SpCustomStream_FWD_DEFINED__
 1024#ifdef __cplusplus
 1025typedef class SpCustomStream SpCustomStream;
 1026#else
 1027typedef struct SpCustomStream SpCustomStream;
 1028#endif /* defined __cplusplus */
 1029#endif /* defined __SpCustomStream_FWD_DEFINED__ */
 1030
 1031#ifndef __SpFileStream_FWD_DEFINED__
 1032#define __SpFileStream_FWD_DEFINED__
 1033#ifdef __cplusplus
 1034typedef class SpFileStream SpFileStream;
 1035#else
 1036typedef struct SpFileStream SpFileStream;
 1037#endif /* defined __cplusplus */
 1038#endif /* defined __SpFileStream_FWD_DEFINED__ */
 1039
 1040#ifndef __SpMemoryStream_FWD_DEFINED__
 1041#define __SpMemoryStream_FWD_DEFINED__
 1042#ifdef __cplusplus
 1043typedef class SpMemoryStream SpMemoryStream;
 1044#else
 1045typedef struct SpMemoryStream SpMemoryStream;
 1046#endif /* defined __cplusplus */
 1047#endif /* defined __SpMemoryStream_FWD_DEFINED__ */
 1048
 1049/* Headers for imported files */
 1050
 1051#include <oaidl.h>
 1052#include <ocidl.h>
 1053
 1054#ifdef __cplusplus
 1055extern "C" {
 1056#endif
 1057
 1058#ifndef _SAPI_VER
 1059#error "you have to include <sapi.h> header before this."
 1060#endif
 1061#if 0
 1062typedef struct WAVEFORMATEX {
 1063    WORD wFormatTag;
 1064    WORD nChannels;
 1065    DWORD nSamplesPerSec;
 1066    DWORD nAvgBytesPerSec;
 1067    WORD nBlockAlign;
 1068    WORD wBitsPerSample;
 1069    WORD cbSize;
 1070} WAVEFORMATEX;
 1071#endif
 1072#ifndef __ISpNotifySource_FWD_DEFINED__
 1073#define __ISpNotifySource_FWD_DEFINED__
 1074typedef interface ISpNotifySource ISpNotifySource;
 1075#ifdef __cplusplus
 1076interface ISpNotifySource;
 1077#endif /* __cplusplus */
 1078#endif
 1079
 1080#ifndef __ISpNotifySink_FWD_DEFINED__
 1081#define __ISpNotifySink_FWD_DEFINED__
 1082typedef interface ISpNotifySink ISpNotifySink;
 1083#ifdef __cplusplus
 1084interface ISpNotifySink;
 1085#endif /* __cplusplus */
 1086#endif
 1087
 1088#ifndef __ISpNotifyTranslator_FWD_DEFINED__
 1089#define __ISpNotifyTranslator_FWD_DEFINED__
 1090typedef interface ISpNotifyTranslator ISpNotifyTranslator;
 1091#ifdef __cplusplus
 1092interface ISpNotifyTranslator;
 1093#endif /* __cplusplus */
 1094#endif
 1095
 1096#ifndef __ISpDataKey_FWD_DEFINED__
 1097#define __ISpDataKey_FWD_DEFINED__
 1098typedef interface ISpDataKey ISpDataKey;
 1099#ifdef __cplusplus
 1100interface ISpDataKey;
 1101#endif /* __cplusplus */
 1102#endif
 1103
 1104#ifndef __ISpObjectTokenCategory_FWD_DEFINED__
 1105#define __ISpObjectTokenCategory_FWD_DEFINED__
 1106typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
 1107#ifdef __cplusplus
 1108interface ISpObjectTokenCategory;
 1109#endif /* __cplusplus */
 1110#endif
 1111
 1112#ifndef __ISpObjectToken_FWD_DEFINED__
 1113#define __ISpObjectToken_FWD_DEFINED__
 1114typedef interface ISpObjectToken ISpObjectToken;
 1115#ifdef __cplusplus
 1116interface ISpObjectToken;
 1117#endif /* __cplusplus */
 1118#endif
 1119
 1120#ifndef __IEnumSpObjectTokens_FWD_DEFINED__
 1121#define __IEnumSpObjectTokens_FWD_DEFINED__
 1122typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
 1123#ifdef __cplusplus
 1124interface IEnumSpObjectTokens;
 1125#endif /* __cplusplus */
 1126#endif
 1127
 1128#ifndef __ISpObjectWithToken_FWD_DEFINED__
 1129#define __ISpObjectWithToken_FWD_DEFINED__
 1130typedef interface ISpObjectWithToken ISpObjectWithToken;
 1131#ifdef __cplusplus
 1132interface ISpObjectWithToken;
 1133#endif /* __cplusplus */
 1134#endif
 1135
 1136#ifndef __ISpResourceManager_FWD_DEFINED__
 1137#define __ISpResourceManager_FWD_DEFINED__
 1138typedef interface ISpResourceManager ISpResourceManager;
 1139#ifdef __cplusplus
 1140interface ISpResourceManager;
 1141#endif /* __cplusplus */
 1142#endif
 1143
 1144#ifndef __ISpEventSource_FWD_DEFINED__
 1145#define __ISpEventSource_FWD_DEFINED__
 1146typedef interface ISpEventSource ISpEventSource;
 1147#ifdef __cplusplus
 1148interface ISpEventSource;
 1149#endif /* __cplusplus */
 1150#endif
 1151
 1152#ifndef __ISpEventSink_FWD_DEFINED__
 1153#define __ISpEventSink_FWD_DEFINED__
 1154typedef interface ISpEventSink ISpEventSink;
 1155#ifdef __cplusplus
 1156interface ISpEventSink;
 1157#endif /* __cplusplus */
 1158#endif
 1159
 1160#ifndef __ISpStreamFormat_FWD_DEFINED__
 1161#define __ISpStreamFormat_FWD_DEFINED__
 1162typedef interface ISpStreamFormat ISpStreamFormat;
 1163#ifdef __cplusplus
 1164interface ISpStreamFormat;
 1165#endif /* __cplusplus */
 1166#endif
 1167
 1168#ifndef __ISpStream_FWD_DEFINED__
 1169#define __ISpStream_FWD_DEFINED__
 1170typedef interface ISpStream ISpStream;
 1171#ifdef __cplusplus
 1172interface ISpStream;
 1173#endif /* __cplusplus */
 1174#endif
 1175
 1176#ifndef __ISpStreamFormatConverter_FWD_DEFINED__
 1177#define __ISpStreamFormatConverter_FWD_DEFINED__
 1178typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
 1179#ifdef __cplusplus
 1180interface ISpStreamFormatConverter;
 1181#endif /* __cplusplus */
 1182#endif
 1183
 1184#ifndef __ISpAudio_FWD_DEFINED__
 1185#define __ISpAudio_FWD_DEFINED__
 1186typedef interface ISpAudio ISpAudio;
 1187#ifdef __cplusplus
 1188interface ISpAudio;
 1189#endif /* __cplusplus */
 1190#endif
 1191
 1192#ifndef __ISpMMSysAudio_FWD_DEFINED__
 1193#define __ISpMMSysAudio_FWD_DEFINED__
 1194typedef interface ISpMMSysAudio ISpMMSysAudio;
 1195#ifdef __cplusplus
 1196interface ISpMMSysAudio;
 1197#endif /* __cplusplus */
 1198#endif
 1199
 1200#ifndef __ISpTranscript_FWD_DEFINED__
 1201#define __ISpTranscript_FWD_DEFINED__
 1202typedef interface ISpTranscript ISpTranscript;
 1203#ifdef __cplusplus
 1204interface ISpTranscript;
 1205#endif /* __cplusplus */
 1206#endif
 1207
 1208#ifndef __ISpVoice_FWD_DEFINED__
 1209#define __ISpVoice_FWD_DEFINED__
 1210typedef interface ISpVoice ISpVoice;
 1211#ifdef __cplusplus
 1212interface ISpVoice;
 1213#endif /* __cplusplus */
 1214#endif
 1215
 1216#ifndef __ISpRecoResult_FWD_DEFINED__
 1217#define __ISpRecoResult_FWD_DEFINED__
 1218typedef interface ISpRecoResult ISpRecoResult;
 1219#ifdef __cplusplus
 1220interface ISpRecoResult;
 1221#endif /* __cplusplus */
 1222#endif
 1223
 1224#ifndef __ISpRecoContext_FWD_DEFINED__
 1225#define __ISpRecoContext_FWD_DEFINED__
 1226typedef interface ISpRecoContext ISpRecoContext;
 1227#ifdef __cplusplus
 1228interface ISpRecoContext;
 1229#endif /* __cplusplus */
 1230#endif
 1231
 1232#ifndef __ISpRecognizer_FWD_DEFINED__
 1233#define __ISpRecognizer_FWD_DEFINED__
 1234typedef interface ISpRecognizer ISpRecognizer;
 1235#ifdef __cplusplus
 1236interface ISpRecognizer;
 1237#endif /* __cplusplus */
 1238#endif
 1239
 1240#ifndef __ISpProperties_FWD_DEFINED__
 1241#define __ISpProperties_FWD_DEFINED__
 1242typedef interface ISpProperties ISpProperties;
 1243#ifdef __cplusplus
 1244interface ISpProperties;
 1245#endif /* __cplusplus */
 1246#endif
 1247
 1248#ifndef __ISpLexicon_FWD_DEFINED__
 1249#define __ISpLexicon_FWD_DEFINED__
 1250typedef interface ISpLexicon ISpLexicon;
 1251#ifdef __cplusplus
 1252interface ISpLexicon;
 1253#endif /* __cplusplus */
 1254#endif
 1255
 1256#ifndef __ISpPhoneConverter_FWD_DEFINED__
 1257#define __ISpPhoneConverter_FWD_DEFINED__
 1258typedef interface ISpPhoneConverter ISpPhoneConverter;
 1259#ifdef __cplusplus
 1260interface ISpPhoneConverter;
 1261#endif /* __cplusplus */
 1262#endif
 1263
 1264#ifndef __ISpPhrase_FWD_DEFINED__
 1265#define __ISpPhrase_FWD_DEFINED__
 1266typedef interface ISpPhrase ISpPhrase;
 1267#ifdef __cplusplus
 1268interface ISpPhrase;
 1269#endif /* __cplusplus */
 1270#endif
 1271
 1272#ifndef __ISpRecoContext2_FWD_DEFINED__
 1273#define __ISpRecoContext2_FWD_DEFINED__
 1274typedef interface ISpRecoContext2 ISpRecoContext2;
 1275#ifdef __cplusplus
 1276interface ISpRecoContext2;
 1277#endif /* __cplusplus */
 1278#endif
 1279
 1280#ifndef __ISpRecognizer2_FWD_DEFINED__
 1281#define __ISpRecognizer2_FWD_DEFINED__
 1282typedef interface ISpRecognizer2 ISpRecognizer2;
 1283#ifdef __cplusplus
 1284interface ISpRecognizer2;
 1285#endif /* __cplusplus */
 1286#endif
 1287
 1288#ifndef __ISpShortcut_FWD_DEFINED__
 1289#define __ISpShortcut_FWD_DEFINED__
 1290typedef interface ISpShortcut ISpShortcut;
 1291#ifdef __cplusplus
 1292interface ISpShortcut;
 1293#endif /* __cplusplus */
 1294#endif
 1295
 1296#ifndef __ISpPhoneticAlphabetConverter_FWD_DEFINED__
 1297#define __ISpPhoneticAlphabetConverter_FWD_DEFINED__
 1298typedef interface ISpPhoneticAlphabetConverter ISpPhoneticAlphabetConverter;
 1299#ifdef __cplusplus
 1300interface ISpPhoneticAlphabetConverter;
 1301#endif /* __cplusplus */
 1302#endif
 1303
 1304#ifndef __ISpPhoneticAlphabetSelection_FWD_DEFINED__
 1305#define __ISpPhoneticAlphabetSelection_FWD_DEFINED__
 1306typedef interface ISpPhoneticAlphabetSelection ISpPhoneticAlphabetSelection;
 1307#ifdef __cplusplus
 1308interface ISpPhoneticAlphabetSelection;
 1309#endif /* __cplusplus */
 1310#endif
 1311
 1312#ifndef __ISpRecoGrammar2_FWD_DEFINED__
 1313#define __ISpRecoGrammar2_FWD_DEFINED__
 1314typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
 1315#ifdef __cplusplus
 1316interface ISpRecoGrammar2;
 1317#endif /* __cplusplus */
 1318#endif
 1319
 1320#ifndef __ISpeechResourceLoader_FWD_DEFINED__
 1321#define __ISpeechResourceLoader_FWD_DEFINED__
 1322typedef interface ISpeechResourceLoader ISpeechResourceLoader;
 1323#ifdef __cplusplus
 1324interface ISpeechResourceLoader;
 1325#endif /* __cplusplus */
 1326#endif
 1327
 1328typedef enum SPDATAKEYLOCATION {
 1329    SPDKL_DefaultLocation = 0,
 1330    SPDKL_CurrentUser = 1,
 1331    SPDKL_LocalMachine = 2,
 1332    SPDKL_CurrentConfig = 5
 1333} SPDATAKEYLOCATION;
 1334typedef enum SPSTREAMFORMAT {
 1335    SPSF_Default = -1,
 1336    SPSF_NoAssignedFormat = 0,
 1337    SPSF_Text = 1,
 1338    SPSF_NonStandardFormat = 2,
 1339    SPSF_ExtendedAudioFormat = 3,
 1340    SPSF_8kHz8BitMono = 4,
 1341    SPSF_8kHz8BitStereo = 5,
 1342    SPSF_8kHz16BitMono = 6,
 1343    SPSF_8kHz16BitStereo = 7,
 1344    SPSF_11kHz8BitMono = 8,
 1345    SPSF_11kHz8BitStereo = 9,
 1346    SPSF_11kHz16BitMono = 10,
 1347    SPSF_11kHz16BitStereo = 11,
 1348    SPSF_12kHz8BitMono = 12,
 1349    SPSF_12kHz8BitStereo = 13,
 1350    SPSF_12kHz16BitMono = 14,
 1351    SPSF_12kHz16BitStereo = 15,
 1352    SPSF_16kHz8BitMono = 16,
 1353    SPSF_16kHz8BitStereo = 17,
 1354    SPSF_16kHz16BitMono = 18,
 1355    SPSF_16kHz16BitStereo = 19,
 1356    SPSF_22kHz8BitMono = 20,
 1357    SPSF_22kHz8BitStereo = 21,
 1358    SPSF_22kHz16BitMono = 22,
 1359    SPSF_22kHz16BitStereo = 23,
 1360    SPSF_24kHz8BitMono = 24,
 1361    SPSF_24kHz8BitStereo = 25,
 1362    SPSF_24kHz16BitMono = 26,
 1363    SPSF_24kHz16BitStereo = 27,
 1364    SPSF_32kHz8BitMono = 28,
 1365    SPSF_32kHz8BitStereo = 29,
 1366    SPSF_32kHz16BitMono = 30,
 1367    SPSF_32kHz16BitStereo = 31,
 1368    SPSF_44kHz8BitMono = 32,
 1369    SPSF_44kHz8BitStereo = 33,
 1370    SPSF_44kHz16BitMono = 34,
 1371    SPSF_44kHz16BitStereo = 35,
 1372    SPSF_48kHz8BitMono = 36,
 1373    SPSF_48kHz8BitStereo = 37,
 1374    SPSF_48kHz16BitMono = 38,
 1375    SPSF_48kHz16BitStereo = 39,
 1376    SPSF_TrueSpeech_8kHz1BitMono = 40,
 1377    SPSF_CCITT_ALaw_8kHzMono = 41,
 1378    SPSF_CCITT_ALaw_8kHzStereo = 42,
 1379    SPSF_CCITT_ALaw_11kHzMono = 43,
 1380    SPSF_CCITT_ALaw_11kHzStereo = 44,
 1381    SPSF_CCITT_ALaw_22kHzMono = 45,
 1382    SPSF_CCITT_ALaw_22kHzStereo = 46,
 1383    SPSF_CCITT_ALaw_44kHzMono = 47,
 1384    SPSF_CCITT_ALaw_44kHzStereo = 48,
 1385    SPSF_CCITT_uLaw_8kHzMono = 49,
 1386    SPSF_CCITT_uLaw_8kHzStereo = 50,
 1387    SPSF_CCITT_uLaw_11kHzMono = 51,
 1388    SPSF_CCITT_uLaw_11kHzStereo = 52,
 1389    SPSF_CCITT_uLaw_22kHzMono = 53,
 1390    SPSF_CCITT_uLaw_22kHzStereo = 54,
 1391    SPSF_CCITT_uLaw_44kHzMono = 55,
 1392    SPSF_CCITT_uLaw_44kHzStereo = 56,
 1393    SPSF_ADPCM_8kHzMono = 57,
 1394    SPSF_ADPCM_8kHzStereo = 58,
 1395    SPSF_ADPCM_11kHzMono = 59,
 1396    SPSF_ADPCM_11kHzStereo = 60,
 1397    SPSF_ADPCM_22kHzMono = 61,
 1398    SPSF_ADPCM_22kHzStereo = 62,
 1399    SPSF_ADPCM_44kHzMono = 63,
 1400    SPSF_ADPCM_44kHzStereo = 64,
 1401    SPSF_GSM610_8kHzMono = 65,
 1402    SPSF_GSM610_11kHzMono = 66,
 1403    SPSF_GSM610_22kHzMono = 67,
 1404    SPSF_GSM610_44kHzMono = 68,
 1405    SPSF_NUM_FORMATS = 69
 1406} SPSTREAMFORMAT;
 1407typedef enum SPEVENTLPARAMTYPE {
 1408    SPET_LPARAM_IS_UNDEFINED = 0,
 1409    SPET_LPARAM_IS_TOKEN = 1,
 1410    SPET_LPARAM_IS_OBJECT = 2,
 1411    SPET_LPARAM_IS_POINTER = 3,
 1412    SPET_LPARAM_IS_STRING = 4
 1413} SPEVENTLPARAMTYPE;
 1414typedef enum SPEVENTENUM {
 1415    SPEI_UNDEFINED = 0,
 1416    SPEI_START_INPUT_STREAM = 1,
 1417    SPEI_END_INPUT_STREAM = 2,
 1418    SPEI_VOICE_CHANGE = 3,
 1419    SPEI_TTS_BOOKMARK = 4,
 1420    SPEI_WORD_BOUNDARY = 5,
 1421    SPEI_PHONEME = 6,
 1422    SPEI_SENTENCE_BOUNDARY = 7,
 1423    SPEI_VISEME = 8,
 1424    SPEI_TTS_AUDIO_LEVEL = 9,
 1425    SPEI_TTS_PRIVATE = 15,
 1426    SPEI_MIN_TTS = 1,
 1427    SPEI_MAX_TTS = 15,
 1428    SPEI_END_SR_STREAM = 34,
 1429    SPEI_SOUND_START = 35,
 1430    SPEI_SOUND_END = 36,
 1431    SPEI_PHRASE_START = 37,
 1432    SPEI_RECOGNITION = 38,
 1433    SPEI_HYPOTHESIS = 39,
 1434    SPEI_SR_BOOKMARK = 40,
 1435    SPEI_PROPERTY_NUM_CHANGE = 41,
 1436    SPEI_PROPERTY_STRING_CHANGE = 42,
 1437    SPEI_FALSE_RECOGNITION = 43,
 1438    SPEI_INTERFERENCE = 44,
 1439    SPEI_REQUEST_UI = 45,
 1440    SPEI_RECO_STATE_CHANGE = 46,
 1441    SPEI_ADAPTATION = 47,
 1442    SPEI_START_SR_STREAM = 48,
 1443    SPEI_RECO_OTHER_CONTEXT = 49,
 1444    SPEI_SR_AUDIO_LEVEL = 50,
 1445    SPEI_SR_RETAINEDAUDIO = 51,
 1446    SPEI_SR_PRIVATE = 52,
 1447    SPEI_RESERVED4 = 53,
 1448    SPEI_RESERVED5 = 54,
 1449    SPEI_RESERVED6 = 55,
 1450    SPEI_MIN_SR = 34,
 1451    SPEI_MAX_SR = 55,
 1452    SPEI_RESERVED1 = 30,
 1453    SPEI_RESERVED2 = 33,
 1454    SPEI_RESERVED3 = 63
 1455} SPEVENTENUM;
 1456typedef enum SPINTERFERENCE {
 1457    SPINTERFERENCE_NONE = 0,
 1458    SPINTERFERENCE_NOISE = 1,
 1459    SPINTERFERENCE_NOSIGNAL = 2,
 1460    SPINTERFERENCE_TOOLOUD = 3,
 1461    SPINTERFERENCE_TOOQUIET = 4,
 1462    SPINTERFERENCE_TOOFAST = 5,
 1463    SPINTERFERENCE_TOOSLOW = 6,
 1464    SPINTERFERENCE_LATENCY_WARNING = 7,
 1465    SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN = 8,
 1466    SPINTERFERENCE_LATENCY_TRUNCATE_END = 9
 1467} SPINTERFERENCE;
 1468typedef enum SPENDSRSTREAMFLAGS {
 1469    SPESF_NONE = 0,
 1470    SPESF_STREAM_RELEASED = 1,
 1471    SPESF_EMULATED = 2
 1472} SPENDSRSTREAMFLAGS;
 1473typedef enum SPVFEATURE {
 1474    SPVFEATURE_STRESSED = 1,
 1475    SPVFEATURE_EMPHASIS = 2
 1476} SPVFEATURE;
 1477typedef enum SPVISEMES {
 1478    SP_VISEME_0 = 0,
 1479    SP_VISEME_1 = 1,
 1480    SP_VISEME_2 = 2,
 1481    SP_VISEME_3 = 3,
 1482    SP_VISEME_4 = 4,
 1483    SP_VISEME_5 = 5,
 1484    SP_VISEME_6 = 6,
 1485    SP_VISEME_7 = 7,
 1486    SP_VISEME_8 = 8,
 1487    SP_VISEME_9 = 9,
 1488    SP_VISEME_10 = 10,
 1489    SP_VISEME_11 = 11,
 1490    SP_VISEME_12 = 12,
 1491    SP_VISEME_13 = 13,
 1492    SP_VISEME_14 = 14,
 1493    SP_VISEME_15 = 15,
 1494    SP_VISEME_16 = 16,
 1495    SP_VISEME_17 = 17,
 1496    SP_VISEME_18 = 18,
 1497    SP_VISEME_19 = 19,
 1498    SP_VISEME_20 = 20,
 1499    SP_VISEME_21 = 21
 1500} SPVISEMES;
 1501typedef enum SPFILEMODE {
 1502    SPFM_OPEN_READONLY = 0,
 1503    SPFM_OPEN_READWRITE = 1,
 1504    SPFM_CREATE = 2,
 1505    SPFM_CREATE_ALWAYS = 3,
 1506    SPFM_NUM_MODES = 4
 1507} SPFILEMODE;
 1508typedef enum _SPAUDIOSTATE {
 1509    SPAS_CLOSED = 0,
 1510    SPAS_STOP = 1,
 1511    SPAS_PAUSE = 2,
 1512    SPAS_RUN = 3
 1513} SPAUDIOSTATE;
 1514typedef enum SPDISPLYATTRIBUTES {
 1515    SPAF_ONE_TRAILING_SPACE = 0x2,
 1516    SPAF_TWO_TRAILING_SPACES = 0x4,
 1517    SPAF_CONSUME_LEADING_SPACES = 0x8,
 1518    SPAF_BUFFER_POSITION = 0x10,
 1519    SPAF_ALL = 0x1f,
 1520    SPAF_USER_SPECIFIED = 0x80
 1521} SPDISPLAYATTRIBUTES;
 1522typedef enum SPPHRASEPROPERTYUNIONTYPE {
 1523    SPPPUT_UNUSED = 0,
 1524    SPPPUT_ARRAY_INDEX = 1
 1525} SPPHRASEPROPERTYUNIONTYPE;
 1526typedef enum SPSEMANTICFORMAT {
 1527    SPSMF_SAPI_PROPERTIES = 0,
 1528    SPSMF_SRGS_SEMANTICINTERPRETATION_MS = 1,
 1529    SPSMF_SRGS_SAPIPROPERTIES = 2,
 1530    SPSMF_UPS = 4,
 1531    SPSMF_SRGS_SEMANTICINTERPRETATION_W3C = 8
 1532} SPSEMANTICFORMAT;
 1533typedef enum SPRECOEVENTFLAGS {
 1534    SPREF_AutoPause = 0x1,
 1535    SPREF_Emulated = 0x2,
 1536    SPREF_SMLTimeout = 0x4,
 1537    SPREF_ExtendableParse = 0x8,
 1538    SPREF_ReSent = 0x10,
 1539    SPREF_Hypothesis = 0x20,
 1540    SPREF_FalseRecognition = 0x40
 1541} SPRECOEVENTFLAGS;
 1542typedef enum SPPARTOFSPEECH {
 1543    SPPS_NotOverriden = -1,
 1544    SPPS_Unknown = 0,
 1545    SPPS_Noun = 0x1000,
 1546    SPPS_Verb = 0x2000,
 1547    SPPS_Modifier = 0x3000,
 1548    SPPS_Function = 0x4000,
 1549    SPPS_Interjection = 0x5000,
 1550    SPPS_Noncontent = 0x6000,
 1551    SPPS_LMA = 0x7000,
 1552    SPPS_SuppressWord = 0xf000
 1553} SPPARTOFSPEECH;
 1554typedef enum SPLEXICONTYPE {
 1555    eLEXTYPE_USER = 0x1,
 1556    eLEXTYPE_APP = 0x2,
 1557    eLEXTYPE_VENDORLEXICON = 0x4,
 1558    eLEXTYPE_LETTERTOSOUND = 0x8,
 1559    eLEXTYPE_MORPHOLOGY = 0x10,
 1560    eLEXTYPE_RESERVED4 = 0x20,
 1561    eLEXTYPE_USER_SHORTCUT = 0x40,
 1562    eLEXTYPE_RESERVED6 = 0x80,
 1563    eLEXTYPE_RESERVED7 = 0x100,
 1564    eLEXTYPE_RESERVED8 = 0x200,
 1565    eLEXTYPE_RESERVED9 = 0x400,
 1566    eLEXTYPE_RESERVED10 = 0x800,
 1567    eLEXTYPE_PRIVATE1 = 0x1000,
 1568    eLEXTYPE_PRIVATE2 = 0x2000,
 1569    eLEXTYPE_PRIVATE3 = 0x4000,
 1570    eLEXTYPE_PRIVATE4 = 0x8000,
 1571    eLEXTYPE_PRIVATE5 = 0x10000,
 1572    eLEXTYPE_PRIVATE6 = 0x20000,
 1573    eLEXTYPE_PRIVATE7 = 0x40000,
 1574    eLEXTYPE_PRIVATE8 = 0x80000,
 1575    eLEXTYPE_PRIVATE9 = 0x100000,
 1576    eLEXTYPE_PRIVATE10 = 0x200000,
 1577    eLEXTYPE_PRIVATE11 = 0x400000,
 1578    eLEXTYPE_PRIVATE12 = 0x800000,
 1579    eLEXTYPE_PRIVATE13 = 0x1000000,
 1580    eLEXTYPE_PRIVATE14 = 0x2000000,
 1581    eLEXTYPE_PRIVATE15 = 0x4000000,
 1582    eLEXTYPE_PRIVATE16 = 0x8000000,
 1583    eLEXTYPE_PRIVATE17 = 0x10000000,
 1584    eLEXTYPE_PRIVATE18 = 0x20000000,
 1585    eLEXTYPE_PRIVATE19 = 0x40000000,
 1586    eLEXTYPE_PRIVATE20 = 0x80000000u
 1587} SPLEXICONTYPE;
 1588typedef enum SPWORDTYPE {
 1589    eWORDTYPE_ADDED = 1,
 1590    eWORDTYPE_DELETED = 2
 1591} SPWORDTYPE;
 1592typedef enum SPPRONUNCIATIONFLAGS {
 1593    ePRONFLAG_USED = 1
 1594} SPPRONUNCIATIONFLAGS;
 1595typedef enum SPSHORTCUTTYPE {
 1596    SPSHT_NotOverriden = -1,
 1597    SPSHT_Unknown = 0,
 1598    SPSHT_EMAIL = 0x1000,
 1599    SPSHT_OTHER = 0x2000,
 1600    SPPS_RESERVED1 = 0x3000,
 1601    SPPS_RESERVED2 = 0x4000,
 1602    SPPS_RESERVED3 = 0x5000,
 1603    SPPS_RESERVED4 = 0xf000
 1604} SPSHORTCUTTYPE;
 1605typedef enum SPVALUETYPE {
 1606    SPDF_PROPERTY = 0x1,
 1607    SPDF_REPLACEMENT = 0x2,
 1608    SPDF_RULE = 0x4,
 1609    SPDF_DISPLAYTEXT = 0x8,
 1610    SPDF_LEXICALFORM = 0x10,
 1611    SPDF_PRONUNCIATION = 0x20,
 1612    SPDF_AUDIO = 0x40,
 1613    SPDF_ALTERNATES = 0x80,
 1614    SPDF_ALL = 0xff
 1615} SPVALUETYPE;
 1616typedef enum SPPHRASERNG {
 1617    SPPR_ALL_ELEMENTS = -1
 1618} SPPHRASERNG;
 1619typedef enum SPVACTIONS {
 1620    SPVA_Speak = 0,
 1621    SPVA_Silence = 1,
 1622    SPVA_Pronounce = 2,
 1623    SPVA_Bookmark = 3,
 1624    SPVA_SpellOut = 4,
 1625    SPVA_Section = 5,
 1626    SPVA_ParseUnknownTag = 6
 1627} SPVACTIONS;
 1628typedef enum SPRUNSTATE {
 1629    SPRS_DONE = 1,
 1630    SPRS_IS_SPEAKING = 2
 1631} SPRUNSTATE;
 1632typedef enum SPVLIMITS {
 1633    SPMIN_VOLUME = 0,
 1634    SPMAX_VOLUME = 100,
 1635    SPMIN_RATE = -10,
 1636    SPMAX_RATE = 10
 1637} SPVLIMITS;
 1638typedef enum SPVPRIORITY {
 1639    SPVPRI_NORMAL = 0,
 1640    SPVPRI_ALERT = 1,
 1641    SPVPRI_OVER = 2
 1642} SPVPRIORITY;
 1643EXTERN_C const GUID SPDFID_Text;
 1644EXTERN_C const GUID SPDFID_WaveFormatEx;
 1645
 1646#define SP_LOW_CONFIDENCE (-1)
 1647
 1648#define SP_NORMAL_CONFIDENCE (0)
 1649
 1650#define SP_HIGH_CONFIDENCE (+1)
 1651
 1652#define DEFAULT_WEIGHT (1)
 1653
 1654#define SP_MAX_WORD_LENGTH (128)
 1655
 1656#define SP_MAX_PRON_LENGTH (384)
 1657
 1658#define SP_EMULATE_RESULT (0x40000000)
 1659
 1660
 1661#ifdef __cplusplus
 1662interface ISpNotifyCallback {
 1663  virtual HRESULT STDMETHODCALLTYPE NotifyCallback(WPARAM wParam, LPARAM lParam) = 0;
 1664};
 1665#else
 1666typedef void *ISpNotifyCallback;
 1667#endif
 1668#if 0
 1669typedef void *SPNOTIFYCALLBACK;
 1670#else
 1671typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);
 1672#endif
 1673/*****************************************************************************
 1674 * ISpNotifySource interface
 1675 */
 1676#ifndef __ISpNotifySource_INTERFACE_DEFINED__
 1677#define __ISpNotifySource_INTERFACE_DEFINED__
 1678
 1679DEFINE_GUID(IID_ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 1680#if defined(__cplusplus) && !defined(CINTERFACE)
 1681MIDL_INTERFACE("5eff4aef-8487-11d2-961c-00c04f8ee628")
 1682ISpNotifySource : public IUnknown
 1683{
 1684    virtual HRESULT STDMETHODCALLTYPE SetNotifySink(
 1685        ISpNotifySink *pNotifySink) = 0;
 1686
 1687    virtual HRESULT STDMETHODCALLTYPE SetNotifyWindowMessage(
 1688        HWND hWnd,
 1689        UINT Msg,
 1690        WPARAM wParam,
 1691        LPARAM lParam) = 0;
 1692
 1693    virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackFunction(
 1694        SPNOTIFYCALLBACK *pfnCallback,
 1695        WPARAM wParam,
 1696        LPARAM lParam) = 0;
 1697
 1698    virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackInterface(
 1699        ISpNotifyCallback *pSpCallback,
 1700        WPARAM wParam,
 1701        LPARAM lParam) = 0;
 1702
 1703    virtual HRESULT STDMETHODCALLTYPE SetNotifyWin32Event(
 1704        ) = 0;
 1705
 1706    virtual HRESULT STDMETHODCALLTYPE WaitForNotifyEvent(
 1707        DWORD dwMilliseconds) = 0;
 1708
 1709    virtual HANDLE STDMETHODCALLTYPE GetNotifyEventHandle(
 1710        ) = 0;
 1711
 1712};
 1713#ifdef __CRT_UUID_DECL
 1714__CRT_UUID_DECL(ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 1715#endif
 1716#else
 1717typedef struct ISpNotifySourceVtbl {
 1718    BEGIN_INTERFACE
 1719
 1720    /*** IUnknown methods ***/
 1721    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1722        ISpNotifySource *This,
 1723        REFIID riid,
 1724        void **ppvObject);
 1725
 1726    ULONG (STDMETHODCALLTYPE *AddRef)(
 1727        ISpNotifySource *This);
 1728
 1729    ULONG (STDMETHODCALLTYPE *Release)(
 1730        ISpNotifySource *This);
 1731
 1732    /*** ISpNotifySource methods ***/
 1733    HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
 1734        ISpNotifySource *This,
 1735        ISpNotifySink *pNotifySink);
 1736
 1737    HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
 1738        ISpNotifySource *This,
 1739        HWND hWnd,
 1740        UINT Msg,
 1741        WPARAM wParam,
 1742        LPARAM lParam);
 1743
 1744    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
 1745        ISpNotifySource *This,
 1746        SPNOTIFYCALLBACK *pfnCallback,
 1747        WPARAM wParam,
 1748        LPARAM lParam);
 1749
 1750    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
 1751        ISpNotifySource *This,
 1752        ISpNotifyCallback *pSpCallback,
 1753        WPARAM wParam,
 1754        LPARAM lParam);
 1755
 1756    HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
 1757        ISpNotifySource *This);
 1758
 1759    HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
 1760        ISpNotifySource *This,
 1761        DWORD dwMilliseconds);
 1762
 1763    HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
 1764        ISpNotifySource *This);
 1765
 1766    END_INTERFACE
 1767} ISpNotifySourceVtbl;
 1768
 1769interface ISpNotifySource {
 1770    CONST_VTBL ISpNotifySourceVtbl* lpVtbl;
 1771};
 1772
 1773#ifdef COBJMACROS
 1774#ifndef WIDL_C_INLINE_WRAPPERS
 1775/*** IUnknown methods ***/
 1776#define ISpNotifySource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1777#define ISpNotifySource_AddRef(This) (This)->lpVtbl->AddRef(This)
 1778#define ISpNotifySource_Release(This) (This)->lpVtbl->Release(This)
 1779/*** ISpNotifySource methods ***/
 1780#define ISpNotifySource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
 1781#define ISpNotifySource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
 1782#define ISpNotifySource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
 1783#define ISpNotifySource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
 1784#define ISpNotifySource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
 1785#define ISpNotifySource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
 1786#define ISpNotifySource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
 1787#else
 1788/*** IUnknown methods ***/
 1789static inline HRESULT ISpNotifySource_QueryInterface(ISpNotifySource* This,REFIID riid,void **ppvObject) {
 1790    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1791}
 1792static inline ULONG ISpNotifySource_AddRef(ISpNotifySource* This) {
 1793    return This->lpVtbl->AddRef(This);
 1794}
 1795static inline ULONG ISpNotifySource_Release(ISpNotifySource* This) {
 1796    return This->lpVtbl->Release(This);
 1797}
 1798/*** ISpNotifySource methods ***/
 1799static inline HRESULT ISpNotifySource_SetNotifySink(ISpNotifySource* This,ISpNotifySink *pNotifySink) {
 1800    return This->lpVtbl->SetNotifySink(This,pNotifySink);
 1801}
 1802static inline HRESULT ISpNotifySource_SetNotifyWindowMessage(ISpNotifySource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 1803    return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
 1804}
 1805static inline HRESULT ISpNotifySource_SetNotifyCallbackFunction(ISpNotifySource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 1806    return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
 1807}
 1808static inline HRESULT ISpNotifySource_SetNotifyCallbackInterface(ISpNotifySource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 1809    return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
 1810}
 1811static inline HRESULT ISpNotifySource_SetNotifyWin32Event(ISpNotifySource* This) {
 1812    return This->lpVtbl->SetNotifyWin32Event(This);
 1813}
 1814static inline HRESULT ISpNotifySource_WaitForNotifyEvent(ISpNotifySource* This,DWORD dwMilliseconds) {
 1815    return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
 1816}
 1817static inline HANDLE ISpNotifySource_GetNotifyEventHandle(ISpNotifySource* This) {
 1818    return This->lpVtbl->GetNotifyEventHandle(This);
 1819}
 1820#endif
 1821#endif
 1822
 1823#endif
 1824
 1825
 1826#endif  /* __ISpNotifySource_INTERFACE_DEFINED__ */
 1827
 1828/*****************************************************************************
 1829 * ISpNotifySink interface
 1830 */
 1831#ifndef __ISpNotifySink_INTERFACE_DEFINED__
 1832#define __ISpNotifySink_INTERFACE_DEFINED__
 1833
 1834DEFINE_GUID(IID_ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 1835#if defined(__cplusplus) && !defined(CINTERFACE)
 1836MIDL_INTERFACE("259684dc-37c3-11d2-9603-00c04f8ee628")
 1837ISpNotifySink : public IUnknown
 1838{
 1839    virtual HRESULT STDMETHODCALLTYPE Notify(
 1840        ) = 0;
 1841
 1842};
 1843#ifdef __CRT_UUID_DECL
 1844__CRT_UUID_DECL(ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 1845#endif
 1846#else
 1847typedef struct ISpNotifySinkVtbl {
 1848    BEGIN_INTERFACE
 1849
 1850    /*** IUnknown methods ***/
 1851    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1852        ISpNotifySink *This,
 1853        REFIID riid,
 1854        void **ppvObject);
 1855
 1856    ULONG (STDMETHODCALLTYPE *AddRef)(
 1857        ISpNotifySink *This);
 1858
 1859    ULONG (STDMETHODCALLTYPE *Release)(
 1860        ISpNotifySink *This);
 1861
 1862    /*** ISpNotifySink methods ***/
 1863    HRESULT (STDMETHODCALLTYPE *Notify)(
 1864        ISpNotifySink *This);
 1865
 1866    END_INTERFACE
 1867} ISpNotifySinkVtbl;
 1868
 1869interface ISpNotifySink {
 1870    CONST_VTBL ISpNotifySinkVtbl* lpVtbl;
 1871};
 1872
 1873#ifdef COBJMACROS
 1874#ifndef WIDL_C_INLINE_WRAPPERS
 1875/*** IUnknown methods ***/
 1876#define ISpNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1877#define ISpNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
 1878#define ISpNotifySink_Release(This) (This)->lpVtbl->Release(This)
 1879/*** ISpNotifySink methods ***/
 1880#define ISpNotifySink_Notify(This) (This)->lpVtbl->Notify(This)
 1881#else
 1882/*** IUnknown methods ***/
 1883static inline HRESULT ISpNotifySink_QueryInterface(ISpNotifySink* This,REFIID riid,void **ppvObject) {
 1884    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1885}
 1886static inline ULONG ISpNotifySink_AddRef(ISpNotifySink* This) {
 1887    return This->lpVtbl->AddRef(This);
 1888}
 1889static inline ULONG ISpNotifySink_Release(ISpNotifySink* This) {
 1890    return This->lpVtbl->Release(This);
 1891}
 1892/*** ISpNotifySink methods ***/
 1893static inline HRESULT ISpNotifySink_Notify(ISpNotifySink* This) {
 1894    return This->lpVtbl->Notify(This);
 1895}
 1896#endif
 1897#endif
 1898
 1899#endif
 1900
 1901
 1902#endif  /* __ISpNotifySink_INTERFACE_DEFINED__ */
 1903
 1904/*****************************************************************************
 1905 * ISpNotifyTranslator interface
 1906 */
 1907#ifndef __ISpNotifyTranslator_INTERFACE_DEFINED__
 1908#define __ISpNotifyTranslator_INTERFACE_DEFINED__
 1909
 1910DEFINE_GUID(IID_ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 1911#if defined(__cplusplus) && !defined(CINTERFACE)
 1912MIDL_INTERFACE("aca16614-5d3d-11d2-960e-00c04f8ee628")
 1913ISpNotifyTranslator : public ISpNotifySink
 1914{
 1915    virtual HRESULT STDMETHODCALLTYPE InitWindowMessage(
 1916        HWND hWnd,
 1917        UINT Msg,
 1918        WPARAM wParam,
 1919        LPARAM lParam) = 0;
 1920
 1921    virtual HRESULT STDMETHODCALLTYPE InitCallback(
 1922        SPNOTIFYCALLBACK *pfnCallback,
 1923        WPARAM wParam,
 1924        LPARAM lParam) = 0;
 1925
 1926    virtual HRESULT STDMETHODCALLTYPE InitSpNotifyCallback(
 1927        ISpNotifyCallback *pSpCallback,
 1928        WPARAM wParam,
 1929        LPARAM lParam) = 0;
 1930
 1931    virtual HRESULT STDMETHODCALLTYPE InitWin32Event(
 1932        HANDLE hEvent,
 1933        WINBOOL fCloseHandleOnRelease) = 0;
 1934
 1935    virtual HRESULT STDMETHODCALLTYPE Wait(
 1936        DWORD dwMilliseconds) = 0;
 1937
 1938    virtual HANDLE STDMETHODCALLTYPE GetEventHandle(
 1939        ) = 0;
 1940
 1941};
 1942#ifdef __CRT_UUID_DECL
 1943__CRT_UUID_DECL(ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 1944#endif
 1945#else
 1946typedef struct ISpNotifyTranslatorVtbl {
 1947    BEGIN_INTERFACE
 1948
 1949    /*** IUnknown methods ***/
 1950    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1951        ISpNotifyTranslator *This,
 1952        REFIID riid,
 1953        void **ppvObject);
 1954
 1955    ULONG (STDMETHODCALLTYPE *AddRef)(
 1956        ISpNotifyTranslator *This);
 1957
 1958    ULONG (STDMETHODCALLTYPE *Release)(
 1959        ISpNotifyTranslator *This);
 1960
 1961    /*** ISpNotifySink methods ***/
 1962    HRESULT (STDMETHODCALLTYPE *Notify)(
 1963        ISpNotifyTranslator *This);
 1964
 1965    /*** ISpNotifyTranslator methods ***/
 1966    HRESULT (STDMETHODCALLTYPE *InitWindowMessage)(
 1967        ISpNotifyTranslator *This,
 1968        HWND hWnd,
 1969        UINT Msg,
 1970        WPARAM wParam,
 1971        LPARAM lParam);
 1972
 1973    HRESULT (STDMETHODCALLTYPE *InitCallback)(
 1974        ISpNotifyTranslator *This,
 1975        SPNOTIFYCALLBACK *pfnCallback,
 1976        WPARAM wParam,
 1977        LPARAM lParam);
 1978
 1979    HRESULT (STDMETHODCALLTYPE *InitSpNotifyCallback)(
 1980        ISpNotifyTranslator *This,
 1981        ISpNotifyCallback *pSpCallback,
 1982        WPARAM wParam,
 1983        LPARAM lParam);
 1984
 1985    HRESULT (STDMETHODCALLTYPE *InitWin32Event)(
 1986        ISpNotifyTranslator *This,
 1987        HANDLE hEvent,
 1988        WINBOOL fCloseHandleOnRelease);
 1989
 1990    HRESULT (STDMETHODCALLTYPE *Wait)(
 1991        ISpNotifyTranslator *This,
 1992        DWORD dwMilliseconds);
 1993
 1994    HANDLE (STDMETHODCALLTYPE *GetEventHandle)(
 1995        ISpNotifyTranslator *This);
 1996
 1997    END_INTERFACE
 1998} ISpNotifyTranslatorVtbl;
 1999
 2000interface ISpNotifyTranslator {
 2001    CONST_VTBL ISpNotifyTranslatorVtbl* lpVtbl;
 2002};
 2003
 2004#ifdef COBJMACROS
 2005#ifndef WIDL_C_INLINE_WRAPPERS
 2006/*** IUnknown methods ***/
 2007#define ISpNotifyTranslator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2008#define ISpNotifyTranslator_AddRef(This) (This)->lpVtbl->AddRef(This)
 2009#define ISpNotifyTranslator_Release(This) (This)->lpVtbl->Release(This)
 2010/*** ISpNotifySink methods ***/
 2011#define ISpNotifyTranslator_Notify(This) (This)->lpVtbl->Notify(This)
 2012/*** ISpNotifyTranslator methods ***/
 2013#define ISpNotifyTranslator_InitWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam)
 2014#define ISpNotifyTranslator_InitCallback(This,pfnCallback,wParam,lParam) (This)->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam)
 2015#define ISpNotifyTranslator_InitSpNotifyCallback(This,pSpCallback,wParam,lParam) (This)->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
 2016#define ISpNotifyTranslator_InitWin32Event(This,hEvent,fCloseHandleOnRelease) (This)->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease)
 2017#define ISpNotifyTranslator_Wait(This,dwMilliseconds) (This)->lpVtbl->Wait(This,dwMilliseconds)
 2018#define ISpNotifyTranslator_GetEventHandle(This) (This)->lpVtbl->GetEventHandle(This)
 2019#else
 2020/*** IUnknown methods ***/
 2021static inline HRESULT ISpNotifyTranslator_QueryInterface(ISpNotifyTranslator* This,REFIID riid,void **ppvObject) {
 2022    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2023}
 2024static inline ULONG ISpNotifyTranslator_AddRef(ISpNotifyTranslator* This) {
 2025    return This->lpVtbl->AddRef(This);
 2026}
 2027static inline ULONG ISpNotifyTranslator_Release(ISpNotifyTranslator* This) {
 2028    return This->lpVtbl->Release(This);
 2029}
 2030/*** ISpNotifySink methods ***/
 2031static inline HRESULT ISpNotifyTranslator_Notify(ISpNotifyTranslator* This) {
 2032    return This->lpVtbl->Notify(This);
 2033}
 2034/*** ISpNotifyTranslator methods ***/
 2035static inline HRESULT ISpNotifyTranslator_InitWindowMessage(ISpNotifyTranslator* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 2036    return This->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam);
 2037}
 2038static inline HRESULT ISpNotifyTranslator_InitCallback(ISpNotifyTranslator* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 2039    return This->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam);
 2040}
 2041static inline HRESULT ISpNotifyTranslator_InitSpNotifyCallback(ISpNotifyTranslator* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 2042    return This->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam);
 2043}
 2044static inline HRESULT ISpNotifyTranslator_InitWin32Event(ISpNotifyTranslator* This,HANDLE hEvent,WINBOOL fCloseHandleOnRelease) {
 2045    return This->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease);
 2046}
 2047static inline HRESULT ISpNotifyTranslator_Wait(ISpNotifyTranslator* This,DWORD dwMilliseconds) {
 2048    return This->lpVtbl->Wait(This,dwMilliseconds);
 2049}
 2050static inline HANDLE ISpNotifyTranslator_GetEventHandle(ISpNotifyTranslator* This) {
 2051    return This->lpVtbl->GetEventHandle(This);
 2052}
 2053#endif
 2054#endif
 2055
 2056#endif
 2057
 2058
 2059#endif  /* __ISpNotifyTranslator_INTERFACE_DEFINED__ */
 2060
 2061/*****************************************************************************
 2062 * ISpDataKey interface
 2063 */
 2064#ifndef __ISpDataKey_INTERFACE_DEFINED__
 2065#define __ISpDataKey_INTERFACE_DEFINED__
 2066
 2067DEFINE_GUID(IID_ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
 2068#if defined(__cplusplus) && !defined(CINTERFACE)
 2069MIDL_INTERFACE("14056581-e16c-11d2-bb90-00c04f8ee6c0")
 2070ISpDataKey : public IUnknown
 2071{
 2072    virtual HRESULT STDMETHODCALLTYPE SetData(
 2073        LPCWSTR pszValueName,
 2074        ULONG cbData,
 2075        const BYTE *pData) = 0;
 2076
 2077    virtual HRESULT STDMETHODCALLTYPE GetData(
 2078        LPCWSTR pszValueName,
 2079        ULONG *pcbData,
 2080        BYTE *pData) = 0;
 2081
 2082    virtual HRESULT STDMETHODCALLTYPE SetStringValue(
 2083        LPCWSTR pszValueName,
 2084        LPCWSTR pszValue) = 0;
 2085
 2086    virtual HRESULT STDMETHODCALLTYPE GetStringValue(
 2087        LPCWSTR pszValueName,
 2088        LPWSTR *ppszValue) = 0;
 2089
 2090    virtual HRESULT STDMETHODCALLTYPE SetDWORD(
 2091        LPCWSTR pszValueName,
 2092        DWORD dwValue) = 0;
 2093
 2094    virtual HRESULT STDMETHODCALLTYPE GetDWORD(
 2095        LPCWSTR pszValueName,
 2096        DWORD *pdwValue) = 0;
 2097
 2098    virtual HRESULT STDMETHODCALLTYPE OpenKey(
 2099        LPCWSTR pszSubKeyName,
 2100        ISpDataKey **ppSubKey) = 0;
 2101
 2102    virtual HRESULT STDMETHODCALLTYPE CreateKey(
 2103        LPCWSTR pszSubKey,
 2104        ISpDataKey **ppSubKey) = 0;
 2105
 2106    virtual HRESULT STDMETHODCALLTYPE DeleteKey(
 2107        LPCWSTR pszSubKey) = 0;
 2108
 2109    virtual HRESULT STDMETHODCALLTYPE DeleteValue(
 2110        LPCWSTR pszValueName) = 0;
 2111
 2112    virtual HRESULT STDMETHODCALLTYPE EnumKeys(
 2113        ULONG Index,
 2114        LPWSTR *ppszSubKeyName) = 0;
 2115
 2116    virtual HRESULT STDMETHODCALLTYPE EnumValues(
 2117        ULONG Index,
 2118        LPWSTR *ppszValueName) = 0;
 2119
 2120};
 2121#ifdef __CRT_UUID_DECL
 2122__CRT_UUID_DECL(ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
 2123#endif
 2124#else
 2125typedef struct ISpDataKeyVtbl {
 2126    BEGIN_INTERFACE
 2127
 2128    /*** IUnknown methods ***/
 2129    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2130        ISpDataKey *This,
 2131        REFIID riid,
 2132        void **ppvObject);
 2133
 2134    ULONG (STDMETHODCALLTYPE *AddRef)(
 2135        ISpDataKey *This);
 2136
 2137    ULONG (STDMETHODCALLTYPE *Release)(
 2138        ISpDataKey *This);
 2139
 2140    /*** ISpDataKey methods ***/
 2141    HRESULT (STDMETHODCALLTYPE *SetData)(
 2142        ISpDataKey *This,
 2143        LPCWSTR pszValueName,
 2144        ULONG cbData,
 2145        const BYTE *pData);
 2146
 2147    HRESULT (STDMETHODCALLTYPE *GetData)(
 2148        ISpDataKey *This,
 2149        LPCWSTR pszValueName,
 2150        ULONG *pcbData,
 2151        BYTE *pData);
 2152
 2153    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 2154        ISpDataKey *This,
 2155        LPCWSTR pszValueName,
 2156        LPCWSTR pszValue);
 2157
 2158    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 2159        ISpDataKey *This,
 2160        LPCWSTR pszValueName,
 2161        LPWSTR *ppszValue);
 2162
 2163    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 2164        ISpDataKey *This,
 2165        LPCWSTR pszValueName,
 2166        DWORD dwValue);
 2167
 2168    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 2169        ISpDataKey *This,
 2170        LPCWSTR pszValueName,
 2171        DWORD *pdwValue);
 2172
 2173    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 2174        ISpDataKey *This,
 2175        LPCWSTR pszSubKeyName,
 2176        ISpDataKey **ppSubKey);
 2177
 2178    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 2179        ISpDataKey *This,
 2180        LPCWSTR pszSubKey,
 2181        ISpDataKey **ppSubKey);
 2182
 2183    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 2184        ISpDataKey *This,
 2185        LPCWSTR pszSubKey);
 2186
 2187    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 2188        ISpDataKey *This,
 2189        LPCWSTR pszValueName);
 2190
 2191    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 2192        ISpDataKey *This,
 2193        ULONG Index,
 2194        LPWSTR *ppszSubKeyName);
 2195
 2196    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 2197        ISpDataKey *This,
 2198        ULONG Index,
 2199        LPWSTR *ppszValueName);
 2200
 2201    END_INTERFACE
 2202} ISpDataKeyVtbl;
 2203
 2204interface ISpDataKey {
 2205    CONST_VTBL ISpDataKeyVtbl* lpVtbl;
 2206};
 2207
 2208#ifdef COBJMACROS
 2209#ifndef WIDL_C_INLINE_WRAPPERS
 2210/*** IUnknown methods ***/
 2211#define ISpDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2212#define ISpDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
 2213#define ISpDataKey_Release(This) (This)->lpVtbl->Release(This)
 2214/*** ISpDataKey methods ***/
 2215#define ISpDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 2216#define ISpDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 2217#define ISpDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 2218#define ISpDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 2219#define ISpDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 2220#define ISpDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 2221#define ISpDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 2222#define ISpDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 2223#define ISpDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 2224#define ISpDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 2225#define ISpDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 2226#define ISpDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 2227#else
 2228/*** IUnknown methods ***/
 2229static inline HRESULT ISpDataKey_QueryInterface(ISpDataKey* This,REFIID riid,void **ppvObject) {
 2230    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2231}
 2232static inline ULONG ISpDataKey_AddRef(ISpDataKey* This) {
 2233    return This->lpVtbl->AddRef(This);
 2234}
 2235static inline ULONG ISpDataKey_Release(ISpDataKey* This) {
 2236    return This->lpVtbl->Release(This);
 2237}
 2238/*** ISpDataKey methods ***/
 2239static inline HRESULT ISpDataKey_SetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 2240    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 2241}
 2242static inline HRESULT ISpDataKey_GetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 2243    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 2244}
 2245static inline HRESULT ISpDataKey_SetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 2246    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 2247}
 2248static inline HRESULT ISpDataKey_GetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 2249    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 2250}
 2251static inline HRESULT ISpDataKey_SetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
 2252    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 2253}
 2254static inline HRESULT ISpDataKey_GetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 2255    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 2256}
 2257static inline HRESULT ISpDataKey_OpenKey(ISpDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 2258    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 2259}
 2260static inline HRESULT ISpDataKey_CreateKey(ISpDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 2261    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 2262}
 2263static inline HRESULT ISpDataKey_DeleteKey(ISpDataKey* This,LPCWSTR pszSubKey) {
 2264    return This->lpVtbl->DeleteKey(This,pszSubKey);
 2265}
 2266static inline HRESULT ISpDataKey_DeleteValue(ISpDataKey* This,LPCWSTR pszValueName) {
 2267    return This->lpVtbl->DeleteValue(This,pszValueName);
 2268}
 2269static inline HRESULT ISpDataKey_EnumKeys(ISpDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 2270    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 2271}
 2272static inline HRESULT ISpDataKey_EnumValues(ISpDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
 2273    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 2274}
 2275#endif
 2276#endif
 2277
 2278#endif
 2279
 2280
 2281#endif  /* __ISpDataKey_INTERFACE_DEFINED__ */
 2282
 2283/*****************************************************************************
 2284 * ISpObjectWithToken interface
 2285 */
 2286#ifndef __ISpObjectWithToken_INTERFACE_DEFINED__
 2287#define __ISpObjectWithToken_INTERFACE_DEFINED__
 2288
 2289DEFINE_GUID(IID_ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
 2290#if defined(__cplusplus) && !defined(CINTERFACE)
 2291MIDL_INTERFACE("5b559f40-e952-11d2-bb91-00c04f8ee6c0")
 2292ISpObjectWithToken : public IUnknown
 2293{
 2294    virtual HRESULT STDMETHODCALLTYPE SetObjectToken(
 2295        ISpObjectToken *pToken) = 0;
 2296
 2297    virtual HRESULT STDMETHODCALLTYPE GetObjectToken(
 2298        ISpObjectToken **ppToken) = 0;
 2299
 2300};
 2301#ifdef __CRT_UUID_DECL
 2302__CRT_UUID_DECL(ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
 2303#endif
 2304#else
 2305typedef struct ISpObjectWithTokenVtbl {
 2306    BEGIN_INTERFACE
 2307
 2308    /*** IUnknown methods ***/
 2309    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2310        ISpObjectWithToken *This,
 2311        REFIID riid,
 2312        void **ppvObject);
 2313
 2314    ULONG (STDMETHODCALLTYPE *AddRef)(
 2315        ISpObjectWithToken *This);
 2316
 2317    ULONG (STDMETHODCALLTYPE *Release)(
 2318        ISpObjectWithToken *This);
 2319
 2320    /*** ISpObjectWithToken methods ***/
 2321    HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
 2322        ISpObjectWithToken *This,
 2323        ISpObjectToken *pToken);
 2324
 2325    HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
 2326        ISpObjectWithToken *This,
 2327        ISpObjectToken **ppToken);
 2328
 2329    END_INTERFACE
 2330} ISpObjectWithTokenVtbl;
 2331
 2332interface ISpObjectWithToken {
 2333    CONST_VTBL ISpObjectWithTokenVtbl* lpVtbl;
 2334};
 2335
 2336#ifdef COBJMACROS
 2337#ifndef WIDL_C_INLINE_WRAPPERS
 2338/*** IUnknown methods ***/
 2339#define ISpObjectWithToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2340#define ISpObjectWithToken_AddRef(This) (This)->lpVtbl->AddRef(This)
 2341#define ISpObjectWithToken_Release(This) (This)->lpVtbl->Release(This)
 2342/*** ISpObjectWithToken methods ***/
 2343#define ISpObjectWithToken_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
 2344#define ISpObjectWithToken_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
 2345#else
 2346/*** IUnknown methods ***/
 2347static inline HRESULT ISpObjectWithToken_QueryInterface(ISpObjectWithToken* This,REFIID riid,void **ppvObject) {
 2348    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2349}
 2350static inline ULONG ISpObjectWithToken_AddRef(ISpObjectWithToken* This) {
 2351    return This->lpVtbl->AddRef(This);
 2352}
 2353static inline ULONG ISpObjectWithToken_Release(ISpObjectWithToken* This) {
 2354    return This->lpVtbl->Release(This);
 2355}
 2356/*** ISpObjectWithToken methods ***/
 2357static inline HRESULT ISpObjectWithToken_SetObjectToken(ISpObjectWithToken* This,ISpObjectToken *pToken) {
 2358    return This->lpVtbl->SetObjectToken(This,pToken);
 2359}
 2360static inline HRESULT ISpObjectWithToken_GetObjectToken(ISpObjectWithToken* This,ISpObjectToken **ppToken) {
 2361    return This->lpVtbl->GetObjectToken(This,ppToken);
 2362}
 2363#endif
 2364#endif
 2365
 2366#endif
 2367
 2368
 2369#endif  /* __ISpObjectWithToken_INTERFACE_DEFINED__ */
 2370
 2371/*****************************************************************************
 2372 * IEnumSpObjectTokens interface
 2373 */
 2374#ifndef __IEnumSpObjectTokens_INTERFACE_DEFINED__
 2375#define __IEnumSpObjectTokens_INTERFACE_DEFINED__
 2376
 2377DEFINE_GUID(IID_IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96);
 2378#if defined(__cplusplus) && !defined(CINTERFACE)
 2379MIDL_INTERFACE("06b64f9e-7fda-11d2-b4f2-00c04f797396")
 2380IEnumSpObjectTokens : public IUnknown
 2381{
 2382    virtual HRESULT STDMETHODCALLTYPE Next(
 2383        ULONG celt,
 2384        ISpObjectToken **pelt,
 2385        ULONG *pceltFetched) = 0;
 2386
 2387    virtual HRESULT STDMETHODCALLTYPE Skip(
 2388        ULONG celt) = 0;
 2389
 2390    virtual HRESULT STDMETHODCALLTYPE Reset(
 2391        ) = 0;
 2392
 2393    virtual HRESULT STDMETHODCALLTYPE Clone(
 2394        IEnumSpObjectTokens **ppEnum) = 0;
 2395
 2396    virtual HRESULT STDMETHODCALLTYPE Item(
 2397        ULONG Index,
 2398        ISpObjectToken **ppToken) = 0;
 2399
 2400    virtual HRESULT STDMETHODCALLTYPE GetCount(
 2401        ULONG *pCount) = 0;
 2402
 2403};
 2404#ifdef __CRT_UUID_DECL
 2405__CRT_UUID_DECL(IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96)
 2406#endif
 2407#else
 2408typedef struct IEnumSpObjectTokensVtbl {
 2409    BEGIN_INTERFACE
 2410
 2411    /*** IUnknown methods ***/
 2412    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2413        IEnumSpObjectTokens *This,
 2414        REFIID riid,
 2415        void **ppvObject);
 2416
 2417    ULONG (STDMETHODCALLTYPE *AddRef)(
 2418        IEnumSpObjectTokens *This);
 2419
 2420    ULONG (STDMETHODCALLTYPE *Release)(
 2421        IEnumSpObjectTokens *This);
 2422
 2423    /*** IEnumSpObjectTokens methods ***/
 2424    HRESULT (STDMETHODCALLTYPE *Next)(
 2425        IEnumSpObjectTokens *This,
 2426        ULONG celt,
 2427        ISpObjectToken **pelt,
 2428        ULONG *pceltFetched);
 2429
 2430    HRESULT (STDMETHODCALLTYPE *Skip)(
 2431        IEnumSpObjectTokens *This,
 2432        ULONG celt);
 2433
 2434    HRESULT (STDMETHODCALLTYPE *Reset)(
 2435        IEnumSpObjectTokens *This);
 2436
 2437    HRESULT (STDMETHODCALLTYPE *Clone)(
 2438        IEnumSpObjectTokens *This,
 2439        IEnumSpObjectTokens **ppEnum);
 2440
 2441    HRESULT (STDMETHODCALLTYPE *Item)(
 2442        IEnumSpObjectTokens *This,
 2443        ULONG Index,
 2444        ISpObjectToken **ppToken);
 2445
 2446    HRESULT (STDMETHODCALLTYPE *GetCount)(
 2447        IEnumSpObjectTokens *This,
 2448        ULONG *pCount);
 2449
 2450    END_INTERFACE
 2451} IEnumSpObjectTokensVtbl;
 2452
 2453interface IEnumSpObjectTokens {
 2454    CONST_VTBL IEnumSpObjectTokensVtbl* lpVtbl;
 2455};
 2456
 2457#ifdef COBJMACROS
 2458#ifndef WIDL_C_INLINE_WRAPPERS
 2459/*** IUnknown methods ***/
 2460#define IEnumSpObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2461#define IEnumSpObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
 2462#define IEnumSpObjectTokens_Release(This) (This)->lpVtbl->Release(This)
 2463/*** IEnumSpObjectTokens methods ***/
 2464#define IEnumSpObjectTokens_Next(This,celt,pelt,pceltFetched) (This)->lpVtbl->Next(This,celt,pelt,pceltFetched)
 2465#define IEnumSpObjectTokens_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
 2466#define IEnumSpObjectTokens_Reset(This) (This)->lpVtbl->Reset(This)
 2467#define IEnumSpObjectTokens_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
 2468#define IEnumSpObjectTokens_Item(This,Index,ppToken) (This)->lpVtbl->Item(This,Index,ppToken)
 2469#define IEnumSpObjectTokens_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
 2470#else
 2471/*** IUnknown methods ***/
 2472static inline HRESULT IEnumSpObjectTokens_QueryInterface(IEnumSpObjectTokens* This,REFIID riid,void **ppvObject) {
 2473    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2474}
 2475static inline ULONG IEnumSpObjectTokens_AddRef(IEnumSpObjectTokens* This) {
 2476    return This->lpVtbl->AddRef(This);
 2477}
 2478static inline ULONG IEnumSpObjectTokens_Release(IEnumSpObjectTokens* This) {
 2479    return This->lpVtbl->Release(This);
 2480}
 2481/*** IEnumSpObjectTokens methods ***/
 2482static inline HRESULT IEnumSpObjectTokens_Next(IEnumSpObjectTokens* This,ULONG celt,ISpObjectToken **pelt,ULONG *pceltFetched) {
 2483    return This->lpVtbl->Next(This,celt,pelt,pceltFetched);
 2484}
 2485static inline HRESULT IEnumSpObjectTokens_Skip(IEnumSpObjectTokens* This,ULONG celt) {
 2486    return This->lpVtbl->Skip(This,celt);
 2487}
 2488static inline HRESULT IEnumSpObjectTokens_Reset(IEnumSpObjectTokens* This) {
 2489    return This->lpVtbl->Reset(This);
 2490}
 2491static inline HRESULT IEnumSpObjectTokens_Clone(IEnumSpObjectTokens* This,IEnumSpObjectTokens **ppEnum) {
 2492    return This->lpVtbl->Clone(This,ppEnum);
 2493}
 2494static inline HRESULT IEnumSpObjectTokens_Item(IEnumSpObjectTokens* This,ULONG Index,ISpObjectToken **ppToken) {
 2495    return This->lpVtbl->Item(This,Index,ppToken);
 2496}
 2497static inline HRESULT IEnumSpObjectTokens_GetCount(IEnumSpObjectTokens* This,ULONG *pCount) {
 2498    return This->lpVtbl->GetCount(This,pCount);
 2499}
 2500#endif
 2501#endif
 2502
 2503#endif
 2504
 2505
 2506#endif  /* __IEnumSpObjectTokens_INTERFACE_DEFINED__ */
 2507
 2508/*****************************************************************************
 2509 * ISpRegDataKey interface
 2510 */
 2511#ifndef __ISpRegDataKey_INTERFACE_DEFINED__
 2512#define __ISpRegDataKey_INTERFACE_DEFINED__
 2513
 2514DEFINE_GUID(IID_ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b);
 2515#if defined(__cplusplus) && !defined(CINTERFACE)
 2516MIDL_INTERFACE("92a66e2b-c830-4149-83df-6fc2ba1e7a5b")
 2517ISpRegDataKey : public ISpDataKey
 2518{
 2519    virtual HRESULT STDMETHODCALLTYPE SetKey(
 2520        HKEY hkey,
 2521        WINBOOL fReadOnly) = 0;
 2522
 2523};
 2524#ifdef __CRT_UUID_DECL
 2525__CRT_UUID_DECL(ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b)
 2526#endif
 2527#else
 2528typedef struct ISpRegDataKeyVtbl {
 2529    BEGIN_INTERFACE
 2530
 2531    /*** IUnknown methods ***/
 2532    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2533        ISpRegDataKey *This,
 2534        REFIID riid,
 2535        void **ppvObject);
 2536
 2537    ULONG (STDMETHODCALLTYPE *AddRef)(
 2538        ISpRegDataKey *This);
 2539
 2540    ULONG (STDMETHODCALLTYPE *Release)(
 2541        ISpRegDataKey *This);
 2542
 2543    /*** ISpDataKey methods ***/
 2544    HRESULT (STDMETHODCALLTYPE *SetData)(
 2545        ISpRegDataKey *This,
 2546        LPCWSTR pszValueName,
 2547        ULONG cbData,
 2548        const BYTE *pData);
 2549
 2550    HRESULT (STDMETHODCALLTYPE *GetData)(
 2551        ISpRegDataKey *This,
 2552        LPCWSTR pszValueName,
 2553        ULONG *pcbData,
 2554        BYTE *pData);
 2555
 2556    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 2557        ISpRegDataKey *This,
 2558        LPCWSTR pszValueName,
 2559        LPCWSTR pszValue);
 2560
 2561    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 2562        ISpRegDataKey *This,
 2563        LPCWSTR pszValueName,
 2564        LPWSTR *ppszValue);
 2565
 2566    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 2567        ISpRegDataKey *This,
 2568        LPCWSTR pszValueName,
 2569        DWORD dwValue);
 2570
 2571    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 2572        ISpRegDataKey *This,
 2573        LPCWSTR pszValueName,
 2574        DWORD *pdwValue);
 2575
 2576    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 2577        ISpRegDataKey *This,
 2578        LPCWSTR pszSubKeyName,
 2579        ISpDataKey **ppSubKey);
 2580
 2581    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 2582        ISpRegDataKey *This,
 2583        LPCWSTR pszSubKey,
 2584        ISpDataKey **ppSubKey);
 2585
 2586    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 2587        ISpRegDataKey *This,
 2588        LPCWSTR pszSubKey);
 2589
 2590    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 2591        ISpRegDataKey *This,
 2592        LPCWSTR pszValueName);
 2593
 2594    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 2595        ISpRegDataKey *This,
 2596        ULONG Index,
 2597        LPWSTR *ppszSubKeyName);
 2598
 2599    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 2600        ISpRegDataKey *This,
 2601        ULONG Index,
 2602        LPWSTR *ppszValueName);
 2603
 2604    /*** ISpRegDataKey methods ***/
 2605    HRESULT (STDMETHODCALLTYPE *SetKey)(
 2606        ISpRegDataKey *This,
 2607        HKEY hkey,
 2608        WINBOOL fReadOnly);
 2609
 2610    END_INTERFACE
 2611} ISpRegDataKeyVtbl;
 2612
 2613interface ISpRegDataKey {
 2614    CONST_VTBL ISpRegDataKeyVtbl* lpVtbl;
 2615};
 2616
 2617#ifdef COBJMACROS
 2618#ifndef WIDL_C_INLINE_WRAPPERS
 2619/*** IUnknown methods ***/
 2620#define ISpRegDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2621#define ISpRegDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
 2622#define ISpRegDataKey_Release(This) (This)->lpVtbl->Release(This)
 2623/*** ISpDataKey methods ***/
 2624#define ISpRegDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 2625#define ISpRegDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 2626#define ISpRegDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 2627#define ISpRegDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 2628#define ISpRegDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 2629#define ISpRegDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 2630#define ISpRegDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 2631#define ISpRegDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 2632#define ISpRegDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 2633#define ISpRegDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 2634#define ISpRegDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 2635#define ISpRegDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 2636/*** ISpRegDataKey methods ***/
 2637#define ISpRegDataKey_SetKey(This,hkey,fReadOnly) (This)->lpVtbl->SetKey(This,hkey,fReadOnly)
 2638#else
 2639/*** IUnknown methods ***/
 2640static inline HRESULT ISpRegDataKey_QueryInterface(ISpRegDataKey* This,REFIID riid,void **ppvObject) {
 2641    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2642}
 2643static inline ULONG ISpRegDataKey_AddRef(ISpRegDataKey* This) {
 2644    return This->lpVtbl->AddRef(This);
 2645}
 2646static inline ULONG ISpRegDataKey_Release(ISpRegDataKey* This) {
 2647    return This->lpVtbl->Release(This);
 2648}
 2649/*** ISpDataKey methods ***/
 2650static inline HRESULT ISpRegDataKey_SetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 2651    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 2652}
 2653static inline HRESULT ISpRegDataKey_GetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 2654    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 2655}
 2656static inline HRESULT ISpRegDataKey_SetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 2657    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 2658}
 2659static inline HRESULT ISpRegDataKey_GetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 2660    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 2661}
 2662static inline HRESULT ISpRegDataKey_SetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
 2663    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 2664}
 2665static inline HRESULT ISpRegDataKey_GetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 2666    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 2667}
 2668static inline HRESULT ISpRegDataKey_OpenKey(ISpRegDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 2669    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 2670}
 2671static inline HRESULT ISpRegDataKey_CreateKey(ISpRegDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 2672    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 2673}
 2674static inline HRESULT ISpRegDataKey_DeleteKey(ISpRegDataKey* This,LPCWSTR pszSubKey) {
 2675    return This->lpVtbl->DeleteKey(This,pszSubKey);
 2676}
 2677static inline HRESULT ISpRegDataKey_DeleteValue(ISpRegDataKey* This,LPCWSTR pszValueName) {
 2678    return This->lpVtbl->DeleteValue(This,pszValueName);
 2679}
 2680static inline HRESULT ISpRegDataKey_EnumKeys(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 2681    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 2682}
 2683static inline HRESULT ISpRegDataKey_EnumValues(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
 2684    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 2685}
 2686/*** ISpRegDataKey methods ***/
 2687static inline HRESULT ISpRegDataKey_SetKey(ISpRegDataKey* This,HKEY hkey,WINBOOL fReadOnly) {
 2688    return This->lpVtbl->SetKey(This,hkey,fReadOnly);
 2689}
 2690#endif
 2691#endif
 2692
 2693#endif
 2694
 2695
 2696#endif  /* __ISpRegDataKey_INTERFACE_DEFINED__ */
 2697
 2698/*****************************************************************************
 2699 * ISpObjectTokenCategory interface
 2700 */
 2701#ifndef __ISpObjectTokenCategory_INTERFACE_DEFINED__
 2702#define __ISpObjectTokenCategory_INTERFACE_DEFINED__
 2703
 2704DEFINE_GUID(IID_ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d);
 2705#if defined(__cplusplus) && !defined(CINTERFACE)
 2706MIDL_INTERFACE("2d3d3845-39af-4850-bbf9-40b49780011d")
 2707ISpObjectTokenCategory : public ISpDataKey
 2708{
 2709    virtual HRESULT STDMETHODCALLTYPE SetId(
 2710        LPCWSTR pszCategoryId,
 2711        WINBOOL fCreateIfNotExist) = 0;
 2712
 2713    virtual HRESULT STDMETHODCALLTYPE GetId(
 2714        LPWSTR *ppszCoMemCategoryId) = 0;
 2715
 2716    virtual HRESULT STDMETHODCALLTYPE GetDataKey(
 2717        SPDATAKEYLOCATION spdkl,
 2718        ISpDataKey **ppDataKey) = 0;
 2719
 2720    virtual HRESULT STDMETHODCALLTYPE EnumTokens(
 2721        LPCWSTR pzsReqAttribs,
 2722        LPCWSTR pszOptAttribs,
 2723        IEnumSpObjectTokens **ppEnum) = 0;
 2724
 2725    virtual HRESULT STDMETHODCALLTYPE SetDefaultTokenId(
 2726        LPCWSTR pszTokenId) = 0;
 2727
 2728    virtual HRESULT STDMETHODCALLTYPE GetDefaultTokenId(
 2729        LPWSTR *ppszCoMemTokenId) = 0;
 2730
 2731};
 2732#ifdef __CRT_UUID_DECL
 2733__CRT_UUID_DECL(ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d)
 2734#endif
 2735#else
 2736typedef struct ISpObjectTokenCategoryVtbl {
 2737    BEGIN_INTERFACE
 2738
 2739    /*** IUnknown methods ***/
 2740    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2741        ISpObjectTokenCategory *This,
 2742        REFIID riid,
 2743        void **ppvObject);
 2744
 2745    ULONG (STDMETHODCALLTYPE *AddRef)(
 2746        ISpObjectTokenCategory *This);
 2747
 2748    ULONG (STDMETHODCALLTYPE *Release)(
 2749        ISpObjectTokenCategory *This);
 2750
 2751    /*** ISpDataKey methods ***/
 2752    HRESULT (STDMETHODCALLTYPE *SetData)(
 2753        ISpObjectTokenCategory *This,
 2754        LPCWSTR pszValueName,
 2755        ULONG cbData,
 2756        const BYTE *pData);
 2757
 2758    HRESULT (STDMETHODCALLTYPE *GetData)(
 2759        ISpObjectTokenCategory *This,
 2760        LPCWSTR pszValueName,
 2761        ULONG *pcbData,
 2762        BYTE *pData);
 2763
 2764    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 2765        ISpObjectTokenCategory *This,
 2766        LPCWSTR pszValueName,
 2767        LPCWSTR pszValue);
 2768
 2769    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 2770        ISpObjectTokenCategory *This,
 2771        LPCWSTR pszValueName,
 2772        LPWSTR *ppszValue);
 2773
 2774    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 2775        ISpObjectTokenCategory *This,
 2776        LPCWSTR pszValueName,
 2777        DWORD dwValue);
 2778
 2779    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 2780        ISpObjectTokenCategory *This,
 2781        LPCWSTR pszValueName,
 2782        DWORD *pdwValue);
 2783
 2784    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 2785        ISpObjectTokenCategory *This,
 2786        LPCWSTR pszSubKeyName,
 2787        ISpDataKey **ppSubKey);
 2788
 2789    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 2790        ISpObjectTokenCategory *This,
 2791        LPCWSTR pszSubKey,
 2792        ISpDataKey **ppSubKey);
 2793
 2794    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 2795        ISpObjectTokenCategory *This,
 2796        LPCWSTR pszSubKey);
 2797
 2798    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 2799        ISpObjectTokenCategory *This,
 2800        LPCWSTR pszValueName);
 2801
 2802    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 2803        ISpObjectTokenCategory *This,
 2804        ULONG Index,
 2805        LPWSTR *ppszSubKeyName);
 2806
 2807    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 2808        ISpObjectTokenCategory *This,
 2809        ULONG Index,
 2810        LPWSTR *ppszValueName);
 2811
 2812    /*** ISpObjectTokenCategory methods ***/
 2813    HRESULT (STDMETHODCALLTYPE *SetId)(
 2814        ISpObjectTokenCategory *This,
 2815        LPCWSTR pszCategoryId,
 2816        WINBOOL fCreateIfNotExist);
 2817
 2818    HRESULT (STDMETHODCALLTYPE *GetId)(
 2819        ISpObjectTokenCategory *This,
 2820        LPWSTR *ppszCoMemCategoryId);
 2821
 2822    HRESULT (STDMETHODCALLTYPE *GetDataKey)(
 2823        ISpObjectTokenCategory *This,
 2824        SPDATAKEYLOCATION spdkl,
 2825        ISpDataKey **ppDataKey);
 2826
 2827    HRESULT (STDMETHODCALLTYPE *EnumTokens)(
 2828        ISpObjectTokenCategory *This,
 2829        LPCWSTR pzsReqAttribs,
 2830        LPCWSTR pszOptAttribs,
 2831        IEnumSpObjectTokens **ppEnum);
 2832
 2833    HRESULT (STDMETHODCALLTYPE *SetDefaultTokenId)(
 2834        ISpObjectTokenCategory *This,
 2835        LPCWSTR pszTokenId);
 2836
 2837    HRESULT (STDMETHODCALLTYPE *GetDefaultTokenId)(
 2838        ISpObjectTokenCategory *This,
 2839        LPWSTR *ppszCoMemTokenId);
 2840
 2841    END_INTERFACE
 2842} ISpObjectTokenCategoryVtbl;
 2843
 2844interface ISpObjectTokenCategory {
 2845    CONST_VTBL ISpObjectTokenCategoryVtbl* lpVtbl;
 2846};
 2847
 2848#ifdef COBJMACROS
 2849#ifndef WIDL_C_INLINE_WRAPPERS
 2850/*** IUnknown methods ***/
 2851#define ISpObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2852#define ISpObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
 2853#define ISpObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
 2854/*** ISpDataKey methods ***/
 2855#define ISpObjectTokenCategory_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 2856#define ISpObjectTokenCategory_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 2857#define ISpObjectTokenCategory_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 2858#define ISpObjectTokenCategory_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 2859#define ISpObjectTokenCategory_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 2860#define ISpObjectTokenCategory_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 2861#define ISpObjectTokenCategory_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 2862#define ISpObjectTokenCategory_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 2863#define ISpObjectTokenCategory_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 2864#define ISpObjectTokenCategory_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 2865#define ISpObjectTokenCategory_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 2866#define ISpObjectTokenCategory_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 2867/*** ISpObjectTokenCategory methods ***/
 2868#define ISpObjectTokenCategory_SetId(This,pszCategoryId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist)
 2869#define ISpObjectTokenCategory_GetId(This,ppszCoMemCategoryId) (This)->lpVtbl->GetId(This,ppszCoMemCategoryId)
 2870#define ISpObjectTokenCategory_GetDataKey(This,spdkl,ppDataKey) (This)->lpVtbl->GetDataKey(This,spdkl,ppDataKey)
 2871#define ISpObjectTokenCategory_EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum) (This)->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
 2872#define ISpObjectTokenCategory_SetDefaultTokenId(This,pszTokenId) (This)->lpVtbl->SetDefaultTokenId(This,pszTokenId)
 2873#define ISpObjectTokenCategory_GetDefaultTokenId(This,ppszCoMemTokenId) (This)->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId)
 2874#else
 2875/*** IUnknown methods ***/
 2876static inline HRESULT ISpObjectTokenCategory_QueryInterface(ISpObjectTokenCategory* This,REFIID riid,void **ppvObject) {
 2877    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2878}
 2879static inline ULONG ISpObjectTokenCategory_AddRef(ISpObjectTokenCategory* This) {
 2880    return This->lpVtbl->AddRef(This);
 2881}
 2882static inline ULONG ISpObjectTokenCategory_Release(ISpObjectTokenCategory* This) {
 2883    return This->lpVtbl->Release(This);
 2884}
 2885/*** ISpDataKey methods ***/
 2886static inline HRESULT ISpObjectTokenCategory_SetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 2887    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 2888}
 2889static inline HRESULT ISpObjectTokenCategory_GetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 2890    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 2891}
 2892static inline HRESULT ISpObjectTokenCategory_SetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 2893    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 2894}
 2895static inline HRESULT ISpObjectTokenCategory_GetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 2896    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 2897}
 2898static inline HRESULT ISpObjectTokenCategory_SetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD dwValue) {
 2899    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 2900}
 2901static inline HRESULT ISpObjectTokenCategory_GetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 2902    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 2903}
 2904static inline HRESULT ISpObjectTokenCategory_OpenKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 2905    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 2906}
 2907static inline HRESULT ISpObjectTokenCategory_CreateKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 2908    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 2909}
 2910static inline HRESULT ISpObjectTokenCategory_DeleteKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey) {
 2911    return This->lpVtbl->DeleteKey(This,pszSubKey);
 2912}
 2913static inline HRESULT ISpObjectTokenCategory_DeleteValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName) {
 2914    return This->lpVtbl->DeleteValue(This,pszValueName);
 2915}
 2916static inline HRESULT ISpObjectTokenCategory_EnumKeys(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 2917    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 2918}
 2919static inline HRESULT ISpObjectTokenCategory_EnumValues(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszValueName) {
 2920    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 2921}
 2922/*** ISpObjectTokenCategory methods ***/
 2923static inline HRESULT ISpObjectTokenCategory_SetId(ISpObjectTokenCategory* This,LPCWSTR pszCategoryId,WINBOOL fCreateIfNotExist) {
 2924    return This->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist);
 2925}
 2926static inline HRESULT ISpObjectTokenCategory_GetId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemCategoryId) {
 2927    return This->lpVtbl->GetId(This,ppszCoMemCategoryId);
 2928}
 2929static inline HRESULT ISpObjectTokenCategory_GetDataKey(ISpObjectTokenCategory* This,SPDATAKEYLOCATION spdkl,ISpDataKey **ppDataKey) {
 2930    return This->lpVtbl->GetDataKey(This,spdkl,ppDataKey);
 2931}
 2932static inline HRESULT ISpObjectTokenCategory_EnumTokens(ISpObjectTokenCategory* This,LPCWSTR pzsReqAttribs,LPCWSTR pszOptAttribs,IEnumSpObjectTokens **ppEnum) {
 2933    return This->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum);
 2934}
 2935static inline HRESULT ISpObjectTokenCategory_SetDefaultTokenId(ISpObjectTokenCategory* This,LPCWSTR pszTokenId) {
 2936    return This->lpVtbl->SetDefaultTokenId(This,pszTokenId);
 2937}
 2938static inline HRESULT ISpObjectTokenCategory_GetDefaultTokenId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemTokenId) {
 2939    return This->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId);
 2940}
 2941#endif
 2942#endif
 2943
 2944#endif
 2945
 2946
 2947#endif  /* __ISpObjectTokenCategory_INTERFACE_DEFINED__ */
 2948
 2949/*****************************************************************************
 2950 * ISpObjectToken interface
 2951 */
 2952#ifndef __ISpObjectToken_INTERFACE_DEFINED__
 2953#define __ISpObjectToken_INTERFACE_DEFINED__
 2954
 2955DEFINE_GUID(IID_ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
 2956#if defined(__cplusplus) && !defined(CINTERFACE)
 2957MIDL_INTERFACE("14056589-e16c-11d2-bb90-00c04f8ee6c0")
 2958ISpObjectToken : public ISpDataKey
 2959{
 2960    virtual HRESULT STDMETHODCALLTYPE SetId(
 2961        LPCWSTR pszCategoryId,
 2962        LPCWSTR pszTokenId,
 2963        WINBOOL fCreateIfNotExist) = 0;
 2964
 2965    virtual HRESULT STDMETHODCALLTYPE GetId(
 2966        LPWSTR *ppszCoMemTokenId) = 0;
 2967
 2968    virtual HRESULT STDMETHODCALLTYPE GetCategory(
 2969        ISpObjectTokenCategory **ppTokenCategory) = 0;
 2970
 2971    virtual HRESULT STDMETHODCALLTYPE CreateInstance(
 2972        IUnknown *pUnkOuter,
 2973        DWORD dwClsContext,
 2974        REFIID riid,
 2975        void **ppvObject) = 0;
 2976
 2977    virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
 2978        REFCLSID clsidCaller,
 2979        LPCWSTR pszValueName,
 2980        LPCWSTR pszFileNameSpecifier,
 2981        ULONG nFolder,
 2982        LPWSTR *ppszFilePath) = 0;
 2983
 2984    virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
 2985        REFCLSID clsidCaller,
 2986        LPCWSTR pszKeyName,
 2987        WINBOOL fDeleteFile) = 0;
 2988
 2989    virtual HRESULT STDMETHODCALLTYPE Remove(
 2990        const CLSID *pclsidCaller) = 0;
 2991
 2992    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
 2993        LPCWSTR pszTypeOfUI,
 2994        void *pvExtraData,
 2995        ULONG cbExtraData,
 2996        IUnknown *punkObject,
 2997        WINBOOL *pfSupported) = 0;
 2998
 2999    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
 3000        HWND hwndParent,
 3001        LPCWSTR pszTitle,
 3002        LPCWSTR pszTypeOfUI,
 3003        void *pvExtraData,
 3004        ULONG cbExtraData,
 3005        IUnknown *punkObject) = 0;
 3006
 3007    virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
 3008        LPCWSTR pszAttributes,
 3009        WINBOOL *pfMatches) = 0;
 3010
 3011};
 3012#ifdef __CRT_UUID_DECL
 3013__CRT_UUID_DECL(ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
 3014#endif
 3015#else
 3016typedef struct ISpObjectTokenVtbl {
 3017    BEGIN_INTERFACE
 3018
 3019    /*** IUnknown methods ***/
 3020    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3021        ISpObjectToken *This,
 3022        REFIID riid,
 3023        void **ppvObject);
 3024
 3025    ULONG (STDMETHODCALLTYPE *AddRef)(
 3026        ISpObjectToken *This);
 3027
 3028    ULONG (STDMETHODCALLTYPE *Release)(
 3029        ISpObjectToken *This);
 3030
 3031    /*** ISpDataKey methods ***/
 3032    HRESULT (STDMETHODCALLTYPE *SetData)(
 3033        ISpObjectToken *This,
 3034        LPCWSTR pszValueName,
 3035        ULONG cbData,
 3036        const BYTE *pData);
 3037
 3038    HRESULT (STDMETHODCALLTYPE *GetData)(
 3039        ISpObjectToken *This,
 3040        LPCWSTR pszValueName,
 3041        ULONG *pcbData,
 3042        BYTE *pData);
 3043
 3044    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 3045        ISpObjectToken *This,
 3046        LPCWSTR pszValueName,
 3047        LPCWSTR pszValue);
 3048
 3049    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 3050        ISpObjectToken *This,
 3051        LPCWSTR pszValueName,
 3052        LPWSTR *ppszValue);
 3053
 3054    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 3055        ISpObjectToken *This,
 3056        LPCWSTR pszValueName,
 3057        DWORD dwValue);
 3058
 3059    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 3060        ISpObjectToken *This,
 3061        LPCWSTR pszValueName,
 3062        DWORD *pdwValue);
 3063
 3064    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 3065        ISpObjectToken *This,
 3066        LPCWSTR pszSubKeyName,
 3067        ISpDataKey **ppSubKey);
 3068
 3069    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 3070        ISpObjectToken *This,
 3071        LPCWSTR pszSubKey,
 3072        ISpDataKey **ppSubKey);
 3073
 3074    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 3075        ISpObjectToken *This,
 3076        LPCWSTR pszSubKey);
 3077
 3078    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 3079        ISpObjectToken *This,
 3080        LPCWSTR pszValueName);
 3081
 3082    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 3083        ISpObjectToken *This,
 3084        ULONG Index,
 3085        LPWSTR *ppszSubKeyName);
 3086
 3087    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 3088        ISpObjectToken *This,
 3089        ULONG Index,
 3090        LPWSTR *ppszValueName);
 3091
 3092    /*** ISpObjectToken methods ***/
 3093    HRESULT (STDMETHODCALLTYPE *SetId)(
 3094        ISpObjectToken *This,
 3095        LPCWSTR pszCategoryId,
 3096        LPCWSTR pszTokenId,
 3097        WINBOOL fCreateIfNotExist);
 3098
 3099    HRESULT (STDMETHODCALLTYPE *GetId)(
 3100        ISpObjectToken *This,
 3101        LPWSTR *ppszCoMemTokenId);
 3102
 3103    HRESULT (STDMETHODCALLTYPE *GetCategory)(
 3104        ISpObjectToken *This,
 3105        ISpObjectTokenCategory **ppTokenCategory);
 3106
 3107    HRESULT (STDMETHODCALLTYPE *CreateInstance)(
 3108        ISpObjectToken *This,
 3109        IUnknown *pUnkOuter,
 3110        DWORD dwClsContext,
 3111        REFIID riid,
 3112        void **ppvObject);
 3113
 3114    HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
 3115        ISpObjectToken *This,
 3116        REFCLSID clsidCaller,
 3117        LPCWSTR pszValueName,
 3118        LPCWSTR pszFileNameSpecifier,
 3119        ULONG nFolder,
 3120        LPWSTR *ppszFilePath);
 3121
 3122    HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
 3123        ISpObjectToken *This,
 3124        REFCLSID clsidCaller,
 3125        LPCWSTR pszKeyName,
 3126        WINBOOL fDeleteFile);
 3127
 3128    HRESULT (STDMETHODCALLTYPE *Remove)(
 3129        ISpObjectToken *This,
 3130        const CLSID *pclsidCaller);
 3131
 3132    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
 3133        ISpObjectToken *This,
 3134        LPCWSTR pszTypeOfUI,
 3135        void *pvExtraData,
 3136        ULONG cbExtraData,
 3137        IUnknown *punkObject,
 3138        WINBOOL *pfSupported);
 3139
 3140    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
 3141        ISpObjectToken *This,
 3142        HWND hwndParent,
 3143        LPCWSTR pszTitle,
 3144        LPCWSTR pszTypeOfUI,
 3145        void *pvExtraData,
 3146        ULONG cbExtraData,
 3147        IUnknown *punkObject);
 3148
 3149    HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
 3150        ISpObjectToken *This,
 3151        LPCWSTR pszAttributes,
 3152        WINBOOL *pfMatches);
 3153
 3154    END_INTERFACE
 3155} ISpObjectTokenVtbl;
 3156
 3157interface ISpObjectToken {
 3158    CONST_VTBL ISpObjectTokenVtbl* lpVtbl;
 3159};
 3160
 3161#ifdef COBJMACROS
 3162#ifndef WIDL_C_INLINE_WRAPPERS
 3163/*** IUnknown methods ***/
 3164#define ISpObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3165#define ISpObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
 3166#define ISpObjectToken_Release(This) (This)->lpVtbl->Release(This)
 3167/*** ISpDataKey methods ***/
 3168#define ISpObjectToken_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 3169#define ISpObjectToken_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 3170#define ISpObjectToken_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 3171#define ISpObjectToken_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 3172#define ISpObjectToken_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 3173#define ISpObjectToken_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 3174#define ISpObjectToken_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 3175#define ISpObjectToken_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 3176#define ISpObjectToken_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 3177#define ISpObjectToken_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 3178#define ISpObjectToken_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 3179#define ISpObjectToken_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 3180/*** ISpObjectToken methods ***/
 3181#define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
 3182#define ISpObjectToken_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
 3183#define ISpObjectToken_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
 3184#define ISpObjectToken_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
 3185#define ISpObjectToken_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
 3186#define ISpObjectToken_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
 3187#define ISpObjectToken_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
 3188#define ISpObjectToken_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
 3189#define ISpObjectToken_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
 3190#define ISpObjectToken_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
 3191#else
 3192/*** IUnknown methods ***/
 3193static inline HRESULT ISpObjectToken_QueryInterface(ISpObjectToken* This,REFIID riid,void **ppvObject) {
 3194    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3195}
 3196static inline ULONG ISpObjectToken_AddRef(ISpObjectToken* This) {
 3197    return This->lpVtbl->AddRef(This);
 3198}
 3199static inline ULONG ISpObjectToken_Release(ISpObjectToken* This) {
 3200    return This->lpVtbl->Release(This);
 3201}
 3202/*** ISpDataKey methods ***/
 3203static inline HRESULT ISpObjectToken_SetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 3204    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 3205}
 3206static inline HRESULT ISpObjectToken_GetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 3207    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 3208}
 3209static inline HRESULT ISpObjectToken_SetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 3210    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 3211}
 3212static inline HRESULT ISpObjectToken_GetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 3213    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 3214}
 3215static inline HRESULT ISpObjectToken_SetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD dwValue) {
 3216    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 3217}
 3218static inline HRESULT ISpObjectToken_GetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 3219    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 3220}
 3221static inline HRESULT ISpObjectToken_OpenKey(ISpObjectToken* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 3222    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 3223}
 3224static inline HRESULT ISpObjectToken_CreateKey(ISpObjectToken* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 3225    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 3226}
 3227static inline HRESULT ISpObjectToken_DeleteKey(ISpObjectToken* This,LPCWSTR pszSubKey) {
 3228    return This->lpVtbl->DeleteKey(This,pszSubKey);
 3229}
 3230static inline HRESULT ISpObjectToken_DeleteValue(ISpObjectToken* This,LPCWSTR pszValueName) {
 3231    return This->lpVtbl->DeleteValue(This,pszValueName);
 3232}
 3233static inline HRESULT ISpObjectToken_EnumKeys(ISpObjectToken* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 3234    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 3235}
 3236static inline HRESULT ISpObjectToken_EnumValues(ISpObjectToken* This,ULONG Index,LPWSTR *ppszValueName) {
 3237    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 3238}
 3239/*** ISpObjectToken methods ***/
 3240static inline HRESULT ISpObjectToken_SetId(ISpObjectToken* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
 3241    return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
 3242}
 3243static inline HRESULT ISpObjectToken_GetId(ISpObjectToken* This,LPWSTR *ppszCoMemTokenId) {
 3244    return This->lpVtbl->GetId(This,ppszCoMemTokenId);
 3245}
 3246static inline HRESULT ISpObjectToken_GetCategory(ISpObjectToken* This,ISpObjectTokenCategory **ppTokenCategory) {
 3247    return This->lpVtbl->GetCategory(This,ppTokenCategory);
 3248}
 3249static inline HRESULT ISpObjectToken_CreateInstance(ISpObjectToken* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
 3250    return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
 3251}
 3252static inline HRESULT ISpObjectToken_GetStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
 3253    return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
 3254}
 3255static inline HRESULT ISpObjectToken_RemoveStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
 3256    return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
 3257}
 3258static inline HRESULT ISpObjectToken_Remove(ISpObjectToken* This,const CLSID *pclsidCaller) {
 3259    return This->lpVtbl->Remove(This,pclsidCaller);
 3260}
 3261static inline HRESULT ISpObjectToken_IsUISupported(ISpObjectToken* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
 3262    return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
 3263}
 3264static inline HRESULT ISpObjectToken_DisplayUI(ISpObjectToken* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
 3265    return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
 3266}
 3267static inline HRESULT ISpObjectToken_MatchesAttributes(ISpObjectToken* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
 3268    return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
 3269}
 3270#endif
 3271#endif
 3272
 3273#endif
 3274
 3275
 3276#endif  /* __ISpObjectToken_INTERFACE_DEFINED__ */
 3277
 3278/*****************************************************************************
 3279 * ISpObjectTokenInit interface
 3280 */
 3281#ifndef __ISpObjectTokenInit_INTERFACE_DEFINED__
 3282#define __ISpObjectTokenInit_INTERFACE_DEFINED__
 3283
 3284DEFINE_GUID(IID_ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51);
 3285#if defined(__cplusplus) && !defined(CINTERFACE)
 3286MIDL_INTERFACE("b8aab0cf-346f-49d8-9499-c8b03f161d51")
 3287ISpObjectTokenInit : public ISpObjectToken
 3288{
 3289    virtual HRESULT STDMETHODCALLTYPE InitFromDataKey(
 3290        LPCWSTR pszCategoryId,
 3291        LPCWSTR pszTokenId,
 3292        ISpDataKey *pDataKey) = 0;
 3293
 3294};
 3295#ifdef __CRT_UUID_DECL
 3296__CRT_UUID_DECL(ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51)
 3297#endif
 3298#else
 3299typedef struct ISpObjectTokenInitVtbl {
 3300    BEGIN_INTERFACE
 3301
 3302    /*** IUnknown methods ***/
 3303    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3304        ISpObjectTokenInit *This,
 3305        REFIID riid,
 3306        void **ppvObject);
 3307
 3308    ULONG (STDMETHODCALLTYPE *AddRef)(
 3309        ISpObjectTokenInit *This);
 3310
 3311    ULONG (STDMETHODCALLTYPE *Release)(
 3312        ISpObjectTokenInit *This);
 3313
 3314    /*** ISpDataKey methods ***/
 3315    HRESULT (STDMETHODCALLTYPE *SetData)(
 3316        ISpObjectTokenInit *This,
 3317        LPCWSTR pszValueName,
 3318        ULONG cbData,
 3319        const BYTE *pData);
 3320
 3321    HRESULT (STDMETHODCALLTYPE *GetData)(
 3322        ISpObjectTokenInit *This,
 3323        LPCWSTR pszValueName,
 3324        ULONG *pcbData,
 3325        BYTE *pData);
 3326
 3327    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 3328        ISpObjectTokenInit *This,
 3329        LPCWSTR pszValueName,
 3330        LPCWSTR pszValue);
 3331
 3332    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 3333        ISpObjectTokenInit *This,
 3334        LPCWSTR pszValueName,
 3335        LPWSTR *ppszValue);
 3336
 3337    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 3338        ISpObjectTokenInit *This,
 3339        LPCWSTR pszValueName,
 3340        DWORD dwValue);
 3341
 3342    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 3343        ISpObjectTokenInit *This,
 3344        LPCWSTR pszValueName,
 3345        DWORD *pdwValue);
 3346
 3347    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 3348        ISpObjectTokenInit *This,
 3349        LPCWSTR pszSubKeyName,
 3350        ISpDataKey **ppSubKey);
 3351
 3352    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 3353        ISpObjectTokenInit *This,
 3354        LPCWSTR pszSubKey,
 3355        ISpDataKey **ppSubKey);
 3356
 3357    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 3358        ISpObjectTokenInit *This,
 3359        LPCWSTR pszSubKey);
 3360
 3361    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 3362        ISpObjectTokenInit *This,
 3363        LPCWSTR pszValueName);
 3364
 3365    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 3366        ISpObjectTokenInit *This,
 3367        ULONG Index,
 3368        LPWSTR *ppszSubKeyName);
 3369
 3370    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 3371        ISpObjectTokenInit *This,
 3372        ULONG Index,
 3373        LPWSTR *ppszValueName);
 3374
 3375    /*** ISpObjectToken methods ***/
 3376    HRESULT (STDMETHODCALLTYPE *SetId)(
 3377        ISpObjectTokenInit *This,
 3378        LPCWSTR pszCategoryId,
 3379        LPCWSTR pszTokenId,
 3380        WINBOOL fCreateIfNotExist);
 3381
 3382    HRESULT (STDMETHODCALLTYPE *GetId)(
 3383        ISpObjectTokenInit *This,
 3384        LPWSTR *ppszCoMemTokenId);
 3385
 3386    HRESULT (STDMETHODCALLTYPE *GetCategory)(
 3387        ISpObjectTokenInit *This,
 3388        ISpObjectTokenCategory **ppTokenCategory);
 3389
 3390    HRESULT (STDMETHODCALLTYPE *CreateInstance)(
 3391        ISpObjectTokenInit *This,
 3392        IUnknown *pUnkOuter,
 3393        DWORD dwClsContext,
 3394        REFIID riid,
 3395        void **ppvObject);
 3396
 3397    HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
 3398        ISpObjectTokenInit *This,
 3399        REFCLSID clsidCaller,
 3400        LPCWSTR pszValueName,
 3401        LPCWSTR pszFileNameSpecifier,
 3402        ULONG nFolder,
 3403        LPWSTR *ppszFilePath);
 3404
 3405    HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
 3406        ISpObjectTokenInit *This,
 3407        REFCLSID clsidCaller,
 3408        LPCWSTR pszKeyName,
 3409        WINBOOL fDeleteFile);
 3410
 3411    HRESULT (STDMETHODCALLTYPE *Remove)(
 3412        ISpObjectTokenInit *This,
 3413        const CLSID *pclsidCaller);
 3414
 3415    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
 3416        ISpObjectTokenInit *This,
 3417        LPCWSTR pszTypeOfUI,
 3418        void *pvExtraData,
 3419        ULONG cbExtraData,
 3420        IUnknown *punkObject,
 3421        WINBOOL *pfSupported);
 3422
 3423    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
 3424        ISpObjectTokenInit *This,
 3425        HWND hwndParent,
 3426        LPCWSTR pszTitle,
 3427        LPCWSTR pszTypeOfUI,
 3428        void *pvExtraData,
 3429        ULONG cbExtraData,
 3430        IUnknown *punkObject);
 3431
 3432    HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
 3433        ISpObjectTokenInit *This,
 3434        LPCWSTR pszAttributes,
 3435        WINBOOL *pfMatches);
 3436
 3437    /*** ISpObjectTokenInit methods ***/
 3438    HRESULT (STDMETHODCALLTYPE *InitFromDataKey)(
 3439        ISpObjectTokenInit *This,
 3440        LPCWSTR pszCategoryId,
 3441        LPCWSTR pszTokenId,
 3442        ISpDataKey *pDataKey);
 3443
 3444    END_INTERFACE
 3445} ISpObjectTokenInitVtbl;
 3446
 3447interface ISpObjectTokenInit {
 3448    CONST_VTBL ISpObjectTokenInitVtbl* lpVtbl;
 3449};
 3450
 3451#ifdef COBJMACROS
 3452#ifndef WIDL_C_INLINE_WRAPPERS
 3453/*** IUnknown methods ***/
 3454#define ISpObjectTokenInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3455#define ISpObjectTokenInit_AddRef(This) (This)->lpVtbl->AddRef(This)
 3456#define ISpObjectTokenInit_Release(This) (This)->lpVtbl->Release(This)
 3457/*** ISpDataKey methods ***/
 3458#define ISpObjectTokenInit_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 3459#define ISpObjectTokenInit_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 3460#define ISpObjectTokenInit_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 3461#define ISpObjectTokenInit_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 3462#define ISpObjectTokenInit_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 3463#define ISpObjectTokenInit_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 3464#define ISpObjectTokenInit_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 3465#define ISpObjectTokenInit_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 3466#define ISpObjectTokenInit_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 3467#define ISpObjectTokenInit_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 3468#define ISpObjectTokenInit_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 3469#define ISpObjectTokenInit_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 3470/*** ISpObjectToken methods ***/
 3471#define ISpObjectTokenInit_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
 3472#define ISpObjectTokenInit_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
 3473#define ISpObjectTokenInit_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
 3474#define ISpObjectTokenInit_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
 3475#define ISpObjectTokenInit_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
 3476#define ISpObjectTokenInit_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
 3477#define ISpObjectTokenInit_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
 3478#define ISpObjectTokenInit_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
 3479#define ISpObjectTokenInit_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
 3480#define ISpObjectTokenInit_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
 3481/*** ISpObjectTokenInit methods ***/
 3482#define ISpObjectTokenInit_InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey) (This)->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
 3483#else
 3484/*** IUnknown methods ***/
 3485static inline HRESULT ISpObjectTokenInit_QueryInterface(ISpObjectTokenInit* This,REFIID riid,void **ppvObject) {
 3486    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3487}
 3488static inline ULONG ISpObjectTokenInit_AddRef(ISpObjectTokenInit* This) {
 3489    return This->lpVtbl->AddRef(This);
 3490}
 3491static inline ULONG ISpObjectTokenInit_Release(ISpObjectTokenInit* This) {
 3492    return This->lpVtbl->Release(This);
 3493}
 3494/*** ISpDataKey methods ***/
 3495static inline HRESULT ISpObjectTokenInit_SetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 3496    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 3497}
 3498static inline HRESULT ISpObjectTokenInit_GetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 3499    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 3500}
 3501static inline HRESULT ISpObjectTokenInit_SetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 3502    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 3503}
 3504static inline HRESULT ISpObjectTokenInit_GetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 3505    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 3506}
 3507static inline HRESULT ISpObjectTokenInit_SetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD dwValue) {
 3508    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 3509}
 3510static inline HRESULT ISpObjectTokenInit_GetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 3511    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 3512}
 3513static inline HRESULT ISpObjectTokenInit_OpenKey(ISpObjectTokenInit* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 3514    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 3515}
 3516static inline HRESULT ISpObjectTokenInit_CreateKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 3517    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 3518}
 3519static inline HRESULT ISpObjectTokenInit_DeleteKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey) {
 3520    return This->lpVtbl->DeleteKey(This,pszSubKey);
 3521}
 3522static inline HRESULT ISpObjectTokenInit_DeleteValue(ISpObjectTokenInit* This,LPCWSTR pszValueName) {
 3523    return This->lpVtbl->DeleteValue(This,pszValueName);
 3524}
 3525static inline HRESULT ISpObjectTokenInit_EnumKeys(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 3526    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 3527}
 3528static inline HRESULT ISpObjectTokenInit_EnumValues(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszValueName) {
 3529    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 3530}
 3531/*** ISpObjectToken methods ***/
 3532static inline HRESULT ISpObjectTokenInit_SetId(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
 3533    return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
 3534}
 3535static inline HRESULT ISpObjectTokenInit_GetId(ISpObjectTokenInit* This,LPWSTR *ppszCoMemTokenId) {
 3536    return This->lpVtbl->GetId(This,ppszCoMemTokenId);
 3537}
 3538static inline HRESULT ISpObjectTokenInit_GetCategory(ISpObjectTokenInit* This,ISpObjectTokenCategory **ppTokenCategory) {
 3539    return This->lpVtbl->GetCategory(This,ppTokenCategory);
 3540}
 3541static inline HRESULT ISpObjectTokenInit_CreateInstance(ISpObjectTokenInit* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
 3542    return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
 3543}
 3544static inline HRESULT ISpObjectTokenInit_GetStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
 3545    return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
 3546}
 3547static inline HRESULT ISpObjectTokenInit_RemoveStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
 3548    return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
 3549}
 3550static inline HRESULT ISpObjectTokenInit_Remove(ISpObjectTokenInit* This,const CLSID *pclsidCaller) {
 3551    return This->lpVtbl->Remove(This,pclsidCaller);
 3552}
 3553static inline HRESULT ISpObjectTokenInit_IsUISupported(ISpObjectTokenInit* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
 3554    return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
 3555}
 3556static inline HRESULT ISpObjectTokenInit_DisplayUI(ISpObjectTokenInit* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
 3557    return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
 3558}
 3559static inline HRESULT ISpObjectTokenInit_MatchesAttributes(ISpObjectTokenInit* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
 3560    return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
 3561}
 3562/*** ISpObjectTokenInit methods ***/
 3563static inline HRESULT ISpObjectTokenInit_InitFromDataKey(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,ISpDataKey *pDataKey) {
 3564    return This->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey);
 3565}
 3566#endif
 3567#endif
 3568
 3569#endif
 3570
 3571
 3572#endif  /* __ISpObjectTokenInit_INTERFACE_DEFINED__ */
 3573
 3574/*****************************************************************************
 3575 * ISpResourceManager interface
 3576 */
 3577#ifndef __ISpResourceManager_INTERFACE_DEFINED__
 3578#define __ISpResourceManager_INTERFACE_DEFINED__
 3579
 3580DEFINE_GUID(IID_ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd);
 3581#if defined(__cplusplus) && !defined(CINTERFACE)
 3582MIDL_INTERFACE("93384e18-5014-43d5-adbb-a78e055926bd")
 3583ISpResourceManager : public IServiceProvider
 3584{
 3585    virtual HRESULT STDMETHODCALLTYPE SetObject(
 3586        REFGUID guidServiceId,
 3587        IUnknown *pUnkObject) = 0;
 3588
 3589    virtual HRESULT STDMETHODCALLTYPE GetObject(
 3590        REFGUID guidServiceId,
 3591        REFCLSID ObjectCLSID,
 3592        REFIID ObjectIID,
 3593        WINBOOL fReleaseWhenLastExternalRefReleased,
 3594        void **ppObject) = 0;
 3595
 3596};
 3597#ifdef __CRT_UUID_DECL
 3598__CRT_UUID_DECL(ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd)
 3599#endif
 3600#else
 3601typedef struct ISpResourceManagerVtbl {
 3602    BEGIN_INTERFACE
 3603
 3604    /*** IUnknown methods ***/
 3605    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3606        ISpResourceManager *This,
 3607        REFIID riid,
 3608        void **ppvObject);
 3609
 3610    ULONG (STDMETHODCALLTYPE *AddRef)(
 3611        ISpResourceManager *This);
 3612
 3613    ULONG (STDMETHODCALLTYPE *Release)(
 3614        ISpResourceManager *This);
 3615
 3616    /*** IServiceProvider methods ***/
 3617    HRESULT (STDMETHODCALLTYPE *QueryService)(
 3618        ISpResourceManager *This,
 3619        REFGUID guidService,
 3620        REFIID riid,
 3621        void **ppvObject);
 3622
 3623    /*** ISpResourceManager methods ***/
 3624    HRESULT (STDMETHODCALLTYPE *SetObject)(
 3625        ISpResourceManager *This,
 3626        REFGUID guidServiceId,
 3627        IUnknown *pUnkObject);
 3628
 3629    HRESULT (STDMETHODCALLTYPE *GetObject)(
 3630        ISpResourceManager *This,
 3631        REFGUID guidServiceId,
 3632        REFCLSID ObjectCLSID,
 3633        REFIID ObjectIID,
 3634        WINBOOL fReleaseWhenLastExternalRefReleased,
 3635        void **ppObject);
 3636
 3637    END_INTERFACE
 3638} ISpResourceManagerVtbl;
 3639
 3640interface ISpResourceManager {
 3641    CONST_VTBL ISpResourceManagerVtbl* lpVtbl;
 3642};
 3643
 3644#ifdef COBJMACROS
 3645#ifndef WIDL_C_INLINE_WRAPPERS
 3646/*** IUnknown methods ***/
 3647#define ISpResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3648#define ISpResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
 3649#define ISpResourceManager_Release(This) (This)->lpVtbl->Release(This)
 3650/*** IServiceProvider methods ***/
 3651#define ISpResourceManager_QueryService(This,guidService,riid,ppvObject) (This)->lpVtbl->QueryService(This,guidService,riid,ppvObject)
 3652/*** ISpResourceManager methods ***/
 3653#define ISpResourceManager_SetObject(This,guidServiceId,pUnkObject) (This)->lpVtbl->SetObject(This,guidServiceId,pUnkObject)
 3654#define ISpResourceManager_GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject) (This)->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
 3655#else
 3656/*** IUnknown methods ***/
 3657static inline HRESULT ISpResourceManager_QueryInterface(ISpResourceManager* This,REFIID riid,void **ppvObject) {
 3658    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3659}
 3660static inline ULONG ISpResourceManager_AddRef(ISpResourceManager* This) {
 3661    return This->lpVtbl->AddRef(This);
 3662}
 3663static inline ULONG ISpResourceManager_Release(ISpResourceManager* This) {
 3664    return This->lpVtbl->Release(This);
 3665}
 3666/*** IServiceProvider methods ***/
 3667static inline HRESULT ISpResourceManager_QueryService(ISpResourceManager* This,REFGUID guidService,REFIID riid,void **ppvObject) {
 3668    return This->lpVtbl->QueryService(This,guidService,riid,ppvObject);
 3669}
 3670/*** ISpResourceManager methods ***/
 3671static inline HRESULT ISpResourceManager_SetObject(ISpResourceManager* This,REFGUID guidServiceId,IUnknown *pUnkObject) {
 3672    return This->lpVtbl->SetObject(This,guidServiceId,pUnkObject);
 3673}
 3674static inline HRESULT ISpResourceManager_GetObject(ISpResourceManager* This,REFGUID guidServiceId,REFCLSID ObjectCLSID,REFIID ObjectIID,WINBOOL fReleaseWhenLastExternalRefReleased,void **ppObject) {
 3675    return This->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject);
 3676}
 3677#endif
 3678#endif
 3679
 3680#endif
 3681
 3682
 3683#endif  /* __ISpResourceManager_INTERFACE_DEFINED__ */
 3684
 3685#if 0
 3686typedef struct SPEVENT {
 3687    WORD eEventId;
 3688    WORD elParamType;
 3689    ULONG ulStreamNum;
 3690    ULONGLONG ullAudioStreamOffset;
 3691    WPARAM wParam;
 3692    LPARAM lParam;
 3693} SPEVENT;
 3694typedef struct SPSERIALIZEDEVENT {
 3695    WORD eEventId;
 3696    WORD elParamType;
 3697    ULONG ulStreamNum;
 3698    ULONGLONG ullAudioStreamOffset;
 3699    ULONG SerializedwParam;
 3700    LONG SerializedlParam;
 3701} SPSERIALIZEDEVENT;
 3702typedef struct SPSERIALIZEDEVENT64 {
 3703    WORD eEventId;
 3704    WORD elParamType;
 3705    ULONG ulStreamNum;
 3706    ULONGLONG ullAudioStreamOffset;
 3707    ULONGLONG SerializedwParam;
 3708    LONGLONG SerializedlParam;
 3709} SPSERIALIZEDEVENT64;
 3710#else
 3711typedef struct SPEVENT {
 3712  SPEVENTENUM eEventId : 16;
 3713  SPEVENTLPARAMTYPE elParamType : 16;
 3714  ULONG ulStreamNum;
 3715  ULONGLONG ullAudioStreamOffset;
 3716  WPARAM      wParam;
 3717  LPARAM      lParam;
 3718} SPEVENT;
 3719
 3720typedef struct SPSERIALIZEDEVENT {
 3721  SPEVENTENUM eEventId : 16;
 3722  SPEVENTLPARAMTYPE elParamType : 16;
 3723  ULONG ulStreamNum;
 3724  ULONGLONG ullAudioStreamOffset;
 3725  ULONG SerializedwParam;
 3726  LONG SerializedlParam;
 3727} SPSERIALIZEDEVENT;
 3728
 3729typedef struct SPSERIALIZEDEVENT64 {
 3730  SPEVENTENUM eEventId : 16;
 3731  SPEVENTLPARAMTYPE elParamType : 16;
 3732  ULONG ulStreamNum;
 3733  ULONGLONG ullAudioStreamOffset;
 3734  ULONGLONG SerializedwParam;
 3735  LONGLONG SerializedlParam;
 3736} SPSERIALIZEDEVENT64;
 3737#endif
 3738#if 0
 3739typedef struct SPEVENTEX {
 3740    WORD eEventId;
 3741    WORD elParamType;
 3742    ULONG ulStreamNum;
 3743    ULONGLONG ullAudioStreamOffset;
 3744    WPARAM wParam;
 3745    LPARAM lParam;
 3746    ULONGLONG ullAudioTimeOffset;
 3747} SPEVENTEX;
 3748#else
 3749typedef struct SPEVENTEX {
 3750  SPEVENTENUM eEventId : 16;
 3751  SPEVENTLPARAMTYPE elParamType : 16;
 3752  ULONG ulStreamNum;
 3753  ULONGLONG ullAudioStreamOffset;
 3754  WPARAM wParam;
 3755  LPARAM lParam;
 3756  ULONGLONG ullAudioTimeOffset;
 3757} SPEVENTEX;
 3758#endif
 3759typedef struct SPEVENTSOURCEINFO {
 3760    ULONGLONG ullEventInterest;
 3761    ULONGLONG ullQueuedInterest;
 3762    ULONG ulCount;
 3763} SPEVENTSOURCEINFO;
 3764/*****************************************************************************
 3765 * ISpEventSource interface
 3766 */
 3767#ifndef __ISpEventSource_INTERFACE_DEFINED__
 3768#define __ISpEventSource_INTERFACE_DEFINED__
 3769
 3770DEFINE_GUID(IID_ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 3771#if defined(__cplusplus) && !defined(CINTERFACE)
 3772MIDL_INTERFACE("be7a9cce-5f9e-11d2-960f-00c04f8ee628")
 3773ISpEventSource : public ISpNotifySource
 3774{
 3775    virtual HRESULT STDMETHODCALLTYPE SetInterest(
 3776        ULONGLONG ullEventInterest,
 3777        ULONGLONG ullQueuedInterest) = 0;
 3778
 3779    virtual HRESULT STDMETHODCALLTYPE GetEvents(
 3780        ULONG ulCount,
 3781        SPEVENT *pEventArray,
 3782        ULONG *pulFetched) = 0;
 3783
 3784    virtual HRESULT STDMETHODCALLTYPE GetInfo(
 3785        SPEVENTSOURCEINFO *pInfo) = 0;
 3786
 3787};
 3788#ifdef __CRT_UUID_DECL
 3789__CRT_UUID_DECL(ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 3790#endif
 3791#else
 3792typedef struct ISpEventSourceVtbl {
 3793    BEGIN_INTERFACE
 3794
 3795    /*** IUnknown methods ***/
 3796    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3797        ISpEventSource *This,
 3798        REFIID riid,
 3799        void **ppvObject);
 3800
 3801    ULONG (STDMETHODCALLTYPE *AddRef)(
 3802        ISpEventSource *This);
 3803
 3804    ULONG (STDMETHODCALLTYPE *Release)(
 3805        ISpEventSource *This);
 3806
 3807    /*** ISpNotifySource methods ***/
 3808    HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
 3809        ISpEventSource *This,
 3810        ISpNotifySink *pNotifySink);
 3811
 3812    HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
 3813        ISpEventSource *This,
 3814        HWND hWnd,
 3815        UINT Msg,
 3816        WPARAM wParam,
 3817        LPARAM lParam);
 3818
 3819    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
 3820        ISpEventSource *This,
 3821        SPNOTIFYCALLBACK *pfnCallback,
 3822        WPARAM wParam,
 3823        LPARAM lParam);
 3824
 3825    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
 3826        ISpEventSource *This,
 3827        ISpNotifyCallback *pSpCallback,
 3828        WPARAM wParam,
 3829        LPARAM lParam);
 3830
 3831    HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
 3832        ISpEventSource *This);
 3833
 3834    HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
 3835        ISpEventSource *This,
 3836        DWORD dwMilliseconds);
 3837
 3838    HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
 3839        ISpEventSource *This);
 3840
 3841    /*** ISpEventSource methods ***/
 3842    HRESULT (STDMETHODCALLTYPE *SetInterest)(
 3843        ISpEventSource *This,
 3844        ULONGLONG ullEventInterest,
 3845        ULONGLONG ullQueuedInterest);
 3846
 3847    HRESULT (STDMETHODCALLTYPE *GetEvents)(
 3848        ISpEventSource *This,
 3849        ULONG ulCount,
 3850        SPEVENT *pEventArray,
 3851        ULONG *pulFetched);
 3852
 3853    HRESULT (STDMETHODCALLTYPE *GetInfo)(
 3854        ISpEventSource *This,
 3855        SPEVENTSOURCEINFO *pInfo);
 3856
 3857    END_INTERFACE
 3858} ISpEventSourceVtbl;
 3859
 3860interface ISpEventSource {
 3861    CONST_VTBL ISpEventSourceVtbl* lpVtbl;
 3862};
 3863
 3864#ifdef COBJMACROS
 3865#ifndef WIDL_C_INLINE_WRAPPERS
 3866/*** IUnknown methods ***/
 3867#define ISpEventSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3868#define ISpEventSource_AddRef(This) (This)->lpVtbl->AddRef(This)
 3869#define ISpEventSource_Release(This) (This)->lpVtbl->Release(This)
 3870/*** ISpNotifySource methods ***/
 3871#define ISpEventSource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
 3872#define ISpEventSource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
 3873#define ISpEventSource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
 3874#define ISpEventSource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
 3875#define ISpEventSource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
 3876#define ISpEventSource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
 3877#define ISpEventSource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
 3878/*** ISpEventSource methods ***/
 3879#define ISpEventSource_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
 3880#define ISpEventSource_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
 3881#define ISpEventSource_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
 3882#else
 3883/*** IUnknown methods ***/
 3884static inline HRESULT ISpEventSource_QueryInterface(ISpEventSource* This,REFIID riid,void **ppvObject) {
 3885    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3886}
 3887static inline ULONG ISpEventSource_AddRef(ISpEventSource* This) {
 3888    return This->lpVtbl->AddRef(This);
 3889}
 3890static inline ULONG ISpEventSource_Release(ISpEventSource* This) {
 3891    return This->lpVtbl->Release(This);
 3892}
 3893/*** ISpNotifySource methods ***/
 3894static inline HRESULT ISpEventSource_SetNotifySink(ISpEventSource* This,ISpNotifySink *pNotifySink) {
 3895    return This->lpVtbl->SetNotifySink(This,pNotifySink);
 3896}
 3897static inline HRESULT ISpEventSource_SetNotifyWindowMessage(ISpEventSource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 3898    return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
 3899}
 3900static inline HRESULT ISpEventSource_SetNotifyCallbackFunction(ISpEventSource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 3901    return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
 3902}
 3903static inline HRESULT ISpEventSource_SetNotifyCallbackInterface(ISpEventSource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 3904    return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
 3905}
 3906static inline HRESULT ISpEventSource_SetNotifyWin32Event(ISpEventSource* This) {
 3907    return This->lpVtbl->SetNotifyWin32Event(This);
 3908}
 3909static inline HRESULT ISpEventSource_WaitForNotifyEvent(ISpEventSource* This,DWORD dwMilliseconds) {
 3910    return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
 3911}
 3912static inline HANDLE ISpEventSource_GetNotifyEventHandle(ISpEventSource* This) {
 3913    return This->lpVtbl->GetNotifyEventHandle(This);
 3914}
 3915/*** ISpEventSource methods ***/
 3916static inline HRESULT ISpEventSource_SetInterest(ISpEventSource* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
 3917    return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
 3918}
 3919static inline HRESULT ISpEventSource_GetEvents(ISpEventSource* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
 3920    return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
 3921}
 3922static inline HRESULT ISpEventSource_GetInfo(ISpEventSource* This,SPEVENTSOURCEINFO *pInfo) {
 3923    return This->lpVtbl->GetInfo(This,pInfo);
 3924}
 3925#endif
 3926#endif
 3927
 3928#endif
 3929
 3930
 3931#endif  /* __ISpEventSource_INTERFACE_DEFINED__ */
 3932
 3933/*****************************************************************************
 3934 * ISpEventSource2 interface
 3935 */
 3936#ifndef __ISpEventSource2_INTERFACE_DEFINED__
 3937#define __ISpEventSource2_INTERFACE_DEFINED__
 3938
 3939DEFINE_GUID(IID_ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b);
 3940#if defined(__cplusplus) && !defined(CINTERFACE)
 3941MIDL_INTERFACE("2373a435-6a4b-429e-a6ac-d4231a61975b")
 3942ISpEventSource2 : public ISpEventSource
 3943{
 3944    virtual HRESULT STDMETHODCALLTYPE GetEventsEx(
 3945        ULONG ulCount,
 3946        SPEVENTEX *pEventArray,
 3947        ULONG *pulFetched) = 0;
 3948
 3949};
 3950#ifdef __CRT_UUID_DECL
 3951__CRT_UUID_DECL(ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b)
 3952#endif
 3953#else
 3954typedef struct ISpEventSource2Vtbl {
 3955    BEGIN_INTERFACE
 3956
 3957    /*** IUnknown methods ***/
 3958    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3959        ISpEventSource2 *This,
 3960        REFIID riid,
 3961        void **ppvObject);
 3962
 3963    ULONG (STDMETHODCALLTYPE *AddRef)(
 3964        ISpEventSource2 *This);
 3965
 3966    ULONG (STDMETHODCALLTYPE *Release)(
 3967        ISpEventSource2 *This);
 3968
 3969    /*** ISpNotifySource methods ***/
 3970    HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
 3971        ISpEventSource2 *This,
 3972        ISpNotifySink *pNotifySink);
 3973
 3974    HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
 3975        ISpEventSource2 *This,
 3976        HWND hWnd,
 3977        UINT Msg,
 3978        WPARAM wParam,
 3979        LPARAM lParam);
 3980
 3981    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
 3982        ISpEventSource2 *This,
 3983        SPNOTIFYCALLBACK *pfnCallback,
 3984        WPARAM wParam,
 3985        LPARAM lParam);
 3986
 3987    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
 3988        ISpEventSource2 *This,
 3989        ISpNotifyCallback *pSpCallback,
 3990        WPARAM wParam,
 3991        LPARAM lParam);
 3992
 3993    HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
 3994        ISpEventSource2 *This);
 3995
 3996    HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
 3997        ISpEventSource2 *This,
 3998        DWORD dwMilliseconds);
 3999
 4000    HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
 4001        ISpEventSource2 *This);
 4002
 4003    /*** ISpEventSource methods ***/
 4004    HRESULT (STDMETHODCALLTYPE *SetInterest)(
 4005        ISpEventSource2 *This,
 4006        ULONGLONG ullEventInterest,
 4007        ULONGLONG ullQueuedInterest);
 4008
 4009    HRESULT (STDMETHODCALLTYPE *GetEvents)(
 4010        ISpEventSource2 *This,
 4011        ULONG ulCount,
 4012        SPEVENT *pEventArray,
 4013        ULONG *pulFetched);
 4014
 4015    HRESULT (STDMETHODCALLTYPE *GetInfo)(
 4016        ISpEventSource2 *This,
 4017        SPEVENTSOURCEINFO *pInfo);
 4018
 4019    /*** ISpEventSource2 methods ***/
 4020    HRESULT (STDMETHODCALLTYPE *GetEventsEx)(
 4021        ISpEventSource2 *This,
 4022        ULONG ulCount,
 4023        SPEVENTEX *pEventArray,
 4024        ULONG *pulFetched);
 4025
 4026    END_INTERFACE
 4027} ISpEventSource2Vtbl;
 4028
 4029interface ISpEventSource2 {
 4030    CONST_VTBL ISpEventSource2Vtbl* lpVtbl;
 4031};
 4032
 4033#ifdef COBJMACROS
 4034#ifndef WIDL_C_INLINE_WRAPPERS
 4035/*** IUnknown methods ***/
 4036#define ISpEventSource2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4037#define ISpEventSource2_AddRef(This) (This)->lpVtbl->AddRef(This)
 4038#define ISpEventSource2_Release(This) (This)->lpVtbl->Release(This)
 4039/*** ISpNotifySource methods ***/
 4040#define ISpEventSource2_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
 4041#define ISpEventSource2_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
 4042#define ISpEventSource2_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
 4043#define ISpEventSource2_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
 4044#define ISpEventSource2_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
 4045#define ISpEventSource2_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
 4046#define ISpEventSource2_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
 4047/*** ISpEventSource methods ***/
 4048#define ISpEventSource2_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
 4049#define ISpEventSource2_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
 4050#define ISpEventSource2_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
 4051/*** ISpEventSource2 methods ***/
 4052#define ISpEventSource2_GetEventsEx(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched)
 4053#else
 4054/*** IUnknown methods ***/
 4055static inline HRESULT ISpEventSource2_QueryInterface(ISpEventSource2* This,REFIID riid,void **ppvObject) {
 4056    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4057}
 4058static inline ULONG ISpEventSource2_AddRef(ISpEventSource2* This) {
 4059    return This->lpVtbl->AddRef(This);
 4060}
 4061static inline ULONG ISpEventSource2_Release(ISpEventSource2* This) {
 4062    return This->lpVtbl->Release(This);
 4063}
 4064/*** ISpNotifySource methods ***/
 4065static inline HRESULT ISpEventSource2_SetNotifySink(ISpEventSource2* This,ISpNotifySink *pNotifySink) {
 4066    return This->lpVtbl->SetNotifySink(This,pNotifySink);
 4067}
 4068static inline HRESULT ISpEventSource2_SetNotifyWindowMessage(ISpEventSource2* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 4069    return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
 4070}
 4071static inline HRESULT ISpEventSource2_SetNotifyCallbackFunction(ISpEventSource2* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 4072    return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
 4073}
 4074static inline HRESULT ISpEventSource2_SetNotifyCallbackInterface(ISpEventSource2* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 4075    return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
 4076}
 4077static inline HRESULT ISpEventSource2_SetNotifyWin32Event(ISpEventSource2* This) {
 4078    return This->lpVtbl->SetNotifyWin32Event(This);
 4079}
 4080static inline HRESULT ISpEventSource2_WaitForNotifyEvent(ISpEventSource2* This,DWORD dwMilliseconds) {
 4081    return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
 4082}
 4083static inline HANDLE ISpEventSource2_GetNotifyEventHandle(ISpEventSource2* This) {
 4084    return This->lpVtbl->GetNotifyEventHandle(This);
 4085}
 4086/*** ISpEventSource methods ***/
 4087static inline HRESULT ISpEventSource2_SetInterest(ISpEventSource2* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
 4088    return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
 4089}
 4090static inline HRESULT ISpEventSource2_GetEvents(ISpEventSource2* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
 4091    return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
 4092}
 4093static inline HRESULT ISpEventSource2_GetInfo(ISpEventSource2* This,SPEVENTSOURCEINFO *pInfo) {
 4094    return This->lpVtbl->GetInfo(This,pInfo);
 4095}
 4096/*** ISpEventSource2 methods ***/
 4097static inline HRESULT ISpEventSource2_GetEventsEx(ISpEventSource2* This,ULONG ulCount,SPEVENTEX *pEventArray,ULONG *pulFetched) {
 4098    return This->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched);
 4099}
 4100#endif
 4101#endif
 4102
 4103#endif
 4104
 4105
 4106#endif  /* __ISpEventSource2_INTERFACE_DEFINED__ */
 4107
 4108/*****************************************************************************
 4109 * ISpEventSink interface
 4110 */
 4111#ifndef __ISpEventSink_INTERFACE_DEFINED__
 4112#define __ISpEventSink_INTERFACE_DEFINED__
 4113
 4114DEFINE_GUID(IID_ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 4115#if defined(__cplusplus) && !defined(CINTERFACE)
 4116MIDL_INTERFACE("be7a9cc9-5f9e-11d2-960f-00c04f8ee628")
 4117ISpEventSink : public IUnknown
 4118{
 4119    virtual HRESULT STDMETHODCALLTYPE AddEvents(
 4120        const SPEVENT *pEventArray,
 4121        ULONG ulCount) = 0;
 4122
 4123    virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
 4124        ULONGLONG *pullEventInterest) = 0;
 4125
 4126};
 4127#ifdef __CRT_UUID_DECL
 4128__CRT_UUID_DECL(ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 4129#endif
 4130#else
 4131typedef struct ISpEventSinkVtbl {
 4132    BEGIN_INTERFACE
 4133
 4134    /*** IUnknown methods ***/
 4135    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4136        ISpEventSink *This,
 4137        REFIID riid,
 4138        void **ppvObject);
 4139
 4140    ULONG (STDMETHODCALLTYPE *AddRef)(
 4141        ISpEventSink *This);
 4142
 4143    ULONG (STDMETHODCALLTYPE *Release)(
 4144        ISpEventSink *This);
 4145
 4146    /*** ISpEventSink methods ***/
 4147    HRESULT (STDMETHODCALLTYPE *AddEvents)(
 4148        ISpEventSink *This,
 4149        const SPEVENT *pEventArray,
 4150        ULONG ulCount);
 4151
 4152    HRESULT (STDMETHODCALLTYPE *GetEventInterest)(
 4153        ISpEventSink *This,
 4154        ULONGLONG *pullEventInterest);
 4155
 4156    END_INTERFACE
 4157} ISpEventSinkVtbl;
 4158
 4159interface ISpEventSink {
 4160    CONST_VTBL ISpEventSinkVtbl* lpVtbl;
 4161};
 4162
 4163#ifdef COBJMACROS
 4164#ifndef WIDL_C_INLINE_WRAPPERS
 4165/*** IUnknown methods ***/
 4166#define ISpEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4167#define ISpEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
 4168#define ISpEventSink_Release(This) (This)->lpVtbl->Release(This)
 4169/*** ISpEventSink methods ***/
 4170#define ISpEventSink_AddEvents(This,pEventArray,ulCount) (This)->lpVtbl->AddEvents(This,pEventArray,ulCount)
 4171#define ISpEventSink_GetEventInterest(This,pullEventInterest) (This)->lpVtbl->GetEventInterest(This,pullEventInterest)
 4172#else
 4173/*** IUnknown methods ***/
 4174static inline HRESULT ISpEventSink_QueryInterface(ISpEventSink* This,REFIID riid,void **ppvObject) {
 4175    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4176}
 4177static inline ULONG ISpEventSink_AddRef(ISpEventSink* This) {
 4178    return This->lpVtbl->AddRef(This);
 4179}
 4180static inline ULONG ISpEventSink_Release(ISpEventSink* This) {
 4181    return This->lpVtbl->Release(This);
 4182}
 4183/*** ISpEventSink methods ***/
 4184static inline HRESULT ISpEventSink_AddEvents(ISpEventSink* This,const SPEVENT *pEventArray,ULONG ulCount) {
 4185    return This->lpVtbl->AddEvents(This,pEventArray,ulCount);
 4186}
 4187static inline HRESULT ISpEventSink_GetEventInterest(ISpEventSink* This,ULONGLONG *pullEventInterest) {
 4188    return This->lpVtbl->GetEventInterest(This,pullEventInterest);
 4189}
 4190#endif
 4191#endif
 4192
 4193#endif
 4194
 4195
 4196#endif  /* __ISpEventSink_INTERFACE_DEFINED__ */
 4197
 4198/*****************************************************************************
 4199 * ISpStreamFormat interface
 4200 */
 4201#ifndef __ISpStreamFormat_INTERFACE_DEFINED__
 4202#define __ISpStreamFormat_INTERFACE_DEFINED__
 4203
 4204DEFINE_GUID(IID_ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f);
 4205#if defined(__cplusplus) && !defined(CINTERFACE)
 4206MIDL_INTERFACE("bed530be-2606-4f4d-a1c0-54c5cda5566f")
 4207ISpStreamFormat : public IStream
 4208{
 4209    virtual HRESULT STDMETHODCALLTYPE GetFormat(
 4210        GUID *pguidFormatId,
 4211        WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
 4212
 4213};
 4214#ifdef __CRT_UUID_DECL
 4215__CRT_UUID_DECL(ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f)
 4216#endif
 4217#else
 4218typedef struct ISpStreamFormatVtbl {
 4219    BEGIN_INTERFACE
 4220
 4221    /*** IUnknown methods ***/
 4222    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4223        ISpStreamFormat *This,
 4224        REFIID riid,
 4225        void **ppvObject);
 4226
 4227    ULONG (STDMETHODCALLTYPE *AddRef)(
 4228        ISpStreamFormat *This);
 4229
 4230    ULONG (STDMETHODCALLTYPE *Release)(
 4231        ISpStreamFormat *This);
 4232
 4233    /*** ISequentialStream methods ***/
 4234    HRESULT (STDMETHODCALLTYPE *Read)(
 4235        ISpStreamFormat *This,
 4236        void *pv,
 4237        ULONG cb,
 4238        ULONG *pcbRead);
 4239
 4240    HRESULT (STDMETHODCALLTYPE *Write)(
 4241        ISpStreamFormat *This,
 4242        const void *pv,
 4243        ULONG cb,
 4244        ULONG *pcbWritten);
 4245
 4246    /*** IStream methods ***/
 4247    HRESULT (STDMETHODCALLTYPE *Seek)(
 4248        ISpStreamFormat *This,
 4249        LARGE_INTEGER dlibMove,
 4250        DWORD dwOrigin,
 4251        ULARGE_INTEGER *plibNewPosition);
 4252
 4253    HRESULT (STDMETHODCALLTYPE *SetSize)(
 4254        ISpStreamFormat *This,
 4255        ULARGE_INTEGER libNewSize);
 4256
 4257    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 4258        ISpStreamFormat *This,
 4259        IStream *pstm,
 4260        ULARGE_INTEGER cb,
 4261        ULARGE_INTEGER *pcbRead,
 4262        ULARGE_INTEGER *pcbWritten);
 4263
 4264    HRESULT (STDMETHODCALLTYPE *Commit)(
 4265        ISpStreamFormat *This,
 4266        DWORD grfCommitFlags);
 4267
 4268    HRESULT (STDMETHODCALLTYPE *Revert)(
 4269        ISpStreamFormat *This);
 4270
 4271    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 4272        ISpStreamFormat *This,
 4273        ULARGE_INTEGER libOffset,
 4274        ULARGE_INTEGER cb,
 4275        DWORD dwLockType);
 4276
 4277    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 4278        ISpStreamFormat *This,
 4279        ULARGE_INTEGER libOffset,
 4280        ULARGE_INTEGER cb,
 4281        DWORD dwLockType);
 4282
 4283    HRESULT (STDMETHODCALLTYPE *Stat)(
 4284        ISpStreamFormat *This,
 4285        STATSTG *pstatstg,
 4286        DWORD grfStatFlag);
 4287
 4288    HRESULT (STDMETHODCALLTYPE *Clone)(
 4289        ISpStreamFormat *This,
 4290        IStream **ppstm);
 4291
 4292    /*** ISpStreamFormat methods ***/
 4293    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 4294        ISpStreamFormat *This,
 4295        GUID *pguidFormatId,
 4296        WAVEFORMATEX **ppCoMemWaveFormatEx);
 4297
 4298    END_INTERFACE
 4299} ISpStreamFormatVtbl;
 4300
 4301interface ISpStreamFormat {
 4302    CONST_VTBL ISpStreamFormatVtbl* lpVtbl;
 4303};
 4304
 4305#ifdef COBJMACROS
 4306#ifndef WIDL_C_INLINE_WRAPPERS
 4307/*** IUnknown methods ***/
 4308#define ISpStreamFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4309#define ISpStreamFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
 4310#define ISpStreamFormat_Release(This) (This)->lpVtbl->Release(This)
 4311/*** ISequentialStream methods ***/
 4312#define ISpStreamFormat_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 4313#define ISpStreamFormat_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 4314/*** IStream methods ***/
 4315#define ISpStreamFormat_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 4316#define ISpStreamFormat_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 4317#define ISpStreamFormat_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 4318#define ISpStreamFormat_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 4319#define ISpStreamFormat_Revert(This) (This)->lpVtbl->Revert(This)
 4320#define ISpStreamFormat_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 4321#define ISpStreamFormat_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 4322#define ISpStreamFormat_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 4323#define ISpStreamFormat_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 4324/*** ISpStreamFormat methods ***/
 4325#define ISpStreamFormat_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 4326#else
 4327/*** IUnknown methods ***/
 4328static inline HRESULT ISpStreamFormat_QueryInterface(ISpStreamFormat* This,REFIID riid,void **ppvObject) {
 4329    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4330}
 4331static inline ULONG ISpStreamFormat_AddRef(ISpStreamFormat* This) {
 4332    return This->lpVtbl->AddRef(This);
 4333}
 4334static inline ULONG ISpStreamFormat_Release(ISpStreamFormat* This) {
 4335    return This->lpVtbl->Release(This);
 4336}
 4337/*** ISequentialStream methods ***/
 4338static inline HRESULT ISpStreamFormat_Read(ISpStreamFormat* This,void *pv,ULONG cb,ULONG *pcbRead) {
 4339    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 4340}
 4341static inline HRESULT ISpStreamFormat_Write(ISpStreamFormat* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 4342    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 4343}
 4344/*** IStream methods ***/
 4345static inline HRESULT ISpStreamFormat_Seek(ISpStreamFormat* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 4346    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 4347}
 4348static inline HRESULT ISpStreamFormat_SetSize(ISpStreamFormat* This,ULARGE_INTEGER libNewSize) {
 4349    return This->lpVtbl->SetSize(This,libNewSize);
 4350}
 4351static inline HRESULT ISpStreamFormat_CopyTo(ISpStreamFormat* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 4352    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 4353}
 4354static inline HRESULT ISpStreamFormat_Commit(ISpStreamFormat* This,DWORD grfCommitFlags) {
 4355    return This->lpVtbl->Commit(This,grfCommitFlags);
 4356}
 4357static inline HRESULT ISpStreamFormat_Revert(ISpStreamFormat* This) {
 4358    return This->lpVtbl->Revert(This);
 4359}
 4360static inline HRESULT ISpStreamFormat_LockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4361    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 4362}
 4363static inline HRESULT ISpStreamFormat_UnlockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4364    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 4365}
 4366static inline HRESULT ISpStreamFormat_Stat(ISpStreamFormat* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 4367    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 4368}
 4369static inline HRESULT ISpStreamFormat_Clone(ISpStreamFormat* This,IStream **ppstm) {
 4370    return This->lpVtbl->Clone(This,ppstm);
 4371}
 4372/*** ISpStreamFormat methods ***/
 4373static inline HRESULT ISpStreamFormat_GetFormat(ISpStreamFormat* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 4374    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 4375}
 4376#endif
 4377#endif
 4378
 4379#endif
 4380
 4381
 4382#endif  /* __ISpStreamFormat_INTERFACE_DEFINED__ */
 4383
 4384/*****************************************************************************
 4385 * ISpStream interface
 4386 */
 4387#ifndef __ISpStream_INTERFACE_DEFINED__
 4388#define __ISpStream_INTERFACE_DEFINED__
 4389
 4390DEFINE_GUID(IID_ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e);
 4391#if defined(__cplusplus) && !defined(CINTERFACE)
 4392MIDL_INTERFACE("12e3cca9-7518-44c5-a5e7-ba5a79cb929e")
 4393ISpStream : public ISpStreamFormat
 4394{
 4395    virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
 4396        IStream *pStream,
 4397        REFGUID rguidFormat,
 4398        const WAVEFORMATEX *pWaveFormatEx) = 0;
 4399
 4400    virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
 4401        IStream **ppStream) = 0;
 4402
 4403    virtual HRESULT STDMETHODCALLTYPE BindToFile(
 4404        LPCWSTR pszFileName,
 4405        SPFILEMODE eMode,
 4406        const GUID *pFormatId,
 4407        const WAVEFORMATEX *pWaveFormatEx,
 4408        ULONGLONG ullEventInterest) = 0;
 4409
 4410    virtual HRESULT STDMETHODCALLTYPE Close(
 4411        ) = 0;
 4412
 4413};
 4414#ifdef __CRT_UUID_DECL
 4415__CRT_UUID_DECL(ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e)
 4416#endif
 4417#else
 4418typedef struct ISpStreamVtbl {
 4419    BEGIN_INTERFACE
 4420
 4421    /*** IUnknown methods ***/
 4422    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4423        ISpStream *This,
 4424        REFIID riid,
 4425        void **ppvObject);
 4426
 4427    ULONG (STDMETHODCALLTYPE *AddRef)(
 4428        ISpStream *This);
 4429
 4430    ULONG (STDMETHODCALLTYPE *Release)(
 4431        ISpStream *This);
 4432
 4433    /*** ISequentialStream methods ***/
 4434    HRESULT (STDMETHODCALLTYPE *Read)(
 4435        ISpStream *This,
 4436        void *pv,
 4437        ULONG cb,
 4438        ULONG *pcbRead);
 4439
 4440    HRESULT (STDMETHODCALLTYPE *Write)(
 4441        ISpStream *This,
 4442        const void *pv,
 4443        ULONG cb,
 4444        ULONG *pcbWritten);
 4445
 4446    /*** IStream methods ***/
 4447    HRESULT (STDMETHODCALLTYPE *Seek)(
 4448        ISpStream *This,
 4449        LARGE_INTEGER dlibMove,
 4450        DWORD dwOrigin,
 4451        ULARGE_INTEGER *plibNewPosition);
 4452
 4453    HRESULT (STDMETHODCALLTYPE *SetSize)(
 4454        ISpStream *This,
 4455        ULARGE_INTEGER libNewSize);
 4456
 4457    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 4458        ISpStream *This,
 4459        IStream *pstm,
 4460        ULARGE_INTEGER cb,
 4461        ULARGE_INTEGER *pcbRead,
 4462        ULARGE_INTEGER *pcbWritten);
 4463
 4464    HRESULT (STDMETHODCALLTYPE *Commit)(
 4465        ISpStream *This,
 4466        DWORD grfCommitFlags);
 4467
 4468    HRESULT (STDMETHODCALLTYPE *Revert)(
 4469        ISpStream *This);
 4470
 4471    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 4472        ISpStream *This,
 4473        ULARGE_INTEGER libOffset,
 4474        ULARGE_INTEGER cb,
 4475        DWORD dwLockType);
 4476
 4477    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 4478        ISpStream *This,
 4479        ULARGE_INTEGER libOffset,
 4480        ULARGE_INTEGER cb,
 4481        DWORD dwLockType);
 4482
 4483    HRESULT (STDMETHODCALLTYPE *Stat)(
 4484        ISpStream *This,
 4485        STATSTG *pstatstg,
 4486        DWORD grfStatFlag);
 4487
 4488    HRESULT (STDMETHODCALLTYPE *Clone)(
 4489        ISpStream *This,
 4490        IStream **ppstm);
 4491
 4492    /*** ISpStreamFormat methods ***/
 4493    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 4494        ISpStream *This,
 4495        GUID *pguidFormatId,
 4496        WAVEFORMATEX **ppCoMemWaveFormatEx);
 4497
 4498    /*** ISpStream methods ***/
 4499    HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
 4500        ISpStream *This,
 4501        IStream *pStream,
 4502        REFGUID rguidFormat,
 4503        const WAVEFORMATEX *pWaveFormatEx);
 4504
 4505    HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
 4506        ISpStream *This,
 4507        IStream **ppStream);
 4508
 4509    HRESULT (STDMETHODCALLTYPE *BindToFile)(
 4510        ISpStream *This,
 4511        LPCWSTR pszFileName,
 4512        SPFILEMODE eMode,
 4513        const GUID *pFormatId,
 4514        const WAVEFORMATEX *pWaveFormatEx,
 4515        ULONGLONG ullEventInterest);
 4516
 4517    HRESULT (STDMETHODCALLTYPE *Close)(
 4518        ISpStream *This);
 4519
 4520    END_INTERFACE
 4521} ISpStreamVtbl;
 4522
 4523interface ISpStream {
 4524    CONST_VTBL ISpStreamVtbl* lpVtbl;
 4525};
 4526
 4527#ifdef COBJMACROS
 4528#ifndef WIDL_C_INLINE_WRAPPERS
 4529/*** IUnknown methods ***/
 4530#define ISpStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4531#define ISpStream_AddRef(This) (This)->lpVtbl->AddRef(This)
 4532#define ISpStream_Release(This) (This)->lpVtbl->Release(This)
 4533/*** ISequentialStream methods ***/
 4534#define ISpStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 4535#define ISpStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 4536/*** IStream methods ***/
 4537#define ISpStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 4538#define ISpStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 4539#define ISpStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 4540#define ISpStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 4541#define ISpStream_Revert(This) (This)->lpVtbl->Revert(This)
 4542#define ISpStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 4543#define ISpStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 4544#define ISpStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 4545#define ISpStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 4546/*** ISpStreamFormat methods ***/
 4547#define ISpStream_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 4548/*** ISpStream methods ***/
 4549#define ISpStream_SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx) (This)->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx)
 4550#define ISpStream_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
 4551#define ISpStream_BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest) (This)->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest)
 4552#define ISpStream_Close(This) (This)->lpVtbl->Close(This)
 4553#else
 4554/*** IUnknown methods ***/
 4555static inline HRESULT ISpStream_QueryInterface(ISpStream* This,REFIID riid,void **ppvObject) {
 4556    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4557}
 4558static inline ULONG ISpStream_AddRef(ISpStream* This) {
 4559    return This->lpVtbl->AddRef(This);
 4560}
 4561static inline ULONG ISpStream_Release(ISpStream* This) {
 4562    return This->lpVtbl->Release(This);
 4563}
 4564/*** ISequentialStream methods ***/
 4565static inline HRESULT ISpStream_Read(ISpStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
 4566    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 4567}
 4568static inline HRESULT ISpStream_Write(ISpStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 4569    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 4570}
 4571/*** IStream methods ***/
 4572static inline HRESULT ISpStream_Seek(ISpStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 4573    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 4574}
 4575static inline HRESULT ISpStream_SetSize(ISpStream* This,ULARGE_INTEGER libNewSize) {
 4576    return This->lpVtbl->SetSize(This,libNewSize);
 4577}
 4578static inline HRESULT ISpStream_CopyTo(ISpStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 4579    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 4580}
 4581static inline HRESULT ISpStream_Commit(ISpStream* This,DWORD grfCommitFlags) {
 4582    return This->lpVtbl->Commit(This,grfCommitFlags);
 4583}
 4584static inline HRESULT ISpStream_Revert(ISpStream* This) {
 4585    return This->lpVtbl->Revert(This);
 4586}
 4587static inline HRESULT ISpStream_LockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4588    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 4589}
 4590static inline HRESULT ISpStream_UnlockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4591    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 4592}
 4593static inline HRESULT ISpStream_Stat(ISpStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 4594    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 4595}
 4596static inline HRESULT ISpStream_Clone(ISpStream* This,IStream **ppstm) {
 4597    return This->lpVtbl->Clone(This,ppstm);
 4598}
 4599/*** ISpStreamFormat methods ***/
 4600static inline HRESULT ISpStream_GetFormat(ISpStream* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 4601    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 4602}
 4603/*** ISpStream methods ***/
 4604static inline HRESULT ISpStream_SetBaseStream(ISpStream* This,IStream *pStream,REFGUID rguidFormat,const WAVEFORMATEX *pWaveFormatEx) {
 4605    return This->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx);
 4606}
 4607static inline HRESULT ISpStream_GetBaseStream(ISpStream* This,IStream **ppStream) {
 4608    return This->lpVtbl->GetBaseStream(This,ppStream);
 4609}
 4610static inline HRESULT ISpStream_BindToFile(ISpStream* This,LPCWSTR pszFileName,SPFILEMODE eMode,const GUID *pFormatId,const WAVEFORMATEX *pWaveFormatEx,ULONGLONG ullEventInterest) {
 4611    return This->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest);
 4612}
 4613static inline HRESULT ISpStream_Close(ISpStream* This) {
 4614    return This->lpVtbl->Close(This);
 4615}
 4616#endif
 4617#endif
 4618
 4619#endif
 4620
 4621
 4622#endif  /* __ISpStream_INTERFACE_DEFINED__ */
 4623
 4624/*****************************************************************************
 4625 * ISpStreamFormatConverter interface
 4626 */
 4627#ifndef __ISpStreamFormatConverter_INTERFACE_DEFINED__
 4628#define __ISpStreamFormatConverter_INTERFACE_DEFINED__
 4629
 4630DEFINE_GUID(IID_ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29);
 4631#if defined(__cplusplus) && !defined(CINTERFACE)
 4632MIDL_INTERFACE("678a932c-ea71-4446-9b41-78fda6280a29")
 4633ISpStreamFormatConverter : public ISpStreamFormat
 4634{
 4635    virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
 4636        ISpStreamFormat *pStream,
 4637        WINBOOL fSetFormatToBaseStreamFormat,
 4638        WINBOOL fWriteToBaseStream) = 0;
 4639
 4640    virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
 4641        ISpStreamFormat **ppStream) = 0;
 4642
 4643    virtual HRESULT STDMETHODCALLTYPE SetFormat(
 4644        REFGUID rguidFormatIdOfConvertedStream,
 4645        const WAVEFORMATEX *pWaveFormatExOfConvertedStream) = 0;
 4646
 4647    virtual HRESULT STDMETHODCALLTYPE ResetSeekPosition(
 4648        ) = 0;
 4649
 4650    virtual HRESULT STDMETHODCALLTYPE ScaleConvertedToBaseOffset(
 4651        ULONGLONG ullOffsetConvertedStream,
 4652        ULONGLONG *pullOffsetBaseStream) = 0;
 4653
 4654    virtual HRESULT STDMETHODCALLTYPE ScaleBaseToConvertedOffset(
 4655        ULONGLONG ullOffsetBaseStream,
 4656        ULONGLONG *pullOffsetConvertedStream) = 0;
 4657
 4658};
 4659#ifdef __CRT_UUID_DECL
 4660__CRT_UUID_DECL(ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29)
 4661#endif
 4662#else
 4663typedef struct ISpStreamFormatConverterVtbl {
 4664    BEGIN_INTERFACE
 4665
 4666    /*** IUnknown methods ***/
 4667    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4668        ISpStreamFormatConverter *This,
 4669        REFIID riid,
 4670        void **ppvObject);
 4671
 4672    ULONG (STDMETHODCALLTYPE *AddRef)(
 4673        ISpStreamFormatConverter *This);
 4674
 4675    ULONG (STDMETHODCALLTYPE *Release)(
 4676        ISpStreamFormatConverter *This);
 4677
 4678    /*** ISequentialStream methods ***/
 4679    HRESULT (STDMETHODCALLTYPE *Read)(
 4680        ISpStreamFormatConverter *This,
 4681        void *pv,
 4682        ULONG cb,
 4683        ULONG *pcbRead);
 4684
 4685    HRESULT (STDMETHODCALLTYPE *Write)(
 4686        ISpStreamFormatConverter *This,
 4687        const void *pv,
 4688        ULONG cb,
 4689        ULONG *pcbWritten);
 4690
 4691    /*** IStream methods ***/
 4692    HRESULT (STDMETHODCALLTYPE *Seek)(
 4693        ISpStreamFormatConverter *This,
 4694        LARGE_INTEGER dlibMove,
 4695        DWORD dwOrigin,
 4696        ULARGE_INTEGER *plibNewPosition);
 4697
 4698    HRESULT (STDMETHODCALLTYPE *SetSize)(
 4699        ISpStreamFormatConverter *This,
 4700        ULARGE_INTEGER libNewSize);
 4701
 4702    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 4703        ISpStreamFormatConverter *This,
 4704        IStream *pstm,
 4705        ULARGE_INTEGER cb,
 4706        ULARGE_INTEGER *pcbRead,
 4707        ULARGE_INTEGER *pcbWritten);
 4708
 4709    HRESULT (STDMETHODCALLTYPE *Commit)(
 4710        ISpStreamFormatConverter *This,
 4711        DWORD grfCommitFlags);
 4712
 4713    HRESULT (STDMETHODCALLTYPE *Revert)(
 4714        ISpStreamFormatConverter *This);
 4715
 4716    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 4717        ISpStreamFormatConverter *This,
 4718        ULARGE_INTEGER libOffset,
 4719        ULARGE_INTEGER cb,
 4720        DWORD dwLockType);
 4721
 4722    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 4723        ISpStreamFormatConverter *This,
 4724        ULARGE_INTEGER libOffset,
 4725        ULARGE_INTEGER cb,
 4726        DWORD dwLockType);
 4727
 4728    HRESULT (STDMETHODCALLTYPE *Stat)(
 4729        ISpStreamFormatConverter *This,
 4730        STATSTG *pstatstg,
 4731        DWORD grfStatFlag);
 4732
 4733    HRESULT (STDMETHODCALLTYPE *Clone)(
 4734        ISpStreamFormatConverter *This,
 4735        IStream **ppstm);
 4736
 4737    /*** ISpStreamFormat methods ***/
 4738    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 4739        ISpStreamFormatConverter *This,
 4740        GUID *pguidFormatId,
 4741        WAVEFORMATEX **ppCoMemWaveFormatEx);
 4742
 4743    /*** ISpStreamFormatConverter methods ***/
 4744    HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
 4745        ISpStreamFormatConverter *This,
 4746        ISpStreamFormat *pStream,
 4747        WINBOOL fSetFormatToBaseStreamFormat,
 4748        WINBOOL fWriteToBaseStream);
 4749
 4750    HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
 4751        ISpStreamFormatConverter *This,
 4752        ISpStreamFormat **ppStream);
 4753
 4754    HRESULT (STDMETHODCALLTYPE *SetFormat)(
 4755        ISpStreamFormatConverter *This,
 4756        REFGUID rguidFormatIdOfConvertedStream,
 4757        const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
 4758
 4759    HRESULT (STDMETHODCALLTYPE *ResetSeekPosition)(
 4760        ISpStreamFormatConverter *This);
 4761
 4762    HRESULT (STDMETHODCALLTYPE *ScaleConvertedToBaseOffset)(
 4763        ISpStreamFormatConverter *This,
 4764        ULONGLONG ullOffsetConvertedStream,
 4765        ULONGLONG *pullOffsetBaseStream);
 4766
 4767    HRESULT (STDMETHODCALLTYPE *ScaleBaseToConvertedOffset)(
 4768        ISpStreamFormatConverter *This,
 4769        ULONGLONG ullOffsetBaseStream,
 4770        ULONGLONG *pullOffsetConvertedStream);
 4771
 4772    END_INTERFACE
 4773} ISpStreamFormatConverterVtbl;
 4774
 4775interface ISpStreamFormatConverter {
 4776    CONST_VTBL ISpStreamFormatConverterVtbl* lpVtbl;
 4777};
 4778
 4779#ifdef COBJMACROS
 4780#ifndef WIDL_C_INLINE_WRAPPERS
 4781/*** IUnknown methods ***/
 4782#define ISpStreamFormatConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4783#define ISpStreamFormatConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
 4784#define ISpStreamFormatConverter_Release(This) (This)->lpVtbl->Release(This)
 4785/*** ISequentialStream methods ***/
 4786#define ISpStreamFormatConverter_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 4787#define ISpStreamFormatConverter_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 4788/*** IStream methods ***/
 4789#define ISpStreamFormatConverter_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 4790#define ISpStreamFormatConverter_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 4791#define ISpStreamFormatConverter_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 4792#define ISpStreamFormatConverter_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 4793#define ISpStreamFormatConverter_Revert(This) (This)->lpVtbl->Revert(This)
 4794#define ISpStreamFormatConverter_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 4795#define ISpStreamFormatConverter_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 4796#define ISpStreamFormatConverter_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 4797#define ISpStreamFormatConverter_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 4798/*** ISpStreamFormat methods ***/
 4799#define ISpStreamFormatConverter_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 4800/*** ISpStreamFormatConverter methods ***/
 4801#define ISpStreamFormatConverter_SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream) (This)->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream)
 4802#define ISpStreamFormatConverter_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
 4803#define ISpStreamFormatConverter_SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream) (This)->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream)
 4804#define ISpStreamFormatConverter_ResetSeekPosition(This) (This)->lpVtbl->ResetSeekPosition(This)
 4805#define ISpStreamFormatConverter_ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream) (This)->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream)
 4806#define ISpStreamFormatConverter_ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream) (This)->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream)
 4807#else
 4808/*** IUnknown methods ***/
 4809static inline HRESULT ISpStreamFormatConverter_QueryInterface(ISpStreamFormatConverter* This,REFIID riid,void **ppvObject) {
 4810    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4811}
 4812static inline ULONG ISpStreamFormatConverter_AddRef(ISpStreamFormatConverter* This) {
 4813    return This->lpVtbl->AddRef(This);
 4814}
 4815static inline ULONG ISpStreamFormatConverter_Release(ISpStreamFormatConverter* This) {
 4816    return This->lpVtbl->Release(This);
 4817}
 4818/*** ISequentialStream methods ***/
 4819static inline HRESULT ISpStreamFormatConverter_Read(ISpStreamFormatConverter* This,void *pv,ULONG cb,ULONG *pcbRead) {
 4820    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 4821}
 4822static inline HRESULT ISpStreamFormatConverter_Write(ISpStreamFormatConverter* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 4823    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 4824}
 4825/*** IStream methods ***/
 4826static inline HRESULT ISpStreamFormatConverter_Seek(ISpStreamFormatConverter* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 4827    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 4828}
 4829static inline HRESULT ISpStreamFormatConverter_SetSize(ISpStreamFormatConverter* This,ULARGE_INTEGER libNewSize) {
 4830    return This->lpVtbl->SetSize(This,libNewSize);
 4831}
 4832static inline HRESULT ISpStreamFormatConverter_CopyTo(ISpStreamFormatConverter* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 4833    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 4834}
 4835static inline HRESULT ISpStreamFormatConverter_Commit(ISpStreamFormatConverter* This,DWORD grfCommitFlags) {
 4836    return This->lpVtbl->Commit(This,grfCommitFlags);
 4837}
 4838static inline HRESULT ISpStreamFormatConverter_Revert(ISpStreamFormatConverter* This) {
 4839    return This->lpVtbl->Revert(This);
 4840}
 4841static inline HRESULT ISpStreamFormatConverter_LockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4842    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 4843}
 4844static inline HRESULT ISpStreamFormatConverter_UnlockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4845    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 4846}
 4847static inline HRESULT ISpStreamFormatConverter_Stat(ISpStreamFormatConverter* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 4848    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 4849}
 4850static inline HRESULT ISpStreamFormatConverter_Clone(ISpStreamFormatConverter* This,IStream **ppstm) {
 4851    return This->lpVtbl->Clone(This,ppstm);
 4852}
 4853/*** ISpStreamFormat methods ***/
 4854static inline HRESULT ISpStreamFormatConverter_GetFormat(ISpStreamFormatConverter* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 4855    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 4856}
 4857/*** ISpStreamFormatConverter methods ***/
 4858static inline HRESULT ISpStreamFormatConverter_SetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat *pStream,WINBOOL fSetFormatToBaseStreamFormat,WINBOOL fWriteToBaseStream) {
 4859    return This->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream);
 4860}
 4861static inline HRESULT ISpStreamFormatConverter_GetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat **ppStream) {
 4862    return This->lpVtbl->GetBaseStream(This,ppStream);
 4863}
 4864static inline HRESULT ISpStreamFormatConverter_SetFormat(ISpStreamFormatConverter* This,REFGUID rguidFormatIdOfConvertedStream,const WAVEFORMATEX *pWaveFormatExOfConvertedStream) {
 4865    return This->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream);
 4866}
 4867static inline HRESULT ISpStreamFormatConverter_ResetSeekPosition(ISpStreamFormatConverter* This) {
 4868    return This->lpVtbl->ResetSeekPosition(This);
 4869}
 4870static inline HRESULT ISpStreamFormatConverter_ScaleConvertedToBaseOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetConvertedStream,ULONGLONG *pullOffsetBaseStream) {
 4871    return This->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream);
 4872}
 4873static inline HRESULT ISpStreamFormatConverter_ScaleBaseToConvertedOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetBaseStream,ULONGLONG *pullOffsetConvertedStream) {
 4874    return This->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream);
 4875}
 4876#endif
 4877#endif
 4878
 4879#endif
 4880
 4881
 4882#endif  /* __ISpStreamFormatConverter_INTERFACE_DEFINED__ */
 4883
 4884typedef struct SPAUDIOSTATUS {
 4885    LONG cbFreeBuffSpace;
 4886    ULONG cbNonBlockingIO;
 4887    SPAUDIOSTATE State;
 4888    ULONGLONG CurSeekPos;
 4889    ULONGLONG CurDevicePos;
 4890    DWORD dwAudioLevel;
 4891    DWORD dwReserved2;
 4892} SPAUDIOSTATUS;
 4893typedef struct SPAUDIOBUFFERINFO {
 4894    ULONG ulMsMinNotification;
 4895    ULONG ulMsBufferSize;
 4896    ULONG ulMsEventBias;
 4897} SPAUDIOBUFFERINFO;
 4898/*****************************************************************************
 4899 * ISpAudio interface
 4900 */
 4901#ifndef __ISpAudio_INTERFACE_DEFINED__
 4902#define __ISpAudio_INTERFACE_DEFINED__
 4903
 4904DEFINE_GUID(IID_ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52);
 4905#if defined(__cplusplus) && !defined(CINTERFACE)
 4906MIDL_INTERFACE("c05c768f-fae8-4ec2-8e07-338321c12452")
 4907ISpAudio : public ISpStreamFormat
 4908{
 4909    virtual HRESULT STDMETHODCALLTYPE SetState(
 4910        SPAUDIOSTATE NewState,
 4911        ULONGLONG ullReserved) = 0;
 4912
 4913    virtual HRESULT STDMETHODCALLTYPE SetFormat(
 4914        REFGUID rguidFmtId,
 4915        const WAVEFORMATEX *pWaveFormatEx) = 0;
 4916
 4917    virtual HRESULT STDMETHODCALLTYPE GetStatus(
 4918        SPAUDIOSTATUS *pStatus) = 0;
 4919
 4920    virtual HRESULT STDMETHODCALLTYPE SetBufferInfo(
 4921        const SPAUDIOBUFFERINFO *pBuffInfo) = 0;
 4922
 4923    virtual HRESULT STDMETHODCALLTYPE GetBufferInfo(
 4924        SPAUDIOBUFFERINFO *pBuffInfo) = 0;
 4925
 4926    virtual HRESULT STDMETHODCALLTYPE GetDefaultFormat(
 4927        GUID *pFormatId,
 4928        WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
 4929
 4930    virtual HANDLE STDMETHODCALLTYPE EventHandle(
 4931        ) = 0;
 4932
 4933    virtual HRESULT STDMETHODCALLTYPE GetVolumeLevel(
 4934        ULONG *pLevel) = 0;
 4935
 4936    virtual HRESULT STDMETHODCALLTYPE SetVolumeLevel(
 4937        ULONG Level) = 0;
 4938
 4939    virtual HRESULT STDMETHODCALLTYPE GetBufferNotifySize(
 4940        ULONG *pcbSize) = 0;
 4941
 4942    virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
 4943        ULONG cbSize) = 0;
 4944
 4945};
 4946#ifdef __CRT_UUID_DECL
 4947__CRT_UUID_DECL(ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52)
 4948#endif
 4949#else
 4950typedef struct ISpAudioVtbl {
 4951    BEGIN_INTERFACE
 4952
 4953    /*** IUnknown methods ***/
 4954    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4955        ISpAudio *This,
 4956        REFIID riid,
 4957        void **ppvObject);
 4958
 4959    ULONG (STDMETHODCALLTYPE *AddRef)(
 4960        ISpAudio *This);
 4961
 4962    ULONG (STDMETHODCALLTYPE *Release)(
 4963        ISpAudio *This);
 4964
 4965    /*** ISequentialStream methods ***/
 4966    HRESULT (STDMETHODCALLTYPE *Read)(
 4967        ISpAudio *This,
 4968        void *pv,
 4969        ULONG cb,
 4970        ULONG *pcbRead);
 4971
 4972    HRESULT (STDMETHODCALLTYPE *Write)(
 4973        ISpAudio *This,
 4974        const void *pv,
 4975        ULONG cb,
 4976        ULONG *pcbWritten);
 4977
 4978    /*** IStream methods ***/
 4979    HRESULT (STDMETHODCALLTYPE *Seek)(
 4980        ISpAudio *This,
 4981        LARGE_INTEGER dlibMove,
 4982        DWORD dwOrigin,
 4983        ULARGE_INTEGER *plibNewPosition);
 4984
 4985    HRESULT (STDMETHODCALLTYPE *SetSize)(
 4986        ISpAudio *This,
 4987        ULARGE_INTEGER libNewSize);
 4988
 4989    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 4990        ISpAudio *This,
 4991        IStream *pstm,
 4992        ULARGE_INTEGER cb,
 4993        ULARGE_INTEGER *pcbRead,
 4994        ULARGE_INTEGER *pcbWritten);
 4995
 4996    HRESULT (STDMETHODCALLTYPE *Commit)(
 4997        ISpAudio *This,
 4998        DWORD grfCommitFlags);
 4999
 5000    HRESULT (STDMETHODCALLTYPE *Revert)(
 5001        ISpAudio *This);
 5002
 5003    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 5004        ISpAudio *This,
 5005        ULARGE_INTEGER libOffset,
 5006        ULARGE_INTEGER cb,
 5007        DWORD dwLockType);
 5008
 5009    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 5010        ISpAudio *This,
 5011        ULARGE_INTEGER libOffset,
 5012        ULARGE_INTEGER cb,
 5013        DWORD dwLockType);
 5014
 5015    HRESULT (STDMETHODCALLTYPE *Stat)(
 5016        ISpAudio *This,
 5017        STATSTG *pstatstg,
 5018        DWORD grfStatFlag);
 5019
 5020    HRESULT (STDMETHODCALLTYPE *Clone)(
 5021        ISpAudio *This,
 5022        IStream **ppstm);
 5023
 5024    /*** ISpStreamFormat methods ***/
 5025    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 5026        ISpAudio *This,
 5027        GUID *pguidFormatId,
 5028        WAVEFORMATEX **ppCoMemWaveFormatEx);
 5029
 5030    /*** ISpAudio methods ***/
 5031    HRESULT (STDMETHODCALLTYPE *SetState)(
 5032        ISpAudio *This,
 5033        SPAUDIOSTATE NewState,
 5034        ULONGLONG ullReserved);
 5035
 5036    HRESULT (STDMETHODCALLTYPE *SetFormat)(
 5037        ISpAudio *This,
 5038        REFGUID rguidFmtId,
 5039        const WAVEFORMATEX *pWaveFormatEx);
 5040
 5041    HRESULT (STDMETHODCALLTYPE *GetStatus)(
 5042        ISpAudio *This,
 5043        SPAUDIOSTATUS *pStatus);
 5044
 5045    HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
 5046        ISpAudio *This,
 5047        const SPAUDIOBUFFERINFO *pBuffInfo);
 5048
 5049    HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
 5050        ISpAudio *This,
 5051        SPAUDIOBUFFERINFO *pBuffInfo);
 5052
 5053    HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
 5054        ISpAudio *This,
 5055        GUID *pFormatId,
 5056        WAVEFORMATEX **ppCoMemWaveFormatEx);
 5057
 5058    HANDLE (STDMETHODCALLTYPE *EventHandle)(
 5059        ISpAudio *This);
 5060
 5061    HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
 5062        ISpAudio *This,
 5063        ULONG *pLevel);
 5064
 5065    HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
 5066        ISpAudio *This,
 5067        ULONG Level);
 5068
 5069    HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
 5070        ISpAudio *This,
 5071        ULONG *pcbSize);
 5072
 5073    HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
 5074        ISpAudio *This,
 5075        ULONG cbSize);
 5076
 5077    END_INTERFACE
 5078} ISpAudioVtbl;
 5079
 5080interface ISpAudio {
 5081    CONST_VTBL ISpAudioVtbl* lpVtbl;
 5082};
 5083
 5084#ifdef COBJMACROS
 5085#ifndef WIDL_C_INLINE_WRAPPERS
 5086/*** IUnknown methods ***/
 5087#define ISpAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5088#define ISpAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
 5089#define ISpAudio_Release(This) (This)->lpVtbl->Release(This)
 5090/*** ISequentialStream methods ***/
 5091#define ISpAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 5092#define ISpAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 5093/*** IStream methods ***/
 5094#define ISpAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 5095#define ISpAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 5096#define ISpAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 5097#define ISpAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 5098#define ISpAudio_Revert(This) (This)->lpVtbl->Revert(This)
 5099#define ISpAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 5100#define ISpAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 5101#define ISpAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 5102#define ISpAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 5103/*** ISpStreamFormat methods ***/
 5104#define ISpAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 5105/*** ISpAudio methods ***/
 5106#define ISpAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
 5107#define ISpAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
 5108#define ISpAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
 5109#define ISpAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
 5110#define ISpAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
 5111#define ISpAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
 5112#define ISpAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
 5113#define ISpAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
 5114#define ISpAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
 5115#define ISpAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
 5116#define ISpAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
 5117#else
 5118/*** IUnknown methods ***/
 5119static inline HRESULT ISpAudio_QueryInterface(ISpAudio* This,REFIID riid,void **ppvObject) {
 5120    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5121}
 5122static inline ULONG ISpAudio_AddRef(ISpAudio* This) {
 5123    return This->lpVtbl->AddRef(This);
 5124}
 5125static inline ULONG ISpAudio_Release(ISpAudio* This) {
 5126    return This->lpVtbl->Release(This);
 5127}
 5128/*** ISequentialStream methods ***/
 5129static inline HRESULT ISpAudio_Read(ISpAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
 5130    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 5131}
 5132static inline HRESULT ISpAudio_Write(ISpAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 5133    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 5134}
 5135/*** IStream methods ***/
 5136static inline HRESULT ISpAudio_Seek(ISpAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 5137    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 5138}
 5139static inline HRESULT ISpAudio_SetSize(ISpAudio* This,ULARGE_INTEGER libNewSize) {
 5140    return This->lpVtbl->SetSize(This,libNewSize);
 5141}
 5142static inline HRESULT ISpAudio_CopyTo(ISpAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 5143    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 5144}
 5145static inline HRESULT ISpAudio_Commit(ISpAudio* This,DWORD grfCommitFlags) {
 5146    return This->lpVtbl->Commit(This,grfCommitFlags);
 5147}
 5148static inline HRESULT ISpAudio_Revert(ISpAudio* This) {
 5149    return This->lpVtbl->Revert(This);
 5150}
 5151static inline HRESULT ISpAudio_LockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 5152    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 5153}
 5154static inline HRESULT ISpAudio_UnlockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 5155    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 5156}
 5157static inline HRESULT ISpAudio_Stat(ISpAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 5158    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 5159}
 5160static inline HRESULT ISpAudio_Clone(ISpAudio* This,IStream **ppstm) {
 5161    return This->lpVtbl->Clone(This,ppstm);
 5162}
 5163/*** ISpStreamFormat methods ***/
 5164static inline HRESULT ISpAudio_GetFormat(ISpAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 5165    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 5166}
 5167/*** ISpAudio methods ***/
 5168static inline HRESULT ISpAudio_SetState(ISpAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
 5169    return This->lpVtbl->SetState(This,NewState,ullReserved);
 5170}
 5171static inline HRESULT ISpAudio_SetFormat(ISpAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
 5172    return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
 5173}
 5174static inline HRESULT ISpAudio_GetStatus(ISpAudio* This,SPAUDIOSTATUS *pStatus) {
 5175    return This->lpVtbl->GetStatus(This,pStatus);
 5176}
 5177static inline HRESULT ISpAudio_SetBufferInfo(ISpAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
 5178    return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
 5179}
 5180static inline HRESULT ISpAudio_GetBufferInfo(ISpAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
 5181    return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
 5182}
 5183static inline HRESULT ISpAudio_GetDefaultFormat(ISpAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 5184    return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
 5185}
 5186static inline HANDLE ISpAudio_EventHandle(ISpAudio* This) {
 5187    return This->lpVtbl->EventHandle(This);
 5188}
 5189static inline HRESULT ISpAudio_GetVolumeLevel(ISpAudio* This,ULONG *pLevel) {
 5190    return This->lpVtbl->GetVolumeLevel(This,pLevel);
 5191}
 5192static inline HRESULT ISpAudio_SetVolumeLevel(ISpAudio* This,ULONG Level) {
 5193    return This->lpVtbl->SetVolumeLevel(This,Level);
 5194}
 5195static inline HRESULT ISpAudio_GetBufferNotifySize(ISpAudio* This,ULONG *pcbSize) {
 5196    return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
 5197}
 5198static inline HRESULT ISpAudio_SetBufferNotifySize(ISpAudio* This,ULONG cbSize) {
 5199    return This->lpVtbl->SetBufferNotifySize(This,cbSize);
 5200}
 5201#endif
 5202#endif
 5203
 5204#endif
 5205
 5206
 5207#endif  /* __ISpAudio_INTERFACE_DEFINED__ */
 5208
 5209/*****************************************************************************
 5210 * ISpMMSysAudio interface
 5211 */
 5212#ifndef __ISpMMSysAudio_INTERFACE_DEFINED__
 5213#define __ISpMMSysAudio_INTERFACE_DEFINED__
 5214
 5215DEFINE_GUID(IID_ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab);
 5216#if defined(__cplusplus) && !defined(CINTERFACE)
 5217MIDL_INTERFACE("15806f6e-1d70-4b48-98e6-3b1a007509ab")
 5218ISpMMSysAudio : public ISpAudio
 5219{
 5220    virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
 5221        UINT *puDeviceId) = 0;
 5222
 5223    virtual HRESULT STDMETHODCALLTYPE SetDeviceId(
 5224        UINT uDeviceId) = 0;
 5225
 5226    virtual HRESULT STDMETHODCALLTYPE GetMMHandle(
 5227        void **pHandle) = 0;
 5228
 5229    virtual HRESULT STDMETHODCALLTYPE GetLineId(
 5230        UINT *puLineId) = 0;
 5231
 5232    virtual HRESULT STDMETHODCALLTYPE SetLineId(
 5233        UINT uLineId) = 0;
 5234
 5235};
 5236#ifdef __CRT_UUID_DECL
 5237__CRT_UUID_DECL(ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab)
 5238#endif
 5239#else
 5240typedef struct ISpMMSysAudioVtbl {
 5241    BEGIN_INTERFACE
 5242
 5243    /*** IUnknown methods ***/
 5244    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5245        ISpMMSysAudio *This,
 5246        REFIID riid,
 5247        void **ppvObject);
 5248
 5249    ULONG (STDMETHODCALLTYPE *AddRef)(
 5250        ISpMMSysAudio *This);
 5251
 5252    ULONG (STDMETHODCALLTYPE *Release)(
 5253        ISpMMSysAudio *This);
 5254
 5255    /*** ISequentialStream methods ***/
 5256    HRESULT (STDMETHODCALLTYPE *Read)(
 5257        ISpMMSysAudio *This,
 5258        void *pv,
 5259        ULONG cb,
 5260        ULONG *pcbRead);
 5261
 5262    HRESULT (STDMETHODCALLTYPE *Write)(
 5263        ISpMMSysAudio *This,
 5264        const void *pv,
 5265        ULONG cb,
 5266        ULONG *pcbWritten);
 5267
 5268    /*** IStream methods ***/
 5269    HRESULT (STDMETHODCALLTYPE *Seek)(
 5270        ISpMMSysAudio *This,
 5271        LARGE_INTEGER dlibMove,
 5272        DWORD dwOrigin,
 5273        ULARGE_INTEGER *plibNewPosition);
 5274
 5275    HRESULT (STDMETHODCALLTYPE *SetSize)(
 5276        ISpMMSysAudio *This,
 5277        ULARGE_INTEGER libNewSize);
 5278
 5279    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 5280        ISpMMSysAudio *This,
 5281        IStream *pstm,
 5282        ULARGE_INTEGER cb,
 5283        ULARGE_INTEGER *pcbRead,
 5284        ULARGE_INTEGER *pcbWritten);
 5285
 5286    HRESULT (STDMETHODCALLTYPE *Commit)(
 5287        ISpMMSysAudio *This,
 5288        DWORD grfCommitFlags);
 5289
 5290    HRESULT (STDMETHODCALLTYPE *Revert)(
 5291        ISpMMSysAudio *This);
 5292
 5293    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 5294        ISpMMSysAudio *This,
 5295        ULARGE_INTEGER libOffset,
 5296        ULARGE_INTEGER cb,
 5297        DWORD dwLockType);
 5298
 5299    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 5300        ISpMMSysAudio *This,
 5301        ULARGE_INTEGER libOffset,
 5302        ULARGE_INTEGER cb,
 5303        DWORD dwLockType);
 5304
 5305    HRESULT (STDMETHODCALLTYPE *Stat)(
 5306        ISpMMSysAudio *This,
 5307        STATSTG *pstatstg,
 5308        DWORD grfStatFlag);
 5309
 5310    HRESULT (STDMETHODCALLTYPE *Clone)(
 5311        ISpMMSysAudio *This,
 5312        IStream **ppstm);
 5313
 5314    /*** ISpStreamFormat methods ***/
 5315    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 5316        ISpMMSysAudio *This,
 5317        GUID *pguidFormatId,
 5318        WAVEFORMATEX **ppCoMemWaveFormatEx);
 5319
 5320    /*** ISpAudio methods ***/
 5321    HRESULT (STDMETHODCALLTYPE *SetState)(
 5322        ISpMMSysAudio *This,
 5323        SPAUDIOSTATE NewState,
 5324        ULONGLONG ullReserved);
 5325
 5326    HRESULT (STDMETHODCALLTYPE *SetFormat)(
 5327        ISpMMSysAudio *This,
 5328        REFGUID rguidFmtId,
 5329        const WAVEFORMATEX *pWaveFormatEx);
 5330
 5331    HRESULT (STDMETHODCALLTYPE *GetStatus)(
 5332        ISpMMSysAudio *This,
 5333        SPAUDIOSTATUS *pStatus);
 5334
 5335    HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
 5336        ISpMMSysAudio *This,
 5337        const SPAUDIOBUFFERINFO *pBuffInfo);
 5338
 5339    HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
 5340        ISpMMSysAudio *This,
 5341        SPAUDIOBUFFERINFO *pBuffInfo);
 5342
 5343    HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
 5344        ISpMMSysAudio *This,
 5345        GUID *pFormatId,
 5346        WAVEFORMATEX **ppCoMemWaveFormatEx);
 5347
 5348    HANDLE (STDMETHODCALLTYPE *EventHandle)(
 5349        ISpMMSysAudio *This);
 5350
 5351    HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
 5352        ISpMMSysAudio *This,
 5353        ULONG *pLevel);
 5354
 5355    HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
 5356        ISpMMSysAudio *This,
 5357        ULONG Level);
 5358
 5359    HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
 5360        ISpMMSysAudio *This,
 5361        ULONG *pcbSize);
 5362
 5363    HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
 5364        ISpMMSysAudio *This,
 5365        ULONG cbSize);
 5366
 5367    /*** ISpMMSysAudio methods ***/
 5368    HRESULT (STDMETHODCALLTYPE *GetDeviceId)(
 5369        ISpMMSysAudio *This,
 5370        UINT *puDeviceId);
 5371
 5372    HRESULT (STDMETHODCALLTYPE *SetDeviceId)(
 5373        ISpMMSysAudio *This,
 5374        UINT uDeviceId);
 5375
 5376    HRESULT (STDMETHODCALLTYPE *GetMMHandle)(
 5377        ISpMMSysAudio *This,
 5378        void **pHandle);
 5379
 5380    HRESULT (STDMETHODCALLTYPE *GetLineId)(
 5381        ISpMMSysAudio *This,
 5382        UINT *puLineId);
 5383
 5384    HRESULT (STDMETHODCALLTYPE *SetLineId)(
 5385        ISpMMSysAudio *This,
 5386        UINT uLineId);
 5387
 5388    END_INTERFACE
 5389} ISpMMSysAudioVtbl;
 5390
 5391interface ISpMMSysAudio {
 5392    CONST_VTBL ISpMMSysAudioVtbl* lpVtbl;
 5393};
 5394
 5395#ifdef COBJMACROS
 5396#ifndef WIDL_C_INLINE_WRAPPERS
 5397/*** IUnknown methods ***/
 5398#define ISpMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5399#define ISpMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
 5400#define ISpMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
 5401/*** ISequentialStream methods ***/
 5402#define ISpMMSysAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 5403#define ISpMMSysAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 5404/*** IStream methods ***/
 5405#define ISpMMSysAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 5406#define ISpMMSysAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 5407#define ISpMMSysAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 5408#define ISpMMSysAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 5409#define ISpMMSysAudio_Revert(This) (This)->lpVtbl->Revert(This)
 5410#define ISpMMSysAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 5411#define ISpMMSysAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 5412#define ISpMMSysAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 5413#define ISpMMSysAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 5414/*** ISpStreamFormat methods ***/
 5415#define ISpMMSysAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 5416/*** ISpAudio methods ***/
 5417#define ISpMMSysAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
 5418#define ISpMMSysAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
 5419#define ISpMMSysAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
 5420#define ISpMMSysAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
 5421#define ISpMMSysAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
 5422#define ISpMMSysAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
 5423#define ISpMMSysAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
 5424#define ISpMMSysAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
 5425#define ISpMMSysAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
 5426#define ISpMMSysAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
 5427#define ISpMMSysAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
 5428/*** ISpMMSysAudio methods ***/
 5429#define ISpMMSysAudio_GetDeviceId(This,puDeviceId) (This)->lpVtbl->GetDeviceId(This,puDeviceId)
 5430#define ISpMMSysAudio_SetDeviceId(This,uDeviceId) (This)->lpVtbl->SetDeviceId(This,uDeviceId)
 5431#define ISpMMSysAudio_GetMMHandle(This,pHandle) (This)->lpVtbl->GetMMHandle(This,pHandle)
 5432#define ISpMMSysAudio_GetLineId(This,puLineId) (This)->lpVtbl->GetLineId(This,puLineId)
 5433#define ISpMMSysAudio_SetLineId(This,uLineId) (This)->lpVtbl->SetLineId(This,uLineId)
 5434#else
 5435/*** IUnknown methods ***/
 5436static inline HRESULT ISpMMSysAudio_QueryInterface(ISpMMSysAudio* This,REFIID riid,void **ppvObject) {
 5437    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5438}
 5439static inline ULONG ISpMMSysAudio_AddRef(ISpMMSysAudio* This) {
 5440    return This->lpVtbl->AddRef(This);
 5441}
 5442static inline ULONG ISpMMSysAudio_Release(ISpMMSysAudio* This) {
 5443    return This->lpVtbl->Release(This);
 5444}
 5445/*** ISequentialStream methods ***/
 5446static inline HRESULT ISpMMSysAudio_Read(ISpMMSysAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
 5447    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 5448}
 5449static inline HRESULT ISpMMSysAudio_Write(ISpMMSysAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 5450    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 5451}
 5452/*** IStream methods ***/
 5453static inline HRESULT ISpMMSysAudio_Seek(ISpMMSysAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 5454    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 5455}
 5456static inline HRESULT ISpMMSysAudio_SetSize(ISpMMSysAudio* This,ULARGE_INTEGER libNewSize) {
 5457    return This->lpVtbl->SetSize(This,libNewSize);
 5458}
 5459static inline HRESULT ISpMMSysAudio_CopyTo(ISpMMSysAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 5460    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 5461}
 5462static inline HRESULT ISpMMSysAudio_Commit(ISpMMSysAudio* This,DWORD grfCommitFlags) {
 5463    return This->lpVtbl->Commit(This,grfCommitFlags);
 5464}
 5465static inline HRESULT ISpMMSysAudio_Revert(ISpMMSysAudio* This) {
 5466    return This->lpVtbl->Revert(This);
 5467}
 5468static inline HRESULT ISpMMSysAudio_LockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 5469    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 5470}
 5471static inline HRESULT ISpMMSysAudio_UnlockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 5472    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 5473}
 5474static inline HRESULT ISpMMSysAudio_Stat(ISpMMSysAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 5475    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 5476}
 5477static inline HRESULT ISpMMSysAudio_Clone(ISpMMSysAudio* This,IStream **ppstm) {
 5478    return This->lpVtbl->Clone(This,ppstm);
 5479}
 5480/*** ISpStreamFormat methods ***/
 5481static inline HRESULT ISpMMSysAudio_GetFormat(ISpMMSysAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 5482    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 5483}
 5484/*** ISpAudio methods ***/
 5485static inline HRESULT ISpMMSysAudio_SetState(ISpMMSysAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
 5486    return This->lpVtbl->SetState(This,NewState,ullReserved);
 5487}
 5488static inline HRESULT ISpMMSysAudio_SetFormat(ISpMMSysAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
 5489    return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
 5490}
 5491static inline HRESULT ISpMMSysAudio_GetStatus(ISpMMSysAudio* This,SPAUDIOSTATUS *pStatus) {
 5492    return This->lpVtbl->GetStatus(This,pStatus);
 5493}
 5494static inline HRESULT ISpMMSysAudio_SetBufferInfo(ISpMMSysAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
 5495    return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
 5496}
 5497static inline HRESULT ISpMMSysAudio_GetBufferInfo(ISpMMSysAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
 5498    return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
 5499}
 5500static inline HRESULT ISpMMSysAudio_GetDefaultFormat(ISpMMSysAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 5501    return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
 5502}
 5503static inline HANDLE ISpMMSysAudio_EventHandle(ISpMMSysAudio* This) {
 5504    return This->lpVtbl->EventHandle(This);
 5505}
 5506static inline HRESULT ISpMMSysAudio_GetVolumeLevel(ISpMMSysAudio* This,ULONG *pLevel) {
 5507    return This->lpVtbl->GetVolumeLevel(This,pLevel);
 5508}
 5509static inline HRESULT ISpMMSysAudio_SetVolumeLevel(ISpMMSysAudio* This,ULONG Level) {
 5510    return This->lpVtbl->SetVolumeLevel(This,Level);
 5511}
 5512static inline HRESULT ISpMMSysAudio_GetBufferNotifySize(ISpMMSysAudio* This,ULONG *pcbSize) {
 5513    return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
 5514}
 5515static inline HRESULT ISpMMSysAudio_SetBufferNotifySize(ISpMMSysAudio* This,ULONG cbSize) {
 5516    return This->lpVtbl->SetBufferNotifySize(This,cbSize);
 5517}
 5518/*** ISpMMSysAudio methods ***/
 5519static inline HRESULT ISpMMSysAudio_GetDeviceId(ISpMMSysAudio* This,UINT *puDeviceId) {
 5520    return This->lpVtbl->GetDeviceId(This,puDeviceId);
 5521}
 5522static inline HRESULT ISpMMSysAudio_SetDeviceId(ISpMMSysAudio* This,UINT uDeviceId) {
 5523    return This->lpVtbl->SetDeviceId(This,uDeviceId);
 5524}
 5525static inline HRESULT ISpMMSysAudio_GetMMHandle(ISpMMSysAudio* This,void **pHandle) {
 5526    return This->lpVtbl->GetMMHandle(This,pHandle);
 5527}
 5528static inline HRESULT ISpMMSysAudio_GetLineId(ISpMMSysAudio* This,UINT *puLineId) {
 5529    return This->lpVtbl->GetLineId(This,puLineId);
 5530}
 5531static inline HRESULT ISpMMSysAudio_SetLineId(ISpMMSysAudio* This,UINT uLineId) {
 5532    return This->lpVtbl->SetLineId(This,uLineId);
 5533}
 5534#endif
 5535#endif
 5536
 5537#endif
 5538
 5539
 5540#endif  /* __ISpMMSysAudio_INTERFACE_DEFINED__ */
 5541
 5542/*****************************************************************************
 5543 * ISpTranscript interface
 5544 */
 5545#ifndef __ISpTranscript_INTERFACE_DEFINED__
 5546#define __ISpTranscript_INTERFACE_DEFINED__
 5547
 5548DEFINE_GUID(IID_ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
 5549#if defined(__cplusplus) && !defined(CINTERFACE)
 5550MIDL_INTERFACE("10f63bce-201a-11d3-ac70-00c04f8ee6c0")
 5551ISpTranscript : public IUnknown
 5552{
 5553    virtual HRESULT STDMETHODCALLTYPE GetTranscript(
 5554        LPWSTR *ppszTranscript) = 0;
 5555
 5556    virtual HRESULT STDMETHODCALLTYPE AppendTranscript(
 5557        LPCWSTR pszTranscript) = 0;
 5558
 5559};
 5560#ifdef __CRT_UUID_DECL
 5561__CRT_UUID_DECL(ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
 5562#endif
 5563#else
 5564typedef struct ISpTranscriptVtbl {
 5565    BEGIN_INTERFACE
 5566
 5567    /*** IUnknown methods ***/
 5568    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5569        ISpTranscript *This,
 5570        REFIID riid,
 5571        void **ppvObject);
 5572
 5573    ULONG (STDMETHODCALLTYPE *AddRef)(
 5574        ISpTranscript *This);
 5575
 5576    ULONG (STDMETHODCALLTYPE *Release)(
 5577        ISpTranscript *This);
 5578
 5579    /*** ISpTranscript methods ***/
 5580    HRESULT (STDMETHODCALLTYPE *GetTranscript)(
 5581        ISpTranscript *This,
 5582        LPWSTR *ppszTranscript);
 5583
 5584    HRESULT (STDMETHODCALLTYPE *AppendTranscript)(
 5585        ISpTranscript *This,
 5586        LPCWSTR pszTranscript);
 5587
 5588    END_INTERFACE
 5589} ISpTranscriptVtbl;
 5590
 5591interface ISpTranscript {
 5592    CONST_VTBL ISpTranscriptVtbl* lpVtbl;
 5593};
 5594
 5595#ifdef COBJMACROS
 5596#ifndef WIDL_C_INLINE_WRAPPERS
 5597/*** IUnknown methods ***/
 5598#define ISpTranscript_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5599#define ISpTranscript_AddRef(This) (This)->lpVtbl->AddRef(This)
 5600#define ISpTranscript_Release(This) (This)->lpVtbl->Release(This)
 5601/*** ISpTranscript methods ***/
 5602#define ISpTranscript_GetTranscript(This,ppszTranscript) (This)->lpVtbl->GetTranscript(This,ppszTranscript)
 5603#define ISpTranscript_AppendTranscript(This,pszTranscript) (This)->lpVtbl->AppendTranscript(This,pszTranscript)
 5604#else
 5605/*** IUnknown methods ***/
 5606static inline HRESULT ISpTranscript_QueryInterface(ISpTranscript* This,REFIID riid,void **ppvObject) {
 5607    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5608}
 5609static inline ULONG ISpTranscript_AddRef(ISpTranscript* This) {
 5610    return This->lpVtbl->AddRef(This);
 5611}
 5612static inline ULONG ISpTranscript_Release(ISpTranscript* This) {
 5613    return This->lpVtbl->Release(This);
 5614}
 5615/*** ISpTranscript methods ***/
 5616static inline HRESULT ISpTranscript_GetTranscript(ISpTranscript* This,LPWSTR *ppszTranscript) {
 5617    return This->lpVtbl->GetTranscript(This,ppszTranscript);
 5618}
 5619static inline HRESULT ISpTranscript_AppendTranscript(ISpTranscript* This,LPCWSTR pszTranscript) {
 5620    return This->lpVtbl->AppendTranscript(This,pszTranscript);
 5621}
 5622#endif
 5623#endif
 5624
 5625#endif
 5626
 5627
 5628#endif  /* __ISpTranscript_INTERFACE_DEFINED__ */
 5629
 5630typedef WCHAR SPPHONEID;
 5631typedef LPWSTR PSPPHONEID;
 5632typedef LPCWSTR PCSPPHONEID;
 5633typedef struct SPPHRASEELEMENT {
 5634    ULONG ulAudioTimeOffset;
 5635    ULONG ulAudioSizeTime;
 5636    ULONG ulAudioStreamOffset;
 5637    ULONG ulAudioSizeBytes;
 5638    ULONG ulRetainedStreamOffset;
 5639    ULONG ulRetainedSizeBytes;
 5640    LPCWSTR pszDisplayText;
 5641    LPCWSTR pszLexicalForm;
 5642    const SPPHONEID *pszPronunciation;
 5643    BYTE bDisplayAttributes;
 5644    signed char RequiredConfidence;
 5645    signed char ActualConfidence;
 5646    BYTE Reserved;
 5647    float SREngineConfidence;
 5648} SPPHRASEELEMENT;
 5649typedef struct SPPHRASERULE SPPHRASERULE;
 5650typedef struct SPPHRASEPROPERTY SPPHRASEPROPERTY;
 5651struct SPPHRASERULE {
 5652    LPCWSTR pszName;
 5653    ULONG ulId;
 5654    ULONG ulFirstElement;
 5655    ULONG ulCountOfElements;
 5656    const SPPHRASERULE *pNextSibling;
 5657    const SPPHRASERULE *pFirstChild;
 5658    float SREngineConfidence;
 5659    signed char Confidence;
 5660};
 5661struct SPPHRASEPROPERTY {
 5662    LPCWSTR pszName;
 5663    __C89_NAMELESS union {
 5664        ULONG ulId;
 5665        __C89_NAMELESS struct {
 5666            byte bType;
 5667            byte bReserved;
 5668            unsigned short usArrayIndex;
 5669        } __C89_NAMELESSSTRUCTNAME;
 5670    } __C89_NAMELESSUNIONNAME;
 5671    LPCWSTR pszValue;
 5672    VARIANT vValue;
 5673    ULONG ulFirstElement;
 5674    ULONG ulCountOfElements;
 5675    const SPPHRASEPROPERTY *pNextSibling;
 5676    const SPPHRASEPROPERTY *pFirstChild;
 5677    float SREngineConfidence;
 5678    signed char Confidence;
 5679};
 5680typedef struct SPPHRASEREPLACEMENT {
 5681    BYTE bDisplayAttributes;
 5682    LPCWSTR pszReplacementText;
 5683    ULONG ulFirstElement;
 5684    ULONG ulCountOfElements;
 5685} SPPHRASEREPLACEMENT;
 5686typedef struct SPSEMANTICERRORINFO {
 5687    ULONG ulLineNumber;
 5688    LPWSTR pszScriptLine;
 5689    LPWSTR pszSource;
 5690    LPWSTR pszDescription;
 5691    HRESULT hrResultCode;
 5692} SPSEMANTICERRORINFO;
 5693typedef struct SPPHRASE_50 {
 5694    ULONG cbSize;
 5695    WORD LangID;
 5696    WORD wHomophoneGroupId;
 5697    ULONGLONG ullGrammarID;
 5698    ULONGLONG ftStartTime;
 5699    ULONGLONG ullAudioStreamPosition;
 5700    ULONG ulAudioSizeBytes;
 5701    ULONG ulRetainedSizeBytes;
 5702    ULONG ulAudioSizeTime;
 5703    SPPHRASERULE Rule;
 5704    const SPPHRASEPROPERTY *pProperties;
 5705    const SPPHRASEELEMENT *pElements;
 5706    ULONG cReplacements;
 5707    const SPPHRASEREPLACEMENT *pReplacements;
 5708    GUID SREngineID;
 5709    ULONG ulSREnginePrivateDataSize;
 5710    const BYTE *pSREnginePrivateData;
 5711} SPPHRASE_50;
 5712#define SP_SPPHRASESIZE_500 sizeof (SPPHRASE_50)
 5713#ifdef __cplusplus
 5714typedef struct SPPHRASE : public SPPHRASE_50 {
 5715  LPWSTR pSML;
 5716  SPSEMANTICERRORINFO* pSemanticErrorInfo;
 5717} SPPHRASE;
 5718#else
 5719typedef struct SPPHRASE {
 5720    ULONG cbSize;
 5721    WORD LangID;
 5722    WORD wHomophoneGroupId;
 5723    ULONGLONG ullGrammarID;
 5724    ULONGLONG ftStartTime;
 5725    ULONGLONG ullAudioStreamPosition;
 5726    ULONG ulAudioSizeBytes;
 5727    ULONG ulRetainedSizeBytes;
 5728    ULONG ulAudioSizeTime;
 5729    SPPHRASERULE Rule;
 5730    const SPPHRASEPROPERTY *pProperties;
 5731    const SPPHRASEELEMENT *pElements;
 5732    ULONG cReplacements;
 5733    const SPPHRASEREPLACEMENT *pReplacements;
 5734    GUID SREngineID;
 5735    ULONG ulSREnginePrivateDataSize;
 5736    const BYTE *pSREnginePrivateData;
 5737    LPWSTR pSML;
 5738    SPSEMANTICERRORINFO *pSemanticErrorInfo;
 5739} SPPHRASE;
 5740#endif
 5741typedef struct SPSERIALIZEDPHRASE {
 5742    ULONG ulSerializedSize;
 5743} SPSERIALIZEDPHRASE;
 5744typedef struct SPRULE {
 5745    LPCWSTR pszRuleName;
 5746    ULONG ulRuleId;
 5747    DWORD dwAttributes;
 5748} SPRULE;
 5749typedef struct SPBINARYGRAMMAR {
 5750    ULONG ulTotalSerializedSize;
 5751} SPBINARYGRAMMAR;
 5752#if 0
 5753typedef void *SPSTATEHANDLE;
 5754#else
 5755DECLARE_HANDLE(SPSTATEHANDLE);
 5756#endif
 5757typedef struct SPWORDPRONUNCIATION {
 5758    struct SPWORDPRONUNCIATION *pNextWordPronunciation;
 5759    SPLEXICONTYPE eLexiconType;
 5760    WORD LangID;
 5761    WORD wPronunciationFlags;
 5762    SPPARTOFSPEECH ePartOfSpeech;
 5763    SPPHONEID szPronunciation[1];
 5764} SPWORDPRONUNCIATION;
 5765typedef struct SPWORDPRONUNCIATIONLIST {
 5766    ULONG ulSize;
 5767    BYTE *pvBuffer;
 5768    SPWORDPRONUNCIATION *pFirstWordPronunciation;
 5769} SPWORDPRONUNCIATIONLIST;
 5770typedef struct SPWORD {
 5771    struct SPWORD *pNextWord;
 5772    WORD LangID;
 5773    WORD wReserved;
 5774    SPWORDTYPE eWordType;
 5775    LPWSTR pszWord;
 5776    SPWORDPRONUNCIATION *pFirstWordPronunciation;
 5777} SPWORD;
 5778typedef struct SPWORDLIST {
 5779    ULONG ulSize;
 5780    BYTE *pvBuffer;
 5781    SPWORD *pFirstWord;
 5782} SPWORDLIST;
 5783/*****************************************************************************
 5784 * ISpLexicon interface
 5785 */
 5786#ifndef __ISpLexicon_INTERFACE_DEFINED__
 5787#define __ISpLexicon_INTERFACE_DEFINED__
 5788
 5789DEFINE_GUID(IID_ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58);
 5790#if defined(__cplusplus) && !defined(CINTERFACE)
 5791MIDL_INTERFACE("da41a7c2-5383-4db2-916b-6c1719e3db58")
 5792ISpLexicon : public IUnknown
 5793{
 5794    virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
 5795        LPCWSTR pszWord,
 5796        WORD LangID,
 5797        DWORD dwFlags,
 5798        SPWORDPRONUNCIATIONLIST *pWordPronunciationList) = 0;
 5799
 5800    virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
 5801        LPCWSTR pszWord,
 5802        WORD LangID,
 5803        SPPARTOFSPEECH ePartOfSpeech,
 5804        PCSPPHONEID pszPronunciation) = 0;
 5805
 5806    virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
 5807        LPCWSTR pszWord,
 5808        WORD LangID,
 5809        SPPARTOFSPEECH ePartOfSpeech,
 5810        PCSPPHONEID pszPronunciation) = 0;
 5811
 5812    virtual HRESULT STDMETHODCALLTYPE GetGeneration(
 5813        DWORD *pdwGeneration) = 0;
 5814
 5815    virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
 5816        DWORD dwFlags,
 5817        DWORD *pdwGeneration,
 5818        SPWORDLIST *pWordList) = 0;
 5819
 5820    virtual HRESULT STDMETHODCALLTYPE GetWords(
 5821        DWORD dwFlags,
 5822        DWORD *pdwGeneration,
 5823        DWORD *pdwCookie,
 5824        SPWORDLIST *pWordList) = 0;
 5825
 5826};
 5827#ifdef __CRT_UUID_DECL
 5828__CRT_UUID_DECL(ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58)
 5829#endif
 5830#else
 5831typedef struct ISpLexiconVtbl {
 5832    BEGIN_INTERFACE
 5833
 5834    /*** IUnknown methods ***/
 5835    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5836        ISpLexicon *This,
 5837        REFIID riid,
 5838        void **ppvObject);
 5839
 5840    ULONG (STDMETHODCALLTYPE *AddRef)(
 5841        ISpLexicon *This);
 5842
 5843    ULONG (STDMETHODCALLTYPE *Release)(
 5844        ISpLexicon *This);
 5845
 5846    /*** ISpLexicon methods ***/
 5847    HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
 5848        ISpLexicon *This,
 5849        LPCWSTR pszWord,
 5850        WORD LangID,
 5851        DWORD dwFlags,
 5852        SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
 5853
 5854    HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
 5855        ISpLexicon *This,
 5856        LPCWSTR pszWord,
 5857        WORD LangID,
 5858        SPPARTOFSPEECH ePartOfSpeech,
 5859        PCSPPHONEID pszPronunciation);
 5860
 5861    HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
 5862        ISpLexicon *This,
 5863        LPCWSTR pszWord,
 5864        WORD LangID,
 5865        SPPARTOFSPEECH ePartOfSpeech,
 5866        PCSPPHONEID pszPronunciation);
 5867
 5868    HRESULT (STDMETHODCALLTYPE *GetGeneration)(
 5869        ISpLexicon *This,
 5870        DWORD *pdwGeneration);
 5871
 5872    HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
 5873        ISpLexicon *This,
 5874        DWORD dwFlags,
 5875        DWORD *pdwGeneration,
 5876        SPWORDLIST *pWordList);
 5877
 5878    HRESULT (STDMETHODCALLTYPE *GetWords)(
 5879        ISpLexicon *This,
 5880        DWORD dwFlags,
 5881        DWORD *pdwGeneration,
 5882        DWORD *pdwCookie,
 5883        SPWORDLIST *pWordList);
 5884
 5885    END_INTERFACE
 5886} ISpLexiconVtbl;
 5887
 5888interface ISpLexicon {
 5889    CONST_VTBL ISpLexiconVtbl* lpVtbl;
 5890};
 5891
 5892#ifdef COBJMACROS
 5893#ifndef WIDL_C_INLINE_WRAPPERS
 5894/*** IUnknown methods ***/
 5895#define ISpLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5896#define ISpLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
 5897#define ISpLexicon_Release(This) (This)->lpVtbl->Release(This)
 5898/*** ISpLexicon methods ***/
 5899#define ISpLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
 5900#define ISpLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
 5901#define ISpLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
 5902#define ISpLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
 5903#define ISpLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
 5904#define ISpLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
 5905#else
 5906/*** IUnknown methods ***/
 5907static inline HRESULT ISpLexicon_QueryInterface(ISpLexicon* This,REFIID riid,void **ppvObject) {
 5908    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5909}
 5910static inline ULONG ISpLexicon_AddRef(ISpLexicon* This) {
 5911    return This->lpVtbl->AddRef(This);
 5912}
 5913static inline ULONG ISpLexicon_Release(ISpLexicon* This) {
 5914    return This->lpVtbl->Release(This);
 5915}
 5916/*** ISpLexicon methods ***/
 5917static inline HRESULT ISpLexicon_GetPronunciations(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
 5918    return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
 5919}
 5920static inline HRESULT ISpLexicon_AddPronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
 5921    return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
 5922}
 5923static inline HRESULT ISpLexicon_RemovePronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
 5924    return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
 5925}
 5926static inline HRESULT ISpLexicon_GetGeneration(ISpLexicon* This,DWORD *pdwGeneration) {
 5927    return This->lpVtbl->GetGeneration(This,pdwGeneration);
 5928}
 5929static inline HRESULT ISpLexicon_GetGenerationChange(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
 5930    return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
 5931}
 5932static inline HRESULT ISpLexicon_GetWords(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
 5933    return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
 5934}
 5935#endif
 5936#endif
 5937
 5938#endif
 5939
 5940
 5941#endif  /* __ISpLexicon_INTERFACE_DEFINED__ */
 5942
 5943/*****************************************************************************
 5944 * ISpContainerLexicon interface
 5945 */
 5946#ifndef __ISpContainerLexicon_INTERFACE_DEFINED__
 5947#define __ISpContainerLexicon_INTERFACE_DEFINED__
 5948
 5949DEFINE_GUID(IID_ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44);
 5950#if defined(__cplusplus) && !defined(CINTERFACE)
 5951MIDL_INTERFACE("8565572f-c094-41cc-b56e-10bd9c3ff044")
 5952ISpContainerLexicon : public ISpLexicon
 5953{
 5954    virtual HRESULT STDMETHODCALLTYPE AddLexicon(
 5955        ISpLexicon *pAddLexicon,
 5956        DWORD dwFlags) = 0;
 5957
 5958};
 5959#ifdef __CRT_UUID_DECL
 5960__CRT_UUID_DECL(ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44)
 5961#endif
 5962#else
 5963typedef struct ISpContainerLexiconVtbl {
 5964    BEGIN_INTERFACE
 5965
 5966    /*** IUnknown methods ***/
 5967    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5968        ISpContainerLexicon *This,
 5969        REFIID riid,
 5970        void **ppvObject);
 5971
 5972    ULONG (STDMETHODCALLTYPE *AddRef)(
 5973        ISpContainerLexicon *This);
 5974
 5975    ULONG (STDMETHODCALLTYPE *Release)(
 5976        ISpContainerLexicon *This);
 5977
 5978    /*** ISpLexicon methods ***/
 5979    HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
 5980        ISpContainerLexicon *This,
 5981        LPCWSTR pszWord,
 5982        WORD LangID,
 5983        DWORD dwFlags,
 5984        SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
 5985
 5986    HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
 5987        ISpContainerLexicon *This,
 5988        LPCWSTR pszWord,
 5989        WORD LangID,
 5990        SPPARTOFSPEECH ePartOfSpeech,
 5991        PCSPPHONEID pszPronunciation);
 5992
 5993    HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
 5994        ISpContainerLexicon *This,
 5995        LPCWSTR pszWord,
 5996        WORD LangID,
 5997        SPPARTOFSPEECH ePartOfSpeech,
 5998        PCSPPHONEID pszPronunciation);
 5999
 6000    HRESULT (STDMETHODCALLTYPE *GetGeneration)(
 6001        ISpContainerLexicon *This,
 6002        DWORD *pdwGeneration);
 6003
 6004    HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
 6005        ISpContainerLexicon *This,
 6006        DWORD dwFlags,
 6007        DWORD *pdwGeneration,
 6008        SPWORDLIST *pWordList);
 6009
 6010    HRESULT (STDMETHODCALLTYPE *GetWords)(
 6011        ISpContainerLexicon *This,
 6012        DWORD dwFlags,
 6013        DWORD *pdwGeneration,
 6014        DWORD *pdwCookie,
 6015        SPWORDLIST *pWordList);
 6016
 6017    /*** ISpContainerLexicon methods ***/
 6018    HRESULT (STDMETHODCALLTYPE *AddLexicon)(
 6019        ISpContainerLexicon *This,
 6020        ISpLexicon *pAddLexicon,
 6021        DWORD dwFlags);
 6022
 6023    END_INTERFACE
 6024} ISpContainerLexiconVtbl;
 6025
 6026interface ISpContainerLexicon {
 6027    CONST_VTBL ISpContainerLexiconVtbl* lpVtbl;
 6028};
 6029
 6030#ifdef COBJMACROS
 6031#ifndef WIDL_C_INLINE_WRAPPERS
 6032/*** IUnknown methods ***/
 6033#define ISpContainerLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6034#define ISpContainerLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
 6035#define ISpContainerLexicon_Release(This) (This)->lpVtbl->Release(This)
 6036/*** ISpLexicon methods ***/
 6037#define ISpContainerLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
 6038#define ISpContainerLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
 6039#define ISpContainerLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
 6040#define ISpContainerLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
 6041#define ISpContainerLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
 6042#define ISpContainerLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
 6043/*** ISpContainerLexicon methods ***/
 6044#define ISpContainerLexicon_AddLexicon(This,pAddLexicon,dwFlags) (This)->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags)
 6045#else
 6046/*** IUnknown methods ***/
 6047static inline HRESULT ISpContainerLexicon_QueryInterface(ISpContainerLexicon* This,REFIID riid,void **ppvObject) {
 6048    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6049}
 6050static inline ULONG ISpContainerLexicon_AddRef(ISpContainerLexicon* This) {
 6051    return This->lpVtbl->AddRef(This);
 6052}
 6053static inline ULONG ISpContainerLexicon_Release(ISpContainerLexicon* This) {
 6054    return This->lpVtbl->Release(This);
 6055}
 6056/*** ISpLexicon methods ***/
 6057static inline HRESULT ISpContainerLexicon_GetPronunciations(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
 6058    return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
 6059}
 6060static inline HRESULT ISpContainerLexicon_AddPronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
 6061    return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
 6062}
 6063static inline HRESULT ISpContainerLexicon_RemovePronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
 6064    return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
 6065}
 6066static inline HRESULT ISpContainerLexicon_GetGeneration(ISpContainerLexicon* This,DWORD *pdwGeneration) {
 6067    return This->lpVtbl->GetGeneration(This,pdwGeneration);
 6068}
 6069static inline HRESULT ISpContainerLexicon_GetGenerationChange(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
 6070    return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
 6071}
 6072static inline HRESULT ISpContainerLexicon_GetWords(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
 6073    return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
 6074}
 6075/*** ISpContainerLexicon methods ***/
 6076static inline HRESULT ISpContainerLexicon_AddLexicon(ISpContainerLexicon* This,ISpLexicon *pAddLexicon,DWORD dwFlags) {
 6077    return This->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags);
 6078}
 6079#endif
 6080#endif
 6081
 6082#endif
 6083
 6084
 6085#endif  /* __ISpContainerLexicon_INTERFACE_DEFINED__ */
 6086
 6087typedef struct SPSHORTCUTPAIR {
 6088    struct SPSHORTCUTPAIR *pNextSHORTCUTPAIR;
 6089    WORD LangID;
 6090    SPSHORTCUTTYPE shType;
 6091    LPWSTR pszDisplay;
 6092    LPWSTR pszSpoken;
 6093} SPSHORTCUTPAIR;
 6094typedef struct SPSHORTCUTPAIRLIST {
 6095    ULONG ulSize;
 6096    BYTE *pvBuffer;
 6097    SPSHORTCUTPAIR *pFirstShortcutPair;
 6098} SPSHORTCUTPAIRLIST;
 6099/*****************************************************************************
 6100 * ISpShortcut interface
 6101 */
 6102#ifndef __ISpShortcut_INTERFACE_DEFINED__
 6103#define __ISpShortcut_INTERFACE_DEFINED__
 6104
 6105DEFINE_GUID(IID_ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a);
 6106#if defined(__cplusplus) && !defined(CINTERFACE)
 6107MIDL_INTERFACE("3df681e2-ea56-11d9-8bde-f66bad1e3f3a")
 6108ISpShortcut : public IUnknown
 6109{
 6110    virtual HRESULT STDMETHODCALLTYPE AddShortcut(
 6111        LPCWSTR pszDisplay,
 6112        WORD LangID,
 6113        LPCWSTR pszSpoken,
 6114        SPSHORTCUTTYPE shType) = 0;
 6115
 6116    virtual HRESULT STDMETHODCALLTYPE RemoveShortcut(
 6117        LPCWSTR pszDisplay,
 6118        WORD LangID,
 6119        LPCWSTR pszSpoken,
 6120        SPSHORTCUTTYPE shType) = 0;
 6121
 6122    virtual HRESULT STDMETHODCALLTYPE GetShortcuts(
 6123        WORD LangID,
 6124        SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
 6125
 6126    virtual HRESULT STDMETHODCALLTYPE GetGeneration(
 6127        DWORD *pdwGeneration) = 0;
 6128
 6129    virtual HRESULT STDMETHODCALLTYPE GetWordsFromGenerationChange(
 6130        DWORD *pdwGeneration,
 6131        SPWORDLIST *pWordList) = 0;
 6132
 6133    virtual HRESULT STDMETHODCALLTYPE GetWords(
 6134        DWORD *pdwGeneration,
 6135        DWORD *pdwCookie,
 6136        SPWORDLIST *pWordList) = 0;
 6137
 6138    virtual HRESULT STDMETHODCALLTYPE GetShortcutsForGeneration(
 6139        DWORD *pdwGeneration,
 6140        DWORD *pdwCookie,
 6141        SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
 6142
 6143    virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
 6144        DWORD *pdwGeneration,
 6145        SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
 6146
 6147};
 6148#ifdef __CRT_UUID_DECL
 6149__CRT_UUID_DECL(ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a)
 6150#endif
 6151#else
 6152typedef struct ISpShortcutVtbl {
 6153    BEGIN_INTERFACE
 6154
 6155    /*** IUnknown methods ***/
 6156    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6157        ISpShortcut *This,
 6158        REFIID riid,
 6159        void **ppvObject);
 6160
 6161    ULONG (STDMETHODCALLTYPE *AddRef)(
 6162        ISpShortcut *This);
 6163
 6164    ULONG (STDMETHODCALLTYPE *Release)(
 6165        ISpShortcut *This);
 6166
 6167    /*** ISpShortcut methods ***/
 6168    HRESULT (STDMETHODCALLTYPE *AddShortcut)(
 6169        ISpShortcut *This,
 6170        LPCWSTR pszDisplay,
 6171        WORD LangID,
 6172        LPCWSTR pszSpoken,
 6173        SPSHORTCUTTYPE shType);
 6174
 6175    HRESULT (STDMETHODCALLTYPE *RemoveShortcut)(
 6176        ISpShortcut *This,
 6177        LPCWSTR pszDisplay,
 6178        WORD LangID,
 6179        LPCWSTR pszSpoken,
 6180        SPSHORTCUTTYPE shType);
 6181
 6182    HRESULT (STDMETHODCALLTYPE *GetShortcuts)(
 6183        ISpShortcut *This,
 6184        WORD LangID,
 6185        SPSHORTCUTPAIRLIST *pShortcutpairList);
 6186
 6187    HRESULT (STDMETHODCALLTYPE *GetGeneration)(
 6188        ISpShortcut *This,
 6189        DWORD *pdwGeneration);
 6190
 6191    HRESULT (STDMETHODCALLTYPE *GetWordsFromGenerationChange)(
 6192        ISpShortcut *This,
 6193        DWORD *pdwGeneration,
 6194        SPWORDLIST *pWordList);
 6195
 6196    HRESULT (STDMETHODCALLTYPE *GetWords)(
 6197        ISpShortcut *This,
 6198        DWORD *pdwGeneration,
 6199        DWORD *pdwCookie,
 6200        SPWORDLIST *pWordList);
 6201
 6202    HRESULT (STDMETHODCALLTYPE *GetShortcutsForGeneration)(
 6203        ISpShortcut *This,
 6204        DWORD *pdwGeneration,
 6205        DWORD *pdwCookie,
 6206        SPSHORTCUTPAIRLIST *pShortcutpairList);
 6207
 6208    HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
 6209        ISpShortcut *This,
 6210        DWORD *pdwGeneration,
 6211        SPSHORTCUTPAIRLIST *pShortcutpairList);
 6212
 6213    END_INTERFACE
 6214} ISpShortcutVtbl;
 6215
 6216interface ISpShortcut {
 6217    CONST_VTBL ISpShortcutVtbl* lpVtbl;
 6218};
 6219
 6220#ifdef COBJMACROS
 6221#ifndef WIDL_C_INLINE_WRAPPERS
 6222/*** IUnknown methods ***/
 6223#define ISpShortcut_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6224#define ISpShortcut_AddRef(This) (This)->lpVtbl->AddRef(This)
 6225#define ISpShortcut_Release(This) (This)->lpVtbl->Release(This)
 6226/*** ISpShortcut methods ***/
 6227#define ISpShortcut_AddShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType)
 6228#define ISpShortcut_RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType)
 6229#define ISpShortcut_GetShortcuts(This,LangID,pShortcutpairList) (This)->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList)
 6230#define ISpShortcut_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
 6231#define ISpShortcut_GetWordsFromGenerationChange(This,pdwGeneration,pWordList) (This)->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList)
 6232#define ISpShortcut_GetWords(This,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList)
 6233#define ISpShortcut_GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList) (This)->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList)
 6234#define ISpShortcut_GetGenerationChange(This,pdwGeneration,pShortcutpairList) (This)->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList)
 6235#else
 6236/*** IUnknown methods ***/
 6237static inline HRESULT ISpShortcut_QueryInterface(ISpShortcut* This,REFIID riid,void **ppvObject) {
 6238    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6239}
 6240static inline ULONG ISpShortcut_AddRef(ISpShortcut* This) {
 6241    return This->lpVtbl->AddRef(This);
 6242}
 6243static inline ULONG ISpShortcut_Release(ISpShortcut* This) {
 6244    return This->lpVtbl->Release(This);
 6245}
 6246/*** ISpShortcut methods ***/
 6247static inline HRESULT ISpShortcut_AddShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
 6248    return This->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType);
 6249}
 6250static inline HRESULT ISpShortcut_RemoveShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
 6251    return This->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType);
 6252}
 6253static inline HRESULT ISpShortcut_GetShortcuts(ISpShortcut* This,WORD LangID,SPSHORTCUTPAIRLIST *pShortcutpairList) {
 6254    return This->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList);
 6255}
 6256static inline HRESULT ISpShortcut_GetGeneration(ISpShortcut* This,DWORD *pdwGeneration) {
 6257    return This->lpVtbl->GetGeneration(This,pdwGeneration);
 6258}
 6259static inline HRESULT ISpShortcut_GetWordsFromGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
 6260    return This->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList);
 6261}
 6262static inline HRESULT ISpShortcut_GetWords(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
 6263    return This->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList);
 6264}
 6265static inline HRESULT ISpShortcut_GetShortcutsForGeneration(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPSHORTCUTPAIRLIST *pShortcutpairList) {
 6266    return This->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList);
 6267}
 6268static inline HRESULT ISpShortcut_GetGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPSHORTCUTPAIRLIST *pShortcutpairList) {
 6269    return This->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList);
 6270}
 6271#endif
 6272#endif
 6273
 6274#endif
 6275
 6276
 6277#endif  /* __ISpShortcut_INTERFACE_DEFINED__ */
 6278
 6279/*****************************************************************************
 6280 * ISpPhoneConverter interface
 6281 */
 6282#ifndef __ISpPhoneConverter_INTERFACE_DEFINED__
 6283#define __ISpPhoneConverter_INTERFACE_DEFINED__
 6284
 6285DEFINE_GUID(IID_ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55);
 6286#if defined(__cplusplus) && !defined(CINTERFACE)
 6287MIDL_INTERFACE("8445c581-0cac-4a38-abfe-9b2ce2826455")
 6288ISpPhoneConverter : public ISpObjectWithToken
 6289{
 6290    virtual HRESULT STDMETHODCALLTYPE PhoneToId(
 6291        LPCWSTR pszPhone,
 6292        SPPHONEID *pId) = 0;
 6293
 6294    virtual HRESULT STDMETHODCALLTYPE IdToPhone(
 6295        PCSPPHONEID pId,
 6296        WCHAR *pszPhone) = 0;
 6297
 6298};
 6299#ifdef __CRT_UUID_DECL
 6300__CRT_UUID_DECL(ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55)
 6301#endif
 6302#else
 6303typedef struct ISpPhoneConverterVtbl {
 6304    BEGIN_INTERFACE
 6305
 6306    /*** IUnknown methods ***/
 6307    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6308        ISpPhoneConverter *This,
 6309        REFIID riid,
 6310        void **ppvObject);
 6311
 6312    ULONG (STDMETHODCALLTYPE *AddRef)(
 6313        ISpPhoneConverter *This);
 6314
 6315    ULONG (STDMETHODCALLTYPE *Release)(
 6316        ISpPhoneConverter *This);
 6317
 6318    /*** ISpObjectWithToken methods ***/
 6319    HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
 6320        ISpPhoneConverter *This,
 6321        ISpObjectToken *pToken);
 6322
 6323    HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
 6324        ISpPhoneConverter *This,
 6325        ISpObjectToken **ppToken);
 6326
 6327    /*** ISpPhoneConverter methods ***/
 6328    HRESULT (STDMETHODCALLTYPE *PhoneToId)(
 6329        ISpPhoneConverter *This,
 6330        LPCWSTR pszPhone,
 6331        SPPHONEID *pId);
 6332
 6333    HRESULT (STDMETHODCALLTYPE *IdToPhone)(
 6334        ISpPhoneConverter *This,
 6335        PCSPPHONEID pId,
 6336        WCHAR *pszPhone);
 6337
 6338    END_INTERFACE
 6339} ISpPhoneConverterVtbl;
 6340
 6341interface ISpPhoneConverter {
 6342    CONST_VTBL ISpPhoneConverterVtbl* lpVtbl;
 6343};
 6344
 6345#ifdef COBJMACROS
 6346#ifndef WIDL_C_INLINE_WRAPPERS
 6347/*** IUnknown methods ***/
 6348#define ISpPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6349#define ISpPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
 6350#define ISpPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
 6351/*** ISpObjectWithToken methods ***/
 6352#define ISpPhoneConverter_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
 6353#define ISpPhoneConverter_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
 6354/*** ISpPhoneConverter methods ***/
 6355#define ISpPhoneConverter_PhoneToId(This,pszPhone,pId) (This)->lpVtbl->PhoneToId(This,pszPhone,pId)
 6356#define ISpPhoneConverter_IdToPhone(This,pId,pszPhone) (This)->lpVtbl->IdToPhone(This,pId,pszPhone)
 6357#else
 6358/*** IUnknown methods ***/
 6359static inline HRESULT ISpPhoneConverter_QueryInterface(ISpPhoneConverter* This,REFIID riid,void **ppvObject) {
 6360    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6361}
 6362static inline ULONG ISpPhoneConverter_AddRef(ISpPhoneConverter* This) {
 6363    return This->lpVtbl->AddRef(This);
 6364}
 6365static inline ULONG ISpPhoneConverter_Release(ISpPhoneConverter* This) {
 6366    return This->lpVtbl->Release(This);
 6367}
 6368/*** ISpObjectWithToken methods ***/
 6369static inline HRESULT ISpPhoneConverter_SetObjectToken(ISpPhoneConverter* This,ISpObjectToken *pToken) {
 6370    return This->lpVtbl->SetObjectToken(This,pToken);
 6371}
 6372static inline HRESULT ISpPhoneConverter_GetObjectToken(ISpPhoneConverter* This,ISpObjectToken **ppToken) {
 6373    return This->lpVtbl->GetObjectToken(This,ppToken);
 6374}
 6375/*** ISpPhoneConverter methods ***/
 6376static inline HRESULT ISpPhoneConverter_PhoneToId(ISpPhoneConverter* This,LPCWSTR pszPhone,SPPHONEID *pId) {
 6377    return This->lpVtbl->PhoneToId(This,pszPhone,pId);
 6378}
 6379static inline HRESULT ISpPhoneConverter_IdToPhone(ISpPhoneConverter* This,PCSPPHONEID pId,WCHAR *pszPhone) {
 6380    return This->lpVtbl->IdToPhone(This,pId,pszPhone);
 6381}
 6382#endif
 6383#endif
 6384
 6385#endif
 6386
 6387
 6388#endif  /* __ISpPhoneConverter_INTERFACE_DEFINED__ */
 6389
 6390/*****************************************************************************
 6391 * ISpPhoneticAlphabetConverter interface
 6392 */
 6393#ifndef __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
 6394#define __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
 6395
 6396DEFINE_GUID(IID_ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17);
 6397#if defined(__cplusplus) && !defined(CINTERFACE)
 6398MIDL_INTERFACE("133adcd4-19b4-4020-9fdc-842e78253b17")
 6399ISpPhoneticAlphabetConverter : public IUnknown
 6400{
 6401    virtual HRESULT STDMETHODCALLTYPE GetLangId(
 6402        WORD *pLangID) = 0;
 6403
 6404    virtual HRESULT STDMETHODCALLTYPE SetLangId(
 6405        WORD LangID) = 0;
 6406
 6407    virtual HRESULT STDMETHODCALLTYPE SAPI2UPS(
 6408        const SPPHONEID *pszSAPIId,
 6409        SPPHONEID *pszUPSId,
 6410        DWORD cMaxLength) = 0;
 6411
 6412    virtual HRESULT STDMETHODCALLTYPE UPS2SAPI(
 6413        const SPPHONEID *pszUPSId,
 6414        SPPHONEID *pszSAPIId,
 6415        DWORD cMaxLength) = 0;
 6416
 6417    virtual HRESULT STDMETHODCALLTYPE GetMaxConvertLength(
 6418        DWORD cSrcLength,
 6419        WINBOOL bSAPI2UPS,
 6420        DWORD *pcMaxDestLength) = 0;
 6421
 6422};
 6423#ifdef __CRT_UUID_DECL
 6424__CRT_UUID_DECL(ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17)
 6425#endif
 6426#else
 6427typedef struct ISpPhoneticAlphabetConverterVtbl {
 6428    BEGIN_INTERFACE
 6429
 6430    /*** IUnknown methods ***/
 6431    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6432        ISpPhoneticAlphabetConverter *This,
 6433        REFIID riid,
 6434        void **ppvObject);
 6435
 6436    ULONG (STDMETHODCALLTYPE *AddRef)(
 6437        ISpPhoneticAlphabetConverter *This);
 6438
 6439    ULONG (STDMETHODCALLTYPE *Release)(
 6440        ISpPhoneticAlphabetConverter *This);
 6441
 6442    /*** ISpPhoneticAlphabetConverter methods ***/
 6443    HRESULT (STDMETHODCALLTYPE *GetLangId)(
 6444        ISpPhoneticAlphabetConverter *This,
 6445        WORD *pLangID);
 6446
 6447    HRESULT (STDMETHODCALLTYPE *SetLangId)(
 6448        ISpPhoneticAlphabetConverter *This,
 6449        WORD LangID);
 6450
 6451    HRESULT (STDMETHODCALLTYPE *SAPI2UPS)(
 6452        ISpPhoneticAlphabetConverter *This,
 6453        const SPPHONEID *pszSAPIId,
 6454        SPPHONEID *pszUPSId,
 6455        DWORD cMaxLength);
 6456
 6457    HRESULT (STDMETHODCALLTYPE *UPS2SAPI)(
 6458        ISpPhoneticAlphabetConverter *This,
 6459        const SPPHONEID *pszUPSId,
 6460        SPPHONEID *pszSAPIId,
 6461        DWORD cMaxLength);
 6462
 6463    HRESULT (STDMETHODCALLTYPE *GetMaxConvertLength)(
 6464        ISpPhoneticAlphabetConverter *This,
 6465        DWORD cSrcLength,
 6466        WINBOOL bSAPI2UPS,
 6467        DWORD *pcMaxDestLength);
 6468
 6469    END_INTERFACE
 6470} ISpPhoneticAlphabetConverterVtbl;
 6471
 6472interface ISpPhoneticAlphabetConverter {
 6473    CONST_VTBL ISpPhoneticAlphabetConverterVtbl* lpVtbl;
 6474};
 6475
 6476#ifdef COBJMACROS
 6477#ifndef WIDL_C_INLINE_WRAPPERS
 6478/*** IUnknown methods ***/
 6479#define ISpPhoneticAlphabetConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6480#define ISpPhoneticAlphabetConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
 6481#define ISpPhoneticAlphabetConverter_Release(This) (This)->lpVtbl->Release(This)
 6482/*** ISpPhoneticAlphabetConverter methods ***/
 6483#define ISpPhoneticAlphabetConverter_GetLangId(This,pLangID) (This)->lpVtbl->GetLangId(This,pLangID)
 6484#define ISpPhoneticAlphabetConverter_SetLangId(This,LangID) (This)->lpVtbl->SetLangId(This,LangID)
 6485#define ISpPhoneticAlphabetConverter_SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength) (This)->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength)
 6486#define ISpPhoneticAlphabetConverter_UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength) (This)->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength)
 6487#define ISpPhoneticAlphabetConverter_GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength) (This)->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength)
 6488#else
 6489/*** IUnknown methods ***/
 6490static inline HRESULT ISpPhoneticAlphabetConverter_QueryInterface(ISpPhoneticAlphabetConverter* This,REFIID riid,void **ppvObject) {
 6491    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6492}
 6493static inline ULONG ISpPhoneticAlphabetConverter_AddRef(ISpPhoneticAlphabetConverter* This) {
 6494    return This->lpVtbl->AddRef(This);
 6495}
 6496static inline ULONG ISpPhoneticAlphabetConverter_Release(ISpPhoneticAlphabetConverter* This) {
 6497    return This->lpVtbl->Release(This);
 6498}
 6499/*** ISpPhoneticAlphabetConverter methods ***/
 6500static inline HRESULT ISpPhoneticAlphabetConverter_GetLangId(ISpPhoneticAlphabetConverter* This,WORD *pLangID) {
 6501    return This->lpVtbl->GetLangId(This,pLangID);
 6502}
 6503static inline HRESULT ISpPhoneticAlphabetConverter_SetLangId(ISpPhoneticAlphabetConverter* This,WORD LangID) {
 6504    return This->lpVtbl->SetLangId(This,LangID);
 6505}
 6506static inline HRESULT ISpPhoneticAlphabetConverter_SAPI2UPS(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszSAPIId,SPPHONEID *pszUPSId,DWORD cMaxLength) {
 6507    return This->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength);
 6508}
 6509static inline HRESULT ISpPhoneticAlphabetConverter_UPS2SAPI(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszUPSId,SPPHONEID *pszSAPIId,DWORD cMaxLength) {
 6510    return This->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength);
 6511}
 6512static inline HRESULT ISpPhoneticAlphabetConverter_GetMaxConvertLength(ISpPhoneticAlphabetConverter* This,DWORD cSrcLength,WINBOOL bSAPI2UPS,DWORD *pcMaxDestLength) {
 6513    return This->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength);
 6514}
 6515#endif
 6516#endif
 6517
 6518#endif
 6519
 6520
 6521#endif  /* __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__ */
 6522
 6523/*****************************************************************************
 6524 * ISpPhoneticAlphabetSelection interface
 6525 */
 6526#ifndef __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
 6527#define __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
 6528
 6529DEFINE_GUID(IID_ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90);
 6530#if defined(__cplusplus) && !defined(CINTERFACE)
 6531MIDL_INTERFACE("b2745efd-42ce-48ca-81f1-a96e02538a90")
 6532ISpPhoneticAlphabetSelection : public IUnknown
 6533{
 6534    virtual HRESULT STDMETHODCALLTYPE IsAlphabetUPS(
 6535        WINBOOL *pfIsUPS) = 0;
 6536
 6537    virtual HRESULT STDMETHODCALLTYPE SetAlphabetToUPS(
 6538        WINBOOL fForceUPS) = 0;
 6539
 6540};
 6541#ifdef __CRT_UUID_DECL
 6542__CRT_UUID_DECL(ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90)
 6543#endif
 6544#else
 6545typedef struct ISpPhoneticAlphabetSelectionVtbl {
 6546    BEGIN_INTERFACE
 6547
 6548    /*** IUnknown methods ***/
 6549    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6550        ISpPhoneticAlphabetSelection *This,
 6551        REFIID riid,
 6552        void **ppvObject);
 6553
 6554    ULONG (STDMETHODCALLTYPE *AddRef)(
 6555        ISpPhoneticAlphabetSelection *This);
 6556
 6557    ULONG (STDMETHODCALLTYPE *Release)(
 6558        ISpPhoneticAlphabetSelection *This);
 6559
 6560    /*** ISpPhoneticAlphabetSelection methods ***/
 6561    HRESULT (STDMETHODCALLTYPE *IsAlphabetUPS)(
 6562        ISpPhoneticAlphabetSelection *This,
 6563        WINBOOL *pfIsUPS);
 6564
 6565    HRESULT (STDMETHODCALLTYPE *SetAlphabetToUPS)(
 6566        ISpPhoneticAlphabetSelection *This,
 6567        WINBOOL fForceUPS);
 6568
 6569    END_INTERFACE
 6570} ISpPhoneticAlphabetSelectionVtbl;
 6571
 6572interface ISpPhoneticAlphabetSelection {
 6573    CONST_VTBL ISpPhoneticAlphabetSelectionVtbl* lpVtbl;
 6574};
 6575
 6576#ifdef COBJMACROS
 6577#ifndef WIDL_C_INLINE_WRAPPERS
 6578/*** IUnknown methods ***/
 6579#define ISpPhoneticAlphabetSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6580#define ISpPhoneticAlphabetSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
 6581#define ISpPhoneticAlphabetSelection_Release(This) (This)->lpVtbl->Release(This)
 6582/*** ISpPhoneticAlphabetSelection methods ***/
 6583#define ISpPhoneticAlphabetSelection_IsAlphabetUPS(This,pfIsUPS) (This)->lpVtbl->IsAlphabetUPS(This,pfIsUPS)
 6584#define ISpPhoneticAlphabetSelection_SetAlphabetToUPS(This,fForceUPS) (This)->lpVtbl->SetAlphabetToUPS(This,fForceUPS)
 6585#else
 6586/*** IUnknown methods ***/
 6587static inline HRESULT ISpPhoneticAlphabetSelection_QueryInterface(ISpPhoneticAlphabetSelection* This,REFIID riid,void **ppvObject) {
 6588    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6589}
 6590static inline ULONG ISpPhoneticAlphabetSelection_AddRef(ISpPhoneticAlphabetSelection* This) {
 6591    return This->lpVtbl->AddRef(This);
 6592}
 6593static inline ULONG ISpPhoneticAlphabetSelection_Release(ISpPhoneticAlphabetSelection* This) {
 6594    return This->lpVtbl->Release(This);
 6595}
 6596/*** ISpPhoneticAlphabetSelection methods ***/
 6597static inline HRESULT ISpPhoneticAlphabetSelection_IsAlphabetUPS(ISpPhoneticAlphabetSelection* This,WINBOOL *pfIsUPS) {
 6598    return This->lpVtbl->IsAlphabetUPS(This,pfIsUPS);
 6599}
 6600static inline HRESULT ISpPhoneticAlphabetSelection_SetAlphabetToUPS(ISpPhoneticAlphabetSelection* This,WINBOOL fForceUPS) {
 6601    return This->lpVtbl->SetAlphabetToUPS(This,fForceUPS);
 6602}
 6603#endif
 6604#endif
 6605
 6606#endif
 6607
 6608
 6609#endif  /* __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__ */
 6610
 6611typedef struct SPVPITCH {
 6612    LONG MiddleAdj;
 6613    LONG RangeAdj;
 6614} SPVPITCH;
 6615typedef struct SPVCONTEXT {
 6616    LPCWSTR pCategory;
 6617    LPCWSTR pBefore;
 6618    LPCWSTR pAfter;
 6619} SPVCONTEXT;
 6620typedef struct SPVSTATE {
 6621    SPVACTIONS eAction;
 6622    WORD LangID;
 6623    WORD wReserved;
 6624    LONG EmphAdj;
 6625    LONG RateAdj;
 6626    ULONG Volume;
 6627    SPVPITCH PitchAdj;
 6628    ULONG SilenceMSecs;
 6629    SPPHONEID *pPhoneIds;
 6630    SPPARTOFSPEECH ePartOfSpeech;
 6631    SPVCONTEXT Context;
 6632} SPVSTATE;
 6633typedef struct SPVOICESTATUS {
 6634    ULONG ulCurrentStream;
 6635    ULONG ulLastStreamQueued;
 6636    HRESULT hrLastResult;
 6637    DWORD dwRunningState;
 6638    ULONG ulInputWordPos;
 6639    ULONG ulInputWordLen;
 6640    ULONG ulInputSentPos;
 6641    ULONG ulInputSentLen;
 6642    LONG lBookmarkId;
 6643    SPPHONEID PhonemeId;
 6644    SPVISEMES VisemeId;
 6645    DWORD dwReserved1;
 6646    DWORD dwReserved2;
 6647} SPVOICESTATUS;
 6648typedef enum SPEAKFLAGS {
 6649    SPF_DEFAULT = 0,
 6650    SPF_ASYNC = 1,
 6651    SPF_PURGEBEFORESPEAK = 2,
 6652    SPF_IS_FILENAME = 4,
 6653    SPF_IS_XML = 8,
 6654    SPF_IS_NOT_XML = 0x10,
 6655    SPF_PERSIST_XML = 0x20,
 6656    SPF_NLP_SPEAK_PUNC = 0x40,
 6657    SPF_PARSE_SAPI = 0x80,
 6658    SPF_PARSE_SSML = 0x100,
 6659    SPF_PARSE_AUTODETECT = 0,
 6660    SPF_NLP_MASK = SPF_NLP_SPEAK_PUNC,
 6661    SPF_PARSE_MASK = SPF_PARSE_SAPI | SPF_PARSE_SSML,
 6662    SPF_VOICE_MASK = ((((((SPF_ASYNC | SPF_PURGEBEFORESPEAK) | SPF_IS_FILENAME) | SPF_IS_XML) | SPF_IS_NOT_XML) | SPF_NLP_MASK) | SPF_PERSIST_XML) | SPF_PARSE_MASK,
 6663    SPF_UNUSED_FLAGS = ~SPF_VOICE_MASK
 6664} SPEAKFLAGS;
 6665/*****************************************************************************
 6666 * ISpVoice interface
 6667 */
 6668#ifndef __ISpVoice_INTERFACE_DEFINED__
 6669#define __ISpVoice_INTERFACE_DEFINED__
 6670
 6671DEFINE_GUID(IID_ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4);
 6672#if defined(__cplusplus) && !defined(CINTERFACE)
 6673MIDL_INTERFACE("6c44df74-72b9-4992-a1ec-ef996e0422d4")
 6674ISpVoice : public ISpEventSource
 6675{
 6676    virtual HRESULT STDMETHODCALLTYPE SetOutput(
 6677        IUnknown *pUnkOutput,
 6678        WINBOOL fAllowFormatChanges) = 0;
 6679
 6680    virtual HRESULT STDMETHODCALLTYPE GetOutputObjectToken(
 6681        ISpObjectToken **ppObjectToken) = 0;
 6682
 6683    virtual HRESULT STDMETHODCALLTYPE GetOutputStream(
 6684        ISpStreamFormat **ppStream) = 0;
 6685
 6686    virtual HRESULT STDMETHODCALLTYPE Pause(
 6687        ) = 0;
 6688
 6689    virtual HRESULT STDMETHODCALLTYPE Resume(
 6690        ) = 0;
 6691
 6692    virtual HRESULT STDMETHODCALLTYPE SetVoice(
 6693        ISpObjectToken *pToken) = 0;
 6694
 6695    virtual HRESULT STDMETHODCALLTYPE GetVoice(
 6696        ISpObjectToken **ppToken) = 0;
 6697
 6698    virtual HRESULT STDMETHODCALLTYPE Speak(
 6699        LPCWSTR pwcs,
 6700        DWORD dwFlags,
 6701        ULONG *pulStreamNumber) = 0;
 6702
 6703    virtual HRESULT STDMETHODCALLTYPE SpeakStream(
 6704        IStream *pStream,
 6705        DWORD dwFlags,
 6706        ULONG *pulStreamNumber) = 0;
 6707
 6708    virtual HRESULT STDMETHODCALLTYPE GetStatus(
 6709        SPVOICESTATUS *pStatus,
 6710        LPWSTR *ppszLastBookmark) = 0;
 6711
 6712    virtual HRESULT STDMETHODCALLTYPE Skip(
 6713        LPCWSTR pItemType,
 6714        LONG lNumItems,
 6715        ULONG *pulNumSkipped) = 0;
 6716
 6717    virtual HRESULT STDMETHODCALLTYPE SetPriority(
 6718        SPVPRIORITY ePriority) = 0;
 6719
 6720    virtual HRESULT STDMETHODCALLTYPE GetPriority(
 6721        SPVPRIORITY *pePriority) = 0;
 6722
 6723    virtual HRESULT STDMETHODCALLTYPE SetAlertBoundary(
 6724        SPEVENTENUM eBoundary) = 0;
 6725
 6726    virtual HRESULT STDMETHODCALLTYPE GetAlertBoundary(
 6727        SPEVENTENUM *peBoundary) = 0;
 6728
 6729    virtual HRESULT STDMETHODCALLTYPE SetRate(
 6730        LONG RateAdjust) = 0;
 6731
 6732    virtual HRESULT STDMETHODCALLTYPE GetRate(
 6733        LONG *pRateAdjust) = 0;
 6734
 6735    virtual HRESULT STDMETHODCALLTYPE SetVolume(
 6736        USHORT usVolume) = 0;
 6737
 6738    virtual HRESULT STDMETHODCALLTYPE GetVolume(
 6739        USHORT *pusVolume) = 0;
 6740
 6741    virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
 6742        ULONG msTimeout) = 0;
 6743
 6744    virtual HRESULT STDMETHODCALLTYPE SetSyncSpeakTimeout(
 6745        ULONG msTimeout) = 0;
 6746
 6747    virtual HRESULT STDMETHODCALLTYPE GetSyncSpeakTimeout(
 6748        ULONG *pmsTimeout) = 0;
 6749
 6750    virtual HANDLE STDMETHODCALLTYPE SpeakCompleteEvent(
 6751        ) = 0;
 6752
 6753    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
 6754        LPCWSTR pszTypeOfUI,
 6755        void *pvExtraData,
 6756        ULONG cbExtraData,
 6757        WINBOOL *pfSupported) = 0;
 6758
 6759    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
 6760        HWND hwndParent,
 6761        LPCWSTR pszTitle,
 6762        LPCWSTR pszTypeOfUI,
 6763        void *pvExtraData,
 6764        ULONG cbExtraData) = 0;
 6765
 6766};
 6767#ifdef __CRT_UUID_DECL
 6768__CRT_UUID_DECL(ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4)
 6769#endif
 6770#else
 6771typedef struct ISpVoiceVtbl {
 6772    BEGIN_INTERFACE
 6773
 6774    /*** IUnknown methods ***/
 6775    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6776        ISpVoice *This,
 6777        REFIID riid,
 6778        void **ppvObject);
 6779
 6780    ULONG (STDMETHODCALLTYPE *AddRef)(
 6781        ISpVoice *This);
 6782
 6783    ULONG (STDMETHODCALLTYPE *Release)(
 6784        ISpVoice *This);
 6785
 6786    /*** ISpNotifySource methods ***/
 6787    HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
 6788        ISpVoice *This,
 6789        ISpNotifySink *pNotifySink);
 6790
 6791    HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
 6792        ISpVoice *This,
 6793        HWND hWnd,
 6794        UINT Msg,
 6795        WPARAM wParam,
 6796        LPARAM lParam);
 6797
 6798    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
 6799        ISpVoice *This,
 6800        SPNOTIFYCALLBACK *pfnCallback,
 6801        WPARAM wParam,
 6802        LPARAM lParam);
 6803
 6804    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
 6805        ISpVoice *This,
 6806        ISpNotifyCallback *pSpCallback,
 6807        WPARAM wParam,
 6808        LPARAM lParam);
 6809
 6810    HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
 6811        ISpVoice *This);
 6812
 6813    HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
 6814        ISpVoice *This,
 6815        DWORD dwMilliseconds);
 6816
 6817    HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
 6818        ISpVoice *This);
 6819
 6820    /*** ISpEventSource methods ***/
 6821    HRESULT (STDMETHODCALLTYPE *SetInterest)(
 6822        ISpVoice *This,
 6823        ULONGLONG ullEventInterest,
 6824        ULONGLONG ullQueuedInterest);
 6825
 6826    HRESULT (STDMETHODCALLTYPE *GetEvents)(
 6827        ISpVoice *This,
 6828        ULONG ulCount,
 6829        SPEVENT *pEventArray,
 6830        ULONG *pulFetched);
 6831
 6832    HRESULT (STDMETHODCALLTYPE *GetInfo)(
 6833        ISpVoice *This,
 6834        SPEVENTSOURCEINFO *pInfo);
 6835
 6836    /*** ISpVoice methods ***/
 6837    HRESULT (STDMETHODCALLTYPE *SetOutput)(
 6838        ISpVoice *This,
 6839        IUnknown *pUnkOutput,
 6840        WINBOOL fAllowFormatChanges);
 6841
 6842    HRESULT (STDMETHODCALLTYPE *GetOutputObjectToken)(
 6843        ISpVoice *This,
 6844        ISpObjectToken **ppObjectToken);
 6845
 6846    HRESULT (STDMETHODCALLTYPE *GetOutputStream)(
 6847        ISpVoice *This,
 6848        ISpStreamFormat **ppStream);
 6849
 6850    HRESULT (STDMETHODCALLTYPE *Pause)(
 6851        ISpVoice *This);
 6852
 6853    HRESULT (STDMETHODCALLTYPE *Resume)(
 6854        ISpVoice *This);
 6855
 6856    HRESULT (STDMETHODCALLTYPE *SetVoice)(
 6857        ISpVoice *This,
 6858        ISpObjectToken *pToken);
 6859
 6860    HRESULT (STDMETHODCALLTYPE *GetVoice)(
 6861        ISpVoice *This,
 6862        ISpObjectToken **ppToken);
 6863
 6864    HRESULT (STDMETHODCALLTYPE *Speak)(
 6865        ISpVoice *This,
 6866        LPCWSTR pwcs,
 6867        DWORD dwFlags,
 6868        ULONG *pulStreamNumber);
 6869
 6870    HRESULT (STDMETHODCALLTYPE *SpeakStream)(
 6871        ISpVoice *This,
 6872        IStream *pStream,
 6873        DWORD dwFlags,
 6874        ULONG *pulStreamNumber);
 6875
 6876    HRESULT (STDMETHODCALLTYPE *GetStatus)(
 6877        ISpVoice *This,
 6878        SPVOICESTATUS *pStatus,
 6879        LPWSTR *ppszLastBookmark);
 6880
 6881    HRESULT (STDMETHODCALLTYPE *Skip)(
 6882        ISpVoice *This,
 6883        LPCWSTR pItemType,
 6884        LONG lNumItems,
 6885        ULONG *pulNumSkipped);
 6886
 6887    HRESULT (STDMETHODCALLTYPE *SetPriority)(
 6888        ISpVoice *This,
 6889        SPVPRIORITY ePriority);
 6890
 6891    HRESULT (STDMETHODCALLTYPE *GetPriority)(
 6892        ISpVoice *This,
 6893        SPVPRIORITY *pePriority);
 6894
 6895    HRESULT (STDMETHODCALLTYPE *SetAlertBoundary)(
 6896        ISpVoice *This,
 6897        SPEVENTENUM eBoundary);
 6898
 6899    HRESULT (STDMETHODCALLTYPE *GetAlertBoundary)(
 6900        ISpVoice *This,
 6901        SPEVENTENUM *peBoundary);
 6902
 6903    HRESULT (STDMETHODCALLTYPE *SetRate)(
 6904        ISpVoice *This,
 6905        LONG RateAdjust);
 6906
 6907    HRESULT (STDMETHODCALLTYPE *GetRate)(
 6908        ISpVoice *This,
 6909        LONG *pRateAdjust);
 6910
 6911    HRESULT (STDMETHODCALLTYPE *SetVolume)(
 6912        ISpVoice *This,
 6913        USHORT usVolume);
 6914
 6915    HRESULT (STDMETHODCALLTYPE *GetVolume)(
 6916        ISpVoice *This,
 6917        USHORT *pusVolume);
 6918
 6919    HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
 6920        ISpVoice *This,
 6921        ULONG msTimeout);
 6922
 6923    HRESULT (STDMETHODCALLTYPE *SetSyncSpeakTimeout)(
 6924        ISpVoice *This,
 6925        ULONG msTimeout);
 6926
 6927    HRESULT (STDMETHODCALLTYPE *GetSyncSpeakTimeout)(
 6928        ISpVoice *This,
 6929        ULONG *pmsTimeout);
 6930
 6931    HANDLE (STDMETHODCALLTYPE *SpeakCompleteEvent)(
 6932        ISpVoice *This);
 6933
 6934    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
 6935        ISpVoice *This,
 6936        LPCWSTR pszTypeOfUI,
 6937        void *pvExtraData,
 6938        ULONG cbExtraData,
 6939        WINBOOL *pfSupported);
 6940
 6941    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
 6942        ISpVoice *This,
 6943        HWND hwndParent,
 6944        LPCWSTR pszTitle,
 6945        LPCWSTR pszTypeOfUI,
 6946        void *pvExtraData,
 6947        ULONG cbExtraData);
 6948
 6949    END_INTERFACE
 6950} ISpVoiceVtbl;
 6951
 6952interface ISpVoice {
 6953    CONST_VTBL ISpVoiceVtbl* lpVtbl;
 6954};
 6955
 6956#ifdef COBJMACROS
 6957#ifndef WIDL_C_INLINE_WRAPPERS
 6958/*** IUnknown methods ***/
 6959#define ISpVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6960#define ISpVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
 6961#define ISpVoice_Release(This) (This)->lpVtbl->Release(This)
 6962/*** ISpNotifySource methods ***/
 6963#define ISpVoice_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
 6964#define ISpVoice_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
 6965#define ISpVoice_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
 6966#define ISpVoice_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
 6967#define ISpVoice_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
 6968#define ISpVoice_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
 6969#define ISpVoice_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
 6970/*** ISpEventSource methods ***/
 6971#define ISpVoice_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
 6972#define ISpVoice_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
 6973#define ISpVoice_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
 6974/*** ISpVoice methods ***/
 6975#define ISpVoice_SetOutput(This,pUnkOutput,fAllowFormatChanges) (This)->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges)
 6976#define ISpVoice_GetOutputObjectToken(This,ppObjectToken) (This)->lpVtbl->GetOutputObjectToken(This,ppObjectToken)
 6977#define ISpVoice_GetOutputStream(This,ppStream) (This)->lpVtbl->GetOutputStream(This,ppStream)
 6978#define ISpVoice_Pause(This) (This)->lpVtbl->Pause(This)
 6979#define ISpVoice_Resume(This) (This)->lpVtbl->Resume(This)
 6980#define ISpVoice_SetVoice(This,pToken) (This)->lpVtbl->SetVoice(This,pToken)
 6981#define ISpVoice_GetVoice(This,ppToken) (This)->lpVtbl->GetVoice(This,ppToken)
 6982#define ISpVoice_Speak(This,pwcs,dwFlags,pulStreamNumber) (This)->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber)
 6983#define ISpVoice_SpeakStream(This,pStream,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber)
 6984#define ISpVoice_GetStatus(This,pStatus,ppszLastBookmark) (This)->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark)
 6985#define ISpVoice_Skip(This,pItemType,lNumItems,pulNumSkipped) (This)->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped)
 6986#define ISpVoice_SetPriority(This,ePriority) (This)->lpVtbl->SetPriority(This,ePriority)
 6987#define ISpVoice_GetPriority(This,pePriority) (This)->lpVtbl->GetPriority(This,pePriority)
 6988#define ISpVoice_SetAlertBoundary(This,eBoundary) (This)->lpVtbl->SetAlertBoundary(This,eBoundary)
 6989#define ISpVoice_GetAlertBoundary(This,peBoundary) (This)->lpVtbl->GetAlertBoundary(This,peBoundary)
 6990#define ISpVoice_SetRate(This,RateAdjust) (This)->lpVtbl->SetRate(This,RateAdjust)
 6991#define ISpVoice_GetRate(This,pRateAdjust) (This)->lpVtbl->GetRate(This,pRateAdjust)
 6992#define ISpVoice_SetVolume(This,usVolume) (This)->lpVtbl->SetVolume(This,usVolume)
 6993#define ISpVoice_GetVolume(This,pusVolume) (This)->lpVtbl->GetVolume(This,pusVolume)
 6994#define ISpVoice_WaitUntilDone(This,msTimeout) (This)->lpVtbl->WaitUntilDone(This,msTimeout)
 6995#define ISpVoice_SetSyncSpeakTimeout(This,msTimeout) (This)->lpVtbl->SetSyncSpeakTimeout(This,msTimeout)
 6996#define ISpVoice_GetSyncSpeakTimeout(This,pmsTimeout) (This)->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout)
 6997#define ISpVoice_SpeakCompleteEvent(This) (This)->lpVtbl->SpeakCompleteEvent(This)
 6998#define ISpVoice_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
 6999#define ISpVoice_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
 7000#else
 7001/*** IUnknown methods ***/
 7002static inline HRESULT ISpVoice_QueryInterface(ISpVoice* This,REFIID riid,void **ppvObject) {
 7003    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7004}
 7005static inline ULONG ISpVoice_AddRef(ISpVoice* This) {
 7006    return This->lpVtbl->AddRef(This);
 7007}
 7008static inline ULONG ISpVoice_Release(ISpVoice* This) {
 7009    return This->lpVtbl->Release(This);
 7010}
 7011/*** ISpNotifySource methods ***/
 7012static inline HRESULT ISpVoice_SetNotifySink(ISpVoice* This,ISpNotifySink *pNotifySink) {
 7013    return This->lpVtbl->SetNotifySink(This,pNotifySink);
 7014}
 7015static inline HRESULT ISpVoice_SetNotifyWindowMessage(ISpVoice* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 7016    return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
 7017}
 7018static inline HRESULT ISpVoice_SetNotifyCallbackFunction(ISpVoice* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 7019    return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
 7020}
 7021static inline HRESULT ISpVoice_SetNotifyCallbackInterface(ISpVoice* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 7022    return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
 7023}
 7024static inline HRESULT ISpVoice_SetNotifyWin32Event(ISpVoice* This) {
 7025    return This->lpVtbl->SetNotifyWin32Event(This);
 7026}
 7027static inline HRESULT ISpVoice_WaitForNotifyEvent(ISpVoice* This,DWORD dwMilliseconds) {
 7028    return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
 7029}
 7030static inline HANDLE ISpVoice_GetNotifyEventHandle(ISpVoice* This) {
 7031    return This->lpVtbl->GetNotifyEventHandle(This);
 7032}
 7033/*** ISpEventSource methods ***/
 7034static inline HRESULT ISpVoice_SetInterest(ISpVoice* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
 7035    return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
 7036}
 7037static inline HRESULT ISpVoice_GetEvents(ISpVoice* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
 7038    return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
 7039}
 7040static inline HRESULT ISpVoice_GetInfo(ISpVoice* This,SPEVENTSOURCEINFO *pInfo) {
 7041    return This->lpVtbl->GetInfo(This,pInfo);
 7042}
 7043/*** ISpVoice methods ***/
 7044static inline HRESULT ISpVoice_SetOutput(ISpVoice* This,IUnknown *pUnkOutput,WINBOOL fAllowFormatChanges) {
 7045    return This->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges);
 7046}
 7047static inline HRESULT ISpVoice_GetOutputObjectToken(ISpVoice* This,ISpObjectToken **ppObjectToken) {
 7048    return This->lpVtbl->GetOutputObjectToken(This,ppObjectToken);
 7049}
 7050static inline HRESULT ISpVoice_GetOutputStream(ISpVoice* This,ISpStreamFormat **ppStream) {
 7051    return This->lpVtbl->GetOutputStream(This,ppStream);
 7052}
 7053static inline HRESULT ISpVoice_Pause(ISpVoice* This) {
 7054    return This->lpVtbl->Pause(This);
 7055}
 7056static inline HRESULT ISpVoice_Resume(ISpVoice* This) {
 7057    return This->lpVtbl->Resume(This);
 7058}
 7059static inline HRESULT ISpVoice_SetVoice(ISpVoice* This,ISpObjectToken *pToken) {
 7060    return This->lpVtbl->SetVoice(This,pToken);
 7061}
 7062static inline HRESULT ISpVoice_GetVoice(ISpVoice* This,ISpObjectToken **ppToken) {
 7063    return This->lpVtbl->GetVoice(This,ppToken);
 7064}
 7065static inline HRESULT ISpVoice_Speak(ISpVoice* This,LPCWSTR pwcs,DWORD dwFlags,ULONG *pulStreamNumber) {
 7066    return This->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber);
 7067}
 7068static inline HRESULT ISpVoice_SpeakStream(ISpVoice* This,IStream *pStream,DWORD dwFlags,ULONG *pulStreamNumber) {
 7069    return This->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber);
 7070}
 7071static inline HRESULT ISpVoice_GetStatus(ISpVoice* This,SPVOICESTATUS *pStatus,LPWSTR *ppszLastBookmark) {
 7072    return This->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark);
 7073}
 7074static inline HRESULT ISpVoice_Skip(ISpVoice* This,LPCWSTR pItemType,LONG lNumItems,ULONG *pulNumSkipped) {
 7075    return This->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped);
 7076}
 7077static inline HRESULT ISpVoice_SetPriority(ISpVoice* This,SPVPRIORITY ePriority) {
 7078    return This->lpVtbl->SetPriority(This,ePriority);
 7079}
 7080static inline HRESULT ISpVoice_GetPriority(ISpVoice* This,SPVPRIORITY *pePriority) {
 7081    return This->lpVtbl->GetPriority(This,pePriority);
 7082}
 7083static inline HRESULT ISpVoice_SetAlertBoundary(ISpVoice* This,SPEVENTENUM eBoundary) {
 7084    return This->lpVtbl->SetAlertBoundary(This,eBoundary);
 7085}
 7086static inline HRESULT ISpVoice_GetAlertBoundary(ISpVoice* This,SPEVENTENUM *peBoundary) {
 7087    return This->lpVtbl->GetAlertBoundary(This,peBoundary);
 7088}
 7089static inline HRESULT ISpVoice_SetRate(ISpVoice* This,LONG RateAdjust) {
 7090    return This->lpVtbl->SetRate(This,RateAdjust);
 7091}
 7092static inline HRESULT ISpVoice_GetRate(ISpVoice* This,LONG *pRateAdjust) {
 7093    return This->lpVtbl->GetRate(This,pRateAdjust);
 7094}
 7095static inline HRESULT ISpVoice_SetVolume(ISpVoice* This,USHORT usVolume) {
 7096    return This->lpVtbl->SetVolume(This,usVolume);
 7097}
 7098static inline HRESULT ISpVoice_GetVolume(ISpVoice* This,USHORT *pusVolume) {
 7099    return This->lpVtbl->GetVolume(This,pusVolume);
 7100}
 7101static inline HRESULT ISpVoice_WaitUntilDone(ISpVoice* This,ULONG msTimeout) {
 7102    return This->lpVtbl->WaitUntilDone(This,msTimeout);
 7103}
 7104static inline HRESULT ISpVoice_SetSyncSpeakTimeout(ISpVoice* This,ULONG msTimeout) {
 7105    return This->lpVtbl->SetSyncSpeakTimeout(This,msTimeout);
 7106}
 7107static inline HRESULT ISpVoice_GetSyncSpeakTimeout(ISpVoice* This,ULONG *pmsTimeout) {
 7108    return This->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout);
 7109}
 7110static inline HANDLE ISpVoice_SpeakCompleteEvent(ISpVoice* This) {
 7111    return This->lpVtbl->SpeakCompleteEvent(This);
 7112}
 7113static inline HRESULT ISpVoice_IsUISupported(ISpVoice* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
 7114    return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
 7115}
 7116static inline HRESULT ISpVoice_DisplayUI(ISpVoice* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
 7117    return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
 7118}
 7119#endif
 7120#endif
 7121
 7122#endif
 7123
 7124
 7125#endif  /* __ISpVoice_INTERFACE_DEFINED__ */
 7126
 7127/*****************************************************************************
 7128 * ISpPhrase interface
 7129 */
 7130#ifndef __ISpPhrase_INTERFACE_DEFINED__
 7131#define __ISpPhrase_INTERFACE_DEFINED__
 7132
 7133DEFINE_GUID(IID_ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53);
 7134#if defined(__cplusplus) && !defined(CINTERFACE)
 7135MIDL_INTERFACE("1a5c0354-b621-4b5a-8791-d306ed379e53")
 7136ISpPhrase : public IUnknown
 7137{
 7138    virtual HRESULT STDMETHODCALLTYPE GetPhrase(
 7139        SPPHRASE **ppCoMemPhrase) = 0;
 7140
 7141    virtual HRESULT STDMETHODCALLTYPE GetSerializedPhrase(
 7142        SPSERIALIZEDPHRASE **ppCoMemPhrase) = 0;
 7143
 7144    virtual HRESULT STDMETHODCALLTYPE GetText(
 7145        ULONG ulStart,
 7146        ULONG ulCount,
 7147        WINBOOL fUseTextReplacements,
 7148        LPWSTR *ppszCoMemText,
 7149        BYTE *pbDisplayAttributes) = 0;
 7150
 7151    virtual HRESULT STDMETHODCALLTYPE Discard(
 7152        DWORD dwValueTypes) = 0;
 7153
 7154};
 7155#ifdef __CRT_UUID_DECL
 7156__CRT_UUID_DECL(ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53)
 7157#endif
 7158#else
 7159typedef struct ISpPhraseVtbl {
 7160    BEGIN_INTERFACE
 7161
 7162    /*** IUnknown methods ***/
 7163    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7164        ISpPhrase *This,
 7165        REFIID riid,
 7166        void **ppvObject);
 7167
 7168    ULONG (STDMETHODCALLTYPE *AddRef)(
 7169        ISpPhrase *This);
 7170
 7171    ULONG (STDMETHODCALLTYPE *Release)(
 7172        ISpPhrase *This);
 7173
 7174    /*** ISpPhrase methods ***/
 7175    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 7176        ISpPhrase *This,
 7177        SPPHRASE **ppCoMemPhrase);
 7178
 7179    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 7180        ISpPhrase *This,
 7181        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 7182
 7183    HRESULT (STDMETHODCALLTYPE *GetText)(
 7184        ISpPhrase *This,
 7185        ULONG ulStart,
 7186        ULONG ulCount,
 7187        WINBOOL fUseTextReplacements,
 7188        LPWSTR *ppszCoMemText,
 7189        BYTE *pbDisplayAttributes);
 7190
 7191    HRESULT (STDMETHODCALLTYPE *Discard)(
 7192        ISpPhrase *This,
 7193        DWORD dwValueTypes);
 7194
 7195    END_INTERFACE
 7196} ISpPhraseVtbl;
 7197
 7198interface ISpPhrase {
 7199    CONST_VTBL ISpPhraseVtbl* lpVtbl;
 7200};
 7201
 7202#ifdef COBJMACROS
 7203#ifndef WIDL_C_INLINE_WRAPPERS
 7204/*** IUnknown methods ***/
 7205#define ISpPhrase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7206#define ISpPhrase_AddRef(This) (This)->lpVtbl->AddRef(This)
 7207#define ISpPhrase_Release(This) (This)->lpVtbl->Release(This)
 7208/*** ISpPhrase methods ***/
 7209#define ISpPhrase_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 7210#define ISpPhrase_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 7211#define ISpPhrase_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 7212#define ISpPhrase_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 7213#else
 7214/*** IUnknown methods ***/
 7215static inline HRESULT ISpPhrase_QueryInterface(ISpPhrase* This,REFIID riid,void **ppvObject) {
 7216    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7217}
 7218static inline ULONG ISpPhrase_AddRef(ISpPhrase* This) {
 7219    return This->lpVtbl->AddRef(This);
 7220}
 7221static inline ULONG ISpPhrase_Release(ISpPhrase* This) {
 7222    return This->lpVtbl->Release(This);
 7223}
 7224/*** ISpPhrase methods ***/
 7225static inline HRESULT ISpPhrase_GetPhrase(ISpPhrase* This,SPPHRASE **ppCoMemPhrase) {
 7226    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 7227}
 7228static inline HRESULT ISpPhrase_GetSerializedPhrase(ISpPhrase* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 7229    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 7230}
 7231static inline HRESULT ISpPhrase_GetText(ISpPhrase* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 7232    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 7233}
 7234static inline HRESULT ISpPhrase_Discard(ISpPhrase* This,DWORD dwValueTypes) {
 7235    return This->lpVtbl->Discard(This,dwValueTypes);
 7236}
 7237#endif
 7238#endif
 7239
 7240#endif
 7241
 7242
 7243#endif  /* __ISpPhrase_INTERFACE_DEFINED__ */
 7244
 7245/*****************************************************************************
 7246 * ISpPhraseAlt interface
 7247 */
 7248#ifndef __ISpPhraseAlt_INTERFACE_DEFINED__
 7249#define __ISpPhraseAlt_INTERFACE_DEFINED__
 7250
 7251DEFINE_GUID(IID_ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d);
 7252#if defined(__cplusplus) && !defined(CINTERFACE)
 7253MIDL_INTERFACE("8fcebc98-4e49-4067-9c6c-d86a0e092e3d")
 7254ISpPhraseAlt : public ISpPhrase
 7255{
 7256    virtual HRESULT STDMETHODCALLTYPE GetAltInfo(
 7257        ISpPhrase **ppParent,
 7258        ULONG *pulStartElementInParent,
 7259        ULONG *pcElementsInParent,
 7260        ULONG *pcElementsInAlt) = 0;
 7261
 7262    virtual HRESULT STDMETHODCALLTYPE Commit(
 7263        ) = 0;
 7264
 7265};
 7266#ifdef __CRT_UUID_DECL
 7267__CRT_UUID_DECL(ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d)
 7268#endif
 7269#else
 7270typedef struct ISpPhraseAltVtbl {
 7271    BEGIN_INTERFACE
 7272
 7273    /*** IUnknown methods ***/
 7274    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7275        ISpPhraseAlt *This,
 7276        REFIID riid,
 7277        void **ppvObject);
 7278
 7279    ULONG (STDMETHODCALLTYPE *AddRef)(
 7280        ISpPhraseAlt *This);
 7281
 7282    ULONG (STDMETHODCALLTYPE *Release)(
 7283        ISpPhraseAlt *This);
 7284
 7285    /*** ISpPhrase methods ***/
 7286    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 7287        ISpPhraseAlt *This,
 7288        SPPHRASE **ppCoMemPhrase);
 7289
 7290    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 7291        ISpPhraseAlt *This,
 7292        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 7293
 7294    HRESULT (STDMETHODCALLTYPE *GetText)(
 7295        ISpPhraseAlt *This,
 7296        ULONG ulStart,
 7297        ULONG ulCount,
 7298        WINBOOL fUseTextReplacements,
 7299        LPWSTR *ppszCoMemText,
 7300        BYTE *pbDisplayAttributes);
 7301
 7302    HRESULT (STDMETHODCALLTYPE *Discard)(
 7303        ISpPhraseAlt *This,
 7304        DWORD dwValueTypes);
 7305
 7306    /*** ISpPhraseAlt methods ***/
 7307    HRESULT (STDMETHODCALLTYPE *GetAltInfo)(
 7308        ISpPhraseAlt *This,
 7309        ISpPhrase **ppParent,
 7310        ULONG *pulStartElementInParent,
 7311        ULONG *pcElementsInParent,
 7312        ULONG *pcElementsInAlt);
 7313
 7314    HRESULT (STDMETHODCALLTYPE *Commit)(
 7315        ISpPhraseAlt *This);
 7316
 7317    END_INTERFACE
 7318} ISpPhraseAltVtbl;
 7319
 7320interface ISpPhraseAlt {
 7321    CONST_VTBL ISpPhraseAltVtbl* lpVtbl;
 7322};
 7323
 7324#ifdef COBJMACROS
 7325#ifndef WIDL_C_INLINE_WRAPPERS
 7326/*** IUnknown methods ***/
 7327#define ISpPhraseAlt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7328#define ISpPhraseAlt_AddRef(This) (This)->lpVtbl->AddRef(This)
 7329#define ISpPhraseAlt_Release(This) (This)->lpVtbl->Release(This)
 7330/*** ISpPhrase methods ***/
 7331#define ISpPhraseAlt_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 7332#define ISpPhraseAlt_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 7333#define ISpPhraseAlt_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 7334#define ISpPhraseAlt_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 7335/*** ISpPhraseAlt methods ***/
 7336#define ISpPhraseAlt_GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt) (This)->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
 7337#define ISpPhraseAlt_Commit(This) (This)->lpVtbl->Commit(This)
 7338#else
 7339/*** IUnknown methods ***/
 7340static inline HRESULT ISpPhraseAlt_QueryInterface(ISpPhraseAlt* This,REFIID riid,void **ppvObject) {
 7341    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7342}
 7343static inline ULONG ISpPhraseAlt_AddRef(ISpPhraseAlt* This) {
 7344    return This->lpVtbl->AddRef(This);
 7345}
 7346static inline ULONG ISpPhraseAlt_Release(ISpPhraseAlt* This) {
 7347    return This->lpVtbl->Release(This);
 7348}
 7349/*** ISpPhrase methods ***/
 7350static inline HRESULT ISpPhraseAlt_GetPhrase(ISpPhraseAlt* This,SPPHRASE **ppCoMemPhrase) {
 7351    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 7352}
 7353static inline HRESULT ISpPhraseAlt_GetSerializedPhrase(ISpPhraseAlt* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 7354    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 7355}
 7356static inline HRESULT ISpPhraseAlt_GetText(ISpPhraseAlt* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 7357    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 7358}
 7359static inline HRESULT ISpPhraseAlt_Discard(ISpPhraseAlt* This,DWORD dwValueTypes) {
 7360    return This->lpVtbl->Discard(This,dwValueTypes);
 7361}
 7362/*** ISpPhraseAlt methods ***/
 7363static inline HRESULT ISpPhraseAlt_GetAltInfo(ISpPhraseAlt* This,ISpPhrase **ppParent,ULONG *pulStartElementInParent,ULONG *pcElementsInParent,ULONG *pcElementsInAlt) {
 7364    return This->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt);
 7365}
 7366static inline HRESULT ISpPhraseAlt_Commit(ISpPhraseAlt* This) {
 7367    return This->lpVtbl->Commit(This);
 7368}
 7369#endif
 7370#endif
 7371
 7372#endif
 7373
 7374
 7375#endif  /* __ISpPhraseAlt_INTERFACE_DEFINED__ */
 7376
 7377typedef enum SPXMLRESULTOPTIONS {
 7378    SPXRO_SML = 0,
 7379    SPXRO_Alternates_SML = 1
 7380} SPXMLRESULTOPTIONS;
 7381/*****************************************************************************
 7382 * ISpPhrase2 interface
 7383 */
 7384#ifndef __ISpPhrase2_INTERFACE_DEFINED__
 7385#define __ISpPhrase2_INTERFACE_DEFINED__
 7386
 7387DEFINE_GUID(IID_ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79);
 7388#if defined(__cplusplus) && !defined(CINTERFACE)
 7389MIDL_INTERFACE("f264da52-e457-4696-b856-a737b717af79")
 7390ISpPhrase2 : public ISpPhrase
 7391{
 7392    virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
 7393        LPWSTR *ppszCoMemXMLResult,
 7394        SPXMLRESULTOPTIONS Options) = 0;
 7395
 7396    virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
 7397        SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
 7398
 7399    virtual HRESULT STDMETHODCALLTYPE GetAudio(
 7400        ULONG ulStartElement,
 7401        ULONG cElements,
 7402        ISpStreamFormat **ppStream) = 0;
 7403
 7404};
 7405#ifdef __CRT_UUID_DECL
 7406__CRT_UUID_DECL(ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79)
 7407#endif
 7408#else
 7409typedef struct ISpPhrase2Vtbl {
 7410    BEGIN_INTERFACE
 7411
 7412    /*** IUnknown methods ***/
 7413    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7414        ISpPhrase2 *This,
 7415        REFIID riid,
 7416        void **ppvObject);
 7417
 7418    ULONG (STDMETHODCALLTYPE *AddRef)(
 7419        ISpPhrase2 *This);
 7420
 7421    ULONG (STDMETHODCALLTYPE *Release)(
 7422        ISpPhrase2 *This);
 7423
 7424    /*** ISpPhrase methods ***/
 7425    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 7426        ISpPhrase2 *This,
 7427        SPPHRASE **ppCoMemPhrase);
 7428
 7429    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 7430        ISpPhrase2 *This,
 7431        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 7432
 7433    HRESULT (STDMETHODCALLTYPE *GetText)(
 7434        ISpPhrase2 *This,
 7435        ULONG ulStart,
 7436        ULONG ulCount,
 7437        WINBOOL fUseTextReplacements,
 7438        LPWSTR *ppszCoMemText,
 7439        BYTE *pbDisplayAttributes);
 7440
 7441    HRESULT (STDMETHODCALLTYPE *Discard)(
 7442        ISpPhrase2 *This,
 7443        DWORD dwValueTypes);
 7444
 7445    /*** ISpPhrase2 methods ***/
 7446    HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
 7447        ISpPhrase2 *This,
 7448        LPWSTR *ppszCoMemXMLResult,
 7449        SPXMLRESULTOPTIONS Options);
 7450
 7451    HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
 7452        ISpPhrase2 *This,
 7453        SPSEMANTICERRORINFO *pSemanticErrorInfo);
 7454
 7455    HRESULT (STDMETHODCALLTYPE *GetAudio)(
 7456        ISpPhrase2 *This,
 7457        ULONG ulStartElement,
 7458        ULONG cElements,
 7459        ISpStreamFormat **ppStream);
 7460
 7461    END_INTERFACE
 7462} ISpPhrase2Vtbl;
 7463
 7464interface ISpPhrase2 {
 7465    CONST_VTBL ISpPhrase2Vtbl* lpVtbl;
 7466};
 7467
 7468#ifdef COBJMACROS
 7469#ifndef WIDL_C_INLINE_WRAPPERS
 7470/*** IUnknown methods ***/
 7471#define ISpPhrase2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7472#define ISpPhrase2_AddRef(This) (This)->lpVtbl->AddRef(This)
 7473#define ISpPhrase2_Release(This) (This)->lpVtbl->Release(This)
 7474/*** ISpPhrase methods ***/
 7475#define ISpPhrase2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 7476#define ISpPhrase2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 7477#define ISpPhrase2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 7478#define ISpPhrase2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 7479/*** ISpPhrase2 methods ***/
 7480#define ISpPhrase2_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
 7481#define ISpPhrase2_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
 7482#define ISpPhrase2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
 7483#else
 7484/*** IUnknown methods ***/
 7485static inline HRESULT ISpPhrase2_QueryInterface(ISpPhrase2* This,REFIID riid,void **ppvObject) {
 7486    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7487}
 7488static inline ULONG ISpPhrase2_AddRef(ISpPhrase2* This) {
 7489    return This->lpVtbl->AddRef(This);
 7490}
 7491static inline ULONG ISpPhrase2_Release(ISpPhrase2* This) {
 7492    return This->lpVtbl->Release(This);
 7493}
 7494/*** ISpPhrase methods ***/
 7495static inline HRESULT ISpPhrase2_GetPhrase(ISpPhrase2* This,SPPHRASE **ppCoMemPhrase) {
 7496    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 7497}
 7498static inline HRESULT ISpPhrase2_GetSerializedPhrase(ISpPhrase2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 7499    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 7500}
 7501static inline HRESULT ISpPhrase2_GetText(ISpPhrase2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 7502    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 7503}
 7504static inline HRESULT ISpPhrase2_Discard(ISpPhrase2* This,DWORD dwValueTypes) {
 7505    return This->lpVtbl->Discard(This,dwValueTypes);
 7506}
 7507/*** ISpPhrase2 methods ***/
 7508static inline HRESULT ISpPhrase2_GetXMLResult(ISpPhrase2* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
 7509    return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
 7510}
 7511static inline HRESULT ISpPhrase2_GetXMLErrorInfo(ISpPhrase2* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
 7512    return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
 7513}
 7514static inline HRESULT ISpPhrase2_GetAudio(ISpPhrase2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
 7515    return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
 7516}
 7517#endif
 7518#endif
 7519
 7520#endif
 7521
 7522
 7523#endif  /* __ISpPhrase2_INTERFACE_DEFINED__ */
 7524
 7525typedef struct SPRECORESULTTIMES {
 7526    FILETIME ftStreamTime;
 7527    ULONGLONG ullLength;
 7528    DWORD dwTickCount;
 7529    ULONGLONG ullStart;
 7530} SPRECORESULTTIMES;
 7531typedef struct SPSERIALIZEDRESULT {
 7532    ULONG ulSerializedSize;
 7533} SPSERIALIZEDRESULT;
 7534/*****************************************************************************
 7535 * ISpRecoResult interface
 7536 */
 7537#ifndef __ISpRecoResult_INTERFACE_DEFINED__
 7538#define __ISpRecoResult_INTERFACE_DEFINED__
 7539
 7540DEFINE_GUID(IID_ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42);
 7541#if defined(__cplusplus) && !defined(CINTERFACE)
 7542MIDL_INTERFACE("20b053be-e235-43cd-9a2a-8d17a48b7842")
 7543ISpRecoResult : public ISpPhrase
 7544{
 7545    virtual HRESULT STDMETHODCALLTYPE GetResultTimes(
 7546        SPRECORESULTTIMES *pTimes) = 0;
 7547
 7548    virtual HRESULT STDMETHODCALLTYPE GetAlternates(
 7549        ULONG ulStartElement,
 7550        ULONG cElements,
 7551        ULONG ulRequestCount,
 7552        ISpPhraseAlt **ppPhrases,
 7553        ULONG *pcPhrasesReturned) = 0;
 7554
 7555    virtual HRESULT STDMETHODCALLTYPE GetAudio(
 7556        ULONG ulStartElement,
 7557        ULONG cElements,
 7558        ISpStreamFormat **ppStream) = 0;
 7559
 7560    virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
 7561        ULONG ulStartElement,
 7562        ULONG cElements,
 7563        DWORD dwFlags,
 7564        ULONG *pulStreamNumber) = 0;
 7565
 7566    virtual HRESULT STDMETHODCALLTYPE Serialize(
 7567        SPSERIALIZEDRESULT **ppCoMemSerializedResult) = 0;
 7568
 7569    virtual HRESULT STDMETHODCALLTYPE ScaleAudio(
 7570        const GUID *pAudioFormatId,
 7571        const WAVEFORMATEX *pWaveFormatEx) = 0;
 7572
 7573    virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
 7574        ISpRecoContext **ppRecoContext) = 0;
 7575
 7576};
 7577#ifdef __CRT_UUID_DECL
 7578__CRT_UUID_DECL(ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42)
 7579#endif
 7580#else
 7581typedef struct ISpRecoResultVtbl {
 7582    BEGIN_INTERFACE
 7583
 7584    /*** IUnknown methods ***/
 7585    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7586        ISpRecoResult *This,
 7587        REFIID riid,
 7588        void **ppvObject);
 7589
 7590    ULONG (STDMETHODCALLTYPE *AddRef)(
 7591        ISpRecoResult *This);
 7592
 7593    ULONG (STDMETHODCALLTYPE *Release)(
 7594        ISpRecoResult *This);
 7595
 7596    /*** ISpPhrase methods ***/
 7597    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 7598        ISpRecoResult *This,
 7599        SPPHRASE **ppCoMemPhrase);
 7600
 7601    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 7602        ISpRecoResult *This,
 7603        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 7604
 7605    HRESULT (STDMETHODCALLTYPE *GetText)(
 7606        ISpRecoResult *This,
 7607        ULONG ulStart,
 7608        ULONG ulCount,
 7609        WINBOOL fUseTextReplacements,
 7610        LPWSTR *ppszCoMemText,
 7611        BYTE *pbDisplayAttributes);
 7612
 7613    HRESULT (STDMETHODCALLTYPE *Discard)(
 7614        ISpRecoResult *This,
 7615        DWORD dwValueTypes);
 7616
 7617    /*** ISpRecoResult methods ***/
 7618    HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
 7619        ISpRecoResult *This,
 7620        SPRECORESULTTIMES *pTimes);
 7621
 7622    HRESULT (STDMETHODCALLTYPE *GetAlternates)(
 7623        ISpRecoResult *This,
 7624        ULONG ulStartElement,
 7625        ULONG cElements,
 7626        ULONG ulRequestCount,
 7627        ISpPhraseAlt **ppPhrases,
 7628        ULONG *pcPhrasesReturned);
 7629
 7630    HRESULT (STDMETHODCALLTYPE *GetAudio)(
 7631        ISpRecoResult *This,
 7632        ULONG ulStartElement,
 7633        ULONG cElements,
 7634        ISpStreamFormat **ppStream);
 7635
 7636    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
 7637        ISpRecoResult *This,
 7638        ULONG ulStartElement,
 7639        ULONG cElements,
 7640        DWORD dwFlags,
 7641        ULONG *pulStreamNumber);
 7642
 7643    HRESULT (STDMETHODCALLTYPE *Serialize)(
 7644        ISpRecoResult *This,
 7645        SPSERIALIZEDRESULT **ppCoMemSerializedResult);
 7646
 7647    HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
 7648        ISpRecoResult *This,
 7649        const GUID *pAudioFormatId,
 7650        const WAVEFORMATEX *pWaveFormatEx);
 7651
 7652    HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
 7653        ISpRecoResult *This,
 7654        ISpRecoContext **ppRecoContext);
 7655
 7656    END_INTERFACE
 7657} ISpRecoResultVtbl;
 7658
 7659interface ISpRecoResult {
 7660    CONST_VTBL ISpRecoResultVtbl* lpVtbl;
 7661};
 7662
 7663#ifdef COBJMACROS
 7664#ifndef WIDL_C_INLINE_WRAPPERS
 7665/*** IUnknown methods ***/
 7666#define ISpRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7667#define ISpRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
 7668#define ISpRecoResult_Release(This) (This)->lpVtbl->Release(This)
 7669/*** ISpPhrase methods ***/
 7670#define ISpRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 7671#define ISpRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 7672#define ISpRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 7673#define ISpRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 7674/*** ISpRecoResult methods ***/
 7675#define ISpRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
 7676#define ISpRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
 7677#define ISpRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
 7678#define ISpRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
 7679#define ISpRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
 7680#define ISpRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
 7681#define ISpRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
 7682#else
 7683/*** IUnknown methods ***/
 7684static inline HRESULT ISpRecoResult_QueryInterface(ISpRecoResult* This,REFIID riid,void **ppvObject) {
 7685    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7686}
 7687static inline ULONG ISpRecoResult_AddRef(ISpRecoResult* This) {
 7688    return This->lpVtbl->AddRef(This);
 7689}
 7690static inline ULONG ISpRecoResult_Release(ISpRecoResult* This) {
 7691    return This->lpVtbl->Release(This);
 7692}
 7693/*** ISpPhrase methods ***/
 7694static inline HRESULT ISpRecoResult_GetPhrase(ISpRecoResult* This,SPPHRASE **ppCoMemPhrase) {
 7695    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 7696}
 7697static inline HRESULT ISpRecoResult_GetSerializedPhrase(ISpRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 7698    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 7699}
 7700static inline HRESULT ISpRecoResult_GetText(ISpRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 7701    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 7702}
 7703static inline HRESULT ISpRecoResult_Discard(ISpRecoResult* This,DWORD dwValueTypes) {
 7704    return This->lpVtbl->Discard(This,dwValueTypes);
 7705}
 7706/*** ISpRecoResult methods ***/
 7707static inline HRESULT ISpRecoResult_GetResultTimes(ISpRecoResult* This,SPRECORESULTTIMES *pTimes) {
 7708    return This->lpVtbl->GetResultTimes(This,pTimes);
 7709}
 7710static inline HRESULT ISpRecoResult_GetAlternates(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
 7711    return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
 7712}
 7713static inline HRESULT ISpRecoResult_GetAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
 7714    return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
 7715}
 7716static inline HRESULT ISpRecoResult_SpeakAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
 7717    return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
 7718}
 7719static inline HRESULT ISpRecoResult_Serialize(ISpRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
 7720    return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
 7721}
 7722static inline HRESULT ISpRecoResult_ScaleAudio(ISpRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
 7723    return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
 7724}
 7725static inline HRESULT ISpRecoResult_GetRecoContext(ISpRecoResult* This,ISpRecoContext **ppRecoContext) {
 7726    return This->lpVtbl->GetRecoContext(This,ppRecoContext);
 7727}
 7728#endif
 7729#endif
 7730
 7731#endif
 7732
 7733
 7734#endif  /* __ISpRecoResult_INTERFACE_DEFINED__ */
 7735
 7736typedef enum SPCOMMITFLAGS {
 7737    SPCF_NONE = 0,
 7738    SPCF_ADD_TO_USER_LEXICON = 1 << 0,
 7739    SPCF_DEFINITE_CORRECTION = 1 << 1
 7740} SPCOMMITFLAGS;
 7741/*****************************************************************************
 7742 * ISpRecoResult2 interface
 7743 */
 7744#ifndef __ISpRecoResult2_INTERFACE_DEFINED__
 7745#define __ISpRecoResult2_INTERFACE_DEFINED__
 7746
 7747DEFINE_GUID(IID_ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e);
 7748#if defined(__cplusplus) && !defined(CINTERFACE)
 7749MIDL_INTERFACE("27cac6c4-88f2-41f2-8817-0c95e59f1e6e")
 7750ISpRecoResult2 : public ISpRecoResult
 7751{
 7752    virtual HRESULT STDMETHODCALLTYPE CommitAlternate(
 7753        ISpPhraseAlt *pPhraseAlt,
 7754        ISpRecoResult **ppNewResult) = 0;
 7755
 7756    virtual HRESULT STDMETHODCALLTYPE CommitText(
 7757        ULONG ulStartElement,
 7758        ULONG cElements,
 7759        LPCWSTR pszCorrectedData,
 7760        DWORD eCommitFlags) = 0;
 7761
 7762    virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
 7763        LPCWSTR pszFeedback,
 7764        WINBOOL fSuccessful) = 0;
 7765
 7766};
 7767#ifdef __CRT_UUID_DECL
 7768__CRT_UUID_DECL(ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e)
 7769#endif
 7770#else
 7771typedef struct ISpRecoResult2Vtbl {
 7772    BEGIN_INTERFACE
 7773
 7774    /*** IUnknown methods ***/
 7775    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7776        ISpRecoResult2 *This,
 7777        REFIID riid,
 7778        void **ppvObject);
 7779
 7780    ULONG (STDMETHODCALLTYPE *AddRef)(
 7781        ISpRecoResult2 *This);
 7782
 7783    ULONG (STDMETHODCALLTYPE *Release)(
 7784        ISpRecoResult2 *This);
 7785
 7786    /*** ISpPhrase methods ***/
 7787    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 7788        ISpRecoResult2 *This,
 7789        SPPHRASE **ppCoMemPhrase);
 7790
 7791    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 7792        ISpRecoResult2 *This,
 7793        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 7794
 7795    HRESULT (STDMETHODCALLTYPE *GetText)(
 7796        ISpRecoResult2 *This,
 7797        ULONG ulStart,
 7798        ULONG ulCount,
 7799        WINBOOL fUseTextReplacements,
 7800        LPWSTR *ppszCoMemText,
 7801        BYTE *pbDisplayAttributes);
 7802
 7803    HRESULT (STDMETHODCALLTYPE *Discard)(
 7804        ISpRecoResult2 *This,
 7805        DWORD dwValueTypes);
 7806
 7807    /*** ISpRecoResult methods ***/
 7808    HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
 7809        ISpRecoResult2 *This,
 7810        SPRECORESULTTIMES *pTimes);
 7811
 7812    HRESULT (STDMETHODCALLTYPE *GetAlternates)(
 7813        ISpRecoResult2 *This,
 7814        ULONG ulStartElement,
 7815        ULONG cElements,
 7816        ULONG ulRequestCount,
 7817        ISpPhraseAlt **ppPhrases,
 7818        ULONG *pcPhrasesReturned);
 7819
 7820    HRESULT (STDMETHODCALLTYPE *GetAudio)(
 7821        ISpRecoResult2 *This,
 7822        ULONG ulStartElement,
 7823        ULONG cElements,
 7824        ISpStreamFormat **ppStream);
 7825
 7826    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
 7827        ISpRecoResult2 *This,
 7828        ULONG ulStartElement,
 7829        ULONG cElements,
 7830        DWORD dwFlags,
 7831        ULONG *pulStreamNumber);
 7832
 7833    HRESULT (STDMETHODCALLTYPE *Serialize)(
 7834        ISpRecoResult2 *This,
 7835        SPSERIALIZEDRESULT **ppCoMemSerializedResult);
 7836
 7837    HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
 7838        ISpRecoResult2 *This,
 7839        const GUID *pAudioFormatId,
 7840        const WAVEFORMATEX *pWaveFormatEx);
 7841
 7842    HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
 7843        ISpRecoResult2 *This,
 7844        ISpRecoContext **ppRecoContext);
 7845
 7846    /*** ISpRecoResult2 methods ***/
 7847    HRESULT (STDMETHODCALLTYPE *CommitAlternate)(
 7848        ISpRecoResult2 *This,
 7849        ISpPhraseAlt *pPhraseAlt,
 7850        ISpRecoResult **ppNewResult);
 7851
 7852    HRESULT (STDMETHODCALLTYPE *CommitText)(
 7853        ISpRecoResult2 *This,
 7854        ULONG ulStartElement,
 7855        ULONG cElements,
 7856        LPCWSTR pszCorrectedData,
 7857        DWORD eCommitFlags);
 7858
 7859    HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
 7860        ISpRecoResult2 *This,
 7861        LPCWSTR pszFeedback,
 7862        WINBOOL fSuccessful);
 7863
 7864    END_INTERFACE
 7865} ISpRecoResult2Vtbl;
 7866
 7867interface ISpRecoResult2 {
 7868    CONST_VTBL ISpRecoResult2Vtbl* lpVtbl;
 7869};
 7870
 7871#ifdef COBJMACROS
 7872#ifndef WIDL_C_INLINE_WRAPPERS
 7873/*** IUnknown methods ***/
 7874#define ISpRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7875#define ISpRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
 7876#define ISpRecoResult2_Release(This) (This)->lpVtbl->Release(This)
 7877/*** ISpPhrase methods ***/
 7878#define ISpRecoResult2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 7879#define ISpRecoResult2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 7880#define ISpRecoResult2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 7881#define ISpRecoResult2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 7882/*** ISpRecoResult methods ***/
 7883#define ISpRecoResult2_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
 7884#define ISpRecoResult2_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
 7885#define ISpRecoResult2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
 7886#define ISpRecoResult2_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
 7887#define ISpRecoResult2_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
 7888#define ISpRecoResult2_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
 7889#define ISpRecoResult2_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
 7890/*** ISpRecoResult2 methods ***/
 7891#define ISpRecoResult2_CommitAlternate(This,pPhraseAlt,ppNewResult) (This)->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult)
 7892#define ISpRecoResult2_CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags) (This)->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags)
 7893#define ISpRecoResult2_SetTextFeedback(This,pszFeedback,fSuccessful) (This)->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful)
 7894#else
 7895/*** IUnknown methods ***/
 7896static inline HRESULT ISpRecoResult2_QueryInterface(ISpRecoResult2* This,REFIID riid,void **ppvObject) {
 7897    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7898}
 7899static inline ULONG ISpRecoResult2_AddRef(ISpRecoResult2* This) {
 7900    return This->lpVtbl->AddRef(This);
 7901}
 7902static inline ULONG ISpRecoResult2_Release(ISpRecoResult2* This) {
 7903    return This->lpVtbl->Release(This);
 7904}
 7905/*** ISpPhrase methods ***/
 7906static inline HRESULT ISpRecoResult2_GetPhrase(ISpRecoResult2* This,SPPHRASE **ppCoMemPhrase) {
 7907    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 7908}
 7909static inline HRESULT ISpRecoResult2_GetSerializedPhrase(ISpRecoResult2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 7910    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 7911}
 7912static inline HRESULT ISpRecoResult2_GetText(ISpRecoResult2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 7913    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 7914}
 7915static inline HRESULT ISpRecoResult2_Discard(ISpRecoResult2* This,DWORD dwValueTypes) {
 7916    return This->lpVtbl->Discard(This,dwValueTypes);
 7917}
 7918/*** ISpRecoResult methods ***/
 7919static inline HRESULT ISpRecoResult2_GetResultTimes(ISpRecoResult2* This,SPRECORESULTTIMES *pTimes) {
 7920    return This->lpVtbl->GetResultTimes(This,pTimes);
 7921}
 7922static inline HRESULT ISpRecoResult2_GetAlternates(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
 7923    return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
 7924}
 7925static inline HRESULT ISpRecoResult2_GetAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
 7926    return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
 7927}
 7928static inline HRESULT ISpRecoResult2_SpeakAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
 7929    return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
 7930}
 7931static inline HRESULT ISpRecoResult2_Serialize(ISpRecoResult2* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
 7932    return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
 7933}
 7934static inline HRESULT ISpRecoResult2_ScaleAudio(ISpRecoResult2* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
 7935    return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
 7936}
 7937static inline HRESULT ISpRecoResult2_GetRecoContext(ISpRecoResult2* This,ISpRecoContext **ppRecoContext) {
 7938    return This->lpVtbl->GetRecoContext(This,ppRecoContext);
 7939}
 7940/*** ISpRecoResult2 methods ***/
 7941static inline HRESULT ISpRecoResult2_CommitAlternate(ISpRecoResult2* This,ISpPhraseAlt *pPhraseAlt,ISpRecoResult **ppNewResult) {
 7942    return This->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult);
 7943}
 7944static inline HRESULT ISpRecoResult2_CommitText(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,LPCWSTR pszCorrectedData,DWORD eCommitFlags) {
 7945    return This->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags);
 7946}
 7947static inline HRESULT ISpRecoResult2_SetTextFeedback(ISpRecoResult2* This,LPCWSTR pszFeedback,WINBOOL fSuccessful) {
 7948    return This->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful);
 7949}
 7950#endif
 7951#endif
 7952
 7953#endif
 7954
 7955
 7956#endif  /* __ISpRecoResult2_INTERFACE_DEFINED__ */
 7957
 7958/*****************************************************************************
 7959 * ISpXMLRecoResult interface
 7960 */
 7961#ifndef __ISpXMLRecoResult_INTERFACE_DEFINED__
 7962#define __ISpXMLRecoResult_INTERFACE_DEFINED__
 7963
 7964DEFINE_GUID(IID_ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6);
 7965#if defined(__cplusplus) && !defined(CINTERFACE)
 7966MIDL_INTERFACE("ae39362b-45a8-4074-9b9e-ccf49aa2d0b6")
 7967ISpXMLRecoResult : public ISpRecoResult
 7968{
 7969    virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
 7970        LPWSTR *ppszCoMemXMLResult,
 7971        SPXMLRESULTOPTIONS Options) = 0;
 7972
 7973    virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
 7974        SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
 7975
 7976};
 7977#ifdef __CRT_UUID_DECL
 7978__CRT_UUID_DECL(ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6)
 7979#endif
 7980#else
 7981typedef struct ISpXMLRecoResultVtbl {
 7982    BEGIN_INTERFACE
 7983
 7984    /*** IUnknown methods ***/
 7985    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7986        ISpXMLRecoResult *This,
 7987        REFIID riid,
 7988        void **ppvObject);
 7989
 7990    ULONG (STDMETHODCALLTYPE *AddRef)(
 7991        ISpXMLRecoResult *This);
 7992
 7993    ULONG (STDMETHODCALLTYPE *Release)(
 7994        ISpXMLRecoResult *This);
 7995
 7996    /*** ISpPhrase methods ***/
 7997    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 7998        ISpXMLRecoResult *This,
 7999        SPPHRASE **ppCoMemPhrase);
 8000
 8001    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 8002        ISpXMLRecoResult *This,
 8003        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 8004
 8005    HRESULT (STDMETHODCALLTYPE *GetText)(
 8006        ISpXMLRecoResult *This,
 8007        ULONG ulStart,
 8008        ULONG ulCount,
 8009        WINBOOL fUseTextReplacements,
 8010        LPWSTR *ppszCoMemText,
 8011        BYTE *pbDisplayAttributes);
 8012
 8013    HRESULT (STDMETHODCALLTYPE *Discard)(
 8014        ISpXMLRecoResult *This,
 8015        DWORD dwValueTypes);
 8016
 8017    /*** ISpRecoResult methods ***/
 8018    HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
 8019        ISpXMLRecoResult *This,
 8020        SPRECORESULTTIMES *pTimes);
 8021
 8022    HRESULT (STDMETHODCALLTYPE *GetAlternates)(
 8023        ISpXMLRecoResult *This,
 8024        ULONG ulStartElement,
 8025        ULONG cElements,
 8026        ULONG ulRequestCount,
 8027        ISpPhraseAlt **ppPhrases,
 8028        ULONG *pcPhrasesReturned);
 8029
 8030    HRESULT (STDMETHODCALLTYPE *GetAudio)(
 8031        ISpXMLRecoResult *This,
 8032        ULONG ulStartElement,
 8033        ULONG cElements,
 8034        ISpStreamFormat **ppStream);
 8035
 8036    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
 8037        ISpXMLRecoResult *This,
 8038        ULONG ulStartElement,
 8039        ULONG cElements,
 8040        DWORD dwFlags,
 8041        ULONG *pulStreamNumber);
 8042
 8043    HRESULT (STDMETHODCALLTYPE *Serialize)(
 8044        ISpXMLRecoResult *This,
 8045        SPSERIALIZEDRESULT **ppCoMemSerializedResult);
 8046
 8047    HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
 8048        ISpXMLRecoResult *This,
 8049        const GUID *pAudioFormatId,
 8050        const WAVEFORMATEX *pWaveFormatEx);
 8051
 8052    HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
 8053        ISpXMLRecoResult *This,
 8054        ISpRecoContext **ppRecoContext);
 8055
 8056    /*** ISpXMLRecoResult methods ***/
 8057    HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
 8058        ISpXMLRecoResult *This,
 8059        LPWSTR *ppszCoMemXMLResult,
 8060        SPXMLRESULTOPTIONS Options);
 8061
 8062    HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
 8063        ISpXMLRecoResult *This,
 8064        SPSEMANTICERRORINFO *pSemanticErrorInfo);
 8065
 8066    END_INTERFACE
 8067} ISpXMLRecoResultVtbl;
 8068
 8069interface ISpXMLRecoResult {
 8070    CONST_VTBL ISpXMLRecoResultVtbl* lpVtbl;
 8071};
 8072
 8073#ifdef COBJMACROS
 8074#ifndef WIDL_C_INLINE_WRAPPERS
 8075/*** IUnknown methods ***/
 8076#define ISpXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8077#define ISpXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
 8078#define ISpXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
 8079/*** ISpPhrase methods ***/
 8080#define ISpXMLRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 8081#define ISpXMLRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 8082#define ISpXMLRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 8083#define ISpXMLRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 8084/*** ISpRecoResult methods ***/
 8085#define ISpXMLRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
 8086#define ISpXMLRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
 8087#define ISpXMLRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
 8088#define ISpXMLRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
 8089#define ISpXMLRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
 8090#define ISpXMLRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
 8091#define ISpXMLRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
 8092/*** ISpXMLRecoResult methods ***/
 8093#define ISpXMLRecoResult_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
 8094#define ISpXMLRecoResult_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
 8095#else
 8096/*** IUnknown methods ***/
 8097static inline HRESULT ISpXMLRecoResult_QueryInterface(ISpXMLRecoResult* This,REFIID riid,void **ppvObject) {
 8098    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8099}
 8100static inline ULONG ISpXMLRecoResult_AddRef(ISpXMLRecoResult* This) {
 8101    return This->lpVtbl->AddRef(This);
 8102}
 8103static inline ULONG ISpXMLRecoResult_Release(ISpXMLRecoResult* This) {
 8104    return This->lpVtbl->Release(This);
 8105}
 8106/*** ISpPhrase methods ***/
 8107static inline HRESULT ISpXMLRecoResult_GetPhrase(ISpXMLRecoResult* This,SPPHRASE **ppCoMemPhrase) {
 8108    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 8109}
 8110static inline HRESULT ISpXMLRecoResult_GetSerializedPhrase(ISpXMLRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 8111    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 8112}
 8113static inline HRESULT ISpXMLRecoResult_GetText(ISpXMLRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 8114    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 8115}
 8116static inline HRESULT ISpXMLRecoResult_Discard(ISpXMLRecoResult* This,DWORD dwValueTypes) {
 8117    return This->lpVtbl->Discard(This,dwValueTypes);
 8118}
 8119/*** ISpRecoResult methods ***/
 8120static inline HRESULT ISpXMLRecoResult_GetResultTimes(ISpXMLRecoResult* This,SPRECORESULTTIMES *pTimes) {
 8121    return This->lpVtbl->GetResultTimes(This,pTimes);
 8122}
 8123static inline HRESULT ISpXMLRecoResult_GetAlternates(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
 8124    return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
 8125}
 8126static inline HRESULT ISpXMLRecoResult_GetAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
 8127    return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
 8128}
 8129static inline HRESULT ISpXMLRecoResult_SpeakAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
 8130    return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
 8131}
 8132static inline HRESULT ISpXMLRecoResult_Serialize(ISpXMLRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
 8133    return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
 8134}
 8135static inline HRESULT ISpXMLRecoResult_ScaleAudio(ISpXMLRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
 8136    return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
 8137}
 8138static inline HRESULT ISpXMLRecoResult_GetRecoContext(ISpXMLRecoResult* This,ISpRecoContext **ppRecoContext) {
 8139    return This->lpVtbl->GetRecoContext(This,ppRecoContext);
 8140}
 8141/*** ISpXMLRecoResult methods ***/
 8142static inline HRESULT ISpXMLRecoResult_GetXMLResult(ISpXMLRecoResult* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
 8143    return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
 8144}
 8145static inline HRESULT ISpXMLRecoResult_GetXMLErrorInfo(ISpXMLRecoResult* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
 8146    return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
 8147}
 8148#endif
 8149#endif
 8150
 8151#endif
 8152
 8153
 8154#endif  /* __ISpXMLRecoResult_INTERFACE_DEFINED__ */
 8155
 8156typedef struct tagSPTEXTSELECTIONINFO {
 8157    ULONG ulStartActiveOffset;
 8158    ULONG cchActiveChars;
 8159    ULONG ulStartSelection;
 8160    ULONG cchSelection;
 8161} SPTEXTSELECTIONINFO;
 8162typedef enum SPWORDPRONOUNCEABLE {
 8163    SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0,
 8164    SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1,
 8165    SPWP_KNOWN_WORD_PRONOUNCEABLE = 2
 8166} SPWORDPRONOUNCEABLE;
 8167typedef enum SPGRAMMARSTATE {
 8168    SPGS_DISABLED = 0,
 8169    SPGS_ENABLED = 1,
 8170    SPGS_EXCLUSIVE = 3
 8171} SPGRAMMARSTATE;
 8172typedef enum SPCONTEXTSTATE {
 8173    SPCS_DISABLED = 0,
 8174    SPCS_ENABLED = 1
 8175} SPCONTEXTSTATE;
 8176typedef enum SPRULESTATE {
 8177    SPRS_INACTIVE = 0,
 8178    SPRS_ACTIVE = 1,
 8179    SPRS_ACTIVE_WITH_AUTO_PAUSE = 3,
 8180    SPRS_ACTIVE_USER_DELIMITED = 4
 8181} SPRULESTATE;
 8182#define SP_STREAMPOS_ASAP (0)
 8183
 8184#define SP_STREAMPOS_REALTIME (-1)
 8185
 8186#define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE) (-1)
 8187#define SPRULETRANS_WILDCARD (SPSTATEHANDLE) (-2)
 8188#define SPRULETRANS_DICTATION (SPSTATEHANDLE) (-3)
 8189typedef enum SPGRAMMARWORDTYPE {
 8190    SPWT_DISPLAY = 0,
 8191    SPWT_LEXICAL = 1,
 8192    SPWT_PRONUNCIATION = 2,
 8193    SPWT_LEXICAL_NO_SPECIAL_CHARS = 3
 8194} SPGRAMMARWORDTYPE;
 8195typedef struct tagSPPROPERTYINFO {
 8196    LPCWSTR pszName;
 8197    ULONG ulId;
 8198    LPCWSTR pszValue;
 8199    VARIANT vValue;
 8200} SPPROPERTYINFO;
 8201typedef enum SPCFGRULEATTRIBUTES {
 8202    SPRAF_TopLevel = 0x1,
 8203    SPRAF_Active = 0x2,
 8204    SPRAF_Export = 0x4,
 8205    SPRAF_Import = 0x8,
 8206    SPRAF_Interpreter = 0x10,
 8207    SPRAF_Dynamic = 0x20,
 8208    SPRAF_Root = 0x40,
 8209    SPRAF_AutoPause = 0x10000,
 8210    SPRAF_UserDelimited = 0x20000
 8211} SPCFGRULEATTRIBUTES;
 8212/*****************************************************************************
 8213 * ISpGrammarBuilder interface
 8214 */
 8215#ifndef __ISpGrammarBuilder_INTERFACE_DEFINED__
 8216#define __ISpGrammarBuilder_INTERFACE_DEFINED__
 8217
 8218DEFINE_GUID(IID_ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68);
 8219#if defined(__cplusplus) && !defined(CINTERFACE)
 8220MIDL_INTERFACE("8137828f-591a-4a42-be58-49ea7ebaac68")
 8221ISpGrammarBuilder : public IUnknown
 8222{
 8223    virtual HRESULT STDMETHODCALLTYPE ResetGrammar(
 8224        WORD NewLanguage) = 0;
 8225
 8226    virtual HRESULT STDMETHODCALLTYPE GetRule(
 8227        LPCWSTR pszRuleName,
 8228        DWORD dwRuleId,
 8229        DWORD dwAttributes,
 8230        WINBOOL fCreateIfNotExist,
 8231        SPSTATEHANDLE *phInitialState) = 0;
 8232
 8233    virtual HRESULT STDMETHODCALLTYPE ClearRule(
 8234        SPSTATEHANDLE hState) = 0;
 8235
 8236    virtual HRESULT STDMETHODCALLTYPE CreateNewState(
 8237        SPSTATEHANDLE hState,
 8238        SPSTATEHANDLE *phState) = 0;
 8239
 8240    virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
 8241        SPSTATEHANDLE hFromState,
 8242        SPSTATEHANDLE hToState,
 8243        LPCWSTR psz,
 8244        LPCWSTR pszSeparators,
 8245        SPGRAMMARWORDTYPE eWordType,
 8246        float Weight,
 8247        const SPPROPERTYINFO *pPropInfo) = 0;
 8248
 8249    virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
 8250        SPSTATEHANDLE hFromState,
 8251        SPSTATEHANDLE hToState,
 8252        SPSTATEHANDLE hRule,
 8253        float Weight,
 8254        const SPPROPERTYINFO *pPropInfo) = 0;
 8255
 8256    virtual HRESULT STDMETHODCALLTYPE AddResource(
 8257        SPSTATEHANDLE hRuleState,
 8258        LPCWSTR pszResourceName,
 8259        LPCWSTR pszResourceValue) = 0;
 8260
 8261    virtual HRESULT STDMETHODCALLTYPE Commit(
 8262        DWORD dwReserved) = 0;
 8263
 8264};
 8265#ifdef __CRT_UUID_DECL
 8266__CRT_UUID_DECL(ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68)
 8267#endif
 8268#else
 8269typedef struct ISpGrammarBuilderVtbl {
 8270    BEGIN_INTERFACE
 8271
 8272    /*** IUnknown methods ***/
 8273    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8274        ISpGrammarBuilder *This,
 8275        REFIID riid,
 8276        void **ppvObject);
 8277
 8278    ULONG (STDMETHODCALLTYPE *AddRef)(
 8279        ISpGrammarBuilder *This);
 8280
 8281    ULONG (STDMETHODCALLTYPE *Release)(
 8282        ISpGrammarBuilder *This);
 8283
 8284    /*** ISpGrammarBuilder methods ***/
 8285    HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
 8286        ISpGrammarBuilder *This,
 8287        WORD NewLanguage);
 8288
 8289    HRESULT (STDMETHODCALLTYPE *GetRule)(
 8290        ISpGrammarBuilder *This,
 8291        LPCWSTR pszRuleName,
 8292        DWORD dwRuleId,
 8293        DWORD dwAttributes,
 8294        WINBOOL fCreateIfNotExist,
 8295        SPSTATEHANDLE *phInitialState);
 8296
 8297    HRESULT (STDMETHODCALLTYPE *ClearRule)(
 8298        ISpGrammarBuilder *This,
 8299        SPSTATEHANDLE hState);
 8300
 8301    HRESULT (STDMETHODCALLTYPE *CreateNewState)(
 8302        ISpGrammarBuilder *This,
 8303        SPSTATEHANDLE hState,
 8304        SPSTATEHANDLE *phState);
 8305
 8306    HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
 8307        ISpGrammarBuilder *This,
 8308        SPSTATEHANDLE hFromState,
 8309        SPSTATEHANDLE hToState,
 8310        LPCWSTR psz,
 8311        LPCWSTR pszSeparators,
 8312        SPGRAMMARWORDTYPE eWordType,
 8313        float Weight,
 8314        const SPPROPERTYINFO *pPropInfo);
 8315
 8316    HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
 8317        ISpGrammarBuilder *This,
 8318        SPSTATEHANDLE hFromState,
 8319        SPSTATEHANDLE hToState,
 8320        SPSTATEHANDLE hRule,
 8321        float Weight,
 8322        const SPPROPERTYINFO *pPropInfo);
 8323
 8324    HRESULT (STDMETHODCALLTYPE *AddResource)(
 8325        ISpGrammarBuilder *This,
 8326        SPSTATEHANDLE hRuleState,
 8327        LPCWSTR pszResourceName,
 8328        LPCWSTR pszResourceValue);
 8329
 8330    HRESULT (STDMETHODCALLTYPE *Commit)(
 8331        ISpGrammarBuilder *This,
 8332        DWORD dwReserved);
 8333
 8334    END_INTERFACE
 8335} ISpGrammarBuilderVtbl;
 8336
 8337interface ISpGrammarBuilder {
 8338    CONST_VTBL ISpGrammarBuilderVtbl* lpVtbl;
 8339};
 8340
 8341#ifdef COBJMACROS
 8342#ifndef WIDL_C_INLINE_WRAPPERS
 8343/*** IUnknown methods ***/
 8344#define ISpGrammarBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8345#define ISpGrammarBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
 8346#define ISpGrammarBuilder_Release(This) (This)->lpVtbl->Release(This)
 8347/*** ISpGrammarBuilder methods ***/
 8348#define ISpGrammarBuilder_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
 8349#define ISpGrammarBuilder_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
 8350#define ISpGrammarBuilder_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
 8351#define ISpGrammarBuilder_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
 8352#define ISpGrammarBuilder_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
 8353#define ISpGrammarBuilder_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
 8354#define ISpGrammarBuilder_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
 8355#define ISpGrammarBuilder_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
 8356#else
 8357/*** IUnknown methods ***/
 8358static inline HRESULT ISpGrammarBuilder_QueryInterface(ISpGrammarBuilder* This,REFIID riid,void **ppvObject) {
 8359    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8360}
 8361static inline ULONG ISpGrammarBuilder_AddRef(ISpGrammarBuilder* This) {
 8362    return This->lpVtbl->AddRef(This);
 8363}
 8364static inline ULONG ISpGrammarBuilder_Release(ISpGrammarBuilder* This) {
 8365    return This->lpVtbl->Release(This);
 8366}
 8367/*** ISpGrammarBuilder methods ***/
 8368static inline HRESULT ISpGrammarBuilder_ResetGrammar(ISpGrammarBuilder* This,WORD NewLanguage) {
 8369    return This->lpVtbl->ResetGrammar(This,NewLanguage);
 8370}
 8371static inline HRESULT ISpGrammarBuilder_GetRule(ISpGrammarBuilder* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
 8372    return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
 8373}
 8374static inline HRESULT ISpGrammarBuilder_ClearRule(ISpGrammarBuilder* This,SPSTATEHANDLE hState) {
 8375    return This->lpVtbl->ClearRule(This,hState);
 8376}
 8377static inline HRESULT ISpGrammarBuilder_CreateNewState(ISpGrammarBuilder* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
 8378    return This->lpVtbl->CreateNewState(This,hState,phState);
 8379}
 8380static inline HRESULT ISpGrammarBuilder_AddWordTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
 8381    return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
 8382}
 8383static inline HRESULT ISpGrammarBuilder_AddRuleTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
 8384    return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
 8385}
 8386static inline HRESULT ISpGrammarBuilder_AddResource(ISpGrammarBuilder* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
 8387    return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
 8388}
 8389static inline HRESULT ISpGrammarBuilder_Commit(ISpGrammarBuilder* This,DWORD dwReserved) {
 8390    return This->lpVtbl->Commit(This,dwReserved);
 8391}
 8392#endif
 8393#endif
 8394
 8395#endif
 8396
 8397
 8398#endif  /* __ISpGrammarBuilder_INTERFACE_DEFINED__ */
 8399
 8400typedef enum SPLOADOPTIONS {
 8401    SPLO_STATIC = 0,
 8402    SPLO_DYNAMIC = 1
 8403} SPLOADOPTIONS;
 8404/*****************************************************************************
 8405 * ISpRecoGrammar interface
 8406 */
 8407#ifndef __ISpRecoGrammar_INTERFACE_DEFINED__
 8408#define __ISpRecoGrammar_INTERFACE_DEFINED__
 8409
 8410DEFINE_GUID(IID_ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02);
 8411#if defined(__cplusplus) && !defined(CINTERFACE)
 8412MIDL_INTERFACE("2177db29-7f45-47d0-8554-067e91c80502")
 8413ISpRecoGrammar : public ISpGrammarBuilder
 8414{
 8415    virtual HRESULT STDMETHODCALLTYPE GetGrammarId(
 8416        ULONGLONG *pullGrammarId) = 0;
 8417
 8418    virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
 8419        ISpRecoContext **ppRecoCtxt) = 0;
 8420
 8421    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile(
 8422        LPCWSTR pszFileName,
 8423        SPLOADOPTIONS Options) = 0;
 8424
 8425    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromObject(
 8426        REFCLSID rcid,
 8427        LPCWSTR pszGrammarName,
 8428        SPLOADOPTIONS Options) = 0;
 8429
 8430    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromResource(
 8431        HMODULE hModule,
 8432        LPCWSTR pszResourceName,
 8433        LPCWSTR pszResourceType,
 8434        WORD wLanguage,
 8435        SPLOADOPTIONS Options) = 0;
 8436
 8437    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory(
 8438        const SPBINARYGRAMMAR *pGrammar,
 8439        SPLOADOPTIONS Options) = 0;
 8440
 8441    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromProprietaryGrammar(
 8442        REFGUID rguidParam,
 8443        LPCWSTR pszStringParam,
 8444        const void *pvDataPrarm,
 8445        ULONG cbDataSize,
 8446        SPLOADOPTIONS Options) = 0;
 8447
 8448    virtual HRESULT STDMETHODCALLTYPE SetRuleState(
 8449        LPCWSTR pszName,
 8450        void *pReserved,
 8451        SPRULESTATE NewState) = 0;
 8452
 8453    virtual HRESULT STDMETHODCALLTYPE SetRuleIdState(
 8454        ULONG ulRuleId,
 8455        SPRULESTATE NewState) = 0;
 8456
 8457    virtual HRESULT STDMETHODCALLTYPE LoadDictation(
 8458        LPCWSTR pszTopicName,
 8459        SPLOADOPTIONS Options) = 0;
 8460
 8461    virtual HRESULT STDMETHODCALLTYPE UnloadDictation(
 8462        ) = 0;
 8463
 8464    virtual HRESULT STDMETHODCALLTYPE SetDictationState(
 8465        SPRULESTATE NewState) = 0;
 8466
 8467    virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
 8468        const WCHAR *pText,
 8469        ULONG cchText,
 8470        const SPTEXTSELECTIONINFO *pInfo) = 0;
 8471
 8472    virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
 8473        const SPTEXTSELECTIONINFO *pInfo) = 0;
 8474
 8475    virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
 8476        LPCWSTR pszWord,
 8477        SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
 8478
 8479    virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
 8480        SPGRAMMARSTATE eGrammarState) = 0;
 8481
 8482    virtual HRESULT STDMETHODCALLTYPE SaveCmd(
 8483        IStream *pStream,
 8484        LPWSTR *ppszCoMemErrorText) = 0;
 8485
 8486    virtual HRESULT STDMETHODCALLTYPE GetGrammarState(
 8487        SPGRAMMARSTATE *peGrammarState) = 0;
 8488
 8489};
 8490#ifdef __CRT_UUID_DECL
 8491__CRT_UUID_DECL(ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02)
 8492#endif
 8493#else
 8494typedef struct ISpRecoGrammarVtbl {
 8495    BEGIN_INTERFACE
 8496
 8497    /*** IUnknown methods ***/
 8498    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8499        ISpRecoGrammar *This,
 8500        REFIID riid,
 8501        void **ppvObject);
 8502
 8503    ULONG (STDMETHODCALLTYPE *AddRef)(
 8504        ISpRecoGrammar *This);
 8505
 8506    ULONG (STDMETHODCALLTYPE *Release)(
 8507        ISpRecoGrammar *This);
 8508
 8509    /*** ISpGrammarBuilder methods ***/
 8510    HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
 8511        ISpRecoGrammar *This,
 8512        WORD NewLanguage);
 8513
 8514    HRESULT (STDMETHODCALLTYPE *GetRule)(
 8515        ISpRecoGrammar *This,
 8516        LPCWSTR pszRuleName,
 8517        DWORD dwRuleId,
 8518        DWORD dwAttributes,
 8519        WINBOOL fCreateIfNotExist,
 8520        SPSTATEHANDLE *phInitialState);
 8521
 8522    HRESULT (STDMETHODCALLTYPE *ClearRule)(
 8523        ISpRecoGrammar *This,
 8524        SPSTATEHANDLE hState);
 8525
 8526    HRESULT (STDMETHODCALLTYPE *CreateNewState)(
 8527        ISpRecoGrammar *This,
 8528        SPSTATEHANDLE hState,
 8529        SPSTATEHANDLE *phState);
 8530
 8531    HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
 8532        ISpRecoGrammar *This,
 8533        SPSTATEHANDLE hFromState,
 8534        SPSTATEHANDLE hToState,
 8535        LPCWSTR psz,
 8536        LPCWSTR pszSeparators,
 8537        SPGRAMMARWORDTYPE eWordType,
 8538        float Weight,
 8539        const SPPROPERTYINFO *pPropInfo);
 8540
 8541    HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
 8542        ISpRecoGrammar *This,
 8543        SPSTATEHANDLE hFromState,
 8544        SPSTATEHANDLE hToState,
 8545        SPSTATEHANDLE hRule,
 8546        float Weight,
 8547        const SPPROPERTYINFO *pPropInfo);
 8548
 8549    HRESULT (STDMETHODCALLTYPE *AddResource)(
 8550        ISpRecoGrammar *This,
 8551        SPSTATEHANDLE hRuleState,
 8552        LPCWSTR pszResourceName,
 8553        LPCWSTR pszResourceValue);
 8554
 8555    HRESULT (STDMETHODCALLTYPE *Commit)(
 8556        ISpRecoGrammar *This,
 8557        DWORD dwReserved);
 8558
 8559    /*** ISpRecoGrammar methods ***/
 8560    HRESULT (STDMETHODCALLTYPE *GetGrammarId)(
 8561        ISpRecoGrammar *This,
 8562        ULONGLONG *pullGrammarId);
 8563
 8564    HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
 8565        ISpRecoGrammar *This,
 8566        ISpRecoContext **ppRecoCtxt);
 8567
 8568    HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile)(
 8569        ISpRecoGrammar *This,
 8570        LPCWSTR pszFileName,
 8571        SPLOADOPTIONS Options);
 8572
 8573    HRESULT (STDMETHODCALLTYPE *LoadCmdFromObject)(
 8574        ISpRecoGrammar *This,
 8575        REFCLSID rcid,
 8576        LPCWSTR pszGrammarName,
 8577        SPLOADOPTIONS Options);
 8578
 8579    HRESULT (STDMETHODCALLTYPE *LoadCmdFromResource)(
 8580        ISpRecoGrammar *This,
 8581        HMODULE hModule,
 8582        LPCWSTR pszResourceName,
 8583        LPCWSTR pszResourceType,
 8584        WORD wLanguage,
 8585        SPLOADOPTIONS Options);
 8586
 8587    HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory)(
 8588        ISpRecoGrammar *This,
 8589        const SPBINARYGRAMMAR *pGrammar,
 8590        SPLOADOPTIONS Options);
 8591
 8592    HRESULT (STDMETHODCALLTYPE *LoadCmdFromProprietaryGrammar)(
 8593        ISpRecoGrammar *This,
 8594        REFGUID rguidParam,
 8595        LPCWSTR pszStringParam,
 8596        const void *pvDataPrarm,
 8597        ULONG cbDataSize,
 8598        SPLOADOPTIONS Options);
 8599
 8600    HRESULT (STDMETHODCALLTYPE *SetRuleState)(
 8601        ISpRecoGrammar *This,
 8602        LPCWSTR pszName,
 8603        void *pReserved,
 8604        SPRULESTATE NewState);
 8605
 8606    HRESULT (STDMETHODCALLTYPE *SetRuleIdState)(
 8607        ISpRecoGrammar *This,
 8608        ULONG ulRuleId,
 8609        SPRULESTATE NewState);
 8610
 8611    HRESULT (STDMETHODCALLTYPE *LoadDictation)(
 8612        ISpRecoGrammar *This,
 8613        LPCWSTR pszTopicName,
 8614        SPLOADOPTIONS Options);
 8615
 8616    HRESULT (STDMETHODCALLTYPE *UnloadDictation)(
 8617        ISpRecoGrammar *This);
 8618
 8619    HRESULT (STDMETHODCALLTYPE *SetDictationState)(
 8620        ISpRecoGrammar *This,
 8621        SPRULESTATE NewState);
 8622
 8623    HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
 8624        ISpRecoGrammar *This,
 8625        const WCHAR *pText,
 8626        ULONG cchText,
 8627        const SPTEXTSELECTIONINFO *pInfo);
 8628
 8629    HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
 8630        ISpRecoGrammar *This,
 8631        const SPTEXTSELECTIONINFO *pInfo);
 8632
 8633    HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
 8634        ISpRecoGrammar *This,
 8635        LPCWSTR pszWord,
 8636        SPWORDPRONOUNCEABLE *pWordPronounceable);
 8637
 8638    HRESULT (STDMETHODCALLTYPE *SetGrammarState)(
 8639        ISpRecoGrammar *This,
 8640        SPGRAMMARSTATE eGrammarState);
 8641
 8642    HRESULT (STDMETHODCALLTYPE *SaveCmd)(
 8643        ISpRecoGrammar *This,
 8644        IStream *pStream,
 8645        LPWSTR *ppszCoMemErrorText);
 8646
 8647    HRESULT (STDMETHODCALLTYPE *GetGrammarState)(
 8648        ISpRecoGrammar *This,
 8649        SPGRAMMARSTATE *peGrammarState);
 8650
 8651    END_INTERFACE
 8652} ISpRecoGrammarVtbl;
 8653
 8654interface ISpRecoGrammar {
 8655    CONST_VTBL ISpRecoGrammarVtbl* lpVtbl;
 8656};
 8657
 8658#ifdef COBJMACROS
 8659#ifndef WIDL_C_INLINE_WRAPPERS
 8660/*** IUnknown methods ***/
 8661#define ISpRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8662#define ISpRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
 8663#define ISpRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
 8664/*** ISpGrammarBuilder methods ***/
 8665#define ISpRecoGrammar_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
 8666#define ISpRecoGrammar_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
 8667#define ISpRecoGrammar_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
 8668#define ISpRecoGrammar_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
 8669#define ISpRecoGrammar_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
 8670#define ISpRecoGrammar_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
 8671#define ISpRecoGrammar_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
 8672#define ISpRecoGrammar_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
 8673/*** ISpRecoGrammar methods ***/
 8674#define ISpRecoGrammar_GetGrammarId(This,pullGrammarId) (This)->lpVtbl->GetGrammarId(This,pullGrammarId)
 8675#define ISpRecoGrammar_GetRecoContext(This,ppRecoCtxt) (This)->lpVtbl->GetRecoContext(This,ppRecoCtxt)
 8676#define ISpRecoGrammar_LoadCmdFromFile(This,pszFileName,Options) (This)->lpVtbl->LoadCmdFromFile(This,pszFileName,Options)
 8677#define ISpRecoGrammar_LoadCmdFromObject(This,rcid,pszGrammarName,Options) (This)->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options)
 8678#define ISpRecoGrammar_LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options) (This)->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
 8679#define ISpRecoGrammar_LoadCmdFromMemory(This,pGrammar,Options) (This)->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options)
 8680#define ISpRecoGrammar_LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options) (This)->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
 8681#define ISpRecoGrammar_SetRuleState(This,pszName,pReserved,NewState) (This)->lpVtbl->SetRuleState(This,pszName,pReserved,NewState)
 8682#define ISpRecoGrammar_SetRuleIdState(This,ulRuleId,NewState) (This)->lpVtbl->SetRuleIdState(This,ulRuleId,NewState)
 8683#define ISpRecoGrammar_LoadDictation(This,pszTopicName,Options) (This)->lpVtbl->LoadDictation(This,pszTopicName,Options)
 8684#define ISpRecoGrammar_UnloadDictation(This) (This)->lpVtbl->UnloadDictation(This)
 8685#define ISpRecoGrammar_SetDictationState(This,NewState) (This)->lpVtbl->SetDictationState(This,NewState)
 8686#define ISpRecoGrammar_SetWordSequenceData(This,pText,cchText,pInfo) (This)->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo)
 8687#define ISpRecoGrammar_SetTextSelection(This,pInfo) (This)->lpVtbl->SetTextSelection(This,pInfo)
 8688#define ISpRecoGrammar_IsPronounceable(This,pszWord,pWordPronounceable) (This)->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable)
 8689#define ISpRecoGrammar_SetGrammarState(This,eGrammarState) (This)->lpVtbl->SetGrammarState(This,eGrammarState)
 8690#define ISpRecoGrammar_SaveCmd(This,pStream,ppszCoMemErrorText) (This)->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText)
 8691#define ISpRecoGrammar_GetGrammarState(This,peGrammarState) (This)->lpVtbl->GetGrammarState(This,peGrammarState)
 8692#else
 8693/*** IUnknown methods ***/
 8694static inline HRESULT ISpRecoGrammar_QueryInterface(ISpRecoGrammar* This,REFIID riid,void **ppvObject) {
 8695    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8696}
 8697static inline ULONG ISpRecoGrammar_AddRef(ISpRecoGrammar* This) {
 8698    return This->lpVtbl->AddRef(This);
 8699}
 8700static inline ULONG ISpRecoGrammar_Release(ISpRecoGrammar* This) {
 8701    return This->lpVtbl->Release(This);
 8702}
 8703/*** ISpGrammarBuilder methods ***/
 8704static inline HRESULT ISpRecoGrammar_ResetGrammar(ISpRecoGrammar* This,WORD NewLanguage) {
 8705    return This->lpVtbl->ResetGrammar(This,NewLanguage);
 8706}
 8707static inline HRESULT ISpRecoGrammar_GetRule(ISpRecoGrammar* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
 8708    return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
 8709}
 8710static inline HRESULT ISpRecoGrammar_ClearRule(ISpRecoGrammar* This,SPSTATEHANDLE hState) {
 8711    return This->lpVtbl->ClearRule(This,hState);
 8712}
 8713static inline HRESULT ISpRecoGrammar_CreateNewState(ISpRecoGrammar* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
 8714    return This->lpVtbl->CreateNewState(This,hState,phState);
 8715}
 8716static inline HRESULT ISpRecoGrammar_AddWordTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
 8717    return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
 8718}
 8719static inline HRESULT ISpRecoGrammar_AddRuleTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
 8720    return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
 8721}
 8722static inline HRESULT ISpRecoGrammar_AddResource(ISpRecoGrammar* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
 8723    return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
 8724}
 8725static inline HRESULT ISpRecoGrammar_Commit(ISpRecoGrammar* This,DWORD dwReserved) {
 8726    return This->lpVtbl->Commit(This,dwReserved);
 8727}
 8728/*** ISpRecoGrammar methods ***/
 8729static inline HRESULT ISpRecoGrammar_GetGrammarId(ISpRecoGrammar* This,ULONGLONG *pullGrammarId) {
 8730    return This->lpVtbl->GetGrammarId(This,pullGrammarId);
 8731}
 8732static inline HRESULT ISpRecoGrammar_GetRecoContext(ISpRecoGrammar* This,ISpRecoContext **ppRecoCtxt) {
 8733    return This->lpVtbl->GetRecoContext(This,ppRecoCtxt);
 8734}
 8735static inline HRESULT ISpRecoGrammar_LoadCmdFromFile(ISpRecoGrammar* This,LPCWSTR pszFileName,SPLOADOPTIONS Options) {
 8736    return This->lpVtbl->LoadCmdFromFile(This,pszFileName,Options);
 8737}
 8738static inline HRESULT ISpRecoGrammar_LoadCmdFromObject(ISpRecoGrammar* This,REFCLSID rcid,LPCWSTR pszGrammarName,SPLOADOPTIONS Options) {
 8739    return This->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options);
 8740}
 8741static inline HRESULT ISpRecoGrammar_LoadCmdFromResource(ISpRecoGrammar* This,HMODULE hModule,LPCWSTR pszResourceName,LPCWSTR pszResourceType,WORD wLanguage,SPLOADOPTIONS Options) {
 8742    return This->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options);
 8743}
 8744static inline HRESULT ISpRecoGrammar_LoadCmdFromMemory(ISpRecoGrammar* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options) {
 8745    return This->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options);
 8746}
 8747static inline HRESULT ISpRecoGrammar_LoadCmdFromProprietaryGrammar(ISpRecoGrammar* This,REFGUID rguidParam,LPCWSTR pszStringParam,const void *pvDataPrarm,ULONG cbDataSize,SPLOADOPTIONS Options) {
 8748    return This->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options);
 8749}
 8750static inline HRESULT ISpRecoGrammar_SetRuleState(ISpRecoGrammar* This,LPCWSTR pszName,void *pReserved,SPRULESTATE NewState) {
 8751    return This->lpVtbl->SetRuleState(This,pszName,pReserved,NewState);
 8752}
 8753static inline HRESULT ISpRecoGrammar_SetRuleIdState(ISpRecoGrammar* This,ULONG ulRuleId,SPRULESTATE NewState) {
 8754    return This->lpVtbl->SetRuleIdState(This,ulRuleId,NewState);
 8755}
 8756static inline HRESULT ISpRecoGrammar_LoadDictation(ISpRecoGrammar* This,LPCWSTR pszTopicName,SPLOADOPTIONS Options) {
 8757    return This->lpVtbl->LoadDictation(This,pszTopicName,Options);
 8758}
 8759static inline HRESULT ISpRecoGrammar_UnloadDictation(ISpRecoGrammar* This) {
 8760    return This->lpVtbl->UnloadDictation(This);
 8761}
 8762static inline HRESULT ISpRecoGrammar_SetDictationState(ISpRecoGrammar* This,SPRULESTATE NewState) {
 8763    return This->lpVtbl->SetDictationState(This,NewState);
 8764}
 8765static inline HRESULT ISpRecoGrammar_SetWordSequenceData(ISpRecoGrammar* This,const WCHAR *pText,ULONG cchText,const SPTEXTSELECTIONINFO *pInfo) {
 8766    return This->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo);
 8767}
 8768static inline HRESULT ISpRecoGrammar_SetTextSelection(ISpRecoGrammar* This,const SPTEXTSELECTIONINFO *pInfo) {
 8769    return This->lpVtbl->SetTextSelection(This,pInfo);
 8770}
 8771static inline HRESULT ISpRecoGrammar_IsPronounceable(ISpRecoGrammar* This,LPCWSTR pszWord,SPWORDPRONOUNCEABLE *pWordPronounceable) {
 8772    return This->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable);
 8773}
 8774static inline HRESULT ISpRecoGrammar_SetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE eGrammarState) {
 8775    return This->lpVtbl->SetGrammarState(This,eGrammarState);
 8776}
 8777static inline HRESULT ISpRecoGrammar_SaveCmd(ISpRecoGrammar* This,IStream *pStream,LPWSTR *ppszCoMemErrorText) {
 8778    return This->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText);
 8779}
 8780static inline HRESULT ISpRecoGrammar_GetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE *peGrammarState) {
 8781    return This->lpVtbl->GetGrammarState(This,peGrammarState);
 8782}
 8783#endif
 8784#endif
 8785
 8786#endif
 8787
 8788
 8789#endif  /* __ISpRecoGrammar_INTERFACE_DEFINED__ */
 8790
 8791typedef enum SPMATCHINGMODE {
 8792    AllWords = 0,
 8793    Subsequence = 1,
 8794    OrderedSubset = 3,
 8795    SubsequenceContentRequired = 5,
 8796    OrderedSubsetContentRequired = 7
 8797} SPMATCHINGMODE;
 8798typedef enum PHONETICALPHABET {
 8799    PA_Ipa = 0,
 8800    PA_Ups = 1,
 8801    PA_Sapi = 2
 8802} PHONETICALPHABET;
 8803/*****************************************************************************
 8804 * ISpGrammarBuilder2 interface
 8805 */
 8806#ifndef __ISpGrammarBuilder2_INTERFACE_DEFINED__
 8807#define __ISpGrammarBuilder2_INTERFACE_DEFINED__
 8808
 8809DEFINE_GUID(IID_ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60);
 8810#if defined(__cplusplus) && !defined(CINTERFACE)
 8811MIDL_INTERFACE("8ab10026-20cc-4b20-8c22-a49c9ba78f60")
 8812ISpGrammarBuilder2 : public IUnknown
 8813{
 8814    virtual HRESULT STDMETHODCALLTYPE AddTextSubset(
 8815        SPSTATEHANDLE hFromState,
 8816        SPSTATEHANDLE hToState,
 8817        LPCWSTR psz,
 8818        SPMATCHINGMODE eMatchMode) = 0;
 8819
 8820    virtual HRESULT STDMETHODCALLTYPE SetPhoneticAlphabet(
 8821        PHONETICALPHABET phoneticALphabet) = 0;
 8822
 8823};
 8824#ifdef __CRT_UUID_DECL
 8825__CRT_UUID_DECL(ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60)
 8826#endif
 8827#else
 8828typedef struct ISpGrammarBuilder2Vtbl {
 8829    BEGIN_INTERFACE
 8830
 8831    /*** IUnknown methods ***/
 8832    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8833        ISpGrammarBuilder2 *This,
 8834        REFIID riid,
 8835        void **ppvObject);
 8836
 8837    ULONG (STDMETHODCALLTYPE *AddRef)(
 8838        ISpGrammarBuilder2 *This);
 8839
 8840    ULONG (STDMETHODCALLTYPE *Release)(
 8841        ISpGrammarBuilder2 *This);
 8842
 8843    /*** ISpGrammarBuilder2 methods ***/
 8844    HRESULT (STDMETHODCALLTYPE *AddTextSubset)(
 8845        ISpGrammarBuilder2 *This,
 8846        SPSTATEHANDLE hFromState,
 8847        SPSTATEHANDLE hToState,
 8848        LPCWSTR psz,
 8849        SPMATCHINGMODE eMatchMode);
 8850
 8851    HRESULT (STDMETHODCALLTYPE *SetPhoneticAlphabet)(
 8852        ISpGrammarBuilder2 *This,
 8853        PHONETICALPHABET phoneticALphabet);
 8854
 8855    END_INTERFACE
 8856} ISpGrammarBuilder2Vtbl;
 8857
 8858interface ISpGrammarBuilder2 {
 8859    CONST_VTBL ISpGrammarBuilder2Vtbl* lpVtbl;
 8860};
 8861
 8862#ifdef COBJMACROS
 8863#ifndef WIDL_C_INLINE_WRAPPERS
 8864/*** IUnknown methods ***/
 8865#define ISpGrammarBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8866#define ISpGrammarBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
 8867#define ISpGrammarBuilder2_Release(This) (This)->lpVtbl->Release(This)
 8868/*** ISpGrammarBuilder2 methods ***/
 8869#define ISpGrammarBuilder2_AddTextSubset(This,hFromState,hToState,psz,eMatchMode) (This)->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode)
 8870#define ISpGrammarBuilder2_SetPhoneticAlphabet(This,phoneticALphabet) (This)->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet)
 8871#else
 8872/*** IUnknown methods ***/
 8873static inline HRESULT ISpGrammarBuilder2_QueryInterface(ISpGrammarBuilder2* This,REFIID riid,void **ppvObject) {
 8874    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8875}
 8876static inline ULONG ISpGrammarBuilder2_AddRef(ISpGrammarBuilder2* This) {
 8877    return This->lpVtbl->AddRef(This);
 8878}
 8879static inline ULONG ISpGrammarBuilder2_Release(ISpGrammarBuilder2* This) {
 8880    return This->lpVtbl->Release(This);
 8881}
 8882/*** ISpGrammarBuilder2 methods ***/
 8883static inline HRESULT ISpGrammarBuilder2_AddTextSubset(ISpGrammarBuilder2* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,SPMATCHINGMODE eMatchMode) {
 8884    return This->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode);
 8885}
 8886static inline HRESULT ISpGrammarBuilder2_SetPhoneticAlphabet(ISpGrammarBuilder2* This,PHONETICALPHABET phoneticALphabet) {
 8887    return This->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet);
 8888}
 8889#endif
 8890#endif
 8891
 8892#endif
 8893
 8894
 8895#endif  /* __ISpGrammarBuilder2_INTERFACE_DEFINED__ */
 8896
 8897#define SPRP_NORMAL 0
 8898/*****************************************************************************
 8899 * ISpRecoGrammar2 interface
 8900 */
 8901#ifndef __ISpRecoGrammar2_INTERFACE_DEFINED__
 8902#define __ISpRecoGrammar2_INTERFACE_DEFINED__
 8903
 8904DEFINE_GUID(IID_ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3);
 8905#if defined(__cplusplus) && !defined(CINTERFACE)
 8906MIDL_INTERFACE("4b37bc9e-9ed6-44a3-93d3-18f022b79ec3")
 8907ISpRecoGrammar2 : public IUnknown
 8908{
 8909    virtual HRESULT STDMETHODCALLTYPE GetRules(
 8910        SPRULE **ppCoMemRules,
 8911        UINT *puNumRules) = 0;
 8912
 8913    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile2(
 8914        LPCWSTR pszFileName,
 8915        SPLOADOPTIONS Options,
 8916        LPCWSTR pszSharingUri,
 8917        LPCWSTR pszBaseUri) = 0;
 8918
 8919    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory2(
 8920        const SPBINARYGRAMMAR *pGrammar,
 8921        SPLOADOPTIONS Options,
 8922        LPCWSTR pszSharingUri,
 8923        LPCWSTR pszBaseUri) = 0;
 8924
 8925    virtual HRESULT STDMETHODCALLTYPE SetRulePriority(
 8926        LPCWSTR pszRuleName,
 8927        ULONG ulRuleId,
 8928        int nRulePriority) = 0;
 8929
 8930    virtual HRESULT STDMETHODCALLTYPE SetRuleWeight(
 8931        LPCWSTR pszRuleName,
 8932        ULONG ulRuleId,
 8933        float flWeight) = 0;
 8934
 8935    virtual HRESULT STDMETHODCALLTYPE SetDictationWeight(
 8936        float flWeight) = 0;
 8937
 8938    virtual HRESULT STDMETHODCALLTYPE SetGrammarLoader(
 8939        ISpeechResourceLoader *pLoader) = 0;
 8940
 8941    virtual HRESULT STDMETHODCALLTYPE SetSMLSecurityManager(
 8942        IInternetSecurityManager *pSMLSecurityManager) = 0;
 8943
 8944};
 8945#ifdef __CRT_UUID_DECL
 8946__CRT_UUID_DECL(ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3)
 8947#endif
 8948#else
 8949typedef struct ISpRecoGrammar2Vtbl {
 8950    BEGIN_INTERFACE
 8951
 8952    /*** IUnknown methods ***/
 8953    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8954        ISpRecoGrammar2 *This,
 8955        REFIID riid,
 8956        void **ppvObject);
 8957
 8958    ULONG (STDMETHODCALLTYPE *AddRef)(
 8959        ISpRecoGrammar2 *This);
 8960
 8961    ULONG (STDMETHODCALLTYPE *Release)(
 8962        ISpRecoGrammar2 *This);
 8963
 8964    /*** ISpRecoGrammar2 methods ***/
 8965    HRESULT (STDMETHODCALLTYPE *GetRules)(
 8966        ISpRecoGrammar2 *This,
 8967        SPRULE **ppCoMemRules,
 8968        UINT *puNumRules);
 8969
 8970    HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile2)(
 8971        ISpRecoGrammar2 *This,
 8972        LPCWSTR pszFileName,
 8973        SPLOADOPTIONS Options,
 8974        LPCWSTR pszSharingUri,
 8975        LPCWSTR pszBaseUri);
 8976
 8977    HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory2)(
 8978        ISpRecoGrammar2 *This,
 8979        const SPBINARYGRAMMAR *pGrammar,
 8980        SPLOADOPTIONS Options,
 8981        LPCWSTR pszSharingUri,
 8982        LPCWSTR pszBaseUri);
 8983
 8984    HRESULT (STDMETHODCALLTYPE *SetRulePriority)(
 8985        ISpRecoGrammar2 *This,
 8986        LPCWSTR pszRuleName,
 8987        ULONG ulRuleId,
 8988        int nRulePriority);
 8989
 8990    HRESULT (STDMETHODCALLTYPE *SetRuleWeight)(
 8991        ISpRecoGrammar2 *This,
 8992        LPCWSTR pszRuleName,
 8993        ULONG ulRuleId,
 8994        float flWeight);
 8995
 8996    HRESULT (STDMETHODCALLTYPE *SetDictationWeight)(
 8997        ISpRecoGrammar2 *This,
 8998        float flWeight);
 8999
 9000    HRESULT (STDMETHODCALLTYPE *SetGrammarLoader)(
 9001        ISpRecoGrammar2 *This,
 9002        ISpeechResourceLoader *pLoader);
 9003
 9004    HRESULT (STDMETHODCALLTYPE *SetSMLSecurityManager)(
 9005        ISpRecoGrammar2 *This,
 9006        IInternetSecurityManager *pSMLSecurityManager);
 9007
 9008    END_INTERFACE
 9009} ISpRecoGrammar2Vtbl;
 9010
 9011interface ISpRecoGrammar2 {
 9012    CONST_VTBL ISpRecoGrammar2Vtbl* lpVtbl;
 9013};
 9014
 9015#ifdef COBJMACROS
 9016#ifndef WIDL_C_INLINE_WRAPPERS
 9017/*** IUnknown methods ***/
 9018#define ISpRecoGrammar2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9019#define ISpRecoGrammar2_AddRef(This) (This)->lpVtbl->AddRef(This)
 9020#define ISpRecoGrammar2_Release(This) (This)->lpVtbl->Release(This)
 9021/*** ISpRecoGrammar2 methods ***/
 9022#define ISpRecoGrammar2_GetRules(This,ppCoMemRules,puNumRules) (This)->lpVtbl->GetRules(This,ppCoMemRules,puNumRules)
 9023#define ISpRecoGrammar2_LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri)
 9024#define ISpRecoGrammar2_LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri)
 9025#define ISpRecoGrammar2_SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority) (This)->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority)
 9026#define ISpRecoGrammar2_SetRuleWeight(This,pszRuleName,ulRuleId,flWeight) (This)->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight)
 9027#define ISpRecoGrammar2_SetDictationWeight(This,flWeight) (This)->lpVtbl->SetDictationWeight(This,flWeight)
 9028#define ISpRecoGrammar2_SetGrammarLoader(This,pLoader) (This)->lpVtbl->SetGrammarLoader(This,pLoader)
 9029#define ISpRecoGrammar2_SetSMLSecurityManager(This,pSMLSecurityManager) (This)->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager)
 9030#else
 9031/*** IUnknown methods ***/
 9032static inline HRESULT ISpRecoGrammar2_QueryInterface(ISpRecoGrammar2* This,REFIID riid,void **ppvObject) {
 9033    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9034}
 9035static inline ULONG ISpRecoGrammar2_AddRef(ISpRecoGrammar2* This) {
 9036    return This->lpVtbl->AddRef(This);
 9037}
 9038static inline ULONG ISpRecoGrammar2_Release(ISpRecoGrammar2* This) {
 9039    return This->lpVtbl->Release(This);
 9040}
 9041/*** ISpRecoGrammar2 methods ***/
 9042static inline HRESULT ISpRecoGrammar2_GetRules(ISpRecoGrammar2* This,SPRULE **ppCoMemRules,UINT *puNumRules) {
 9043    return This->lpVtbl->GetRules(This,ppCoMemRules,puNumRules);
 9044}
 9045static inline HRESULT ISpRecoGrammar2_LoadCmdFromFile2(ISpRecoGrammar2* This,LPCWSTR pszFileName,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
 9046    return This->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri);
 9047}
 9048static inline HRESULT ISpRecoGrammar2_LoadCmdFromMemory2(ISpRecoGrammar2* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
 9049    return This->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri);
 9050}
 9051static inline HRESULT ISpRecoGrammar2_SetRulePriority(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,int nRulePriority) {
 9052    return This->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority);
 9053}
 9054static inline HRESULT ISpRecoGrammar2_SetRuleWeight(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,float flWeight) {
 9055    return This->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight);
 9056}
 9057static inline HRESULT ISpRecoGrammar2_SetDictationWeight(ISpRecoGrammar2* This,float flWeight) {
 9058    return This->lpVtbl->SetDictationWeight(This,flWeight);
 9059}
 9060static inline HRESULT ISpRecoGrammar2_SetGrammarLoader(ISpRecoGrammar2* This,ISpeechResourceLoader *pLoader) {
 9061    return This->lpVtbl->SetGrammarLoader(This,pLoader);
 9062}
 9063static inline HRESULT ISpRecoGrammar2_SetSMLSecurityManager(ISpRecoGrammar2* This,IInternetSecurityManager *pSMLSecurityManager) {
 9064    return This->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager);
 9065}
 9066#endif
 9067#endif
 9068
 9069#endif
 9070
 9071
 9072#endif  /* __ISpRecoGrammar2_INTERFACE_DEFINED__ */
 9073
 9074/*****************************************************************************
 9075 * ISpeechResourceLoader interface
 9076 */
 9077#ifndef __ISpeechResourceLoader_INTERFACE_DEFINED__
 9078#define __ISpeechResourceLoader_INTERFACE_DEFINED__
 9079
 9080DEFINE_GUID(IID_ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3);
 9081#if defined(__cplusplus) && !defined(CINTERFACE)
 9082MIDL_INTERFACE("b9ac5783-fcd0-4b21-b119-b4f8da8fd2c3")
 9083ISpeechResourceLoader : public IDispatch
 9084{
 9085    virtual HRESULT STDMETHODCALLTYPE LoadResource(
 9086        BSTR bstrResourceUri,
 9087        VARIANT_BOOL fAlwaysReload,
 9088        IUnknown **pStream,
 9089        BSTR *pbstrMIMEType,
 9090        VARIANT_BOOL *pfModified,
 9091        BSTR *pbstrRedirectUrl) = 0;
 9092
 9093    virtual HRESULT STDMETHODCALLTYPE GetLocalCopy(
 9094        BSTR bstrResourceUri,
 9095        BSTR *pbstrLocalPath,
 9096        BSTR *pbstrMIMEType,
 9097        BSTR *pbstrRedirectUrl) = 0;
 9098
 9099    virtual HRESULT STDMETHODCALLTYPE ReleaseLocalCopy(
 9100        BSTR pbstrLocalPath) = 0;
 9101
 9102};
 9103#ifdef __CRT_UUID_DECL
 9104__CRT_UUID_DECL(ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3)
 9105#endif
 9106#else
 9107typedef struct ISpeechResourceLoaderVtbl {
 9108    BEGIN_INTERFACE
 9109
 9110    /*** IUnknown methods ***/
 9111    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9112        ISpeechResourceLoader *This,
 9113        REFIID riid,
 9114        void **ppvObject);
 9115
 9116    ULONG (STDMETHODCALLTYPE *AddRef)(
 9117        ISpeechResourceLoader *This);
 9118
 9119    ULONG (STDMETHODCALLTYPE *Release)(
 9120        ISpeechResourceLoader *This);
 9121
 9122    /*** IDispatch methods ***/
 9123    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
 9124        ISpeechResourceLoader *This,
 9125        UINT *pctinfo);
 9126
 9127    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
 9128        ISpeechResourceLoader *This,
 9129        UINT iTInfo,
 9130        LCID lcid,
 9131        ITypeInfo **ppTInfo);
 9132
 9133    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
 9134        ISpeechResourceLoader *This,
 9135        REFIID riid,
 9136        LPOLESTR *rgszNames,
 9137        UINT cNames,
 9138        LCID lcid,
 9139        DISPID *rgDispId);
 9140
 9141    HRESULT (STDMETHODCALLTYPE *Invoke)(
 9142        ISpeechResourceLoader *This,
 9143        DISPID dispIdMember,
 9144        REFIID riid,
 9145        LCID lcid,
 9146        WORD wFlags,
 9147        DISPPARAMS *pDispParams,
 9148        VARIANT *pVarResult,
 9149        EXCEPINFO *pExcepInfo,
 9150        UINT *puArgErr);
 9151
 9152    /*** ISpeechResourceLoader methods ***/
 9153    HRESULT (STDMETHODCALLTYPE *LoadResource)(
 9154        ISpeechResourceLoader *This,
 9155        BSTR bstrResourceUri,
 9156        VARIANT_BOOL fAlwaysReload,
 9157        IUnknown **pStream,
 9158        BSTR *pbstrMIMEType,
 9159        VARIANT_BOOL *pfModified,
 9160        BSTR *pbstrRedirectUrl);
 9161
 9162    HRESULT (STDMETHODCALLTYPE *GetLocalCopy)(
 9163        ISpeechResourceLoader *This,
 9164        BSTR bstrResourceUri,
 9165        BSTR *pbstrLocalPath,
 9166        BSTR *pbstrMIMEType,
 9167        BSTR *pbstrRedirectUrl);
 9168
 9169    HRESULT (STDMETHODCALLTYPE *ReleaseLocalCopy)(
 9170        ISpeechResourceLoader *This,
 9171        BSTR pbstrLocalPath);
 9172
 9173    END_INTERFACE
 9174} ISpeechResourceLoaderVtbl;
 9175
 9176interface ISpeechResourceLoader {
 9177    CONST_VTBL ISpeechResourceLoaderVtbl* lpVtbl;
 9178};
 9179
 9180#ifdef COBJMACROS
 9181#ifndef WIDL_C_INLINE_WRAPPERS
 9182/*** IUnknown methods ***/
 9183#define ISpeechResourceLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9184#define ISpeechResourceLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
 9185#define ISpeechResourceLoader_Release(This) (This)->lpVtbl->Release(This)
 9186/*** IDispatch methods ***/
 9187#define ISpeechResourceLoader_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 9188#define ISpeechResourceLoader_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 9189#define ISpeechResourceLoader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 9190#define ISpeechResourceLoader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
 9191/*** ISpeechResourceLoader methods ***/
 9192#define ISpeechResourceLoader_LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl) (This)->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl)
 9193#define ISpeechResourceLoader_GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl) (This)->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl)
 9194#define ISpeechResourceLoader_ReleaseLocalCopy(This,pbstrLocalPath) (This)->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath)
 9195#else
 9196/*** IUnknown methods ***/
 9197static inline HRESULT ISpeechResourceLoader_QueryInterface(ISpeechResourceLoader* This,REFIID riid,void **ppvObject) {
 9198    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9199}
 9200static inline ULONG ISpeechResourceLoader_AddRef(ISpeechResourceLoader* This) {
 9201    return This->lpVtbl->AddRef(This);
 9202}
 9203static inline ULONG ISpeechResourceLoader_Release(ISpeechResourceLoader* This) {
 9204    return This->lpVtbl->Release(This);
 9205}
 9206/*** IDispatch methods ***/
 9207static inline HRESULT ISpeechResourceLoader_GetTypeInfoCount(ISpeechResourceLoader* This,UINT *pctinfo) {
 9208    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
 9209}
 9210static inline HRESULT ISpeechResourceLoader_GetTypeInfo(ISpeechResourceLoader* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
 9211    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
 9212}
 9213static inline HRESULT ISpeechResourceLoader_GetIDsOfNames(ISpeechResourceLoader* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
 9214    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
 9215}
 9216static inline HRESULT ISpeechResourceLoader_Invoke(ISpeechResourceLoader* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
 9217    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
 9218}
 9219/*** ISpeechResourceLoader methods ***/
 9220static inline HRESULT ISpeechResourceLoader_LoadResource(ISpeechResourceLoader* This,BSTR bstrResourceUri,VARIANT_BOOL fAlwaysReload,IUnknown **pStream,BSTR *pbstrMIMEType,VARIANT_BOOL *pfModified,BSTR *pbstrRedirectUrl) {
 9221    return This->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl);
 9222}
 9223static inline HRESULT ISpeechResourceLoader_GetLocalCopy(ISpeechResourceLoader* This,BSTR bstrResourceUri,BSTR *pbstrLocalPath,BSTR *pbstrMIMEType,BSTR *pbstrRedirectUrl) {
 9224    return This->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl);
 9225}
 9226static inline HRESULT ISpeechResourceLoader_ReleaseLocalCopy(ISpeechResourceLoader* This,BSTR pbstrLocalPath) {
 9227    return This->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath);
 9228}
 9229#endif
 9230#endif
 9231
 9232#endif
 9233
 9234
 9235#endif  /* __ISpeechResourceLoader_INTERFACE_DEFINED__ */
 9236
 9237typedef struct SPRECOCONTEXTSTATUS {
 9238    SPINTERFERENCE eInterference;
 9239    WCHAR szRequestTypeOfUI[255];
 9240    DWORD dwReserved1;
 9241    DWORD dwReserved2;
 9242} SPRECOCONTEXTSTATUS;
 9243typedef enum SPBOOKMARKOPTIONS {
 9244    SPBO_NONE = 0,
 9245    SPBO_PAUSE = 0x1,
 9246    SPBO_AHEAD = 0x2,
 9247    SPBO_TIME_UNITS = 0x4
 9248} SPBOOKMARKOPTIONS;
 9249typedef enum SPAUDIOOPTIONS {
 9250    SPAO_NONE = 0,
 9251    SPAO_RETAIN_AUDIO = 0x1
 9252} SPAUDIOOPTIONS;
 9253/*****************************************************************************
 9254 * ISpRecoContext interface
 9255 */
 9256#ifndef __ISpRecoContext_INTERFACE_DEFINED__
 9257#define __ISpRecoContext_INTERFACE_DEFINED__
 9258
 9259DEFINE_GUID(IID_ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d);
 9260#if defined(__cplusplus) && !defined(CINTERFACE)
 9261MIDL_INTERFACE("f740a62f-7c15-489e-8234-940a33d9272d")
 9262ISpRecoContext : public ISpEventSource
 9263{
 9264    virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
 9265        ISpRecognizer **ppRecognizer) = 0;
 9266
 9267    virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
 9268        ULONGLONG ullGrammarId,
 9269        ISpRecoGrammar **ppGrammar) = 0;
 9270
 9271    virtual HRESULT STDMETHODCALLTYPE GetStatus(
 9272        SPRECOCONTEXTSTATUS *pStatus) = 0;
 9273
 9274    virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
 9275        ULONG *pcAlternates) = 0;
 9276
 9277    virtual HRESULT STDMETHODCALLTYPE SetMaxAlternates(
 9278        ULONG cAlternates) = 0;
 9279
 9280    virtual HRESULT STDMETHODCALLTYPE SetAudioOptions(
 9281        SPAUDIOOPTIONS Options,
 9282        const GUID *pAudioFormatId,
 9283        const WAVEFORMATEX *pWaveFormatEx) = 0;
 9284
 9285    virtual HRESULT STDMETHODCALLTYPE GetAudioOptions(
 9286        SPAUDIOOPTIONS *pOptions,
 9287        GUID *pAudioFormatId,
 9288        WAVEFORMATEX **ppCoMemWFEX) = 0;
 9289
 9290    virtual HRESULT STDMETHODCALLTYPE DeserializeResult(
 9291        const SPSERIALIZEDRESULT *pSerializedResult,
 9292        ISpRecoResult **ppResult) = 0;
 9293
 9294    virtual HRESULT STDMETHODCALLTYPE Bookmark(
 9295        SPBOOKMARKOPTIONS Options,
 9296        ULONGLONG ullStreamPosition,
 9297        LPARAM lparamEvent) = 0;
 9298
 9299    virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
 9300        LPCWSTR pAdaptationData,
 9301        const ULONG cch) = 0;
 9302
 9303    virtual HRESULT STDMETHODCALLTYPE Pause(
 9304        DWORD dwReserved) = 0;
 9305
 9306    virtual HRESULT STDMETHODCALLTYPE Resume(
 9307        DWORD dwReserved) = 0;
 9308
 9309    virtual HRESULT STDMETHODCALLTYPE SetVoice(
 9310        ISpVoice *pVoice,
 9311        WINBOOL fAllowFormatChanges) = 0;
 9312
 9313    virtual HRESULT STDMETHODCALLTYPE GetVoice(
 9314        ISpVoice **ppVoice) = 0;
 9315
 9316    virtual HRESULT STDMETHODCALLTYPE SetVoicePurgeEvent(
 9317        ULONGLONG ullEventInterest) = 0;
 9318
 9319    virtual HRESULT STDMETHODCALLTYPE GetVoicePurgeEvent(
 9320        ULONGLONG *pullEventInterest) = 0;
 9321
 9322    virtual HRESULT STDMETHODCALLTYPE SetContextState(
 9323        SPCONTEXTSTATE eContextState) = 0;
 9324
 9325    virtual HRESULT STDMETHODCALLTYPE GetContextState(
 9326        SPCONTEXTSTATE *peContextState) = 0;
 9327
 9328};
 9329#ifdef __CRT_UUID_DECL
 9330__CRT_UUID_DECL(ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d)
 9331#endif
 9332#else
 9333typedef struct ISpRecoContextVtbl {
 9334    BEGIN_INTERFACE
 9335
 9336    /*** IUnknown methods ***/
 9337    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9338        ISpRecoContext *This,
 9339        REFIID riid,
 9340        void **ppvObject);
 9341
 9342    ULONG (STDMETHODCALLTYPE *AddRef)(
 9343        ISpRecoContext *This);
 9344
 9345    ULONG (STDMETHODCALLTYPE *Release)(
 9346        ISpRecoContext *This);
 9347
 9348    /*** ISpNotifySource methods ***/
 9349    HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
 9350        ISpRecoContext *This,
 9351        ISpNotifySink *pNotifySink);
 9352
 9353    HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
 9354        ISpRecoContext *This,
 9355        HWND hWnd,
 9356        UINT Msg,
 9357        WPARAM wParam,
 9358        LPARAM lParam);
 9359
 9360    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
 9361        ISpRecoContext *This,
 9362        SPNOTIFYCALLBACK *pfnCallback,
 9363        WPARAM wParam,
 9364        LPARAM lParam);
 9365
 9366    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
 9367        ISpRecoContext *This,
 9368        ISpNotifyCallback *pSpCallback,
 9369        WPARAM wParam,
 9370        LPARAM lParam);
 9371
 9372    HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
 9373        ISpRecoContext *This);
 9374
 9375    HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
 9376        ISpRecoContext *This,
 9377        DWORD dwMilliseconds);
 9378
 9379    HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
 9380        ISpRecoContext *This);
 9381
 9382    /*** ISpEventSource methods ***/
 9383    HRESULT (STDMETHODCALLTYPE *SetInterest)(
 9384        ISpRecoContext *This,
 9385        ULONGLONG ullEventInterest,
 9386        ULONGLONG ullQueuedInterest);
 9387
 9388    HRESULT (STDMETHODCALLTYPE *GetEvents)(
 9389        ISpRecoContext *This,
 9390        ULONG ulCount,
 9391        SPEVENT *pEventArray,
 9392        ULONG *pulFetched);
 9393
 9394    HRESULT (STDMETHODCALLTYPE *GetInfo)(
 9395        ISpRecoContext *This,
 9396        SPEVENTSOURCEINFO *pInfo);
 9397
 9398    /*** ISpRecoContext methods ***/
 9399    HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
 9400        ISpRecoContext *This,
 9401        ISpRecognizer **ppRecognizer);
 9402
 9403    HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
 9404        ISpRecoContext *This,
 9405        ULONGLONG ullGrammarId,
 9406        ISpRecoGrammar **ppGrammar);
 9407
 9408    HRESULT (STDMETHODCALLTYPE *GetStatus)(
 9409        ISpRecoContext *This,
 9410        SPRECOCONTEXTSTATUS *pStatus);
 9411
 9412    HRESULT (STDMETHODCALLTYPE *GetMaxAlternates)(
 9413        ISpRecoContext *This,
 9414        ULONG *pcAlternates);
 9415
 9416    HRESULT (STDMETHODCALLTYPE *SetMaxAlternates)(
 9417        ISpRecoContext *This,
 9418        ULONG cAlternates);
 9419
 9420    HRESULT (STDMETHODCALLTYPE *SetAudioOptions)(
 9421        ISpRecoContext *This,
 9422        SPAUDIOOPTIONS Options,
 9423        const GUID *pAudioFormatId,
 9424        const WAVEFORMATEX *pWaveFormatEx);
 9425
 9426    HRESULT (STDMETHODCALLTYPE *GetAudioOptions)(
 9427        ISpRecoContext *This,
 9428        SPAUDIOOPTIONS *pOptions,
 9429        GUID *pAudioFormatId,
 9430        WAVEFORMATEX **ppCoMemWFEX);
 9431
 9432    HRESULT (STDMETHODCALLTYPE *DeserializeResult)(
 9433        ISpRecoContext *This,
 9434        const SPSERIALIZEDRESULT *pSerializedResult,
 9435        ISpRecoResult **ppResult);
 9436
 9437    HRESULT (STDMETHODCALLTYPE *Bookmark)(
 9438        ISpRecoContext *This,
 9439        SPBOOKMARKOPTIONS Options,
 9440        ULONGLONG ullStreamPosition,
 9441        LPARAM lparamEvent);
 9442
 9443    HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
 9444        ISpRecoContext *This,
 9445        LPCWSTR pAdaptationData,
 9446        const ULONG cch);
 9447
 9448    HRESULT (STDMETHODCALLTYPE *Pause)(
 9449        ISpRecoContext *This,
 9450        DWORD dwReserved);
 9451
 9452    HRESULT (STDMETHODCALLTYPE *Resume)(
 9453        ISpRecoContext *This,
 9454        DWORD dwReserved);
 9455
 9456    HRESULT (STDMETHODCALLTYPE *SetVoice)(
 9457        ISpRecoContext *This,
 9458        ISpVoice *pVoice,
 9459        WINBOOL fAllowFormatChanges);
 9460
 9461    HRESULT (STDMETHODCALLTYPE *GetVoice)(
 9462        ISpRecoContext *This,
 9463        ISpVoice **ppVoice);
 9464
 9465    HRESULT (STDMETHODCALLTYPE *SetVoicePurgeEvent)(
 9466        ISpRecoContext *This,
 9467        ULONGLONG ullEventInterest);
 9468
 9469    HRESULT (STDMETHODCALLTYPE *GetVoicePurgeEvent)(
 9470        ISpRecoContext *This,
 9471        ULONGLONG *pullEventInterest);
 9472
 9473    HRESULT (STDMETHODCALLTYPE *SetContextState)(
 9474        ISpRecoContext *This,
 9475        SPCONTEXTSTATE eContextState);
 9476
 9477    HRESULT (STDMETHODCALLTYPE *GetContextState)(
 9478        ISpRecoContext *This,
 9479        SPCONTEXTSTATE *peContextState);
 9480
 9481    END_INTERFACE
 9482} ISpRecoContextVtbl;
 9483
 9484interface ISpRecoContext {
 9485    CONST_VTBL ISpRecoContextVtbl* lpVtbl;
 9486};
 9487
 9488#ifdef COBJMACROS
 9489#ifndef WIDL_C_INLINE_WRAPPERS
 9490/*** IUnknown methods ***/
 9491#define ISpRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9492#define ISpRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
 9493#define ISpRecoContext_Release(This) (This)->lpVtbl->Release(This)
 9494/*** ISpNotifySource methods ***/
 9495#define ISpRecoContext_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
 9496#define ISpRecoContext_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
 9497#define ISpRecoContext_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
 9498#define ISpRecoContext_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
 9499#define ISpRecoContext_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
 9500#define ISpRecoContext_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
 9501#define ISpRecoContext_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
 9502/*** ISpEventSource methods ***/
 9503#define ISpRecoContext_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
 9504#define ISpRecoContext_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
 9505#define ISpRecoContext_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
 9506/*** ISpRecoContext methods ***/
 9507#define ISpRecoContext_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
 9508#define ISpRecoContext_CreateGrammar(This,ullGrammarId,ppGrammar) (This)->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar)
 9509#define ISpRecoContext_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
 9510#define ISpRecoContext_GetMaxAlternates(This,pcAlternates) (This)->lpVtbl->GetMaxAlternates(This,pcAlternates)
 9511#define ISpRecoContext_SetMaxAlternates(This,cAlternates) (This)->lpVtbl->SetMaxAlternates(This,cAlternates)
 9512#define ISpRecoContext_SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
 9513#define ISpRecoContext_GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX) (This)->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
 9514#define ISpRecoContext_DeserializeResult(This,pSerializedResult,ppResult) (This)->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult)
 9515#define ISpRecoContext_Bookmark(This,Options,ullStreamPosition,lparamEvent) (This)->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent)
 9516#define ISpRecoContext_SetAdaptationData(This,pAdaptationData,cch) (This)->lpVtbl->SetAdaptationData(This,pAdaptationData,cch)
 9517#define ISpRecoContext_Pause(This,dwReserved) (This)->lpVtbl->Pause(This,dwReserved)
 9518#define ISpRecoContext_Resume(This,dwReserved) (This)->lpVtbl->Resume(This,dwReserved)
 9519#define ISpRecoContext_SetVoice(This,pVoice,fAllowFormatChanges) (This)->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges)
 9520#define ISpRecoContext_GetVoice(This,ppVoice) (This)->lpVtbl->GetVoice(This,ppVoice)
 9521#define ISpRecoContext_SetVoicePurgeEvent(This,ullEventInterest) (This)->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest)
 9522#define ISpRecoContext_GetVoicePurgeEvent(This,pullEventInterest) (This)->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest)
 9523#define ISpRecoContext_SetContextState(This,eContextState) (This)->lpVtbl->SetContextState(This,eContextState)
 9524#define ISpRecoContext_GetContextState(This,peContextState) (This)->lpVtbl->GetContextState(This,peContextState)
 9525#else
 9526/*** IUnknown methods ***/
 9527static inline HRESULT ISpRecoContext_QueryInterface(ISpRecoContext* This,REFIID riid,void **ppvObject) {
 9528    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9529}
 9530static inline ULONG ISpRecoContext_AddRef(ISpRecoContext* This) {
 9531    return This->lpVtbl->AddRef(This);
 9532}
 9533static inline ULONG ISpRecoContext_Release(ISpRecoContext* This) {
 9534    return This->lpVtbl->Release(This);
 9535}
 9536/*** ISpNotifySource methods ***/
 9537static inline HRESULT ISpRecoContext_SetNotifySink(ISpRecoContext* This,ISpNotifySink *pNotifySink) {
 9538    return This->lpVtbl->SetNotifySink(This,pNotifySink);
 9539}
 9540static inline HRESULT ISpRecoContext_SetNotifyWindowMessage(ISpRecoContext* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 9541    return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
 9542}
 9543static inline HRESULT ISpRecoContext_SetNotifyCallbackFunction(ISpRecoContext* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 9544    return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
 9545}
 9546static inline HRESULT ISpRecoContext_SetNotifyCallbackInterface(ISpRecoContext* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 9547    return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
 9548}
 9549static inline HRESULT ISpRecoContext_SetNotifyWin32Event(ISpRecoContext* This) {
 9550    return This->lpVtbl->SetNotifyWin32Event(This);
 9551}
 9552static inline HRESULT ISpRecoContext_WaitForNotifyEvent(ISpRecoContext* This,DWORD dwMilliseconds) {
 9553    return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
 9554}
 9555static inline HANDLE ISpRecoContext_GetNotifyEventHandle(ISpRecoContext* This) {
 9556    return This->lpVtbl->GetNotifyEventHandle(This);
 9557}
 9558/*** ISpEventSource methods ***/
 9559static inline HRESULT ISpRecoContext_SetInterest(ISpRecoContext* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
 9560    return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
 9561}
 9562static inline HRESULT ISpRecoContext_GetEvents(ISpRecoContext* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
 9563    return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
 9564}
 9565static inline HRESULT ISpRecoContext_GetInfo(ISpRecoContext* This,SPEVENTSOURCEINFO *pInfo) {
 9566    return This->lpVtbl->GetInfo(This,pInfo);
 9567}
 9568/*** ISpRecoContext methods ***/
 9569static inline HRESULT ISpRecoContext_GetRecognizer(ISpRecoContext* This,ISpRecognizer **ppRecognizer) {
 9570    return This->lpVtbl->GetRecognizer(This,ppRecognizer);
 9571}
 9572static inline HRESULT ISpRecoContext_CreateGrammar(ISpRecoContext* This,ULONGLONG ullGrammarId,ISpRecoGrammar **ppGrammar) {
 9573    return This->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar);
 9574}
 9575static inline HRESULT ISpRecoContext_GetStatus(ISpRecoContext* This,SPRECOCONTEXTSTATUS *pStatus) {
 9576    return This->lpVtbl->GetStatus(This,pStatus);
 9577}
 9578static inline HRESULT ISpRecoContext_GetMaxAlternates(ISpRecoContext* This,ULONG *pcAlternates) {
 9579    return This->lpVtbl->GetMaxAlternates(This,pcAlternates);
 9580}
 9581static inline HRESULT ISpRecoContext_SetMaxAlternates(ISpRecoContext* This,ULONG cAlternates) {
 9582    return This->lpVtbl->SetMaxAlternates(This,cAlternates);
 9583}
 9584static inline HRESULT ISpRecoContext_SetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS Options,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
 9585    return This->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx);
 9586}
 9587static inline HRESULT ISpRecoContext_GetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS *pOptions,GUID *pAudioFormatId,WAVEFORMATEX **ppCoMemWFEX) {
 9588    return This->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX);
 9589}
 9590static inline HRESULT ISpRecoContext_DeserializeResult(ISpRecoContext* This,const SPSERIALIZEDRESULT *pSerializedResult,ISpRecoResult **ppResult) {
 9591    return This->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult);
 9592}
 9593static inline HRESULT ISpRecoContext_Bookmark(ISpRecoContext* This,SPBOOKMARKOPTIONS Options,ULONGLONG ullStreamPosition,LPARAM lparamEvent) {
 9594    return This->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent);
 9595}
 9596static inline HRESULT ISpRecoContext_SetAdaptationData(ISpRecoContext* This,LPCWSTR pAdaptationData,const ULONG cch) {
 9597    return This->lpVtbl->SetAdaptationData(This,pAdaptationData,cch);
 9598}
 9599static inline HRESULT ISpRecoContext_Pause(ISpRecoContext* This,DWORD dwReserved) {
 9600    return This->lpVtbl->Pause(This,dwReserved);
 9601}
 9602static inline HRESULT ISpRecoContext_Resume(ISpRecoContext* This,DWORD dwReserved) {
 9603    return This->lpVtbl->Resume(This,dwReserved);
 9604}
 9605static inline HRESULT ISpRecoContext_SetVoice(ISpRecoContext* This,ISpVoice *pVoice,WINBOOL fAllowFormatChanges) {
 9606    return This->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges);
 9607}
 9608static inline HRESULT ISpRecoContext_GetVoice(ISpRecoContext* This,ISpVoice **ppVoice) {
 9609    return This->lpVtbl->GetVoice(This,ppVoice);
 9610}
 9611static inline HRESULT ISpRecoContext_SetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG ullEventInterest) {
 9612    return This->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest);
 9613}
 9614static inline HRESULT ISpRecoContext_GetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG *pullEventInterest) {
 9615    return This->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest);
 9616}
 9617static inline HRESULT ISpRecoContext_SetContextState(ISpRecoContext* This,SPCONTEXTSTATE eContextState) {
 9618    return This->lpVtbl->SetContextState(This,eContextState);
 9619}
 9620static inline HRESULT ISpRecoContext_GetContextState(ISpRecoContext* This,SPCONTEXTSTATE *peContextState) {
 9621    return This->lpVtbl->GetContextState(This,peContextState);
 9622}
 9623#endif
 9624#endif
 9625
 9626#endif
 9627
 9628
 9629#endif  /* __ISpRecoContext_INTERFACE_DEFINED__ */
 9630
 9631typedef enum SPGRAMMAROPTIONS {
 9632    SPGO_SAPI = 0x1,
 9633    SPGO_SRGS = 0x2,
 9634    SPGO_UPS = 0x4,
 9635    SPGO_SRGS_MS_SCRIPT = 0x8,
 9636    SPGO_FILE = 0x10,
 9637    SPGO_HTTP = 0x20,
 9638    SPGO_RES = 0x40,
 9639    SPGO_OBJECT = 0x80,
 9640    SPGO_SRGS_W3C_SCRIPT = 0x100,
 9641    SPGO_SRGS_STG_SCRIPT = 0x200,
 9642    SPGO_SRGS_SCRIPT = ((SPGO_SRGS | SPGO_SRGS_MS_SCRIPT) | SPGO_SRGS_W3C_SCRIPT) | SPGO_SRGS_STG_SCRIPT,
 9643    SPGO_DEFAULT = 0x3fb,
 9644    SPGO_ALL = 0x3ff
 9645} SPGRAMMAROPTIONS;
 9646typedef enum SPADAPTATIONSETTINGS {
 9647    SPADS_Default = 0x0,
 9648    SPADS_CurrentRecognizer = 0x1,
 9649    SPADS_RecoProfile = 0x2,
 9650    SPADS_Immediate = 0x4,
 9651    SPADS_Reset = 0x8,
 9652    SPADS_HighVolumeDataSource = 0x10
 9653} SPADAPTATIONSETTINGS;
 9654typedef enum SPADAPTATIONRELEVANCE {
 9655    SPAR_Unknown = 0,
 9656    SPAR_Low = 1,
 9657    SPAR_Medium = 2,
 9658    SPAR_High = 3
 9659} SPADAPTATIONRELEVANCE;
 9660/*****************************************************************************
 9661 * ISpRecoContext2 interface
 9662 */
 9663#ifndef __ISpRecoContext2_INTERFACE_DEFINED__
 9664#define __ISpRecoContext2_INTERFACE_DEFINED__
 9665
 9666DEFINE_GUID(IID_ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d);
 9667#if defined(__cplusplus) && !defined(CINTERFACE)
 9668MIDL_INTERFACE("bead311c-52ff-437f-9464-6b21054ca73d")
 9669ISpRecoContext2 : public IUnknown
 9670{
 9671    virtual HRESULT STDMETHODCALLTYPE SetGrammarOptions(
 9672        DWORD eGrammarOptions) = 0;
 9673
 9674    virtual HRESULT STDMETHODCALLTYPE GetGrammarOptions(
 9675        DWORD *peGrammarOptions) = 0;
 9676
 9677    virtual HRESULT STDMETHODCALLTYPE SetAdaptationData2(
 9678        LPCWSTR pAdaptationData,
 9679        const ULONG cch,
 9680        LPCWSTR pTopicName,
 9681        DWORD eAdaptationSettings,
 9682        SPADAPTATIONRELEVANCE eRelevance) = 0;
 9683
 9684};
 9685#ifdef __CRT_UUID_DECL
 9686__CRT_UUID_DECL(ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d)
 9687#endif
 9688#else
 9689typedef struct ISpRecoContext2Vtbl {
 9690    BEGIN_INTERFACE
 9691
 9692    /*** IUnknown methods ***/
 9693    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9694        ISpRecoContext2 *This,
 9695        REFIID riid,
 9696        void **ppvObject);
 9697
 9698    ULONG (STDMETHODCALLTYPE *AddRef)(
 9699        ISpRecoContext2 *This);
 9700
 9701    ULONG (STDMETHODCALLTYPE *Release)(
 9702        ISpRecoContext2 *This);
 9703
 9704    /*** ISpRecoContext2 methods ***/
 9705    HRESULT (STDMETHODCALLTYPE *SetGrammarOptions)(
 9706        ISpRecoContext2 *This,
 9707        DWORD eGrammarOptions);
 9708
 9709    HRESULT (STDMETHODCALLTYPE *GetGrammarOptions)(
 9710        ISpRecoContext2 *This,
 9711        DWORD *peGrammarOptions);
 9712
 9713    HRESULT (STDMETHODCALLTYPE *SetAdaptationData2)(
 9714        ISpRecoContext2 *This,
 9715        LPCWSTR pAdaptationData,
 9716        const ULONG cch,
 9717        LPCWSTR pTopicName,
 9718        DWORD eAdaptationSettings,
 9719        SPADAPTATIONRELEVANCE eRelevance);
 9720
 9721    END_INTERFACE
 9722} ISpRecoContext2Vtbl;
 9723
 9724interface ISpRecoContext2 {
 9725    CONST_VTBL ISpRecoContext2Vtbl* lpVtbl;
 9726};
 9727
 9728#ifdef COBJMACROS
 9729#ifndef WIDL_C_INLINE_WRAPPERS
 9730/*** IUnknown methods ***/
 9731#define ISpRecoContext2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9732#define ISpRecoContext2_AddRef(This) (This)->lpVtbl->AddRef(This)
 9733#define ISpRecoContext2_Release(This) (This)->lpVtbl->Release(This)
 9734/*** ISpRecoContext2 methods ***/
 9735#define ISpRecoContext2_SetGrammarOptions(This,eGrammarOptions) (This)->lpVtbl->SetGrammarOptions(This,eGrammarOptions)
 9736#define ISpRecoContext2_GetGrammarOptions(This,peGrammarOptions) (This)->lpVtbl->GetGrammarOptions(This,peGrammarOptions)
 9737#define ISpRecoContext2_SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance) (This)->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance)
 9738#else
 9739/*** IUnknown methods ***/
 9740static inline HRESULT ISpRecoContext2_QueryInterface(ISpRecoContext2* This,REFIID riid,void **ppvObject) {
 9741    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9742}
 9743static inline ULONG ISpRecoContext2_AddRef(ISpRecoContext2* This) {
 9744    return This->lpVtbl->AddRef(This);
 9745}
 9746static inline ULONG ISpRecoContext2_Release(ISpRecoContext2* This) {
 9747    return This->lpVtbl->Release(This);
 9748}
 9749/*** ISpRecoContext2 methods ***/
 9750static inline HRESULT ISpRecoContext2_SetGrammarOptions(ISpRecoContext2* This,DWORD eGrammarOptions) {
 9751    return This->lpVtbl->SetGrammarOptions(This,eGrammarOptions);
 9752}
 9753static inline HRESULT ISpRecoContext2_GetGrammarOptions(ISpRecoContext2* This,DWORD *peGrammarOptions) {
 9754    return This->lpVtbl->GetGrammarOptions(This,peGrammarOptions);
 9755}
 9756static inline HRESULT ISpRecoContext2_SetAdaptationData2(ISpRecoContext2* This,LPCWSTR pAdaptationData,const ULONG cch,LPCWSTR pTopicName,DWORD eAdaptationSettings,SPADAPTATIONRELEVANCE eRelevance) {
 9757    return This->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance);
 9758}
 9759#endif
 9760#endif
 9761
 9762#endif
 9763
 9764
 9765#endif  /* __ISpRecoContext2_INTERFACE_DEFINED__ */
 9766
 9767/*****************************************************************************
 9768 * ISpProperties interface
 9769 */
 9770#ifndef __ISpProperties_INTERFACE_DEFINED__
 9771#define __ISpProperties_INTERFACE_DEFINED__
 9772
 9773DEFINE_GUID(IID_ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4);
 9774#if defined(__cplusplus) && !defined(CINTERFACE)
 9775MIDL_INTERFACE("5b4fb971-b115-4de1-ad97-e482e3bf6ee4")
 9776ISpProperties : public IUnknown
 9777{
 9778    virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
 9779        LPCWSTR pName,
 9780        LONG lValue) = 0;
 9781
 9782    virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
 9783        LPCWSTR pName,
 9784        LONG *plValue) = 0;
 9785
 9786    virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
 9787        LPCWSTR pName,
 9788        LPCWSTR pValue) = 0;
 9789
 9790    virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
 9791        LPCWSTR pName,
 9792        LPWSTR *ppCoMemValue) = 0;
 9793
 9794};
 9795#ifdef __CRT_UUID_DECL
 9796__CRT_UUID_DECL(ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4)
 9797#endif
 9798#else
 9799typedef struct ISpPropertiesVtbl {
 9800    BEGIN_INTERFACE
 9801
 9802    /*** IUnknown methods ***/
 9803    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9804        ISpProperties *This,
 9805        REFIID riid,
 9806        void **ppvObject);
 9807
 9808    ULONG (STDMETHODCALLTYPE *AddRef)(
 9809        ISpProperties *This);
 9810
 9811    ULONG (STDMETHODCALLTYPE *Release)(
 9812        ISpProperties *This);
 9813
 9814    /*** ISpProperties methods ***/
 9815    HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
 9816        ISpProperties *This,
 9817        LPCWSTR pName,
 9818        LONG lValue);
 9819
 9820    HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
 9821        ISpProperties *This,
 9822        LPCWSTR pName,
 9823        LONG *plValue);
 9824
 9825    HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
 9826        ISpProperties *This,
 9827        LPCWSTR pName,
 9828        LPCWSTR pValue);
 9829
 9830    HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
 9831        ISpProperties *This,
 9832        LPCWSTR pName,
 9833        LPWSTR *ppCoMemValue);
 9834
 9835    END_INTERFACE
 9836} ISpPropertiesVtbl;
 9837
 9838interface ISpProperties {
 9839    CONST_VTBL ISpPropertiesVtbl* lpVtbl;
 9840};
 9841
 9842#ifdef COBJMACROS
 9843#ifndef WIDL_C_INLINE_WRAPPERS
 9844/*** IUnknown methods ***/
 9845#define ISpProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9846#define ISpProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
 9847#define ISpProperties_Release(This) (This)->lpVtbl->Release(This)
 9848/*** ISpProperties methods ***/
 9849#define ISpProperties_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
 9850#define ISpProperties_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
 9851#define ISpProperties_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
 9852#define ISpProperties_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
 9853#else
 9854/*** IUnknown methods ***/
 9855static inline HRESULT ISpProperties_QueryInterface(ISpProperties* This,REFIID riid,void **ppvObject) {
 9856    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9857}
 9858static inline ULONG ISpProperties_AddRef(ISpProperties* This) {
 9859    return This->lpVtbl->AddRef(This);
 9860}
 9861static inline ULONG ISpProperties_Release(ISpProperties* This) {
 9862    return This->lpVtbl->Release(This);
 9863}
 9864/*** ISpProperties methods ***/
 9865static inline HRESULT ISpProperties_SetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG lValue) {
 9866    return This->lpVtbl->SetPropertyNum(This,pName,lValue);
 9867}
 9868static inline HRESULT ISpProperties_GetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG *plValue) {
 9869    return This->lpVtbl->GetPropertyNum(This,pName,plValue);
 9870}
 9871static inline HRESULT ISpProperties_SetPropertyString(ISpProperties* This,LPCWSTR pName,LPCWSTR pValue) {
 9872    return This->lpVtbl->SetPropertyString(This,pName,pValue);
 9873}
 9874static inline HRESULT ISpProperties_GetPropertyString(ISpProperties* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
 9875    return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
 9876}
 9877#endif
 9878#endif
 9879
 9880#endif
 9881
 9882
 9883#endif  /* __ISpProperties_INTERFACE_DEFINED__ */
 9884
 9885#define SP_MAX_LANGIDS (20)
 9886
 9887typedef struct SPRECOGNIZERSTATUS {
 9888    SPAUDIOSTATUS AudioStatus;
 9889    ULONGLONG ullRecognitionStreamPos;
 9890    ULONG ulStreamNumber;
 9891    ULONG ulNumActive;
 9892    CLSID clsidEngine;
 9893    ULONG cLangIDs;
 9894    WORD aLangID[20];
 9895    ULONGLONG ullRecognitionStreamTime;
 9896} SPRECOGNIZERSTATUS;
 9897typedef enum SPWAVEFORMATTYPE {
 9898    SPWF_INPUT = 0,
 9899    SPWF_SRENGINE = 1
 9900} SPSTREAMFORMATTYPE;
 9901typedef enum SPRECOSTATE {
 9902    SPRST_INACTIVE = 0,
 9903    SPRST_ACTIVE = 1,
 9904    SPRST_ACTIVE_ALWAYS = 2,
 9905    SPRST_INACTIVE_WITH_PURGE = 3,
 9906    SPRST_NUM_STATES = 4
 9907} SPRECOSTATE;
 9908/*****************************************************************************
 9909 * ISpRecognizer interface
 9910 */
 9911#ifndef __ISpRecognizer_INTERFACE_DEFINED__
 9912#define __ISpRecognizer_INTERFACE_DEFINED__
 9913
 9914DEFINE_GUID(IID_ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c);
 9915#if defined(__cplusplus) && !defined(CINTERFACE)
 9916MIDL_INTERFACE("c2b5f241-daa0-4507-9e16-5a1eaa2b7a5c")
 9917ISpRecognizer : public ISpProperties
 9918{
 9919    virtual HRESULT STDMETHODCALLTYPE SetRecognizer(
 9920        ISpObjectToken *pRecognizer) = 0;
 9921
 9922    virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
 9923        ISpObjectToken **ppRecognizer) = 0;
 9924
 9925    virtual HRESULT STDMETHODCALLTYPE SetInput(
 9926        IUnknown *pUnkInput,
 9927        WINBOOL fAllowFormatChanges) = 0;
 9928
 9929    virtual HRESULT STDMETHODCALLTYPE GetInputObjectToken(
 9930        ISpObjectToken **ppToken) = 0;
 9931
 9932    virtual HRESULT STDMETHODCALLTYPE GetInputStream(
 9933        ISpStreamFormat **ppStream) = 0;
 9934
 9935    virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
 9936        ISpRecoContext **ppNewCtxt) = 0;
 9937
 9938    virtual HRESULT STDMETHODCALLTYPE GetRecoProfile(
 9939        ISpObjectToken **ppToken) = 0;
 9940
 9941    virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
 9942        ISpObjectToken *pToken) = 0;
 9943
 9944    virtual HRESULT STDMETHODCALLTYPE IsSharedInstance(
 9945        ) = 0;
 9946
 9947    virtual HRESULT STDMETHODCALLTYPE GetRecoState(
 9948        SPRECOSTATE *pState) = 0;
 9949
 9950    virtual HRESULT STDMETHODCALLTYPE SetRecoState(
 9951        SPRECOSTATE NewState) = 0;
 9952
 9953    virtual HRESULT STDMETHODCALLTYPE GetStatus(
 9954        SPRECOGNIZERSTATUS *pStatus) = 0;
 9955
 9956    virtual HRESULT STDMETHODCALLTYPE GetFormat(
 9957        SPSTREAMFORMATTYPE WaveFormatType,
 9958        GUID *pFormatId,
 9959        WAVEFORMATEX **ppCoMemWFEX) = 0;
 9960
 9961    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
 9962        LPCWSTR pszTypeOfUI,
 9963        void *pvExtraData,
 9964        ULONG cbExtraData,
 9965        WINBOOL *pfSupported) = 0;
 9966
 9967    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
 9968        HWND hwndParent,
 9969        LPCWSTR pszTitle,
 9970        LPCWSTR pszTypeOfUI,
 9971        void *pvExtraData,
 9972        ULONG cbExtraData) = 0;
 9973
 9974    virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
 9975        ISpPhrase *pPhrase) = 0;
 9976
 9977};
 9978#ifdef __CRT_UUID_DECL
 9979__CRT_UUID_DECL(ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c)
 9980#endif
 9981#else
 9982typedef struct ISpRecognizerVtbl {
 9983    BEGIN_INTERFACE
 9984
 9985    /*** IUnknown methods ***/
 9986    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9987        ISpRecognizer *This,
 9988        REFIID riid,
 9989        void **ppvObject);
 9990
 9991    ULONG (STDMETHODCALLTYPE *AddRef)(
 9992        ISpRecognizer *This);
 9993
 9994    ULONG (STDMETHODCALLTYPE *Release)(
 9995        ISpRecognizer *This);
 9996
 9997    /*** ISpProperties methods ***/
 9998    HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
 9999        ISpRecognizer *This,
10000        LPCWSTR pName,
10001        LONG lValue);
10002
10003    HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
10004        ISpRecognizer *This,
10005        LPCWSTR pName,
10006        LONG *plValue);
10007
10008    HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
10009        ISpRecognizer *This,
10010        LPCWSTR pName,
10011        LPCWSTR pValue);
10012
10013    HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
10014        ISpRecognizer *This,
10015        LPCWSTR pName,
10016        LPWSTR *ppCoMemValue);
10017
10018    /*** ISpRecognizer methods ***/
10019    HRESULT (STDMETHODCALLTYPE *SetRecognizer)(
10020        ISpRecognizer *This,
10021        ISpObjectToken *pRecognizer);
10022
10023    HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
10024        ISpRecognizer *This,
10025        ISpObjectToken **ppRecognizer);
10026
10027    HRESULT (STDMETHODCALLTYPE *SetInput)(
10028        ISpRecognizer *This,
10029        IUnknown *pUnkInput,
10030        WINBOOL fAllowFormatChanges);
10031
10032    HRESULT (STDMETHODCALLTYPE *GetInputObjectToken)(
10033        ISpRecognizer *This,
10034        ISpObjectToken **ppToken);
10035
10036    HRESULT (STDMETHODCALLTYPE *GetInputStream)(
10037        ISpRecognizer *This,
10038        ISpStreamFormat **ppStream);
10039
10040    HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
10041        ISpRecognizer *This,
10042        ISpRecoContext **ppNewCtxt);
10043
10044    HRESULT (STDMETHODCALLTYPE *GetRecoProfile)(
10045        ISpRecognizer *This,
10046        ISpObjectToken **ppToken);
10047
10048    HRESULT (STDMETHODCALLTYPE *SetRecoProfile)(
10049        ISpRecognizer *This,
10050        ISpObjectToken *pToken);
10051
10052    HRESULT (STDMETHODCALLTYPE *IsSharedInstance)(
10053        ISpRecognizer *This);
10054
10055    HRESULT (STDMETHODCALLTYPE *GetRecoState)(
10056        ISpRecognizer *This,
10057        SPRECOSTATE *pState);
10058
10059    HRESULT (STDMETHODCALLTYPE *SetRecoState)(
10060        ISpRecognizer *This,
10061        SPRECOSTATE NewState);
10062
10063    HRESULT (STDMETHODCALLTYPE *GetStatus)(
10064        ISpRecognizer *This,
10065        SPRECOGNIZERSTATUS *pStatus);
10066
10067    HRESULT (STDMETHODCALLTYPE *GetFormat)(
10068        ISpRecognizer *This,
10069        SPSTREAMFORMATTYPE WaveFormatType,
10070        GUID *pFormatId,
10071        WAVEFORMATEX **ppCoMemWFEX);
10072
10073    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
10074        ISpRecognizer *This,
10075        LPCWSTR pszTypeOfUI,
10076        void *pvExtraData,
10077        ULONG cbExtraData,
10078        WINBOOL *pfSupported);
10079
10080    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
10081        ISpRecognizer *This,
10082        HWND hwndParent,
10083        LPCWSTR pszTitle,
10084        LPCWSTR pszTypeOfUI,
10085        void *pvExtraData,
10086        ULONG cbExtraData);
10087
10088    HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
10089        ISpRecognizer *This,
10090        ISpPhrase *pPhrase);
10091
10092    END_INTERFACE
10093} ISpRecognizerVtbl;
10094
10095interface ISpRecognizer {
10096    CONST_VTBL ISpRecognizerVtbl* lpVtbl;
10097};
10098
10099#ifdef COBJMACROS
10100#ifndef WIDL_C_INLINE_WRAPPERS
10101/*** IUnknown methods ***/
10102#define ISpRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10103#define ISpRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
10104#define ISpRecognizer_Release(This) (This)->lpVtbl->Release(This)
10105/*** ISpProperties methods ***/
10106#define ISpRecognizer_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
10107#define ISpRecognizer_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
10108#define ISpRecognizer_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
10109#define ISpRecognizer_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
10110/*** ISpRecognizer methods ***/
10111#define ISpRecognizer_SetRecognizer(This,pRecognizer) (This)->lpVtbl->SetRecognizer(This,pRecognizer)
10112#define ISpRecognizer_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
10113#define ISpRecognizer_SetInput(This,pUnkInput,fAllowFormatChanges) (This)->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges)
10114#define ISpRecognizer_GetInputObjectToken(This,ppToken) (This)->lpVtbl->GetInputObjectToken(This,ppToken)
10115#define ISpRecognizer_GetInputStream(This,ppStream) (This)->lpVtbl->GetInputStream(This,ppStream)
10116#define ISpRecognizer_CreateRecoContext(This,ppNewCtxt) (This)->lpVtbl->CreateRecoContext(This,ppNewCtxt)
10117#define ISpRecognizer_GetRecoProfile(This,ppToken) (This)->lpVtbl->GetRecoProfile(This,ppToken)
10118#define ISpRecognizer_SetRecoProfile(This,pToken) (This)->lpVtbl->SetRecoProfile(This,pToken)
10119#define ISpRecognizer_IsSharedInstance(This) (This)->lpVtbl->IsSharedInstance(This)
10120#define ISpRecognizer_GetRecoState(This,pState) (This)->lpVtbl->GetRecoState(This,pState)
10121#define ISpRecognizer_SetRecoState(This,NewState) (This)->lpVtbl->SetRecoState(This,NewState)
10122#define ISpRecognizer_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
10123#define ISpRecognizer_GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX) (This)->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
10124#define ISpRecognizer_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
10125#define ISpRecognizer_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
10126#define ISpRecognizer_EmulateRecognition(This,pPhrase) (This)->lpVtbl->EmulateRecognition(This,pPhrase)
10127#else
10128/*** IUnknown methods ***/
10129static inline HRESULT ISpRecognizer_QueryInterface(ISpRecognizer* This,REFIID riid,void **ppvObject) {
10130    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10131}
10132static inline ULONG ISpRecognizer_AddRef(ISpRecognizer* This) {
10133    return This->lpVtbl->AddRef(This);
10134}
10135static inline ULONG ISpRecognizer_Release(ISpRecognizer* This) {
10136    return This->lpVtbl->Release(This);
10137}
10138/*** ISpProperties methods ***/
10139static inline HRESULT ISpRecognizer_SetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG lValue) {
10140    return This->lpVtbl->SetPropertyNum(This,pName,lValue);
10141}
10142static inline HRESULT ISpRecognizer_GetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG *plValue) {
10143    return This->lpVtbl->GetPropertyNum(This,pName,plValue);
10144}
10145static inline HRESULT ISpRecognizer_SetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPCWSTR pValue) {
10146    return This->lpVtbl->SetPropertyString(This,pName,pValue);
10147}
10148static inline HRESULT ISpRecognizer_GetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
10149    return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
10150}
10151/*** ISpRecognizer methods ***/
10152static inline HRESULT ISpRecognizer_SetRecognizer(ISpRecognizer* This,ISpObjectToken *pRecognizer) {
10153    return This->lpVtbl->SetRecognizer(This,pRecognizer);
10154}
10155static inline HRESULT ISpRecognizer_GetRecognizer(ISpRecognizer* This,ISpObjectToken **ppRecognizer) {
10156    return This->lpVtbl->GetRecognizer(This,ppRecognizer);
10157}
10158static inline HRESULT ISpRecognizer_SetInput(ISpRecognizer* This,IUnknown *pUnkInput,WINBOOL fAllowFormatChanges) {
10159    return This->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges);
10160}
10161static inline HRESULT ISpRecognizer_GetInputObjectToken(ISpRecognizer* This,ISpObjectToken **ppToken) {
10162    return This->lpVtbl->GetInputObjectToken(This,ppToken);
10163}
10164static inline HRESULT ISpRecognizer_GetInputStream(ISpRecognizer* This,ISpStreamFormat **ppStream) {
10165    return This->lpVtbl->GetInputStream(This,ppStream);
10166}
10167static inline HRESULT ISpRecognizer_CreateRecoContext(ISpRecognizer* This,ISpRecoContext **ppNewCtxt) {
10168    return This->lpVtbl->CreateRecoContext(This,ppNewCtxt);
10169}
10170static inline HRESULT ISpRecognizer_GetRecoProfile(ISpRecognizer* This,ISpObjectToken **ppToken) {
10171    return This->lpVtbl->GetRecoProfile(This,ppToken);
10172}
10173static inline HRESULT ISpRecognizer_SetRecoProfile(ISpRecognizer* This,ISpObjectToken *pToken) {
10174    return This->lpVtbl->SetRecoProfile(This,pToken);
10175}
10176static inline HRESULT ISpRecognizer_IsSharedInstance(ISpRecognizer* This) {
10177    return This->lpVtbl->IsSharedInstance(This);
10178}
10179static inline HRESULT ISpRecognizer_GetRecoState(ISpRecognizer* This,SPRECOSTATE *pState) {
10180    return This->lpVtbl->GetRecoState(This,pState);
10181}
10182static inline HRESULT ISpRecognizer_SetRecoState(ISpRecognizer* This,SPRECOSTATE NewState) {
10183    return This->lpVtbl->SetRecoState(This,NewState);
10184}
10185static inline HRESULT ISpRecognizer_GetStatus(ISpRecognizer* This,SPRECOGNIZERSTATUS *pStatus) {
10186    return This->lpVtbl->GetStatus(This,pStatus);
10187}
10188static inline HRESULT ISpRecognizer_GetFormat(ISpRecognizer* This,SPSTREAMFORMATTYPE WaveFormatType,GUID *pFormatId,WAVEFORMATEX **ppCoMemWFEX) {
10189    return This->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX);
10190}
10191static inline HRESULT ISpRecognizer_IsUISupported(ISpRecognizer* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
10192    return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
10193}
10194static inline HRESULT ISpRecognizer_DisplayUI(ISpRecognizer* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
10195    return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
10196}
10197static inline HRESULT ISpRecognizer_EmulateRecognition(ISpRecognizer* This,ISpPhrase *pPhrase) {
10198    return This->lpVtbl->EmulateRecognition(This,pPhrase);
10199}
10200#endif
10201#endif
10202
10203#endif
10204
10205
10206#endif  /* __ISpRecognizer_INTERFACE_DEFINED__ */
10207
10208/*****************************************************************************
10209 * ISpSerializeState interface
10210 */
10211#ifndef __ISpSerializeState_INTERFACE_DEFINED__
10212#define __ISpSerializeState_INTERFACE_DEFINED__
10213
10214DEFINE_GUID(IID_ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9);
10215#if defined(__cplusplus) && !defined(CINTERFACE)
10216MIDL_INTERFACE("21b501a0-0ec7-46c9-92c3-a2bc784c54b9")
10217ISpSerializeState : public IUnknown
10218{
10219    virtual HRESULT STDMETHODCALLTYPE GetSerializedState(
10220        BYTE **ppbData,
10221        ULONG *pulSize,
10222        DWORD dwReserved) = 0;
10223
10224    virtual HRESULT STDMETHODCALLTYPE SetSerializedState(
10225        BYTE *pbData,
10226        ULONG ulSize,
10227        DWORD dwReserved) = 0;
10228
10229};
10230#ifdef __CRT_UUID_DECL
10231__CRT_UUID_DECL(ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9)
10232#endif
10233#else
10234typedef struct ISpSerializeStateVtbl {
10235    BEGIN_INTERFACE
10236
10237    /*** IUnknown methods ***/
10238    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10239        ISpSerializeState *This,
10240        REFIID riid,
10241        void **ppvObject);
10242
10243    ULONG (STDMETHODCALLTYPE *AddRef)(
10244        ISpSerializeState *This);
10245
10246    ULONG (STDMETHODCALLTYPE *Release)(
10247        ISpSerializeState *This);
10248
10249    /*** ISpSerializeState methods ***/
10250    HRESULT (STDMETHODCALLTYPE *GetSerializedState)(
10251        ISpSerializeState *This,
10252        BYTE **ppbData,
10253        ULONG *pulSize,
10254        DWORD dwReserved);
10255
10256    HRESULT (STDMETHODCALLTYPE *SetSerializedState)(
10257        ISpSerializeState *This,
10258        BYTE *pbData,
10259        ULONG ulSize,
10260        DWORD dwReserved);
10261
10262    END_INTERFACE
10263} ISpSerializeStateVtbl;
10264
10265interface ISpSerializeState {
10266    CONST_VTBL ISpSerializeStateVtbl* lpVtbl;
10267};
10268
10269#ifdef COBJMACROS
10270#ifndef WIDL_C_INLINE_WRAPPERS
10271/*** IUnknown methods ***/
10272#define ISpSerializeState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10273#define ISpSerializeState_AddRef(This) (This)->lpVtbl->AddRef(This)
10274#define ISpSerializeState_Release(This) (This)->lpVtbl->Release(This)
10275/*** ISpSerializeState methods ***/
10276#define ISpSerializeState_GetSerializedState(This,ppbData,pulSize,dwReserved) (This)->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved)
10277#define ISpSerializeState_SetSerializedState(This,pbData,ulSize,dwReserved) (This)->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved)
10278#else
10279/*** IUnknown methods ***/
10280static inline HRESULT ISpSerializeState_QueryInterface(ISpSerializeState* This,REFIID riid,void **ppvObject) {
10281    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10282}
10283static inline ULONG ISpSerializeState_AddRef(ISpSerializeState* This) {
10284    return This->lpVtbl->AddRef(This);
10285}
10286static inline ULONG ISpSerializeState_Release(ISpSerializeState* This) {
10287    return This->lpVtbl->Release(This);
10288}
10289/*** ISpSerializeState methods ***/
10290static inline HRESULT ISpSerializeState_GetSerializedState(ISpSerializeState* This,BYTE **ppbData,ULONG *pulSize,DWORD dwReserved) {
10291    return This->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved);
10292}
10293static inline HRESULT ISpSerializeState_SetSerializedState(ISpSerializeState* This,BYTE *pbData,ULONG ulSize,DWORD dwReserved) {
10294    return This->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved);
10295}
10296#endif
10297#endif
10298
10299#endif
10300
10301
10302#endif  /* __ISpSerializeState_INTERFACE_DEFINED__ */
10303
10304/*****************************************************************************
10305 * ISpRecognizer2 interface
10306 */
10307#ifndef __ISpRecognizer2_INTERFACE_DEFINED__
10308#define __ISpRecognizer2_INTERFACE_DEFINED__
10309
10310DEFINE_GUID(IID_ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3);
10311#if defined(__cplusplus) && !defined(CINTERFACE)
10312MIDL_INTERFACE("8fc6d974-c81e-4098-93c5-0147f61ed4d3")
10313ISpRecognizer2 : public IUnknown
10314{
10315    virtual HRESULT STDMETHODCALLTYPE EmulateRecognitionEx(
10316        ISpPhrase *pPhrase,
10317        DWORD dwCompareFlags) = 0;
10318
10319    virtual HRESULT STDMETHODCALLTYPE SetTrainingState(
10320        WINBOOL fDoingTraining,
10321        WINBOOL fAdaptFromTrainingData) = 0;
10322
10323    virtual HRESULT STDMETHODCALLTYPE ResetAcousticModelAdaptation(
10324        ) = 0;
10325
10326};
10327#ifdef __CRT_UUID_DECL
10328__CRT_UUID_DECL(ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3)
10329#endif
10330#else
10331typedef struct ISpRecognizer2Vtbl {
10332    BEGIN_INTERFACE
10333
10334    /*** IUnknown methods ***/
10335    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10336        ISpRecognizer2 *This,
10337        REFIID riid,
10338        void **ppvObject);
10339
10340    ULONG (STDMETHODCALLTYPE *AddRef)(
10341        ISpRecognizer2 *This);
10342
10343    ULONG (STDMETHODCALLTYPE *Release)(
10344        ISpRecognizer2 *This);
10345
10346    /*** ISpRecognizer2 methods ***/
10347    HRESULT (STDMETHODCALLTYPE *EmulateRecognitionEx)(
10348        ISpRecognizer2 *This,
10349        ISpPhrase *pPhrase,
10350        DWORD dwCompareFlags);
10351
10352    HRESULT (STDMETHODCALLTYPE *SetTrainingState)(
10353        ISpRecognizer2 *This,
10354        WINBOOL fDoingTraining,
10355        WINBOOL fAdaptFromTrainingData);
10356
10357    HRESULT (STDMETHODCALLTYPE *ResetAcousticModelAdaptation)(
10358        ISpRecognizer2 *This);
10359
10360    END_INTERFACE
10361} ISpRecognizer2Vtbl;
10362
10363interface ISpRecognizer2 {
10364    CONST_VTBL ISpRecognizer2Vtbl* lpVtbl;
10365};
10366
10367#ifdef COBJMACROS
10368#ifndef WIDL_C_INLINE_WRAPPERS
10369/*** IUnknown methods ***/
10370#define ISpRecognizer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10371#define ISpRecognizer2_AddRef(This) (This)->lpVtbl->AddRef(This)
10372#define ISpRecognizer2_Release(This) (This)->lpVtbl->Release(This)
10373/*** ISpRecognizer2 methods ***/
10374#define ISpRecognizer2_EmulateRecognitionEx(This,pPhrase,dwCompareFlags) (This)->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags)
10375#define ISpRecognizer2_SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData) (This)->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData)
10376#define ISpRecognizer2_ResetAcousticModelAdaptation(This) (This)->lpVtbl->ResetAcousticModelAdaptation(This)
10377#else
10378/*** IUnknown methods ***/
10379static inline HRESULT ISpRecognizer2_QueryInterface(ISpRecognizer2* This,REFIID riid,void **ppvObject) {
10380    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10381}
10382static inline ULONG ISpRecognizer2_AddRef(ISpRecognizer2* This) {
10383    return This->lpVtbl->AddRef(This);
10384}
10385static inline ULONG ISpRecognizer2_Release(ISpRecognizer2* This) {
10386    return This->lpVtbl->Release(This);
10387}
10388/*** ISpRecognizer2 methods ***/
10389static inline HRESULT ISpRecognizer2_EmulateRecognitionEx(ISpRecognizer2* This,ISpPhrase *pPhrase,DWORD dwCompareFlags) {
10390    return This->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags);
10391}
10392static inline HRESULT ISpRecognizer2_SetTrainingState(ISpRecognizer2* This,WINBOOL fDoingTraining,WINBOOL fAdaptFromTrainingData) {
10393    return This->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData);
10394}
10395static inline HRESULT ISpRecognizer2_ResetAcousticModelAdaptation(ISpRecognizer2* This) {
10396    return This->lpVtbl->ResetAcousticModelAdaptation(This);
10397}
10398#endif
10399#endif
10400
10401#endif
10402
10403
10404#endif  /* __ISpRecognizer2_INTERFACE_DEFINED__ */
10405
10406typedef struct SPNORMALIZATIONLIST {
10407    ULONG ulSize;
10408    WCHAR **ppszzNormalizedList;
10409} SPNORMALIZATIONLIST;
10410/*****************************************************************************
10411 * ISpEnginePronunciation interface
10412 */
10413#ifndef __ISpEnginePronunciation_INTERFACE_DEFINED__
10414#define __ISpEnginePronunciation_INTERFACE_DEFINED__
10415
10416DEFINE_GUID(IID_ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda);
10417#if defined(__cplusplus) && !defined(CINTERFACE)
10418MIDL_INTERFACE("c360ce4b-76d1-4214-ad68-52657d5083da")
10419ISpEnginePronunciation : public IUnknown
10420{
10421    virtual HRESULT STDMETHODCALLTYPE Normalize(
10422        LPCWSTR pszWord,
10423        LPCWSTR pszLeftContext,
10424        LPCWSTR pszRightContext,
10425        WORD LangID,
10426        SPNORMALIZATIONLIST *pNormalizationList) = 0;
10427
10428    virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
10429        LPCWSTR pszWord,
10430        LPCWSTR pszLeftContext,
10431        LPCWSTR pszRightContext,
10432        WORD LangID,
10433        SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) = 0;
10434
10435};
10436#ifdef __CRT_UUID_DECL
10437__CRT_UUID_DECL(ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda)
10438#endif
10439#else
10440typedef struct ISpEnginePronunciationVtbl {
10441    BEGIN_INTERFACE
10442
10443    /*** IUnknown methods ***/
10444    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10445        ISpEnginePronunciation *This,
10446        REFIID riid,
10447        void **ppvObject);
10448
10449    ULONG (STDMETHODCALLTYPE *AddRef)(
10450        ISpEnginePronunciation *This);
10451
10452    ULONG (STDMETHODCALLTYPE *Release)(
10453        ISpEnginePronunciation *This);
10454
10455    /*** ISpEnginePronunciation methods ***/
10456    HRESULT (STDMETHODCALLTYPE *Normalize)(
10457        ISpEnginePronunciation *This,
10458        LPCWSTR pszWord,
10459        LPCWSTR pszLeftContext,
10460        LPCWSTR pszRightContext,
10461        WORD LangID,
10462        SPNORMALIZATIONLIST *pNormalizationList);
10463
10464    HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
10465        ISpEnginePronunciation *This,
10466        LPCWSTR pszWord,
10467        LPCWSTR pszLeftContext,
10468        LPCWSTR pszRightContext,
10469        WORD LangID,
10470        SPWORDPRONUNCIATIONLIST *pEnginePronunciationList);
10471
10472    END_INTERFACE
10473} ISpEnginePronunciationVtbl;
10474
10475interface ISpEnginePronunciation {
10476    CONST_VTBL ISpEnginePronunciationVtbl* lpVtbl;
10477};
10478
10479#ifdef COBJMACROS
10480#ifndef WIDL_C_INLINE_WRAPPERS
10481/*** IUnknown methods ***/
10482#define ISpEnginePronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10483#define ISpEnginePronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
10484#define ISpEnginePronunciation_Release(This) (This)->lpVtbl->Release(This)
10485/*** ISpEnginePronunciation methods ***/
10486#define ISpEnginePronunciation_Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList) (This)->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList)
10487#define ISpEnginePronunciation_GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList)
10488#else
10489/*** IUnknown methods ***/
10490static inline HRESULT ISpEnginePronunciation_QueryInterface(ISpEnginePronunciation* This,REFIID riid,void **ppvObject) {
10491    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10492}
10493static inline ULONG ISpEnginePronunciation_AddRef(ISpEnginePronunciation* This) {
10494    return This->lpVtbl->AddRef(This);
10495}
10496static inline ULONG ISpEnginePronunciation_Release(ISpEnginePronunciation* This) {
10497    return This->lpVtbl->Release(This);
10498}
10499/*** ISpEnginePronunciation methods ***/
10500static inline HRESULT ISpEnginePronunciation_Normalize(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPNORMALIZATIONLIST *pNormalizationList) {
10501    return This->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList);
10502}
10503static inline HRESULT ISpEnginePronunciation_GetPronunciations(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) {
10504    return This->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList);
10505}
10506#endif
10507#endif
10508
10509#endif
10510
10511
10512#endif  /* __ISpEnginePronunciation_INTERFACE_DEFINED__ */
10513
10514typedef struct SPDISPLAYTOKEN {
10515    const WCHAR *pszLexical;
10516    const WCHAR *pszDisplay;
10517    BYTE bDisplayAttributes;
10518} SPDISPLAYTOKEN;
10519typedef struct SPDISPLAYPHRASE {
10520    ULONG ulNumTokens;
10521    SPDISPLAYTOKEN *pTokens;
10522} SPDISPLAYPHRASE;
10523/*****************************************************************************
10524 * ISpDisplayAlternates interface
10525 */
10526#ifndef __ISpDisplayAlternates_INTERFACE_DEFINED__
10527#define __ISpDisplayAlternates_INTERFACE_DEFINED__
10528
10529DEFINE_GUID(IID_ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e);
10530#if defined(__cplusplus) && !defined(CINTERFACE)
10531MIDL_INTERFACE("c8d7c7e2-0dde-44b7-afe3-b0c991fbeb5e")
10532ISpDisplayAlternates : public IUnknown
10533{
10534    virtual HRESULT STDMETHODCALLTYPE GetDisplayAlternates(
10535        const SPDISPLAYPHRASE *pPhrase,
10536        ULONG cRequestCount,
10537        SPDISPLAYPHRASE **ppCoMemPhrases,
10538        ULONG *pcPhrasesReturned) = 0;
10539
10540    virtual HRESULT STDMETHODCALLTYPE SetFullStopTrailSpace(
10541        ULONG ulTrailSpace) = 0;
10542
10543};
10544#ifdef __CRT_UUID_DECL
10545__CRT_UUID_DECL(ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e)
10546#endif
10547#else
10548typedef struct ISpDisplayAlternatesVtbl {
10549    BEGIN_INTERFACE
10550
10551    /*** IUnknown methods ***/
10552    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10553        ISpDisplayAlternates *This,
10554        REFIID riid,
10555        void **ppvObject);
10556
10557    ULONG (STDMETHODCALLTYPE *AddRef)(
10558        ISpDisplayAlternates *This);
10559
10560    ULONG (STDMETHODCALLTYPE *Release)(
10561        ISpDisplayAlternates *This);
10562
10563    /*** ISpDisplayAlternates methods ***/
10564    HRESULT (STDMETHODCALLTYPE *GetDisplayAlternates)(
10565        ISpDisplayAlternates *This,
10566        const SPDISPLAYPHRASE *pPhrase,
10567        ULONG cRequestCount,
10568        SPDISPLAYPHRASE **ppCoMemPhrases,
10569        ULONG *pcPhrasesReturned);
10570
10571    HRESULT (STDMETHODCALLTYPE *SetFullStopTrailSpace)(
10572        ISpDisplayAlternates *This,
10573        ULONG ulTrailSpace);
10574
10575    END_INTERFACE
10576} ISpDisplayAlternatesVtbl;
10577
10578interface ISpDisplayAlternates {
10579    CONST_VTBL ISpDisplayAlternatesVtbl* lpVtbl;
10580};
10581
10582#ifdef COBJMACROS
10583#ifndef WIDL_C_INLINE_WRAPPERS
10584/*** IUnknown methods ***/
10585#define ISpDisplayAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10586#define ISpDisplayAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
10587#define ISpDisplayAlternates_Release(This) (This)->lpVtbl->Release(This)
10588/*** ISpDisplayAlternates methods ***/
10589#define ISpDisplayAlternates_GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned) (This)->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned)
10590#define ISpDisplayAlternates_SetFullStopTrailSpace(This,ulTrailSpace) (This)->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace)
10591#else
10592/*** IUnknown methods ***/
10593static inline HRESULT ISpDisplayAlternates_QueryInterface(ISpDisplayAlternates* This,REFIID riid,void **ppvObject) {
10594    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10595}
10596static inline ULONG ISpDisplayAlternates_AddRef(ISpDisplayAlternates* This) {
10597    return This->lpVtbl->AddRef(This);
10598}
10599static inline ULONG ISpDisplayAlternates_Release(ISpDisplayAlternates* This) {
10600    return This->lpVtbl->Release(This);
10601}
10602/*** ISpDisplayAlternates methods ***/
10603static inline HRESULT ISpDisplayAlternates_GetDisplayAlternates(ISpDisplayAlternates* This,const SPDISPLAYPHRASE *pPhrase,ULONG cRequestCount,SPDISPLAYPHRASE **ppCoMemPhrases,ULONG *pcPhrasesReturned) {
10604    return This->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned);
10605}
10606static inline HRESULT ISpDisplayAlternates_SetFullStopTrailSpace(ISpDisplayAlternates* This,ULONG ulTrailSpace) {
10607    return This->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace);
10608}
10609#endif
10610#endif
10611
10612#endif
10613
10614
10615#endif  /* __ISpDisplayAlternates_INTERFACE_DEFINED__ */
10616
10617#ifndef __SpeechLib_LIBRARY_DEFINED__
10618#define __SpeechLib_LIBRARY_DEFINED__
10619
10620DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
10621
10622#ifndef __ISpeechDataKey_FWD_DEFINED__
10623#define __ISpeechDataKey_FWD_DEFINED__
10624typedef interface ISpeechDataKey ISpeechDataKey;
10625#ifdef __cplusplus
10626interface ISpeechDataKey;
10627#endif /* __cplusplus */
10628#endif
10629
10630#ifndef __ISpeechObjectToken_FWD_DEFINED__
10631#define __ISpeechObjectToken_FWD_DEFINED__
10632typedef interface ISpeechObjectToken ISpeechObjectToken;
10633#ifdef __cplusplus
10634interface ISpeechObjectToken;
10635#endif /* __cplusplus */
10636#endif
10637
10638#ifndef __ISpeechObjectTokens_FWD_DEFINED__
10639#define __ISpeechObjectTokens_FWD_DEFINED__
10640typedef interface ISpeechObjectTokens ISpeechObjectTokens;
10641#ifdef __cplusplus
10642interface ISpeechObjectTokens;
10643#endif /* __cplusplus */
10644#endif
10645
10646#ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
10647#define __ISpeechObjectTokenCategory_FWD_DEFINED__
10648typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
10649#ifdef __cplusplus
10650interface ISpeechObjectTokenCategory;
10651#endif /* __cplusplus */
10652#endif
10653
10654#ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
10655#define __ISpeechAudioBufferInfo_FWD_DEFINED__
10656typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
10657#ifdef __cplusplus
10658interface ISpeechAudioBufferInfo;
10659#endif /* __cplusplus */
10660#endif
10661
10662#ifndef __ISpeechAudioStatus_FWD_DEFINED__
10663#define __ISpeechAudioStatus_FWD_DEFINED__
10664typedef interface ISpeechAudioStatus ISpeechAudioStatus;
10665#ifdef __cplusplus
10666interface ISpeechAudioStatus;
10667#endif /* __cplusplus */
10668#endif
10669
10670#ifndef __ISpeechAudioFormat_FWD_DEFINED__
10671#define __ISpeechAudioFormat_FWD_DEFINED__
10672typedef interface ISpeechAudioFormat ISpeechAudioFormat;
10673#ifdef __cplusplus
10674interface ISpeechAudioFormat;
10675#endif /* __cplusplus */
10676#endif
10677
10678#ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
10679#define __ISpeechWaveFormatEx_FWD_DEFINED__
10680typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
10681#ifdef __cplusplus
10682interface ISpeechWaveFormatEx;
10683#endif /* __cplusplus */
10684#endif
10685
10686#ifndef __ISpeechBaseStream_FWD_DEFINED__
10687#define __ISpeechBaseStream_FWD_DEFINED__
10688typedef interface ISpeechBaseStream ISpeechBaseStream;
10689#ifdef __cplusplus
10690interface ISpeechBaseStream;
10691#endif /* __cplusplus */
10692#endif
10693
10694#ifndef __ISpeechFileStream_FWD_DEFINED__
10695#define __ISpeechFileStream_FWD_DEFINED__
10696typedef interface ISpeechFileStream ISpeechFileStream;
10697#ifdef __cplusplus
10698interface ISpeechFileStream;
10699#endif /* __cplusplus */
10700#endif
10701
10702#ifndef __ISpeechMemoryStream_FWD_DEFINED__
10703#define __ISpeechMemoryStream_FWD_DEFINED__
10704typedef interface ISpeechMemoryStream ISpeechMemoryStream;
10705#ifdef __cplusplus
10706interface ISpeechMemoryStream;
10707#endif /* __cplusplus */
10708#endif
10709
10710#ifndef __ISpeechCustomStream_FWD_DEFINED__
10711#define __ISpeechCustomStream_FWD_DEFINED__
10712typedef interface ISpeechCustomStream ISpeechCustomStream;
10713#ifdef __cplusplus
10714interface ISpeechCustomStream;
10715#endif /* __cplusplus */
10716#endif
10717
10718#ifndef __ISpeechAudio_FWD_DEFINED__
10719#define __ISpeechAudio_FWD_DEFINED__
10720typedef interface ISpeechAudio ISpeechAudio;
10721#ifdef __cplusplus
10722interface ISpeechAudio;
10723#endif /* __cplusplus */
10724#endif
10725
10726#ifndef __ISpeechMMSysAudio_FWD_DEFINED__
10727#define __ISpeechMMSysAudio_FWD_DEFINED__
10728typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
10729#ifdef __cplusplus
10730interface ISpeechMMSysAudio;
10731#endif /* __cplusplus */
10732#endif
10733
10734#ifndef __ISpeechVoice_FWD_DEFINED__
10735#define __ISpeechVoice_FWD_DEFINED__
10736typedef interface ISpeechVoice ISpeechVoice;
10737#ifdef __cplusplus
10738interface ISpeechVoice;
10739#endif /* __cplusplus */
10740#endif
10741
10742#ifndef __ISpeechVoiceStatus_FWD_DEFINED__
10743#define __ISpeechVoiceStatus_FWD_DEFINED__
10744typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
10745#ifdef __cplusplus
10746interface ISpeechVoiceStatus;
10747#endif /* __cplusplus */
10748#endif
10749
10750#ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
10751#define ___ISpeechVoiceEvents_FWD_DEFINED__
10752typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
10753#ifdef __cplusplus
10754interface _ISpeechVoiceEvents;
10755#endif /* __cplusplus */
10756#endif
10757
10758#ifndef __ISpeechRecognizer_FWD_DEFINED__
10759#define __ISpeechRecognizer_FWD_DEFINED__
10760typedef interface ISpeechRecognizer ISpeechRecognizer;
10761#ifdef __cplusplus
10762interface ISpeechRecognizer;
10763#endif /* __cplusplus */
10764#endif
10765
10766#ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
10767#define __ISpeechRecognizerStatus_FWD_DEFINED__
10768typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
10769#ifdef __cplusplus
10770interface ISpeechRecognizerStatus;
10771#endif /* __cplusplus */
10772#endif
10773
10774#ifndef __ISpeechRecoContext_FWD_DEFINED__
10775#define __ISpeechRecoContext_FWD_DEFINED__
10776typedef interface ISpeechRecoContext ISpeechRecoContext;
10777#ifdef __cplusplus
10778interface ISpeechRecoContext;
10779#endif /* __cplusplus */
10780#endif
10781
10782#ifndef __ISpeechRecoGrammar_FWD_DEFINED__
10783#define __ISpeechRecoGrammar_FWD_DEFINED__
10784typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
10785#ifdef __cplusplus
10786interface ISpeechRecoGrammar;
10787#endif /* __cplusplus */
10788#endif
10789
10790#ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
10791#define ___ISpeechRecoContextEvents_FWD_DEFINED__
10792typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
10793#ifdef __cplusplus
10794interface _ISpeechRecoContextEvents;
10795#endif /* __cplusplus */
10796#endif
10797
10798#ifndef __ISpeechGrammarRule_FWD_DEFINED__
10799#define __ISpeechGrammarRule_FWD_DEFINED__
10800typedef interface ISpeechGrammarRule ISpeechGrammarRule;
10801#ifdef __cplusplus
10802interface ISpeechGrammarRule;
10803#endif /* __cplusplus */
10804#endif
10805
10806#ifndef __ISpeechGrammarRules_FWD_DEFINED__
10807#define __ISpeechGrammarRules_FWD_DEFINED__
10808typedef interface ISpeechGrammarRules ISpeechGrammarRules;
10809#ifdef __cplusplus
10810interface ISpeechGrammarRules;
10811#endif /* __cplusplus */
10812#endif
10813
10814#ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
10815#define __ISpeechGrammarRuleState_FWD_DEFINED__
10816typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
10817#ifdef __cplusplus
10818interface ISpeechGrammarRuleState;
10819#endif /* __cplusplus */
10820#endif
10821
10822#ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
10823#define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
10824typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
10825#ifdef __cplusplus
10826interface ISpeechGrammarRuleStateTransition;
10827#endif /* __cplusplus */
10828#endif
10829
10830#ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
10831#define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
10832typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
10833#ifdef __cplusplus
10834interface ISpeechGrammarRuleStateTransitions;
10835#endif /* __cplusplus */
10836#endif
10837
10838#ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
10839#define __ISpeechTextSelectionInformation_FWD_DEFINED__
10840typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
10841#ifdef __cplusplus
10842interface ISpeechTextSelectionInformation;
10843#endif /* __cplusplus */
10844#endif
10845
10846#ifndef __ISpeechRecoResult_FWD_DEFINED__
10847#define __ISpeechRecoResult_FWD_DEFINED__
10848typedef interface ISpeechRecoResult ISpeechRecoResult;
10849#ifdef __cplusplus
10850interface ISpeechRecoResult;
10851#endif /* __cplusplus */
10852#endif
10853
10854#ifndef __ISpeechRecoResult2_FWD_DEFINED__
10855#define __ISpeechRecoResult2_FWD_DEFINED__
10856typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
10857#ifdef __cplusplus
10858interface ISpeechRecoResult2;
10859#endif /* __cplusplus */
10860#endif
10861
10862#ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
10863#define __ISpeechRecoResultTimes_FWD_DEFINED__
10864typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
10865#ifdef __cplusplus
10866interface ISpeechRecoResultTimes;
10867#endif /* __cplusplus */
10868#endif
10869
10870#ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
10871#define __ISpeechPhraseAlternate_FWD_DEFINED__
10872typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
10873#ifdef __cplusplus
10874interface ISpeechPhraseAlternate;
10875#endif /* __cplusplus */
10876#endif
10877
10878#ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
10879#define __ISpeechPhraseAlternates_FWD_DEFINED__
10880typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
10881#ifdef __cplusplus
10882interface ISpeechPhraseAlternates;
10883#endif /* __cplusplus */
10884#endif
10885
10886#ifndef __ISpeechPhraseInfo_FWD_DEFINED__
10887#define __ISpeechPhraseInfo_FWD_DEFINED__
10888typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
10889#ifdef __cplusplus
10890interface ISpeechPhraseInfo;
10891#endif /* __cplusplus */
10892#endif
10893
10894#ifndef __ISpeechPhraseElement_FWD_DEFINED__
10895#define __ISpeechPhraseElement_FWD_DEFINED__
10896typedef interface ISpeechPhraseElement ISpeechPhraseElement;
10897#ifdef __cplusplus
10898interface ISpeechPhraseElement;
10899#endif /* __cplusplus */
10900#endif
10901
10902#ifndef __ISpeechPhraseElements_FWD_DEFINED__
10903#define __ISpeechPhraseElements_FWD_DEFINED__
10904typedef interface ISpeechPhraseElements ISpeechPhraseElements;
10905#ifdef __cplusplus
10906interface ISpeechPhraseElements;
10907#endif /* __cplusplus */
10908#endif
10909
10910#ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
10911#define __ISpeechPhraseReplacement_FWD_DEFINED__
10912typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
10913#ifdef __cplusplus
10914interface ISpeechPhraseReplacement;
10915#endif /* __cplusplus */
10916#endif
10917
10918#ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
10919#define __ISpeechPhraseReplacements_FWD_DEFINED__
10920typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
10921#ifdef __cplusplus
10922interface ISpeechPhraseReplacements;
10923#endif /* __cplusplus */
10924#endif
10925
10926#ifndef __ISpeechPhraseProperty_FWD_DEFINED__
10927#define __ISpeechPhraseProperty_FWD_DEFINED__
10928typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
10929#ifdef __cplusplus
10930interface ISpeechPhraseProperty;
10931#endif /* __cplusplus */
10932#endif
10933
10934#ifndef __ISpeechPhraseProperties_FWD_DEFINED__
10935#define __ISpeechPhraseProperties_FWD_DEFINED__
10936typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
10937#ifdef __cplusplus
10938interface ISpeechPhraseProperties;
10939#endif /* __cplusplus */
10940#endif
10941
10942#ifndef __ISpeechPhraseRule_FWD_DEFINED__
10943#define __ISpeechPhraseRule_FWD_DEFINED__
10944typedef interface ISpeechPhraseRule ISpeechPhraseRule;
10945#ifdef __cplusplus
10946interface ISpeechPhraseRule;
10947#endif /* __cplusplus */
10948#endif
10949
10950#ifndef __ISpeechPhraseRules_FWD_DEFINED__
10951#define __ISpeechPhraseRules_FWD_DEFINED__
10952typedef interface ISpeechPhraseRules ISpeechPhraseRules;
10953#ifdef __cplusplus
10954interface ISpeechPhraseRules;
10955#endif /* __cplusplus */
10956#endif
10957
10958#ifndef __ISpeechLexicon_FWD_DEFINED__
10959#define __ISpeechLexicon_FWD_DEFINED__
10960typedef interface ISpeechLexicon ISpeechLexicon;
10961#ifdef __cplusplus
10962interface ISpeechLexicon;
10963#endif /* __cplusplus */
10964#endif
10965
10966#ifndef __ISpeechLexiconWords_FWD_DEFINED__
10967#define __ISpeechLexiconWords_FWD_DEFINED__
10968typedef interface ISpeechLexiconWords ISpeechLexiconWords;
10969#ifdef __cplusplus
10970interface ISpeechLexiconWords;
10971#endif /* __cplusplus */
10972#endif
10973
10974#ifndef __ISpeechLexiconWord_FWD_DEFINED__
10975#define __ISpeechLexiconWord_FWD_DEFINED__
10976typedef interface ISpeechLexiconWord ISpeechLexiconWord;
10977#ifdef __cplusplus
10978interface ISpeechLexiconWord;
10979#endif /* __cplusplus */
10980#endif
10981
10982#ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
10983#define __ISpeechLexiconPronunciations_FWD_DEFINED__
10984typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
10985#ifdef __cplusplus
10986interface ISpeechLexiconPronunciations;
10987#endif /* __cplusplus */
10988#endif
10989
10990#ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
10991#define __ISpeechLexiconPronunciation_FWD_DEFINED__
10992typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
10993#ifdef __cplusplus
10994interface ISpeechLexiconPronunciation;
10995#endif /* __cplusplus */
10996#endif
10997
10998typedef LONG SpeechLanguageId;
10999#define __SpeechStringConstants_MODULE_DEFINED__
11000#ifndef __SpeechStringConstants_MODULE_DEFINED__
11001#define __SpeechStringConstants_MODULE_DEFINED__
11002#define SpeechRegistryUserRoot (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech")
11003
11004#define SpeechRegistryLocalMachineRoot (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech")
11005
11006#define SpeechCategoryAudioOut (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioOutput")
11007
11008#define SpeechCategoryAudioIn (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioInput")
11009
11010#define SpeechCategoryVoices (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices")
11011
11012#define SpeechCategoryRecognizers (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Recognizers")
11013
11014#define SpeechCategoryAppLexicons (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AppLexicons")
11015
11016#define SpeechCategoryPhoneConverters (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\PhoneConverters")
11017
11018#define SpeechCategoryRecoProfiles (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\RecoProfiles")
11019
11020#define SpeechTokenIdUserLexicon (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\CurrentUserLexicon")
11021
11022#define SpeechTokenValueCLSID (L"CLSID")
11023
11024#define SpeechTokenKeyFiles (L"Files")
11025
11026#define SpeechTokenKeyUI (L"UI")
11027
11028#define SpeechTokenKeyAttributes (L"Attributes")
11029
11030#define SpeechVoiceCategoryTTSRate (L"DefaultTTSRate")
11031
11032#define SpeechPropertyResourceUsage (L"ResourceUsage")
11033
11034#define SpeechPropertyHighConfidenceThreshold (L"HighConfidenceThreshold")
11035
11036#define SpeechPropertyNormalConfidenceThreshold (L"NormalConfidenceThreshold")
11037
11038#define SpeechPropertyLowConfidenceThreshold (L"LowConfidenceThreshold")
11039
11040#define SpeechPropertyResponseSpeed (L"ResponseSpeed")
11041
11042#define SpeechPropertyComplexResponseSpeed (L"ComplexResponseSpeed")
11043
11044#define SpeechPropertyAdaptationOn (L"AdaptationOn")
11045
11046#define SpeechDictationTopicSpelling (L"Spelling")
11047
11048#define SpeechGrammarTagWildcard (L"...")
11049
11050#define SpeechGrammarTagDictation (L"*")
11051
11052#define SpeechGrammarTagUnlimitedDictation (L"*+")
11053
11054#define SpeechEngineProperties (L"EngineProperties")
11055
11056#define SpeechAddRemoveWord (L"AddRemoveWord")
11057
11058#define SpeechUserTraining (L"UserTraining")
11059
11060#define SpeechMicTraining (L"MicTraining")
11061
11062#define SpeechRecoProfileProperties (L"RecoProfileProperties")
11063
11064#define SpeechAudioProperties (L"AudioProperties")
11065
11066#define SpeechAudioVolume (L"AudioVolume")
11067
11068#define SpeechVoiceSkipTypeSentence (L"Sentence")
11069
11070#define SpeechAudioFormatGUIDWave (L"{C31ADBAE-527F-4ff5-A230-F62BB61FF70C}")
11071
11072#define SpeechAudioFormatGUIDText (L"{7CEEF9F9-3D13-11d2-9EE7-00C04F797396}")
11073
11074#endif /* __SpeechStringConstants_MODULE_DEFINED__ */
11075#ifndef __SpeechConstants_MODULE_DEFINED__
11076#define __SpeechConstants_MODULE_DEFINED__
11077#define Speech_Default_Weight (DEFAULT_WEIGHT)
11078
11079#define Speech_Max_Word_Length (SP_MAX_WORD_LENGTH)
11080
11081#define Speech_Max_Pron_Length (SP_MAX_PRON_LENGTH)
11082
11083#define Speech_StreamPos_Asap (SP_STREAMPOS_ASAP)
11084
11085#define Speech_StreamPos_RealTime (SP_STREAMPOS_REALTIME)
11086
11087#define SpeechAllElements (SPPR_ALL_ELEMENTS)
11088
11089#endif /* __SpeechConstants_MODULE_DEFINED__ */
11090typedef enum DISPID_SpeechDataKey {
11091    DISPID_SDKSetBinaryValue = 1,
11092    DISPID_SDKGetBinaryValue = 2,
11093    DISPID_SDKSetStringValue = 3,
11094    DISPID_SDKGetStringValue = 4,
11095    DISPID_SDKSetLongValue = 5,
11096    DISPID_SDKGetlongValue = 6,
11097    DISPID_SDKOpenKey = 7,
11098    DISPID_SDKCreateKey = 8,
11099    DISPID_SDKDeleteKey = 9,
11100    DISPID_SDKDeleteValue = 10,
11101    DISPID_SDKEnumKeys = 11,
11102    DISPID_SDKEnumValues = 12
11103} DISPID_SpeechDataKey;
11104typedef enum DISPID_SpeechObjectToken {
11105    DISPID_SOTId = 1,
11106    DISPID_SOTDataKey = 2,
11107    DISPID_SOTCategory = 3,
11108    DISPID_SOTGetDescription = 4,
11109    DISPID_SOTSetId = 5,
11110    DISPID_SOTGetAttribute = 6,
11111    DISPID_SOTCreateInstance = 7,
11112    DISPID_SOTRemove = 8,
11113    DISPID_SOTGetStorageFileName = 9,
11114    DISPID_SOTRemoveStorageFileName = 10,
11115    DISPID_SOTIsUISupported = 11,
11116    DISPID_SOTDisplayUI = 12,
11117    DISPID_SOTMatchesAttributes = 13
11118} DISPID_SpeechObjectToken;
11119typedef enum SpeechDataKeyLocation {
11120    SDKLDefaultLocation = SPDKL_DefaultLocation,
11121    SDKLCurrentUser = SPDKL_CurrentUser,
11122    SDKLLocalMachine = SPDKL_LocalMachine,
11123    SDKLCurrentConfig = SPDKL_CurrentConfig
11124} SpeechDataKeyLocation;
11125typedef enum SpeechTokenContext {
11126    STCInprocServer = CLSCTX_INPROC_SERVER,
11127    STCInprocHandler = CLSCTX_INPROC_HANDLER,
11128    STCLocalServer = CLSCTX_LOCAL_SERVER,
11129    STCRemoteServer = CLSCTX_REMOTE_SERVER,
11130    STCAll = ((CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER) | CLSCTX_LOCAL_SERVER) | CLSCTX_REMOTE_SERVER
11131} SpeechTokenContext;
11132typedef enum SpeechTokenShellFolder {
11133    STSF_AppData = 0x1a,
11134    STSF_LocalAppData = 0x1c,
11135    STSF_CommonAppData = 0x23,
11136    STSF_FlagCreate = 0x8000
11137} SpeechTokenShellFolder;
11138typedef enum DISPID_SpeechObjectTokens {
11139    DISPID_SOTsCount = 1,
11140    DISPID_SOTsItem = DISPID_VALUE,
11141    DISPID_SOTs_NewEnum = DISPID_NEWENUM
11142} DISPID_SpeechObjectTokens;
11143typedef enum DISPID_SpeechObjectTokenCategory {
11144    DISPID_SOTCId = 1,
11145    DISPID_SOTCDefault = 2,
11146    DISPID_SOTCSetId = 3,
11147    DISPID_SOTCGetDataKey = 4,
11148    DISPID_SOTCEnumerateTokens = 5
11149} DISPID_SpeechObjectTokenCategory;
11150/*****************************************************************************
11151 * ISpeechDataKey interface
11152 */
11153#ifndef __ISpeechDataKey_INTERFACE_DEFINED__
11154#define __ISpeechDataKey_INTERFACE_DEFINED__
11155
11156DEFINE_GUID(IID_ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd);
11157#if defined(__cplusplus) && !defined(CINTERFACE)
11158MIDL_INTERFACE("ce17c09b-4efa-44d5-a4c9-59d9585ab0cd")
11159ISpeechDataKey : public IDispatch
11160{
11161    virtual HRESULT STDMETHODCALLTYPE SetBinaryValue(
11162        const BSTR ValueName,
11163        VARIANT Value) = 0;
11164
11165    virtual HRESULT STDMETHODCALLTYPE GetBinaryValue(
11166        const BSTR ValueName,
11167        VARIANT *Value) = 0;
11168
11169    virtual HRESULT STDMETHODCALLTYPE SetStringValue(
11170        const BSTR ValueName,
11171        const BSTR Value) = 0;
11172
11173    virtual HRESULT STDMETHODCALLTYPE GetStringValue(
11174        const BSTR ValueName,
11175        BSTR *Value) = 0;
11176
11177    virtual HRESULT STDMETHODCALLTYPE SetLongValue(
11178        const BSTR ValueName,
11179        LONG Value) = 0;
11180
11181    virtual HRESULT STDMETHODCALLTYPE GetLongValue(
11182        const BSTR ValueName,
11183        LONG *Value) = 0;
11184
11185    virtual HRESULT STDMETHODCALLTYPE OpenKey(
11186        const BSTR SubKeyName,
11187        ISpeechDataKey **SubKey) = 0;
11188
11189    virtual HRESULT STDMETHODCALLTYPE CreateKey(
11190        const BSTR SubKeyName,
11191        ISpeechDataKey **SubKey) = 0;
11192
11193    virtual HRESULT STDMETHODCALLTYPE DeleteKey(
11194        const BSTR SubKeyName) = 0;
11195
11196    virtual HRESULT STDMETHODCALLTYPE DeleteValue(
11197        const BSTR ValueName) = 0;
11198
11199    virtual HRESULT STDMETHODCALLTYPE EnumKeys(
11200        LONG Index,
11201        BSTR *SubKeyName) = 0;
11202
11203    virtual HRESULT STDMETHODCALLTYPE EnumValues(
11204        LONG Index,
11205        BSTR *ValueName) = 0;
11206
11207};
11208#ifdef __CRT_UUID_DECL
11209__CRT_UUID_DECL(ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd)
11210#endif
11211#else
11212typedef struct ISpeechDataKeyVtbl {
11213    BEGIN_INTERFACE
11214
11215    /*** IUnknown methods ***/
11216    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11217        ISpeechDataKey *This,
11218        REFIID riid,
11219        void **ppvObject);
11220
11221    ULONG (STDMETHODCALLTYPE *AddRef)(
11222        ISpeechDataKey *This);
11223
11224    ULONG (STDMETHODCALLTYPE *Release)(
11225        ISpeechDataKey *This);
11226
11227    /*** IDispatch methods ***/
11228    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11229        ISpeechDataKey *This,
11230        UINT *pctinfo);
11231
11232    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11233        ISpeechDataKey *This,
11234        UINT iTInfo,
11235        LCID lcid,
11236        ITypeInfo **ppTInfo);
11237
11238    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11239        ISpeechDataKey *This,
11240        REFIID riid,
11241        LPOLESTR *rgszNames,
11242        UINT cNames,
11243        LCID lcid,
11244        DISPID *rgDispId);
11245
11246    HRESULT (STDMETHODCALLTYPE *Invoke)(
11247        ISpeechDataKey *This,
11248        DISPID dispIdMember,
11249        REFIID riid,
11250        LCID lcid,
11251        WORD wFlags,
11252        DISPPARAMS *pDispParams,
11253        VARIANT *pVarResult,
11254        EXCEPINFO *pExcepInfo,
11255        UINT *puArgErr);
11256
11257    /*** ISpeechDataKey methods ***/
11258    HRESULT (STDMETHODCALLTYPE *SetBinaryValue)(
11259        ISpeechDataKey *This,
11260        const BSTR ValueName,
11261        VARIANT Value);
11262
11263    HRESULT (STDMETHODCALLTYPE *GetBinaryValue)(
11264        ISpeechDataKey *This,
11265        const BSTR ValueName,
11266        VARIANT *Value);
11267
11268    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
11269        ISpeechDataKey *This,
11270        const BSTR ValueName,
11271        const BSTR Value);
11272
11273    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
11274        ISpeechDataKey *This,
11275        const BSTR ValueName,
11276        BSTR *Value);
11277
11278    HRESULT (STDMETHODCALLTYPE *SetLongValue)(
11279        ISpeechDataKey *This,
11280        const BSTR ValueName,
11281        LONG Value);
11282
11283    HRESULT (STDMETHODCALLTYPE *GetLongValue)(
11284        ISpeechDataKey *This,
11285        const BSTR ValueName,
11286        LONG *Value);
11287
11288    HRESULT (STDMETHODCALLTYPE *OpenKey)(
11289        ISpeechDataKey *This,
11290        const BSTR SubKeyName,
11291        ISpeechDataKey **SubKey);
11292
11293    HRESULT (STDMETHODCALLTYPE *CreateKey)(
11294        ISpeechDataKey *This,
11295        const BSTR SubKeyName,
11296        ISpeechDataKey **SubKey);
11297
11298    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
11299        ISpeechDataKey *This,
11300        const BSTR SubKeyName);
11301
11302    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
11303        ISpeechDataKey *This,
11304        const BSTR ValueName);
11305
11306    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
11307        ISpeechDataKey *This,
11308        LONG Index,
11309        BSTR *SubKeyName);
11310
11311    HRESULT (STDMETHODCALLTYPE *EnumValues)(
11312        ISpeechDataKey *This,
11313        LONG Index,
11314        BSTR *ValueName);
11315
11316    END_INTERFACE
11317} ISpeechDataKeyVtbl;
11318
11319interface ISpeechDataKey {
11320    CONST_VTBL ISpeechDataKeyVtbl* lpVtbl;
11321};
11322
11323#ifdef COBJMACROS
11324#ifndef WIDL_C_INLINE_WRAPPERS
11325/*** IUnknown methods ***/
11326#define ISpeechDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11327#define ISpeechDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
11328#define ISpeechDataKey_Release(This) (This)->lpVtbl->Release(This)
11329/*** IDispatch methods ***/
11330#define ISpeechDataKey_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11331#define ISpeechDataKey_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11332#define ISpeechDataKey_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11333#define ISpeechDataKey_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11334/*** ISpeechDataKey methods ***/
11335#define ISpeechDataKey_SetBinaryValue(This,ValueName,Value) (This)->lpVtbl->SetBinaryValue(This,ValueName,Value)
11336#define ISpeechDataKey_GetBinaryValue(This,ValueName,Value) (This)->lpVtbl->GetBinaryValue(This,ValueName,Value)
11337#define ISpeechDataKey_SetStringValue(This,ValueName,Value) (This)->lpVtbl->SetStringValue(This,ValueName,Value)
11338#define ISpeechDataKey_GetStringValue(This,ValueName,Value) (This)->lpVtbl->GetStringValue(This,ValueName,Value)
11339#define ISpeechDataKey_SetLongValue(This,ValueName,Value) (This)->lpVtbl->SetLongValue(This,ValueName,Value)
11340#define ISpeechDataKey_GetLongValue(This,ValueName,Value) (This)->lpVtbl->GetLongValue(This,ValueName,Value)
11341#define ISpeechDataKey_OpenKey(This,SubKeyName,SubKey) (This)->lpVtbl->OpenKey(This,SubKeyName,SubKey)
11342#define ISpeechDataKey_CreateKey(This,SubKeyName,SubKey) (This)->lpVtbl->CreateKey(This,SubKeyName,SubKey)
11343#define ISpeechDataKey_DeleteKey(This,SubKeyName) (This)->lpVtbl->DeleteKey(This,SubKeyName)
11344#define ISpeechDataKey_DeleteValue(This,ValueName) (This)->lpVtbl->DeleteValue(This,ValueName)
11345#define ISpeechDataKey_EnumKeys(This,Index,SubKeyName) (This)->lpVtbl->EnumKeys(This,Index,SubKeyName)
11346#define ISpeechDataKey_EnumValues(This,Index,ValueName) (This)->lpVtbl->EnumValues(This,Index,ValueName)
11347#else
11348/*** IUnknown methods ***/
11349static inline HRESULT ISpeechDataKey_QueryInterface(ISpeechDataKey* This,REFIID riid,void **ppvObject) {
11350    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11351}
11352static inline ULONG ISpeechDataKey_AddRef(ISpeechDataKey* This) {
11353    return This->lpVtbl->AddRef(This);
11354}
11355static inline ULONG ISpeechDataKey_Release(ISpeechDataKey* This) {
11356    return This->lpVtbl->Release(This);
11357}
11358/*** IDispatch methods ***/
11359static inline HRESULT ISpeechDataKey_GetTypeInfoCount(ISpeechDataKey* This,UINT *pctinfo) {
11360    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11361}
11362static inline HRESULT ISpeechDataKey_GetTypeInfo(ISpeechDataKey* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11363    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11364}
11365static inline HRESULT ISpeechDataKey_GetIDsOfNames(ISpeechDataKey* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11366    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11367}
11368static inline HRESULT ISpeechDataKey_Invoke(ISpeechDataKey* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11369    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11370}
11371/*** ISpeechDataKey methods ***/
11372static inline HRESULT ISpeechDataKey_SetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT Value) {
11373    return This->lpVtbl->SetBinaryValue(This,ValueName,Value);
11374}
11375static inline HRESULT ISpeechDataKey_GetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT *Value) {
11376    return This->lpVtbl->GetBinaryValue(This,ValueName,Value);
11377}
11378static inline HRESULT ISpeechDataKey_SetStringValue(ISpeechDataKey* This,const BSTR ValueName,const BSTR Value) {
11379    return This->lpVtbl->SetStringValue(This,ValueName,Value);
11380}
11381static inline HRESULT ISpeechDataKey_GetStringValue(ISpeechDataKey* This,const BSTR ValueName,BSTR *Value) {
11382    return This->lpVtbl->GetStringValue(This,ValueName,Value);
11383}
11384static inline HRESULT ISpeechDataKey_SetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG Value) {
11385    return This->lpVtbl->SetLongValue(This,ValueName,Value);
11386}
11387static inline HRESULT ISpeechDataKey_GetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG *Value) {
11388    return This->lpVtbl->GetLongValue(This,ValueName,Value);
11389}
11390static inline HRESULT ISpeechDataKey_OpenKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
11391    return This->lpVtbl->OpenKey(This,SubKeyName,SubKey);
11392}
11393static inline HRESULT ISpeechDataKey_CreateKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
11394    return This->lpVtbl->CreateKey(This,SubKeyName,SubKey);
11395}
11396static inline HRESULT ISpeechDataKey_DeleteKey(ISpeechDataKey* This,const BSTR SubKeyName) {
11397    return This->lpVtbl->DeleteKey(This,SubKeyName);
11398}
11399static inline HRESULT ISpeechDataKey_DeleteValue(ISpeechDataKey* This,const BSTR ValueName) {
11400    return This->lpVtbl->DeleteValue(This,ValueName);
11401}
11402static inline HRESULT ISpeechDataKey_EnumKeys(ISpeechDataKey* This,LONG Index,BSTR *SubKeyName) {
11403    return This->lpVtbl->EnumKeys(This,Index,SubKeyName);
11404}
11405static inline HRESULT ISpeechDataKey_EnumValues(ISpeechDataKey* This,LONG Index,BSTR *ValueName) {
11406    return This->lpVtbl->EnumValues(This,Index,ValueName);
11407}
11408#endif
11409#endif
11410
11411#endif
11412
11413
11414#endif  /* __ISpeechDataKey_INTERFACE_DEFINED__ */
11415
11416/*****************************************************************************
11417 * ISpeechObjectToken interface
11418 */
11419#ifndef __ISpeechObjectToken_INTERFACE_DEFINED__
11420#define __ISpeechObjectToken_INTERFACE_DEFINED__
11421
11422DEFINE_GUID(IID_ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c);
11423#if defined(__cplusplus) && !defined(CINTERFACE)
11424MIDL_INTERFACE("c74a3adc-b727-4500-a84a-b526721c8b8c")
11425ISpeechObjectToken : public IDispatch
11426{
11427    virtual HRESULT STDMETHODCALLTYPE get_Id(
11428        BSTR *ObjectId) = 0;
11429
11430    virtual HRESULT STDMETHODCALLTYPE get_DataKey(
11431        ISpeechDataKey **DataKey) = 0;
11432
11433    virtual HRESULT STDMETHODCALLTYPE get_Category(
11434        ISpeechObjectTokenCategory **Category) = 0;
11435
11436    virtual HRESULT STDMETHODCALLTYPE GetDescription(
11437        LONG Locale,
11438        BSTR *Description) = 0;
11439
11440    virtual HRESULT STDMETHODCALLTYPE SetId(
11441        BSTR Id,
11442        BSTR CategoryID = L"",
11443        VARIANT_BOOL CreateIfNotExist = 0) = 0;
11444
11445    virtual HRESULT STDMETHODCALLTYPE GetAttribute(
11446        BSTR AttributeName,
11447        BSTR *AttributeValue) = 0;
11448
11449    virtual HRESULT STDMETHODCALLTYPE CreateInstance(
11450        IUnknown *pUnkOuter,
11451        SpeechTokenContext ClsContext,
11452        IUnknown **Object) = 0;
11453
11454    virtual HRESULT STDMETHODCALLTYPE Remove(
11455        BSTR ObjectStorageCLSID) = 0;
11456
11457    virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
11458        BSTR ObjectStorageCLSID,
11459        BSTR KeyName,
11460        BSTR FileName,
11461        SpeechTokenShellFolder Folder,
11462        BSTR *FilePath) = 0;
11463
11464    virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
11465        BSTR ObjectStorageCLSID,
11466        BSTR KeyName,
11467        VARIANT_BOOL DeleteFile) = 0;
11468
11469    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
11470        const BSTR TypeOfUI,
11471        const VARIANT *ExtraData,
11472        IUnknown *Object,
11473        VARIANT_BOOL *Supported) = 0;
11474
11475    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
11476        LONG hWnd,
11477        BSTR Title,
11478        const BSTR TypeOfUI,
11479        const VARIANT *ExtraData = 0,
11480        IUnknown *Object = 0) = 0;
11481
11482    virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
11483        BSTR Attributes,
11484        VARIANT_BOOL *Matches) = 0;
11485
11486};
11487#ifdef __CRT_UUID_DECL
11488__CRT_UUID_DECL(ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c)
11489#endif
11490#else
11491typedef struct ISpeechObjectTokenVtbl {
11492    BEGIN_INTERFACE
11493
11494    /*** IUnknown methods ***/
11495    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11496        ISpeechObjectToken *This,
11497        REFIID riid,
11498        void **ppvObject);
11499
11500    ULONG (STDMETHODCALLTYPE *AddRef)(
11501        ISpeechObjectToken *This);
11502
11503    ULONG (STDMETHODCALLTYPE *Release)(
11504        ISpeechObjectToken *This);
11505
11506    /*** IDispatch methods ***/
11507    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11508        ISpeechObjectToken *This,
11509        UINT *pctinfo);
11510
11511    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11512        ISpeechObjectToken *This,
11513        UINT iTInfo,
11514        LCID lcid,
11515        ITypeInfo **ppTInfo);
11516
11517    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11518        ISpeechObjectToken *This,
11519        REFIID riid,
11520        LPOLESTR *rgszNames,
11521        UINT cNames,
11522        LCID lcid,
11523        DISPID *rgDispId);
11524
11525    HRESULT (STDMETHODCALLTYPE *Invoke)(
11526        ISpeechObjectToken *This,
11527        DISPID dispIdMember,
11528        REFIID riid,
11529        LCID lcid,
11530        WORD wFlags,
11531        DISPPARAMS *pDispParams,
11532        VARIANT *pVarResult,
11533        EXCEPINFO *pExcepInfo,
11534        UINT *puArgErr);
11535
11536    /*** ISpeechObjectToken methods ***/
11537    HRESULT (STDMETHODCALLTYPE *get_Id)(
11538        ISpeechObjectToken *This,
11539        BSTR *ObjectId);
11540
11541    HRESULT (STDMETHODCALLTYPE *get_DataKey)(
11542        ISpeechObjectToken *This,
11543        ISpeechDataKey **DataKey);
11544
11545    HRESULT (STDMETHODCALLTYPE *get_Category)(
11546        ISpeechObjectToken *This,
11547        ISpeechObjectTokenCategory **Category);
11548
11549    HRESULT (STDMETHODCALLTYPE *GetDescription)(
11550        ISpeechObjectToken *This,
11551        LONG Locale,
11552        BSTR *Description);
11553
11554    HRESULT (STDMETHODCALLTYPE *SetId)(
11555        ISpeechObjectToken *This,
11556        BSTR Id,
11557        BSTR CategoryID,
11558        VARIANT_BOOL CreateIfNotExist);
11559
11560    HRESULT (STDMETHODCALLTYPE *GetAttribute)(
11561        ISpeechObjectToken *This,
11562        BSTR AttributeName,
11563        BSTR *AttributeValue);
11564
11565    HRESULT (STDMETHODCALLTYPE *CreateInstance)(
11566        ISpeechObjectToken *This,
11567        IUnknown *pUnkOuter,
11568        SpeechTokenContext ClsContext,
11569        IUnknown **Object);
11570
11571    HRESULT (STDMETHODCALLTYPE *Remove)(
11572        ISpeechObjectToken *This,
11573        BSTR ObjectStorageCLSID);
11574
11575    HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
11576        ISpeechObjectToken *This,
11577        BSTR ObjectStorageCLSID,
11578        BSTR KeyName,
11579        BSTR FileName,
11580        SpeechTokenShellFolder Folder,
11581        BSTR *FilePath);
11582
11583    HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
11584        ISpeechObjectToken *This,
11585        BSTR ObjectStorageCLSID,
11586        BSTR KeyName,
11587        VARIANT_BOOL DeleteFile);
11588
11589    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
11590        ISpeechObjectToken *This,
11591        const BSTR TypeOfUI,
11592        const VARIANT *ExtraData,
11593        IUnknown *Object,
11594        VARIANT_BOOL *Supported);
11595
11596    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
11597        ISpeechObjectToken *This,
11598        LONG hWnd,
11599        BSTR Title,
11600        const BSTR TypeOfUI,
11601        const VARIANT *ExtraData,
11602        IUnknown *Object);
11603
11604    HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
11605        ISpeechObjectToken *This,
11606        BSTR Attributes,
11607        VARIANT_BOOL *Matches);
11608
11609    END_INTERFACE
11610} ISpeechObjectTokenVtbl;
11611
11612interface ISpeechObjectToken {
11613    CONST_VTBL ISpeechObjectTokenVtbl* lpVtbl;
11614};
11615
11616#ifdef COBJMACROS
11617#ifndef WIDL_C_INLINE_WRAPPERS
11618/*** IUnknown methods ***/
11619#define ISpeechObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11620#define ISpeechObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
11621#define ISpeechObjectToken_Release(This) (This)->lpVtbl->Release(This)
11622/*** IDispatch methods ***/
11623#define ISpeechObjectToken_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11624#define ISpeechObjectToken_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11625#define ISpeechObjectToken_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11626#define ISpeechObjectToken_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11627/*** ISpeechObjectToken methods ***/
11628#define ISpeechObjectToken_get_Id(This,ObjectId) (This)->lpVtbl->get_Id(This,ObjectId)
11629#define ISpeechObjectToken_get_DataKey(This,DataKey) (This)->lpVtbl->get_DataKey(This,DataKey)
11630#define ISpeechObjectToken_get_Category(This,Category) (This)->lpVtbl->get_Category(This,Category)
11631#define ISpeechObjectToken_GetDescription(This,Locale,Description) (This)->lpVtbl->GetDescription(This,Locale,Description)
11632#define ISpeechObjectToken_SetId(This,Id,CategoryID,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist)
11633#define ISpeechObjectToken_GetAttribute(This,AttributeName,AttributeValue) (This)->lpVtbl->GetAttribute(This,AttributeName,AttributeValue)
11634#define ISpeechObjectToken_CreateInstance(This,pUnkOuter,ClsContext,Object) (This)->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object)
11635#define ISpeechObjectToken_Remove(This,ObjectStorageCLSID) (This)->lpVtbl->Remove(This,ObjectStorageCLSID)
11636#define ISpeechObjectToken_GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath) (This)->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath)
11637#define ISpeechObjectToken_RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile)
11638#define ISpeechObjectToken_IsUISupported(This,TypeOfUI,ExtraData,Object,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported)
11639#define ISpeechObjectToken_DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object) (This)->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object)
11640#define ISpeechObjectToken_MatchesAttributes(This,Attributes,Matches) (This)->lpVtbl->MatchesAttributes(This,Attributes,Matches)
11641#else
11642/*** IUnknown methods ***/
11643static inline HRESULT ISpeechObjectToken_QueryInterface(ISpeechObjectToken* This,REFIID riid,void **ppvObject) {
11644    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11645}
11646static inline ULONG ISpeechObjectToken_AddRef(ISpeechObjectToken* This) {
11647    return This->lpVtbl->AddRef(This);
11648}
11649static inline ULONG ISpeechObjectToken_Release(ISpeechObjectToken* This) {
11650    return This->lpVtbl->Release(This);
11651}
11652/*** IDispatch methods ***/
11653static inline HRESULT ISpeechObjectToken_GetTypeInfoCount(ISpeechObjectToken* This,UINT *pctinfo) {
11654    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11655}
11656static inline HRESULT ISpeechObjectToken_GetTypeInfo(ISpeechObjectToken* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11657    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11658}
11659static inline HRESULT ISpeechObjectToken_GetIDsOfNames(ISpeechObjectToken* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11660    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11661}
11662static inline HRESULT ISpeechObjectToken_Invoke(ISpeechObjectToken* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11663    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11664}
11665/*** ISpeechObjectToken methods ***/
11666static inline HRESULT ISpeechObjectToken_get_Id(ISpeechObjectToken* This,BSTR *ObjectId) {
11667    return This->lpVtbl->get_Id(This,ObjectId);
11668}
11669static inline HRESULT ISpeechObjectToken_get_DataKey(ISpeechObjectToken* This,ISpeechDataKey **DataKey) {
11670    return This->lpVtbl->get_DataKey(This,DataKey);
11671}
11672static inline HRESULT ISpeechObjectToken_get_Category(ISpeechObjectToken* This,ISpeechObjectTokenCategory **Category) {
11673    return This->lpVtbl->get_Category(This,Category);
11674}
11675static inline HRESULT ISpeechObjectToken_GetDescription(ISpeechObjectToken* This,LONG Locale,BSTR *Description) {
11676    return This->lpVtbl->GetDescription(This,Locale,Description);
11677}
11678static inline HRESULT ISpeechObjectToken_SetId(ISpeechObjectToken* This,BSTR Id,BSTR CategoryID,VARIANT_BOOL CreateIfNotExist) {
11679    return This->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist);
11680}
11681static inline HRESULT ISpeechObjectToken_GetAttribute(ISpeechObjectToken* This,BSTR AttributeName,BSTR *AttributeValue) {
11682    return This->lpVtbl->GetAttribute(This,AttributeName,AttributeValue);
11683}
11684static inline HRESULT ISpeechObjectToken_CreateInstance(ISpeechObjectToken* This,IUnknown *pUnkOuter,SpeechTokenContext ClsContext,IUnknown **Object) {
11685    return This->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object);
11686}
11687static inline HRESULT ISpeechObjectToken_Remove(ISpeechObjectToken* This,BSTR ObjectStorageCLSID) {
11688    return This->lpVtbl->Remove(This,ObjectStorageCLSID);
11689}
11690static inline HRESULT ISpeechObjectToken_GetStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,BSTR FileName,SpeechTokenShellFolder Folder,BSTR *FilePath) {
11691    return This->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath);
11692}
11693static inline HRESULT ISpeechObjectToken_RemoveStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,VARIANT_BOOL DeleteFile) {
11694    return This->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile);
11695}
11696static inline HRESULT ISpeechObjectToken_IsUISupported(ISpeechObjectToken* This,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object,VARIANT_BOOL *Supported) {
11697    return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported);
11698}
11699static inline HRESULT ISpeechObjectToken_DisplayUI(ISpeechObjectToken* This,LONG hWnd,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object) {
11700    return This->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object);
11701}
11702static inline HRESULT ISpeechObjectToken_MatchesAttributes(ISpeechObjectToken* This,BSTR Attributes,VARIANT_BOOL *Matches) {
11703    return This->lpVtbl->MatchesAttributes(This,Attributes,Matches);
11704}
11705#endif
11706#endif
11707
11708#endif
11709
11710
11711#endif  /* __ISpeechObjectToken_INTERFACE_DEFINED__ */
11712
11713/*****************************************************************************
11714 * ISpeechObjectTokens interface
11715 */
11716#ifndef __ISpeechObjectTokens_INTERFACE_DEFINED__
11717#define __ISpeechObjectTokens_INTERFACE_DEFINED__
11718
11719DEFINE_GUID(IID_ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f);
11720#if defined(__cplusplus) && !defined(CINTERFACE)
11721MIDL_INTERFACE("9285b776-2e7b-4bc0-b53e-580eb6fa967f")
11722ISpeechObjectTokens : public IDispatch
11723{
11724    virtual HRESULT STDMETHODCALLTYPE get_Count(
11725        LONG *Count) = 0;
11726
11727    virtual HRESULT STDMETHODCALLTYPE Item(
11728        LONG Index,
11729        ISpeechObjectToken **Token) = 0;
11730
11731    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
11732        IUnknown **ppEnumVARIANT) = 0;
11733
11734};
11735#ifdef __CRT_UUID_DECL
11736__CRT_UUID_DECL(ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f)
11737#endif
11738#else
11739typedef struct ISpeechObjectTokensVtbl {
11740    BEGIN_INTERFACE
11741
11742    /*** IUnknown methods ***/
11743    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11744        ISpeechObjectTokens *This,
11745        REFIID riid,
11746        void **ppvObject);
11747
11748    ULONG (STDMETHODCALLTYPE *AddRef)(
11749        ISpeechObjectTokens *This);
11750
11751    ULONG (STDMETHODCALLTYPE *Release)(
11752        ISpeechObjectTokens *This);
11753
11754    /*** IDispatch methods ***/
11755    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11756        ISpeechObjectTokens *This,
11757        UINT *pctinfo);
11758
11759    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11760        ISpeechObjectTokens *This,
11761        UINT iTInfo,
11762        LCID lcid,
11763        ITypeInfo **ppTInfo);
11764
11765    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11766        ISpeechObjectTokens *This,
11767        REFIID riid,
11768        LPOLESTR *rgszNames,
11769        UINT cNames,
11770        LCID lcid,
11771        DISPID *rgDispId);
11772
11773    HRESULT (STDMETHODCALLTYPE *Invoke)(
11774        ISpeechObjectTokens *This,
11775        DISPID dispIdMember,
11776        REFIID riid,
11777        LCID lcid,
11778        WORD wFlags,
11779        DISPPARAMS *pDispParams,
11780        VARIANT *pVarResult,
11781        EXCEPINFO *pExcepInfo,
11782        UINT *puArgErr);
11783
11784    /*** ISpeechObjectTokens methods ***/
11785    HRESULT (STDMETHODCALLTYPE *get_Count)(
11786        ISpeechObjectTokens *This,
11787        LONG *Count);
11788
11789    HRESULT (STDMETHODCALLTYPE *Item)(
11790        ISpeechObjectTokens *This,
11791        LONG Index,
11792        ISpeechObjectToken **Token);
11793
11794    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
11795        ISpeechObjectTokens *This,
11796        IUnknown **ppEnumVARIANT);
11797
11798    END_INTERFACE
11799} ISpeechObjectTokensVtbl;
11800
11801interface ISpeechObjectTokens {
11802    CONST_VTBL ISpeechObjectTokensVtbl* lpVtbl;
11803};
11804
11805#ifdef COBJMACROS
11806#ifndef WIDL_C_INLINE_WRAPPERS
11807/*** IUnknown methods ***/
11808#define ISpeechObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11809#define ISpeechObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
11810#define ISpeechObjectTokens_Release(This) (This)->lpVtbl->Release(This)
11811/*** IDispatch methods ***/
11812#define ISpeechObjectTokens_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11813#define ISpeechObjectTokens_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11814#define ISpeechObjectTokens_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11815#define ISpeechObjectTokens_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11816/*** ISpeechObjectTokens methods ***/
11817#define ISpeechObjectTokens_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
11818#define ISpeechObjectTokens_Item(This,Index,Token) (This)->lpVtbl->Item(This,Index,Token)
11819#define ISpeechObjectTokens_get__NewEnum(This,ppEnumVARIANT) (This)->lpVtbl->get__NewEnum(This,ppEnumVARIANT)
11820#else
11821/*** IUnknown methods ***/
11822static inline HRESULT ISpeechObjectTokens_QueryInterface(ISpeechObjectTokens* This,REFIID riid,void **ppvObject) {
11823    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11824}
11825static inline ULONG ISpeechObjectTokens_AddRef(ISpeechObjectTokens* This) {
11826    return This->lpVtbl->AddRef(This);
11827}
11828static inline ULONG ISpeechObjectTokens_Release(ISpeechObjectTokens* This) {
11829    return This->lpVtbl->Release(This);
11830}
11831/*** IDispatch methods ***/
11832static inline HRESULT ISpeechObjectTokens_GetTypeInfoCount(ISpeechObjectTokens* This,UINT *pctinfo) {
11833    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11834}
11835static inline HRESULT ISpeechObjectTokens_GetTypeInfo(ISpeechObjectTokens* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11836    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11837}
11838static inline HRESULT ISpeechObjectTokens_GetIDsOfNames(ISpeechObjectTokens* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11839    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11840}
11841static inline HRESULT ISpeechObjectTokens_Invoke(ISpeechObjectTokens* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11842    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11843}
11844/*** ISpeechObjectTokens methods ***/
11845static inline HRESULT ISpeechObjectTokens_get_Count(ISpeechObjectTokens* This,LONG *Count) {
11846    return This->lpVtbl->get_Count(This,Count);
11847}
11848static inline HRESULT ISpeechObjectTokens_Item(ISpeechObjectTokens* This,LONG Index,ISpeechObjectToken **Token) {
11849    return This->lpVtbl->Item(This,Index,Token);
11850}
11851static inline HRESULT ISpeechObjectTokens_get__NewEnum(ISpeechObjectTokens* This,IUnknown **ppEnumVARIANT) {
11852    return This->lpVtbl->get__NewEnum(This,ppEnumVARIANT);
11853}
11854#endif
11855#endif
11856
11857#endif
11858
11859
11860#endif  /* __ISpeechObjectTokens_INTERFACE_DEFINED__ */
11861
11862/*****************************************************************************
11863 * ISpeechObjectTokenCategory interface
11864 */
11865#ifndef __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
11866#define __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
11867
11868DEFINE_GUID(IID_ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69);
11869#if defined(__cplusplus) && !defined(CINTERFACE)
11870MIDL_INTERFACE("ca7eac50-2d01-4145-86d4-5ae7d70f4469")
11871ISpeechObjectTokenCategory : public IDispatch
11872{
11873    virtual HRESULT STDMETHODCALLTYPE get_Id(
11874        BSTR *Id) = 0;
11875
11876    virtual HRESULT STDMETHODCALLTYPE put_Default(
11877        const BSTR TokenId) = 0;
11878
11879    virtual HRESULT STDMETHODCALLTYPE get_Default(
11880        BSTR *TokenId) = 0;
11881
11882    virtual HRESULT STDMETHODCALLTYPE SetId(
11883        const BSTR Id,
11884        VARIANT_BOOL CreateIfNotExist = 0) = 0;
11885
11886    virtual HRESULT STDMETHODCALLTYPE GetDataKey(
11887        SpeechDataKeyLocation Location,
11888        ISpeechDataKey **DataKey) = 0;
11889
11890    virtual HRESULT STDMETHODCALLTYPE EnumerateTokens(
11891        BSTR RequiredAttributes,
11892        BSTR OptionalAttributes,
11893        ISpeechObjectTokens **Tokens) = 0;
11894
11895};
11896#ifdef __CRT_UUID_DECL
11897__CRT_UUID_DECL(ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69)
11898#endif
11899#else
11900typedef struct ISpeechObjectTokenCategoryVtbl {
11901    BEGIN_INTERFACE
11902
11903    /*** IUnknown methods ***/
11904    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11905        ISpeechObjectTokenCategory *This,
11906        REFIID riid,
11907        void **ppvObject);
11908
11909    ULONG (STDMETHODCALLTYPE *AddRef)(
11910        ISpeechObjectTokenCategory *This);
11911
11912    ULONG (STDMETHODCALLTYPE *Release)(
11913        ISpeechObjectTokenCategory *This);
11914
11915    /*** IDispatch methods ***/
11916    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11917        ISpeechObjectTokenCategory *This,
11918        UINT *pctinfo);
11919
11920    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11921        ISpeechObjectTokenCategory *This,
11922        UINT iTInfo,
11923        LCID lcid,
11924        ITypeInfo **ppTInfo);
11925
11926    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11927        ISpeechObjectTokenCategory *This,
11928        REFIID riid,
11929        LPOLESTR *rgszNames,
11930        UINT cNames,
11931        LCID lcid,
11932        DISPID *rgDispId);
11933
11934    HRESULT (STDMETHODCALLTYPE *Invoke)(
11935        ISpeechObjectTokenCategory *This,
11936        DISPID dispIdMember,
11937        REFIID riid,
11938        LCID lcid,
11939        WORD wFlags,
11940        DISPPARAMS *pDispParams,
11941        VARIANT *pVarResult,
11942        EXCEPINFO *pExcepInfo,
11943        UINT *puArgErr);
11944
11945    /*** ISpeechObjectTokenCategory methods ***/
11946    HRESULT (STDMETHODCALLTYPE *get_Id)(
11947        ISpeechObjectTokenCategory *This,
11948        BSTR *Id);
11949
11950    HRESULT (STDMETHODCALLTYPE *put_Default)(
11951        ISpeechObjectTokenCategory *This,
11952        const BSTR TokenId);
11953
11954    HRESULT (STDMETHODCALLTYPE *get_Default)(
11955        ISpeechObjectTokenCategory *This,
11956        BSTR *TokenId);
11957
11958    HRESULT (STDMETHODCALLTYPE *SetId)(
11959        ISpeechObjectTokenCategory *This,
11960        const BSTR Id,
11961        VARIANT_BOOL CreateIfNotExist);
11962
11963    HRESULT (STDMETHODCALLTYPE *GetDataKey)(
11964        ISpeechObjectTokenCategory *This,
11965        SpeechDataKeyLocation Location,
11966        ISpeechDataKey **DataKey);
11967
11968    HRESULT (STDMETHODCALLTYPE *EnumerateTokens)(
11969        ISpeechObjectTokenCategory *This,
11970        BSTR RequiredAttributes,
11971        BSTR OptionalAttributes,
11972        ISpeechObjectTokens **Tokens);
11973
11974    END_INTERFACE
11975} ISpeechObjectTokenCategoryVtbl;
11976
11977interface ISpeechObjectTokenCategory {
11978    CONST_VTBL ISpeechObjectTokenCategoryVtbl* lpVtbl;
11979};
11980
11981#ifdef COBJMACROS
11982#ifndef WIDL_C_INLINE_WRAPPERS
11983/*** IUnknown methods ***/
11984#define ISpeechObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11985#define ISpeechObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
11986#define ISpeechObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
11987/*** IDispatch methods ***/
11988#define ISpeechObjectTokenCategory_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11989#define ISpeechObjectTokenCategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11990#define ISpeechObjectTokenCategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11991#define ISpeechObjectTokenCategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11992/*** ISpeechObjectTokenCategory methods ***/
11993#define ISpeechObjectTokenCategory_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
11994#define ISpeechObjectTokenCategory_put_Default(This,TokenId) (This)->lpVtbl->put_Default(This,TokenId)
11995#define ISpeechObjectTokenCategory_get_Default(This,TokenId) (This)->lpVtbl->get_Default(This,TokenId)
11996#define ISpeechObjectTokenCategory_SetId(This,Id,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CreateIfNotExist)
11997#define ISpeechObjectTokenCategory_GetDataKey(This,Location,DataKey) (This)->lpVtbl->GetDataKey(This,Location,DataKey)
11998#define ISpeechObjectTokenCategory_EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens) (This)->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens)
11999#else
12000/*** IUnknown methods ***/
12001static inline HRESULT ISpeechObjectTokenCategory_QueryInterface(ISpeechObjectTokenCategory* This,REFIID riid,void **ppvObject) {
12002    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12003}
12004static inline ULONG ISpeechObjectTokenCategory_AddRef(ISpeechObjectTokenCategory* This) {
12005    return This->lpVtbl->AddRef(This);
12006}
12007static inline ULONG ISpeechObjectTokenCategory_Release(ISpeechObjectTokenCategory* This) {
12008    return This->lpVtbl->Release(This);
12009}
12010/*** IDispatch methods ***/
12011static inline HRESULT ISpeechObjectTokenCategory_GetTypeInfoCount(ISpeechObjectTokenCategory* This,UINT *pctinfo) {
12012    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12013}
12014static inline HRESULT ISpeechObjectTokenCategory_GetTypeInfo(ISpeechObjectTokenCategory* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12015    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12016}
12017static inline HRESULT ISpeechObjectTokenCategory_GetIDsOfNames(ISpeechObjectTokenCategory* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12018    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12019}
12020static inline HRESULT ISpeechObjectTokenCategory_Invoke(ISpeechObjectTokenCategory* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12021    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12022}
12023/*** ISpeechObjectTokenCategory methods ***/
12024static inline HRESULT ISpeechObjectTokenCategory_get_Id(ISpeechObjectTokenCategory* This,BSTR *Id) {
12025    return This->lpVtbl->get_Id(This,Id);
12026}
12027static inline HRESULT ISpeechObjectTokenCategory_put_Default(ISpeechObjectTokenCategory* This,const BSTR TokenId) {
12028    return This->lpVtbl->put_Default(This,TokenId);
12029}
12030static inline HRESULT ISpeechObjectTokenCategory_get_Default(ISpeechObjectTokenCategory* This,BSTR *TokenId) {
12031    return This->lpVtbl->get_Default(This,TokenId);
12032}
12033static inline HRESULT ISpeechObjectTokenCategory_SetId(ISpeechObjectTokenCategory* This,const BSTR Id,VARIANT_BOOL CreateIfNotExist) {
12034    return This->lpVtbl->SetId(This,Id,CreateIfNotExist);
12035}
12036static inline HRESULT ISpeechObjectTokenCategory_GetDataKey(ISpeechObjectTokenCategory* This,SpeechDataKeyLocation Location,ISpeechDataKey **DataKey) {
12037    return This->lpVtbl->GetDataKey(This,Location,DataKey);
12038}
12039static inline HRESULT ISpeechObjectTokenCategory_EnumerateTokens(ISpeechObjectTokenCategory* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **Tokens) {
12040    return This->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens);
12041}
12042#endif
12043#endif
12044
12045#endif
12046
12047
12048#endif  /* __ISpeechObjectTokenCategory_INTERFACE_DEFINED__ */
12049
12050typedef enum SpeechAudioFormatType {
12051    SAFTDefault = -1,
12052    SAFTNoAssignedFormat = 0,
12053    SAFTText = 1,
12054    SAFTNonStandardFormat = 2,
12055    SAFTExtendedAudioFormat = 3,
12056    SAFT8kHz8BitMono = 4,
12057    SAFT8kHz8BitStereo = 5,
12058    SAFT8kHz16BitMono = 6,
12059    SAFT8kHz16BitStereo = 7,
12060    SAFT11kHz8BitMono = 8,
12061    SAFT11kHz8BitStereo = 9,
12062    SAFT11kHz16BitMono = 10,
12063    SAFT11kHz16BitStereo = 11,
12064    SAFT12kHz8BitMono = 12,
12065    SAFT12kHz8BitStereo = 13,
12066    SAFT12kHz16BitMono = 14,
12067    SAFT12kHz16BitStereo = 15,
12068    SAFT16kHz8BitMono = 16,
12069    SAFT16kHz8BitStereo = 17,
12070    SAFT16kHz16BitMono = 18,
12071    SAFT16kHz16BitStereo = 19,
12072    SAFT22kHz8BitMono = 20,
12073    SAFT22kHz8BitStereo = 21,
12074    SAFT22kHz16BitMono = 22,
12075    SAFT22kHz16BitStereo = 23,
12076    SAFT24kHz8BitMono = 24,
12077    SAFT24kHz8BitStereo = 25,
12078    SAFT24kHz16BitMono = 26,
12079    SAFT24kHz16BitStereo = 27,
12080    SAFT32kHz8BitMono = 28,
12081    SAFT32kHz8BitStereo = 29,
12082    SAFT32kHz16BitMono = 30,
12083    SAFT32kHz16BitStereo = 31,
12084    SAFT44kHz8BitMono = 32,
12085    SAFT44kHz8BitStereo = 33,
12086    SAFT44kHz16BitMono = 34,
12087    SAFT44kHz16BitStereo = 35,
12088    SAFT48kHz8BitMono = 36,
12089    SAFT48kHz8BitStereo = 37,
12090    SAFT48kHz16BitMono = 38,
12091    SAFT48kHz16BitStereo = 39,
12092    SAFTTrueSpeech_8kHz1BitMono = 40,
12093    SAFTCCITT_ALaw_8kHzMono = 41,
12094    SAFTCCITT_ALaw_8kHzStereo = 42,
12095    SAFTCCITT_ALaw_11kHzMono = 43,
12096    SAFTCCITT_ALaw_11kHzStereo = 44,
12097    SAFTCCITT_ALaw_22kHzMono = 45,
12098    SAFTCCITT_ALaw_22kHzStereo = 46,
12099    SAFTCCITT_ALaw_44kHzMono = 47,
12100    SAFTCCITT_ALaw_44kHzStereo = 48,
12101    SAFTCCITT_uLaw_8kHzMono = 49,
12102    SAFTCCITT_uLaw_8kHzStereo = 50,
12103    SAFTCCITT_uLaw_11kHzMono = 51,
12104    SAFTCCITT_uLaw_11kHzStereo = 52,
12105    SAFTCCITT_uLaw_22kHzMono = 53,
12106    SAFTCCITT_uLaw_22kHzStereo = 54,
12107    SAFTCCITT_uLaw_44kHzMono = 55,
12108    SAFTCCITT_uLaw_44kHzStereo = 56,
12109    SAFTADPCM_8kHzMono = 57,
12110    SAFTADPCM_8kHzStereo = 58,
12111    SAFTADPCM_11kHzMono = 59,
12112    SAFTADPCM_11kHzStereo = 60,
12113    SAFTADPCM_22kHzMono = 61,
12114    SAFTADPCM_22kHzStereo = 62,
12115    SAFTADPCM_44kHzMono = 63,
12116    SAFTADPCM_44kHzStereo = 64,
12117    SAFTGSM610_8kHzMono = 65,
12118    SAFTGSM610_11kHzMono = 66,
12119    SAFTGSM610_22kHzMono = 67,
12120    SAFTGSM610_44kHzMono = 68
12121} SpeechAudioFormatType;
12122typedef enum DISPID_SpeechAudioFormat {
12123    DISPID_SAFType = 1,
12124    DISPID_SAFGuid = 2,
12125    DISPID_SAFGetWaveFormatEx = 3,
12126    DISPID_SAFSetWaveFormatEx = 4
12127} DISPID_SpeechAudioFormat;
12128typedef enum DISPID_SpeechBaseStream {
12129    DISPID_SBSFormat = 1,
12130    DISPID_SBSRead = 2,
12131    DISPID_SBSWrite = 3,
12132    DISPID_SBSSeek = 4
12133} DISPID_SpeechBaseStream;
12134typedef enum SpeechStreamSeekPositionType {
12135    SSSPTRelativeToStart = STREAM_SEEK_SET,
12136    SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR,
12137    SSSPTRelativeToEnd = STREAM_SEEK_END
12138} SpeechStreamSeekPositionType;
12139typedef enum DISPID_SpeechAudio {
12140    DISPID_SAStatus = 200,
12141    DISPID_SABufferInfo = 201,
12142    DISPID_SADefaultFormat = 202,
12143    DISPID_SAVolume = 203,
12144    DISPID_SABufferNotifySize = 204,
12145    DISPID_SAEventHandle = 205,
12146    DISPID_SASetState = 206
12147} DISPID_SpeechAudio;
12148typedef enum SpeechAudioState {
12149    SASClosed = SPAS_CLOSED,
12150    SASStop = SPAS_STOP,
12151    SASPause = SPAS_PAUSE,
12152    SASRun = SPAS_RUN
12153} SpeechAudioState;
12154typedef enum DISPID_SpeechMMSysAudio {
12155    DISPID_SMSADeviceId = 300,
12156    DISPID_SMSALineId = 301,
12157    DISPID_SMSAMMHandle = 302
12158} DISPID_SpeechMMSysAudio;
12159typedef enum DISPID_SpeechFileStream {
12160    DISPID_SFSOpen = 100,
12161    DISPID_SFSClose = 101
12162} DISPID_SpeechFileStream;
12163typedef enum SpeechStreamFileMode {
12164    SSFMOpenForRead = SPFM_OPEN_READONLY,
12165    SSFMOpenReadWrite = SPFM_OPEN_READWRITE,
12166    SSFMCreate = SPFM_CREATE,
12167    SSFMCreateForWrite = SPFM_CREATE_ALWAYS
12168} SpeechStreamFileMode;
12169typedef enum DISPID_SpeechCustomStream {
12170    DISPID_SCSBaseStream = 100
12171} DISPID_SpeechCustomStream;
12172typedef enum DISPID_SpeechMemoryStream {
12173    DISPID_SMSSetData = 100,
12174    DISPID_SMSGetData = 101
12175} DISPID_SpeechMemoryStream;
12176typedef enum DISPID_SpeechAudioStatus {
12177    DISPID_SASFreeBufferSpace = 1,
12178    DISPID_SASNonBlockingIO = 2,
12179    DISPID_SASState = 3,
12180    DISPID_SASCurrentSeekPosition = 4,
12181    DISPID_SASCurrentDevicePosition = 5
12182} DISPID_SpeechAudioStatus;
12183typedef enum DISPID_SpeechAudioBufferInfo {
12184    DISPID_SABIMinNotification = 1,
12185    DISPID_SABIBufferSize = 2,
12186    DISPID_SABIEventBias = 3
12187} DISPID_SpeechAudioBufferInfo;
12188typedef enum DISPID_SpeechWaveFormatEx {
12189    DISPID_SWFEFormatTag = 1,
12190    DISPID_SWFEChannels = 2,
12191    DISPID_SWFESamplesPerSec = 3,
12192    DISPID_SWFEAvgBytesPerSec = 4,
12193    DISPID_SWFEBlockAlign = 5,
12194    DISPID_SWFEBitsPerSample = 6,
12195    DISPID_SWFEExtraData = 7
12196} DISPID_SpeechWaveFormatEx;
12197typedef enum DISPID_SpeechVoice {
12198    DISPID_SVStatus = 1,
12199    DISPID_SVVoice = 2,
12200    DISPID_SVAudioOutput = 3,
12201    DISPID_SVAudioOutputStream = 4,
12202    DISPID_SVRate = 5,
12203    DISPID_SVVolume = 6,
12204    DISPID_SVAllowAudioOuputFormatChangesOnNextSet = 7,
12205    DISPID_SVEventInterests = 8,
12206    DISPID_SVPriority = 9,
12207    DISPID_SVAlertBoundary = 10,
12208    DISPID_SVSyncronousSpeakTimeout = 11,
12209    DISPID_SVSpeak = 12,
12210    DISPID_SVSpeakStream = 13,
12211    DISPID_SVPause = 14,
12212    DISPID_SVResume = 15,
12213    DISPID_SVSkip = 16,
12214    DISPID_SVGetVoices = 17,
12215    DISPID_SVGetAudioOutputs = 18,
12216    DISPID_SVWaitUntilDone = 19,
12217    DISPID_SVSpeakCompleteEvent = 20,
12218    DISPID_SVIsUISupported = 21,
12219    DISPID_SVDisplayUI = 22
12220} DISPID_SpeechVoice;
12221typedef enum SpeechVoicePriority {
12222    SVPNormal = SPVPRI_NORMAL,
12223    SVPAlert = SPVPRI_ALERT,
12224    SVPOver = SPVPRI_OVER
12225} SpeechVoicePriority;
12226typedef enum SpeechVoiceSpeakFlags {
12227    SVSFDefault = SPF_DEFAULT,
12228    SVSFlagsAsync = SPF_ASYNC,
12229    SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK,
12230    SVSFIsFilename = SPF_IS_FILENAME,
12231    SVSFIsXML = SPF_IS_XML,
12232    SVSFIsNotXML = SPF_IS_NOT_XML,
12233    SVSFPersistXML = SPF_PERSIST_XML,
12234    SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC,
12235    SVSFParseSapi = SPF_PARSE_SAPI,
12236    SVSFParseSsml = SPF_PARSE_SSML,
12237    SVSFParseAutodetect = SPF_PARSE_AUTODETECT,
12238    SVSFNLPMask = SPF_NLP_MASK,
12239    SVSFParseMask = SPF_PARSE_MASK,
12240    SVSFVoiceMask = SPF_VOICE_MASK,
12241    SVSFUnusedFlags = SPF_UNUSED_FLAGS
12242} SpeechVoiceSpeakFlags;
12243typedef enum SpeechVoiceEvents {
12244    SVEStartInputStream = 0x2,
12245    SVEEndInputStream = 0x4,
12246    SVEVoiceChange = 0x8,
12247    SVEBookmark = 0x10,
12248    SVEWordBoundary = 0x20,
12249    SVEPhoneme = 0x40,
12250    SVESentenceBoundary = 0x80,
12251    SVEViseme = 0x100,
12252    SVEAudioLevel = 0x200,
12253    SVEPrivate = 0x8000,
12254    SVEAllEvents = 0x83fe
12255} SpeechVoiceEvents;
12256typedef enum DISPID_SpeechVoiceStatus {
12257    DISPID_SVSCurrentStreamNumber = 1,
12258    DISPID_SVSLastStreamNumberQueued = 2,
12259    DISPID_SVSLastResult = 3,
12260    DISPID_SVSRunningState = 4,
12261    DISPID_SVSInputWordPosition = 5,
12262    DISPID_SVSInputWordLength = 6,
12263    DISPID_SVSInputSentencePosition = 7,
12264    DISPID_SVSInputSentenceLength = 8,
12265    DISPID_SVSLastBookmark = 9,
12266    DISPID_SVSLastBookmarkId = 10,
12267    DISPID_SVSPhonemeId = 11,
12268    DISPID_SVSVisemeId = 12
12269} DISPID_SpeechVoiceStatus;
12270typedef enum SpeechRunState {
12271    SRSEDone = SPRS_DONE,
12272    SRSEIsSpeaking = SPRS_IS_SPEAKING
12273} SpeechRunState;
12274/*****************************************************************************
12275 * ISpeechAudioFormat interface
12276 */
12277#ifndef __ISpeechAudioFormat_INTERFACE_DEFINED__
12278#define __ISpeechAudioFormat_INTERFACE_DEFINED__
12279
12280DEFINE_GUID(IID_ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7);
12281#if defined(__cplusplus) && !defined(CINTERFACE)
12282MIDL_INTERFACE("e6e9c590-3e18-40e3-8299-061f98bde7c7")
12283ISpeechAudioFormat : public IDispatch
12284{
12285    virtual HRESULT STDMETHODCALLTYPE get_Type(
12286        SpeechAudioFormatType *AudioFormat) = 0;
12287
12288    virtual HRESULT STDMETHODCALLTYPE put_Type(
12289        SpeechAudioFormatType AudioFormat) = 0;
12290
12291    virtual HRESULT STDMETHODCALLTYPE get_Guid(
12292        BSTR *Guid) = 0;
12293
12294    virtual HRESULT STDMETHODCALLTYPE put_Guid(
12295        BSTR Guid) = 0;
12296
12297    virtual HRESULT STDMETHODCALLTYPE GetWaveFormatEx(
12298        ISpeechWaveFormatEx **SpeechWaveFormatEx) = 0;
12299
12300    virtual HRESULT STDMETHODCALLTYPE SetWaveFormatEx(
12301        ISpeechWaveFormatEx *SpeechWaveFormatEx) = 0;
12302
12303};
12304#ifdef __CRT_UUID_DECL
12305__CRT_UUID_DECL(ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7)
12306#endif
12307#else
12308typedef struct ISpeechAudioFormatVtbl {
12309    BEGIN_INTERFACE
12310
12311    /*** IUnknown methods ***/
12312    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12313        ISpeechAudioFormat *This,
12314        REFIID riid,
12315        void **ppvObject);
12316
12317    ULONG (STDMETHODCALLTYPE *AddRef)(
12318        ISpeechAudioFormat *This);
12319
12320    ULONG (STDMETHODCALLTYPE *Release)(
12321        ISpeechAudioFormat *This);
12322
12323    /*** IDispatch methods ***/
12324    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12325        ISpeechAudioFormat *This,
12326        UINT *pctinfo);
12327
12328    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12329        ISpeechAudioFormat *This,
12330        UINT iTInfo,
12331        LCID lcid,
12332        ITypeInfo **ppTInfo);
12333
12334    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12335        ISpeechAudioFormat *This,
12336        REFIID riid,
12337        LPOLESTR *rgszNames,
12338        UINT cNames,
12339        LCID lcid,
12340        DISPID *rgDispId);
12341
12342    HRESULT (STDMETHODCALLTYPE *Invoke)(
12343        ISpeechAudioFormat *This,
12344        DISPID dispIdMember,
12345        REFIID riid,
12346        LCID lcid,
12347        WORD wFlags,
12348        DISPPARAMS *pDispParams,
12349        VARIANT *pVarResult,
12350        EXCEPINFO *pExcepInfo,
12351        UINT *puArgErr);
12352
12353    /*** ISpeechAudioFormat methods ***/
12354    HRESULT (STDMETHODCALLTYPE *get_Type)(
12355        ISpeechAudioFormat *This,
12356        SpeechAudioFormatType *AudioFormat);
12357
12358    HRESULT (STDMETHODCALLTYPE *put_Type)(
12359        ISpeechAudioFormat *This,
12360        SpeechAudioFormatType AudioFormat);
12361
12362    HRESULT (STDMETHODCALLTYPE *get_Guid)(
12363        ISpeechAudioFormat *This,
12364        BSTR *Guid);
12365
12366    HRESULT (STDMETHODCALLTYPE *put_Guid)(
12367        ISpeechAudioFormat *This,
12368        BSTR Guid);
12369
12370    HRESULT (STDMETHODCALLTYPE *GetWaveFormatEx)(
12371        ISpeechAudioFormat *This,
12372        ISpeechWaveFormatEx **SpeechWaveFormatEx);
12373
12374    HRESULT (STDMETHODCALLTYPE *SetWaveFormatEx)(
12375        ISpeechAudioFormat *This,
12376        ISpeechWaveFormatEx *SpeechWaveFormatEx);
12377
12378    END_INTERFACE
12379} ISpeechAudioFormatVtbl;
12380
12381interface ISpeechAudioFormat {
12382    CONST_VTBL ISpeechAudioFormatVtbl* lpVtbl;
12383};
12384
12385#ifdef COBJMACROS
12386#ifndef WIDL_C_INLINE_WRAPPERS
12387/*** IUnknown methods ***/
12388#define ISpeechAudioFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12389#define ISpeechAudioFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
12390#define ISpeechAudioFormat_Release(This) (This)->lpVtbl->Release(This)
12391/*** IDispatch methods ***/
12392#define ISpeechAudioFormat_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12393#define ISpeechAudioFormat_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12394#define ISpeechAudioFormat_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12395#define ISpeechAudioFormat_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12396/*** ISpeechAudioFormat methods ***/
12397#define ISpeechAudioFormat_get_Type(This,AudioFormat) (This)->lpVtbl->get_Type(This,AudioFormat)
12398#define ISpeechAudioFormat_put_Type(This,AudioFormat) (This)->lpVtbl->put_Type(This,AudioFormat)
12399#define ISpeechAudioFormat_get_Guid(This,Guid) (This)->lpVtbl->get_Guid(This,Guid)
12400#define ISpeechAudioFormat_put_Guid(This,Guid) (This)->lpVtbl->put_Guid(This,Guid)
12401#define ISpeechAudioFormat_GetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx)
12402#define ISpeechAudioFormat_SetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx)
12403#else
12404/*** IUnknown methods ***/
12405static inline HRESULT ISpeechAudioFormat_QueryInterface(ISpeechAudioFormat* This,REFIID riid,void **ppvObject) {
12406    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12407}
12408static inline ULONG ISpeechAudioFormat_AddRef(ISpeechAudioFormat* This) {
12409    return This->lpVtbl->AddRef(This);
12410}
12411static inline ULONG ISpeechAudioFormat_Release(ISpeechAudioFormat* This) {
12412    return This->lpVtbl->Release(This);
12413}
12414/*** IDispatch methods ***/
12415static inline HRESULT ISpeechAudioFormat_GetTypeInfoCount(ISpeechAudioFormat* This,UINT *pctinfo) {
12416    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12417}
12418static inline HRESULT ISpeechAudioFormat_GetTypeInfo(ISpeechAudioFormat* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12419    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12420}
12421static inline HRESULT ISpeechAudioFormat_GetIDsOfNames(ISpeechAudioFormat* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12422    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12423}
12424static inline HRESULT ISpeechAudioFormat_Invoke(ISpeechAudioFormat* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12425    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12426}
12427/*** ISpeechAudioFormat methods ***/
12428static inline HRESULT ISpeechAudioFormat_get_Type(ISpeechAudioFormat* This,SpeechAudioFormatType *AudioFormat) {
12429    return This->lpVtbl->get_Type(This,AudioFormat);
12430}
12431static inline HRESULT ISpeechAudioFormat_put_Type(ISpeechAudioFormat* This,SpeechAudioFormatType AudioFormat) {
12432    return This->lpVtbl->put_Type(This,AudioFormat);
12433}
12434static inline HRESULT ISpeechAudioFormat_get_Guid(ISpeechAudioFormat* This,BSTR *Guid) {
12435    return This->lpVtbl->get_Guid(This,Guid);
12436}
12437static inline HRESULT ISpeechAudioFormat_put_Guid(ISpeechAudioFormat* This,BSTR Guid) {
12438    return This->lpVtbl->put_Guid(This,Guid);
12439}
12440static inline HRESULT ISpeechAudioFormat_GetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx **SpeechWaveFormatEx) {
12441    return This->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx);
12442}
12443static inline HRESULT ISpeechAudioFormat_SetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx *SpeechWaveFormatEx) {
12444    return This->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx);
12445}
12446#endif
12447#endif
12448
12449#endif
12450
12451
12452#endif  /* __ISpeechAudioFormat_INTERFACE_DEFINED__ */
12453
12454/*****************************************************************************
12455 * ISpeechBaseStream interface
12456 */
12457#ifndef __ISpeechBaseStream_INTERFACE_DEFINED__
12458#define __ISpeechBaseStream_INTERFACE_DEFINED__
12459
12460DEFINE_GUID(IID_ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94);
12461#if defined(__cplusplus) && !defined(CINTERFACE)
12462MIDL_INTERFACE("6450336f-7d49-4ced-8097-49d6dee37294")
12463ISpeechBaseStream : public IDispatch
12464{
12465    virtual HRESULT STDMETHODCALLTYPE get_Format(
12466        ISpeechAudioFormat **AudioFormat) = 0;
12467
12468    virtual HRESULT STDMETHODCALLTYPE putref_Format(
12469        ISpeechAudioFormat *AudioFormat) = 0;
12470
12471    virtual HRESULT STDMETHODCALLTYPE Read(
12472        VARIANT *Buffer,
12473        LONG NumberOfBytes,
12474        LONG *BytesRead) = 0;
12475
12476    virtual HRESULT STDMETHODCALLTYPE Write(
12477        VARIANT Buffer,
12478        LONG *BytesWritten) = 0;
12479
12480    virtual HRESULT STDMETHODCALLTYPE Seek(
12481        VARIANT Position,
12482        SpeechStreamSeekPositionType Origin,
12483        VARIANT *NewPosition) = 0;
12484
12485};
12486#ifdef __CRT_UUID_DECL
12487__CRT_UUID_DECL(ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94)
12488#endif
12489#else
12490typedef struct ISpeechBaseStreamVtbl {
12491    BEGIN_INTERFACE
12492
12493    /*** IUnknown methods ***/
12494    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12495        ISpeechBaseStream *This,
12496        REFIID riid,
12497        void **ppvObject);
12498
12499    ULONG (STDMETHODCALLTYPE *AddRef)(
12500        ISpeechBaseStream *This);
12501
12502    ULONG (STDMETHODCALLTYPE *Release)(
12503        ISpeechBaseStream *This);
12504
12505    /*** IDispatch methods ***/
12506    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12507        ISpeechBaseStream *This,
12508        UINT *pctinfo);
12509
12510    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12511        ISpeechBaseStream *This,
12512        UINT iTInfo,
12513        LCID lcid,
12514        ITypeInfo **ppTInfo);
12515
12516    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12517        ISpeechBaseStream *This,
12518        REFIID riid,
12519        LPOLESTR *rgszNames,
12520        UINT cNames,
12521        LCID lcid,
12522        DISPID *rgDispId);
12523
12524    HRESULT (STDMETHODCALLTYPE *Invoke)(
12525        ISpeechBaseStream *This,
12526        DISPID dispIdMember,
12527        REFIID riid,
12528        LCID lcid,
12529        WORD wFlags,
12530        DISPPARAMS *pDispParams,
12531        VARIANT *pVarResult,
12532        EXCEPINFO *pExcepInfo,
12533        UINT *puArgErr);
12534
12535    /*** ISpeechBaseStream methods ***/
12536    HRESULT (STDMETHODCALLTYPE *get_Format)(
12537        ISpeechBaseStream *This,
12538        ISpeechAudioFormat **AudioFormat);
12539
12540    HRESULT (STDMETHODCALLTYPE *putref_Format)(
12541        ISpeechBaseStream *This,
12542        ISpeechAudioFormat *AudioFormat);
12543
12544    HRESULT (STDMETHODCALLTYPE *Read)(
12545        ISpeechBaseStream *This,
12546        VARIANT *Buffer,
12547        LONG NumberOfBytes,
12548        LONG *BytesRead);
12549
12550    HRESULT (STDMETHODCALLTYPE *Write)(
12551        ISpeechBaseStream *This,
12552        VARIANT Buffer,
12553        LONG *BytesWritten);
12554
12555    HRESULT (STDMETHODCALLTYPE *Seek)(
12556        ISpeechBaseStream *This,
12557        VARIANT Position,
12558        SpeechStreamSeekPositionType Origin,
12559        VARIANT *NewPosition);
12560
12561    END_INTERFACE
12562} ISpeechBaseStreamVtbl;
12563
12564interface ISpeechBaseStream {
12565    CONST_VTBL ISpeechBaseStreamVtbl* lpVtbl;
12566};
12567
12568#ifdef COBJMACROS
12569#ifndef WIDL_C_INLINE_WRAPPERS
12570/*** IUnknown methods ***/
12571#define ISpeechBaseStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12572#define ISpeechBaseStream_AddRef(This) (This)->lpVtbl->AddRef(This)
12573#define ISpeechBaseStream_Release(This) (This)->lpVtbl->Release(This)
12574/*** IDispatch methods ***/
12575#define ISpeechBaseStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12576#define ISpeechBaseStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12577#define ISpeechBaseStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12578#define ISpeechBaseStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12579/*** ISpeechBaseStream methods ***/
12580#define ISpeechBaseStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
12581#define ISpeechBaseStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
12582#define ISpeechBaseStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
12583#define ISpeechBaseStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
12584#define ISpeechBaseStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
12585#else
12586/*** IUnknown methods ***/
12587static inline HRESULT ISpeechBaseStream_QueryInterface(ISpeechBaseStream* This,REFIID riid,void **ppvObject) {
12588    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12589}
12590static inline ULONG ISpeechBaseStream_AddRef(ISpeechBaseStream* This) {
12591    return This->lpVtbl->AddRef(This);
12592}
12593static inline ULONG ISpeechBaseStream_Release(ISpeechBaseStream* This) {
12594    return This->lpVtbl->Release(This);
12595}
12596/*** IDispatch methods ***/
12597static inline HRESULT ISpeechBaseStream_GetTypeInfoCount(ISpeechBaseStream* This,UINT *pctinfo) {
12598    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12599}
12600static inline HRESULT ISpeechBaseStream_GetTypeInfo(ISpeechBaseStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12601    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12602}
12603static inline HRESULT ISpeechBaseStream_GetIDsOfNames(ISpeechBaseStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12604    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12605}
12606static inline HRESULT ISpeechBaseStream_Invoke(ISpeechBaseStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12607    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12608}
12609/*** ISpeechBaseStream methods ***/
12610static inline HRESULT ISpeechBaseStream_get_Format(ISpeechBaseStream* This,ISpeechAudioFormat **AudioFormat) {
12611    return This->lpVtbl->get_Format(This,AudioFormat);
12612}
12613static inline HRESULT ISpeechBaseStream_putref_Format(ISpeechBaseStream* This,ISpeechAudioFormat *AudioFormat) {
12614    return This->lpVtbl->putref_Format(This,AudioFormat);
12615}
12616static inline HRESULT ISpeechBaseStream_Read(ISpeechBaseStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
12617    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
12618}
12619static inline HRESULT ISpeechBaseStream_Write(ISpeechBaseStream* This,VARIANT Buffer,LONG *BytesWritten) {
12620    return This->lpVtbl->Write(This,Buffer,BytesWritten);
12621}
12622static inline HRESULT ISpeechBaseStream_Seek(ISpeechBaseStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
12623    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
12624}
12625#endif
12626#endif
12627
12628#endif
12629
12630
12631#endif  /* __ISpeechBaseStream_INTERFACE_DEFINED__ */
12632
12633/*****************************************************************************
12634 * ISpeechAudio interface
12635 */
12636#ifndef __ISpeechAudio_INTERFACE_DEFINED__
12637#define __ISpeechAudio_INTERFACE_DEFINED__
12638
12639DEFINE_GUID(IID_ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
12640#if defined(__cplusplus) && !defined(CINTERFACE)
12641MIDL_INTERFACE("cff8e175-019e-11d3-a08e-00c04f8ef9b5")
12642ISpeechAudio : public ISpeechBaseStream
12643{
12644    virtual HRESULT STDMETHODCALLTYPE get_Status(
12645        ISpeechAudioStatus **Status) = 0;
12646
12647    virtual HRESULT STDMETHODCALLTYPE get_BufferInfo(
12648        ISpeechAudioBufferInfo **BufferInfo) = 0;
12649
12650    virtual HRESULT STDMETHODCALLTYPE get_DefaultFormat(
12651        ISpeechAudioFormat **StreamFormat) = 0;
12652
12653    virtual HRESULT STDMETHODCALLTYPE get_Volume(
12654        LONG *Volume) = 0;
12655
12656    virtual HRESULT STDMETHODCALLTYPE put_Volume(
12657        LONG Volume) = 0;
12658
12659    virtual HRESULT STDMETHODCALLTYPE get_BufferNotifySize(
12660        LONG *BufferNotifySize) = 0;
12661
12662    virtual HRESULT STDMETHODCALLTYPE put_BufferNotifySize(
12663        LONG BufferNotifySize) = 0;
12664
12665    virtual HRESULT STDMETHODCALLTYPE get_EventHandle(
12666        LONG *EventHandle) = 0;
12667
12668    virtual HRESULT STDMETHODCALLTYPE SetState(
12669        SpeechAudioState State) = 0;
12670
12671};
12672#ifdef __CRT_UUID_DECL
12673__CRT_UUID_DECL(ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
12674#endif
12675#else
12676typedef struct ISpeechAudioVtbl {
12677    BEGIN_INTERFACE
12678
12679    /*** IUnknown methods ***/
12680    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12681        ISpeechAudio *This,
12682        REFIID riid,
12683        void **ppvObject);
12684
12685    ULONG (STDMETHODCALLTYPE *AddRef)(
12686        ISpeechAudio *This);
12687
12688    ULONG (STDMETHODCALLTYPE *Release)(
12689        ISpeechAudio *This);
12690
12691    /*** IDispatch methods ***/
12692    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12693        ISpeechAudio *This,
12694        UINT *pctinfo);
12695
12696    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12697        ISpeechAudio *This,
12698        UINT iTInfo,
12699        LCID lcid,
12700        ITypeInfo **ppTInfo);
12701
12702    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12703        ISpeechAudio *This,
12704        REFIID riid,
12705        LPOLESTR *rgszNames,
12706        UINT cNames,
12707        LCID lcid,
12708        DISPID *rgDispId);
12709
12710    HRESULT (STDMETHODCALLTYPE *Invoke)(
12711        ISpeechAudio *This,
12712        DISPID dispIdMember,
12713        REFIID riid,
12714        LCID lcid,
12715        WORD wFlags,
12716        DISPPARAMS *pDispParams,
12717        VARIANT *pVarResult,
12718        EXCEPINFO *pExcepInfo,
12719        UINT *puArgErr);
12720
12721    /*** ISpeechBaseStream methods ***/
12722    HRESULT (STDMETHODCALLTYPE *get_Format)(
12723        ISpeechAudio *This,
12724        ISpeechAudioFormat **AudioFormat);
12725
12726    HRESULT (STDMETHODCALLTYPE *putref_Format)(
12727        ISpeechAudio *This,
12728        ISpeechAudioFormat *AudioFormat);
12729
12730    HRESULT (STDMETHODCALLTYPE *Read)(
12731        ISpeechAudio *This,
12732        VARIANT *Buffer,
12733        LONG NumberOfBytes,
12734        LONG *BytesRead);
12735
12736    HRESULT (STDMETHODCALLTYPE *Write)(
12737        ISpeechAudio *This,
12738        VARIANT Buffer,
12739        LONG *BytesWritten);
12740
12741    HRESULT (STDMETHODCALLTYPE *Seek)(
12742        ISpeechAudio *This,
12743        VARIANT Position,
12744        SpeechStreamSeekPositionType Origin,
12745        VARIANT *NewPosition);
12746
12747    /*** ISpeechAudio methods ***/
12748    HRESULT (STDMETHODCALLTYPE *get_Status)(
12749        ISpeechAudio *This,
12750        ISpeechAudioStatus **Status);
12751
12752    HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
12753        ISpeechAudio *This,
12754        ISpeechAudioBufferInfo **BufferInfo);
12755
12756    HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
12757        ISpeechAudio *This,
12758        ISpeechAudioFormat **StreamFormat);
12759
12760    HRESULT (STDMETHODCALLTYPE *get_Volume)(
12761        ISpeechAudio *This,
12762        LONG *Volume);
12763
12764    HRESULT (STDMETHODCALLTYPE *put_Volume)(
12765        ISpeechAudio *This,
12766        LONG Volume);
12767
12768    HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
12769        ISpeechAudio *This,
12770        LONG *BufferNotifySize);
12771
12772    HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
12773        ISpeechAudio *This,
12774        LONG BufferNotifySize);
12775
12776    HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
12777        ISpeechAudio *This,
12778        LONG *EventHandle);
12779
12780    HRESULT (STDMETHODCALLTYPE *SetState)(
12781        ISpeechAudio *This,
12782        SpeechAudioState State);
12783
12784    END_INTERFACE
12785} ISpeechAudioVtbl;
12786
12787interface ISpeechAudio {
12788    CONST_VTBL ISpeechAudioVtbl* lpVtbl;
12789};
12790
12791#ifdef COBJMACROS
12792#ifndef WIDL_C_INLINE_WRAPPERS
12793/*** IUnknown methods ***/
12794#define ISpeechAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12795#define ISpeechAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
12796#define ISpeechAudio_Release(This) (This)->lpVtbl->Release(This)
12797/*** IDispatch methods ***/
12798#define ISpeechAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12799#define ISpeechAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12800#define ISpeechAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12801#define ISpeechAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12802/*** ISpeechBaseStream methods ***/
12803#define ISpeechAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
12804#define ISpeechAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
12805#define ISpeechAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
12806#define ISpeechAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
12807#define ISpeechAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
12808/*** ISpeechAudio methods ***/
12809#define ISpeechAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
12810#define ISpeechAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
12811#define ISpeechAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
12812#define ISpeechAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
12813#define ISpeechAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
12814#define ISpeechAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
12815#define ISpeechAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
12816#define ISpeechAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
12817#define ISpeechAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
12818#else
12819/*** IUnknown methods ***/
12820static inline HRESULT ISpeechAudio_QueryInterface(ISpeechAudio* This,REFIID riid,void **ppvObject) {
12821    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12822}
12823static inline ULONG ISpeechAudio_AddRef(ISpeechAudio* This) {
12824    return This->lpVtbl->AddRef(This);
12825}
12826static inline ULONG ISpeechAudio_Release(ISpeechAudio* This) {
12827    return This->lpVtbl->Release(This);
12828}
12829/*** IDispatch methods ***/
12830static inline HRESULT ISpeechAudio_GetTypeInfoCount(ISpeechAudio* This,UINT *pctinfo) {
12831    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12832}
12833static inline HRESULT ISpeechAudio_GetTypeInfo(ISpeechAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12834    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12835}
12836static inline HRESULT ISpeechAudio_GetIDsOfNames(ISpeechAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12837    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12838}
12839static inline HRESULT ISpeechAudio_Invoke(ISpeechAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12840    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12841}
12842/*** ISpeechBaseStream methods ***/
12843static inline HRESULT ISpeechAudio_get_Format(ISpeechAudio* This,ISpeechAudioFormat **AudioFormat) {
12844    return This->lpVtbl->get_Format(This,AudioFormat);
12845}
12846static inline HRESULT ISpeechAudio_putref_Format(ISpeechAudio* This,ISpeechAudioFormat *AudioFormat) {
12847    return This->lpVtbl->putref_Format(This,AudioFormat);
12848}
12849static inline HRESULT ISpeechAudio_Read(ISpeechAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
12850    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
12851}
12852static inline HRESULT ISpeechAudio_Write(ISpeechAudio* This,VARIANT Buffer,LONG *BytesWritten) {
12853    return This->lpVtbl->Write(This,Buffer,BytesWritten);
12854}
12855static inline HRESULT ISpeechAudio_Seek(ISpeechAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
12856    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
12857}
12858/*** ISpeechAudio methods ***/
12859static inline HRESULT ISpeechAudio_get_Status(ISpeechAudio* This,ISpeechAudioStatus **Status) {
12860    return This->lpVtbl->get_Status(This,Status);
12861}
12862static inline HRESULT ISpeechAudio_get_BufferInfo(ISpeechAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
12863    return This->lpVtbl->get_BufferInfo(This,BufferInfo);
12864}
12865static inline HRESULT ISpeechAudio_get_DefaultFormat(ISpeechAudio* This,ISpeechAudioFormat **StreamFormat) {
12866    return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
12867}
12868static inline HRESULT ISpeechAudio_get_Volume(ISpeechAudio* This,LONG *Volume) {
12869    return This->lpVtbl->get_Volume(This,Volume);
12870}
12871static inline HRESULT ISpeechAudio_put_Volume(ISpeechAudio* This,LONG Volume) {
12872    return This->lpVtbl->put_Volume(This,Volume);
12873}
12874static inline HRESULT ISpeechAudio_get_BufferNotifySize(ISpeechAudio* This,LONG *BufferNotifySize) {
12875    return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
12876}
12877static inline HRESULT ISpeechAudio_put_BufferNotifySize(ISpeechAudio* This,LONG BufferNotifySize) {
12878    return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
12879}
12880static inline HRESULT ISpeechAudio_get_EventHandle(ISpeechAudio* This,LONG *EventHandle) {
12881    return This->lpVtbl->get_EventHandle(This,EventHandle);
12882}
12883static inline HRESULT ISpeechAudio_SetState(ISpeechAudio* This,SpeechAudioState State) {
12884    return This->lpVtbl->SetState(This,State);
12885}
12886#endif
12887#endif
12888
12889#endif
12890
12891
12892#endif  /* __ISpeechAudio_INTERFACE_DEFINED__ */
12893
12894/*****************************************************************************
12895 * ISpeechMMSysAudio interface
12896 */
12897#ifndef __ISpeechMMSysAudio_INTERFACE_DEFINED__
12898#define __ISpeechMMSysAudio_INTERFACE_DEFINED__
12899
12900DEFINE_GUID(IID_ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44);
12901#if defined(__cplusplus) && !defined(CINTERFACE)
12902MIDL_INTERFACE("3c76af6d-1fd7-4831-81d1-3b71d5a13c44")
12903ISpeechMMSysAudio : public ISpeechAudio
12904{
12905    virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
12906        LONG *DeviceId) = 0;
12907
12908    virtual HRESULT STDMETHODCALLTYPE put_DeviceId(
12909        LONG DeviceId) = 0;
12910
12911    virtual HRESULT STDMETHODCALLTYPE get_LineId(
12912        LONG *LineId) = 0;
12913
12914    virtual HRESULT STDMETHODCALLTYPE put_LineId(
12915        LONG LineId) = 0;
12916
12917    virtual HRESULT STDMETHODCALLTYPE get_MMHandle(
12918        LONG *Handle) = 0;
12919
12920};
12921#ifdef __CRT_UUID_DECL
12922__CRT_UUID_DECL(ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44)
12923#endif
12924#else
12925typedef struct ISpeechMMSysAudioVtbl {
12926    BEGIN_INTERFACE
12927
12928    /*** IUnknown methods ***/
12929    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12930        ISpeechMMSysAudio *This,
12931        REFIID riid,
12932        void **ppvObject);
12933
12934    ULONG (STDMETHODCALLTYPE *AddRef)(
12935        ISpeechMMSysAudio *This);
12936
12937    ULONG (STDMETHODCALLTYPE *Release)(
12938        ISpeechMMSysAudio *This);
12939
12940    /*** IDispatch methods ***/
12941    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12942        ISpeechMMSysAudio *This,
12943        UINT *pctinfo);
12944
12945    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12946        ISpeechMMSysAudio *This,
12947        UINT iTInfo,
12948        LCID lcid,
12949        ITypeInfo **ppTInfo);
12950
12951    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12952        ISpeechMMSysAudio *This,
12953        REFIID riid,
12954        LPOLESTR *rgszNames,
12955        UINT cNames,
12956        LCID lcid,
12957        DISPID *rgDispId);
12958
12959    HRESULT (STDMETHODCALLTYPE *Invoke)(
12960        ISpeechMMSysAudio *This,
12961        DISPID dispIdMember,
12962        REFIID riid,
12963        LCID lcid,
12964        WORD wFlags,
12965        DISPPARAMS *pDispParams,
12966        VARIANT *pVarResult,
12967        EXCEPINFO *pExcepInfo,
12968        UINT *puArgErr);
12969
12970    /*** ISpeechBaseStream methods ***/
12971    HRESULT (STDMETHODCALLTYPE *get_Format)(
12972        ISpeechMMSysAudio *This,
12973        ISpeechAudioFormat **AudioFormat);
12974
12975    HRESULT (STDMETHODCALLTYPE *putref_Format)(
12976        ISpeechMMSysAudio *This,
12977        ISpeechAudioFormat *AudioFormat);
12978
12979    HRESULT (STDMETHODCALLTYPE *Read)(
12980        ISpeechMMSysAudio *This,
12981        VARIANT *Buffer,
12982        LONG NumberOfBytes,
12983        LONG *BytesRead);
12984
12985    HRESULT (STDMETHODCALLTYPE *Write)(
12986        ISpeechMMSysAudio *This,
12987        VARIANT Buffer,
12988        LONG *BytesWritten);
12989
12990    HRESULT (STDMETHODCALLTYPE *Seek)(
12991        ISpeechMMSysAudio *This,
12992        VARIANT Position,
12993        SpeechStreamSeekPositionType Origin,
12994        VARIANT *NewPosition);
12995
12996    /*** ISpeechAudio methods ***/
12997    HRESULT (STDMETHODCALLTYPE *get_Status)(
12998        ISpeechMMSysAudio *This,
12999        ISpeechAudioStatus **Status);
13000
13001    HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
13002        ISpeechMMSysAudio *This,
13003        ISpeechAudioBufferInfo **BufferInfo);
13004
13005    HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
13006        ISpeechMMSysAudio *This,
13007        ISpeechAudioFormat **StreamFormat);
13008
13009    HRESULT (STDMETHODCALLTYPE *get_Volume)(
13010        ISpeechMMSysAudio *This,
13011        LONG *Volume);
13012
13013    HRESULT (STDMETHODCALLTYPE *put_Volume)(
13014        ISpeechMMSysAudio *This,
13015        LONG Volume);
13016
13017    HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
13018        ISpeechMMSysAudio *This,
13019        LONG *BufferNotifySize);
13020
13021    HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
13022        ISpeechMMSysAudio *This,
13023        LONG BufferNotifySize);
13024
13025    HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
13026        ISpeechMMSysAudio *This,
13027        LONG *EventHandle);
13028
13029    HRESULT (STDMETHODCALLTYPE *SetState)(
13030        ISpeechMMSysAudio *This,
13031        SpeechAudioState State);
13032
13033    /*** ISpeechMMSysAudio methods ***/
13034    HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
13035        ISpeechMMSysAudio *This,
13036        LONG *DeviceId);
13037
13038    HRESULT (STDMETHODCALLTYPE *put_DeviceId)(
13039        ISpeechMMSysAudio *This,
13040        LONG DeviceId);
13041
13042    HRESULT (STDMETHODCALLTYPE *get_LineId)(
13043        ISpeechMMSysAudio *This,
13044        LONG *LineId);
13045
13046    HRESULT (STDMETHODCALLTYPE *put_LineId)(
13047        ISpeechMMSysAudio *This,
13048        LONG LineId);
13049
13050    HRESULT (STDMETHODCALLTYPE *get_MMHandle)(
13051        ISpeechMMSysAudio *This,
13052        LONG *Handle);
13053
13054    END_INTERFACE
13055} ISpeechMMSysAudioVtbl;
13056
13057interface ISpeechMMSysAudio {
13058    CONST_VTBL ISpeechMMSysAudioVtbl* lpVtbl;
13059};
13060
13061#ifdef COBJMACROS
13062#ifndef WIDL_C_INLINE_WRAPPERS
13063/*** IUnknown methods ***/
13064#define ISpeechMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13065#define ISpeechMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
13066#define ISpeechMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
13067/*** IDispatch methods ***/
13068#define ISpeechMMSysAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13069#define ISpeechMMSysAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13070#define ISpeechMMSysAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13071#define ISpeechMMSysAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13072/*** ISpeechBaseStream methods ***/
13073#define ISpeechMMSysAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13074#define ISpeechMMSysAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13075#define ISpeechMMSysAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13076#define ISpeechMMSysAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13077#define ISpeechMMSysAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13078/*** ISpeechAudio methods ***/
13079#define ISpeechMMSysAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
13080#define ISpeechMMSysAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
13081#define ISpeechMMSysAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
13082#define ISpeechMMSysAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
13083#define ISpeechMMSysAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
13084#define ISpeechMMSysAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
13085#define ISpeechMMSysAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
13086#define ISpeechMMSysAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
13087#define ISpeechMMSysAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
13088/*** ISpeechMMSysAudio methods ***/
13089#define ISpeechMMSysAudio_get_DeviceId(This,DeviceId) (This)->lpVtbl->get_DeviceId(This,DeviceId)
13090#define ISpeechMMSysAudio_put_DeviceId(This,DeviceId) (This)->lpVtbl->put_DeviceId(This,DeviceId)
13091#define ISpeechMMSysAudio_get_LineId(This,LineId) (This)->lpVtbl->get_LineId(This,LineId)
13092#define ISpeechMMSysAudio_put_LineId(This,LineId) (This)->lpVtbl->put_LineId(This,LineId)
13093#define ISpeechMMSysAudio_get_MMHandle(This,Handle) (This)->lpVtbl->get_MMHandle(This,Handle)
13094#else
13095/*** IUnknown methods ***/
13096static inline HRESULT ISpeechMMSysAudio_QueryInterface(ISpeechMMSysAudio* This,REFIID riid,void **ppvObject) {
13097    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13098}
13099static inline ULONG ISpeechMMSysAudio_AddRef(ISpeechMMSysAudio* This) {
13100    return This->lpVtbl->AddRef(This);
13101}
13102static inline ULONG ISpeechMMSysAudio_Release(ISpeechMMSysAudio* This) {
13103    return This->lpVtbl->Release(This);
13104}
13105/*** IDispatch methods ***/
13106static inline HRESULT ISpeechMMSysAudio_GetTypeInfoCount(ISpeechMMSysAudio* This,UINT *pctinfo) {
13107    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13108}
13109static inline HRESULT ISpeechMMSysAudio_GetTypeInfo(ISpeechMMSysAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13110    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13111}
13112static inline HRESULT ISpeechMMSysAudio_GetIDsOfNames(ISpeechMMSysAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13113    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13114}
13115static inline HRESULT ISpeechMMSysAudio_Invoke(ISpeechMMSysAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13116    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13117}
13118/*** ISpeechBaseStream methods ***/
13119static inline HRESULT ISpeechMMSysAudio_get_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat **AudioFormat) {
13120    return This->lpVtbl->get_Format(This,AudioFormat);
13121}
13122static inline HRESULT ISpeechMMSysAudio_putref_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat *AudioFormat) {
13123    return This->lpVtbl->putref_Format(This,AudioFormat);
13124}
13125static inline HRESULT ISpeechMMSysAudio_Read(ISpeechMMSysAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13126    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13127}
13128static inline HRESULT ISpeechMMSysAudio_Write(ISpeechMMSysAudio* This,VARIANT Buffer,LONG *BytesWritten) {
13129    return This->lpVtbl->Write(This,Buffer,BytesWritten);
13130}
13131static inline HRESULT ISpeechMMSysAudio_Seek(ISpeechMMSysAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13132    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13133}
13134/*** ISpeechAudio methods ***/
13135static inline HRESULT ISpeechMMSysAudio_get_Status(ISpeechMMSysAudio* This,ISpeechAudioStatus **Status) {
13136    return This->lpVtbl->get_Status(This,Status);
13137}
13138static inline HRESULT ISpeechMMSysAudio_get_BufferInfo(ISpeechMMSysAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
13139    return This->lpVtbl->get_BufferInfo(This,BufferInfo);
13140}
13141static inline HRESULT ISpeechMMSysAudio_get_DefaultFormat(ISpeechMMSysAudio* This,ISpeechAudioFormat **StreamFormat) {
13142    return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
13143}
13144static inline HRESULT ISpeechMMSysAudio_get_Volume(ISpeechMMSysAudio* This,LONG *Volume) {
13145    return This->lpVtbl->get_Volume(This,Volume);
13146}
13147static inline HRESULT ISpeechMMSysAudio_put_Volume(ISpeechMMSysAudio* This,LONG Volume) {
13148    return This->lpVtbl->put_Volume(This,Volume);
13149}
13150static inline HRESULT ISpeechMMSysAudio_get_BufferNotifySize(ISpeechMMSysAudio* This,LONG *BufferNotifySize) {
13151    return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
13152}
13153static inline HRESULT ISpeechMMSysAudio_put_BufferNotifySize(ISpeechMMSysAudio* This,LONG BufferNotifySize) {
13154    return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
13155}
13156static inline HRESULT ISpeechMMSysAudio_get_EventHandle(ISpeechMMSysAudio* This,LONG *EventHandle) {
13157    return This->lpVtbl->get_EventHandle(This,EventHandle);
13158}
13159static inline HRESULT ISpeechMMSysAudio_SetState(ISpeechMMSysAudio* This,SpeechAudioState State) {
13160    return This->lpVtbl->SetState(This,State);
13161}
13162/*** ISpeechMMSysAudio methods ***/
13163static inline HRESULT ISpeechMMSysAudio_get_DeviceId(ISpeechMMSysAudio* This,LONG *DeviceId) {
13164    return This->lpVtbl->get_DeviceId(This,DeviceId);
13165}
13166static inline HRESULT ISpeechMMSysAudio_put_DeviceId(ISpeechMMSysAudio* This,LONG DeviceId) {
13167    return This->lpVtbl->put_DeviceId(This,DeviceId);
13168}
13169static inline HRESULT ISpeechMMSysAudio_get_LineId(ISpeechMMSysAudio* This,LONG *LineId) {
13170    return This->lpVtbl->get_LineId(This,LineId);
13171}
13172static inline HRESULT ISpeechMMSysAudio_put_LineId(ISpeechMMSysAudio* This,LONG LineId) {
13173    return This->lpVtbl->put_LineId(This,LineId);
13174}
13175static inline HRESULT ISpeechMMSysAudio_get_MMHandle(ISpeechMMSysAudio* This,LONG *Handle) {
13176    return This->lpVtbl->get_MMHandle(This,Handle);
13177}
13178#endif
13179#endif
13180
13181#endif
13182
13183
13184#endif  /* __ISpeechMMSysAudio_INTERFACE_DEFINED__ */
13185
13186/*****************************************************************************
13187 * ISpeechFileStream interface
13188 */
13189#ifndef __ISpeechFileStream_INTERFACE_DEFINED__
13190#define __ISpeechFileStream_INTERFACE_DEFINED__
13191
13192DEFINE_GUID(IID_ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7);
13193#if defined(__cplusplus) && !defined(CINTERFACE)
13194MIDL_INTERFACE("af67f125-ab39-4e93-b4a2-cc2e66e182a7")
13195ISpeechFileStream : public ISpeechBaseStream
13196{
13197    virtual HRESULT STDMETHODCALLTYPE Open(
13198        BSTR FileName,
13199        SpeechStreamFileMode FileMode = SSFMOpenForRead,
13200        VARIANT_BOOL DoEvents = 0) = 0;
13201
13202    virtual HRESULT STDMETHODCALLTYPE Close(
13203        ) = 0;
13204
13205};
13206#ifdef __CRT_UUID_DECL
13207__CRT_UUID_DECL(ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7)
13208#endif
13209#else
13210typedef struct ISpeechFileStreamVtbl {
13211    BEGIN_INTERFACE
13212
13213    /*** IUnknown methods ***/
13214    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13215        ISpeechFileStream *This,
13216        REFIID riid,
13217        void **ppvObject);
13218
13219    ULONG (STDMETHODCALLTYPE *AddRef)(
13220        ISpeechFileStream *This);
13221
13222    ULONG (STDMETHODCALLTYPE *Release)(
13223        ISpeechFileStream *This);
13224
13225    /*** IDispatch methods ***/
13226    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13227        ISpeechFileStream *This,
13228        UINT *pctinfo);
13229
13230    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13231        ISpeechFileStream *This,
13232        UINT iTInfo,
13233        LCID lcid,
13234        ITypeInfo **ppTInfo);
13235
13236    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13237        ISpeechFileStream *This,
13238        REFIID riid,
13239        LPOLESTR *rgszNames,
13240        UINT cNames,
13241        LCID lcid,
13242        DISPID *rgDispId);
13243
13244    HRESULT (STDMETHODCALLTYPE *Invoke)(
13245        ISpeechFileStream *This,
13246        DISPID dispIdMember,
13247        REFIID riid,
13248        LCID lcid,
13249        WORD wFlags,
13250        DISPPARAMS *pDispParams,
13251        VARIANT *pVarResult,
13252        EXCEPINFO *pExcepInfo,
13253        UINT *puArgErr);
13254
13255    /*** ISpeechBaseStream methods ***/
13256    HRESULT (STDMETHODCALLTYPE *get_Format)(
13257        ISpeechFileStream *This,
13258        ISpeechAudioFormat **AudioFormat);
13259
13260    HRESULT (STDMETHODCALLTYPE *putref_Format)(
13261        ISpeechFileStream *This,
13262        ISpeechAudioFormat *AudioFormat);
13263
13264    HRESULT (STDMETHODCALLTYPE *Read)(
13265        ISpeechFileStream *This,
13266        VARIANT *Buffer,
13267        LONG NumberOfBytes,
13268        LONG *BytesRead);
13269
13270    HRESULT (STDMETHODCALLTYPE *Write)(
13271        ISpeechFileStream *This,
13272        VARIANT Buffer,
13273        LONG *BytesWritten);
13274
13275    HRESULT (STDMETHODCALLTYPE *Seek)(
13276        ISpeechFileStream *This,
13277        VARIANT Position,
13278        SpeechStreamSeekPositionType Origin,
13279        VARIANT *NewPosition);
13280
13281    /*** ISpeechFileStream methods ***/
13282    HRESULT (STDMETHODCALLTYPE *Open)(
13283        ISpeechFileStream *This,
13284        BSTR FileName,
13285        SpeechStreamFileMode FileMode,
13286        VARIANT_BOOL DoEvents);
13287
13288    HRESULT (STDMETHODCALLTYPE *Close)(
13289        ISpeechFileStream *This);
13290
13291    END_INTERFACE
13292} ISpeechFileStreamVtbl;
13293
13294interface ISpeechFileStream {
13295    CONST_VTBL ISpeechFileStreamVtbl* lpVtbl;
13296};
13297
13298#ifdef COBJMACROS
13299#ifndef WIDL_C_INLINE_WRAPPERS
13300/*** IUnknown methods ***/
13301#define ISpeechFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13302#define ISpeechFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
13303#define ISpeechFileStream_Release(This) (This)->lpVtbl->Release(This)
13304/*** IDispatch methods ***/
13305#define ISpeechFileStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13306#define ISpeechFileStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13307#define ISpeechFileStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13308#define ISpeechFileStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13309/*** ISpeechBaseStream methods ***/
13310#define ISpeechFileStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13311#define ISpeechFileStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13312#define ISpeechFileStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13313#define ISpeechFileStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13314#define ISpeechFileStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13315/*** ISpeechFileStream methods ***/
13316#define ISpeechFileStream_Open(This,FileName,FileMode,DoEvents) (This)->lpVtbl->Open(This,FileName,FileMode,DoEvents)
13317#define ISpeechFileStream_Close(This) (This)->lpVtbl->Close(This)
13318#else
13319/*** IUnknown methods ***/
13320static inline HRESULT ISpeechFileStream_QueryInterface(ISpeechFileStream* This,REFIID riid,void **ppvObject) {
13321    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13322}
13323static inline ULONG ISpeechFileStream_AddRef(ISpeechFileStream* This) {
13324    return This->lpVtbl->AddRef(This);
13325}
13326static inline ULONG ISpeechFileStream_Release(ISpeechFileStream* This) {
13327    return This->lpVtbl->Release(This);
13328}
13329/*** IDispatch methods ***/
13330static inline HRESULT ISpeechFileStream_GetTypeInfoCount(ISpeechFileStream* This,UINT *pctinfo) {
13331    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13332}
13333static inline HRESULT ISpeechFileStream_GetTypeInfo(ISpeechFileStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13334    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13335}
13336static inline HRESULT ISpeechFileStream_GetIDsOfNames(ISpeechFileStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13337    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13338}
13339static inline HRESULT ISpeechFileStream_Invoke(ISpeechFileStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13340    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13341}
13342/*** ISpeechBaseStream methods ***/
13343static inline HRESULT ISpeechFileStream_get_Format(ISpeechFileStream* This,ISpeechAudioFormat **AudioFormat) {
13344    return This->lpVtbl->get_Format(This,AudioFormat);
13345}
13346static inline HRESULT ISpeechFileStream_putref_Format(ISpeechFileStream* This,ISpeechAudioFormat *AudioFormat) {
13347    return This->lpVtbl->putref_Format(This,AudioFormat);
13348}
13349static inline HRESULT ISpeechFileStream_Read(ISpeechFileStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13350    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13351}
13352static inline HRESULT ISpeechFileStream_Write(ISpeechFileStream* This,VARIANT Buffer,LONG *BytesWritten) {
13353    return This->lpVtbl->Write(This,Buffer,BytesWritten);
13354}
13355static inline HRESULT ISpeechFileStream_Seek(ISpeechFileStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13356    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13357}
13358/*** ISpeechFileStream methods ***/
13359static inline HRESULT ISpeechFileStream_Open(ISpeechFileStream* This,BSTR FileName,SpeechStreamFileMode FileMode,VARIANT_BOOL DoEvents) {
13360    return This->lpVtbl->Open(This,FileName,FileMode,DoEvents);
13361}
13362static inline HRESULT ISpeechFileStream_Close(ISpeechFileStream* This) {
13363    return This->lpVtbl->Close(This);
13364}
13365#endif
13366#endif
13367
13368#endif
13369
13370
13371#endif  /* __ISpeechFileStream_INTERFACE_DEFINED__ */
13372
13373/*****************************************************************************
13374 * ISpeechCustomStream interface
13375 */
13376#ifndef __ISpeechCustomStream_INTERFACE_DEFINED__
13377#define __ISpeechCustomStream_INTERFACE_DEFINED__
13378
13379DEFINE_GUID(IID_ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae);
13380#if defined(__cplusplus) && !defined(CINTERFACE)
13381MIDL_INTERFACE("1a9e9f4f-104f-4db8-a115-efd7fd0c97ae")
13382ISpeechCustomStream : public ISpeechBaseStream
13383{
13384    virtual HRESULT STDMETHODCALLTYPE get_BaseStream(
13385        IUnknown **ppUnkStream) = 0;
13386
13387    virtual HRESULT STDMETHODCALLTYPE putref_BaseStream(
13388        IUnknown *pUnkStream) = 0;
13389
13390};
13391#ifdef __CRT_UUID_DECL
13392__CRT_UUID_DECL(ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae)
13393#endif
13394#else
13395typedef struct ISpeechCustomStreamVtbl {
13396    BEGIN_INTERFACE
13397
13398    /*** IUnknown methods ***/
13399    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13400        ISpeechCustomStream *This,
13401        REFIID riid,
13402        void **ppvObject);
13403
13404    ULONG (STDMETHODCALLTYPE *AddRef)(
13405        ISpeechCustomStream *This);
13406
13407    ULONG (STDMETHODCALLTYPE *Release)(
13408        ISpeechCustomStream *This);
13409
13410    /*** IDispatch methods ***/
13411    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13412        ISpeechCustomStream *This,
13413        UINT *pctinfo);
13414
13415    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13416        ISpeechCustomStream *This,
13417        UINT iTInfo,
13418        LCID lcid,
13419        ITypeInfo **ppTInfo);
13420
13421    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13422        ISpeechCustomStream *This,
13423        REFIID riid,
13424        LPOLESTR *rgszNames,
13425        UINT cNames,
13426        LCID lcid,
13427        DISPID *rgDispId);
13428
13429    HRESULT (STDMETHODCALLTYPE *Invoke)(
13430        ISpeechCustomStream *This,
13431        DISPID dispIdMember,
13432        REFIID riid,
13433        LCID lcid,
13434        WORD wFlags,
13435        DISPPARAMS *pDispParams,
13436        VARIANT *pVarResult,
13437        EXCEPINFO *pExcepInfo,
13438        UINT *puArgErr);
13439
13440    /*** ISpeechBaseStream methods ***/
13441    HRESULT (STDMETHODCALLTYPE *get_Format)(
13442        ISpeechCustomStream *This,
13443        ISpeechAudioFormat **AudioFormat);
13444
13445    HRESULT (STDMETHODCALLTYPE *putref_Format)(
13446        ISpeechCustomStream *This,
13447        ISpeechAudioFormat *AudioFormat);
13448
13449    HRESULT (STDMETHODCALLTYPE *Read)(
13450        ISpeechCustomStream *This,
13451        VARIANT *Buffer,
13452        LONG NumberOfBytes,
13453        LONG *BytesRead);
13454
13455    HRESULT (STDMETHODCALLTYPE *Write)(
13456        ISpeechCustomStream *This,
13457        VARIANT Buffer,
13458        LONG *BytesWritten);
13459
13460    HRESULT (STDMETHODCALLTYPE *Seek)(
13461        ISpeechCustomStream *This,
13462        VARIANT Position,
13463        SpeechStreamSeekPositionType Origin,
13464        VARIANT *NewPosition);
13465
13466    /*** ISpeechCustomStream methods ***/
13467    HRESULT (STDMETHODCALLTYPE *get_BaseStream)(
13468        ISpeechCustomStream *This,
13469        IUnknown **ppUnkStream);
13470
13471    HRESULT (STDMETHODCALLTYPE *putref_BaseStream)(
13472        ISpeechCustomStream *This,
13473        IUnknown *pUnkStream);
13474
13475    END_INTERFACE
13476} ISpeechCustomStreamVtbl;
13477
13478interface ISpeechCustomStream {
13479    CONST_VTBL ISpeechCustomStreamVtbl* lpVtbl;
13480};
13481
13482#ifdef COBJMACROS
13483#ifndef WIDL_C_INLINE_WRAPPERS
13484/*** IUnknown methods ***/
13485#define ISpeechCustomStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13486#define ISpeechCustomStream_AddRef(This) (This)->lpVtbl->AddRef(This)
13487#define ISpeechCustomStream_Release(This) (This)->lpVtbl->Release(This)
13488/*** IDispatch methods ***/
13489#define ISpeechCustomStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13490#define ISpeechCustomStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13491#define ISpeechCustomStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13492#define ISpeechCustomStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13493/*** ISpeechBaseStream methods ***/
13494#define ISpeechCustomStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13495#define ISpeechCustomStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13496#define ISpeechCustomStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13497#define ISpeechCustomStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13498#define ISpeechCustomStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13499/*** ISpeechCustomStream methods ***/
13500#define ISpeechCustomStream_get_BaseStream(This,ppUnkStream) (This)->lpVtbl->get_BaseStream(This,ppUnkStream)
13501#define ISpeechCustomStream_putref_BaseStream(This,pUnkStream) (This)->lpVtbl->putref_BaseStream(This,pUnkStream)
13502#else
13503/*** IUnknown methods ***/
13504static inline HRESULT ISpeechCustomStream_QueryInterface(ISpeechCustomStream* This,REFIID riid,void **ppvObject) {
13505    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13506}
13507static inline ULONG ISpeechCustomStream_AddRef(ISpeechCustomStream* This) {
13508    return This->lpVtbl->AddRef(This);
13509}
13510static inline ULONG ISpeechCustomStream_Release(ISpeechCustomStream* This) {
13511    return This->lpVtbl->Release(This);
13512}
13513/*** IDispatch methods ***/
13514static inline HRESULT ISpeechCustomStream_GetTypeInfoCount(ISpeechCustomStream* This,UINT *pctinfo) {
13515    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13516}
13517static inline HRESULT ISpeechCustomStream_GetTypeInfo(ISpeechCustomStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13518    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13519}
13520static inline HRESULT ISpeechCustomStream_GetIDsOfNames(ISpeechCustomStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13521    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13522}
13523static inline HRESULT ISpeechCustomStream_Invoke(ISpeechCustomStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13524    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13525}
13526/*** ISpeechBaseStream methods ***/
13527static inline HRESULT ISpeechCustomStream_get_Format(ISpeechCustomStream* This,ISpeechAudioFormat **AudioFormat) {
13528    return This->lpVtbl->get_Format(This,AudioFormat);
13529}
13530static inline HRESULT ISpeechCustomStream_putref_Format(ISpeechCustomStream* This,ISpeechAudioFormat *AudioFormat) {
13531    return This->lpVtbl->putref_Format(This,AudioFormat);
13532}
13533static inline HRESULT ISpeechCustomStream_Read(ISpeechCustomStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13534    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13535}
13536static inline HRESULT ISpeechCustomStream_Write(ISpeechCustomStream* This,VARIANT Buffer,LONG *BytesWritten) {
13537    return This->lpVtbl->Write(This,Buffer,BytesWritten);
13538}
13539static inline HRESULT ISpeechCustomStream_Seek(ISpeechCustomStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13540    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13541}
13542/*** ISpeechCustomStream methods ***/
13543static inline HRESULT ISpeechCustomStream_get_BaseStream(ISpeechCustomStream* This,IUnknown **ppUnkStream) {
13544    return This->lpVtbl->get_BaseStream(This,ppUnkStream);
13545}
13546static inline HRESULT ISpeechCustomStream_putref_BaseStream(ISpeechCustomStream* This,IUnknown *pUnkStream) {
13547    return This->lpVtbl->putref_BaseStream(This,pUnkStream);
13548}
13549#endif
13550#endif
13551
13552#endif
13553
13554
13555#endif  /* __ISpeechCustomStream_INTERFACE_DEFINED__ */
13556
13557/*****************************************************************************
13558 * ISpeechMemoryStream interface
13559 */
13560#ifndef __ISpeechMemoryStream_INTERFACE_DEFINED__
13561#define __ISpeechMemoryStream_INTERFACE_DEFINED__
13562
13563DEFINE_GUID(IID_ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08);
13564#if defined(__cplusplus) && !defined(CINTERFACE)
13565MIDL_INTERFACE("eeb14b68-808b-4abe-a5ea-b51da7588008")
13566ISpeechMemoryStream : public ISpeechBaseStream
13567{
13568    virtual HRESULT STDMETHODCALLTYPE SetData(
13569        VARIANT Data) = 0;
13570
13571    virtual HRESULT STDMETHODCALLTYPE GetData(
13572        VARIANT *pData) = 0;
13573
13574};
13575#ifdef __CRT_UUID_DECL
13576__CRT_UUID_DECL(ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08)
13577#endif
13578#else
13579typedef struct ISpeechMemoryStreamVtbl {
13580    BEGIN_INTERFACE
13581
13582    /*** IUnknown methods ***/
13583    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13584        ISpeechMemoryStream *This,
13585        REFIID riid,
13586        void **ppvObject);
13587
13588    ULONG (STDMETHODCALLTYPE *AddRef)(
13589        ISpeechMemoryStream *This);
13590
13591    ULONG (STDMETHODCALLTYPE *Release)(
13592        ISpeechMemoryStream *This);
13593
13594    /*** IDispatch methods ***/
13595    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13596        ISpeechMemoryStream *This,
13597        UINT *pctinfo);
13598
13599    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13600        ISpeechMemoryStream *This,
13601        UINT iTInfo,
13602        LCID lcid,
13603        ITypeInfo **ppTInfo);
13604
13605    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13606        ISpeechMemoryStream *This,
13607        REFIID riid,
13608        LPOLESTR *rgszNames,
13609        UINT cNames,
13610        LCID lcid,
13611        DISPID *rgDispId);
13612
13613    HRESULT (STDMETHODCALLTYPE *Invoke)(
13614        ISpeechMemoryStream *This,
13615        DISPID dispIdMember,
13616        REFIID riid,
13617        LCID lcid,
13618        WORD wFlags,
13619        DISPPARAMS *pDispParams,
13620        VARIANT *pVarResult,
13621        EXCEPINFO *pExcepInfo,
13622        UINT *puArgErr);
13623
13624    /*** ISpeechBaseStream methods ***/
13625    HRESULT (STDMETHODCALLTYPE *get_Format)(
13626        ISpeechMemoryStream *This,
13627        ISpeechAudioFormat **AudioFormat);
13628
13629    HRESULT (STDMETHODCALLTYPE *putref_Format)(
13630        ISpeechMemoryStream *This,
13631        ISpeechAudioFormat *AudioFormat);
13632
13633    HRESULT (STDMETHODCALLTYPE *Read)(
13634        ISpeechMemoryStream *This,
13635        VARIANT *Buffer,
13636        LONG NumberOfBytes,
13637        LONG *BytesRead);
13638
13639    HRESULT (STDMETHODCALLTYPE *Write)(
13640        ISpeechMemoryStream *This,
13641        VARIANT Buffer,
13642        LONG *BytesWritten);
13643
13644    HRESULT (STDMETHODCALLTYPE *Seek)(
13645        ISpeechMemoryStream *This,
13646        VARIANT Position,
13647        SpeechStreamSeekPositionType Origin,
13648        VARIANT *NewPosition);
13649
13650    /*** ISpeechMemoryStream methods ***/
13651    HRESULT (STDMETHODCALLTYPE *SetData)(
13652        ISpeechMemoryStream *This,
13653        VARIANT Data);
13654
13655    HRESULT (STDMETHODCALLTYPE *GetData)(
13656        ISpeechMemoryStream *This,
13657        VARIANT *pData);
13658
13659    END_INTERFACE
13660} ISpeechMemoryStreamVtbl;
13661
13662interface ISpeechMemoryStream {
13663    CONST_VTBL ISpeechMemoryStreamVtbl* lpVtbl;
13664};
13665
13666#ifdef COBJMACROS
13667#ifndef WIDL_C_INLINE_WRAPPERS
13668/*** IUnknown methods ***/
13669#define ISpeechMemoryStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13670#define ISpeechMemoryStream_AddRef(This) (This)->lpVtbl->AddRef(This)
13671#define ISpeechMemoryStream_Release(This) (This)->lpVtbl->Release(This)
13672/*** IDispatch methods ***/
13673#define ISpeechMemoryStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13674#define ISpeechMemoryStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13675#define ISpeechMemoryStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13676#define ISpeechMemoryStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13677/*** ISpeechBaseStream methods ***/
13678#define ISpeechMemoryStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13679#define ISpeechMemoryStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13680#define ISpeechMemoryStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13681#define ISpeechMemoryStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13682#define ISpeechMemoryStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13683/*** ISpeechMemoryStream methods ***/
13684#define ISpeechMemoryStream_SetData(This,Data) (This)->lpVtbl->SetData(This,Data)
13685#define ISpeechMemoryStream_GetData(This,pData) (This)->lpVtbl->GetData(This,pData)
13686#else
13687/*** IUnknown methods ***/
13688static inline HRESULT ISpeechMemoryStream_QueryInterface(ISpeechMemoryStream* This,REFIID riid,void **ppvObject) {
13689    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13690}
13691static inline ULONG ISpeechMemoryStream_AddRef(ISpeechMemoryStream* This) {
13692    return This->lpVtbl->AddRef(This);
13693}
13694static inline ULONG ISpeechMemoryStream_Release(ISpeechMemoryStream* This) {
13695    return This->lpVtbl->Release(This);
13696}
13697/*** IDispatch methods ***/
13698static inline HRESULT ISpeechMemoryStream_GetTypeInfoCount(ISpeechMemoryStream* This,UINT *pctinfo) {
13699    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13700}
13701static inline HRESULT ISpeechMemoryStream_GetTypeInfo(ISpeechMemoryStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13702    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13703}
13704static inline HRESULT ISpeechMemoryStream_GetIDsOfNames(ISpeechMemoryStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13705    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13706}
13707static inline HRESULT ISpeechMemoryStream_Invoke(ISpeechMemoryStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13708    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13709}
13710/*** ISpeechBaseStream methods ***/
13711static inline HRESULT ISpeechMemoryStream_get_Format(ISpeechMemoryStream* This,ISpeechAudioFormat **AudioFormat) {
13712    return This->lpVtbl->get_Format(This,AudioFormat);
13713}
13714static inline HRESULT ISpeechMemoryStream_putref_Format(ISpeechMemoryStream* This,ISpeechAudioFormat *AudioFormat) {
13715    return This->lpVtbl->putref_Format(This,AudioFormat);
13716}
13717static inline HRESULT ISpeechMemoryStream_Read(ISpeechMemoryStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13718    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13719}
13720static inline HRESULT ISpeechMemoryStream_Write(ISpeechMemoryStream* This,VARIANT Buffer,LONG *BytesWritten) {
13721    return This->lpVtbl->Write(This,Buffer,BytesWritten);
13722}
13723static inline HRESULT ISpeechMemoryStream_Seek(ISpeechMemoryStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13724    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13725}
13726/*** ISpeechMemoryStream methods ***/
13727static inline HRESULT ISpeechMemoryStream_SetData(ISpeechMemoryStream* This,VARIANT Data) {
13728    return This->lpVtbl->SetData(This,Data);
13729}
13730static inline HRESULT ISpeechMemoryStream_GetData(ISpeechMemoryStream* This,VARIANT *pData) {
13731    return This->lpVtbl->GetData(This,pData);
13732}
13733#endif
13734#endif
13735
13736#endif
13737
13738
13739#endif  /* __ISpeechMemoryStream_INTERFACE_DEFINED__ */
13740
13741/*****************************************************************************
13742 * ISpeechAudioStatus interface
13743 */
13744#ifndef __ISpeechAudioStatus_INTERFACE_DEFINED__
13745#define __ISpeechAudioStatus_INTERFACE_DEFINED__
13746
13747DEFINE_GUID(IID_ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78);
13748#if defined(__cplusplus) && !defined(CINTERFACE)
13749MIDL_INTERFACE("c62d9c91-7458-47f6-862d-1ef86fb0b278")
13750ISpeechAudioStatus : public IDispatch
13751{
13752    virtual HRESULT STDMETHODCALLTYPE get_FreeBufferSpace(
13753        LONG *FreeBufferSpace) = 0;
13754
13755    virtual HRESULT STDMETHODCALLTYPE get_NonBlockingIO(
13756        LONG *NonBlockingIO) = 0;
13757
13758    virtual HRESULT STDMETHODCALLTYPE get_State(
13759        SpeechAudioState *State) = 0;
13760
13761    virtual HRESULT STDMETHODCALLTYPE get_CurrentSeekPosition(
13762        VARIANT *CurrentSeekPosition) = 0;
13763
13764    virtual HRESULT STDMETHODCALLTYPE get_CurrentDevicePosition(
13765        VARIANT *CurrentDevicePosition) = 0;
13766
13767};
13768#ifdef __CRT_UUID_DECL
13769__CRT_UUID_DECL(ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78)
13770#endif
13771#else
13772typedef struct ISpeechAudioStatusVtbl {
13773    BEGIN_INTERFACE
13774
13775    /*** IUnknown methods ***/
13776    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13777        ISpeechAudioStatus *This,
13778        REFIID riid,
13779        void **ppvObject);
13780
13781    ULONG (STDMETHODCALLTYPE *AddRef)(
13782        ISpeechAudioStatus *This);
13783
13784    ULONG (STDMETHODCALLTYPE *Release)(
13785        ISpeechAudioStatus *This);
13786
13787    /*** IDispatch methods ***/
13788    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13789        ISpeechAudioStatus *This,
13790        UINT *pctinfo);
13791
13792    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13793        ISpeechAudioStatus *This,
13794        UINT iTInfo,
13795        LCID lcid,
13796        ITypeInfo **ppTInfo);
13797
13798    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13799        ISpeechAudioStatus *This,
13800        REFIID riid,
13801        LPOLESTR *rgszNames,
13802        UINT cNames,
13803        LCID lcid,
13804        DISPID *rgDispId);
13805
13806    HRESULT (STDMETHODCALLTYPE *Invoke)(
13807        ISpeechAudioStatus *This,
13808        DISPID dispIdMember,
13809        REFIID riid,
13810        LCID lcid,
13811        WORD wFlags,
13812        DISPPARAMS *pDispParams,
13813        VARIANT *pVarResult,
13814        EXCEPINFO *pExcepInfo,
13815        UINT *puArgErr);
13816
13817    /*** ISpeechAudioStatus methods ***/
13818    HRESULT (STDMETHODCALLTYPE *get_FreeBufferSpace)(
13819        ISpeechAudioStatus *This,
13820        LONG *FreeBufferSpace);
13821
13822    HRESULT (STDMETHODCALLTYPE *get_NonBlockingIO)(
13823        ISpeechAudioStatus *This,
13824        LONG *NonBlockingIO);
13825
13826    HRESULT (STDMETHODCALLTYPE *get_State)(
13827        ISpeechAudioStatus *This,
13828        SpeechAudioState *State);
13829
13830    HRESULT (STDMETHODCALLTYPE *get_CurrentSeekPosition)(
13831        ISpeechAudioStatus *This,
13832        VARIANT *CurrentSeekPosition);
13833
13834    HRESULT (STDMETHODCALLTYPE *get_CurrentDevicePosition)(
13835        ISpeechAudioStatus *This,
13836        VARIANT *CurrentDevicePosition);
13837
13838    END_INTERFACE
13839} ISpeechAudioStatusVtbl;
13840
13841interface ISpeechAudioStatus {
13842    CONST_VTBL ISpeechAudioStatusVtbl* lpVtbl;
13843};
13844
13845#ifdef COBJMACROS
13846#ifndef WIDL_C_INLINE_WRAPPERS
13847/*** IUnknown methods ***/
13848#define ISpeechAudioStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13849#define ISpeechAudioStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
13850#define ISpeechAudioStatus_Release(This) (This)->lpVtbl->Release(This)
13851/*** IDispatch methods ***/
13852#define ISpeechAudioStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13853#define ISpeechAudioStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13854#define ISpeechAudioStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13855#define ISpeechAudioStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13856/*** ISpeechAudioStatus methods ***/
13857#define ISpeechAudioStatus_get_FreeBufferSpace(This,FreeBufferSpace) (This)->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace)
13858#define ISpeechAudioStatus_get_NonBlockingIO(This,NonBlockingIO) (This)->lpVtbl->get_NonBlockingIO(This,NonBlockingIO)
13859#define ISpeechAudioStatus_get_State(This,State) (This)->lpVtbl->get_State(This,State)
13860#define ISpeechAudioStatus_get_CurrentSeekPosition(This,CurrentSeekPosition) (This)->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition)
13861#define ISpeechAudioStatus_get_CurrentDevicePosition(This,CurrentDevicePosition) (This)->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition)
13862#else
13863/*** IUnknown methods ***/
13864static inline HRESULT ISpeechAudioStatus_QueryInterface(ISpeechAudioStatus* This,REFIID riid,void **ppvObject) {
13865    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13866}
13867static inline ULONG ISpeechAudioStatus_AddRef(ISpeechAudioStatus* This) {
13868    return This->lpVtbl->AddRef(This);
13869}
13870static inline ULONG ISpeechAudioStatus_Release(ISpeechAudioStatus* This) {
13871    return This->lpVtbl->Release(This);
13872}
13873/*** IDispatch methods ***/
13874static inline HRESULT ISpeechAudioStatus_GetTypeInfoCount(ISpeechAudioStatus* This,UINT *pctinfo) {
13875    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13876}
13877static inline HRESULT ISpeechAudioStatus_GetTypeInfo(ISpeechAudioStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13878    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13879}
13880static inline HRESULT ISpeechAudioStatus_GetIDsOfNames(ISpeechAudioStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13881    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13882}
13883static inline HRESULT ISpeechAudioStatus_Invoke(ISpeechAudioStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13884    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13885}
13886/*** ISpeechAudioStatus methods ***/
13887static inline HRESULT ISpeechAudioStatus_get_FreeBufferSpace(ISpeechAudioStatus* This,LONG *FreeBufferSpace) {
13888    return This->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace);
13889}
13890static inline HRESULT ISpeechAudioStatus_get_NonBlockingIO(ISpeechAudioStatus* This,LONG *NonBlockingIO) {
13891    return This->lpVtbl->get_NonBlockingIO(This,NonBlockingIO);
13892}
13893static inline HRESULT ISpeechAudioStatus_get_State(ISpeechAudioStatus* This,SpeechAudioState *State) {
13894    return This->lpVtbl->get_State(This,State);
13895}
13896static inline HRESULT ISpeechAudioStatus_get_CurrentSeekPosition(ISpeechAudioStatus* This,VARIANT *CurrentSeekPosition) {
13897    return This->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition);
13898}
13899static inline HRESULT ISpeechAudioStatus_get_CurrentDevicePosition(ISpeechAudioStatus* This,VARIANT *CurrentDevicePosition) {
13900    return This->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition);
13901}
13902#endif
13903#endif
13904
13905#endif
13906
13907
13908#endif  /* __ISpeechAudioStatus_INTERFACE_DEFINED__ */
13909
13910/*****************************************************************************
13911 * ISpeechAudioBufferInfo interface
13912 */
13913#ifndef __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
13914#define __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
13915
13916DEFINE_GUID(IID_ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc);
13917#if defined(__cplusplus) && !defined(CINTERFACE)
13918MIDL_INTERFACE("11b103d8-1142-4edf-a093-82fb3915f8cc")
13919ISpeechAudioBufferInfo : public IDispatch
13920{
13921    virtual HRESULT STDMETHODCALLTYPE get_MinNotification(
13922        LONG *MinNotification) = 0;
13923
13924    virtual HRESULT STDMETHODCALLTYPE put_MinNotification(
13925        LONG MinNotification) = 0;
13926
13927    virtual HRESULT STDMETHODCALLTYPE get_BufferSize(
13928        LONG *BufferSize) = 0;
13929
13930    virtual HRESULT STDMETHODCALLTYPE put_BufferSize(
13931        LONG BufferSize) = 0;
13932
13933    virtual HRESULT STDMETHODCALLTYPE get_EventBias(
13934        LONG *EventBias) = 0;
13935
13936    virtual HRESULT STDMETHODCALLTYPE put_EventBias(
13937        LONG EventBias) = 0;
13938
13939};
13940#ifdef __CRT_UUID_DECL
13941__CRT_UUID_DECL(ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc)
13942#endif
13943#else
13944typedef struct ISpeechAudioBufferInfoVtbl {
13945    BEGIN_INTERFACE
13946
13947    /*** IUnknown methods ***/
13948    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13949        ISpeechAudioBufferInfo *This,
13950        REFIID riid,
13951        void **ppvObject);
13952
13953    ULONG (STDMETHODCALLTYPE *AddRef)(
13954        ISpeechAudioBufferInfo *This);
13955
13956    ULONG (STDMETHODCALLTYPE *Release)(
13957        ISpeechAudioBufferInfo *This);
13958
13959    /*** IDispatch methods ***/
13960    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13961        ISpeechAudioBufferInfo *This,
13962        UINT *pctinfo);
13963
13964    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13965        ISpeechAudioBufferInfo *This,
13966        UINT iTInfo,
13967        LCID lcid,
13968        ITypeInfo **ppTInfo);
13969
13970    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13971        ISpeechAudioBufferInfo *This,
13972        REFIID riid,
13973        LPOLESTR *rgszNames,
13974        UINT cNames,
13975        LCID lcid,
13976        DISPID *rgDispId);
13977
13978    HRESULT (STDMETHODCALLTYPE *Invoke)(
13979        ISpeechAudioBufferInfo *This,
13980        DISPID dispIdMember,
13981        REFIID riid,
13982        LCID lcid,
13983        WORD wFlags,
13984        DISPPARAMS *pDispParams,
13985        VARIANT *pVarResult,
13986        EXCEPINFO *pExcepInfo,
13987        UINT *puArgErr);
13988
13989    /*** ISpeechAudioBufferInfo methods ***/
13990    HRESULT (STDMETHODCALLTYPE *get_MinNotification)(
13991        ISpeechAudioBufferInfo *This,
13992        LONG *MinNotification);
13993
13994    HRESULT (STDMETHODCALLTYPE *put_MinNotification)(
13995        ISpeechAudioBufferInfo *This,
13996        LONG MinNotification);
13997
13998    HRESULT (STDMETHODCALLTYPE *get_BufferSize)(
13999        ISpeechAudioBufferInfo *This,
14000        LONG *BufferSize);
14001
14002    HRESULT (STDMETHODCALLTYPE *put_BufferSize)(
14003        ISpeechAudioBufferInfo *This,
14004        LONG BufferSize);
14005
14006    HRESULT (STDMETHODCALLTYPE *get_EventBias)(
14007        ISpeechAudioBufferInfo *This,
14008        LONG *EventBias);
14009
14010    HRESULT (STDMETHODCALLTYPE *put_EventBias)(
14011        ISpeechAudioBufferInfo *This,
14012        LONG EventBias);
14013
14014    END_INTERFACE
14015} ISpeechAudioBufferInfoVtbl;
14016
14017interface ISpeechAudioBufferInfo {
14018    CONST_VTBL ISpeechAudioBufferInfoVtbl* lpVtbl;
14019};
14020
14021#ifdef COBJMACROS
14022#ifndef WIDL_C_INLINE_WRAPPERS
14023/*** IUnknown methods ***/
14024#define ISpeechAudioBufferInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14025#define ISpeechAudioBufferInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
14026#define ISpeechAudioBufferInfo_Release(This) (This)->lpVtbl->Release(This)
14027/*** IDispatch methods ***/
14028#define ISpeechAudioBufferInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14029#define ISpeechAudioBufferInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14030#define ISpeechAudioBufferInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14031#define ISpeechAudioBufferInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14032/*** ISpeechAudioBufferInfo methods ***/
14033#define ISpeechAudioBufferInfo_get_MinNotification(This,MinNotification) (This)->lpVtbl->get_MinNotification(This,MinNotification)
14034#define ISpeechAudioBufferInfo_put_MinNotification(This,MinNotification) (This)->lpVtbl->put_MinNotification(This,MinNotification)
14035#define ISpeechAudioBufferInfo_get_BufferSize(This,BufferSize) (This)->lpVtbl->get_BufferSize(This,BufferSize)
14036#define ISpeechAudioBufferInfo_put_BufferSize(This,BufferSize) (This)->lpVtbl->put_BufferSize(This,BufferSize)
14037#define ISpeechAudioBufferInfo_get_EventBias(This,EventBias) (This)->lpVtbl->get_EventBias(This,EventBias)
14038#define ISpeechAudioBufferInfo_put_EventBias(This,EventBias) (This)->lpVtbl->put_EventBias(This,EventBias)
14039#else
14040/*** IUnknown methods ***/
14041static inline HRESULT ISpeechAudioBufferInfo_QueryInterface(ISpeechAudioBufferInfo* This,REFIID riid,void **ppvObject) {
14042    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14043}
14044static inline ULONG ISpeechAudioBufferInfo_AddRef(ISpeechAudioBufferInfo* This) {
14045    return This->lpVtbl->AddRef(This);
14046}
14047static inline ULONG ISpeechAudioBufferInfo_Release(ISpeechAudioBufferInfo* This) {
14048    return This->lpVtbl->Release(This);
14049}
14050/*** IDispatch methods ***/
14051static inline HRESULT ISpeechAudioBufferInfo_GetTypeInfoCount(ISpeechAudioBufferInfo* This,UINT *pctinfo) {
14052    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14053}
14054static inline HRESULT ISpeechAudioBufferInfo_GetTypeInfo(ISpeechAudioBufferInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14055    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14056}
14057static inline HRESULT ISpeechAudioBufferInfo_GetIDsOfNames(ISpeechAudioBufferInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14058    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14059}
14060static inline HRESULT ISpeechAudioBufferInfo_Invoke(ISpeechAudioBufferInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14061    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14062}
14063/*** ISpeechAudioBufferInfo methods ***/
14064static inline HRESULT ISpeechAudioBufferInfo_get_MinNotification(ISpeechAudioBufferInfo* This,LONG *MinNotification) {
14065    return This->lpVtbl->get_MinNotification(This,MinNotification);
14066}
14067static inline HRESULT ISpeechAudioBufferInfo_put_MinNotification(ISpeechAudioBufferInfo* This,LONG MinNotification) {
14068    return This->lpVtbl->put_MinNotification(This,MinNotification);
14069}
14070static inline HRESULT ISpeechAudioBufferInfo_get_BufferSize(ISpeechAudioBufferInfo* This,LONG *BufferSize) {
14071    return This->lpVtbl->get_BufferSize(This,BufferSize);
14072}
14073static inline HRESULT ISpeechAudioBufferInfo_put_BufferSize(ISpeechAudioBufferInfo* This,LONG BufferSize) {
14074    return This->lpVtbl->put_BufferSize(This,BufferSize);
14075}
14076static inline HRESULT ISpeechAudioBufferInfo_get_EventBias(ISpeechAudioBufferInfo* This,LONG *EventBias) {
14077    return This->lpVtbl->get_EventBias(This,EventBias);
14078}
14079static inline HRESULT ISpeechAudioBufferInfo_put_EventBias(ISpeechAudioBufferInfo* This,LONG EventBias) {
14080    return This->lpVtbl->put_EventBias(This,EventBias);
14081}
14082#endif
14083#endif
14084
14085#endif
14086
14087
14088#endif  /* __ISpeechAudioBufferInfo_INTERFACE_DEFINED__ */
14089
14090/*****************************************************************************
14091 * ISpeechWaveFormatEx interface
14092 */
14093#ifndef __ISpeechWaveFormatEx_INTERFACE_DEFINED__
14094#define __ISpeechWaveFormatEx_INTERFACE_DEFINED__
14095
14096DEFINE_GUID(IID_ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10);
14097#if defined(__cplusplus) && !defined(CINTERFACE)
14098MIDL_INTERFACE("7a1ef0d5-1581-4741-88e4-209a49f11a10")
14099ISpeechWaveFormatEx : public IDispatch
14100{
14101    virtual HRESULT STDMETHODCALLTYPE get_FormatTag(
14102        short *FormatTag) = 0;
14103
14104    virtual HRESULT STDMETHODCALLTYPE put_FormatTag(
14105        short FormatTag) = 0;
14106
14107    virtual HRESULT STDMETHODCALLTYPE get_Channels(
14108        short *Channels) = 0;
14109
14110    virtual HRESULT STDMETHODCALLTYPE put_Channels(
14111        short Channels) = 0;
14112
14113    virtual HRESULT STDMETHODCALLTYPE get_SamplesPerSec(
14114        LONG *SamplesPerSec) = 0;
14115
14116    virtual HRESULT STDMETHODCALLTYPE put_SamplesPerSec(
14117        LONG SamplesPerSec) = 0;
14118
14119    virtual HRESULT STDMETHODCALLTYPE get_AvgBytesPerSec(
14120        LONG *AvgBytesPerSec) = 0;
14121
14122    virtual HRESULT STDMETHODCALLTYPE put_AvgBytesPerSec(
14123        LONG AvgBytesPerSec) = 0;
14124
14125    virtual HRESULT STDMETHODCALLTYPE get_BlockAlign(
14126        short *BlockAlign) = 0;
14127
14128    virtual HRESULT STDMETHODCALLTYPE put_BlockAlign(
14129        short BlockAlign) = 0;
14130
14131    virtual HRESULT STDMETHODCALLTYPE get_BitsPerSample(
14132        short *BitsPerSample) = 0;
14133
14134    virtual HRESULT STDMETHODCALLTYPE put_BitsPerSample(
14135        short BitsPerSample) = 0;
14136
14137    virtual HRESULT STDMETHODCALLTYPE get_ExtraData(
14138        VARIANT *ExtraData) = 0;
14139
14140    virtual HRESULT STDMETHODCALLTYPE put_ExtraData(
14141        VARIANT ExtraData) = 0;
14142
14143};
14144#ifdef __CRT_UUID_DECL
14145__CRT_UUID_DECL(ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10)
14146#endif
14147#else
14148typedef struct ISpeechWaveFormatExVtbl {
14149    BEGIN_INTERFACE
14150
14151    /*** IUnknown methods ***/
14152    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14153        ISpeechWaveFormatEx *This,
14154        REFIID riid,
14155        void **ppvObject);
14156
14157    ULONG (STDMETHODCALLTYPE *AddRef)(
14158        ISpeechWaveFormatEx *This);
14159
14160    ULONG (STDMETHODCALLTYPE *Release)(
14161        ISpeechWaveFormatEx *This);
14162
14163    /*** IDispatch methods ***/
14164    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14165        ISpeechWaveFormatEx *This,
14166        UINT *pctinfo);
14167
14168    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14169        ISpeechWaveFormatEx *This,
14170        UINT iTInfo,
14171        LCID lcid,
14172        ITypeInfo **ppTInfo);
14173
14174    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14175        ISpeechWaveFormatEx *This,
14176        REFIID riid,
14177        LPOLESTR *rgszNames,
14178        UINT cNames,
14179        LCID lcid,
14180        DISPID *rgDispId);
14181
14182    HRESULT (STDMETHODCALLTYPE *Invoke)(
14183        ISpeechWaveFormatEx *This,
14184        DISPID dispIdMember,
14185        REFIID riid,
14186        LCID lcid,
14187        WORD wFlags,
14188        DISPPARAMS *pDispParams,
14189        VARIANT *pVarResult,
14190        EXCEPINFO *pExcepInfo,
14191        UINT *puArgErr);
14192
14193    /*** ISpeechWaveFormatEx methods ***/
14194    HRESULT (STDMETHODCALLTYPE *get_FormatTag)(
14195        ISpeechWaveFormatEx *This,
14196        short *FormatTag);
14197
14198    HRESULT (STDMETHODCALLTYPE *put_FormatTag)(
14199        ISpeechWaveFormatEx *This,
14200        short FormatTag);
14201
14202    HRESULT (STDMETHODCALLTYPE *get_Channels)(
14203        ISpeechWaveFormatEx *This,
14204        short *Channels);
14205
14206    HRESULT (STDMETHODCALLTYPE *put_Channels)(
14207        ISpeechWaveFormatEx *This,
14208        short Channels);
14209
14210    HRESULT (STDMETHODCALLTYPE *get_SamplesPerSec)(
14211        ISpeechWaveFormatEx *This,
14212        LONG *SamplesPerSec);
14213
14214    HRESULT (STDMETHODCALLTYPE *put_SamplesPerSec)(
14215        ISpeechWaveFormatEx *This,
14216        LONG SamplesPerSec);
14217
14218    HRESULT (STDMETHODCALLTYPE *get_AvgBytesPerSec)(
14219        ISpeechWaveFormatEx *This,
14220        LONG *AvgBytesPerSec);
14221
14222    HRESULT (STDMETHODCALLTYPE *put_AvgBytesPerSec)(
14223        ISpeechWaveFormatEx *This,
14224        LONG AvgBytesPerSec);
14225
14226    HRESULT (STDMETHODCALLTYPE *get_BlockAlign)(
14227        ISpeechWaveFormatEx *This,
14228        short *BlockAlign);
14229
14230    HRESULT (STDMETHODCALLTYPE *put_BlockAlign)(
14231        ISpeechWaveFormatEx *This,
14232        short BlockAlign);
14233
14234    HRESULT (STDMETHODCALLTYPE *get_BitsPerSample)(
14235        ISpeechWaveFormatEx *This,
14236        short *BitsPerSample);
14237
14238    HRESULT (STDMETHODCALLTYPE *put_BitsPerSample)(
14239        ISpeechWaveFormatEx *This,
14240        short BitsPerSample);
14241
14242    HRESULT (STDMETHODCALLTYPE *get_ExtraData)(
14243        ISpeechWaveFormatEx *This,
14244        VARIANT *ExtraData);
14245
14246    HRESULT (STDMETHODCALLTYPE *put_ExtraData)(
14247        ISpeechWaveFormatEx *This,
14248        VARIANT ExtraData);
14249
14250    END_INTERFACE
14251} ISpeechWaveFormatExVtbl;
14252
14253interface ISpeechWaveFormatEx {
14254    CONST_VTBL ISpeechWaveFormatExVtbl* lpVtbl;
14255};
14256
14257#ifdef COBJMACROS
14258#ifndef WIDL_C_INLINE_WRAPPERS
14259/*** IUnknown methods ***/
14260#define ISpeechWaveFormatEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14261#define ISpeechWaveFormatEx_AddRef(This) (This)->lpVtbl->AddRef(This)
14262#define ISpeechWaveFormatEx_Release(This) (This)->lpVtbl->Release(This)
14263/*** IDispatch methods ***/
14264#define ISpeechWaveFormatEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14265#define ISpeechWaveFormatEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14266#define ISpeechWaveFormatEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14267#define ISpeechWaveFormatEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14268/*** ISpeechWaveFormatEx methods ***/
14269#define ISpeechWaveFormatEx_get_FormatTag(This,FormatTag) (This)->lpVtbl->get_FormatTag(This,FormatTag)
14270#define ISpeechWaveFormatEx_put_FormatTag(This,FormatTag) (This)->lpVtbl->put_FormatTag(This,FormatTag)
14271#define ISpeechWaveFormatEx_get_Channels(This,Channels) (This)->lpVtbl->get_Channels(This,Channels)
14272#define ISpeechWaveFormatEx_put_Channels(This,Channels) (This)->lpVtbl->put_Channels(This,Channels)
14273#define ISpeechWaveFormatEx_get_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->get_SamplesPerSec(This,SamplesPerSec)
14274#define ISpeechWaveFormatEx_put_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->put_SamplesPerSec(This,SamplesPerSec)
14275#define ISpeechWaveFormatEx_get_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec)
14276#define ISpeechWaveFormatEx_put_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec)
14277#define ISpeechWaveFormatEx_get_BlockAlign(This,BlockAlign) (This)->lpVtbl->get_BlockAlign(This,BlockAlign)
14278#define ISpeechWaveFormatEx_put_BlockAlign(This,BlockAlign) (This)->lpVtbl->put_BlockAlign(This,BlockAlign)
14279#define ISpeechWaveFormatEx_get_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->get_BitsPerSample(This,BitsPerSample)
14280#define ISpeechWaveFormatEx_put_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->put_BitsPerSample(This,BitsPerSample)
14281#define ISpeechWaveFormatEx_get_ExtraData(This,ExtraData) (This)->lpVtbl->get_ExtraData(This,ExtraData)
14282#define ISpeechWaveFormatEx_put_ExtraData(This,ExtraData) (This)->lpVtbl->put_ExtraData(This,ExtraData)
14283#else
14284/*** IUnknown methods ***/
14285static inline HRESULT ISpeechWaveFormatEx_QueryInterface(ISpeechWaveFormatEx* This,REFIID riid,void **ppvObject) {
14286    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14287}
14288static inline ULONG ISpeechWaveFormatEx_AddRef(ISpeechWaveFormatEx* This) {
14289    return This->lpVtbl->AddRef(This);
14290}
14291static inline ULONG ISpeechWaveFormatEx_Release(ISpeechWaveFormatEx* This) {
14292    return This->lpVtbl->Release(This);
14293}
14294/*** IDispatch methods ***/
14295static inline HRESULT ISpeechWaveFormatEx_GetTypeInfoCount(ISpeechWaveFormatEx* This,UINT *pctinfo) {
14296    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14297}
14298static inline HRESULT ISpeechWaveFormatEx_GetTypeInfo(ISpeechWaveFormatEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14299    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14300}
14301static inline HRESULT ISpeechWaveFormatEx_GetIDsOfNames(ISpeechWaveFormatEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14302    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14303}
14304static inline HRESULT ISpeechWaveFormatEx_Invoke(ISpeechWaveFormatEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14305    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14306}
14307/*** ISpeechWaveFormatEx methods ***/
14308static inline HRESULT ISpeechWaveFormatEx_get_FormatTag(ISpeechWaveFormatEx* This,short *FormatTag) {
14309    return This->lpVtbl->get_FormatTag(This,FormatTag);
14310}
14311static inline HRESULT ISpeechWaveFormatEx_put_FormatTag(ISpeechWaveFormatEx* This,short FormatTag) {
14312    return This->lpVtbl->put_FormatTag(This,FormatTag);
14313}
14314static inline HRESULT ISpeechWaveFormatEx_get_Channels(ISpeechWaveFormatEx* This,short *Channels) {
14315    return This->lpVtbl->get_Channels(This,Channels);
14316}
14317static inline HRESULT ISpeechWaveFormatEx_put_Channels(ISpeechWaveFormatEx* This,short Channels) {
14318    return This->lpVtbl->put_Channels(This,Channels);
14319}
14320static inline HRESULT ISpeechWaveFormatEx_get_SamplesPerSec(ISpeechWaveFormatEx* This,LONG *SamplesPerSec) {
14321    return This->lpVtbl->get_SamplesPerSec(This,SamplesPerSec);
14322}
14323static inline HRESULT ISpeechWaveFormatEx_put_SamplesPerSec(ISpeechWaveFormatEx* This,LONG SamplesPerSec) {
14324    return This->lpVtbl->put_SamplesPerSec(This,SamplesPerSec);
14325}
14326static inline HRESULT ISpeechWaveFormatEx_get_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG *AvgBytesPerSec) {
14327    return This->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec);
14328}
14329static inline HRESULT ISpeechWaveFormatEx_put_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG AvgBytesPerSec) {
14330    return This->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec);
14331}
14332static inline HRESULT ISpeechWaveFormatEx_get_BlockAlign(ISpeechWaveFormatEx* This,short *BlockAlign) {
14333    return This->lpVtbl->get_BlockAlign(This,BlockAlign);
14334}
14335static inline HRESULT ISpeechWaveFormatEx_put_BlockAlign(ISpeechWaveFormatEx* This,short BlockAlign) {
14336    return This->lpVtbl->put_BlockAlign(This,BlockAlign);
14337}
14338static inline HRESULT ISpeechWaveFormatEx_get_BitsPerSample(ISpeechWaveFormatEx* This,short *BitsPerSample) {
14339    return This->lpVtbl->get_BitsPerSample(This,BitsPerSample);
14340}
14341static inline HRESULT ISpeechWaveFormatEx_put_BitsPerSample(ISpeechWaveFormatEx* This,short BitsPerSample) {
14342    return This->lpVtbl->put_BitsPerSample(This,BitsPerSample);
14343}
14344static inline HRESULT ISpeechWaveFormatEx_get_ExtraData(ISpeechWaveFormatEx* This,VARIANT *ExtraData) {
14345    return This->lpVtbl->get_ExtraData(This,ExtraData);
14346}
14347static inline HRESULT ISpeechWaveFormatEx_put_ExtraData(ISpeechWaveFormatEx* This,VARIANT ExtraData) {
14348    return This->lpVtbl->put_ExtraData(This,ExtraData);
14349}
14350#endif
14351#endif
14352
14353#endif
14354
14355
14356#endif  /* __ISpeechWaveFormatEx_INTERFACE_DEFINED__ */
14357
14358/*****************************************************************************
14359 * ISpeechVoice interface
14360 */
14361#ifndef __ISpeechVoice_INTERFACE_DEFINED__
14362#define __ISpeechVoice_INTERFACE_DEFINED__
14363
14364DEFINE_GUID(IID_ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
14365#if defined(__cplusplus) && !defined(CINTERFACE)
14366MIDL_INTERFACE("269316d8-57bd-11d2-9eee-00c04f797396")
14367ISpeechVoice : public IDispatch
14368{
14369    virtual HRESULT STDMETHODCALLTYPE get_Status(
14370        ISpeechVoiceStatus **Status) = 0;
14371
14372    virtual HRESULT STDMETHODCALLTYPE get_Voice(
14373        ISpeechObjectToken **Voice) = 0;
14374
14375    virtual HRESULT STDMETHODCALLTYPE putref_Voice(
14376        ISpeechObjectToken *Voice) = 0;
14377
14378    virtual HRESULT STDMETHODCALLTYPE get_AudioOutput(
14379        ISpeechObjectToken **AudioOutput) = 0;
14380
14381    virtual HRESULT STDMETHODCALLTYPE putref_AudioOutput(
14382        ISpeechObjectToken *AudioOutput) = 0;
14383
14384    virtual HRESULT STDMETHODCALLTYPE get_AudioOutputStream(
14385        ISpeechBaseStream **AudioOutputStream) = 0;
14386
14387    virtual HRESULT STDMETHODCALLTYPE putref_AudioOutputStream(
14388        ISpeechBaseStream *AudioOutputStream) = 0;
14389
14390    virtual HRESULT STDMETHODCALLTYPE get_Rate(
14391        LONG *Rate) = 0;
14392
14393    virtual HRESULT STDMETHODCALLTYPE put_Rate(
14394        LONG Rate) = 0;
14395
14396    virtual HRESULT STDMETHODCALLTYPE get_Volume(
14397        LONG *Volume) = 0;
14398
14399    virtual HRESULT STDMETHODCALLTYPE put_Volume(
14400        LONG Volume) = 0;
14401
14402    virtual HRESULT STDMETHODCALLTYPE put_AllowAudioOutputFormatChangesOnNextSet(
14403        VARIANT_BOOL Allow) = 0;
14404
14405    virtual HRESULT STDMETHODCALLTYPE get_AllowAudioOutputFormatChangesOnNextSet(
14406        VARIANT_BOOL *Allow) = 0;
14407
14408    virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
14409        SpeechVoiceEvents *EventInterestFlags) = 0;
14410
14411    virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
14412        SpeechVoiceEvents EventInterestFlags) = 0;
14413
14414    virtual HRESULT STDMETHODCALLTYPE put_Priority(
14415        SpeechVoicePriority Priority) = 0;
14416
14417    virtual HRESULT STDMETHODCALLTYPE get_Priority(
14418        SpeechVoicePriority *Priority) = 0;
14419
14420    virtual HRESULT STDMETHODCALLTYPE put_AlertBoundary(
14421        SpeechVoiceEvents Boundary) = 0;
14422
14423    virtual HRESULT STDMETHODCALLTYPE get_AlertBoundary(
14424        SpeechVoiceEvents *Boundary) = 0;
14425
14426    virtual HRESULT STDMETHODCALLTYPE put_SynchronousSpeakTimeout(
14427        LONG msTimeout) = 0;
14428
14429    virtual HRESULT STDMETHODCALLTYPE get_SynchronousSpeakTimeout(
14430        LONG *msTimeout) = 0;
14431
14432    virtual HRESULT STDMETHODCALLTYPE Speak(
14433        BSTR Text,
14434        SpeechVoiceSpeakFlags Flags,
14435        LONG *StreamNumber) = 0;
14436
14437    virtual HRESULT STDMETHODCALLTYPE SpeakStream(
14438        ISpeechBaseStream *Stream,
14439        SpeechVoiceSpeakFlags Flags,
14440        LONG *StreamNumber) = 0;
14441
14442    virtual HRESULT STDMETHODCALLTYPE Pause(
14443        ) = 0;
14444
14445    virtual HRESULT STDMETHODCALLTYPE Resume(
14446        ) = 0;
14447
14448    virtual HRESULT STDMETHODCALLTYPE Skip(
14449        const BSTR Type,
14450        LONG NumItems,
14451        LONG *NumSkipped) = 0;
14452
14453    virtual HRESULT STDMETHODCALLTYPE GetVoices(
14454        BSTR RequiredAttributes,
14455        BSTR OptionalAttributes,
14456        ISpeechObjectTokens **ObjectTokens) = 0;
14457
14458    virtual HRESULT STDMETHODCALLTYPE GetAudioOutputs(
14459        BSTR RequiredAttributes,
14460        BSTR OptionalAttributes,
14461        ISpeechObjectTokens **ObjectTokens) = 0;
14462
14463    virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
14464        LONG msTimeout,
14465        VARIANT_BOOL *Done) = 0;
14466
14467    virtual HRESULT STDMETHODCALLTYPE SpeakCompleteEvent(
14468        LONG *Handle) = 0;
14469
14470    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
14471        const BSTR TypeOfUI,
14472        const VARIANT *ExtraData,
14473        VARIANT_BOOL *Supported) = 0;
14474
14475    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
14476        LONG hWndParent,
14477        BSTR Title,
14478        const BSTR TypeOfUI,
14479        const VARIANT *ExtraData = 0) = 0;
14480
14481};
14482#ifdef __CRT_UUID_DECL
14483__CRT_UUID_DECL(ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
14484#endif
14485#else
14486typedef struct ISpeechVoiceVtbl {
14487    BEGIN_INTERFACE
14488
14489    /*** IUnknown methods ***/
14490    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14491        ISpeechVoice *This,
14492        REFIID riid,
14493        void **ppvObject);
14494
14495    ULONG (STDMETHODCALLTYPE *AddRef)(
14496        ISpeechVoice *This);
14497
14498    ULONG (STDMETHODCALLTYPE *Release)(
14499        ISpeechVoice *This);
14500
14501    /*** IDispatch methods ***/
14502    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14503        ISpeechVoice *This,
14504        UINT *pctinfo);
14505
14506    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14507        ISpeechVoice *This,
14508        UINT iTInfo,
14509        LCID lcid,
14510        ITypeInfo **ppTInfo);
14511
14512    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14513        ISpeechVoice *This,
14514        REFIID riid,
14515        LPOLESTR *rgszNames,
14516        UINT cNames,
14517        LCID lcid,
14518        DISPID *rgDispId);
14519
14520    HRESULT (STDMETHODCALLTYPE *Invoke)(
14521        ISpeechVoice *This,
14522        DISPID dispIdMember,
14523        REFIID riid,
14524        LCID lcid,
14525        WORD wFlags,
14526        DISPPARAMS *pDispParams,
14527        VARIANT *pVarResult,
14528        EXCEPINFO *pExcepInfo,
14529        UINT *puArgErr);
14530
14531    /*** ISpeechVoice methods ***/
14532    HRESULT (STDMETHODCALLTYPE *get_Status)(
14533        ISpeechVoice *This,
14534        ISpeechVoiceStatus **Status);
14535
14536    HRESULT (STDMETHODCALLTYPE *get_Voice)(
14537        ISpeechVoice *This,
14538        ISpeechObjectToken **Voice);
14539
14540    HRESULT (STDMETHODCALLTYPE *putref_Voice)(
14541        ISpeechVoice *This,
14542        ISpeechObjectToken *Voice);
14543
14544    HRESULT (STDMETHODCALLTYPE *get_AudioOutput)(
14545        ISpeechVoice *This,
14546        ISpeechObjectToken **AudioOutput);
14547
14548    HRESULT (STDMETHODCALLTYPE *putref_AudioOutput)(
14549        ISpeechVoice *This,
14550        ISpeechObjectToken *AudioOutput);
14551
14552    HRESULT (STDMETHODCALLTYPE *get_AudioOutputStream)(
14553        ISpeechVoice *This,
14554        ISpeechBaseStream **AudioOutputStream);
14555
14556    HRESULT (STDMETHODCALLTYPE *putref_AudioOutputStream)(
14557        ISpeechVoice *This,
14558        ISpeechBaseStream *AudioOutputStream);
14559
14560    HRESULT (STDMETHODCALLTYPE *get_Rate)(
14561        ISpeechVoice *This,
14562        LONG *Rate);
14563
14564    HRESULT (STDMETHODCALLTYPE *put_Rate)(
14565        ISpeechVoice *This,
14566        LONG Rate);
14567
14568    HRESULT (STDMETHODCALLTYPE *get_Volume)(
14569        ISpeechVoice *This,
14570        LONG *Volume);
14571
14572    HRESULT (STDMETHODCALLTYPE *put_Volume)(
14573        ISpeechVoice *This,
14574        LONG Volume);
14575
14576    HRESULT (STDMETHODCALLTYPE *put_AllowAudioOutputFormatChangesOnNextSet)(
14577        ISpeechVoice *This,
14578        VARIANT_BOOL Allow);
14579
14580    HRESULT (STDMETHODCALLTYPE *get_AllowAudioOutputFormatChangesOnNextSet)(
14581        ISpeechVoice *This,
14582        VARIANT_BOOL *Allow);
14583
14584    HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
14585        ISpeechVoice *This,
14586        SpeechVoiceEvents *EventInterestFlags);
14587
14588    HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
14589        ISpeechVoice *This,
14590        SpeechVoiceEvents EventInterestFlags);
14591
14592    HRESULT (STDMETHODCALLTYPE *put_Priority)(
14593        ISpeechVoice *This,
14594        SpeechVoicePriority Priority);
14595
14596    HRESULT (STDMETHODCALLTYPE *get_Priority)(
14597        ISpeechVoice *This,
14598        SpeechVoicePriority *Priority);
14599
14600    HRESULT (STDMETHODCALLTYPE *put_AlertBoundary)(
14601        ISpeechVoice *This,
14602        SpeechVoiceEvents Boundary);
14603
14604    HRESULT (STDMETHODCALLTYPE *get_AlertBoundary)(
14605        ISpeechVoice *This,
14606        SpeechVoiceEvents *Boundary);
14607
14608    HRESULT (STDMETHODCALLTYPE *put_SynchronousSpeakTimeout)(
14609        ISpeechVoice *This,
14610        LONG msTimeout);
14611
14612    HRESULT (STDMETHODCALLTYPE *get_SynchronousSpeakTimeout)(
14613        ISpeechVoice *This,
14614        LONG *msTimeout);
14615
14616    HRESULT (STDMETHODCALLTYPE *Speak)(
14617        ISpeechVoice *This,
14618        BSTR Text,
14619        SpeechVoiceSpeakFlags Flags,
14620        LONG *StreamNumber);
14621
14622    HRESULT (STDMETHODCALLTYPE *SpeakStream)(
14623        ISpeechVoice *This,
14624        ISpeechBaseStream *Stream,
14625        SpeechVoiceSpeakFlags Flags,
14626        LONG *StreamNumber);
14627
14628    HRESULT (STDMETHODCALLTYPE *Pause)(
14629        ISpeechVoice *This);
14630
14631    HRESULT (STDMETHODCALLTYPE *Resume)(
14632        ISpeechVoice *This);
14633
14634    HRESULT (STDMETHODCALLTYPE *Skip)(
14635        ISpeechVoice *This,
14636        const BSTR Type,
14637        LONG NumItems,
14638        LONG *NumSkipped);
14639
14640    HRESULT (STDMETHODCALLTYPE *GetVoices)(
14641        ISpeechVoice *This,
14642        BSTR RequiredAttributes,
14643        BSTR OptionalAttributes,
14644        ISpeechObjectTokens **ObjectTokens);
14645
14646    HRESULT (STDMETHODCALLTYPE *GetAudioOutputs)(
14647        ISpeechVoice *This,
14648        BSTR RequiredAttributes,
14649        BSTR OptionalAttributes,
14650        ISpeechObjectTokens **ObjectTokens);
14651
14652    HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
14653        ISpeechVoice *This,
14654        LONG msTimeout,
14655        VARIANT_BOOL *Done);
14656
14657    HRESULT (STDMETHODCALLTYPE *SpeakCompleteEvent)(
14658        ISpeechVoice *This,
14659        LONG *Handle);
14660
14661    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
14662        ISpeechVoice *This,
14663        const BSTR TypeOfUI,
14664        const VARIANT *ExtraData,
14665        VARIANT_BOOL *Supported);
14666
14667    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
14668        ISpeechVoice *This,
14669        LONG hWndParent,
14670        BSTR Title,
14671        const BSTR TypeOfUI,
14672        const VARIANT *ExtraData);
14673
14674    END_INTERFACE
14675} ISpeechVoiceVtbl;
14676
14677interface ISpeechVoice {
14678    CONST_VTBL ISpeechVoiceVtbl* lpVtbl;
14679};
14680
14681#ifdef COBJMACROS
14682#ifndef WIDL_C_INLINE_WRAPPERS
14683/*** IUnknown methods ***/
14684#define ISpeechVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14685#define ISpeechVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
14686#define ISpeechVoice_Release(This) (This)->lpVtbl->Release(This)
14687/*** IDispatch methods ***/
14688#define ISpeechVoice_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14689#define ISpeechVoice_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14690#define ISpeechVoice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14691#define ISpeechVoice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14692/*** ISpeechVoice methods ***/
14693#define ISpeechVoice_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
14694#define ISpeechVoice_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
14695#define ISpeechVoice_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
14696#define ISpeechVoice_get_AudioOutput(This,AudioOutput) (This)->lpVtbl->get_AudioOutput(This,AudioOutput)
14697#define ISpeechVoice_putref_AudioOutput(This,AudioOutput) (This)->lpVtbl->putref_AudioOutput(This,AudioOutput)
14698#define ISpeechVoice_get_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->get_AudioOutputStream(This,AudioOutputStream)
14699#define ISpeechVoice_putref_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream)
14700#define ISpeechVoice_get_Rate(This,Rate) (This)->lpVtbl->get_Rate(This,Rate)
14701#define ISpeechVoice_put_Rate(This,Rate) (This)->lpVtbl->put_Rate(This,Rate)
14702#define ISpeechVoice_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
14703#define ISpeechVoice_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
14704#define ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
14705#define ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
14706#define ISpeechVoice_get_EventInterests(This,EventInterestFlags) (This)->lpVtbl->get_EventInterests(This,EventInterestFlags)
14707#define ISpeechVoice_put_EventInterests(This,EventInterestFlags) (This)->lpVtbl->put_EventInterests(This,EventInterestFlags)
14708#define ISpeechVoice_put_Priority(This,Priority) (This)->lpVtbl->put_Priority(This,Priority)
14709#define ISpeechVoice_get_Priority(This,Priority) (This)->lpVtbl->get_Priority(This,Priority)
14710#define ISpeechVoice_put_AlertBoundary(This,Boundary) (This)->lpVtbl->put_AlertBoundary(This,Boundary)
14711#define ISpeechVoice_get_AlertBoundary(This,Boundary) (This)->lpVtbl->get_AlertBoundary(This,Boundary)
14712#define ISpeechVoice_put_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout)
14713#define ISpeechVoice_get_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout)
14714#define ISpeechVoice_Speak(This,Text,Flags,StreamNumber) (This)->lpVtbl->Speak(This,Text,Flags,StreamNumber)
14715#define ISpeechVoice_SpeakStream(This,Stream,Flags,StreamNumber) (This)->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber)
14716#define ISpeechVoice_Pause(This) (This)->lpVtbl->Pause(This)
14717#define ISpeechVoice_Resume(This) (This)->lpVtbl->Resume(This)
14718#define ISpeechVoice_Skip(This,Type,NumItems,NumSkipped) (This)->lpVtbl->Skip(This,Type,NumItems,NumSkipped)
14719#define ISpeechVoice_GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
14720#define ISpeechVoice_GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
14721#define ISpeechVoice_WaitUntilDone(This,msTimeout,Done) (This)->lpVtbl->WaitUntilDone(This,msTimeout,Done)
14722#define ISpeechVoice_SpeakCompleteEvent(This,Handle) (This)->lpVtbl->SpeakCompleteEvent(This,Handle)
14723#define ISpeechVoice_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
14724#define ISpeechVoice_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
14725#else
14726/*** IUnknown methods ***/
14727static inline HRESULT ISpeechVoice_QueryInterface(ISpeechVoice* This,REFIID riid,void **ppvObject) {
14728    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14729}
14730static inline ULONG ISpeechVoice_AddRef(ISpeechVoice* This) {
14731    return This->lpVtbl->AddRef(This);
14732}
14733static inline ULONG ISpeechVoice_Release(ISpeechVoice* This) {
14734    return This->lpVtbl->Release(This);
14735}
14736/*** IDispatch methods ***/
14737static inline HRESULT ISpeechVoice_GetTypeInfoCount(ISpeechVoice* This,UINT *pctinfo) {
14738    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14739}
14740static inline HRESULT ISpeechVoice_GetTypeInfo(ISpeechVoice* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14741    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14742}
14743static inline HRESULT ISpeechVoice_GetIDsOfNames(ISpeechVoice* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14744    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14745}
14746static inline HRESULT ISpeechVoice_Invoke(ISpeechVoice* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14747    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14748}
14749/*** ISpeechVoice methods ***/
14750static inline HRESULT ISpeechVoice_get_Status(ISpeechVoice* This,ISpeechVoiceStatus **Status) {
14751    return This->lpVtbl->get_Status(This,Status);
14752}
14753static inline HRESULT ISpeechVoice_get_Voice(ISpeechVoice* This,ISpeechObjectToken **Voice) {
14754    return This->lpVtbl->get_Voice(This,Voice);
14755}
14756static inline HRESULT ISpeechVoice_putref_Voice(ISpeechVoice* This,ISpeechObjectToken *Voice) {
14757    return This->lpVtbl->putref_Voice(This,Voice);
14758}
14759static inline HRESULT ISpeechVoice_get_AudioOutput(ISpeechVoice* This,ISpeechObjectToken **AudioOutput) {
14760    return This->lpVtbl->get_AudioOutput(This,AudioOutput);
14761}
14762static inline HRESULT ISpeechVoice_putref_AudioOutput(ISpeechVoice* This,ISpeechObjectToken *AudioOutput) {
14763    return This->lpVtbl->putref_AudioOutput(This,AudioOutput);
14764}
14765static inline HRESULT ISpeechVoice_get_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream **AudioOutputStream) {
14766    return This->lpVtbl->get_AudioOutputStream(This,AudioOutputStream);
14767}
14768static inline HRESULT ISpeechVoice_putref_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream *AudioOutputStream) {
14769    return This->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream);
14770}
14771static inline HRESULT ISpeechVoice_get_Rate(ISpeechVoice* This,LONG *Rate) {
14772    return This->lpVtbl->get_Rate(This,Rate);
14773}
14774static inline HRESULT ISpeechVoice_put_Rate(ISpeechVoice* This,LONG Rate) {
14775    return This->lpVtbl->put_Rate(This,Rate);
14776}
14777static inline HRESULT ISpeechVoice_get_Volume(ISpeechVoice* This,LONG *Volume) {
14778    return This->lpVtbl->get_Volume(This,Volume);
14779}
14780static inline HRESULT ISpeechVoice_put_Volume(ISpeechVoice* This,LONG Volume) {
14781    return This->lpVtbl->put_Volume(This,Volume);
14782}
14783static inline HRESULT ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL Allow) {
14784    return This->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
14785}
14786static inline HRESULT ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL *Allow) {
14787    return This->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
14788}
14789static inline HRESULT ISpeechVoice_get_EventInterests(ISpeechVoice* This,SpeechVoiceEvents *EventInterestFlags) {
14790    return This->lpVtbl->get_EventInterests(This,EventInterestFlags);
14791}
14792static inline HRESULT ISpeechVoice_put_EventInterests(ISpeechVoice* This,SpeechVoiceEvents EventInterestFlags) {
14793    return This->lpVtbl->put_EventInterests(This,EventInterestFlags);
14794}
14795static inline HRESULT ISpeechVoice_put_Priority(ISpeechVoice* This,SpeechVoicePriority Priority) {
14796    return This->lpVtbl->put_Priority(This,Priority);
14797}
14798static inline HRESULT ISpeechVoice_get_Priority(ISpeechVoice* This,SpeechVoicePriority *Priority) {
14799    return This->lpVtbl->get_Priority(This,Priority);
14800}
14801static inline HRESULT ISpeechVoice_put_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents Boundary) {
14802    return This->lpVtbl->put_AlertBoundary(This,Boundary);
14803}
14804static inline HRESULT ISpeechVoice_get_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents *Boundary) {
14805    return This->lpVtbl->get_AlertBoundary(This,Boundary);
14806}
14807static inline HRESULT ISpeechVoice_put_SynchronousSpeakTimeout(ISpeechVoice* This,LONG msTimeout) {
14808    return This->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout);
14809}
14810static inline HRESULT ISpeechVoice_get_SynchronousSpeakTimeout(ISpeechVoice* This,LONG *msTimeout) {
14811    return This->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout);
14812}
14813static inline HRESULT ISpeechVoice_Speak(ISpeechVoice* This,BSTR Text,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
14814    return This->lpVtbl->Speak(This,Text,Flags,StreamNumber);
14815}
14816static inline HRESULT ISpeechVoice_SpeakStream(ISpeechVoice* This,ISpeechBaseStream *Stream,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
14817    return This->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber);
14818}
14819static inline HRESULT ISpeechVoice_Pause(ISpeechVoice* This) {
14820    return This->lpVtbl->Pause(This);
14821}
14822static inline HRESULT ISpeechVoice_Resume(ISpeechVoice* This) {
14823    return This->lpVtbl->Resume(This);
14824}
14825static inline HRESULT ISpeechVoice_Skip(ISpeechVoice* This,const BSTR Type,LONG NumItems,LONG *NumSkipped) {
14826    return This->lpVtbl->Skip(This,Type,NumItems,NumSkipped);
14827}
14828static inline HRESULT ISpeechVoice_GetVoices(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
14829    return This->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
14830}
14831static inline HRESULT ISpeechVoice_GetAudioOutputs(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
14832    return This->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
14833}
14834static inline HRESULT ISpeechVoice_WaitUntilDone(ISpeechVoice* This,LONG msTimeout,VARIANT_BOOL *Done) {
14835    return This->lpVtbl->WaitUntilDone(This,msTimeout,Done);
14836}
14837static inline HRESULT ISpeechVoice_SpeakCompleteEvent(ISpeechVoice* This,LONG *Handle) {
14838    return This->lpVtbl->SpeakCompleteEvent(This,Handle);
14839}
14840static inline HRESULT ISpeechVoice_IsUISupported(ISpeechVoice* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
14841    return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
14842}
14843static inline HRESULT ISpeechVoice_DisplayUI(ISpeechVoice* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
14844    return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
14845}
14846#endif
14847#endif
14848
14849#endif
14850
14851
14852#endif  /* __ISpeechVoice_INTERFACE_DEFINED__ */
14853
14854/*****************************************************************************
14855 * ISpeechVoiceStatus interface
14856 */
14857#ifndef __ISpeechVoiceStatus_INTERFACE_DEFINED__
14858#define __ISpeechVoiceStatus_INTERFACE_DEFINED__
14859
14860DEFINE_GUID(IID_ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
14861#if defined(__cplusplus) && !defined(CINTERFACE)
14862MIDL_INTERFACE("8be47b07-57f6-11d2-9eee-00c04f797396")
14863ISpeechVoiceStatus : public IDispatch
14864{
14865    virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
14866        LONG *StreamNumber) = 0;
14867
14868    virtual HRESULT STDMETHODCALLTYPE get_LastStreamNumberQueued(
14869        LONG *StreamNumber) = 0;
14870
14871    virtual HRESULT STDMETHODCALLTYPE get_LastHResult(
14872        LONG *HResult) = 0;
14873
14874    virtual HRESULT STDMETHODCALLTYPE get_RunningState(
14875        SpeechRunState *State) = 0;
14876
14877    virtual HRESULT STDMETHODCALLTYPE get_InputWordPosition(
14878        LONG *Position) = 0;
14879
14880    virtual HRESULT STDMETHODCALLTYPE get_InputWordLength(
14881        LONG *Length) = 0;
14882
14883    virtual HRESULT STDMETHODCALLTYPE get_InputSentencePosition(
14884        LONG *Position) = 0;
14885
14886    virtual HRESULT STDMETHODCALLTYPE get_InputSentenceLength(
14887        LONG *Length) = 0;
14888
14889    virtual HRESULT STDMETHODCALLTYPE get_LastBookmark(
14890        BSTR *Bookmark) = 0;
14891
14892    virtual HRESULT STDMETHODCALLTYPE get_LastBookmarkId(
14893        LONG *BookmarkId) = 0;
14894
14895    virtual HRESULT STDMETHODCALLTYPE get_PhonemeId(
14896        short *PhoneId) = 0;
14897
14898    virtual HRESULT STDMETHODCALLTYPE get_VisemeId(
14899        short *VisemeId) = 0;
14900
14901};
14902#ifdef __CRT_UUID_DECL
14903__CRT_UUID_DECL(ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
14904#endif
14905#else
14906typedef struct ISpeechVoiceStatusVtbl {
14907    BEGIN_INTERFACE
14908
14909    /*** IUnknown methods ***/
14910    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14911        ISpeechVoiceStatus *This,
14912        REFIID riid,
14913        void **ppvObject);
14914
14915    ULONG (STDMETHODCALLTYPE *AddRef)(
14916        ISpeechVoiceStatus *This);
14917
14918    ULONG (STDMETHODCALLTYPE *Release)(
14919        ISpeechVoiceStatus *This);
14920
14921    /*** IDispatch methods ***/
14922    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14923        ISpeechVoiceStatus *This,
14924        UINT *pctinfo);
14925
14926    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14927        ISpeechVoiceStatus *This,
14928        UINT iTInfo,
14929        LCID lcid,
14930        ITypeInfo **ppTInfo);
14931
14932    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14933        ISpeechVoiceStatus *This,
14934        REFIID riid,
14935        LPOLESTR *rgszNames,
14936        UINT cNames,
14937        LCID lcid,
14938        DISPID *rgDispId);
14939
14940    HRESULT (STDMETHODCALLTYPE *Invoke)(
14941        ISpeechVoiceStatus *This,
14942        DISPID dispIdMember,
14943        REFIID riid,
14944        LCID lcid,
14945        WORD wFlags,
14946        DISPPARAMS *pDispParams,
14947        VARIANT *pVarResult,
14948        EXCEPINFO *pExcepInfo,
14949        UINT *puArgErr);
14950
14951    /*** ISpeechVoiceStatus methods ***/
14952    HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
14953        ISpeechVoiceStatus *This,
14954        LONG *StreamNumber);
14955
14956    HRESULT (STDMETHODCALLTYPE *get_LastStreamNumberQueued)(
14957        ISpeechVoiceStatus *This,
14958        LONG *StreamNumber);
14959
14960    HRESULT (STDMETHODCALLTYPE *get_LastHResult)(
14961        ISpeechVoiceStatus *This,
14962        LONG *HResult);
14963
14964    HRESULT (STDMETHODCALLTYPE *get_RunningState)(
14965        ISpeechVoiceStatus *This,
14966        SpeechRunState *State);
14967
14968    HRESULT (STDMETHODCALLTYPE *get_InputWordPosition)(
14969        ISpeechVoiceStatus *This,
14970        LONG *Position);
14971
14972    HRESULT (STDMETHODCALLTYPE *get_InputWordLength)(
14973        ISpeechVoiceStatus *This,
14974        LONG *Length);
14975
14976    HRESULT (STDMETHODCALLTYPE *get_InputSentencePosition)(
14977        ISpeechVoiceStatus *This,
14978        LONG *Position);
14979
14980    HRESULT (STDMETHODCALLTYPE *get_InputSentenceLength)(
14981        ISpeechVoiceStatus *This,
14982        LONG *Length);
14983
14984    HRESULT (STDMETHODCALLTYPE *get_LastBookmark)(
14985        ISpeechVoiceStatus *This,
14986        BSTR *Bookmark);
14987
14988    HRESULT (STDMETHODCALLTYPE *get_LastBookmarkId)(
14989        ISpeechVoiceStatus *This,
14990        LONG *BookmarkId);
14991
14992    HRESULT (STDMETHODCALLTYPE *get_PhonemeId)(
14993        ISpeechVoiceStatus *This,
14994        short *PhoneId);
14995
14996    HRESULT (STDMETHODCALLTYPE *get_VisemeId)(
14997        ISpeechVoiceStatus *This,
14998        short *VisemeId);
14999
15000    END_INTERFACE
15001} ISpeechVoiceStatusVtbl;
15002
15003interface ISpeechVoiceStatus {
15004    CONST_VTBL ISpeechVoiceStatusVtbl* lpVtbl;
15005};
15006
15007#ifdef COBJMACROS
15008#ifndef WIDL_C_INLINE_WRAPPERS
15009/*** IUnknown methods ***/
15010#define ISpeechVoiceStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15011#define ISpeechVoiceStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
15012#define ISpeechVoiceStatus_Release(This) (This)->lpVtbl->Release(This)
15013/*** IDispatch methods ***/
15014#define ISpeechVoiceStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15015#define ISpeechVoiceStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15016#define ISpeechVoiceStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15017#define ISpeechVoiceStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15018/*** ISpeechVoiceStatus methods ***/
15019#define ISpeechVoiceStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
15020#define ISpeechVoiceStatus_get_LastStreamNumberQueued(This,StreamNumber) (This)->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber)
15021#define ISpeechVoiceStatus_get_LastHResult(This,HResult) (This)->lpVtbl->get_LastHResult(This,HResult)
15022#define ISpeechVoiceStatus_get_RunningState(This,State) (This)->lpVtbl->get_RunningState(This,State)
15023#define ISpeechVoiceStatus_get_InputWordPosition(This,Position) (This)->lpVtbl->get_InputWordPosition(This,Position)
15024#define ISpeechVoiceStatus_get_InputWordLength(This,Length) (This)->lpVtbl->get_InputWordLength(This,Length)
15025#define ISpeechVoiceStatus_get_InputSentencePosition(This,Position) (This)->lpVtbl->get_InputSentencePosition(This,Position)
15026#define ISpeechVoiceStatus_get_InputSentenceLength(This,Length) (This)->lpVtbl->get_InputSentenceLength(This,Length)
15027#define ISpeechVoiceStatus_get_LastBookmark(This,Bookmark) (This)->lpVtbl->get_LastBookmark(This,Bookmark)
15028#define ISpeechVoiceStatus_get_LastBookmarkId(This,BookmarkId) (This)->lpVtbl->get_LastBookmarkId(This,BookmarkId)
15029#define ISpeechVoiceStatus_get_PhonemeId(This,PhoneId) (This)->lpVtbl->get_PhonemeId(This,PhoneId)
15030#define ISpeechVoiceStatus_get_VisemeId(This,VisemeId) (This)->lpVtbl->get_VisemeId(This,VisemeId)
15031#else
15032/*** IUnknown methods ***/
15033static inline HRESULT ISpeechVoiceStatus_QueryInterface(ISpeechVoiceStatus* This,REFIID riid,void **ppvObject) {
15034    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15035}
15036static inline ULONG ISpeechVoiceStatus_AddRef(ISpeechVoiceStatus* This) {
15037    return This->lpVtbl->AddRef(This);
15038}
15039static inline ULONG ISpeechVoiceStatus_Release(ISpeechVoiceStatus* This) {
15040    return This->lpVtbl->Release(This);
15041}
15042/*** IDispatch methods ***/
15043static inline HRESULT ISpeechVoiceStatus_GetTypeInfoCount(ISpeechVoiceStatus* This,UINT *pctinfo) {
15044    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15045}
15046static inline HRESULT ISpeechVoiceStatus_GetTypeInfo(ISpeechVoiceStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15047    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15048}
15049static inline HRESULT ISpeechVoiceStatus_GetIDsOfNames(ISpeechVoiceStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15050    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15051}
15052static inline HRESULT ISpeechVoiceStatus_Invoke(ISpeechVoiceStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15053    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15054}
15055/*** ISpeechVoiceStatus methods ***/
15056static inline HRESULT ISpeechVoiceStatus_get_CurrentStreamNumber(ISpeechVoiceStatus* This,LONG *StreamNumber) {
15057    return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
15058}
15059static inline HRESULT ISpeechVoiceStatus_get_LastStreamNumberQueued(ISpeechVoiceStatus* This,LONG *StreamNumber) {
15060    return This->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber);
15061}
15062static inline HRESULT ISpeechVoiceStatus_get_LastHResult(ISpeechVoiceStatus* This,LONG *HResult) {
15063    return This->lpVtbl->get_LastHResult(This,HResult);
15064}
15065static inline HRESULT ISpeechVoiceStatus_get_RunningState(ISpeechVoiceStatus* This,SpeechRunState *State) {
15066    return This->lpVtbl->get_RunningState(This,State);
15067}
15068static inline HRESULT ISpeechVoiceStatus_get_InputWordPosition(ISpeechVoiceStatus* This,LONG *Position) {
15069    return This->lpVtbl->get_InputWordPosition(This,Position);
15070}
15071static inline HRESULT ISpeechVoiceStatus_get_InputWordLength(ISpeechVoiceStatus* This,LONG *Length) {
15072    return This->lpVtbl->get_InputWordLength(This,Length);
15073}
15074static inline HRESULT ISpeechVoiceStatus_get_InputSentencePosition(ISpeechVoiceStatus* This,LONG *Position) {
15075    return This->lpVtbl->get_InputSentencePosition(This,Position);
15076}
15077static inline HRESULT ISpeechVoiceStatus_get_InputSentenceLength(ISpeechVoiceStatus* This,LONG *Length) {
15078    return This->lpVtbl->get_InputSentenceLength(This,Length);
15079}
15080static inline HRESULT ISpeechVoiceStatus_get_LastBookmark(ISpeechVoiceStatus* This,BSTR *Bookmark) {
15081    return This->lpVtbl->get_LastBookmark(This,Bookmark);
15082}
15083static inline HRESULT ISpeechVoiceStatus_get_LastBookmarkId(ISpeechVoiceStatus* This,LONG *BookmarkId) {
15084    return This->lpVtbl->get_LastBookmarkId(This,BookmarkId);
15085}
15086static inline HRESULT ISpeechVoiceStatus_get_PhonemeId(ISpeechVoiceStatus* This,short *PhoneId) {
15087    return This->lpVtbl->get_PhonemeId(This,PhoneId);
15088}
15089static inline HRESULT ISpeechVoiceStatus_get_VisemeId(ISpeechVoiceStatus* This,short *VisemeId) {
15090    return This->lpVtbl->get_VisemeId(This,VisemeId);
15091}
15092#endif
15093#endif
15094
15095#endif
15096
15097
15098#endif  /* __ISpeechVoiceStatus_INTERFACE_DEFINED__ */
15099
15100typedef enum SpeechVisemeType {
15101    SVP_0 = 0,
15102    SVP_1 = 1,
15103    SVP_2 = 2,
15104    SVP_3 = 3,
15105    SVP_4 = 4,
15106    SVP_5 = 5,
15107    SVP_6 = 6,
15108    SVP_7 = 7,
15109    SVP_8 = 8,
15110    SVP_9 = 9,
15111    SVP_10 = 10,
15112    SVP_11 = 11,
15113    SVP_12 = 12,
15114    SVP_13 = 13,
15115    SVP_14 = 14,
15116    SVP_15 = 15,
15117    SVP_16 = 16,
15118    SVP_17 = 17,
15119    SVP_18 = 18,
15120    SVP_19 = 19,
15121    SVP_20 = 20,
15122    SVP_21 = 21
15123} SpeechVisemeType;
15124typedef enum SpeechVisemeFeature {
15125    SVF_None = 0,
15126    SVF_Stressed = SPVFEATURE_STRESSED,
15127    SVF_Emphasis = SPVFEATURE_EMPHASIS
15128} SpeechVisemeFeature;
15129typedef enum DISPID_SpeechVoiceEvent {
15130    DISPID_SVEStreamStart = 1,
15131    DISPID_SVEStreamEnd = 2,
15132    DISPID_SVEVoiceChange = 3,
15133    DISPID_SVEBookmark = 4,
15134    DISPID_SVEWord = 5,
15135    DISPID_SVEPhoneme = 6,
15136    DISPID_SVESentenceBoundary = 7,
15137    DISPID_SVEViseme = 8,
15138    DISPID_SVEAudioLevel = 9,
15139    DISPID_SVEEnginePrivate = 10
15140} DISPID_SpeechVoiceEvent;
15141typedef enum DISPID_SpeechRecognizer {
15142    DISPID_SRRecognizer = 1,
15143    DISPID_SRAllowAudioInputFormatChangesOnNextSet = 2,
15144    DISPID_SRAudioInput = 3,
15145    DISPID_SRAudioInputStream = 4,
15146    DISPID_SRIsShared = 5,
15147    DISPID_SRState = 6,
15148    DISPID_SRStatus = 7,
15149    DISPID_SRProfile = 8,
15150    DISPID_SREmulateRecognition = 9,
15151    DISPID_SRCreateRecoContext = 10,
15152    DISPID_SRGetFormat = 11,
15153    DISPID_SRSetPropertyNumber = 12,
15154    DISPID_SRGetPropertyNumber = 13,
15155    DISPID_SRSetPropertyString = 14,
15156    DISPID_SRGetPropertyString = 15,
15157    DISPID_SRIsUISupported = 16,
15158    DISPID_SRDisplayUI = 17,
15159    DISPID_SRGetRecognizers = 18,
15160    DISPID_SVGetAudioInputs = 19,
15161    DISPID_SVGetProfiles = 20
15162} DISPID_SpeechRecognizer;
15163typedef enum SpeechRecognizerState {
15164    SRSInactive = SPRST_INACTIVE,
15165    SRSActive = SPRST_ACTIVE,
15166    SRSActiveAlways = SPRST_ACTIVE_ALWAYS,
15167    SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE
15168} SpeechRecognizerState;
15169typedef enum SpeechDisplayAttributes {
15170    SDA_No_Trailing_Space = 0,
15171    SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE,
15172    SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES,
15173    SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES
15174} SpeechDisplayAttributes;
15175typedef enum SpeechFormatType {
15176    SFTInput = SPWF_INPUT,
15177    SFTSREngine = SPWF_SRENGINE
15178} SpeechFormatType;
15179typedef enum DISPID_SpeechRecognizerStatus {
15180    DISPID_SRSAudioStatus = 1,
15181    DISPID_SRSCurrentStreamPosition = 2,
15182    DISPID_SRSCurrentStreamNumber = 3,
15183    DISPID_SRSNumberOfActiveRules = 4,
15184    DISPID_SRSClsidEngine = 5,
15185    DISPID_SRSSupportedLanguages = 6
15186} DISPID_SpeechRecognizerStatus;
15187typedef enum DISPID_SpeechRecoContext {
15188    DISPID_SRCRecognizer = 1,
15189    DISPID_SRCAudioInInterferenceStatus = 2,
15190    DISPID_SRCRequestedUIType = 3,
15191    DISPID_SRCVoice = 4,
15192    DISPID_SRAllowVoiceFormatMatchingOnNextSet = 5,
15193    DISPID_SRCVoicePurgeEvent = 6,
15194    DISPID_SRCEventInterests = 7,
15195    DISPID_SRCCmdMaxAlternates = 8,
15196    DISPID_SRCState = 9,
15197    DISPID_SRCRetainedAudio = 10,
15198    DISPID_SRCRetainedAudioFormat = 11,
15199    DISPID_SRCPause = 12,
15200    DISPID_SRCResume = 13,
15201    DISPID_SRCCreateGrammar = 14,
15202    DISPID_SRCCreateResultFromMemory = 15,
15203    DISPID_SRCBookmark = 16,
15204    DISPID_SRCSetAdaptationData = 17
15205} DISPID_SpeechRecoContext;
15206typedef enum SpeechRetainedAudioOptions {
15207    SRAONone = SPAO_NONE,
15208    SRAORetainAudio = SPAO_RETAIN_AUDIO
15209} SpeechRetainedAudioOptions;
15210typedef enum SpeechBookmarkOptions {
15211    SBONone = SPBO_NONE,
15212    SBOPause = SPBO_PAUSE
15213} SpeechBookmarkOptions;
15214typedef enum SpeechInterference {
15215    SINone = SPINTERFERENCE_NONE,
15216    SINoise = SPINTERFERENCE_NOISE,
15217    SINoSignal = SPINTERFERENCE_NOSIGNAL,
15218    SITooLoud = SPINTERFERENCE_TOOLOUD,
15219    SITooQuiet = SPINTERFERENCE_TOOQUIET,
15220    SITooFast = SPINTERFERENCE_TOOFAST,
15221    SITooSlow = SPINTERFERENCE_TOOSLOW
15222} SpeechInterference;
15223typedef enum SpeechRecoEvents {
15224    SREStreamEnd = 0x1,
15225    SRESoundStart = 0x2,
15226    SRESoundEnd = 0x4,
15227    SREPhraseStart = 0x8,
15228    SRERecognition = 0x10,
15229    SREHypothesis = 0x20,
15230    SREBookmark = 0x40,
15231    SREPropertyNumChange = 0x80,
15232    SREPropertyStringChange = 0x100,
15233    SREFalseRecognition = 0x200,
15234    SREInterference = 0x400,
15235    SRERequestUI = 0x800,
15236    SREStateChange = 0x1000,
15237    SREAdaptation = 0x2000,
15238    SREStreamStart = 0x4000,
15239    SRERecoOtherContext = 0x8000,
15240    SREAudioLevel = 0x10000,
15241    SREPrivate = 0x40000,
15242    SREAllEvents = 0x5ffff
15243} SpeechRecoEvents;
15244typedef enum SpeechRecoContextState {
15245    SRCS_Disabled = SPCS_DISABLED,
15246    SRCS_Enabled = SPCS_ENABLED
15247} SpeechRecoContextState;
15248typedef enum DISPIDSPRG {
15249    DISPID_SRGId = 1,
15250    DISPID_SRGRecoContext = 2,
15251    DISPID_SRGState = 3,
15252    DISPID_SRGRules = 4,
15253    DISPID_SRGReset = 5,
15254    DISPID_SRGCommit = 6,
15255    DISPID_SRGCmdLoadFromFile = 7,
15256    DISPID_SRGCmdLoadFromObject = 8,
15257    DISPID_SRGCmdLoadFromResource = 9,
15258    DISPID_SRGCmdLoadFromMemory = 10,
15259    DISPID_SRGCmdLoadFromProprietaryGrammar = 11,
15260    DISPID_SRGCmdSetRuleState = 12,
15261    DISPID_SRGCmdSetRuleIdState = 13,
15262    DISPID_SRGDictationLoad = 14,
15263    DISPID_SRGDictationUnload = 15,
15264    DISPID_SRGDictationSetState = 16,
15265    DISPID_SRGSetWordSequenceData = 17,
15266    DISPID_SRGSetTextSelection = 18,
15267    DISPID_SRGIsPronounceable = 19
15268} DISPIDSPRG;
15269typedef enum SpeechLoadOption {
15270    SLOStatic = SPLO_STATIC,
15271    SLODynamic = SPLO_DYNAMIC
15272} SpeechLoadOption;
15273typedef enum SpeechWordPronounceable {
15274    SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
15275    SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
15276    SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE
15277} SpeechWordPronounceable;
15278typedef enum SpeechGrammarState {
15279    SGSEnabled = SPGS_ENABLED,
15280    SGSDisabled = SPGS_DISABLED,
15281    SGSExclusive = SPGS_EXCLUSIVE
15282} SpeechGrammarState;
15283typedef enum SpeechRuleState {
15284    SGDSInactive = SPRS_INACTIVE,
15285    SGDSActive = SPRS_ACTIVE,
15286    SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE,
15287    SGDSActiveUserDelimited = SPRS_ACTIVE_USER_DELIMITED
15288} SpeechRuleState;
15289typedef enum SpeechRuleAttributes {
15290    SRATopLevel = SPRAF_TopLevel,
15291    SRADefaultToActive = SPRAF_Active,
15292    SRAExport = SPRAF_Export,
15293    SRAImport = SPRAF_Import,
15294    SRAInterpreter = SPRAF_Interpreter,
15295    SRADynamic = SPRAF_Dynamic,
15296    SRARoot = SPRAF_Root
15297} SpeechRuleAttributes;
15298typedef enum SpeechGrammarWordType {
15299    SGDisplay = SPWT_DISPLAY,
15300    SGLexical = SPWT_LEXICAL,
15301    SGPronounciation = SPWT_PRONUNCIATION,
15302    SGLexicalNoSpecialChars = SPWT_LEXICAL_NO_SPECIAL_CHARS
15303} SpeechGrammarWordType;
15304typedef enum DISPID_SpeechRecoContextEvents {
15305    DISPID_SRCEStartStream = 1,
15306    DISPID_SRCEEndStream = 2,
15307    DISPID_SRCEBookmark = 3,
15308    DISPID_SRCESoundStart = 4,
15309    DISPID_SRCESoundEnd = 5,
15310    DISPID_SRCEPhraseStart = 6,
15311    DISPID_SRCERecognition = 7,
15312    DISPID_SRCEHypothesis = 8,
15313    DISPID_SRCEPropertyNumberChange = 9,
15314    DISPID_SRCEPropertyStringChange = 10,
15315    DISPID_SRCEFalseRecognition = 11,
15316    DISPID_SRCEInterference = 12,
15317    DISPID_SRCERequestUI = 13,
15318    DISPID_SRCERecognizerStateChange = 14,
15319    DISPID_SRCEAdaptation = 15,
15320    DISPID_SRCERecognitionForOtherContext = 16,
15321    DISPID_SRCEAudioLevel = 17,
15322    DISPID_SRCEEnginePrivate = 18
15323} DISPID_SpeechRecoContextEvents;
15324typedef enum SpeechRecognitionType {
15325    SRTStandard = 0,
15326    SRTAutopause = SPREF_AutoPause,
15327    SRTEmulated = SPREF_Emulated,
15328    SRTSMLTimeout = SPREF_SMLTimeout,
15329    SRTExtendableParse = SPREF_ExtendableParse,
15330    SRTReSent = SPREF_ReSent
15331} SpeechRecognitionType;
15332typedef enum DISPID_SpeechGrammarRule {
15333    DISPID_SGRAttributes = 1,
15334    DISPID_SGRInitialState = 2,
15335    DISPID_SGRName = 3,
15336    DISPID_SGRId = 4,
15337    DISPID_SGRClear = 5,
15338    DISPID_SGRAddResource = 6,
15339    DISPID_SGRAddState = 7
15340} DISPID_SpeechGrammarRule;
15341typedef enum DISPID_SpeechGrammarRules {
15342    DISPID_SGRsCount = 1,
15343    DISPID_SGRsDynamic = 2,
15344    DISPID_SGRsAdd = 3,
15345    DISPID_SGRsCommit = 4,
15346    DISPID_SGRsCommitAndSave = 5,
15347    DISPID_SGRsFindRule = 6,
15348    DISPID_SGRsItem = DISPID_VALUE,
15349    DISPID_SGRs_NewEnum = DISPID_NEWENUM
15350} DISPID_SpeechGrammarRules;
15351typedef enum DISPID_SpeechGrammarRuleState {
15352    DISPID_SGRSRule = 1,
15353    DISPID_SGRSTransitions = 2,
15354    DISPID_SGRSAddWordTransition = 3,
15355    DISPID_SGRSAddRuleTransition = 4,
15356    DISPID_SGRSAddSpecialTransition = 5
15357} DISPID_SpeechGrammarRuleState;
15358typedef enum SpeechSpecialTransitionType {
15359    SSTTWildcard = 1,
15360    SSTTDictation = 2,
15361    SSTTTextBuffer = 3
15362} SpeechSpecialTransitionType;
15363typedef enum DISPID_SpeechGrammarRuleStateTransitions {
15364    DISPID_SGRSTsCount = 1,
15365    DISPID_SGRSTsItem = DISPID_VALUE,
15366    DISPID_SGRSTs_NewEnum = DISPID_NEWENUM
15367} DISPID_SpeechGrammarRuleStateTransitions;
15368typedef enum DISPID_SpeechGrammarRuleStateTransition {
15369    DISPID_SGRSTType = 1,
15370    DISPID_SGRSTText = 2,
15371    DISPID_SGRSTRule = 3,
15372    DISPID_SGRSTWeight = 4,
15373    DISPID_SGRSTPropertyName = 5,
15374    DISPID_SGRSTPropertyId = 6,
15375    DISPID_SGRSTPropertyValue = 7,
15376    DISPID_SGRSTNextState = 8
15377} DISPID_SpeechGrammarRuleStateTransition;
15378typedef enum SpeechGrammarRuleStateTransitionType {
15379    SGRSTTEpsilon = 0,
15380    SGRSTTWord = 1,
15381    SGRSTTRule = 2,
15382    SGRSTTDictation = 3,
15383    SGRSTTWildcard = 4,
15384    SGRSTTTextBuffer = 5
15385} SpeechGrammarRuleStateTransitionType;
15386typedef enum DISPIDSPTSI {
15387    DISPIDSPTSI_ActiveOffset = 1,
15388    DISPIDSPTSI_ActiveLength = 2,
15389    DISPIDSPTSI_SelectionOffset = 3,
15390    DISPIDSPTSI_SelectionLength = 4
15391} DISPIDSPTSI;
15392typedef enum DISPID_SpeechRecoResult {
15393    DISPID_SRRRecoContext = 1,
15394    DISPID_SRRTimes = 2,
15395    DISPID_SRRAudioFormat = 3,
15396    DISPID_SRRPhraseInfo = 4,
15397    DISPID_SRRAlternates = 5,
15398    DISPID_SRRAudio = 6,
15399    DISPID_SRRSpeakAudio = 7,
15400    DISPID_SRRSaveToMemory = 8,
15401    DISPID_SRRDiscardResultInfo = 9
15402} DISPID_SpeechRecoResult;
15403typedef enum SpeechDiscardType {
15404    SDTProperty = SPDF_PROPERTY,
15405    SDTReplacement = SPDF_REPLACEMENT,
15406    SDTRule = SPDF_RULE,
15407    SDTDisplayText = SPDF_DISPLAYTEXT,
15408    SDTLexicalForm = SPDF_LEXICALFORM,
15409    SDTPronunciation = SPDF_PRONUNCIATION,
15410    SDTAudio = SPDF_AUDIO,
15411    SDTAlternates = SPDF_ALTERNATES,
15412    SDTAll = SPDF_ALL
15413} SpeechDiscardType;
15414typedef enum SpeechEmulationCompareFlags {
15415    SECFIgnoreCase = 0x1,
15416    SECFIgnoreKanaType = 0x10000,
15417    SECFIgnoreWidth = 0x20000,
15418    SECFNoSpecialChars = 0x20000000,
15419    SECFEmulateResult = 0x40000000,
15420    SECFDefault = (SECFIgnoreCase | SECFIgnoreKanaType) | SECFIgnoreWidth
15421} SpeechEmulationCompareFlags;
15422typedef enum DISPID_SpeechXMLRecoResult {
15423    DISPID_SRRGetXMLResult = DISPID_SRRDiscardResultInfo + 1,
15424    DISPID_SRRGetXMLErrorInfo = DISPID_SRRGetXMLResult + 1
15425} DISPID_SpeechXMLRecoResult;
15426typedef enum DISPID_SpeechRecoResult2 {
15427    DISPID_SRRSetTextFeedback = DISPID_SRRGetXMLErrorInfo + 1
15428} DISPID_SpeechRecoResult2;
15429typedef enum DISPID_SpeechPhraseBuilder {
15430    DISPID_SPPBRestorePhraseFromMemory = 1
15431} DISPID_SpeechPhraseBuilder;
15432typedef enum DISPID_SpeechRecoResultTimes {
15433    DISPID_SRRTStreamTime = 1,
15434    DISPID_SRRTLength = 2,
15435    DISPID_SRRTTickCount = 3,
15436    DISPID_SRRTOffsetFromStart = 4
15437} DISPID_SpeechRecoResultTimes;
15438typedef enum DISPID_SpeechPhraseAlternate {
15439    DISPID_SPARecoResult = 1,
15440    DISPID_SPAStartElementInResult = 2,
15441    DISPID_SPANumberOfElementsInResult = 3,
15442    DISPID_SPAPhraseInfo = 4,
15443    DISPID_SPACommit = 5
15444} DISPID_SpeechPhraseAlternate;
15445typedef enum DISPID_SpeechPhraseAlternates {
15446    DISPID_SPAsCount = 1,
15447    DISPID_SPAsItem = DISPID_VALUE,
15448    DISPID_SPAs_NewEnum = DISPID_NEWENUM
15449} DISPID_SpeechPhraseAlternates;
15450typedef enum DISPID_SpeechPhraseInfo {
15451    DISPID_SPILanguageId = 1,
15452    DISPID_SPIGrammarId = 2,
15453    DISPID_SPIStartTime = 3,
15454    DISPID_SPIAudioStreamPosition = 4,
15455    DISPID_SPIAudioSizeBytes = 5,
15456    DISPID_SPIRetainedSizeBytes = 6,
15457    DISPID_SPIAudioSizeTime = 7,
15458    DISPID_SPIRule = 8,
15459    DISPID_SPIProperties = 9,
15460    DISPID_SPIElements = 10,
15461    DISPID_SPIReplacements = 11,
15462    DISPID_SPIEngineId = 12,
15463    DISPID_SPIEnginePrivateData = 13,
15464    DISPID_SPISaveToMemory = 14,
15465    DISPID_SPIGetText = 15,
15466    DISPID_SPIGetDisplayAttributes = 16
15467} DISPID_SpeechPhraseInfo;
15468typedef enum DISPID_SpeechPhraseElement {
15469    DISPID_SPEAudioTimeOffset = 1,
15470    DISPID_SPEAudioSizeTime = 2,
15471    DISPID_SPEAudioStreamOffset = 3,
15472    DISPID_SPEAudioSizeBytes = 4,
15473    DISPID_SPERetainedStreamOffset = 5,
15474    DISPID_SPERetainedSizeBytes = 6,
15475    DISPID_SPEDisplayText = 7,
15476    DISPID_SPELexicalForm = 8,
15477    DISPID_SPEPronunciation = 9,
15478    DISPID_SPEDisplayAttributes = 10,
15479    DISPID_SPERequiredConfidence = 11,
15480    DISPID_SPEActualConfidence = 12,
15481    DISPID_SPEEngineConfidence = 13
15482} DISPID_SpeechPhraseElement;
15483typedef enum SpeechEngineConfidence {
15484    SECLowConfidence = -1,
15485    SECNormalConfidence = 0,
15486    SECHighConfidence = 1
15487} SpeechEngineConfidence;
15488typedef enum DISPID_SpeechPhraseElements {
15489    DISPID_SPEsCount = 1,
15490    DISPID_SPEsItem = DISPID_VALUE,
15491    DISPID_SPEs_NewEnum = DISPID_NEWENUM
15492} DISPID_SpeechPhraseElements;
15493typedef enum DISPID_SpeechPhraseReplacement {
15494    DISPID_SPRDisplayAttributes = 1,
15495    DISPID_SPRText = 2,
15496    DISPID_SPRFirstElement = 3,
15497    DISPID_SPRNumberOfElements = 4
15498} DISPID_SpeechPhraseReplacement;
15499typedef enum DISPID_SpeechPhraseReplacements {
15500    DISPID_SPRsCount = 1,
15501    DISPID_SPRsItem = DISPID_VALUE,
15502    DISPID_SPRs_NewEnum = DISPID_NEWENUM
15503} DISPID_SpeechPhraseReplacements;
15504typedef enum DISPID_SpeechPhraseProperty {
15505    DISPID_SPPName = 1,
15506    DISPID_SPPId = 2,
15507    DISPID_SPPValue = 3,
15508    DISPID_SPPFirstElement = 4,
15509    DISPID_SPPNumberOfElements = 5,
15510    DISPID_SPPEngineConfidence = 6,
15511    DISPID_SPPConfidence = 7,
15512    DISPID_SPPParent = 8,
15513    DISPID_SPPChildren = 9
15514} DISPID_SpeechPhraseProperty;
15515typedef enum DISPID_SpeechPhraseProperties {
15516    DISPID_SPPsCount = 1,
15517    DISPID_SPPsItem = DISPID_VALUE,
15518    DISPID_SPPs_NewEnum = DISPID_NEWENUM
15519} DISPID_SpeechPhraseProperties;
15520typedef enum DISPID_SpeechPhraseRule {
15521    DISPID_SPRuleName = 1,
15522    DISPID_SPRuleId = 2,
15523    DISPID_SPRuleFirstElement = 3,
15524    DISPID_SPRuleNumberOfElements = 4,
15525    DISPID_SPRuleParent = 5,
15526    DISPID_SPRuleChildren = 6,
15527    DISPID_SPRuleConfidence = 7,
15528    DISPID_SPRuleEngineConfidence = 8
15529} DISPID_SpeechPhraseRule;
15530typedef enum DISPID_SpeechPhraseRules {
15531    DISPID_SPRulesCount = 1,
15532    DISPID_SPRulesItem = DISPID_VALUE,
15533    DISPID_SPRules_NewEnum = DISPID_NEWENUM
15534} DISPID_SpeechPhraseRules;
15535typedef enum DISPID_SpeechLexicon {
15536    DISPID_SLGenerationId = 1,
15537    DISPID_SLGetWords = 2,
15538    DISPID_SLAddPronunciation = 3,
15539    DISPID_SLAddPronunciationByPhoneIds = 4,
15540    DISPID_SLRemovePronunciation = 5,
15541    DISPID_SLRemovePronunciationByPhoneIds = 6,
15542    DISPID_SLGetPronunciations = 7,
15543    DISPID_SLGetGenerationChange = 8
15544} DISPID_SpeechLexicon;
15545typedef enum SpeechLexiconType {
15546    SLTUser = eLEXTYPE_USER,
15547    SLTApp = eLEXTYPE_APP
15548} SpeechLexiconType;
15549typedef enum SpeechPartOfSpeech {
15550    SPSNotOverriden = SPPS_NotOverriden,
15551    SPSUnknown = SPPS_Unknown,
15552    SPSNoun = SPPS_Noun,
15553    SPSVerb = SPPS_Verb,
15554    SPSModifier = SPPS_Modifier,
15555    SPSFunction = SPPS_Function,
15556    SPSInterjection = SPPS_Interjection,
15557    SPSLMA = SPPS_LMA,
15558    SPSSuppressWord = SPPS_SuppressWord
15559} SpeechPartOfSpeech;
15560typedef enum DISPID_SpeechLexiconWords {
15561    DISPID_SLWsCount = 1,
15562    DISPID_SLWsItem = DISPID_VALUE,
15563    DISPID_SLWs_NewEnum = DISPID_NEWENUM
15564} DISPID_SpeechLexiconWords;
15565typedef enum SpeechWordType {
15566    SWTAdded = eWORDTYPE_ADDED,
15567    SWTDeleted = eWORDTYPE_DELETED
15568} SpeechWordType;
15569typedef enum DISPID_SpeechLexiconWord {
15570    DISPID_SLWLangId = 1,
15571    DISPID_SLWType = 2,
15572    DISPID_SLWWord = 3,
15573    DISPID_SLWPronunciations = 4
15574} DISPID_SpeechLexiconWord;
15575typedef enum DISPID_SpeechLexiconProns {
15576    DISPID_SLPsCount = 1,
15577    DISPID_SLPsItem = DISPID_VALUE,
15578    DISPID_SLPs_NewEnum = DISPID_NEWENUM
15579} DISPID_SpeechLexiconProns;
15580typedef enum DISPID_SpeechLexiconPronunciation {
15581    DISPID_SLPType = 1,
15582    DISPID_SLPLangId = 2,
15583    DISPID_SLPPartOfSpeech = 3,
15584    DISPID_SLPPhoneIds = 4,
15585    DISPID_SLPSymbolic = 5
15586} DISPID_SpeechLexiconPronunciation;
15587typedef enum DISPID_SpeechPhoneConverter {
15588    DISPID_SPCLangId = 1,
15589    DISPID_SPCPhoneToId = 2,
15590    DISPID_SPCIdToPhone = 3
15591} DISPID_SpeechPhoneConverter;
15592/*****************************************************************************
15593 * _ISpeechVoiceEvents dispinterface
15594 */
15595#ifndef ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
15596#define ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
15597
15598DEFINE_GUID(DIID__ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8);
15599#if defined(__cplusplus) && !defined(CINTERFACE)
15600MIDL_INTERFACE("a372acd1-3bef-4bbd-8ffb-cb3e2b416af8")
15601_ISpeechVoiceEvents : public IDispatch
15602{
15603};
15604#ifdef __CRT_UUID_DECL
15605__CRT_UUID_DECL(_ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8)
15606#endif
15607#else
15608typedef struct _ISpeechVoiceEventsVtbl {
15609    BEGIN_INTERFACE
15610
15611    /*** IUnknown methods ***/
15612    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15613        _ISpeechVoiceEvents *This,
15614        REFIID riid,
15615        void **ppvObject);
15616
15617    ULONG (STDMETHODCALLTYPE *AddRef)(
15618        _ISpeechVoiceEvents *This);
15619
15620    ULONG (STDMETHODCALLTYPE *Release)(
15621        _ISpeechVoiceEvents *This);
15622
15623    /*** IDispatch methods ***/
15624    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15625        _ISpeechVoiceEvents *This,
15626        UINT *pctinfo);
15627
15628    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15629        _ISpeechVoiceEvents *This,
15630        UINT iTInfo,
15631        LCID lcid,
15632        ITypeInfo **ppTInfo);
15633
15634    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15635        _ISpeechVoiceEvents *This,
15636        REFIID riid,
15637        LPOLESTR *rgszNames,
15638        UINT cNames,
15639        LCID lcid,
15640        DISPID *rgDispId);
15641
15642    HRESULT (STDMETHODCALLTYPE *Invoke)(
15643        _ISpeechVoiceEvents *This,
15644        DISPID dispIdMember,
15645        REFIID riid,
15646        LCID lcid,
15647        WORD wFlags,
15648        DISPPARAMS *pDispParams,
15649        VARIANT *pVarResult,
15650        EXCEPINFO *pExcepInfo,
15651        UINT *puArgErr);
15652
15653    END_INTERFACE
15654} _ISpeechVoiceEventsVtbl;
15655
15656interface _ISpeechVoiceEvents {
15657    CONST_VTBL _ISpeechVoiceEventsVtbl* lpVtbl;
15658};
15659
15660#ifdef COBJMACROS
15661#ifndef WIDL_C_INLINE_WRAPPERS
15662/*** IUnknown methods ***/
15663#define _ISpeechVoiceEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15664#define _ISpeechVoiceEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
15665#define _ISpeechVoiceEvents_Release(This) (This)->lpVtbl->Release(This)
15666/*** IDispatch methods ***/
15667#define _ISpeechVoiceEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15668#define _ISpeechVoiceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15669#define _ISpeechVoiceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15670#define _ISpeechVoiceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15671#else
15672/*** IUnknown methods ***/
15673static inline HRESULT _ISpeechVoiceEvents_QueryInterface(_ISpeechVoiceEvents* This,REFIID riid,void **ppvObject) {
15674    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15675}
15676static inline ULONG _ISpeechVoiceEvents_AddRef(_ISpeechVoiceEvents* This) {
15677    return This->lpVtbl->AddRef(This);
15678}
15679static inline ULONG _ISpeechVoiceEvents_Release(_ISpeechVoiceEvents* This) {
15680    return This->lpVtbl->Release(This);
15681}
15682/*** IDispatch methods ***/
15683static inline HRESULT _ISpeechVoiceEvents_GetTypeInfoCount(_ISpeechVoiceEvents* This,UINT *pctinfo) {
15684    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15685}
15686static inline HRESULT _ISpeechVoiceEvents_GetTypeInfo(_ISpeechVoiceEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15687    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15688}
15689static inline HRESULT _ISpeechVoiceEvents_GetIDsOfNames(_ISpeechVoiceEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15690    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15691}
15692static inline HRESULT _ISpeechVoiceEvents_Invoke(_ISpeechVoiceEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15693    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15694}
15695#endif
15696#endif
15697
15698#endif
15699
15700#endif  /* ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__ */
15701
15702/*****************************************************************************
15703 * ISpeechRecognizer interface
15704 */
15705#ifndef __ISpeechRecognizer_INTERFACE_DEFINED__
15706#define __ISpeechRecognizer_INTERFACE_DEFINED__
15707
15708DEFINE_GUID(IID_ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c);
15709#if defined(__cplusplus) && !defined(CINTERFACE)
15710MIDL_INTERFACE("2d5f1c0c-bd75-4b08-9478-3b11fea2586c")
15711ISpeechRecognizer : public IDispatch
15712{
15713    virtual HRESULT STDMETHODCALLTYPE putref_Recognizer(
15714        ISpeechObjectToken *Recognizer) = 0;
15715
15716    virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
15717        ISpeechObjectToken **Recognizer) = 0;
15718
15719    virtual HRESULT STDMETHODCALLTYPE put_AllowAudioInputFormatChangesOnNextSet(
15720        VARIANT_BOOL Allow) = 0;
15721
15722    virtual HRESULT STDMETHODCALLTYPE get_AllowAudioInputFormatChangesOnNextSet(
15723        VARIANT_BOOL *Allow) = 0;
15724
15725    virtual HRESULT STDMETHODCALLTYPE putref_AudioInput(
15726        ISpeechObjectToken *AudioInput = 0) = 0;
15727
15728    virtual HRESULT STDMETHODCALLTYPE get_AudioInput(
15729        ISpeechObjectToken **AudioInput) = 0;
15730
15731    virtual HRESULT STDMETHODCALLTYPE putref_AudioInputStream(
15732        ISpeechBaseStream *AudioInputStream = 0) = 0;
15733
15734    virtual HRESULT STDMETHODCALLTYPE get_AudioInputStream(
15735        ISpeechBaseStream **AudioInputStream) = 0;
15736
15737    virtual HRESULT STDMETHODCALLTYPE get_IsShared(
15738        VARIANT_BOOL *Shared) = 0;
15739
15740    virtual HRESULT STDMETHODCALLTYPE put_State(
15741        SpeechRecognizerState State) = 0;
15742
15743    virtual HRESULT STDMETHODCALLTYPE get_State(
15744        SpeechRecognizerState *State) = 0;
15745
15746    virtual HRESULT STDMETHODCALLTYPE get_Status(
15747        ISpeechRecognizerStatus **Status) = 0;
15748
15749    virtual HRESULT STDMETHODCALLTYPE putref_Profile(
15750        ISpeechObjectToken *Profile = 0) = 0;
15751
15752    virtual HRESULT STDMETHODCALLTYPE get_Profile(
15753        ISpeechObjectToken **Profile) = 0;
15754
15755    virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
15756        VARIANT TextElements,
15757        VARIANT *ElementDisplayAttributes = 0,
15758        LONG LanguageId = 0) = 0;
15759
15760    virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
15761        ISpeechRecoContext **NewContext) = 0;
15762
15763    virtual HRESULT STDMETHODCALLTYPE GetFormat(
15764        SpeechFormatType Type,
15765        ISpeechAudioFormat **Format) = 0;
15766
15767    virtual HRESULT STDMETHODCALLTYPE SetPropertyNumber(
15768        const BSTR Name,
15769        LONG Value,
15770        VARIANT_BOOL *Supported) = 0;
15771
15772    virtual HRESULT STDMETHODCALLTYPE GetPropertyNumber(
15773        const BSTR Name,
15774        LONG *Value,
15775        VARIANT_BOOL *Supported) = 0;
15776
15777    virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
15778        const BSTR Name,
15779        const BSTR Value,
15780        VARIANT_BOOL *Supported) = 0;
15781
15782    virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
15783        const BSTR Name,
15784        BSTR *Value,
15785        VARIANT_BOOL *Supported) = 0;
15786
15787    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
15788        const BSTR TypeOfUI,
15789        const VARIANT *ExtraData,
15790        VARIANT_BOOL *Supported) = 0;
15791
15792    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
15793        LONG hWndParent,
15794        BSTR Title,
15795        const BSTR TypeOfUI,
15796        const VARIANT *ExtraData = 0) = 0;
15797
15798    virtual HRESULT STDMETHODCALLTYPE GetRecognizers(
15799        BSTR RequiredAttributes,
15800        BSTR OptionalAttributes,
15801        ISpeechObjectTokens **ObjectTokens) = 0;
15802
15803    virtual HRESULT STDMETHODCALLTYPE GetAudioInputs(
15804        BSTR RequiredAttributes,
15805        BSTR OptionalAttributes,
15806        ISpeechObjectTokens **ObjectTokens) = 0;
15807
15808    virtual HRESULT STDMETHODCALLTYPE GetProfiles(
15809        BSTR RequiredAttributes,
15810        BSTR OptionalAttributes,
15811        ISpeechObjectTokens **ObjectTokens) = 0;
15812
15813};
15814#ifdef __CRT_UUID_DECL
15815__CRT_UUID_DECL(ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c)
15816#endif
15817#else
15818typedef struct ISpeechRecognizerVtbl {
15819    BEGIN_INTERFACE
15820
15821    /*** IUnknown methods ***/
15822    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15823        ISpeechRecognizer *This,
15824        REFIID riid,
15825        void **ppvObject);
15826
15827    ULONG (STDMETHODCALLTYPE *AddRef)(
15828        ISpeechRecognizer *This);
15829
15830    ULONG (STDMETHODCALLTYPE *Release)(
15831        ISpeechRecognizer *This);
15832
15833    /*** IDispatch methods ***/
15834    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15835        ISpeechRecognizer *This,
15836        UINT *pctinfo);
15837
15838    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15839        ISpeechRecognizer *This,
15840        UINT iTInfo,
15841        LCID lcid,
15842        ITypeInfo **ppTInfo);
15843
15844    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15845        ISpeechRecognizer *This,
15846        REFIID riid,
15847        LPOLESTR *rgszNames,
15848        UINT cNames,
15849        LCID lcid,
15850        DISPID *rgDispId);
15851
15852    HRESULT (STDMETHODCALLTYPE *Invoke)(
15853        ISpeechRecognizer *This,
15854        DISPID dispIdMember,
15855        REFIID riid,
15856        LCID lcid,
15857        WORD wFlags,
15858        DISPPARAMS *pDispParams,
15859        VARIANT *pVarResult,
15860        EXCEPINFO *pExcepInfo,
15861        UINT *puArgErr);
15862
15863    /*** ISpeechRecognizer methods ***/
15864    HRESULT (STDMETHODCALLTYPE *putref_Recognizer)(
15865        ISpeechRecognizer *This,
15866        ISpeechObjectToken *Recognizer);
15867
15868    HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
15869        ISpeechRecognizer *This,
15870        ISpeechObjectToken **Recognizer);
15871
15872    HRESULT (STDMETHODCALLTYPE *put_AllowAudioInputFormatChangesOnNextSet)(
15873        ISpeechRecognizer *This,
15874        VARIANT_BOOL Allow);
15875
15876    HRESULT (STDMETHODCALLTYPE *get_AllowAudioInputFormatChangesOnNextSet)(
15877        ISpeechRecognizer *This,
15878        VARIANT_BOOL *Allow);
15879
15880    HRESULT (STDMETHODCALLTYPE *putref_AudioInput)(
15881        ISpeechRecognizer *This,
15882        ISpeechObjectToken *AudioInput);
15883
15884    HRESULT (STDMETHODCALLTYPE *get_AudioInput)(
15885        ISpeechRecognizer *This,
15886        ISpeechObjectToken **AudioInput);
15887
15888    HRESULT (STDMETHODCALLTYPE *putref_AudioInputStream)(
15889        ISpeechRecognizer *This,
15890        ISpeechBaseStream *AudioInputStream);
15891
15892    HRESULT (STDMETHODCALLTYPE *get_AudioInputStream)(
15893        ISpeechRecognizer *This,
15894        ISpeechBaseStream **AudioInputStream);
15895
15896    HRESULT (STDMETHODCALLTYPE *get_IsShared)(
15897        ISpeechRecognizer *This,
15898        VARIANT_BOOL *Shared);
15899
15900    HRESULT (STDMETHODCALLTYPE *put_State)(
15901        ISpeechRecognizer *This,
15902        SpeechRecognizerState State);
15903
15904    HRESULT (STDMETHODCALLTYPE *get_State)(
15905        ISpeechRecognizer *This,
15906        SpeechRecognizerState *State);
15907
15908    HRESULT (STDMETHODCALLTYPE *get_Status)(
15909        ISpeechRecognizer *This,
15910        ISpeechRecognizerStatus **Status);
15911
15912    HRESULT (STDMETHODCALLTYPE *putref_Profile)(
15913        ISpeechRecognizer *This,
15914        ISpeechObjectToken *Profile);
15915
15916    HRESULT (STDMETHODCALLTYPE *get_Profile)(
15917        ISpeechRecognizer *This,
15918        ISpeechObjectToken **Profile);
15919
15920    HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
15921        ISpeechRecognizer *This,
15922        VARIANT TextElements,
15923        VARIANT *ElementDisplayAttributes,
15924        LONG LanguageId);
15925
15926    HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
15927        ISpeechRecognizer *This,
15928        ISpeechRecoContext **NewContext);
15929
15930    HRESULT (STDMETHODCALLTYPE *GetFormat)(
15931        ISpeechRecognizer *This,
15932        SpeechFormatType Type,
15933        ISpeechAudioFormat **Format);
15934
15935    HRESULT (STDMETHODCALLTYPE *SetPropertyNumber)(
15936        ISpeechRecognizer *This,
15937        const BSTR Name,
15938        LONG Value,
15939        VARIANT_BOOL *Supported);
15940
15941    HRESULT (STDMETHODCALLTYPE *GetPropertyNumber)(
15942        ISpeechRecognizer *This,
15943        const BSTR Name,
15944        LONG *Value,
15945        VARIANT_BOOL *Supported);
15946
15947    HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
15948        ISpeechRecognizer *This,
15949        const BSTR Name,
15950        const BSTR Value,
15951        VARIANT_BOOL *Supported);
15952
15953    HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
15954        ISpeechRecognizer *This,
15955        const BSTR Name,
15956        BSTR *Value,
15957        VARIANT_BOOL *Supported);
15958
15959    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
15960        ISpeechRecognizer *This,
15961        const BSTR TypeOfUI,
15962        const VARIANT *ExtraData,
15963        VARIANT_BOOL *Supported);
15964
15965    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
15966        ISpeechRecognizer *This,
15967        LONG hWndParent,
15968        BSTR Title,
15969        const BSTR TypeOfUI,
15970        const VARIANT *ExtraData);
15971
15972    HRESULT (STDMETHODCALLTYPE *GetRecognizers)(
15973        ISpeechRecognizer *This,
15974        BSTR RequiredAttributes,
15975        BSTR OptionalAttributes,
15976        ISpeechObjectTokens **ObjectTokens);
15977
15978    HRESULT (STDMETHODCALLTYPE *GetAudioInputs)(
15979        ISpeechRecognizer *This,
15980        BSTR RequiredAttributes,
15981        BSTR OptionalAttributes,
15982        ISpeechObjectTokens **ObjectTokens);
15983
15984    HRESULT (STDMETHODCALLTYPE *GetProfiles)(
15985        ISpeechRecognizer *This,
15986        BSTR RequiredAttributes,
15987        BSTR OptionalAttributes,
15988        ISpeechObjectTokens **ObjectTokens);
15989
15990    END_INTERFACE
15991} ISpeechRecognizerVtbl;
15992
15993interface ISpeechRecognizer {
15994    CONST_VTBL ISpeechRecognizerVtbl* lpVtbl;
15995};
15996
15997#ifdef COBJMACROS
15998#ifndef WIDL_C_INLINE_WRAPPERS
15999/*** IUnknown methods ***/
16000#define ISpeechRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16001#define ISpeechRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
16002#define ISpeechRecognizer_Release(This) (This)->lpVtbl->Release(This)
16003/*** IDispatch methods ***/
16004#define ISpeechRecognizer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16005#define ISpeechRecognizer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16006#define ISpeechRecognizer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16007#define ISpeechRecognizer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16008/*** ISpeechRecognizer methods ***/
16009#define ISpeechRecognizer_putref_Recognizer(This,Recognizer) (This)->lpVtbl->putref_Recognizer(This,Recognizer)
16010#define ISpeechRecognizer_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
16011#define ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow)
16012#define ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow)
16013#define ISpeechRecognizer_putref_AudioInput(This,AudioInput) (This)->lpVtbl->putref_AudioInput(This,AudioInput)
16014#define ISpeechRecognizer_get_AudioInput(This,AudioInput) (This)->lpVtbl->get_AudioInput(This,AudioInput)
16015#define ISpeechRecognizer_putref_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->putref_AudioInputStream(This,AudioInputStream)
16016#define ISpeechRecognizer_get_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->get_AudioInputStream(This,AudioInputStream)
16017#define ISpeechRecognizer_get_IsShared(This,Shared) (This)->lpVtbl->get_IsShared(This,Shared)
16018#define ISpeechRecognizer_put_State(This,State) (This)->lpVtbl->put_State(This,State)
16019#define ISpeechRecognizer_get_State(This,State) (This)->lpVtbl->get_State(This,State)
16020#define ISpeechRecognizer_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
16021#define ISpeechRecognizer_putref_Profile(This,Profile) (This)->lpVtbl->putref_Profile(This,Profile)
16022#define ISpeechRecognizer_get_Profile(This,Profile) (This)->lpVtbl->get_Profile(This,Profile)
16023#define ISpeechRecognizer_EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId) (This)->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId)
16024#define ISpeechRecognizer_CreateRecoContext(This,NewContext) (This)->lpVtbl->CreateRecoContext(This,NewContext)
16025#define ISpeechRecognizer_GetFormat(This,Type,Format) (This)->lpVtbl->GetFormat(This,Type,Format)
16026#define ISpeechRecognizer_SetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyNumber(This,Name,Value,Supported)
16027#define ISpeechRecognizer_GetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyNumber(This,Name,Value,Supported)
16028#define ISpeechRecognizer_SetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyString(This,Name,Value,Supported)
16029#define ISpeechRecognizer_GetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyString(This,Name,Value,Supported)
16030#define ISpeechRecognizer_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
16031#define ISpeechRecognizer_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
16032#define ISpeechRecognizer_GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
16033#define ISpeechRecognizer_GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
16034#define ISpeechRecognizer_GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
16035#else
16036/*** IUnknown methods ***/
16037static inline HRESULT ISpeechRecognizer_QueryInterface(ISpeechRecognizer* This,REFIID riid,void **ppvObject) {
16038    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16039}
16040static inline ULONG ISpeechRecognizer_AddRef(ISpeechRecognizer* This) {
16041    return This->lpVtbl->AddRef(This);
16042}
16043static inline ULONG ISpeechRecognizer_Release(ISpeechRecognizer* This) {
16044    return This->lpVtbl->Release(This);
16045}
16046/*** IDispatch methods ***/
16047static inline HRESULT ISpeechRecognizer_GetTypeInfoCount(ISpeechRecognizer* This,UINT *pctinfo) {
16048    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16049}
16050static inline HRESULT ISpeechRecognizer_GetTypeInfo(ISpeechRecognizer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16051    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16052}
16053static inline HRESULT ISpeechRecognizer_GetIDsOfNames(ISpeechRecognizer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16054    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16055}
16056static inline HRESULT ISpeechRecognizer_Invoke(ISpeechRecognizer* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16057    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16058}
16059/*** ISpeechRecognizer methods ***/
16060static inline HRESULT ISpeechRecognizer_putref_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken *Recognizer) {
16061    return This->lpVtbl->putref_Recognizer(This,Recognizer);
16062}
16063static inline HRESULT ISpeechRecognizer_get_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken **Recognizer) {
16064    return This->lpVtbl->get_Recognizer(This,Recognizer);
16065}
16066static inline HRESULT ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL Allow) {
16067    return This->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow);
16068}
16069static inline HRESULT ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL *Allow) {
16070    return This->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow);
16071}
16072static inline HRESULT ISpeechRecognizer_putref_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken *AudioInput) {
16073    return This->lpVtbl->putref_AudioInput(This,AudioInput);
16074}
16075static inline HRESULT ISpeechRecognizer_get_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken **AudioInput) {
16076    return This->lpVtbl->get_AudioInput(This,AudioInput);
16077}
16078static inline HRESULT ISpeechRecognizer_putref_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream *AudioInputStream) {
16079    return This->lpVtbl->putref_AudioInputStream(This,AudioInputStream);
16080}
16081static inline HRESULT ISpeechRecognizer_get_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream **AudioInputStream) {
16082    return This->lpVtbl->get_AudioInputStream(This,AudioInputStream);
16083}
16084static inline HRESULT ISpeechRecognizer_get_IsShared(ISpeechRecognizer* This,VARIANT_BOOL *Shared) {
16085    return This->lpVtbl->get_IsShared(This,Shared);
16086}
16087static inline HRESULT ISpeechRecognizer_put_State(ISpeechRecognizer* This,SpeechRecognizerState State) {
16088    return This->lpVtbl->put_State(This,State);
16089}
16090static inline HRESULT ISpeechRecognizer_get_State(ISpeechRecognizer* This,SpeechRecognizerState *State) {
16091    return This->lpVtbl->get_State(This,State);
16092}
16093static inline HRESULT ISpeechRecognizer_get_Status(ISpeechRecognizer* This,ISpeechRecognizerStatus **Status) {
16094    return This->lpVtbl->get_Status(This,Status);
16095}
16096static inline HRESULT ISpeechRecognizer_putref_Profile(ISpeechRecognizer* This,ISpeechObjectToken *Profile) {
16097    return This->lpVtbl->putref_Profile(This,Profile);
16098}
16099static inline HRESULT ISpeechRecognizer_get_Profile(ISpeechRecognizer* This,ISpeechObjectToken **Profile) {
16100    return This->lpVtbl->get_Profile(This,Profile);
16101}
16102static inline HRESULT ISpeechRecognizer_EmulateRecognition(ISpeechRecognizer* This,VARIANT TextElements,VARIANT *ElementDisplayAttributes,LONG LanguageId) {
16103    return This->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId);
16104}
16105static inline HRESULT ISpeechRecognizer_CreateRecoContext(ISpeechRecognizer* This,ISpeechRecoContext **NewContext) {
16106    return This->lpVtbl->CreateRecoContext(This,NewContext);
16107}
16108static inline HRESULT ISpeechRecognizer_GetFormat(ISpeechRecognizer* This,SpeechFormatType Type,ISpeechAudioFormat **Format) {
16109    return This->lpVtbl->GetFormat(This,Type,Format);
16110}
16111static inline HRESULT ISpeechRecognizer_SetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG Value,VARIANT_BOOL *Supported) {
16112    return This->lpVtbl->SetPropertyNumber(This,Name,Value,Supported);
16113}
16114static inline HRESULT ISpeechRecognizer_GetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG *Value,VARIANT_BOOL *Supported) {
16115    return This->lpVtbl->GetPropertyNumber(This,Name,Value,Supported);
16116}
16117static inline HRESULT ISpeechRecognizer_SetPropertyString(ISpeechRecognizer* This,const BSTR Name,const BSTR Value,VARIANT_BOOL *Supported) {
16118    return This->lpVtbl->SetPropertyString(This,Name,Value,Supported);
16119}
16120static inline HRESULT ISpeechRecognizer_GetPropertyString(ISpeechRecognizer* This,const BSTR Name,BSTR *Value,VARIANT_BOOL *Supported) {
16121    return This->lpVtbl->GetPropertyString(This,Name,Value,Supported);
16122}
16123static inline HRESULT ISpeechRecognizer_IsUISupported(ISpeechRecognizer* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
16124    return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
16125}
16126static inline HRESULT ISpeechRecognizer_DisplayUI(ISpeechRecognizer* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
16127    return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
16128}
16129static inline HRESULT ISpeechRecognizer_GetRecognizers(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
16130    return This->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
16131}
16132static inline HRESULT ISpeechRecognizer_GetAudioInputs(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
16133    return This->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
16134}
16135static inline HRESULT ISpeechRecognizer_GetProfiles(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
16136    return This->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
16137}
16138#endif
16139#endif
16140
16141#endif
16142
16143
16144#endif  /* __ISpeechRecognizer_INTERFACE_DEFINED__ */
16145
16146/*****************************************************************************
16147 * ISpeechRecognizerStatus interface
16148 */
16149#ifndef __ISpeechRecognizerStatus_INTERFACE_DEFINED__
16150#define __ISpeechRecognizerStatus_INTERFACE_DEFINED__
16151
16152DEFINE_GUID(IID_ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c);
16153#if defined(__cplusplus) && !defined(CINTERFACE)
16154MIDL_INTERFACE("bff9e781-53ec-484e-bb8a-0e1b5551e35c")
16155ISpeechRecognizerStatus : public IDispatch
16156{
16157    virtual HRESULT STDMETHODCALLTYPE get_AudioStatus(
16158        ISpeechAudioStatus **AudioStatus) = 0;
16159
16160    virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamPosition(
16161        VARIANT *pCurrentStreamPos) = 0;
16162
16163    virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
16164        LONG *StreamNumber) = 0;
16165
16166    virtual HRESULT STDMETHODCALLTYPE get_NumberOfActiveRules(
16167        LONG *NumberOfActiveRules) = 0;
16168
16169    virtual HRESULT STDMETHODCALLTYPE get_ClsidEngine(
16170        BSTR *ClsidEngine) = 0;
16171
16172    virtual HRESULT STDMETHODCALLTYPE get_SupportedLanguages(
16173        VARIANT *SupportedLanguages) = 0;
16174
16175};
16176#ifdef __CRT_UUID_DECL
16177__CRT_UUID_DECL(ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c)
16178#endif
16179#else
16180typedef struct ISpeechRecognizerStatusVtbl {
16181    BEGIN_INTERFACE
16182
16183    /*** IUnknown methods ***/
16184    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16185        ISpeechRecognizerStatus *This,
16186        REFIID riid,
16187        void **ppvObject);
16188
16189    ULONG (STDMETHODCALLTYPE *AddRef)(
16190        ISpeechRecognizerStatus *This);
16191
16192    ULONG (STDMETHODCALLTYPE *Release)(
16193        ISpeechRecognizerStatus *This);
16194
16195    /*** IDispatch methods ***/
16196    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16197        ISpeechRecognizerStatus *This,
16198        UINT *pctinfo);
16199
16200    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16201        ISpeechRecognizerStatus *This,
16202        UINT iTInfo,
16203        LCID lcid,
16204        ITypeInfo **ppTInfo);
16205
16206    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16207        ISpeechRecognizerStatus *This,
16208        REFIID riid,
16209        LPOLESTR *rgszNames,
16210        UINT cNames,
16211        LCID lcid,
16212        DISPID *rgDispId);
16213
16214    HRESULT (STDMETHODCALLTYPE *Invoke)(
16215        ISpeechRecognizerStatus *This,
16216        DISPID dispIdMember,
16217        REFIID riid,
16218        LCID lcid,
16219        WORD wFlags,
16220        DISPPARAMS *pDispParams,
16221        VARIANT *pVarResult,
16222        EXCEPINFO *pExcepInfo,
16223        UINT *puArgErr);
16224
16225    /*** ISpeechRecognizerStatus methods ***/
16226    HRESULT (STDMETHODCALLTYPE *get_AudioStatus)(
16227        ISpeechRecognizerStatus *This,
16228        ISpeechAudioStatus **AudioStatus);
16229
16230    HRESULT (STDMETHODCALLTYPE *get_CurrentStreamPosition)(
16231        ISpeechRecognizerStatus *This,
16232        VARIANT *pCurrentStreamPos);
16233
16234    HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
16235        ISpeechRecognizerStatus *This,
16236        LONG *StreamNumber);
16237
16238    HRESULT (STDMETHODCALLTYPE *get_NumberOfActiveRules)(
16239        ISpeechRecognizerStatus *This,
16240        LONG *NumberOfActiveRules);
16241
16242    HRESULT (STDMETHODCALLTYPE *get_ClsidEngine)(
16243        ISpeechRecognizerStatus *This,
16244        BSTR *ClsidEngine);
16245
16246    HRESULT (STDMETHODCALLTYPE *get_SupportedLanguages)(
16247        ISpeechRecognizerStatus *This,
16248        VARIANT *SupportedLanguages);
16249
16250    END_INTERFACE
16251} ISpeechRecognizerStatusVtbl;
16252
16253interface ISpeechRecognizerStatus {
16254    CONST_VTBL ISpeechRecognizerStatusVtbl* lpVtbl;
16255};
16256
16257#ifdef COBJMACROS
16258#ifndef WIDL_C_INLINE_WRAPPERS
16259/*** IUnknown methods ***/
16260#define ISpeechRecognizerStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16261#define ISpeechRecognizerStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
16262#define ISpeechRecognizerStatus_Release(This) (This)->lpVtbl->Release(This)
16263/*** IDispatch methods ***/
16264#define ISpeechRecognizerStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16265#define ISpeechRecognizerStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16266#define ISpeechRecognizerStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16267#define ISpeechRecognizerStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16268/*** ISpeechRecognizerStatus methods ***/
16269#define ISpeechRecognizerStatus_get_AudioStatus(This,AudioStatus) (This)->lpVtbl->get_AudioStatus(This,AudioStatus)
16270#define ISpeechRecognizerStatus_get_CurrentStreamPosition(This,pCurrentStreamPos) (This)->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos)
16271#define ISpeechRecognizerStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
16272#define ISpeechRecognizerStatus_get_NumberOfActiveRules(This,NumberOfActiveRules) (This)->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules)
16273#define ISpeechRecognizerStatus_get_ClsidEngine(This,ClsidEngine) (This)->lpVtbl->get_ClsidEngine(This,ClsidEngine)
16274#define ISpeechRecognizerStatus_get_SupportedLanguages(This,SupportedLanguages) (This)->lpVtbl->get_SupportedLanguages(This,SupportedLanguages)
16275#else
16276/*** IUnknown methods ***/
16277static inline HRESULT ISpeechRecognizerStatus_QueryInterface(ISpeechRecognizerStatus* This,REFIID riid,void **ppvObject) {
16278    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16279}
16280static inline ULONG ISpeechRecognizerStatus_AddRef(ISpeechRecognizerStatus* This) {
16281    return This->lpVtbl->AddRef(This);
16282}
16283static inline ULONG ISpeechRecognizerStatus_Release(ISpeechRecognizerStatus* This) {
16284    return This->lpVtbl->Release(This);
16285}
16286/*** IDispatch methods ***/
16287static inline HRESULT ISpeechRecognizerStatus_GetTypeInfoCount(ISpeechRecognizerStatus* This,UINT *pctinfo) {
16288    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16289}
16290static inline HRESULT ISpeechRecognizerStatus_GetTypeInfo(ISpeechRecognizerStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16291    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16292}
16293static inline HRESULT ISpeechRecognizerStatus_GetIDsOfNames(ISpeechRecognizerStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16294    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16295}
16296static inline HRESULT ISpeechRecognizerStatus_Invoke(ISpeechRecognizerStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16297    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16298}
16299/*** ISpeechRecognizerStatus methods ***/
16300static inline HRESULT ISpeechRecognizerStatus_get_AudioStatus(ISpeechRecognizerStatus* This,ISpeechAudioStatus **AudioStatus) {
16301    return This->lpVtbl->get_AudioStatus(This,AudioStatus);
16302}
16303static inline HRESULT ISpeechRecognizerStatus_get_CurrentStreamPosition(ISpeechRecognizerStatus* This,VARIANT *pCurrentStreamPos) {
16304    return This->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos);
16305}
16306static inline HRESULT ISpeechRecognizerStatus_get_CurrentStreamNumber(ISpeechRecognizerStatus* This,LONG *StreamNumber) {
16307    return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
16308}
16309static inline HRESULT ISpeechRecognizerStatus_get_NumberOfActiveRules(ISpeechRecognizerStatus* This,LONG *NumberOfActiveRules) {
16310    return This->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules);
16311}
16312static inline HRESULT ISpeechRecognizerStatus_get_ClsidEngine(ISpeechRecognizerStatus* This,BSTR *ClsidEngine) {
16313    return This->lpVtbl->get_ClsidEngine(This,ClsidEngine);
16314}
16315static inline HRESULT ISpeechRecognizerStatus_get_SupportedLanguages(ISpeechRecognizerStatus* This,VARIANT *SupportedLanguages) {
16316    return This->lpVtbl->get_SupportedLanguages(This,SupportedLanguages);
16317}
16318#endif
16319#endif
16320
16321#endif
16322
16323
16324#endif  /* __ISpeechRecognizerStatus_INTERFACE_DEFINED__ */
16325
16326/*****************************************************************************
16327 * ISpeechRecoContext interface
16328 */
16329#ifndef __ISpeechRecoContext_INTERFACE_DEFINED__
16330#define __ISpeechRecoContext_INTERFACE_DEFINED__
16331
16332DEFINE_GUID(IID_ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8);
16333#if defined(__cplusplus) && !defined(CINTERFACE)
16334MIDL_INTERFACE("580aa49d-7e1e-4809-b8e2-57da806104b8")
16335ISpeechRecoContext : public IDispatch
16336{
16337    virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
16338        ISpeechRecognizer **Recognizer) = 0;
16339
16340    virtual HRESULT STDMETHODCALLTYPE get_AudioInputInterferenceStatus(
16341        SpeechInterference *Interference) = 0;
16342
16343    virtual HRESULT STDMETHODCALLTYPE get_RequestedUIType(
16344        BSTR *UIType) = 0;
16345
16346    virtual HRESULT STDMETHODCALLTYPE putref_Voice(
16347        ISpeechVoice *Voice) = 0;
16348
16349    virtual HRESULT STDMETHODCALLTYPE get_Voice(
16350        ISpeechVoice **Voice) = 0;
16351
16352    virtual HRESULT STDMETHODCALLTYPE put_AllowVoiceFormatMatchingOnNextSet(
16353        VARIANT_BOOL Allow) = 0;
16354
16355    virtual HRESULT STDMETHODCALLTYPE get_AllowVoiceFormatMatchingOnNextSet(
16356        VARIANT_BOOL *pAllow) = 0;
16357
16358    virtual HRESULT STDMETHODCALLTYPE put_VoicePurgeEvent(
16359        SpeechRecoEvents EventInterest) = 0;
16360
16361    virtual HRESULT STDMETHODCALLTYPE get_VoicePurgeEvent(
16362        SpeechRecoEvents *EventInterest) = 0;
16363
16364    virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
16365        SpeechRecoEvents EventInterest) = 0;
16366
16367    virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
16368        SpeechRecoEvents *EventInterest) = 0;
16369
16370    virtual HRESULT STDMETHODCALLTYPE put_CmdMaxAlternates(
16371        LONG MaxAlternates) = 0;
16372
16373    virtual HRESULT STDMETHODCALLTYPE get_CmdMaxAlternates(
16374        LONG *MaxAlternates) = 0;
16375
16376    virtual HRESULT STDMETHODCALLTYPE put_State(
16377        SpeechRecoContextState State) = 0;
16378
16379    virtual HRESULT STDMETHODCALLTYPE get_State(
16380        SpeechRecoContextState *State) = 0;
16381
16382    virtual HRESULT STDMETHODCALLTYPE put_RetainedAudio(
16383        SpeechRetainedAudioOptions Option) = 0;
16384
16385    virtual HRESULT STDMETHODCALLTYPE get_RetainedAudio(
16386        SpeechRetainedAudioOptions *Option) = 0;
16387
16388    virtual HRESULT STDMETHODCALLTYPE putref_RetainedAudioFormat(
16389        ISpeechAudioFormat *Format) = 0;
16390
16391    virtual HRESULT STDMETHODCALLTYPE get_RetainedAudioFormat(
16392        ISpeechAudioFormat **Format) = 0;
16393
16394    virtual HRESULT STDMETHODCALLTYPE Pause(
16395        ) = 0;
16396
16397    virtual HRESULT STDMETHODCALLTYPE Resume(
16398        ) = 0;
16399
16400    virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
16401        VARIANT GrammarId,
16402        ISpeechRecoGrammar **Grammar) = 0;
16403
16404    virtual HRESULT STDMETHODCALLTYPE CreateResultFromMemory(
16405        VARIANT *ResultBlock,
16406        ISpeechRecoResult **Result) = 0;
16407
16408    virtual HRESULT STDMETHODCALLTYPE Bookmark(
16409        SpeechBookmarkOptions Options,
16410        VARIANT StreamPos,
16411        VARIANT BookmarkId) = 0;
16412
16413    virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
16414        BSTR AdaptationString) = 0;
16415
16416};
16417#ifdef __CRT_UUID_DECL
16418__CRT_UUID_DECL(ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8)
16419#endif
16420#else
16421typedef struct ISpeechRecoContextVtbl {
16422    BEGIN_INTERFACE
16423
16424    /*** IUnknown methods ***/
16425    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16426        ISpeechRecoContext *This,
16427        REFIID riid,
16428        void **ppvObject);
16429
16430    ULONG (STDMETHODCALLTYPE *AddRef)(
16431        ISpeechRecoContext *This);
16432
16433    ULONG (STDMETHODCALLTYPE *Release)(
16434        ISpeechRecoContext *This);
16435
16436    /*** IDispatch methods ***/
16437    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16438        ISpeechRecoContext *This,
16439        UINT *pctinfo);
16440
16441    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16442        ISpeechRecoContext *This,
16443        UINT iTInfo,
16444        LCID lcid,
16445        ITypeInfo **ppTInfo);
16446
16447    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16448        ISpeechRecoContext *This,
16449        REFIID riid,
16450        LPOLESTR *rgszNames,
16451        UINT cNames,
16452        LCID lcid,
16453        DISPID *rgDispId);
16454
16455    HRESULT (STDMETHODCALLTYPE *Invoke)(
16456        ISpeechRecoContext *This,
16457        DISPID dispIdMember,
16458        REFIID riid,
16459        LCID lcid,
16460        WORD wFlags,
16461        DISPPARAMS *pDispParams,
16462        VARIANT *pVarResult,
16463        EXCEPINFO *pExcepInfo,
16464        UINT *puArgErr);
16465
16466    /*** ISpeechRecoContext methods ***/
16467    HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
16468        ISpeechRecoContext *This,
16469        ISpeechRecognizer **Recognizer);
16470
16471    HRESULT (STDMETHODCALLTYPE *get_AudioInputInterferenceStatus)(
16472        ISpeechRecoContext *This,
16473        SpeechInterference *Interference);
16474
16475    HRESULT (STDMETHODCALLTYPE *get_RequestedUIType)(
16476        ISpeechRecoContext *This,
16477        BSTR *UIType);
16478
16479    HRESULT (STDMETHODCALLTYPE *putref_Voice)(
16480        ISpeechRecoContext *This,
16481        ISpeechVoice *Voice);
16482
16483    HRESULT (STDMETHODCALLTYPE *get_Voice)(
16484        ISpeechRecoContext *This,
16485        ISpeechVoice **Voice);
16486
16487    HRESULT (STDMETHODCALLTYPE *put_AllowVoiceFormatMatchingOnNextSet)(
16488        ISpeechRecoContext *This,
16489        VARIANT_BOOL Allow);
16490
16491    HRESULT (STDMETHODCALLTYPE *get_AllowVoiceFormatMatchingOnNextSet)(
16492        ISpeechRecoContext *This,
16493        VARIANT_BOOL *pAllow);
16494
16495    HRESULT (STDMETHODCALLTYPE *put_VoicePurgeEvent)(
16496        ISpeechRecoContext *This,
16497        SpeechRecoEvents EventInterest);
16498
16499    HRESULT (STDMETHODCALLTYPE *get_VoicePurgeEvent)(
16500        ISpeechRecoContext *This,
16501        SpeechRecoEvents *EventInterest);
16502
16503    HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
16504        ISpeechRecoContext *This,
16505        SpeechRecoEvents EventInterest);
16506
16507    HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
16508        ISpeechRecoContext *This,
16509        SpeechRecoEvents *EventInterest);
16510
16511    HRESULT (STDMETHODCALLTYPE *put_CmdMaxAlternates)(
16512        ISpeechRecoContext *This,
16513        LONG MaxAlternates);
16514
16515    HRESULT (STDMETHODCALLTYPE *get_CmdMaxAlternates)(
16516        ISpeechRecoContext *This,
16517        LONG *MaxAlternates);
16518
16519    HRESULT (STDMETHODCALLTYPE *put_State)(
16520        ISpeechRecoContext *This,
16521        SpeechRecoContextState State);
16522
16523    HRESULT (STDMETHODCALLTYPE *get_State)(
16524        ISpeechRecoContext *This,
16525        SpeechRecoContextState *State);
16526
16527    HRESULT (STDMETHODCALLTYPE *put_RetainedAudio)(
16528        ISpeechRecoContext *This,
16529        SpeechRetainedAudioOptions Option);
16530
16531    HRESULT (STDMETHODCALLTYPE *get_RetainedAudio)(
16532        ISpeechRecoContext *This,
16533        SpeechRetainedAudioOptions *Option);
16534
16535    HRESULT (STDMETHODCALLTYPE *putref_RetainedAudioFormat)(
16536        ISpeechRecoContext *This,
16537        ISpeechAudioFormat *Format);
16538
16539    HRESULT (STDMETHODCALLTYPE *get_RetainedAudioFormat)(
16540        ISpeechRecoContext *This,
16541        ISpeechAudioFormat **Format);
16542
16543    HRESULT (STDMETHODCALLTYPE *Pause)(
16544        ISpeechRecoContext *This);
16545
16546    HRESULT (STDMETHODCALLTYPE *Resume)(
16547        ISpeechRecoContext *This);
16548
16549    HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
16550        ISpeechRecoContext *This,
16551        VARIANT GrammarId,
16552        ISpeechRecoGrammar **Grammar);
16553
16554    HRESULT (STDMETHODCALLTYPE *CreateResultFromMemory)(
16555        ISpeechRecoContext *This,
16556        VARIANT *ResultBlock,
16557        ISpeechRecoResult **Result);
16558
16559    HRESULT (STDMETHODCALLTYPE *Bookmark)(
16560        ISpeechRecoContext *This,
16561        SpeechBookmarkOptions Options,
16562        VARIANT StreamPos,
16563        VARIANT BookmarkId);
16564
16565    HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
16566        ISpeechRecoContext *This,
16567        BSTR AdaptationString);
16568
16569    END_INTERFACE
16570} ISpeechRecoContextVtbl;
16571
16572interface ISpeechRecoContext {
16573    CONST_VTBL ISpeechRecoContextVtbl* lpVtbl;
16574};
16575
16576#ifdef COBJMACROS
16577#ifndef WIDL_C_INLINE_WRAPPERS
16578/*** IUnknown methods ***/
16579#define ISpeechRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16580#define ISpeechRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
16581#define ISpeechRecoContext_Release(This) (This)->lpVtbl->Release(This)
16582/*** IDispatch methods ***/
16583#define ISpeechRecoContext_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16584#define ISpeechRecoContext_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16585#define ISpeechRecoContext_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16586#define ISpeechRecoContext_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16587/*** ISpeechRecoContext methods ***/
16588#define ISpeechRecoContext_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
16589#define ISpeechRecoContext_get_AudioInputInterferenceStatus(This,Interference) (This)->lpVtbl->get_AudioInputInterferenceStatus(This,Interference)
16590#define ISpeechRecoContext_get_RequestedUIType(This,UIType) (This)->lpVtbl->get_RequestedUIType(This,UIType)
16591#define ISpeechRecoContext_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
16592#define ISpeechRecoContext_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
16593#define ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(This,Allow) (This)->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow)
16594#define ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(This,pAllow) (This)->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow)
16595#define ISpeechRecoContext_put_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->put_VoicePurgeEvent(This,EventInterest)
16596#define ISpeechRecoContext_get_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->get_VoicePurgeEvent(This,EventInterest)
16597#define ISpeechRecoContext_put_EventInterests(This,EventInterest) (This)->lpVtbl->put_EventInterests(This,EventInterest)
16598#define ISpeechRecoContext_get_EventInterests(This,EventInterest) (This)->lpVtbl->get_EventInterests(This,EventInterest)
16599#define ISpeechRecoContext_put_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates)
16600#define ISpeechRecoContext_get_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates)
16601#define ISpeechRecoContext_put_State(This,State) (This)->lpVtbl->put_State(This,State)
16602#define ISpeechRecoContext_get_State(This,State) (This)->lpVtbl->get_State(This,State)
16603#define ISpeechRecoContext_put_RetainedAudio(This,Option) (This)->lpVtbl->put_RetainedAudio(This,Option)
16604#define ISpeechRecoContext_get_RetainedAudio(This,Option) (This)->lpVtbl->get_RetainedAudio(This,Option)
16605#define ISpeechRecoContext_putref_RetainedAudioFormat(This,Format) (This)->lpVtbl->putref_RetainedAudioFormat(This,Format)
16606#define ISpeechRecoContext_get_RetainedAudioFormat(This,Format) (This)->lpVtbl->get_RetainedAudioFormat(This,Format)
16607#define ISpeechRecoContext_Pause(This) (This)->lpVtbl->Pause(This)
16608#define ISpeechRecoContext_Resume(This) (This)->lpVtbl->Resume(This)
16609#define ISpeechRecoContext_CreateGrammar(This,GrammarId,Grammar) (This)->lpVtbl->CreateGrammar(This,GrammarId,Grammar)
16610#define ISpeechRecoContext_CreateResultFromMemory(This,ResultBlock,Result) (This)->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result)
16611#define ISpeechRecoContext_Bookmark(This,Options,StreamPos,BookmarkId) (This)->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId)
16612#define ISpeechRecoContext_SetAdaptationData(This,AdaptationString) (This)->lpVtbl->SetAdaptationData(This,AdaptationString)
16613#else
16614/*** IUnknown methods ***/
16615static inline HRESULT ISpeechRecoContext_QueryInterface(ISpeechRecoContext* This,REFIID riid,void **ppvObject) {
16616    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16617}
16618static inline ULONG ISpeechRecoContext_AddRef(ISpeechRecoContext* This) {
16619    return This->lpVtbl->AddRef(This);
16620}
16621static inline ULONG ISpeechRecoContext_Release(ISpeechRecoContext* This) {
16622    return This->lpVtbl->Release(This);
16623}
16624/*** IDispatch methods ***/
16625static inline HRESULT ISpeechRecoContext_GetTypeInfoCount(ISpeechRecoContext* This,UINT *pctinfo) {
16626    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16627}
16628static inline HRESULT ISpeechRecoContext_GetTypeInfo(ISpeechRecoContext* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16629    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16630}
16631static inline HRESULT ISpeechRecoContext_GetIDsOfNames(ISpeechRecoContext* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16632    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16633}
16634static inline HRESULT ISpeechRecoContext_Invoke(ISpeechRecoContext* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16635    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16636}
16637/*** ISpeechRecoContext methods ***/
16638static inline HRESULT ISpeechRecoContext_get_Recognizer(ISpeechRecoContext* This,ISpeechRecognizer **Recognizer) {
16639    return This->lpVtbl->get_Recognizer(This,Recognizer);
16640}
16641static inline HRESULT ISpeechRecoContext_get_AudioInputInterferenceStatus(ISpeechRecoContext* This,SpeechInterference *Interference) {
16642    return This->lpVtbl->get_AudioInputInterferenceStatus(This,Interference);
16643}
16644static inline HRESULT ISpeechRecoContext_get_RequestedUIType(ISpeechRecoContext* This,BSTR *UIType) {
16645    return This->lpVtbl->get_RequestedUIType(This,UIType);
16646}
16647static inline HRESULT ISpeechRecoContext_putref_Voice(ISpeechRecoContext* This,ISpeechVoice *Voice) {
16648    return This->lpVtbl->putref_Voice(This,Voice);
16649}
16650static inline HRESULT ISpeechRecoContext_get_Voice(ISpeechRecoContext* This,ISpeechVoice **Voice) {
16651    return This->lpVtbl->get_Voice(This,Voice);
16652}
16653static inline HRESULT ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL Allow) {
16654    return This->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow);
16655}
16656static inline HRESULT ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL *pAllow) {
16657    return This->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow);
16658}
16659static inline HRESULT ISpeechRecoContext_put_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
16660    return This->lpVtbl->put_VoicePurgeEvent(This,EventInterest);
16661}
16662static inline HRESULT ISpeechRecoContext_get_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
16663    return This->lpVtbl->get_VoicePurgeEvent(This,EventInterest);
16664}
16665static inline HRESULT ISpeechRecoContext_put_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
16666    return This->lpVtbl->put_EventInterests(This,EventInterest);
16667}
16668static inline HRESULT ISpeechRecoContext_get_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
16669    return This->lpVtbl->get_EventInterests(This,EventInterest);
16670}
16671static inline HRESULT ISpeechRecoContext_put_CmdMaxAlternates(ISpeechRecoContext* This,LONG MaxAlternates) {
16672    return This->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates);
16673}
16674static inline HRESULT ISpeechRecoContext_get_CmdMaxAlternates(ISpeechRecoContext* This,LONG *MaxAlternates) {
16675    return This->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates);
16676}
16677static inline HRESULT ISpeechRecoContext_put_State(ISpeechRecoContext* This,SpeechRecoContextState State) {
16678    return This->lpVtbl->put_State(This,State);
16679}
16680static inline HRESULT ISpeechRecoContext_get_State(ISpeechRecoContext* This,SpeechRecoContextState *State) {
16681    return This->lpVtbl->get_State(This,State);
16682}
16683static inline HRESULT ISpeechRecoContext_put_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions Option) {
16684    return This->lpVtbl->put_RetainedAudio(This,Option);
16685}
16686static inline HRESULT ISpeechRecoContext_get_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions *Option) {
16687    return This->lpVtbl->get_RetainedAudio(This,Option);
16688}
16689static inline HRESULT ISpeechRecoContext_putref_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat *Format) {
16690    return This->lpVtbl->putref_RetainedAudioFormat(This,Format);
16691}
16692static inline HRESULT ISpeechRecoContext_get_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat **Format) {
16693    return This->lpVtbl->get_RetainedAudioFormat(This,Format);
16694}
16695static inline HRESULT ISpeechRecoContext_Pause(ISpeechRecoContext* This) {
16696    return This->lpVtbl->Pause(This);
16697}
16698static inline HRESULT ISpeechRecoContext_Resume(ISpeechRecoContext* This) {
16699    return This->lpVtbl->Resume(This);
16700}
16701static inline HRESULT ISpeechRecoContext_CreateGrammar(ISpeechRecoContext* This,VARIANT GrammarId,ISpeechRecoGrammar **Grammar) {
16702    return This->lpVtbl->CreateGrammar(This,GrammarId,Grammar);
16703}
16704static inline HRESULT ISpeechRecoContext_CreateResultFromMemory(ISpeechRecoContext* This,VARIANT *ResultBlock,ISpeechRecoResult **Result) {
16705    return This->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result);
16706}
16707static inline HRESULT ISpeechRecoContext_Bookmark(ISpeechRecoContext* This,SpeechBookmarkOptions Options,VARIANT StreamPos,VARIANT BookmarkId) {
16708    return This->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId);
16709}
16710static inline HRESULT ISpeechRecoContext_SetAdaptationData(ISpeechRecoContext* This,BSTR AdaptationString) {
16711    return This->lpVtbl->SetAdaptationData(This,AdaptationString);
16712}
16713#endif
16714#endif
16715
16716#endif
16717
16718
16719#endif  /* __ISpeechRecoContext_INTERFACE_DEFINED__ */
16720
16721/*****************************************************************************
16722 * ISpeechRecoGrammar interface
16723 */
16724#ifndef __ISpeechRecoGrammar_INTERFACE_DEFINED__
16725#define __ISpeechRecoGrammar_INTERFACE_DEFINED__
16726
16727DEFINE_GUID(IID_ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09);
16728#if defined(__cplusplus) && !defined(CINTERFACE)
16729MIDL_INTERFACE("b6d6f79f-2158-4e50-b5bc-9a9ccd852a09")
16730ISpeechRecoGrammar : public IDispatch
16731{
16732    virtual HRESULT STDMETHODCALLTYPE get_Id(
16733        VARIANT *Id) = 0;
16734
16735    virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
16736        ISpeechRecoContext **RecoContext) = 0;
16737
16738    virtual HRESULT STDMETHODCALLTYPE put_State(
16739        SpeechGrammarState State) = 0;
16740
16741    virtual HRESULT STDMETHODCALLTYPE get_State(
16742        SpeechGrammarState *State) = 0;
16743
16744    virtual HRESULT STDMETHODCALLTYPE get_Rules(
16745        ISpeechGrammarRules **Rules) = 0;
16746
16747    virtual HRESULT STDMETHODCALLTYPE Reset(
16748        SpeechLanguageId NewLanguage = 0) = 0;
16749
16750    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromFile(
16751        const BSTR FileName,
16752        SpeechLoadOption LoadOption = SLOStatic) = 0;
16753
16754    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromObject(
16755        const BSTR ClassId,
16756        const BSTR GrammarName,
16757        SpeechLoadOption LoadOption = SLOStatic) = 0;
16758
16759    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromResource(
16760        LONG hModule,
16761        VARIANT ResourceName,
16762        VARIANT ResourceType,
16763        SpeechLanguageId LanguageId,
16764        SpeechLoadOption LoadOption = SLOStatic) = 0;
16765
16766    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromMemory(
16767        VARIANT GrammarData,
16768        SpeechLoadOption LoadOption = SLOStatic) = 0;
16769
16770    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromProprietaryGrammar(
16771        const BSTR ProprietaryGuid,
16772        const BSTR ProprietaryString,
16773        VARIANT ProprietaryData,
16774        SpeechLoadOption LoadOption = SLOStatic) = 0;
16775
16776    virtual HRESULT STDMETHODCALLTYPE CmdSetRuleState(
16777        const BSTR Name,
16778        SpeechRuleState State) = 0;
16779
16780    virtual HRESULT STDMETHODCALLTYPE CmdSetRuleIdState(
16781        LONG RuleId,
16782        SpeechRuleState State) = 0;
16783
16784    virtual HRESULT STDMETHODCALLTYPE DictationLoad(
16785        const BSTR TopicName = L"",
16786        SpeechLoadOption LoadOption = SLOStatic) = 0;
16787
16788    virtual HRESULT STDMETHODCALLTYPE DictationUnload(
16789        ) = 0;
16790
16791    virtual HRESULT STDMETHODCALLTYPE DictationSetState(
16792        SpeechRuleState State) = 0;
16793
16794    virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
16795        const BSTR Text,
16796        LONG TextLength,
16797        ISpeechTextSelectionInformation *Info) = 0;
16798
16799    virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
16800        ISpeechTextSelectionInformation *Info) = 0;
16801
16802    virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
16803        const BSTR Word,
16804        SpeechWordPronounceable *WordPronounceable) = 0;
16805
16806};
16807#ifdef __CRT_UUID_DECL
16808__CRT_UUID_DECL(ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09)
16809#endif
16810#else
16811typedef struct ISpeechRecoGrammarVtbl {
16812    BEGIN_INTERFACE
16813
16814    /*** IUnknown methods ***/
16815    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16816        ISpeechRecoGrammar *This,
16817        REFIID riid,
16818        void **ppvObject);
16819
16820    ULONG (STDMETHODCALLTYPE *AddRef)(
16821        ISpeechRecoGrammar *This);
16822
16823    ULONG (STDMETHODCALLTYPE *Release)(
16824        ISpeechRecoGrammar *This);
16825
16826    /*** IDispatch methods ***/
16827    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16828        ISpeechRecoGrammar *This,
16829        UINT *pctinfo);
16830
16831    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16832        ISpeechRecoGrammar *This,
16833        UINT iTInfo,
16834        LCID lcid,
16835        ITypeInfo **ppTInfo);
16836
16837    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16838        ISpeechRecoGrammar *This,
16839        REFIID riid,
16840        LPOLESTR *rgszNames,
16841        UINT cNames,
16842        LCID lcid,
16843        DISPID *rgDispId);
16844
16845    HRESULT (STDMETHODCALLTYPE *Invoke)(
16846        ISpeechRecoGrammar *This,
16847        DISPID dispIdMember,
16848        REFIID riid,
16849        LCID lcid,
16850        WORD wFlags,
16851        DISPPARAMS *pDispParams,
16852        VARIANT *pVarResult,
16853        EXCEPINFO *pExcepInfo,
16854        UINT *puArgErr);
16855
16856    /*** ISpeechRecoGrammar methods ***/
16857    HRESULT (STDMETHODCALLTYPE *get_Id)(
16858        ISpeechRecoGrammar *This,
16859        VARIANT *Id);
16860
16861    HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
16862        ISpeechRecoGrammar *This,
16863        ISpeechRecoContext **RecoContext);
16864
16865    HRESULT (STDMETHODCALLTYPE *put_State)(
16866        ISpeechRecoGrammar *This,
16867        SpeechGrammarState State);
16868
16869    HRESULT (STDMETHODCALLTYPE *get_State)(
16870        ISpeechRecoGrammar *This,
16871        SpeechGrammarState *State);
16872
16873    HRESULT (STDMETHODCALLTYPE *get_Rules)(
16874        ISpeechRecoGrammar *This,
16875        ISpeechGrammarRules **Rules);
16876
16877    HRESULT (STDMETHODCALLTYPE *Reset)(
16878        ISpeechRecoGrammar *This,
16879        SpeechLanguageId NewLanguage);
16880
16881    HRESULT (STDMETHODCALLTYPE *CmdLoadFromFile)(
16882        ISpeechRecoGrammar *This,
16883        const BSTR FileName,
16884        SpeechLoadOption LoadOption);
16885
16886    HRESULT (STDMETHODCALLTYPE *CmdLoadFromObject)(
16887        ISpeechRecoGrammar *This,
16888        const BSTR ClassId,
16889        const BSTR GrammarName,
16890        SpeechLoadOption LoadOption);
16891
16892    HRESULT (STDMETHODCALLTYPE *CmdLoadFromResource)(
16893        ISpeechRecoGrammar *This,
16894        LONG hModule,
16895        VARIANT ResourceName,
16896        VARIANT ResourceType,
16897        SpeechLanguageId LanguageId,
16898        SpeechLoadOption LoadOption);
16899
16900    HRESULT (STDMETHODCALLTYPE *CmdLoadFromMemory)(
16901        ISpeechRecoGrammar *This,
16902        VARIANT GrammarData,
16903        SpeechLoadOption LoadOption);
16904
16905    HRESULT (STDMETHODCALLTYPE *CmdLoadFromProprietaryGrammar)(
16906        ISpeechRecoGrammar *This,
16907        const BSTR ProprietaryGuid,
16908        const BSTR ProprietaryString,
16909        VARIANT ProprietaryData,
16910        SpeechLoadOption LoadOption);
16911
16912    HRESULT (STDMETHODCALLTYPE *CmdSetRuleState)(
16913        ISpeechRecoGrammar *This,
16914        const BSTR Name,
16915        SpeechRuleState State);
16916
16917    HRESULT (STDMETHODCALLTYPE *CmdSetRuleIdState)(
16918        ISpeechRecoGrammar *This,
16919        LONG RuleId,
16920        SpeechRuleState State);
16921
16922    HRESULT (STDMETHODCALLTYPE *DictationLoad)(
16923        ISpeechRecoGrammar *This,
16924        const BSTR TopicName,
16925        SpeechLoadOption LoadOption);
16926
16927    HRESULT (STDMETHODCALLTYPE *DictationUnload)(
16928        ISpeechRecoGrammar *This);
16929
16930    HRESULT (STDMETHODCALLTYPE *DictationSetState)(
16931        ISpeechRecoGrammar *This,
16932        SpeechRuleState State);
16933
16934    HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
16935        ISpeechRecoGrammar *This,
16936        const BSTR Text,
16937        LONG TextLength,
16938        ISpeechTextSelectionInformation *Info);
16939
16940    HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
16941        ISpeechRecoGrammar *This,
16942        ISpeechTextSelectionInformation *Info);
16943
16944    HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
16945        ISpeechRecoGrammar *This,
16946        const BSTR Word,
16947        SpeechWordPronounceable *WordPronounceable);
16948
16949    END_INTERFACE
16950} ISpeechRecoGrammarVtbl;
16951
16952interface ISpeechRecoGrammar {
16953    CONST_VTBL ISpeechRecoGrammarVtbl* lpVtbl;
16954};
16955
16956#ifdef COBJMACROS
16957#ifndef WIDL_C_INLINE_WRAPPERS
16958/*** IUnknown methods ***/
16959#define ISpeechRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16960#define ISpeechRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
16961#define ISpeechRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
16962/*** IDispatch methods ***/
16963#define ISpeechRecoGrammar_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16964#define ISpeechRecoGrammar_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16965#define ISpeechRecoGrammar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16966#define ISpeechRecoGrammar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16967/*** ISpeechRecoGrammar methods ***/
16968#define ISpeechRecoGrammar_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
16969#define ISpeechRecoGrammar_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
16970#define ISpeechRecoGrammar_put_State(This,State) (This)->lpVtbl->put_State(This,State)
16971#define ISpeechRecoGrammar_get_State(This,State) (This)->lpVtbl->get_State(This,State)
16972#define ISpeechRecoGrammar_get_Rules(This,Rules) (This)->lpVtbl->get_Rules(This,Rules)
16973#define ISpeechRecoGrammar_Reset(This,NewLanguage) (This)->lpVtbl->Reset(This,NewLanguage)
16974#define ISpeechRecoGrammar_CmdLoadFromFile(This,FileName,LoadOption) (This)->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption)
16975#define ISpeechRecoGrammar_CmdLoadFromObject(This,ClassId,GrammarName,LoadOption) (This)->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption)
16976#define ISpeechRecoGrammar_CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption) (This)->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption)
16977#define ISpeechRecoGrammar_CmdLoadFromMemory(This,GrammarData,LoadOption) (This)->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption)
16978#define ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption) (This)->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption)
16979#define ISpeechRecoGrammar_CmdSetRuleState(This,Name,State) (This)->lpVtbl->CmdSetRuleState(This,Name,State)
16980#define ISpeechRecoGrammar_CmdSetRuleIdState(This,RuleId,State) (This)->lpVtbl->CmdSetRuleIdState(This,RuleId,State)
16981#define ISpeechRecoGrammar_DictationLoad(This,TopicName,LoadOption) (This)->lpVtbl->DictationLoad(This,TopicName,LoadOption)
16982#define ISpeechRecoGrammar_DictationUnload(This) (This)->lpVtbl->DictationUnload(This)
16983#define ISpeechRecoGrammar_DictationSetState(This,State) (This)->lpVtbl->DictationSetState(This,State)
16984#define ISpeechRecoGrammar_SetWordSequenceData(This,Text,TextLength,Info) (This)->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info)
16985#define ISpeechRecoGrammar_SetTextSelection(This,Info) (This)->lpVtbl->SetTextSelection(This,Info)
16986#define ISpeechRecoGrammar_IsPronounceable(This,Word,WordPronounceable) (This)->lpVtbl->IsPronounceable(This,Word,WordPronounceable)
16987#else
16988/*** IUnknown methods ***/
16989static inline HRESULT ISpeechRecoGrammar_QueryInterface(ISpeechRecoGrammar* This,REFIID riid,void **ppvObject) {
16990    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16991}
16992static inline ULONG ISpeechRecoGrammar_AddRef(ISpeechRecoGrammar* This) {
16993    return This->lpVtbl->AddRef(This);
16994}
16995static inline ULONG ISpeechRecoGrammar_Release(ISpeechRecoGrammar* This) {
16996    return This->lpVtbl->Release(This);
16997}
16998/*** IDispatch methods ***/
16999static inline HRESULT ISpeechRecoGrammar_GetTypeInfoCount(ISpeechRecoGrammar* This,UINT *pctinfo) {
17000    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17001}
17002static inline HRESULT ISpeechRecoGrammar_GetTypeInfo(ISpeechRecoGrammar* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17003    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17004}
17005static inline HRESULT ISpeechRecoGrammar_GetIDsOfNames(ISpeechRecoGrammar* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17006    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17007}
17008static inline HRESULT ISpeechRecoGrammar_Invoke(ISpeechRecoGrammar* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17009    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17010}
17011/*** ISpeechRecoGrammar methods ***/
17012static inline HRESULT ISpeechRecoGrammar_get_Id(ISpeechRecoGrammar* This,VARIANT *Id) {
17013    return This->lpVtbl->get_Id(This,Id);
17014}
17015static inline HRESULT ISpeechRecoGrammar_get_RecoContext(ISpeechRecoGrammar* This,ISpeechRecoContext **RecoContext) {
17016    return This->lpVtbl->get_RecoContext(This,RecoContext);
17017}
17018static inline HRESULT ISpeechRecoGrammar_put_State(ISpeechRecoGrammar* This,SpeechGrammarState State) {
17019    return This->lpVtbl->put_State(This,State);
17020}
17021static inline HRESULT ISpeechRecoGrammar_get_State(ISpeechRecoGrammar* This,SpeechGrammarState *State) {
17022    return This->lpVtbl->get_State(This,State);
17023}
17024static inline HRESULT ISpeechRecoGrammar_get_Rules(ISpeechRecoGrammar* This,ISpeechGrammarRules **Rules) {
17025    return This->lpVtbl->get_Rules(This,Rules);
17026}
17027static inline HRESULT ISpeechRecoGrammar_Reset(ISpeechRecoGrammar* This,SpeechLanguageId NewLanguage) {
17028    return This->lpVtbl->Reset(This,NewLanguage);
17029}
17030static inline HRESULT ISpeechRecoGrammar_CmdLoadFromFile(ISpeechRecoGrammar* This,const BSTR FileName,SpeechLoadOption LoadOption) {
17031    return This->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption);
17032}
17033static inline HRESULT ISpeechRecoGrammar_CmdLoadFromObject(ISpeechRecoGrammar* This,const BSTR ClassId,const BSTR GrammarName,SpeechLoadOption LoadOption) {
17034    return This->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption);
17035}
17036static inline HRESULT ISpeechRecoGrammar_CmdLoadFromResource(ISpeechRecoGrammar* This,LONG hModule,VARIANT ResourceName,VARIANT ResourceType,SpeechLanguageId LanguageId,SpeechLoadOption LoadOption) {
17037    return This->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption);
17038}
17039static inline HRESULT ISpeechRecoGrammar_CmdLoadFromMemory(ISpeechRecoGrammar* This,VARIANT GrammarData,SpeechLoadOption LoadOption) {
17040    return This->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption);
17041}
17042static inline HRESULT ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(ISpeechRecoGrammar* This,const BSTR ProprietaryGuid,const BSTR ProprietaryString,VARIANT ProprietaryData,SpeechLoadOption LoadOption) {
17043    return This->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption);
17044}
17045static inline HRESULT ISpeechRecoGrammar_CmdSetRuleState(ISpeechRecoGrammar* This,const BSTR Name,SpeechRuleState State) {
17046    return This->lpVtbl->CmdSetRuleState(This,Name,State);
17047}
17048static inline HRESULT ISpeechRecoGrammar_CmdSetRuleIdState(ISpeechRecoGrammar* This,LONG RuleId,SpeechRuleState State) {
17049    return This->lpVtbl->CmdSetRuleIdState(This,RuleId,State);
17050}
17051static inline HRESULT ISpeechRecoGrammar_DictationLoad(ISpeechRecoGrammar* This,const BSTR TopicName,SpeechLoadOption LoadOption) {
17052    return This->lpVtbl->DictationLoad(This,TopicName,LoadOption);
17053}
17054static inline HRESULT ISpeechRecoGrammar_DictationUnload(ISpeechRecoGrammar* This) {
17055    return This->lpVtbl->DictationUnload(This);
17056}
17057static inline HRESULT ISpeechRecoGrammar_DictationSetState(ISpeechRecoGrammar* This,SpeechRuleState State) {
17058    return This->lpVtbl->DictationSetState(This,State);
17059}
17060static inline HRESULT ISpeechRecoGrammar_SetWordSequenceData(ISpeechRecoGrammar* This,const BSTR Text,LONG TextLength,ISpeechTextSelectionInformation *Info) {
17061    return This->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info);
17062}
17063static inline HRESULT ISpeechRecoGrammar_SetTextSelection(ISpeechRecoGrammar* This,ISpeechTextSelectionInformation *Info) {
17064    return This->lpVtbl->SetTextSelection(This,Info);
17065}
17066static inline HRESULT ISpeechRecoGrammar_IsPronounceable(ISpeechRecoGrammar* This,const BSTR Word,SpeechWordPronounceable *WordPronounceable) {
17067    return This->lpVtbl->IsPronounceable(This,Word,WordPronounceable);
17068}
17069#endif
17070#endif
17071
17072#endif
17073
17074
17075#endif  /* __ISpeechRecoGrammar_INTERFACE_DEFINED__ */
17076
17077/*****************************************************************************
17078 * _ISpeechRecoContextEvents dispinterface
17079 */
17080#ifndef ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
17081#define ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
17082
17083DEFINE_GUID(DIID__ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d);
17084#if defined(__cplusplus) && !defined(CINTERFACE)
17085MIDL_INTERFACE("7b8fcb42-0e9d-4f00-a048-7b04d6179d3d")
17086_ISpeechRecoContextEvents : public IDispatch
17087{
17088};
17089#ifdef __CRT_UUID_DECL
17090__CRT_UUID_DECL(_ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d)
17091#endif
17092#else
17093typedef struct _ISpeechRecoContextEventsVtbl {
17094    BEGIN_INTERFACE
17095
17096    /*** IUnknown methods ***/
17097    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17098        _ISpeechRecoContextEvents *This,
17099        REFIID riid,
17100        void **ppvObject);
17101
17102    ULONG (STDMETHODCALLTYPE *AddRef)(
17103        _ISpeechRecoContextEvents *This);
17104
17105    ULONG (STDMETHODCALLTYPE *Release)(
17106        _ISpeechRecoContextEvents *This);
17107
17108    /*** IDispatch methods ***/
17109    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17110        _ISpeechRecoContextEvents *This,
17111        UINT *pctinfo);
17112
17113    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17114        _ISpeechRecoContextEvents *This,
17115        UINT iTInfo,
17116        LCID lcid,
17117        ITypeInfo **ppTInfo);
17118
17119    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17120        _ISpeechRecoContextEvents *This,
17121        REFIID riid,
17122        LPOLESTR *rgszNames,
17123        UINT cNames,
17124        LCID lcid,
17125        DISPID *rgDispId);
17126
17127    HRESULT (STDMETHODCALLTYPE *Invoke)(
17128        _ISpeechRecoContextEvents *This,
17129        DISPID dispIdMember,
17130        REFIID riid,
17131        LCID lcid,
17132        WORD wFlags,
17133        DISPPARAMS *pDispParams,
17134        VARIANT *pVarResult,
17135        EXCEPINFO *pExcepInfo,
17136        UINT *puArgErr);
17137
17138    END_INTERFACE
17139} _ISpeechRecoContextEventsVtbl;
17140
17141interface _ISpeechRecoContextEvents {
17142    CONST_VTBL _ISpeechRecoContextEventsVtbl* lpVtbl;
17143};
17144
17145#ifdef COBJMACROS
17146#ifndef WIDL_C_INLINE_WRAPPERS
17147/*** IUnknown methods ***/
17148#define _ISpeechRecoContextEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17149#define _ISpeechRecoContextEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
17150#define _ISpeechRecoContextEvents_Release(This) (This)->lpVtbl->Release(This)
17151/*** IDispatch methods ***/
17152#define _ISpeechRecoContextEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17153#define _ISpeechRecoContextEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17154#define _ISpeechRecoContextEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17155#define _ISpeechRecoContextEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17156#else
17157/*** IUnknown methods ***/
17158static inline HRESULT _ISpeechRecoContextEvents_QueryInterface(_ISpeechRecoContextEvents* This,REFIID riid,void **ppvObject) {
17159    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17160}
17161static inline ULONG _ISpeechRecoContextEvents_AddRef(_ISpeechRecoContextEvents* This) {
17162    return This->lpVtbl->AddRef(This);
17163}
17164static inline ULONG _ISpeechRecoContextEvents_Release(_ISpeechRecoContextEvents* This) {
17165    return This->lpVtbl->Release(This);
17166}
17167/*** IDispatch methods ***/
17168static inline HRESULT _ISpeechRecoContextEvents_GetTypeInfoCount(_ISpeechRecoContextEvents* This,UINT *pctinfo) {
17169    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17170}
17171static inline HRESULT _ISpeechRecoContextEvents_GetTypeInfo(_ISpeechRecoContextEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17172    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17173}
17174static inline HRESULT _ISpeechRecoContextEvents_GetIDsOfNames(_ISpeechRecoContextEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17175    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17176}
17177static inline HRESULT _ISpeechRecoContextEvents_Invoke(_ISpeechRecoContextEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17178    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17179}
17180#endif
17181#endif
17182
17183#endif
17184
17185#endif  /* ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__ */
17186
17187/*****************************************************************************
17188 * ISpeechGrammarRule interface
17189 */
17190#ifndef __ISpeechGrammarRule_INTERFACE_DEFINED__
17191#define __ISpeechGrammarRule_INTERFACE_DEFINED__
17192
17193DEFINE_GUID(IID_ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc);
17194#if defined(__cplusplus) && !defined(CINTERFACE)
17195MIDL_INTERFACE("afe719cf-5dd1-44f2-999c-7a399f1cfccc")
17196ISpeechGrammarRule : public IDispatch
17197{
17198    virtual HRESULT STDMETHODCALLTYPE get_Attributes(
17199        SpeechRuleAttributes *Attributes) = 0;
17200
17201    virtual HRESULT STDMETHODCALLTYPE get_InitialState(
17202        ISpeechGrammarRuleState **State) = 0;
17203
17204    virtual HRESULT STDMETHODCALLTYPE get_Name(
17205        BSTR *Name) = 0;
17206
17207    virtual HRESULT STDMETHODCALLTYPE get_Id(
17208        LONG *Id) = 0;
17209
17210    virtual HRESULT STDMETHODCALLTYPE Clear(
17211        ) = 0;
17212
17213    virtual HRESULT STDMETHODCALLTYPE AddResource(
17214        const BSTR ResourceName,
17215        const BSTR ResourceValue) = 0;
17216
17217    virtual HRESULT STDMETHODCALLTYPE AddState(
17218        ISpeechGrammarRuleState **State) = 0;
17219
17220};
17221#ifdef __CRT_UUID_DECL
17222__CRT_UUID_DECL(ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc)
17223#endif
17224#else
17225typedef struct ISpeechGrammarRuleVtbl {
17226    BEGIN_INTERFACE
17227
17228    /*** IUnknown methods ***/
17229    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17230        ISpeechGrammarRule *This,
17231        REFIID riid,
17232        void **ppvObject);
17233
17234    ULONG (STDMETHODCALLTYPE *AddRef)(
17235        ISpeechGrammarRule *This);
17236
17237    ULONG (STDMETHODCALLTYPE *Release)(
17238        ISpeechGrammarRule *This);
17239
17240    /*** IDispatch methods ***/
17241    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17242        ISpeechGrammarRule *This,
17243        UINT *pctinfo);
17244
17245    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17246        ISpeechGrammarRule *This,
17247        UINT iTInfo,
17248        LCID lcid,
17249        ITypeInfo **ppTInfo);
17250
17251    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17252        ISpeechGrammarRule *This,
17253        REFIID riid,
17254        LPOLESTR *rgszNames,
17255        UINT cNames,
17256        LCID lcid,
17257        DISPID *rgDispId);
17258
17259    HRESULT (STDMETHODCALLTYPE *Invoke)(
17260        ISpeechGrammarRule *This,
17261        DISPID dispIdMember,
17262        REFIID riid,
17263        LCID lcid,
17264        WORD wFlags,
17265        DISPPARAMS *pDispParams,
17266        VARIANT *pVarResult,
17267        EXCEPINFO *pExcepInfo,
17268        UINT *puArgErr);
17269
17270    /*** ISpeechGrammarRule methods ***/
17271    HRESULT (STDMETHODCALLTYPE *get_Attributes)(
17272        ISpeechGrammarRule *This,
17273        SpeechRuleAttributes *Attributes);
17274
17275    HRESULT (STDMETHODCALLTYPE *get_InitialState)(
17276        ISpeechGrammarRule *This,
17277        ISpeechGrammarRuleState **State);
17278
17279    HRESULT (STDMETHODCALLTYPE *get_Name)(
17280        ISpeechGrammarRule *This,
17281        BSTR *Name);
17282
17283    HRESULT (STDMETHODCALLTYPE *get_Id)(
17284        ISpeechGrammarRule *This,
17285        LONG *Id);
17286
17287    HRESULT (STDMETHODCALLTYPE *Clear)(
17288        ISpeechGrammarRule *This);
17289
17290    HRESULT (STDMETHODCALLTYPE *AddResource)(
17291        ISpeechGrammarRule *This,
17292        const BSTR ResourceName,
17293        const BSTR ResourceValue);
17294
17295    HRESULT (STDMETHODCALLTYPE *AddState)(
17296        ISpeechGrammarRule *This,
17297        ISpeechGrammarRuleState **State);
17298
17299    END_INTERFACE
17300} ISpeechGrammarRuleVtbl;
17301
17302interface ISpeechGrammarRule {
17303    CONST_VTBL ISpeechGrammarRuleVtbl* lpVtbl;
17304};
17305
17306#ifdef COBJMACROS
17307#ifndef WIDL_C_INLINE_WRAPPERS
17308/*** IUnknown methods ***/
17309#define ISpeechGrammarRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17310#define ISpeechGrammarRule_AddRef(This) (This)->lpVtbl->AddRef(This)
17311#define ISpeechGrammarRule_Release(This) (This)->lpVtbl->Release(This)
17312/*** IDispatch methods ***/
17313#define ISpeechGrammarRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17314#define ISpeechGrammarRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17315#define ISpeechGrammarRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17316#define ISpeechGrammarRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17317/*** ISpeechGrammarRule methods ***/
17318#define ISpeechGrammarRule_get_Attributes(This,Attributes) (This)->lpVtbl->get_Attributes(This,Attributes)
17319#define ISpeechGrammarRule_get_InitialState(This,State) (This)->lpVtbl->get_InitialState(This,State)
17320#define ISpeechGrammarRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
17321#define ISpeechGrammarRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
17322#define ISpeechGrammarRule_Clear(This) (This)->lpVtbl->Clear(This)
17323#define ISpeechGrammarRule_AddResource(This,ResourceName,ResourceValue) (This)->lpVtbl->AddResource(This,ResourceName,ResourceValue)
17324#define ISpeechGrammarRule_AddState(This,State) (This)->lpVtbl->AddState(This,State)
17325#else
17326/*** IUnknown methods ***/
17327static inline HRESULT ISpeechGrammarRule_QueryInterface(ISpeechGrammarRule* This,REFIID riid,void **ppvObject) {
17328    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17329}
17330static inline ULONG ISpeechGrammarRule_AddRef(ISpeechGrammarRule* This) {
17331    return This->lpVtbl->AddRef(This);
17332}
17333static inline ULONG ISpeechGrammarRule_Release(ISpeechGrammarRule* This) {
17334    return This->lpVtbl->Release(This);
17335}
17336/*** IDispatch methods ***/
17337static inline HRESULT ISpeechGrammarRule_GetTypeInfoCount(ISpeechGrammarRule* This,UINT *pctinfo) {
17338    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17339}
17340static inline HRESULT ISpeechGrammarRule_GetTypeInfo(ISpeechGrammarRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17341    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17342}
17343static inline HRESULT ISpeechGrammarRule_GetIDsOfNames(ISpeechGrammarRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17344    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17345}
17346static inline HRESULT ISpeechGrammarRule_Invoke(ISpeechGrammarRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17347    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17348}
17349/*** ISpeechGrammarRule methods ***/
17350static inline HRESULT ISpeechGrammarRule_get_Attributes(ISpeechGrammarRule* This,SpeechRuleAttributes *Attributes) {
17351    return This->lpVtbl->get_Attributes(This,Attributes);
17352}
17353static inline HRESULT ISpeechGrammarRule_get_InitialState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
17354    return This->lpVtbl->get_InitialState(This,State);
17355}
17356static inline HRESULT ISpeechGrammarRule_get_Name(ISpeechGrammarRule* This,BSTR *Name) {
17357    return This->lpVtbl->get_Name(This,Name);
17358}
17359static inline HRESULT ISpeechGrammarRule_get_Id(ISpeechGrammarRule* This,LONG *Id) {
17360    return This->lpVtbl->get_Id(This,Id);
17361}
17362static inline HRESULT ISpeechGrammarRule_Clear(ISpeechGrammarRule* This) {
17363    return This->lpVtbl->Clear(This);
17364}
17365static inline HRESULT ISpeechGrammarRule_AddResource(ISpeechGrammarRule* This,const BSTR ResourceName,const BSTR ResourceValue) {
17366    return This->lpVtbl->AddResource(This,ResourceName,ResourceValue);
17367}
17368static inline HRESULT ISpeechGrammarRule_AddState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
17369    return This->lpVtbl->AddState(This,State);
17370}
17371#endif
17372#endif
17373
17374#endif
17375
17376
17377#endif  /* __ISpeechGrammarRule_INTERFACE_DEFINED__ */
17378
17379/*****************************************************************************
17380 * ISpeechGrammarRules interface
17381 */
17382#ifndef __ISpeechGrammarRules_INTERFACE_DEFINED__
17383#define __ISpeechGrammarRules_INTERFACE_DEFINED__
17384
17385DEFINE_GUID(IID_ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1);
17386#if defined(__cplusplus) && !defined(CINTERFACE)
17387MIDL_INTERFACE("6ffa3b44-fc2d-40d1-8afc-32911c7f1ad1")
17388ISpeechGrammarRules : public IDispatch
17389{
17390    virtual HRESULT STDMETHODCALLTYPE get_Count(
17391        LONG *Count) = 0;
17392
17393    virtual HRESULT STDMETHODCALLTYPE FindRule(
17394        VARIANT RuleNameOrId,
17395        ISpeechGrammarRule **Rule) = 0;
17396
17397    virtual HRESULT STDMETHODCALLTYPE Item(
17398        LONG Index,
17399        ISpeechGrammarRule **Rule) = 0;
17400
17401    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
17402        IUnknown **EnumVARIANT) = 0;
17403
17404    virtual HRESULT STDMETHODCALLTYPE get_Dynamic(
17405        VARIANT_BOOL *Dynamic) = 0;
17406
17407    virtual HRESULT STDMETHODCALLTYPE Add(
17408        BSTR RuleName,
17409        SpeechRuleAttributes Attributes,
17410        LONG RuleId,
17411        ISpeechGrammarRule **Rule) = 0;
17412
17413    virtual HRESULT STDMETHODCALLTYPE Commit(
17414        ) = 0;
17415
17416    virtual HRESULT STDMETHODCALLTYPE CommitAndSave(
17417        BSTR *ErrorText,
17418        VARIANT *SaveStream) = 0;
17419
17420};
17421#ifdef __CRT_UUID_DECL
17422__CRT_UUID_DECL(ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1)
17423#endif
17424#else
17425typedef struct ISpeechGrammarRulesVtbl {
17426    BEGIN_INTERFACE
17427
17428    /*** IUnknown methods ***/
17429    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17430        ISpeechGrammarRules *This,
17431        REFIID riid,
17432        void **ppvObject);
17433
17434    ULONG (STDMETHODCALLTYPE *AddRef)(
17435        ISpeechGrammarRules *This);
17436
17437    ULONG (STDMETHODCALLTYPE *Release)(
17438        ISpeechGrammarRules *This);
17439
17440    /*** IDispatch methods ***/
17441    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17442        ISpeechGrammarRules *This,
17443        UINT *pctinfo);
17444
17445    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17446        ISpeechGrammarRules *This,
17447        UINT iTInfo,
17448        LCID lcid,
17449        ITypeInfo **ppTInfo);
17450
17451    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17452        ISpeechGrammarRules *This,
17453        REFIID riid,
17454        LPOLESTR *rgszNames,
17455        UINT cNames,
17456        LCID lcid,
17457        DISPID *rgDispId);
17458
17459    HRESULT (STDMETHODCALLTYPE *Invoke)(
17460        ISpeechGrammarRules *This,
17461        DISPID dispIdMember,
17462        REFIID riid,
17463        LCID lcid,
17464        WORD wFlags,
17465        DISPPARAMS *pDispParams,
17466        VARIANT *pVarResult,
17467        EXCEPINFO *pExcepInfo,
17468        UINT *puArgErr);
17469
17470    /*** ISpeechGrammarRules methods ***/
17471    HRESULT (STDMETHODCALLTYPE *get_Count)(
17472        ISpeechGrammarRules *This,
17473        LONG *Count);
17474
17475    HRESULT (STDMETHODCALLTYPE *FindRule)(
17476        ISpeechGrammarRules *This,
17477        VARIANT RuleNameOrId,
17478        ISpeechGrammarRule **Rule);
17479
17480    HRESULT (STDMETHODCALLTYPE *Item)(
17481        ISpeechGrammarRules *This,
17482        LONG Index,
17483        ISpeechGrammarRule **Rule);
17484
17485    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
17486        ISpeechGrammarRules *This,
17487        IUnknown **EnumVARIANT);
17488
17489    HRESULT (STDMETHODCALLTYPE *get_Dynamic)(
17490        ISpeechGrammarRules *This,
17491        VARIANT_BOOL *Dynamic);
17492
17493    HRESULT (STDMETHODCALLTYPE *Add)(
17494        ISpeechGrammarRules *This,
17495        BSTR RuleName,
17496        SpeechRuleAttributes Attributes,
17497        LONG RuleId,
17498        ISpeechGrammarRule **Rule);
17499
17500    HRESULT (STDMETHODCALLTYPE *Commit)(
17501        ISpeechGrammarRules *This);
17502
17503    HRESULT (STDMETHODCALLTYPE *CommitAndSave)(
17504        ISpeechGrammarRules *This,
17505        BSTR *ErrorText,
17506        VARIANT *SaveStream);
17507
17508    END_INTERFACE
17509} ISpeechGrammarRulesVtbl;
17510
17511interface ISpeechGrammarRules {
17512    CONST_VTBL ISpeechGrammarRulesVtbl* lpVtbl;
17513};
17514
17515#ifdef COBJMACROS
17516#ifndef WIDL_C_INLINE_WRAPPERS
17517/*** IUnknown methods ***/
17518#define ISpeechGrammarRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17519#define ISpeechGrammarRules_AddRef(This) (This)->lpVtbl->AddRef(This)
17520#define ISpeechGrammarRules_Release(This) (This)->lpVtbl->Release(This)
17521/*** IDispatch methods ***/
17522#define ISpeechGrammarRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17523#define ISpeechGrammarRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17524#define ISpeechGrammarRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17525#define ISpeechGrammarRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17526/*** ISpeechGrammarRules methods ***/
17527#define ISpeechGrammarRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
17528#define ISpeechGrammarRules_FindRule(This,RuleNameOrId,Rule) (This)->lpVtbl->FindRule(This,RuleNameOrId,Rule)
17529#define ISpeechGrammarRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
17530#define ISpeechGrammarRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
17531#define ISpeechGrammarRules_get_Dynamic(This,Dynamic) (This)->lpVtbl->get_Dynamic(This,Dynamic)
17532#define ISpeechGrammarRules_Add(This,RuleName,Attributes,RuleId,Rule) (This)->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule)
17533#define ISpeechGrammarRules_Commit(This) (This)->lpVtbl->Commit(This)
17534#define ISpeechGrammarRules_CommitAndSave(This,ErrorText,SaveStream) (This)->lpVtbl->CommitAndSave(This,ErrorText,SaveStream)
17535#else
17536/*** IUnknown methods ***/
17537static inline HRESULT ISpeechGrammarRules_QueryInterface(ISpeechGrammarRules* This,REFIID riid,void **ppvObject) {
17538    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17539}
17540static inline ULONG ISpeechGrammarRules_AddRef(ISpeechGrammarRules* This) {
17541    return This->lpVtbl->AddRef(This);
17542}
17543static inline ULONG ISpeechGrammarRules_Release(ISpeechGrammarRules* This) {
17544    return This->lpVtbl->Release(This);
17545}
17546/*** IDispatch methods ***/
17547static inline HRESULT ISpeechGrammarRules_GetTypeInfoCount(ISpeechGrammarRules* This,UINT *pctinfo) {
17548    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17549}
17550static inline HRESULT ISpeechGrammarRules_GetTypeInfo(ISpeechGrammarRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17551    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17552}
17553static inline HRESULT ISpeechGrammarRules_GetIDsOfNames(ISpeechGrammarRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17554    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17555}
17556static inline HRESULT ISpeechGrammarRules_Invoke(ISpeechGrammarRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17557    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17558}
17559/*** ISpeechGrammarRules methods ***/
17560static inline HRESULT ISpeechGrammarRules_get_Count(ISpeechGrammarRules* This,LONG *Count) {
17561    return This->lpVtbl->get_Count(This,Count);
17562}
17563static inline HRESULT ISpeechGrammarRules_FindRule(ISpeechGrammarRules* This,VARIANT RuleNameOrId,ISpeechGrammarRule **Rule) {
17564    return This->lpVtbl->FindRule(This,RuleNameOrId,Rule);
17565}
17566static inline HRESULT ISpeechGrammarRules_Item(ISpeechGrammarRules* This,LONG Index,ISpeechGrammarRule **Rule) {
17567    return This->lpVtbl->Item(This,Index,Rule);
17568}
17569static inline HRESULT ISpeechGrammarRules_get__NewEnum(ISpeechGrammarRules* This,IUnknown **EnumVARIANT) {
17570    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
17571}
17572static inline HRESULT ISpeechGrammarRules_get_Dynamic(ISpeechGrammarRules* This,VARIANT_BOOL *Dynamic) {
17573    return This->lpVtbl->get_Dynamic(This,Dynamic);
17574}
17575static inline HRESULT ISpeechGrammarRules_Add(ISpeechGrammarRules* This,BSTR RuleName,SpeechRuleAttributes Attributes,LONG RuleId,ISpeechGrammarRule **Rule) {
17576    return This->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule);
17577}
17578static inline HRESULT ISpeechGrammarRules_Commit(ISpeechGrammarRules* This) {
17579    return This->lpVtbl->Commit(This);
17580}
17581static inline HRESULT ISpeechGrammarRules_CommitAndSave(ISpeechGrammarRules* This,BSTR *ErrorText,VARIANT *SaveStream) {
17582    return This->lpVtbl->CommitAndSave(This,ErrorText,SaveStream);
17583}
17584#endif
17585#endif
17586
17587#endif
17588
17589
17590#endif  /* __ISpeechGrammarRules_INTERFACE_DEFINED__ */
17591
17592/*****************************************************************************
17593 * ISpeechGrammarRuleState interface
17594 */
17595#ifndef __ISpeechGrammarRuleState_INTERFACE_DEFINED__
17596#define __ISpeechGrammarRuleState_INTERFACE_DEFINED__
17597
17598DEFINE_GUID(IID_ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda);
17599#if defined(__cplusplus) && !defined(CINTERFACE)
17600MIDL_INTERFACE("d4286f2c-ee67-45ae-b928-28d695362eda")
17601ISpeechGrammarRuleState : public IDispatch
17602{
17603    virtual HRESULT STDMETHODCALLTYPE get_Rule(
17604        ISpeechGrammarRule **Rule) = 0;
17605
17606    virtual HRESULT STDMETHODCALLTYPE get_Transitions(
17607        ISpeechGrammarRuleStateTransitions **Transitions) = 0;
17608
17609    virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
17610        ISpeechGrammarRuleState *DestState,
17611        const BSTR Words,
17612        const BSTR Separators = L" ",
17613        SpeechGrammarWordType Type = SGLexical,
17614        const BSTR PropertyName = L"",
17615        LONG PropertyId = 0,
17616        VARIANT *PropertyValue = 0,
17617        float Weight = 1) = 0;
17618
17619    virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
17620        ISpeechGrammarRuleState *DestinationState,
17621        ISpeechGrammarRule *Rule,
17622        const BSTR PropertyName = L"",
17623        LONG PropertyId = 0,
17624        VARIANT *PropertyValue = 0,
17625        float Weight = 1) = 0;
17626
17627    virtual HRESULT STDMETHODCALLTYPE AddSpecialTransition(
17628        ISpeechGrammarRuleState *DestinationState,
17629        SpeechSpecialTransitionType Type,
17630        const BSTR PropertyName = L"",
17631        LONG PropertyId = 0,
17632        VARIANT *PropertyValue = 0,
17633        float Weight = 1) = 0;
17634
17635};
17636#ifdef __CRT_UUID_DECL
17637__CRT_UUID_DECL(ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda)
17638#endif
17639#else
17640typedef struct ISpeechGrammarRuleStateVtbl {
17641    BEGIN_INTERFACE
17642
17643    /*** IUnknown methods ***/
17644    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17645        ISpeechGrammarRuleState *This,
17646        REFIID riid,
17647        void **ppvObject);
17648
17649    ULONG (STDMETHODCALLTYPE *AddRef)(
17650        ISpeechGrammarRuleState *This);
17651
17652    ULONG (STDMETHODCALLTYPE *Release)(
17653        ISpeechGrammarRuleState *This);
17654
17655    /*** IDispatch methods ***/
17656    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17657        ISpeechGrammarRuleState *This,
17658        UINT *pctinfo);
17659
17660    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17661        ISpeechGrammarRuleState *This,
17662        UINT iTInfo,
17663        LCID lcid,
17664        ITypeInfo **ppTInfo);
17665
17666    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17667        ISpeechGrammarRuleState *This,
17668        REFIID riid,
17669        LPOLESTR *rgszNames,
17670        UINT cNames,
17671        LCID lcid,
17672        DISPID *rgDispId);
17673
17674    HRESULT (STDMETHODCALLTYPE *Invoke)(
17675        ISpeechGrammarRuleState *This,
17676        DISPID dispIdMember,
17677        REFIID riid,
17678        LCID lcid,
17679        WORD wFlags,
17680        DISPPARAMS *pDispParams,
17681        VARIANT *pVarResult,
17682        EXCEPINFO *pExcepInfo,
17683        UINT *puArgErr);
17684
17685    /*** ISpeechGrammarRuleState methods ***/
17686    HRESULT (STDMETHODCALLTYPE *get_Rule)(
17687        ISpeechGrammarRuleState *This,
17688        ISpeechGrammarRule **Rule);
17689
17690    HRESULT (STDMETHODCALLTYPE *get_Transitions)(
17691        ISpeechGrammarRuleState *This,
17692        ISpeechGrammarRuleStateTransitions **Transitions);
17693
17694    HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
17695        ISpeechGrammarRuleState *This,
17696        ISpeechGrammarRuleState *DestState,
17697        const BSTR Words,
17698        const BSTR Separators,
17699        SpeechGrammarWordType Type,
17700        const BSTR PropertyName,
17701        LONG PropertyId,
17702        VARIANT *PropertyValue,
17703        float Weight);
17704
17705    HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
17706        ISpeechGrammarRuleState *This,
17707        ISpeechGrammarRuleState *DestinationState,
17708        ISpeechGrammarRule *Rule,
17709        const BSTR PropertyName,
17710        LONG PropertyId,
17711        VARIANT *PropertyValue,
17712        float Weight);
17713
17714    HRESULT (STDMETHODCALLTYPE *AddSpecialTransition)(
17715        ISpeechGrammarRuleState *This,
17716        ISpeechGrammarRuleState *DestinationState,
17717        SpeechSpecialTransitionType Type,
17718        const BSTR PropertyName,
17719        LONG PropertyId,
17720        VARIANT *PropertyValue,
17721        float Weight);
17722
17723    END_INTERFACE
17724} ISpeechGrammarRuleStateVtbl;
17725
17726interface ISpeechGrammarRuleState {
17727    CONST_VTBL ISpeechGrammarRuleStateVtbl* lpVtbl;
17728};
17729
17730#ifdef COBJMACROS
17731#ifndef WIDL_C_INLINE_WRAPPERS
17732/*** IUnknown methods ***/
17733#define ISpeechGrammarRuleState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17734#define ISpeechGrammarRuleState_AddRef(This) (This)->lpVtbl->AddRef(This)
17735#define ISpeechGrammarRuleState_Release(This) (This)->lpVtbl->Release(This)
17736/*** IDispatch methods ***/
17737#define ISpeechGrammarRuleState_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17738#define ISpeechGrammarRuleState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17739#define ISpeechGrammarRuleState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17740#define ISpeechGrammarRuleState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17741/*** ISpeechGrammarRuleState methods ***/
17742#define ISpeechGrammarRuleState_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
17743#define ISpeechGrammarRuleState_get_Transitions(This,Transitions) (This)->lpVtbl->get_Transitions(This,Transitions)
17744#define ISpeechGrammarRuleState_AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight)
17745#define ISpeechGrammarRuleState_AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight)
17746#define ISpeechGrammarRuleState_AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight)
17747#else
17748/*** IUnknown methods ***/
17749static inline HRESULT ISpeechGrammarRuleState_QueryInterface(ISpeechGrammarRuleState* This,REFIID riid,void **ppvObject) {
17750    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17751}
17752static inline ULONG ISpeechGrammarRuleState_AddRef(ISpeechGrammarRuleState* This) {
17753    return This->lpVtbl->AddRef(This);
17754}
17755static inline ULONG ISpeechGrammarRuleState_Release(ISpeechGrammarRuleState* This) {
17756    return This->lpVtbl->Release(This);
17757}
17758/*** IDispatch methods ***/
17759static inline HRESULT ISpeechGrammarRuleState_GetTypeInfoCount(ISpeechGrammarRuleState* This,UINT *pctinfo) {
17760    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17761}
17762static inline HRESULT ISpeechGrammarRuleState_GetTypeInfo(ISpeechGrammarRuleState* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17763    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17764}
17765static inline HRESULT ISpeechGrammarRuleState_GetIDsOfNames(ISpeechGrammarRuleState* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17766    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17767}
17768static inline HRESULT ISpeechGrammarRuleState_Invoke(ISpeechGrammarRuleState* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17769    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17770}
17771/*** ISpeechGrammarRuleState methods ***/
17772static inline HRESULT ISpeechGrammarRuleState_get_Rule(ISpeechGrammarRuleState* This,ISpeechGrammarRule **Rule) {
17773    return This->lpVtbl->get_Rule(This,Rule);
17774}
17775static inline HRESULT ISpeechGrammarRuleState_get_Transitions(ISpeechGrammarRuleState* This,ISpeechGrammarRuleStateTransitions **Transitions) {
17776    return This->lpVtbl->get_Transitions(This,Transitions);
17777}
17778static inline HRESULT ISpeechGrammarRuleState_AddWordTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestState,const BSTR Words,const BSTR Separators,SpeechGrammarWordType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
17779    return This->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight);
17780}
17781static inline HRESULT ISpeechGrammarRuleState_AddRuleTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,ISpeechGrammarRule *Rule,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
17782    return This->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight);
17783}
17784static inline HRESULT ISpeechGrammarRuleState_AddSpecialTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,SpeechSpecialTransitionType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
17785    return This->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight);
17786}
17787#endif
17788#endif
17789
17790#endif
17791
17792
17793#endif  /* __ISpeechGrammarRuleState_INTERFACE_DEFINED__ */
17794
17795/*****************************************************************************
17796 * ISpeechGrammarRuleStateTransitions interface
17797 */
17798#ifndef __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
17799#define __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
17800
17801DEFINE_GUID(IID_ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63);
17802#if defined(__cplusplus) && !defined(CINTERFACE)
17803MIDL_INTERFACE("eabce657-75bc-44a2-aa7f-c56476742963")
17804ISpeechGrammarRuleStateTransitions : public IDispatch
17805{
17806    virtual HRESULT STDMETHODCALLTYPE get_Count(
17807        LONG *Count) = 0;
17808
17809    virtual HRESULT STDMETHODCALLTYPE Item(
17810        LONG Index,
17811        ISpeechGrammarRuleStateTransition **Transition) = 0;
17812
17813    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
17814        IUnknown **EnumVARIANT) = 0;
17815
17816};
17817#ifdef __CRT_UUID_DECL
17818__CRT_UUID_DECL(ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63)
17819#endif
17820#else
17821typedef struct ISpeechGrammarRuleStateTransitionsVtbl {
17822    BEGIN_INTERFACE
17823
17824    /*** IUnknown methods ***/
17825    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17826        ISpeechGrammarRuleStateTransitions *This,
17827        REFIID riid,
17828        void **ppvObject);
17829
17830    ULONG (STDMETHODCALLTYPE *AddRef)(
17831        ISpeechGrammarRuleStateTransitions *This);
17832
17833    ULONG (STDMETHODCALLTYPE *Release)(
17834        ISpeechGrammarRuleStateTransitions *This);
17835
17836    /*** IDispatch methods ***/
17837    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17838        ISpeechGrammarRuleStateTransitions *This,
17839        UINT *pctinfo);
17840
17841    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17842        ISpeechGrammarRuleStateTransitions *This,
17843        UINT iTInfo,
17844        LCID lcid,
17845        ITypeInfo **ppTInfo);
17846
17847    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17848        ISpeechGrammarRuleStateTransitions *This,
17849        REFIID riid,
17850        LPOLESTR *rgszNames,
17851        UINT cNames,
17852        LCID lcid,
17853        DISPID *rgDispId);
17854
17855    HRESULT (STDMETHODCALLTYPE *Invoke)(
17856        ISpeechGrammarRuleStateTransitions *This,
17857        DISPID dispIdMember,
17858        REFIID riid,
17859        LCID lcid,
17860        WORD wFlags,
17861        DISPPARAMS *pDispParams,
17862        VARIANT *pVarResult,
17863        EXCEPINFO *pExcepInfo,
17864        UINT *puArgErr);
17865
17866    /*** ISpeechGrammarRuleStateTransitions methods ***/
17867    HRESULT (STDMETHODCALLTYPE *get_Count)(
17868        ISpeechGrammarRuleStateTransitions *This,
17869        LONG *Count);
17870
17871    HRESULT (STDMETHODCALLTYPE *Item)(
17872        ISpeechGrammarRuleStateTransitions *This,
17873        LONG Index,
17874        ISpeechGrammarRuleStateTransition **Transition);
17875
17876    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
17877        ISpeechGrammarRuleStateTransitions *This,
17878        IUnknown **EnumVARIANT);
17879
17880    END_INTERFACE
17881} ISpeechGrammarRuleStateTransitionsVtbl;
17882
17883interface ISpeechGrammarRuleStateTransitions {
17884    CONST_VTBL ISpeechGrammarRuleStateTransitionsVtbl* lpVtbl;
17885};
17886
17887#ifdef COBJMACROS
17888#ifndef WIDL_C_INLINE_WRAPPERS
17889/*** IUnknown methods ***/
17890#define ISpeechGrammarRuleStateTransitions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17891#define ISpeechGrammarRuleStateTransitions_AddRef(This) (This)->lpVtbl->AddRef(This)
17892#define ISpeechGrammarRuleStateTransitions_Release(This) (This)->lpVtbl->Release(This)
17893/*** IDispatch methods ***/
17894#define ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17895#define ISpeechGrammarRuleStateTransitions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17896#define ISpeechGrammarRuleStateTransitions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17897#define ISpeechGrammarRuleStateTransitions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17898/*** ISpeechGrammarRuleStateTransitions methods ***/
17899#define ISpeechGrammarRuleStateTransitions_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
17900#define ISpeechGrammarRuleStateTransitions_Item(This,Index,Transition) (This)->lpVtbl->Item(This,Index,Transition)
17901#define ISpeechGrammarRuleStateTransitions_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
17902#else
17903/*** IUnknown methods ***/
17904static inline HRESULT ISpeechGrammarRuleStateTransitions_QueryInterface(ISpeechGrammarRuleStateTransitions* This,REFIID riid,void **ppvObject) {
17905    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17906}
17907static inline ULONG ISpeechGrammarRuleStateTransitions_AddRef(ISpeechGrammarRuleStateTransitions* This) {
17908    return This->lpVtbl->AddRef(This);
17909}
17910static inline ULONG ISpeechGrammarRuleStateTransitions_Release(ISpeechGrammarRuleStateTransitions* This) {
17911    return This->lpVtbl->Release(This);
17912}
17913/*** IDispatch methods ***/
17914static inline HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(ISpeechGrammarRuleStateTransitions* This,UINT *pctinfo) {
17915    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17916}
17917static inline HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfo(ISpeechGrammarRuleStateTransitions* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17918    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17919}
17920static inline HRESULT ISpeechGrammarRuleStateTransitions_GetIDsOfNames(ISpeechGrammarRuleStateTransitions* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17921    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17922}
17923static inline HRESULT ISpeechGrammarRuleStateTransitions_Invoke(ISpeechGrammarRuleStateTransitions* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17924    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17925}
17926/*** ISpeechGrammarRuleStateTransitions methods ***/
17927static inline HRESULT ISpeechGrammarRuleStateTransitions_get_Count(ISpeechGrammarRuleStateTransitions* This,LONG *Count) {
17928    return This->lpVtbl->get_Count(This,Count);
17929}
17930static inline HRESULT ISpeechGrammarRuleStateTransitions_Item(ISpeechGrammarRuleStateTransitions* This,LONG Index,ISpeechGrammarRuleStateTransition **Transition) {
17931    return This->lpVtbl->Item(This,Index,Transition);
17932}
17933static inline HRESULT ISpeechGrammarRuleStateTransitions_get__NewEnum(ISpeechGrammarRuleStateTransitions* This,IUnknown **EnumVARIANT) {
17934    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
17935}
17936#endif
17937#endif
17938
17939#endif
17940
17941
17942#endif  /* __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__ */
17943
17944/*****************************************************************************
17945 * ISpeechGrammarRuleStateTransition interface
17946 */
17947#ifndef __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
17948#define __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
17949
17950DEFINE_GUID(IID_ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a);
17951#if defined(__cplusplus) && !defined(CINTERFACE)
17952MIDL_INTERFACE("cafd1db1-41d1-4a06-9863-e2e81da17a9a")
17953ISpeechGrammarRuleStateTransition : public IDispatch
17954{
17955    virtual HRESULT STDMETHODCALLTYPE get_Type(
17956        SpeechGrammarRuleStateTransitionType *Type) = 0;
17957
17958    virtual HRESULT STDMETHODCALLTYPE get_Text(
17959        BSTR *Text) = 0;
17960
17961    virtual HRESULT STDMETHODCALLTYPE get_Rule(
17962        ISpeechGrammarRule **Rule) = 0;
17963
17964    virtual HRESULT STDMETHODCALLTYPE get_Weight(
17965        VARIANT *Weight) = 0;
17966
17967    virtual HRESULT STDMETHODCALLTYPE get_PropertyName(
17968        BSTR *PropertyName) = 0;
17969
17970    virtual HRESULT STDMETHODCALLTYPE get_PropertyId(
17971        LONG *PropertyId) = 0;
17972
17973    virtual HRESULT STDMETHODCALLTYPE get_PropertyValue(
17974        VARIANT *PropertyValue) = 0;
17975
17976    virtual HRESULT STDMETHODCALLTYPE get_NextState(
17977        ISpeechGrammarRuleState **NextState) = 0;
17978
17979};
17980#ifdef __CRT_UUID_DECL
17981__CRT_UUID_DECL(ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a)
17982#endif
17983#else
17984typedef struct ISpeechGrammarRuleStateTransitionVtbl {
17985    BEGIN_INTERFACE
17986
17987    /*** IUnknown methods ***/
17988    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17989        ISpeechGrammarRuleStateTransition *This,
17990        REFIID riid,
17991        void **ppvObject);
17992
17993    ULONG (STDMETHODCALLTYPE *AddRef)(
17994        ISpeechGrammarRuleStateTransition *This);
17995
17996    ULONG (STDMETHODCALLTYPE *Release)(
17997        ISpeechGrammarRuleStateTransition *This);
17998
17999    /*** IDispatch methods ***/
18000    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18001        ISpeechGrammarRuleStateTransition *This,
18002        UINT *pctinfo);
18003
18004    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18005        ISpeechGrammarRuleStateTransition *This,
18006        UINT iTInfo,
18007        LCID lcid,
18008        ITypeInfo **ppTInfo);
18009
18010    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18011        ISpeechGrammarRuleStateTransition *This,
18012        REFIID riid,
18013        LPOLESTR *rgszNames,
18014        UINT cNames,
18015        LCID lcid,
18016        DISPID *rgDispId);
18017
18018    HRESULT (STDMETHODCALLTYPE *Invoke)(
18019        ISpeechGrammarRuleStateTransition *This,
18020        DISPID dispIdMember,
18021        REFIID riid,
18022        LCID lcid,
18023        WORD wFlags,
18024        DISPPARAMS *pDispParams,
18025        VARIANT *pVarResult,
18026        EXCEPINFO *pExcepInfo,
18027        UINT *puArgErr);
18028
18029    /*** ISpeechGrammarRuleStateTransition methods ***/
18030    HRESULT (STDMETHODCALLTYPE *get_Type)(
18031        ISpeechGrammarRuleStateTransition *This,
18032        SpeechGrammarRuleStateTransitionType *Type);
18033
18034    HRESULT (STDMETHODCALLTYPE *get_Text)(
18035        ISpeechGrammarRuleStateTransition *This,
18036        BSTR *Text);
18037
18038    HRESULT (STDMETHODCALLTYPE *get_Rule)(
18039        ISpeechGrammarRuleStateTransition *This,
18040        ISpeechGrammarRule **Rule);
18041
18042    HRESULT (STDMETHODCALLTYPE *get_Weight)(
18043        ISpeechGrammarRuleStateTransition *This,
18044        VARIANT *Weight);
18045
18046    HRESULT (STDMETHODCALLTYPE *get_PropertyName)(
18047        ISpeechGrammarRuleStateTransition *This,
18048        BSTR *PropertyName);
18049
18050    HRESULT (STDMETHODCALLTYPE *get_PropertyId)(
18051        ISpeechGrammarRuleStateTransition *This,
18052        LONG *PropertyId);
18053
18054    HRESULT (STDMETHODCALLTYPE *get_PropertyValue)(
18055        ISpeechGrammarRuleStateTransition *This,
18056        VARIANT *PropertyValue);
18057
18058    HRESULT (STDMETHODCALLTYPE *get_NextState)(
18059        ISpeechGrammarRuleStateTransition *This,
18060        ISpeechGrammarRuleState **NextState);
18061
18062    END_INTERFACE
18063} ISpeechGrammarRuleStateTransitionVtbl;
18064
18065interface ISpeechGrammarRuleStateTransition {
18066    CONST_VTBL ISpeechGrammarRuleStateTransitionVtbl* lpVtbl;
18067};
18068
18069#ifdef COBJMACROS
18070#ifndef WIDL_C_INLINE_WRAPPERS
18071/*** IUnknown methods ***/
18072#define ISpeechGrammarRuleStateTransition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18073#define ISpeechGrammarRuleStateTransition_AddRef(This) (This)->lpVtbl->AddRef(This)
18074#define ISpeechGrammarRuleStateTransition_Release(This) (This)->lpVtbl->Release(This)
18075/*** IDispatch methods ***/
18076#define ISpeechGrammarRuleStateTransition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18077#define ISpeechGrammarRuleStateTransition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18078#define ISpeechGrammarRuleStateTransition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18079#define ISpeechGrammarRuleStateTransition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18080/*** ISpeechGrammarRuleStateTransition methods ***/
18081#define ISpeechGrammarRuleStateTransition_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
18082#define ISpeechGrammarRuleStateTransition_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
18083#define ISpeechGrammarRuleStateTransition_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
18084#define ISpeechGrammarRuleStateTransition_get_Weight(This,Weight) (This)->lpVtbl->get_Weight(This,Weight)
18085#define ISpeechGrammarRuleStateTransition_get_PropertyName(This,PropertyName) (This)->lpVtbl->get_PropertyName(This,PropertyName)
18086#define ISpeechGrammarRuleStateTransition_get_PropertyId(This,PropertyId) (This)->lpVtbl->get_PropertyId(This,PropertyId)
18087#define ISpeechGrammarRuleStateTransition_get_PropertyValue(This,PropertyValue) (This)->lpVtbl->get_PropertyValue(This,PropertyValue)
18088#define ISpeechGrammarRuleStateTransition_get_NextState(This,NextState) (This)->lpVtbl->get_NextState(This,NextState)
18089#else
18090/*** IUnknown methods ***/
18091static inline HRESULT ISpeechGrammarRuleStateTransition_QueryInterface(ISpeechGrammarRuleStateTransition* This,REFIID riid,void **ppvObject) {
18092    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18093}
18094static inline ULONG ISpeechGrammarRuleStateTransition_AddRef(ISpeechGrammarRuleStateTransition* This) {
18095    return This->lpVtbl->AddRef(This);
18096}
18097static inline ULONG ISpeechGrammarRuleStateTransition_Release(ISpeechGrammarRuleStateTransition* This) {
18098    return This->lpVtbl->Release(This);
18099}
18100/*** IDispatch methods ***/
18101static inline HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfoCount(ISpeechGrammarRuleStateTransition* This,UINT *pctinfo) {
18102    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18103}
18104static inline HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfo(ISpeechGrammarRuleStateTransition* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18105    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18106}
18107static inline HRESULT ISpeechGrammarRuleStateTransition_GetIDsOfNames(ISpeechGrammarRuleStateTransition* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18108    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18109}
18110static inline HRESULT ISpeechGrammarRuleStateTransition_Invoke(ISpeechGrammarRuleStateTransition* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18111    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18112}
18113/*** ISpeechGrammarRuleStateTransition methods ***/
18114static inline HRESULT ISpeechGrammarRuleStateTransition_get_Type(ISpeechGrammarRuleStateTransition* This,SpeechGrammarRuleStateTransitionType *Type) {
18115    return This->lpVtbl->get_Type(This,Type);
18116}
18117static inline HRESULT ISpeechGrammarRuleStateTransition_get_Text(ISpeechGrammarRuleStateTransition* This,BSTR *Text) {
18118    return This->lpVtbl->get_Text(This,Text);
18119}
18120static inline HRESULT ISpeechGrammarRuleStateTransition_get_Rule(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRule **Rule) {
18121    return This->lpVtbl->get_Rule(This,Rule);
18122}
18123static inline HRESULT ISpeechGrammarRuleStateTransition_get_Weight(ISpeechGrammarRuleStateTransition* This,VARIANT *Weight) {
18124    return This->lpVtbl->get_Weight(This,Weight);
18125}
18126static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyName(ISpeechGrammarRuleStateTransition* This,BSTR *PropertyName) {
18127    return This->lpVtbl->get_PropertyName(This,PropertyName);
18128}
18129static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyId(ISpeechGrammarRuleStateTransition* This,LONG *PropertyId) {
18130    return This->lpVtbl->get_PropertyId(This,PropertyId);
18131}
18132static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyValue(ISpeechGrammarRuleStateTransition* This,VARIANT *PropertyValue) {
18133    return This->lpVtbl->get_PropertyValue(This,PropertyValue);
18134}
18135static inline HRESULT ISpeechGrammarRuleStateTransition_get_NextState(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRuleState **NextState) {
18136    return This->lpVtbl->get_NextState(This,NextState);
18137}
18138#endif
18139#endif
18140
18141#endif
18142
18143
18144#endif  /* __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__ */
18145
18146/*****************************************************************************
18147 * ISpeechTextSelectionInformation interface
18148 */
18149#ifndef __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
18150#define __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
18151
18152DEFINE_GUID(IID_ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe);
18153#if defined(__cplusplus) && !defined(CINTERFACE)
18154MIDL_INTERFACE("3b9c7e7a-6eee-4ded-9092-11657279adbe")
18155ISpeechTextSelectionInformation : public IDispatch
18156{
18157    virtual HRESULT STDMETHODCALLTYPE put_ActiveOffset(
18158        LONG ActiveOffset) = 0;
18159
18160    virtual HRESULT STDMETHODCALLTYPE get_ActiveOffset(
18161        LONG *ActiveOffset) = 0;
18162
18163    virtual HRESULT STDMETHODCALLTYPE put_ActiveLength(
18164        LONG ActiveLength) = 0;
18165
18166    virtual HRESULT STDMETHODCALLTYPE get_ActiveLength(
18167        LONG *ActiveLength) = 0;
18168
18169    virtual HRESULT STDMETHODCALLTYPE put_SelectionOffset(
18170        LONG SelectionOffset) = 0;
18171
18172    virtual HRESULT STDMETHODCALLTYPE get_SelectionOffset(
18173        LONG *SelectionOffset) = 0;
18174
18175    virtual HRESULT STDMETHODCALLTYPE put_SelectionLength(
18176        LONG SelectionLength) = 0;
18177
18178    virtual HRESULT STDMETHODCALLTYPE get_SelectionLength(
18179        LONG *SelectionLength) = 0;
18180
18181};
18182#ifdef __CRT_UUID_DECL
18183__CRT_UUID_DECL(ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe)
18184#endif
18185#else
18186typedef struct ISpeechTextSelectionInformationVtbl {
18187    BEGIN_INTERFACE
18188
18189    /*** IUnknown methods ***/
18190    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18191        ISpeechTextSelectionInformation *This,
18192        REFIID riid,
18193        void **ppvObject);
18194
18195    ULONG (STDMETHODCALLTYPE *AddRef)(
18196        ISpeechTextSelectionInformation *This);
18197
18198    ULONG (STDMETHODCALLTYPE *Release)(
18199        ISpeechTextSelectionInformation *This);
18200
18201    /*** IDispatch methods ***/
18202    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18203        ISpeechTextSelectionInformation *This,
18204        UINT *pctinfo);
18205
18206    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18207        ISpeechTextSelectionInformation *This,
18208        UINT iTInfo,
18209        LCID lcid,
18210        ITypeInfo **ppTInfo);
18211
18212    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18213        ISpeechTextSelectionInformation *This,
18214        REFIID riid,
18215        LPOLESTR *rgszNames,
18216        UINT cNames,
18217        LCID lcid,
18218        DISPID *rgDispId);
18219
18220    HRESULT (STDMETHODCALLTYPE *Invoke)(
18221        ISpeechTextSelectionInformation *This,
18222        DISPID dispIdMember,
18223        REFIID riid,
18224        LCID lcid,
18225        WORD wFlags,
18226        DISPPARAMS *pDispParams,
18227        VARIANT *pVarResult,
18228        EXCEPINFO *pExcepInfo,
18229        UINT *puArgErr);
18230
18231    /*** ISpeechTextSelectionInformation methods ***/
18232    HRESULT (STDMETHODCALLTYPE *put_ActiveOffset)(
18233        ISpeechTextSelectionInformation *This,
18234        LONG ActiveOffset);
18235
18236    HRESULT (STDMETHODCALLTYPE *get_ActiveOffset)(
18237        ISpeechTextSelectionInformation *This,
18238        LONG *ActiveOffset);
18239
18240    HRESULT (STDMETHODCALLTYPE *put_ActiveLength)(
18241        ISpeechTextSelectionInformation *This,
18242        LONG ActiveLength);
18243
18244    HRESULT (STDMETHODCALLTYPE *get_ActiveLength)(
18245        ISpeechTextSelectionInformation *This,
18246        LONG *ActiveLength);
18247
18248    HRESULT (STDMETHODCALLTYPE *put_SelectionOffset)(
18249        ISpeechTextSelectionInformation *This,
18250        LONG SelectionOffset);
18251
18252    HRESULT (STDMETHODCALLTYPE *get_SelectionOffset)(
18253        ISpeechTextSelectionInformation *This,
18254        LONG *SelectionOffset);
18255
18256    HRESULT (STDMETHODCALLTYPE *put_SelectionLength)(
18257        ISpeechTextSelectionInformation *This,
18258        LONG SelectionLength);
18259
18260    HRESULT (STDMETHODCALLTYPE *get_SelectionLength)(
18261        ISpeechTextSelectionInformation *This,
18262        LONG *SelectionLength);
18263
18264    END_INTERFACE
18265} ISpeechTextSelectionInformationVtbl;
18266
18267interface ISpeechTextSelectionInformation {
18268    CONST_VTBL ISpeechTextSelectionInformationVtbl* lpVtbl;
18269};
18270
18271#ifdef COBJMACROS
18272#ifndef WIDL_C_INLINE_WRAPPERS
18273/*** IUnknown methods ***/
18274#define ISpeechTextSelectionInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18275#define ISpeechTextSelectionInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
18276#define ISpeechTextSelectionInformation_Release(This) (This)->lpVtbl->Release(This)
18277/*** IDispatch methods ***/
18278#define ISpeechTextSelectionInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18279#define ISpeechTextSelectionInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18280#define ISpeechTextSelectionInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18281#define ISpeechTextSelectionInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18282/*** ISpeechTextSelectionInformation methods ***/
18283#define ISpeechTextSelectionInformation_put_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->put_ActiveOffset(This,ActiveOffset)
18284#define ISpeechTextSelectionInformation_get_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->get_ActiveOffset(This,ActiveOffset)
18285#define ISpeechTextSelectionInformation_put_ActiveLength(This,ActiveLength) (This)->lpVtbl->put_ActiveLength(This,ActiveLength)
18286#define ISpeechTextSelectionInformation_get_ActiveLength(This,ActiveLength) (This)->lpVtbl->get_ActiveLength(This,ActiveLength)
18287#define ISpeechTextSelectionInformation_put_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->put_SelectionOffset(This,SelectionOffset)
18288#define ISpeechTextSelectionInformation_get_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->get_SelectionOffset(This,SelectionOffset)
18289#define ISpeechTextSelectionInformation_put_SelectionLength(This,SelectionLength) (This)->lpVtbl->put_SelectionLength(This,SelectionLength)
18290#define ISpeechTextSelectionInformation_get_SelectionLength(This,SelectionLength) (This)->lpVtbl->get_SelectionLength(This,SelectionLength)
18291#else
18292/*** IUnknown methods ***/
18293static inline HRESULT ISpeechTextSelectionInformation_QueryInterface(ISpeechTextSelectionInformation* This,REFIID riid,void **ppvObject) {
18294    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18295}
18296static inline ULONG ISpeechTextSelectionInformation_AddRef(ISpeechTextSelectionInformation* This) {
18297    return This->lpVtbl->AddRef(This);
18298}
18299static inline ULONG ISpeechTextSelectionInformation_Release(ISpeechTextSelectionInformation* This) {
18300    return This->lpVtbl->Release(This);
18301}
18302/*** IDispatch methods ***/
18303static inline HRESULT ISpeechTextSelectionInformation_GetTypeInfoCount(ISpeechTextSelectionInformation* This,UINT *pctinfo) {
18304    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18305}
18306static inline HRESULT ISpeechTextSelectionInformation_GetTypeInfo(ISpeechTextSelectionInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18307    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18308}
18309static inline HRESULT ISpeechTextSelectionInformation_GetIDsOfNames(ISpeechTextSelectionInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18310    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18311}
18312static inline HRESULT ISpeechTextSelectionInformation_Invoke(ISpeechTextSelectionInformation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18313    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18314}
18315/*** ISpeechTextSelectionInformation methods ***/
18316static inline HRESULT ISpeechTextSelectionInformation_put_ActiveOffset(ISpeechTextSelectionInformation* This,LONG ActiveOffset) {
18317    return This->lpVtbl->put_ActiveOffset(This,ActiveOffset);
18318}
18319static inline HRESULT ISpeechTextSelectionInformation_get_ActiveOffset(ISpeechTextSelectionInformation* This,LONG *ActiveOffset) {
18320    return This->lpVtbl->get_ActiveOffset(This,ActiveOffset);
18321}
18322static inline HRESULT ISpeechTextSelectionInformation_put_ActiveLength(ISpeechTextSelectionInformation* This,LONG ActiveLength) {
18323    return This->lpVtbl->put_ActiveLength(This,ActiveLength);
18324}
18325static inline HRESULT ISpeechTextSelectionInformation_get_ActiveLength(ISpeechTextSelectionInformation* This,LONG *ActiveLength) {
18326    return This->lpVtbl->get_ActiveLength(This,ActiveLength);
18327}
18328static inline HRESULT ISpeechTextSelectionInformation_put_SelectionOffset(ISpeechTextSelectionInformation* This,LONG SelectionOffset) {
18329    return This->lpVtbl->put_SelectionOffset(This,SelectionOffset);
18330}
18331static inline HRESULT ISpeechTextSelectionInformation_get_SelectionOffset(ISpeechTextSelectionInformation* This,LONG *SelectionOffset) {
18332    return This->lpVtbl->get_SelectionOffset(This,SelectionOffset);
18333}
18334static inline HRESULT ISpeechTextSelectionInformation_put_SelectionLength(ISpeechTextSelectionInformation* This,LONG SelectionLength) {
18335    return This->lpVtbl->put_SelectionLength(This,SelectionLength);
18336}
18337static inline HRESULT ISpeechTextSelectionInformation_get_SelectionLength(ISpeechTextSelectionInformation* This,LONG *SelectionLength) {
18338    return This->lpVtbl->get_SelectionLength(This,SelectionLength);
18339}
18340#endif
18341#endif
18342
18343#endif
18344
18345
18346#endif  /* __ISpeechTextSelectionInformation_INTERFACE_DEFINED__ */
18347
18348/*****************************************************************************
18349 * ISpeechRecoResult interface
18350 */
18351#ifndef __ISpeechRecoResult_INTERFACE_DEFINED__
18352#define __ISpeechRecoResult_INTERFACE_DEFINED__
18353
18354DEFINE_GUID(IID_ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d);
18355#if defined(__cplusplus) && !defined(CINTERFACE)
18356MIDL_INTERFACE("ed2879cf-ced9-4ee6-a534-de0191d5468d")
18357ISpeechRecoResult : public IDispatch
18358{
18359    virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
18360        ISpeechRecoContext **RecoContext) = 0;
18361
18362    virtual HRESULT STDMETHODCALLTYPE get_Times(
18363        ISpeechRecoResultTimes **Times) = 0;
18364
18365    virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
18366        ISpeechAudioFormat *Format) = 0;
18367
18368    virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
18369        ISpeechAudioFormat **Format) = 0;
18370
18371    virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
18372        ISpeechPhraseInfo **PhraseInfo) = 0;
18373
18374    virtual HRESULT STDMETHODCALLTYPE Alternates(
18375        LONG RequestCount,
18376        LONG StartElement,
18377        LONG Elements,
18378        ISpeechPhraseAlternates **Alternates) = 0;
18379
18380    virtual HRESULT STDMETHODCALLTYPE Audio(
18381        LONG StartElement,
18382        LONG Elements,
18383        ISpeechMemoryStream **Stream) = 0;
18384
18385    virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
18386        LONG StartElement,
18387        LONG Elements,
18388        SpeechVoiceSpeakFlags Flags,
18389        LONG *StreamNumber) = 0;
18390
18391    virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
18392        VARIANT *ResultBlock) = 0;
18393
18394    virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
18395        SpeechDiscardType ValueTypes) = 0;
18396
18397};
18398#ifdef __CRT_UUID_DECL
18399__CRT_UUID_DECL(ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d)
18400#endif
18401#else
18402typedef struct ISpeechRecoResultVtbl {
18403    BEGIN_INTERFACE
18404
18405    /*** IUnknown methods ***/
18406    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18407        ISpeechRecoResult *This,
18408        REFIID riid,
18409        void **ppvObject);
18410
18411    ULONG (STDMETHODCALLTYPE *AddRef)(
18412        ISpeechRecoResult *This);
18413
18414    ULONG (STDMETHODCALLTYPE *Release)(
18415        ISpeechRecoResult *This);
18416
18417    /*** IDispatch methods ***/
18418    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18419        ISpeechRecoResult *This,
18420        UINT *pctinfo);
18421
18422    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18423        ISpeechRecoResult *This,
18424        UINT iTInfo,
18425        LCID lcid,
18426        ITypeInfo **ppTInfo);
18427
18428    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18429        ISpeechRecoResult *This,
18430        REFIID riid,
18431        LPOLESTR *rgszNames,
18432        UINT cNames,
18433        LCID lcid,
18434        DISPID *rgDispId);
18435
18436    HRESULT (STDMETHODCALLTYPE *Invoke)(
18437        ISpeechRecoResult *This,
18438        DISPID dispIdMember,
18439        REFIID riid,
18440        LCID lcid,
18441        WORD wFlags,
18442        DISPPARAMS *pDispParams,
18443        VARIANT *pVarResult,
18444        EXCEPINFO *pExcepInfo,
18445        UINT *puArgErr);
18446
18447    /*** ISpeechRecoResult methods ***/
18448    HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
18449        ISpeechRecoResult *This,
18450        ISpeechRecoContext **RecoContext);
18451
18452    HRESULT (STDMETHODCALLTYPE *get_Times)(
18453        ISpeechRecoResult *This,
18454        ISpeechRecoResultTimes **Times);
18455
18456    HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
18457        ISpeechRecoResult *This,
18458        ISpeechAudioFormat *Format);
18459
18460    HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
18461        ISpeechRecoResult *This,
18462        ISpeechAudioFormat **Format);
18463
18464    HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
18465        ISpeechRecoResult *This,
18466        ISpeechPhraseInfo **PhraseInfo);
18467
18468    HRESULT (STDMETHODCALLTYPE *Alternates)(
18469        ISpeechRecoResult *This,
18470        LONG RequestCount,
18471        LONG StartElement,
18472        LONG Elements,
18473        ISpeechPhraseAlternates **Alternates);
18474
18475    HRESULT (STDMETHODCALLTYPE *Audio)(
18476        ISpeechRecoResult *This,
18477        LONG StartElement,
18478        LONG Elements,
18479        ISpeechMemoryStream **Stream);
18480
18481    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
18482        ISpeechRecoResult *This,
18483        LONG StartElement,
18484        LONG Elements,
18485        SpeechVoiceSpeakFlags Flags,
18486        LONG *StreamNumber);
18487
18488    HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
18489        ISpeechRecoResult *This,
18490        VARIANT *ResultBlock);
18491
18492    HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
18493        ISpeechRecoResult *This,
18494        SpeechDiscardType ValueTypes);
18495
18496    END_INTERFACE
18497} ISpeechRecoResultVtbl;
18498
18499interface ISpeechRecoResult {
18500    CONST_VTBL ISpeechRecoResultVtbl* lpVtbl;
18501};
18502
18503#ifdef COBJMACROS
18504#ifndef WIDL_C_INLINE_WRAPPERS
18505/*** IUnknown methods ***/
18506#define ISpeechRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18507#define ISpeechRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
18508#define ISpeechRecoResult_Release(This) (This)->lpVtbl->Release(This)
18509/*** IDispatch methods ***/
18510#define ISpeechRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18511#define ISpeechRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18512#define ISpeechRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18513#define ISpeechRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18514/*** ISpeechRecoResult methods ***/
18515#define ISpeechRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
18516#define ISpeechRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
18517#define ISpeechRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
18518#define ISpeechRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
18519#define ISpeechRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
18520#define ISpeechRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
18521#define ISpeechRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
18522#define ISpeechRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
18523#define ISpeechRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
18524#define ISpeechRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
18525#else
18526/*** IUnknown methods ***/
18527static inline HRESULT ISpeechRecoResult_QueryInterface(ISpeechRecoResult* This,REFIID riid,void **ppvObject) {
18528    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18529}
18530static inline ULONG ISpeechRecoResult_AddRef(ISpeechRecoResult* This) {
18531    return This->lpVtbl->AddRef(This);
18532}
18533static inline ULONG ISpeechRecoResult_Release(ISpeechRecoResult* This) {
18534    return This->lpVtbl->Release(This);
18535}
18536/*** IDispatch methods ***/
18537static inline HRESULT ISpeechRecoResult_GetTypeInfoCount(ISpeechRecoResult* This,UINT *pctinfo) {
18538    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18539}
18540static inline HRESULT ISpeechRecoResult_GetTypeInfo(ISpeechRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18541    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18542}
18543static inline HRESULT ISpeechRecoResult_GetIDsOfNames(ISpeechRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18544    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18545}
18546static inline HRESULT ISpeechRecoResult_Invoke(ISpeechRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18547    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18548}
18549/*** ISpeechRecoResult methods ***/
18550static inline HRESULT ISpeechRecoResult_get_RecoContext(ISpeechRecoResult* This,ISpeechRecoContext **RecoContext) {
18551    return This->lpVtbl->get_RecoContext(This,RecoContext);
18552}
18553static inline HRESULT ISpeechRecoResult_get_Times(ISpeechRecoResult* This,ISpeechRecoResultTimes **Times) {
18554    return This->lpVtbl->get_Times(This,Times);
18555}
18556static inline HRESULT ISpeechRecoResult_putref_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat *Format) {
18557    return This->lpVtbl->putref_AudioFormat(This,Format);
18558}
18559static inline HRESULT ISpeechRecoResult_get_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat **Format) {
18560    return This->lpVtbl->get_AudioFormat(This,Format);
18561}
18562static inline HRESULT ISpeechRecoResult_get_PhraseInfo(ISpeechRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
18563    return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
18564}
18565static inline HRESULT ISpeechRecoResult_Alternates(ISpeechRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
18566    return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
18567}
18568static inline HRESULT ISpeechRecoResult_Audio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
18569    return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
18570}
18571static inline HRESULT ISpeechRecoResult_SpeakAudio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
18572    return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
18573}
18574static inline HRESULT ISpeechRecoResult_SaveToMemory(ISpeechRecoResult* This,VARIANT *ResultBlock) {
18575    return This->lpVtbl->SaveToMemory(This,ResultBlock);
18576}
18577static inline HRESULT ISpeechRecoResult_DiscardResultInfo(ISpeechRecoResult* This,SpeechDiscardType ValueTypes) {
18578    return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
18579}
18580#endif
18581#endif
18582
18583#endif
18584
18585
18586#endif  /* __ISpeechRecoResult_INTERFACE_DEFINED__ */
18587
18588/*****************************************************************************
18589 * ISpeechXMLRecoResult interface
18590 */
18591#ifndef __ISpeechXMLRecoResult_INTERFACE_DEFINED__
18592#define __ISpeechXMLRecoResult_INTERFACE_DEFINED__
18593
18594DEFINE_GUID(IID_ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19);
18595#if defined(__cplusplus) && !defined(CINTERFACE)
18596MIDL_INTERFACE("aaec54af-8f85-4924-944d-b79d39d72e19")
18597ISpeechXMLRecoResult : public ISpeechRecoResult
18598{
18599    virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
18600        SPXMLRESULTOPTIONS Options,
18601        BSTR *pResult) = 0;
18602
18603    virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
18604        LONG *LineNumber,
18605        BSTR *ScriptLine,
18606        BSTR *Source,
18607        BSTR *Description,
18608        LONG *ResultCode,
18609        VARIANT_BOOL *IsError) = 0;
18610
18611};
18612#ifdef __CRT_UUID_DECL
18613__CRT_UUID_DECL(ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19)
18614#endif
18615#else
18616typedef struct ISpeechXMLRecoResultVtbl {
18617    BEGIN_INTERFACE
18618
18619    /*** IUnknown methods ***/
18620    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18621        ISpeechXMLRecoResult *This,
18622        REFIID riid,
18623        void **ppvObject);
18624
18625    ULONG (STDMETHODCALLTYPE *AddRef)(
18626        ISpeechXMLRecoResult *This);
18627
18628    ULONG (STDMETHODCALLTYPE *Release)(
18629        ISpeechXMLRecoResult *This);
18630
18631    /*** IDispatch methods ***/
18632    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18633        ISpeechXMLRecoResult *This,
18634        UINT *pctinfo);
18635
18636    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18637        ISpeechXMLRecoResult *This,
18638        UINT iTInfo,
18639        LCID lcid,
18640        ITypeInfo **ppTInfo);
18641
18642    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18643        ISpeechXMLRecoResult *This,
18644        REFIID riid,
18645        LPOLESTR *rgszNames,
18646        UINT cNames,
18647        LCID lcid,
18648        DISPID *rgDispId);
18649
18650    HRESULT (STDMETHODCALLTYPE *Invoke)(
18651        ISpeechXMLRecoResult *This,
18652        DISPID dispIdMember,
18653        REFIID riid,
18654        LCID lcid,
18655        WORD wFlags,
18656        DISPPARAMS *pDispParams,
18657        VARIANT *pVarResult,
18658        EXCEPINFO *pExcepInfo,
18659        UINT *puArgErr);
18660
18661    /*** ISpeechRecoResult methods ***/
18662    HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
18663        ISpeechXMLRecoResult *This,
18664        ISpeechRecoContext **RecoContext);
18665
18666    HRESULT (STDMETHODCALLTYPE *get_Times)(
18667        ISpeechXMLRecoResult *This,
18668        ISpeechRecoResultTimes **Times);
18669
18670    HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
18671        ISpeechXMLRecoResult *This,
18672        ISpeechAudioFormat *Format);
18673
18674    HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
18675        ISpeechXMLRecoResult *This,
18676        ISpeechAudioFormat **Format);
18677
18678    HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
18679        ISpeechXMLRecoResult *This,
18680        ISpeechPhraseInfo **PhraseInfo);
18681
18682    HRESULT (STDMETHODCALLTYPE *Alternates)(
18683        ISpeechXMLRecoResult *This,
18684        LONG RequestCount,
18685        LONG StartElement,
18686        LONG Elements,
18687        ISpeechPhraseAlternates **Alternates);
18688
18689    HRESULT (STDMETHODCALLTYPE *Audio)(
18690        ISpeechXMLRecoResult *This,
18691        LONG StartElement,
18692        LONG Elements,
18693        ISpeechMemoryStream **Stream);
18694
18695    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
18696        ISpeechXMLRecoResult *This,
18697        LONG StartElement,
18698        LONG Elements,
18699        SpeechVoiceSpeakFlags Flags,
18700        LONG *StreamNumber);
18701
18702    HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
18703        ISpeechXMLRecoResult *This,
18704        VARIANT *ResultBlock);
18705
18706    HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
18707        ISpeechXMLRecoResult *This,
18708        SpeechDiscardType ValueTypes);
18709
18710    /*** ISpeechXMLRecoResult methods ***/
18711    HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
18712        ISpeechXMLRecoResult *This,
18713        SPXMLRESULTOPTIONS Options,
18714        BSTR *pResult);
18715
18716    HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
18717        ISpeechXMLRecoResult *This,
18718        LONG *LineNumber,
18719        BSTR *ScriptLine,
18720        BSTR *Source,
18721        BSTR *Description,
18722        LONG *ResultCode,
18723        VARIANT_BOOL *IsError);
18724
18725    END_INTERFACE
18726} ISpeechXMLRecoResultVtbl;
18727
18728interface ISpeechXMLRecoResult {
18729    CONST_VTBL ISpeechXMLRecoResultVtbl* lpVtbl;
18730};
18731
18732#ifdef COBJMACROS
18733#ifndef WIDL_C_INLINE_WRAPPERS
18734/*** IUnknown methods ***/
18735#define ISpeechXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18736#define ISpeechXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
18737#define ISpeechXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
18738/*** IDispatch methods ***/
18739#define ISpeechXMLRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18740#define ISpeechXMLRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18741#define ISpeechXMLRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18742#define ISpeechXMLRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18743/*** ISpeechRecoResult methods ***/
18744#define ISpeechXMLRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
18745#define ISpeechXMLRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
18746#define ISpeechXMLRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
18747#define ISpeechXMLRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
18748#define ISpeechXMLRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
18749#define ISpeechXMLRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
18750#define ISpeechXMLRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
18751#define ISpeechXMLRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
18752#define ISpeechXMLRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
18753#define ISpeechXMLRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
18754/*** ISpeechXMLRecoResult methods ***/
18755#define ISpeechXMLRecoResult_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
18756#define ISpeechXMLRecoResult_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
18757#else
18758/*** IUnknown methods ***/
18759static inline HRESULT ISpeechXMLRecoResult_QueryInterface(ISpeechXMLRecoResult* This,REFIID riid,void **ppvObject) {
18760    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18761}
18762static inline ULONG ISpeechXMLRecoResult_AddRef(ISpeechXMLRecoResult* This) {
18763    return This->lpVtbl->AddRef(This);
18764}
18765static inline ULONG ISpeechXMLRecoResult_Release(ISpeechXMLRecoResult* This) {
18766    return This->lpVtbl->Release(This);
18767}
18768/*** IDispatch methods ***/
18769static inline HRESULT ISpeechXMLRecoResult_GetTypeInfoCount(ISpeechXMLRecoResult* This,UINT *pctinfo) {
18770    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18771}
18772static inline HRESULT ISpeechXMLRecoResult_GetTypeInfo(ISpeechXMLRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18773    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18774}
18775static inline HRESULT ISpeechXMLRecoResult_GetIDsOfNames(ISpeechXMLRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18776    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18777}
18778static inline HRESULT ISpeechXMLRecoResult_Invoke(ISpeechXMLRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18779    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18780}
18781/*** ISpeechRecoResult methods ***/
18782static inline HRESULT ISpeechXMLRecoResult_get_RecoContext(ISpeechXMLRecoResult* This,ISpeechRecoContext **RecoContext) {
18783    return This->lpVtbl->get_RecoContext(This,RecoContext);
18784}
18785static inline HRESULT ISpeechXMLRecoResult_get_Times(ISpeechXMLRecoResult* This,ISpeechRecoResultTimes **Times) {
18786    return This->lpVtbl->get_Times(This,Times);
18787}
18788static inline HRESULT ISpeechXMLRecoResult_putref_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat *Format) {
18789    return This->lpVtbl->putref_AudioFormat(This,Format);
18790}
18791static inline HRESULT ISpeechXMLRecoResult_get_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat **Format) {
18792    return This->lpVtbl->get_AudioFormat(This,Format);
18793}
18794static inline HRESULT ISpeechXMLRecoResult_get_PhraseInfo(ISpeechXMLRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
18795    return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
18796}
18797static inline HRESULT ISpeechXMLRecoResult_Alternates(ISpeechXMLRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
18798    return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
18799}
18800static inline HRESULT ISpeechXMLRecoResult_Audio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
18801    return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
18802}
18803static inline HRESULT ISpeechXMLRecoResult_SpeakAudio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
18804    return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
18805}
18806static inline HRESULT ISpeechXMLRecoResult_SaveToMemory(ISpeechXMLRecoResult* This,VARIANT *ResultBlock) {
18807    return This->lpVtbl->SaveToMemory(This,ResultBlock);
18808}
18809static inline HRESULT ISpeechXMLRecoResult_DiscardResultInfo(ISpeechXMLRecoResult* This,SpeechDiscardType ValueTypes) {
18810    return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
18811}
18812/*** ISpeechXMLRecoResult methods ***/
18813static inline HRESULT ISpeechXMLRecoResult_GetXMLResult(ISpeechXMLRecoResult* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
18814    return This->lpVtbl->GetXMLResult(This,Options,pResult);
18815}
18816static inline HRESULT ISpeechXMLRecoResult_GetXMLErrorInfo(ISpeechXMLRecoResult* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,LONG *ResultCode,VARIANT_BOOL *IsError) {
18817    return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
18818}
18819#endif
18820#endif
18821
18822#endif
18823
18824
18825#endif  /* __ISpeechXMLRecoResult_INTERFACE_DEFINED__ */
18826
18827/*****************************************************************************
18828 * ISpeechRecoResult2 interface
18829 */
18830#ifndef __ISpeechRecoResult2_INTERFACE_DEFINED__
18831#define __ISpeechRecoResult2_INTERFACE_DEFINED__
18832
18833DEFINE_GUID(IID_ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c);
18834#if defined(__cplusplus) && !defined(CINTERFACE)
18835MIDL_INTERFACE("8e0a246d-d3c8-45de-8657-04290c458c3c")
18836ISpeechRecoResult2 : public ISpeechRecoResult
18837{
18838    virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
18839        BSTR Feedback,
18840        VARIANT_BOOL WasSuccessful) = 0;
18841
18842};
18843#ifdef __CRT_UUID_DECL
18844__CRT_UUID_DECL(ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c)
18845#endif
18846#else
18847typedef struct ISpeechRecoResult2Vtbl {
18848    BEGIN_INTERFACE
18849
18850    /*** IUnknown methods ***/
18851    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18852        ISpeechRecoResult2 *This,
18853        REFIID riid,
18854        void **ppvObject);
18855
18856    ULONG (STDMETHODCALLTYPE *AddRef)(
18857        ISpeechRecoResult2 *This);
18858
18859    ULONG (STDMETHODCALLTYPE *Release)(
18860        ISpeechRecoResult2 *This);
18861
18862    /*** IDispatch methods ***/
18863    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18864        ISpeechRecoResult2 *This,
18865        UINT *pctinfo);
18866
18867    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18868        ISpeechRecoResult2 *This,
18869        UINT iTInfo,
18870        LCID lcid,
18871        ITypeInfo **ppTInfo);
18872
18873    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18874        ISpeechRecoResult2 *This,
18875        REFIID riid,
18876        LPOLESTR *rgszNames,
18877        UINT cNames,
18878        LCID lcid,
18879        DISPID *rgDispId);
18880
18881    HRESULT (STDMETHODCALLTYPE *Invoke)(
18882        ISpeechRecoResult2 *This,
18883        DISPID dispIdMember,
18884        REFIID riid,
18885        LCID lcid,
18886        WORD wFlags,
18887        DISPPARAMS *pDispParams,
18888        VARIANT *pVarResult,
18889        EXCEPINFO *pExcepInfo,
18890        UINT *puArgErr);
18891
18892    /*** ISpeechRecoResult methods ***/
18893    HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
18894        ISpeechRecoResult2 *This,
18895        ISpeechRecoContext **RecoContext);
18896
18897    HRESULT (STDMETHODCALLTYPE *get_Times)(
18898        ISpeechRecoResult2 *This,
18899        ISpeechRecoResultTimes **Times);
18900
18901    HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
18902        ISpeechRecoResult2 *This,
18903        ISpeechAudioFormat *Format);
18904
18905    HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
18906        ISpeechRecoResult2 *This,
18907        ISpeechAudioFormat **Format);
18908
18909    HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
18910        ISpeechRecoResult2 *This,
18911        ISpeechPhraseInfo **PhraseInfo);
18912
18913    HRESULT (STDMETHODCALLTYPE *Alternates)(
18914        ISpeechRecoResult2 *This,
18915        LONG RequestCount,
18916        LONG StartElement,
18917        LONG Elements,
18918        ISpeechPhraseAlternates **Alternates);
18919
18920    HRESULT (STDMETHODCALLTYPE *Audio)(
18921        ISpeechRecoResult2 *This,
18922        LONG StartElement,
18923        LONG Elements,
18924        ISpeechMemoryStream **Stream);
18925
18926    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
18927        ISpeechRecoResult2 *This,
18928        LONG StartElement,
18929        LONG Elements,
18930        SpeechVoiceSpeakFlags Flags,
18931        LONG *StreamNumber);
18932
18933    HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
18934        ISpeechRecoResult2 *This,
18935        VARIANT *ResultBlock);
18936
18937    HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
18938        ISpeechRecoResult2 *This,
18939        SpeechDiscardType ValueTypes);
18940
18941    /*** ISpeechRecoResult2 methods ***/
18942    HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
18943        ISpeechRecoResult2 *This,
18944        BSTR Feedback,
18945        VARIANT_BOOL WasSuccessful);
18946
18947    END_INTERFACE
18948} ISpeechRecoResult2Vtbl;
18949
18950interface ISpeechRecoResult2 {
18951    CONST_VTBL ISpeechRecoResult2Vtbl* lpVtbl;
18952};
18953
18954#ifdef COBJMACROS
18955#ifndef WIDL_C_INLINE_WRAPPERS
18956/*** IUnknown methods ***/
18957#define ISpeechRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18958#define ISpeechRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
18959#define ISpeechRecoResult2_Release(This) (This)->lpVtbl->Release(This)
18960/*** IDispatch methods ***/
18961#define ISpeechRecoResult2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18962#define ISpeechRecoResult2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18963#define ISpeechRecoResult2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18964#define ISpeechRecoResult2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18965/*** ISpeechRecoResult methods ***/
18966#define ISpeechRecoResult2_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
18967#define ISpeechRecoResult2_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
18968#define ISpeechRecoResult2_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
18969#define ISpeechRecoResult2_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
18970#define ISpeechRecoResult2_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
18971#define ISpeechRecoResult2_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
18972#define ISpeechRecoResult2_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
18973#define ISpeechRecoResult2_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
18974#define ISpeechRecoResult2_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
18975#define ISpeechRecoResult2_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
18976/*** ISpeechRecoResult2 methods ***/
18977#define ISpeechRecoResult2_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
18978#else
18979/*** IUnknown methods ***/
18980static inline HRESULT ISpeechRecoResult2_QueryInterface(ISpeechRecoResult2* This,REFIID riid,void **ppvObject) {
18981    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18982}
18983static inline ULONG ISpeechRecoResult2_AddRef(ISpeechRecoResult2* This) {
18984    return This->lpVtbl->AddRef(This);
18985}
18986static inline ULONG ISpeechRecoResult2_Release(ISpeechRecoResult2* This) {
18987    return This->lpVtbl->Release(This);
18988}
18989/*** IDispatch methods ***/
18990static inline HRESULT ISpeechRecoResult2_GetTypeInfoCount(ISpeechRecoResult2* This,UINT *pctinfo) {
18991    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18992}
18993static inline HRESULT ISpeechRecoResult2_GetTypeInfo(ISpeechRecoResult2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18994    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18995}
18996static inline HRESULT ISpeechRecoResult2_GetIDsOfNames(ISpeechRecoResult2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18997    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18998}
18999static inline HRESULT ISpeechRecoResult2_Invoke(ISpeechRecoResult2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19000    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19001}
19002/*** ISpeechRecoResult methods ***/
19003static inline HRESULT ISpeechRecoResult2_get_RecoContext(ISpeechRecoResult2* This,ISpeechRecoContext **RecoContext) {
19004    return This->lpVtbl->get_RecoContext(This,RecoContext);
19005}
19006static inline HRESULT ISpeechRecoResult2_get_Times(ISpeechRecoResult2* This,ISpeechRecoResultTimes **Times) {
19007    return This->lpVtbl->get_Times(This,Times);
19008}
19009static inline HRESULT ISpeechRecoResult2_putref_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat *Format) {
19010    return This->lpVtbl->putref_AudioFormat(This,Format);
19011}
19012static inline HRESULT ISpeechRecoResult2_get_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat **Format) {
19013    return This->lpVtbl->get_AudioFormat(This,Format);
19014}
19015static inline HRESULT ISpeechRecoResult2_get_PhraseInfo(ISpeechRecoResult2* This,ISpeechPhraseInfo **PhraseInfo) {
19016    return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
19017}
19018static inline HRESULT ISpeechRecoResult2_Alternates(ISpeechRecoResult2* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
19019    return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
19020}
19021static inline HRESULT ISpeechRecoResult2_Audio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
19022    return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
19023}
19024static inline HRESULT ISpeechRecoResult2_SpeakAudio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
19025    return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
19026}
19027static inline HRESULT ISpeechRecoResult2_SaveToMemory(ISpeechRecoResult2* This,VARIANT *ResultBlock) {
19028    return This->lpVtbl->SaveToMemory(This,ResultBlock);
19029}
19030static inline HRESULT ISpeechRecoResult2_DiscardResultInfo(ISpeechRecoResult2* This,SpeechDiscardType ValueTypes) {
19031    return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
19032}
19033/*** ISpeechRecoResult2 methods ***/
19034static inline HRESULT ISpeechRecoResult2_SetTextFeedback(ISpeechRecoResult2* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
19035    return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
19036}
19037#endif
19038#endif
19039
19040#endif
19041
19042
19043#endif  /* __ISpeechRecoResult2_INTERFACE_DEFINED__ */
19044
19045/*****************************************************************************
19046 * ISpeechRecoResultDispatch interface
19047 */
19048#ifndef __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
19049#define __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
19050
19051DEFINE_GUID(IID_ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2);
19052#if defined(__cplusplus) && !defined(CINTERFACE)
19053MIDL_INTERFACE("6d60eb64-aced-40a6-bbf3-4e557f71dee2")
19054ISpeechRecoResultDispatch : public IDispatch
19055{
19056    virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
19057        ISpeechRecoContext **RecoContext) = 0;
19058
19059    virtual HRESULT STDMETHODCALLTYPE get_Times(
19060        ISpeechRecoResultTimes **Times) = 0;
19061
19062    virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
19063        ISpeechAudioFormat *Format) = 0;
19064
19065    virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
19066        ISpeechAudioFormat **Format) = 0;
19067
19068    virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
19069        ISpeechPhraseInfo **PhraseInfo) = 0;
19070
19071    virtual HRESULT STDMETHODCALLTYPE Alternates(
19072        LONG RequestCount,
19073        LONG StartElement,
19074        LONG Elements,
19075        ISpeechPhraseAlternates **Alternates) = 0;
19076
19077    virtual HRESULT STDMETHODCALLTYPE Audio(
19078        LONG StartElement,
19079        LONG Elements,
19080        ISpeechMemoryStream **Stream) = 0;
19081
19082    virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
19083        LONG StartElement,
19084        LONG Elements,
19085        SpeechVoiceSpeakFlags Flags,
19086        LONG *StreamNumber) = 0;
19087
19088    virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
19089        VARIANT *ResultBlock) = 0;
19090
19091    virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
19092        SpeechDiscardType ValueTypes) = 0;
19093
19094    virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
19095        SPXMLRESULTOPTIONS Options,
19096        BSTR *pResult) = 0;
19097
19098    virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
19099        LONG *LineNumber,
19100        BSTR *ScriptLine,
19101        BSTR *Source,
19102        BSTR *Description,
19103        HRESULT *ResultCode,
19104        VARIANT_BOOL *IsError) = 0;
19105
19106    virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
19107        BSTR Feedback,
19108        VARIANT_BOOL WasSuccessful) = 0;
19109
19110};
19111#ifdef __CRT_UUID_DECL
19112__CRT_UUID_DECL(ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2)
19113#endif
19114#else
19115typedef struct ISpeechRecoResultDispatchVtbl {
19116    BEGIN_INTERFACE
19117
19118    /*** IUnknown methods ***/
19119    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19120        ISpeechRecoResultDispatch *This,
19121        REFIID riid,
19122        void **ppvObject);
19123
19124    ULONG (STDMETHODCALLTYPE *AddRef)(
19125        ISpeechRecoResultDispatch *This);
19126
19127    ULONG (STDMETHODCALLTYPE *Release)(
19128        ISpeechRecoResultDispatch *This);
19129
19130    /*** IDispatch methods ***/
19131    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19132        ISpeechRecoResultDispatch *This,
19133        UINT *pctinfo);
19134
19135    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19136        ISpeechRecoResultDispatch *This,
19137        UINT iTInfo,
19138        LCID lcid,
19139        ITypeInfo **ppTInfo);
19140
19141    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19142        ISpeechRecoResultDispatch *This,
19143        REFIID riid,
19144        LPOLESTR *rgszNames,
19145        UINT cNames,
19146        LCID lcid,
19147        DISPID *rgDispId);
19148
19149    HRESULT (STDMETHODCALLTYPE *Invoke)(
19150        ISpeechRecoResultDispatch *This,
19151        DISPID dispIdMember,
19152        REFIID riid,
19153        LCID lcid,
19154        WORD wFlags,
19155        DISPPARAMS *pDispParams,
19156        VARIANT *pVarResult,
19157        EXCEPINFO *pExcepInfo,
19158        UINT *puArgErr);
19159
19160    /*** ISpeechRecoResultDispatch methods ***/
19161    HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
19162        ISpeechRecoResultDispatch *This,
19163        ISpeechRecoContext **RecoContext);
19164
19165    HRESULT (STDMETHODCALLTYPE *get_Times)(
19166        ISpeechRecoResultDispatch *This,
19167        ISpeechRecoResultTimes **Times);
19168
19169    HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
19170        ISpeechRecoResultDispatch *This,
19171        ISpeechAudioFormat *Format);
19172
19173    HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
19174        ISpeechRecoResultDispatch *This,
19175        ISpeechAudioFormat **Format);
19176
19177    HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
19178        ISpeechRecoResultDispatch *This,
19179        ISpeechPhraseInfo **PhraseInfo);
19180
19181    HRESULT (STDMETHODCALLTYPE *Alternates)(
19182        ISpeechRecoResultDispatch *This,
19183        LONG RequestCount,
19184        LONG StartElement,
19185        LONG Elements,
19186        ISpeechPhraseAlternates **Alternates);
19187
19188    HRESULT (STDMETHODCALLTYPE *Audio)(
19189        ISpeechRecoResultDispatch *This,
19190        LONG StartElement,
19191        LONG Elements,
19192        ISpeechMemoryStream **Stream);
19193
19194    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
19195        ISpeechRecoResultDispatch *This,
19196        LONG StartElement,
19197        LONG Elements,
19198        SpeechVoiceSpeakFlags Flags,
19199        LONG *StreamNumber);
19200
19201    HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
19202        ISpeechRecoResultDispatch *This,
19203        VARIANT *ResultBlock);
19204
19205    HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
19206        ISpeechRecoResultDispatch *This,
19207        SpeechDiscardType ValueTypes);
19208
19209    HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
19210        ISpeechRecoResultDispatch *This,
19211        SPXMLRESULTOPTIONS Options,
19212        BSTR *pResult);
19213
19214    HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
19215        ISpeechRecoResultDispatch *This,
19216        LONG *LineNumber,
19217        BSTR *ScriptLine,
19218        BSTR *Source,
19219        BSTR *Description,
19220        HRESULT *ResultCode,
19221        VARIANT_BOOL *IsError);
19222
19223    HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
19224        ISpeechRecoResultDispatch *This,
19225        BSTR Feedback,
19226        VARIANT_BOOL WasSuccessful);
19227
19228    END_INTERFACE
19229} ISpeechRecoResultDispatchVtbl;
19230
19231interface ISpeechRecoResultDispatch {
19232    CONST_VTBL ISpeechRecoResultDispatchVtbl* lpVtbl;
19233};
19234
19235#ifdef COBJMACROS
19236#ifndef WIDL_C_INLINE_WRAPPERS
19237/*** IUnknown methods ***/
19238#define ISpeechRecoResultDispatch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19239#define ISpeechRecoResultDispatch_AddRef(This) (This)->lpVtbl->AddRef(This)
19240#define ISpeechRecoResultDispatch_Release(This) (This)->lpVtbl->Release(This)
19241/*** IDispatch methods ***/
19242#define ISpeechRecoResultDispatch_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19243#define ISpeechRecoResultDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19244#define ISpeechRecoResultDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19245#define ISpeechRecoResultDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19246/*** ISpeechRecoResultDispatch methods ***/
19247#define ISpeechRecoResultDispatch_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
19248#define ISpeechRecoResultDispatch_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
19249#define ISpeechRecoResultDispatch_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
19250#define ISpeechRecoResultDispatch_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
19251#define ISpeechRecoResultDispatch_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
19252#define ISpeechRecoResultDispatch_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
19253#define ISpeechRecoResultDispatch_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
19254#define ISpeechRecoResultDispatch_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
19255#define ISpeechRecoResultDispatch_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
19256#define ISpeechRecoResultDispatch_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
19257#define ISpeechRecoResultDispatch_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
19258#define ISpeechRecoResultDispatch_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
19259#define ISpeechRecoResultDispatch_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
19260#else
19261/*** IUnknown methods ***/
19262static inline HRESULT ISpeechRecoResultDispatch_QueryInterface(ISpeechRecoResultDispatch* This,REFIID riid,void **ppvObject) {
19263    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19264}
19265static inline ULONG ISpeechRecoResultDispatch_AddRef(ISpeechRecoResultDispatch* This) {
19266    return This->lpVtbl->AddRef(This);
19267}
19268static inline ULONG ISpeechRecoResultDispatch_Release(ISpeechRecoResultDispatch* This) {
19269    return This->lpVtbl->Release(This);
19270}
19271/*** IDispatch methods ***/
19272static inline HRESULT ISpeechRecoResultDispatch_GetTypeInfoCount(ISpeechRecoResultDispatch* This,UINT *pctinfo) {
19273    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19274}
19275static inline HRESULT ISpeechRecoResultDispatch_GetTypeInfo(ISpeechRecoResultDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19276    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19277}
19278static inline HRESULT ISpeechRecoResultDispatch_GetIDsOfNames(ISpeechRecoResultDispatch* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19279    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19280}
19281static inline HRESULT ISpeechRecoResultDispatch_Invoke(ISpeechRecoResultDispatch* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19282    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19283}
19284/*** ISpeechRecoResultDispatch methods ***/
19285static inline HRESULT ISpeechRecoResultDispatch_get_RecoContext(ISpeechRecoResultDispatch* This,ISpeechRecoContext **RecoContext) {
19286    return This->lpVtbl->get_RecoContext(This,RecoContext);
19287}
19288static inline HRESULT ISpeechRecoResultDispatch_get_Times(ISpeechRecoResultDispatch* This,ISpeechRecoResultTimes **Times) {
19289    return This->lpVtbl->get_Times(This,Times);
19290}
19291static inline HRESULT ISpeechRecoResultDispatch_putref_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat *Format) {
19292    return This->lpVtbl->putref_AudioFormat(This,Format);
19293}
19294static inline HRESULT ISpeechRecoResultDispatch_get_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat **Format) {
19295    return This->lpVtbl->get_AudioFormat(This,Format);
19296}
19297static inline HRESULT ISpeechRecoResultDispatch_get_PhraseInfo(ISpeechRecoResultDispatch* This,ISpeechPhraseInfo **PhraseInfo) {
19298    return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
19299}
19300static inline HRESULT ISpeechRecoResultDispatch_Alternates(ISpeechRecoResultDispatch* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
19301    return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
19302}
19303static inline HRESULT ISpeechRecoResultDispatch_Audio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
19304    return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
19305}
19306static inline HRESULT ISpeechRecoResultDispatch_SpeakAudio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
19307    return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
19308}
19309static inline HRESULT ISpeechRecoResultDispatch_SaveToMemory(ISpeechRecoResultDispatch* This,VARIANT *ResultBlock) {
19310    return This->lpVtbl->SaveToMemory(This,ResultBlock);
19311}
19312static inline HRESULT ISpeechRecoResultDispatch_DiscardResultInfo(ISpeechRecoResultDispatch* This,SpeechDiscardType ValueTypes) {
19313    return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
19314}
19315static inline HRESULT ISpeechRecoResultDispatch_GetXMLResult(ISpeechRecoResultDispatch* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
19316    return This->lpVtbl->GetXMLResult(This,Options,pResult);
19317}
19318static inline HRESULT ISpeechRecoResultDispatch_GetXMLErrorInfo(ISpeechRecoResultDispatch* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,HRESULT *ResultCode,VARIANT_BOOL *IsError) {
19319    return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
19320}
19321static inline HRESULT ISpeechRecoResultDispatch_SetTextFeedback(ISpeechRecoResultDispatch* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
19322    return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
19323}
19324#endif
19325#endif
19326
19327#endif
19328
19329
19330#endif  /* __ISpeechRecoResultDispatch_INTERFACE_DEFINED__ */
19331
19332/*****************************************************************************
19333 * ISpeechPhraseInfoBuilder interface
19334 */
19335#ifndef __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
19336#define __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
19337
19338DEFINE_GUID(IID_ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33);
19339#if defined(__cplusplus) && !defined(CINTERFACE)
19340MIDL_INTERFACE("3b151836-df3a-4e0a-846c-d2adc9334333")
19341ISpeechPhraseInfoBuilder : public IDispatch
19342{
19343    virtual HRESULT STDMETHODCALLTYPE RestorePhraseFromMemory(
19344        VARIANT *PhraseInMemory,
19345        ISpeechPhraseInfo **PhraseInfo) = 0;
19346
19347};
19348#ifdef __CRT_UUID_DECL
19349__CRT_UUID_DECL(ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33)
19350#endif
19351#else
19352typedef struct ISpeechPhraseInfoBuilderVtbl {
19353    BEGIN_INTERFACE
19354
19355    /*** IUnknown methods ***/
19356    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19357        ISpeechPhraseInfoBuilder *This,
19358        REFIID riid,
19359        void **ppvObject);
19360
19361    ULONG (STDMETHODCALLTYPE *AddRef)(
19362        ISpeechPhraseInfoBuilder *This);
19363
19364    ULONG (STDMETHODCALLTYPE *Release)(
19365        ISpeechPhraseInfoBuilder *This);
19366
19367    /*** IDispatch methods ***/
19368    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19369        ISpeechPhraseInfoBuilder *This,
19370        UINT *pctinfo);
19371
19372    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19373        ISpeechPhraseInfoBuilder *This,
19374        UINT iTInfo,
19375        LCID lcid,
19376        ITypeInfo **ppTInfo);
19377
19378    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19379        ISpeechPhraseInfoBuilder *This,
19380        REFIID riid,
19381        LPOLESTR *rgszNames,
19382        UINT cNames,
19383        LCID lcid,
19384        DISPID *rgDispId);
19385
19386    HRESULT (STDMETHODCALLTYPE *Invoke)(
19387        ISpeechPhraseInfoBuilder *This,
19388        DISPID dispIdMember,
19389        REFIID riid,
19390        LCID lcid,
19391        WORD wFlags,
19392        DISPPARAMS *pDispParams,
19393        VARIANT *pVarResult,
19394        EXCEPINFO *pExcepInfo,
19395        UINT *puArgErr);
19396
19397    /*** ISpeechPhraseInfoBuilder methods ***/
19398    HRESULT (STDMETHODCALLTYPE *RestorePhraseFromMemory)(
19399        ISpeechPhraseInfoBuilder *This,
19400        VARIANT *PhraseInMemory,
19401        ISpeechPhraseInfo **PhraseInfo);
19402
19403    END_INTERFACE
19404} ISpeechPhraseInfoBuilderVtbl;
19405
19406interface ISpeechPhraseInfoBuilder {
19407    CONST_VTBL ISpeechPhraseInfoBuilderVtbl* lpVtbl;
19408};
19409
19410#ifdef COBJMACROS
19411#ifndef WIDL_C_INLINE_WRAPPERS
19412/*** IUnknown methods ***/
19413#define ISpeechPhraseInfoBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19414#define ISpeechPhraseInfoBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
19415#define ISpeechPhraseInfoBuilder_Release(This) (This)->lpVtbl->Release(This)
19416/*** IDispatch methods ***/
19417#define ISpeechPhraseInfoBuilder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19418#define ISpeechPhraseInfoBuilder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19419#define ISpeechPhraseInfoBuilder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19420#define ISpeechPhraseInfoBuilder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19421/*** ISpeechPhraseInfoBuilder methods ***/
19422#define ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo) (This)->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo)
19423#else
19424/*** IUnknown methods ***/
19425static inline HRESULT ISpeechPhraseInfoBuilder_QueryInterface(ISpeechPhraseInfoBuilder* This,REFIID riid,void **ppvObject) {
19426    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19427}
19428static inline ULONG ISpeechPhraseInfoBuilder_AddRef(ISpeechPhraseInfoBuilder* This) {
19429    return This->lpVtbl->AddRef(This);
19430}
19431static inline ULONG ISpeechPhraseInfoBuilder_Release(ISpeechPhraseInfoBuilder* This) {
19432    return This->lpVtbl->Release(This);
19433}
19434/*** IDispatch methods ***/
19435static inline HRESULT ISpeechPhraseInfoBuilder_GetTypeInfoCount(ISpeechPhraseInfoBuilder* This,UINT *pctinfo) {
19436    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19437}
19438static inline HRESULT ISpeechPhraseInfoBuilder_GetTypeInfo(ISpeechPhraseInfoBuilder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19439    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19440}
19441static inline HRESULT ISpeechPhraseInfoBuilder_GetIDsOfNames(ISpeechPhraseInfoBuilder* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19442    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19443}
19444static inline HRESULT ISpeechPhraseInfoBuilder_Invoke(ISpeechPhraseInfoBuilder* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19445    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19446}
19447/*** ISpeechPhraseInfoBuilder methods ***/
19448static inline HRESULT ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(ISpeechPhraseInfoBuilder* This,VARIANT *PhraseInMemory,ISpeechPhraseInfo **PhraseInfo) {
19449    return This->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo);
19450}
19451#endif
19452#endif
19453
19454#endif
19455
19456
19457#endif  /* __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__ */
19458
19459/*****************************************************************************
19460 * ISpeechRecoResultTimes interface
19461 */
19462#ifndef __ISpeechRecoResultTimes_INTERFACE_DEFINED__
19463#define __ISpeechRecoResultTimes_INTERFACE_DEFINED__
19464
19465DEFINE_GUID(IID_ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0);
19466#if defined(__cplusplus) && !defined(CINTERFACE)
19467MIDL_INTERFACE("62b3b8fb-f6e7-41be-bdcb-056b1c29efc0")
19468ISpeechRecoResultTimes : public IDispatch
19469{
19470    virtual HRESULT STDMETHODCALLTYPE get_StreamTime(
19471        VARIANT *Time) = 0;
19472
19473    virtual HRESULT STDMETHODCALLTYPE get_Length(
19474        VARIANT *Length) = 0;
19475
19476    virtual HRESULT STDMETHODCALLTYPE get_TickCount(
19477        LONG *TickCount) = 0;
19478
19479    virtual HRESULT STDMETHODCALLTYPE get_OffsetFromStart(
19480        VARIANT *OffsetFromStart) = 0;
19481
19482};
19483#ifdef __CRT_UUID_DECL
19484__CRT_UUID_DECL(ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0)
19485#endif
19486#else
19487typedef struct ISpeechRecoResultTimesVtbl {
19488    BEGIN_INTERFACE
19489
19490    /*** IUnknown methods ***/
19491    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19492        ISpeechRecoResultTimes *This,
19493        REFIID riid,
19494        void **ppvObject);
19495
19496    ULONG (STDMETHODCALLTYPE *AddRef)(
19497        ISpeechRecoResultTimes *This);
19498
19499    ULONG (STDMETHODCALLTYPE *Release)(
19500        ISpeechRecoResultTimes *This);
19501
19502    /*** IDispatch methods ***/
19503    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19504        ISpeechRecoResultTimes *This,
19505        UINT *pctinfo);
19506
19507    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19508        ISpeechRecoResultTimes *This,
19509        UINT iTInfo,
19510        LCID lcid,
19511        ITypeInfo **ppTInfo);
19512
19513    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19514        ISpeechRecoResultTimes *This,
19515        REFIID riid,
19516        LPOLESTR *rgszNames,
19517        UINT cNames,
19518        LCID lcid,
19519        DISPID *rgDispId);
19520
19521    HRESULT (STDMETHODCALLTYPE *Invoke)(
19522        ISpeechRecoResultTimes *This,
19523        DISPID dispIdMember,
19524        REFIID riid,
19525        LCID lcid,
19526        WORD wFlags,
19527        DISPPARAMS *pDispParams,
19528        VARIANT *pVarResult,
19529        EXCEPINFO *pExcepInfo,
19530        UINT *puArgErr);
19531
19532    /*** ISpeechRecoResultTimes methods ***/
19533    HRESULT (STDMETHODCALLTYPE *get_StreamTime)(
19534        ISpeechRecoResultTimes *This,
19535        VARIANT *Time);
19536
19537    HRESULT (STDMETHODCALLTYPE *get_Length)(
19538        ISpeechRecoResultTimes *This,
19539        VARIANT *Length);
19540
19541    HRESULT (STDMETHODCALLTYPE *get_TickCount)(
19542        ISpeechRecoResultTimes *This,
19543        LONG *TickCount);
19544
19545    HRESULT (STDMETHODCALLTYPE *get_OffsetFromStart)(
19546        ISpeechRecoResultTimes *This,
19547        VARIANT *OffsetFromStart);
19548
19549    END_INTERFACE
19550} ISpeechRecoResultTimesVtbl;
19551
19552interface ISpeechRecoResultTimes {
19553    CONST_VTBL ISpeechRecoResultTimesVtbl* lpVtbl;
19554};
19555
19556#ifdef COBJMACROS
19557#ifndef WIDL_C_INLINE_WRAPPERS
19558/*** IUnknown methods ***/
19559#define ISpeechRecoResultTimes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19560#define ISpeechRecoResultTimes_AddRef(This) (This)->lpVtbl->AddRef(This)
19561#define ISpeechRecoResultTimes_Release(This) (This)->lpVtbl->Release(This)
19562/*** IDispatch methods ***/
19563#define ISpeechRecoResultTimes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19564#define ISpeechRecoResultTimes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19565#define ISpeechRecoResultTimes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19566#define ISpeechRecoResultTimes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19567/*** ISpeechRecoResultTimes methods ***/
19568#define ISpeechRecoResultTimes_get_StreamTime(This,Time) (This)->lpVtbl->get_StreamTime(This,Time)
19569#define ISpeechRecoResultTimes_get_Length(This,Length) (This)->lpVtbl->get_Length(This,Length)
19570#define ISpeechRecoResultTimes_get_TickCount(This,TickCount) (This)->lpVtbl->get_TickCount(This,TickCount)
19571#define ISpeechRecoResultTimes_get_OffsetFromStart(This,OffsetFromStart) (This)->lpVtbl->get_OffsetFromStart(This,OffsetFromStart)
19572#else
19573/*** IUnknown methods ***/
19574static inline HRESULT ISpeechRecoResultTimes_QueryInterface(ISpeechRecoResultTimes* This,REFIID riid,void **ppvObject) {
19575    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19576}
19577static inline ULONG ISpeechRecoResultTimes_AddRef(ISpeechRecoResultTimes* This) {
19578    return This->lpVtbl->AddRef(This);
19579}
19580static inline ULONG ISpeechRecoResultTimes_Release(ISpeechRecoResultTimes* This) {
19581    return This->lpVtbl->Release(This);
19582}
19583/*** IDispatch methods ***/
19584static inline HRESULT ISpeechRecoResultTimes_GetTypeInfoCount(ISpeechRecoResultTimes* This,UINT *pctinfo) {
19585    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19586}
19587static inline HRESULT ISpeechRecoResultTimes_GetTypeInfo(ISpeechRecoResultTimes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19588    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19589}
19590static inline HRESULT ISpeechRecoResultTimes_GetIDsOfNames(ISpeechRecoResultTimes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19591    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19592}
19593static inline HRESULT ISpeechRecoResultTimes_Invoke(ISpeechRecoResultTimes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19594    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19595}
19596/*** ISpeechRecoResultTimes methods ***/
19597static inline HRESULT ISpeechRecoResultTimes_get_StreamTime(ISpeechRecoResultTimes* This,VARIANT *Time) {
19598    return This->lpVtbl->get_StreamTime(This,Time);
19599}
19600static inline HRESULT ISpeechRecoResultTimes_get_Length(ISpeechRecoResultTimes* This,VARIANT *Length) {
19601    return This->lpVtbl->get_Length(This,Length);
19602}
19603static inline HRESULT ISpeechRecoResultTimes_get_TickCount(ISpeechRecoResultTimes* This,LONG *TickCount) {
19604    return This->lpVtbl->get_TickCount(This,TickCount);
19605}
19606static inline HRESULT ISpeechRecoResultTimes_get_OffsetFromStart(ISpeechRecoResultTimes* This,VARIANT *OffsetFromStart) {
19607    return This->lpVtbl->get_OffsetFromStart(This,OffsetFromStart);
19608}
19609#endif
19610#endif
19611
19612#endif
19613
19614
19615#endif  /* __ISpeechRecoResultTimes_INTERFACE_DEFINED__ */
19616
19617/*****************************************************************************
19618 * ISpeechPhraseAlternate interface
19619 */
19620#ifndef __ISpeechPhraseAlternate_INTERFACE_DEFINED__
19621#define __ISpeechPhraseAlternate_INTERFACE_DEFINED__
19622
19623DEFINE_GUID(IID_ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73);
19624#if defined(__cplusplus) && !defined(CINTERFACE)
19625MIDL_INTERFACE("27864a2a-2b9f-4cb8-92d3-0d2722fd1e73")
19626ISpeechPhraseAlternate : public IDispatch
19627{
19628    virtual HRESULT STDMETHODCALLTYPE get_RecoResult(
19629        ISpeechRecoResult **RecoResult) = 0;
19630
19631    virtual HRESULT STDMETHODCALLTYPE get_StartElementInResult(
19632        LONG *StartElement) = 0;
19633
19634    virtual HRESULT STDMETHODCALLTYPE get_NumberOfElementsInResult(
19635        LONG *NumberOfElements) = 0;
19636
19637    virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
19638        ISpeechPhraseInfo **PhraseInfo) = 0;
19639
19640    virtual HRESULT STDMETHODCALLTYPE Commit(
19641        ) = 0;
19642
19643};
19644#ifdef __CRT_UUID_DECL
19645__CRT_UUID_DECL(ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73)
19646#endif
19647#else
19648typedef struct ISpeechPhraseAlternateVtbl {
19649    BEGIN_INTERFACE
19650
19651    /*** IUnknown methods ***/
19652    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19653        ISpeechPhraseAlternate *This,
19654        REFIID riid,
19655        void **ppvObject);
19656
19657    ULONG (STDMETHODCALLTYPE *AddRef)(
19658        ISpeechPhraseAlternate *This);
19659
19660    ULONG (STDMETHODCALLTYPE *Release)(
19661        ISpeechPhraseAlternate *This);
19662
19663    /*** IDispatch methods ***/
19664    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19665        ISpeechPhraseAlternate *This,
19666        UINT *pctinfo);
19667
19668    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19669        ISpeechPhraseAlternate *This,
19670        UINT iTInfo,
19671        LCID lcid,
19672        ITypeInfo **ppTInfo);
19673
19674    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19675        ISpeechPhraseAlternate *This,
19676        REFIID riid,
19677        LPOLESTR *rgszNames,
19678        UINT cNames,
19679        LCID lcid,
19680        DISPID *rgDispId);
19681
19682    HRESULT (STDMETHODCALLTYPE *Invoke)(
19683        ISpeechPhraseAlternate *This,
19684        DISPID dispIdMember,
19685        REFIID riid,
19686        LCID lcid,
19687        WORD wFlags,
19688        DISPPARAMS *pDispParams,
19689        VARIANT *pVarResult,
19690        EXCEPINFO *pExcepInfo,
19691        UINT *puArgErr);
19692
19693    /*** ISpeechPhraseAlternate methods ***/
19694    HRESULT (STDMETHODCALLTYPE *get_RecoResult)(
19695        ISpeechPhraseAlternate *This,
19696        ISpeechRecoResult **RecoResult);
19697
19698    HRESULT (STDMETHODCALLTYPE *get_StartElementInResult)(
19699        ISpeechPhraseAlternate *This,
19700        LONG *StartElement);
19701
19702    HRESULT (STDMETHODCALLTYPE *get_NumberOfElementsInResult)(
19703        ISpeechPhraseAlternate *This,
19704        LONG *NumberOfElements);
19705
19706    HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
19707        ISpeechPhraseAlternate *This,
19708        ISpeechPhraseInfo **PhraseInfo);
19709
19710    HRESULT (STDMETHODCALLTYPE *Commit)(
19711        ISpeechPhraseAlternate *This);
19712
19713    END_INTERFACE
19714} ISpeechPhraseAlternateVtbl;
19715
19716interface ISpeechPhraseAlternate {
19717    CONST_VTBL ISpeechPhraseAlternateVtbl* lpVtbl;
19718};
19719
19720#ifdef COBJMACROS
19721#ifndef WIDL_C_INLINE_WRAPPERS
19722/*** IUnknown methods ***/
19723#define ISpeechPhraseAlternate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19724#define ISpeechPhraseAlternate_AddRef(This) (This)->lpVtbl->AddRef(This)
19725#define ISpeechPhraseAlternate_Release(This) (This)->lpVtbl->Release(This)
19726/*** IDispatch methods ***/
19727#define ISpeechPhraseAlternate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19728#define ISpeechPhraseAlternate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19729#define ISpeechPhraseAlternate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19730#define ISpeechPhraseAlternate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19731/*** ISpeechPhraseAlternate methods ***/
19732#define ISpeechPhraseAlternate_get_RecoResult(This,RecoResult) (This)->lpVtbl->get_RecoResult(This,RecoResult)
19733#define ISpeechPhraseAlternate_get_StartElementInResult(This,StartElement) (This)->lpVtbl->get_StartElementInResult(This,StartElement)
19734#define ISpeechPhraseAlternate_get_NumberOfElementsInResult(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements)
19735#define ISpeechPhraseAlternate_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
19736#define ISpeechPhraseAlternate_Commit(This) (This)->lpVtbl->Commit(This)
19737#else
19738/*** IUnknown methods ***/
19739static inline HRESULT ISpeechPhraseAlternate_QueryInterface(ISpeechPhraseAlternate* This,REFIID riid,void **ppvObject) {
19740    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19741}
19742static inline ULONG ISpeechPhraseAlternate_AddRef(ISpeechPhraseAlternate* This) {
19743    return This->lpVtbl->AddRef(This);
19744}
19745static inline ULONG ISpeechPhraseAlternate_Release(ISpeechPhraseAlternate* This) {
19746    return This->lpVtbl->Release(This);
19747}
19748/*** IDispatch methods ***/
19749static inline HRESULT ISpeechPhraseAlternate_GetTypeInfoCount(ISpeechPhraseAlternate* This,UINT *pctinfo) {
19750    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19751}
19752static inline HRESULT ISpeechPhraseAlternate_GetTypeInfo(ISpeechPhraseAlternate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19753    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19754}
19755static inline HRESULT ISpeechPhraseAlternate_GetIDsOfNames(ISpeechPhraseAlternate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19756    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19757}
19758static inline HRESULT ISpeechPhraseAlternate_Invoke(ISpeechPhraseAlternate* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19759    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19760}
19761/*** ISpeechPhraseAlternate methods ***/
19762static inline HRESULT ISpeechPhraseAlternate_get_RecoResult(ISpeechPhraseAlternate* This,ISpeechRecoResult **RecoResult) {
19763    return This->lpVtbl->get_RecoResult(This,RecoResult);
19764}
19765static inline HRESULT ISpeechPhraseAlternate_get_StartElementInResult(ISpeechPhraseAlternate* This,LONG *StartElement) {
19766    return This->lpVtbl->get_StartElementInResult(This,StartElement);
19767}
19768static inline HRESULT ISpeechPhraseAlternate_get_NumberOfElementsInResult(ISpeechPhraseAlternate* This,LONG *NumberOfElements) {
19769    return This->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements);
19770}
19771static inline HRESULT ISpeechPhraseAlternate_get_PhraseInfo(ISpeechPhraseAlternate* This,ISpeechPhraseInfo **PhraseInfo) {
19772    return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
19773}
19774static inline HRESULT ISpeechPhraseAlternate_Commit(ISpeechPhraseAlternate* This) {
19775    return This->lpVtbl->Commit(This);
19776}
19777#endif
19778#endif
19779
19780#endif
19781
19782
19783#endif  /* __ISpeechPhraseAlternate_INTERFACE_DEFINED__ */
19784
19785/*****************************************************************************
19786 * ISpeechPhraseAlternates interface
19787 */
19788#ifndef __ISpeechPhraseAlternates_INTERFACE_DEFINED__
19789#define __ISpeechPhraseAlternates_INTERFACE_DEFINED__
19790
19791DEFINE_GUID(IID_ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2);
19792#if defined(__cplusplus) && !defined(CINTERFACE)
19793MIDL_INTERFACE("b238b6d5-f276-4c3d-a6c1-2974801c3cc2")
19794ISpeechPhraseAlternates : public IDispatch
19795{
19796    virtual HRESULT STDMETHODCALLTYPE get_Count(
19797        LONG *Count) = 0;
19798
19799    virtual HRESULT STDMETHODCALLTYPE Item(
19800        LONG Index,
19801        ISpeechPhraseAlternate **PhraseAlternate) = 0;
19802
19803    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
19804        IUnknown **EnumVARIANT) = 0;
19805
19806};
19807#ifdef __CRT_UUID_DECL
19808__CRT_UUID_DECL(ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2)
19809#endif
19810#else
19811typedef struct ISpeechPhraseAlternatesVtbl {
19812    BEGIN_INTERFACE
19813
19814    /*** IUnknown methods ***/
19815    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19816        ISpeechPhraseAlternates *This,
19817        REFIID riid,
19818        void **ppvObject);
19819
19820    ULONG (STDMETHODCALLTYPE *AddRef)(
19821        ISpeechPhraseAlternates *This);
19822
19823    ULONG (STDMETHODCALLTYPE *Release)(
19824        ISpeechPhraseAlternates *This);
19825
19826    /*** IDispatch methods ***/
19827    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19828        ISpeechPhraseAlternates *This,
19829        UINT *pctinfo);
19830
19831    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19832        ISpeechPhraseAlternates *This,
19833        UINT iTInfo,
19834        LCID lcid,
19835        ITypeInfo **ppTInfo);
19836
19837    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19838        ISpeechPhraseAlternates *This,
19839        REFIID riid,
19840        LPOLESTR *rgszNames,
19841        UINT cNames,
19842        LCID lcid,
19843        DISPID *rgDispId);
19844
19845    HRESULT (STDMETHODCALLTYPE *Invoke)(
19846        ISpeechPhraseAlternates *This,
19847        DISPID dispIdMember,
19848        REFIID riid,
19849        LCID lcid,
19850        WORD wFlags,
19851        DISPPARAMS *pDispParams,
19852        VARIANT *pVarResult,
19853        EXCEPINFO *pExcepInfo,
19854        UINT *puArgErr);
19855
19856    /*** ISpeechPhraseAlternates methods ***/
19857    HRESULT (STDMETHODCALLTYPE *get_Count)(
19858        ISpeechPhraseAlternates *This,
19859        LONG *Count);
19860
19861    HRESULT (STDMETHODCALLTYPE *Item)(
19862        ISpeechPhraseAlternates *This,
19863        LONG Index,
19864        ISpeechPhraseAlternate **PhraseAlternate);
19865
19866    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
19867        ISpeechPhraseAlternates *This,
19868        IUnknown **EnumVARIANT);
19869
19870    END_INTERFACE
19871} ISpeechPhraseAlternatesVtbl;
19872
19873interface ISpeechPhraseAlternates {
19874    CONST_VTBL ISpeechPhraseAlternatesVtbl* lpVtbl;
19875};
19876
19877#ifdef COBJMACROS
19878#ifndef WIDL_C_INLINE_WRAPPERS
19879/*** IUnknown methods ***/
19880#define ISpeechPhraseAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19881#define ISpeechPhraseAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
19882#define ISpeechPhraseAlternates_Release(This) (This)->lpVtbl->Release(This)
19883/*** IDispatch methods ***/
19884#define ISpeechPhraseAlternates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19885#define ISpeechPhraseAlternates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19886#define ISpeechPhraseAlternates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19887#define ISpeechPhraseAlternates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19888/*** ISpeechPhraseAlternates methods ***/
19889#define ISpeechPhraseAlternates_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
19890#define ISpeechPhraseAlternates_Item(This,Index,PhraseAlternate) (This)->lpVtbl->Item(This,Index,PhraseAlternate)
19891#define ISpeechPhraseAlternates_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
19892#else
19893/*** IUnknown methods ***/
19894static inline HRESULT ISpeechPhraseAlternates_QueryInterface(ISpeechPhraseAlternates* This,REFIID riid,void **ppvObject) {
19895    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19896}
19897static inline ULONG ISpeechPhraseAlternates_AddRef(ISpeechPhraseAlternates* This) {
19898    return This->lpVtbl->AddRef(This);
19899}
19900static inline ULONG ISpeechPhraseAlternates_Release(ISpeechPhraseAlternates* This) {
19901    return This->lpVtbl->Release(This);
19902}
19903/*** IDispatch methods ***/
19904static inline HRESULT ISpeechPhraseAlternates_GetTypeInfoCount(ISpeechPhraseAlternates* This,UINT *pctinfo) {
19905    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19906}
19907static inline HRESULT ISpeechPhraseAlternates_GetTypeInfo(ISpeechPhraseAlternates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19908    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19909}
19910static inline HRESULT ISpeechPhraseAlternates_GetIDsOfNames(ISpeechPhraseAlternates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19911    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19912}
19913static inline HRESULT ISpeechPhraseAlternates_Invoke(ISpeechPhraseAlternates* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19914    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19915}
19916/*** ISpeechPhraseAlternates methods ***/
19917static inline HRESULT ISpeechPhraseAlternates_get_Count(ISpeechPhraseAlternates* This,LONG *Count) {
19918    return This->lpVtbl->get_Count(This,Count);
19919}
19920static inline HRESULT ISpeechPhraseAlternates_Item(ISpeechPhraseAlternates* This,LONG Index,ISpeechPhraseAlternate **PhraseAlternate) {
19921    return This->lpVtbl->Item(This,Index,PhraseAlternate);
19922}
19923static inline HRESULT ISpeechPhraseAlternates_get__NewEnum(ISpeechPhraseAlternates* This,IUnknown **EnumVARIANT) {
19924    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
19925}
19926#endif
19927#endif
19928
19929#endif
19930
19931
19932#endif  /* __ISpeechPhraseAlternates_INTERFACE_DEFINED__ */
19933
19934/*****************************************************************************
19935 * ISpeechPhraseInfo interface
19936 */
19937#ifndef __ISpeechPhraseInfo_INTERFACE_DEFINED__
19938#define __ISpeechPhraseInfo_INTERFACE_DEFINED__
19939
19940DEFINE_GUID(IID_ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3);
19941#if defined(__cplusplus) && !defined(CINTERFACE)
19942MIDL_INTERFACE("961559cf-4e67-4662-8bf0-d93f1fcd61b3")
19943ISpeechPhraseInfo : public IDispatch
19944{
19945    virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
19946        LONG *LanguageId) = 0;
19947
19948    virtual HRESULT STDMETHODCALLTYPE get_GrammarId(
19949        VARIANT *GrammarId) = 0;
19950
19951    virtual HRESULT STDMETHODCALLTYPE get_StartTime(
19952        VARIANT *StartTime) = 0;
19953
19954    virtual HRESULT STDMETHODCALLTYPE get_AudioStreamPosition(
19955        VARIANT *AudioStreamPosition) = 0;
19956
19957    virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
19958        LONG *pAudioSizeBytes) = 0;
19959
19960    virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
19961        LONG *RetainedSizeBytes) = 0;
19962
19963    virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
19964        LONG *AudioSizeTime) = 0;
19965
19966    virtual HRESULT STDMETHODCALLTYPE get_Rule(
19967        ISpeechPhraseRule **Rule) = 0;
19968
19969    virtual HRESULT STDMETHODCALLTYPE get_Properties(
19970        ISpeechPhraseProperties **Properties) = 0;
19971
19972    virtual HRESULT STDMETHODCALLTYPE get_Elements(
19973        ISpeechPhraseElements **Elements) = 0;
19974
19975    virtual HRESULT STDMETHODCALLTYPE get_Replacements(
19976        ISpeechPhraseReplacements **Replacements) = 0;
19977
19978    virtual HRESULT STDMETHODCALLTYPE get_EngineId(
19979        BSTR *EngineIdGuid) = 0;
19980
19981    virtual HRESULT STDMETHODCALLTYPE get_EnginePrivateData(
19982        VARIANT *PrivateData) = 0;
19983
19984    virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
19985        VARIANT *PhraseBlock) = 0;
19986
19987    virtual HRESULT STDMETHODCALLTYPE GetText(
19988        LONG StartElement,
19989        LONG Elements,
19990        VARIANT_BOOL UseReplacements,
19991        BSTR *Text) = 0;
19992
19993    virtual HRESULT STDMETHODCALLTYPE GetDisplayAttributes(
19994        LONG StartElement,
19995        LONG Elements,
19996        VARIANT_BOOL UseReplacements,
19997        SpeechDisplayAttributes *DisplayAttributes) = 0;
19998
19999};
20000#ifdef __CRT_UUID_DECL
20001__CRT_UUID_DECL(ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3)
20002#endif
20003#else
20004typedef struct ISpeechPhraseInfoVtbl {
20005    BEGIN_INTERFACE
20006
20007    /*** IUnknown methods ***/
20008    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20009        ISpeechPhraseInfo *This,
20010        REFIID riid,
20011        void **ppvObject);
20012
20013    ULONG (STDMETHODCALLTYPE *AddRef)(
20014        ISpeechPhraseInfo *This);
20015
20016    ULONG (STDMETHODCALLTYPE *Release)(
20017        ISpeechPhraseInfo *This);
20018
20019    /*** IDispatch methods ***/
20020    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20021        ISpeechPhraseInfo *This,
20022        UINT *pctinfo);
20023
20024    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20025        ISpeechPhraseInfo *This,
20026        UINT iTInfo,
20027        LCID lcid,
20028        ITypeInfo **ppTInfo);
20029
20030    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20031        ISpeechPhraseInfo *This,
20032        REFIID riid,
20033        LPOLESTR *rgszNames,
20034        UINT cNames,
20035        LCID lcid,
20036        DISPID *rgDispId);
20037
20038    HRESULT (STDMETHODCALLTYPE *Invoke)(
20039        ISpeechPhraseInfo *This,
20040        DISPID dispIdMember,
20041        REFIID riid,
20042        LCID lcid,
20043        WORD wFlags,
20044        DISPPARAMS *pDispParams,
20045        VARIANT *pVarResult,
20046        EXCEPINFO *pExcepInfo,
20047        UINT *puArgErr);
20048
20049    /*** ISpeechPhraseInfo methods ***/
20050    HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
20051        ISpeechPhraseInfo *This,
20052        LONG *LanguageId);
20053
20054    HRESULT (STDMETHODCALLTYPE *get_GrammarId)(
20055        ISpeechPhraseInfo *This,
20056        VARIANT *GrammarId);
20057
20058    HRESULT (STDMETHODCALLTYPE *get_StartTime)(
20059        ISpeechPhraseInfo *This,
20060        VARIANT *StartTime);
20061
20062    HRESULT (STDMETHODCALLTYPE *get_AudioStreamPosition)(
20063        ISpeechPhraseInfo *This,
20064        VARIANT *AudioStreamPosition);
20065
20066    HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
20067        ISpeechPhraseInfo *This,
20068        LONG *pAudioSizeBytes);
20069
20070    HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
20071        ISpeechPhraseInfo *This,
20072        LONG *RetainedSizeBytes);
20073
20074    HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
20075        ISpeechPhraseInfo *This,
20076        LONG *AudioSizeTime);
20077
20078    HRESULT (STDMETHODCALLTYPE *get_Rule)(
20079        ISpeechPhraseInfo *This,
20080        ISpeechPhraseRule **Rule);
20081
20082    HRESULT (STDMETHODCALLTYPE *get_Properties)(
20083        ISpeechPhraseInfo *This,
20084        ISpeechPhraseProperties **Properties);
20085
20086    HRESULT (STDMETHODCALLTYPE *get_Elements)(
20087        ISpeechPhraseInfo *This,
20088        ISpeechPhraseElements **Elements);
20089
20090    HRESULT (STDMETHODCALLTYPE *get_Replacements)(
20091        ISpeechPhraseInfo *This,
20092        ISpeechPhraseReplacements **Replacements);
20093
20094    HRESULT (STDMETHODCALLTYPE *get_EngineId)(
20095        ISpeechPhraseInfo *This,
20096        BSTR *EngineIdGuid);
20097
20098    HRESULT (STDMETHODCALLTYPE *get_EnginePrivateData)(
20099        ISpeechPhraseInfo *This,
20100        VARIANT *PrivateData);
20101
20102    HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
20103        ISpeechPhraseInfo *This,
20104        VARIANT *PhraseBlock);
20105
20106    HRESULT (STDMETHODCALLTYPE *GetText)(
20107        ISpeechPhraseInfo *This,
20108        LONG StartElement,
20109        LONG Elements,
20110        VARIANT_BOOL UseReplacements,
20111        BSTR *Text);
20112
20113    HRESULT (STDMETHODCALLTYPE *GetDisplayAttributes)(
20114        ISpeechPhraseInfo *This,
20115        LONG StartElement,
20116        LONG Elements,
20117        VARIANT_BOOL UseReplacements,
20118        SpeechDisplayAttributes *DisplayAttributes);
20119
20120    END_INTERFACE
20121} ISpeechPhraseInfoVtbl;
20122
20123interface ISpeechPhraseInfo {
20124    CONST_VTBL ISpeechPhraseInfoVtbl* lpVtbl;
20125};
20126
20127#ifdef COBJMACROS
20128#ifndef WIDL_C_INLINE_WRAPPERS
20129/*** IUnknown methods ***/
20130#define ISpeechPhraseInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20131#define ISpeechPhraseInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
20132#define ISpeechPhraseInfo_Release(This) (This)->lpVtbl->Release(This)
20133/*** IDispatch methods ***/
20134#define ISpeechPhraseInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20135#define ISpeechPhraseInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20136#define ISpeechPhraseInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20137#define ISpeechPhraseInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20138/*** ISpeechPhraseInfo methods ***/
20139#define ISpeechPhraseInfo_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
20140#define ISpeechPhraseInfo_get_GrammarId(This,GrammarId) (This)->lpVtbl->get_GrammarId(This,GrammarId)
20141#define ISpeechPhraseInfo_get_StartTime(This,StartTime) (This)->lpVtbl->get_StartTime(This,StartTime)
20142#define ISpeechPhraseInfo_get_AudioStreamPosition(This,AudioStreamPosition) (This)->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition)
20143#define ISpeechPhraseInfo_get_AudioSizeBytes(This,pAudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes)
20144#define ISpeechPhraseInfo_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
20145#define ISpeechPhraseInfo_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
20146#define ISpeechPhraseInfo_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
20147#define ISpeechPhraseInfo_get_Properties(This,Properties) (This)->lpVtbl->get_Properties(This,Properties)
20148#define ISpeechPhraseInfo_get_Elements(This,Elements) (This)->lpVtbl->get_Elements(This,Elements)
20149#define ISpeechPhraseInfo_get_Replacements(This,Replacements) (This)->lpVtbl->get_Replacements(This,Replacements)
20150#define ISpeechPhraseInfo_get_EngineId(This,EngineIdGuid) (This)->lpVtbl->get_EngineId(This,EngineIdGuid)
20151#define ISpeechPhraseInfo_get_EnginePrivateData(This,PrivateData) (This)->lpVtbl->get_EnginePrivateData(This,PrivateData)
20152#define ISpeechPhraseInfo_SaveToMemory(This,PhraseBlock) (This)->lpVtbl->SaveToMemory(This,PhraseBlock)
20153#define ISpeechPhraseInfo_GetText(This,StartElement,Elements,UseReplacements,Text) (This)->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text)
20154#define ISpeechPhraseInfo_GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes) (This)->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes)
20155#else
20156/*** IUnknown methods ***/
20157static inline HRESULT ISpeechPhraseInfo_QueryInterface(ISpeechPhraseInfo* This,REFIID riid,void **ppvObject) {
20158    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20159}
20160static inline ULONG ISpeechPhraseInfo_AddRef(ISpeechPhraseInfo* This) {
20161    return This->lpVtbl->AddRef(This);
20162}
20163static inline ULONG ISpeechPhraseInfo_Release(ISpeechPhraseInfo* This) {
20164    return This->lpVtbl->Release(This);
20165}
20166/*** IDispatch methods ***/
20167static inline HRESULT ISpeechPhraseInfo_GetTypeInfoCount(ISpeechPhraseInfo* This,UINT *pctinfo) {
20168    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20169}
20170static inline HRESULT ISpeechPhraseInfo_GetTypeInfo(ISpeechPhraseInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20171    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20172}
20173static inline HRESULT ISpeechPhraseInfo_GetIDsOfNames(ISpeechPhraseInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20174    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20175}
20176static inline HRESULT ISpeechPhraseInfo_Invoke(ISpeechPhraseInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20177    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20178}
20179/*** ISpeechPhraseInfo methods ***/
20180static inline HRESULT ISpeechPhraseInfo_get_LanguageId(ISpeechPhraseInfo* This,LONG *LanguageId) {
20181    return This->lpVtbl->get_LanguageId(This,LanguageId);
20182}
20183static inline HRESULT ISpeechPhraseInfo_get_GrammarId(ISpeechPhraseInfo* This,VARIANT *GrammarId) {
20184    return This->lpVtbl->get_GrammarId(This,GrammarId);
20185}
20186static inline HRESULT ISpeechPhraseInfo_get_StartTime(ISpeechPhraseInfo* This,VARIANT *StartTime) {
20187    return This->lpVtbl->get_StartTime(This,StartTime);
20188}
20189static inline HRESULT ISpeechPhraseInfo_get_AudioStreamPosition(ISpeechPhraseInfo* This,VARIANT *AudioStreamPosition) {
20190    return This->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition);
20191}
20192static inline HRESULT ISpeechPhraseInfo_get_AudioSizeBytes(ISpeechPhraseInfo* This,LONG *pAudioSizeBytes) {
20193    return This->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes);
20194}
20195static inline HRESULT ISpeechPhraseInfo_get_RetainedSizeBytes(ISpeechPhraseInfo* This,LONG *RetainedSizeBytes) {
20196    return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
20197}
20198static inline HRESULT ISpeechPhraseInfo_get_AudioSizeTime(ISpeechPhraseInfo* This,LONG *AudioSizeTime) {
20199    return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
20200}
20201static inline HRESULT ISpeechPhraseInfo_get_Rule(ISpeechPhraseInfo* This,ISpeechPhraseRule **Rule) {
20202    return This->lpVtbl->get_Rule(This,Rule);
20203}
20204static inline HRESULT ISpeechPhraseInfo_get_Properties(ISpeechPhraseInfo* This,ISpeechPhraseProperties **Properties) {
20205    return This->lpVtbl->get_Properties(This,Properties);
20206}
20207static inline HRESULT ISpeechPhraseInfo_get_Elements(ISpeechPhraseInfo* This,ISpeechPhraseElements **Elements) {
20208    return This->lpVtbl->get_Elements(This,Elements);
20209}
20210static inline HRESULT ISpeechPhraseInfo_get_Replacements(ISpeechPhraseInfo* This,ISpeechPhraseReplacements **Replacements) {
20211    return This->lpVtbl->get_Replacements(This,Replacements);
20212}
20213static inline HRESULT ISpeechPhraseInfo_get_EngineId(ISpeechPhraseInfo* This,BSTR *EngineIdGuid) {
20214    return This->lpVtbl->get_EngineId(This,EngineIdGuid);
20215}
20216static inline HRESULT ISpeechPhraseInfo_get_EnginePrivateData(ISpeechPhraseInfo* This,VARIANT *PrivateData) {
20217    return This->lpVtbl->get_EnginePrivateData(This,PrivateData);
20218}
20219static inline HRESULT ISpeechPhraseInfo_SaveToMemory(ISpeechPhraseInfo* This,VARIANT *PhraseBlock) {
20220    return This->lpVtbl->SaveToMemory(This,PhraseBlock);
20221}
20222static inline HRESULT ISpeechPhraseInfo_GetText(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,BSTR *Text) {
20223    return This->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text);
20224}
20225static inline HRESULT ISpeechPhraseInfo_GetDisplayAttributes(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,SpeechDisplayAttributes *DisplayAttributes) {
20226    return This->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes);
20227}
20228#endif
20229#endif
20230
20231#endif
20232
20233
20234#endif  /* __ISpeechPhraseInfo_INTERFACE_DEFINED__ */
20235
20236/*****************************************************************************
20237 * ISpeechPhraseElement interface
20238 */
20239#ifndef __ISpeechPhraseElement_INTERFACE_DEFINED__
20240#define __ISpeechPhraseElement_INTERFACE_DEFINED__
20241
20242DEFINE_GUID(IID_ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4);
20243#if defined(__cplusplus) && !defined(CINTERFACE)
20244MIDL_INTERFACE("e6176f96-e373-4801-b223-3b62c068c0b4")
20245ISpeechPhraseElement : public IDispatch
20246{
20247    virtual HRESULT STDMETHODCALLTYPE get_AudioTimeOffset(
20248        LONG *AudioTimeOffset) = 0;
20249
20250    virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
20251        LONG *AudioSizeTime) = 0;
20252
20253    virtual HRESULT STDMETHODCALLTYPE get_AudioStreamOffset(
20254        LONG *AudioStreamOffset) = 0;
20255
20256    virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
20257        LONG *AudioSizeBytes) = 0;
20258
20259    virtual HRESULT STDMETHODCALLTYPE get_RetainedStreamOffset(
20260        LONG *RetainedStreamOffset) = 0;
20261
20262    virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
20263        LONG *RetainedSizeBytes) = 0;
20264
20265    virtual HRESULT STDMETHODCALLTYPE get_DisplayText(
20266        BSTR *DisplayText) = 0;
20267
20268    virtual HRESULT STDMETHODCALLTYPE get_LexicalForm(
20269        BSTR *LexicalForm) = 0;
20270
20271    virtual HRESULT STDMETHODCALLTYPE get_Pronunciation(
20272        VARIANT *Pronunciation) = 0;
20273
20274    virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
20275        SpeechDisplayAttributes *DisplayAttributes) = 0;
20276
20277    virtual HRESULT STDMETHODCALLTYPE get_RequiredConfidence(
20278        SpeechEngineConfidence *RequiredConfidence) = 0;
20279
20280    virtual HRESULT STDMETHODCALLTYPE get_ActualConfidence(
20281        SpeechEngineConfidence *ActualConfidence) = 0;
20282
20283    virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
20284        float *EngineConfidence) = 0;
20285
20286};
20287#ifdef __CRT_UUID_DECL
20288__CRT_UUID_DECL(ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4)
20289#endif
20290#else
20291typedef struct ISpeechPhraseElementVtbl {
20292    BEGIN_INTERFACE
20293
20294    /*** IUnknown methods ***/
20295    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20296        ISpeechPhraseElement *This,
20297        REFIID riid,
20298        void **ppvObject);
20299
20300    ULONG (STDMETHODCALLTYPE *AddRef)(
20301        ISpeechPhraseElement *This);
20302
20303    ULONG (STDMETHODCALLTYPE *Release)(
20304        ISpeechPhraseElement *This);
20305
20306    /*** IDispatch methods ***/
20307    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20308        ISpeechPhraseElement *This,
20309        UINT *pctinfo);
20310
20311    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20312        ISpeechPhraseElement *This,
20313        UINT iTInfo,
20314        LCID lcid,
20315        ITypeInfo **ppTInfo);
20316
20317    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20318        ISpeechPhraseElement *This,
20319        REFIID riid,
20320        LPOLESTR *rgszNames,
20321        UINT cNames,
20322        LCID lcid,
20323        DISPID *rgDispId);
20324
20325    HRESULT (STDMETHODCALLTYPE *Invoke)(
20326        ISpeechPhraseElement *This,
20327        DISPID dispIdMember,
20328        REFIID riid,
20329        LCID lcid,
20330        WORD wFlags,
20331        DISPPARAMS *pDispParams,
20332        VARIANT *pVarResult,
20333        EXCEPINFO *pExcepInfo,
20334        UINT *puArgErr);
20335
20336    /*** ISpeechPhraseElement methods ***/
20337    HRESULT (STDMETHODCALLTYPE *get_AudioTimeOffset)(
20338        ISpeechPhraseElement *This,
20339        LONG *AudioTimeOffset);
20340
20341    HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
20342        ISpeechPhraseElement *This,
20343        LONG *AudioSizeTime);
20344
20345    HRESULT (STDMETHODCALLTYPE *get_AudioStreamOffset)(
20346        ISpeechPhraseElement *This,
20347        LONG *AudioStreamOffset);
20348
20349    HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
20350        ISpeechPhraseElement *This,
20351        LONG *AudioSizeBytes);
20352
20353    HRESULT (STDMETHODCALLTYPE *get_RetainedStreamOffset)(
20354        ISpeechPhraseElement *This,
20355        LONG *RetainedStreamOffset);
20356
20357    HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
20358        ISpeechPhraseElement *This,
20359        LONG *RetainedSizeBytes);
20360
20361    HRESULT (STDMETHODCALLTYPE *get_DisplayText)(
20362        ISpeechPhraseElement *This,
20363        BSTR *DisplayText);
20364
20365    HRESULT (STDMETHODCALLTYPE *get_LexicalForm)(
20366        ISpeechPhraseElement *This,
20367        BSTR *LexicalForm);
20368
20369    HRESULT (STDMETHODCALLTYPE *get_Pronunciation)(
20370        ISpeechPhraseElement *This,
20371        VARIANT *Pronunciation);
20372
20373    HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
20374        ISpeechPhraseElement *This,
20375        SpeechDisplayAttributes *DisplayAttributes);
20376
20377    HRESULT (STDMETHODCALLTYPE *get_RequiredConfidence)(
20378        ISpeechPhraseElement *This,
20379        SpeechEngineConfidence *RequiredConfidence);
20380
20381    HRESULT (STDMETHODCALLTYPE *get_ActualConfidence)(
20382        ISpeechPhraseElement *This,
20383        SpeechEngineConfidence *ActualConfidence);
20384
20385    HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
20386        ISpeechPhraseElement *This,
20387        float *EngineConfidence);
20388
20389    END_INTERFACE
20390} ISpeechPhraseElementVtbl;
20391
20392interface ISpeechPhraseElement {
20393    CONST_VTBL ISpeechPhraseElementVtbl* lpVtbl;
20394};
20395
20396#ifdef COBJMACROS
20397#ifndef WIDL_C_INLINE_WRAPPERS
20398/*** IUnknown methods ***/
20399#define ISpeechPhraseElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20400#define ISpeechPhraseElement_AddRef(This) (This)->lpVtbl->AddRef(This)
20401#define ISpeechPhraseElement_Release(This) (This)->lpVtbl->Release(This)
20402/*** IDispatch methods ***/
20403#define ISpeechPhraseElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20404#define ISpeechPhraseElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20405#define ISpeechPhraseElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20406#define ISpeechPhraseElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20407/*** ISpeechPhraseElement methods ***/
20408#define ISpeechPhraseElement_get_AudioTimeOffset(This,AudioTimeOffset) (This)->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset)
20409#define ISpeechPhraseElement_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
20410#define ISpeechPhraseElement_get_AudioStreamOffset(This,AudioStreamOffset) (This)->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset)
20411#define ISpeechPhraseElement_get_AudioSizeBytes(This,AudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes)
20412#define ISpeechPhraseElement_get_RetainedStreamOffset(This,RetainedStreamOffset) (This)->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset)
20413#define ISpeechPhraseElement_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
20414#define ISpeechPhraseElement_get_DisplayText(This,DisplayText) (This)->lpVtbl->get_DisplayText(This,DisplayText)
20415#define ISpeechPhraseElement_get_LexicalForm(This,LexicalForm) (This)->lpVtbl->get_LexicalForm(This,LexicalForm)
20416#define ISpeechPhraseElement_get_Pronunciation(This,Pronunciation) (This)->lpVtbl->get_Pronunciation(This,Pronunciation)
20417#define ISpeechPhraseElement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
20418#define ISpeechPhraseElement_get_RequiredConfidence(This,RequiredConfidence) (This)->lpVtbl->get_RequiredConfidence(This,RequiredConfidence)
20419#define ISpeechPhraseElement_get_ActualConfidence(This,ActualConfidence) (This)->lpVtbl->get_ActualConfidence(This,ActualConfidence)
20420#define ISpeechPhraseElement_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
20421#else
20422/*** IUnknown methods ***/
20423static inline HRESULT ISpeechPhraseElement_QueryInterface(ISpeechPhraseElement* This,REFIID riid,void **ppvObject) {
20424    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20425}
20426static inline ULONG ISpeechPhraseElement_AddRef(ISpeechPhraseElement* This) {
20427    return This->lpVtbl->AddRef(This);
20428}
20429static inline ULONG ISpeechPhraseElement_Release(ISpeechPhraseElement* This) {
20430    return This->lpVtbl->Release(This);
20431}
20432/*** IDispatch methods ***/
20433static inline HRESULT ISpeechPhraseElement_GetTypeInfoCount(ISpeechPhraseElement* This,UINT *pctinfo) {
20434    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20435}
20436static inline HRESULT ISpeechPhraseElement_GetTypeInfo(ISpeechPhraseElement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20437    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20438}
20439static inline HRESULT ISpeechPhraseElement_GetIDsOfNames(ISpeechPhraseElement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20440    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20441}
20442static inline HRESULT ISpeechPhraseElement_Invoke(ISpeechPhraseElement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20443    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20444}
20445/*** ISpeechPhraseElement methods ***/
20446static inline HRESULT ISpeechPhraseElement_get_AudioTimeOffset(ISpeechPhraseElement* This,LONG *AudioTimeOffset) {
20447    return This->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset);
20448}
20449static inline HRESULT ISpeechPhraseElement_get_AudioSizeTime(ISpeechPhraseElement* This,LONG *AudioSizeTime) {
20450    return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
20451}
20452static inline HRESULT ISpeechPhraseElement_get_AudioStreamOffset(ISpeechPhraseElement* This,LONG *AudioStreamOffset) {
20453    return This->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset);
20454}
20455static inline HRESULT ISpeechPhraseElement_get_AudioSizeBytes(ISpeechPhraseElement* This,LONG *AudioSizeBytes) {
20456    return This->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes);
20457}
20458static inline HRESULT ISpeechPhraseElement_get_RetainedStreamOffset(ISpeechPhraseElement* This,LONG *RetainedStreamOffset) {
20459    return This->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset);
20460}
20461static inline HRESULT ISpeechPhraseElement_get_RetainedSizeBytes(ISpeechPhraseElement* This,LONG *RetainedSizeBytes) {
20462    return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
20463}
20464static inline HRESULT ISpeechPhraseElement_get_DisplayText(ISpeechPhraseElement* This,BSTR *DisplayText) {
20465    return This->lpVtbl->get_DisplayText(This,DisplayText);
20466}
20467static inline HRESULT ISpeechPhraseElement_get_LexicalForm(ISpeechPhraseElement* This,BSTR *LexicalForm) {
20468    return This->lpVtbl->get_LexicalForm(This,LexicalForm);
20469}
20470static inline HRESULT ISpeechPhraseElement_get_Pronunciation(ISpeechPhraseElement* This,VARIANT *Pronunciation) {
20471    return This->lpVtbl->get_Pronunciation(This,Pronunciation);
20472}
20473static inline HRESULT ISpeechPhraseElement_get_DisplayAttributes(ISpeechPhraseElement* This,SpeechDisplayAttributes *DisplayAttributes) {
20474    return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
20475}
20476static inline HRESULT ISpeechPhraseElement_get_RequiredConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *RequiredConfidence) {
20477    return This->lpVtbl->get_RequiredConfidence(This,RequiredConfidence);
20478}
20479static inline HRESULT ISpeechPhraseElement_get_ActualConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *ActualConfidence) {
20480    return This->lpVtbl->get_ActualConfidence(This,ActualConfidence);
20481}
20482static inline HRESULT ISpeechPhraseElement_get_EngineConfidence(ISpeechPhraseElement* This,float *EngineConfidence) {
20483    return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
20484}
20485#endif
20486#endif
20487
20488#endif
20489
20490
20491#endif  /* __ISpeechPhraseElement_INTERFACE_DEFINED__ */
20492
20493/*****************************************************************************
20494 * ISpeechPhraseElements interface
20495 */
20496#ifndef __ISpeechPhraseElements_INTERFACE_DEFINED__
20497#define __ISpeechPhraseElements_INTERFACE_DEFINED__
20498
20499DEFINE_GUID(IID_ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3);
20500#if defined(__cplusplus) && !defined(CINTERFACE)
20501MIDL_INTERFACE("0626b328-3478-467d-a0b3-d0853b93dda3")
20502ISpeechPhraseElements : public IDispatch
20503{
20504    virtual HRESULT STDMETHODCALLTYPE get_Count(
20505        LONG *Count) = 0;
20506
20507    virtual HRESULT STDMETHODCALLTYPE Item(
20508        LONG Index,
20509        ISpeechPhraseElement **Element) = 0;
20510
20511    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
20512        IUnknown **EnumVARIANT) = 0;
20513
20514};
20515#ifdef __CRT_UUID_DECL
20516__CRT_UUID_DECL(ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3)
20517#endif
20518#else
20519typedef struct ISpeechPhraseElementsVtbl {
20520    BEGIN_INTERFACE
20521
20522    /*** IUnknown methods ***/
20523    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20524        ISpeechPhraseElements *This,
20525        REFIID riid,
20526        void **ppvObject);
20527
20528    ULONG (STDMETHODCALLTYPE *AddRef)(
20529        ISpeechPhraseElements *This);
20530
20531    ULONG (STDMETHODCALLTYPE *Release)(
20532        ISpeechPhraseElements *This);
20533
20534    /*** IDispatch methods ***/
20535    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20536        ISpeechPhraseElements *This,
20537        UINT *pctinfo);
20538
20539    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20540        ISpeechPhraseElements *This,
20541        UINT iTInfo,
20542        LCID lcid,
20543        ITypeInfo **ppTInfo);
20544
20545    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20546        ISpeechPhraseElements *This,
20547        REFIID riid,
20548        LPOLESTR *rgszNames,
20549        UINT cNames,
20550        LCID lcid,
20551        DISPID *rgDispId);
20552
20553    HRESULT (STDMETHODCALLTYPE *Invoke)(
20554        ISpeechPhraseElements *This,
20555        DISPID dispIdMember,
20556        REFIID riid,
20557        LCID lcid,
20558        WORD wFlags,
20559        DISPPARAMS *pDispParams,
20560        VARIANT *pVarResult,
20561        EXCEPINFO *pExcepInfo,
20562        UINT *puArgErr);
20563
20564    /*** ISpeechPhraseElements methods ***/
20565    HRESULT (STDMETHODCALLTYPE *get_Count)(
20566        ISpeechPhraseElements *This,
20567        LONG *Count);
20568
20569    HRESULT (STDMETHODCALLTYPE *Item)(
20570        ISpeechPhraseElements *This,
20571        LONG Index,
20572        ISpeechPhraseElement **Element);
20573
20574    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
20575        ISpeechPhraseElements *This,
20576        IUnknown **EnumVARIANT);
20577
20578    END_INTERFACE
20579} ISpeechPhraseElementsVtbl;
20580
20581interface ISpeechPhraseElements {
20582    CONST_VTBL ISpeechPhraseElementsVtbl* lpVtbl;
20583};
20584
20585#ifdef COBJMACROS
20586#ifndef WIDL_C_INLINE_WRAPPERS
20587/*** IUnknown methods ***/
20588#define ISpeechPhraseElements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20589#define ISpeechPhraseElements_AddRef(This) (This)->lpVtbl->AddRef(This)
20590#define ISpeechPhraseElements_Release(This) (This)->lpVtbl->Release(This)
20591/*** IDispatch methods ***/
20592#define ISpeechPhraseElements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20593#define ISpeechPhraseElements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20594#define ISpeechPhraseElements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20595#define ISpeechPhraseElements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20596/*** ISpeechPhraseElements methods ***/
20597#define ISpeechPhraseElements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
20598#define ISpeechPhraseElements_Item(This,Index,Element) (This)->lpVtbl->Item(This,Index,Element)
20599#define ISpeechPhraseElements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
20600#else
20601/*** IUnknown methods ***/
20602static inline HRESULT ISpeechPhraseElements_QueryInterface(ISpeechPhraseElements* This,REFIID riid,void **ppvObject) {
20603    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20604}
20605static inline ULONG ISpeechPhraseElements_AddRef(ISpeechPhraseElements* This) {
20606    return This->lpVtbl->AddRef(This);
20607}
20608static inline ULONG ISpeechPhraseElements_Release(ISpeechPhraseElements* This) {
20609    return This->lpVtbl->Release(This);
20610}
20611/*** IDispatch methods ***/
20612static inline HRESULT ISpeechPhraseElements_GetTypeInfoCount(ISpeechPhraseElements* This,UINT *pctinfo) {
20613    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20614}
20615static inline HRESULT ISpeechPhraseElements_GetTypeInfo(ISpeechPhraseElements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20616    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20617}
20618static inline HRESULT ISpeechPhraseElements_GetIDsOfNames(ISpeechPhraseElements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20619    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20620}
20621static inline HRESULT ISpeechPhraseElements_Invoke(ISpeechPhraseElements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20622    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20623}
20624/*** ISpeechPhraseElements methods ***/
20625static inline HRESULT ISpeechPhraseElements_get_Count(ISpeechPhraseElements* This,LONG *Count) {
20626    return This->lpVtbl->get_Count(This,Count);
20627}
20628static inline HRESULT ISpeechPhraseElements_Item(ISpeechPhraseElements* This,LONG Index,ISpeechPhraseElement **Element) {
20629    return This->lpVtbl->Item(This,Index,Element);
20630}
20631static inline HRESULT ISpeechPhraseElements_get__NewEnum(ISpeechPhraseElements* This,IUnknown **EnumVARIANT) {
20632    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
20633}
20634#endif
20635#endif
20636
20637#endif
20638
20639
20640#endif  /* __ISpeechPhraseElements_INTERFACE_DEFINED__ */
20641
20642/*****************************************************************************
20643 * ISpeechPhraseReplacement interface
20644 */
20645#ifndef __ISpeechPhraseReplacement_INTERFACE_DEFINED__
20646#define __ISpeechPhraseReplacement_INTERFACE_DEFINED__
20647
20648DEFINE_GUID(IID_ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02);
20649#if defined(__cplusplus) && !defined(CINTERFACE)
20650MIDL_INTERFACE("2890a410-53a7-4fb5-94ec-06d4998e3d02")
20651ISpeechPhraseReplacement : public IDispatch
20652{
20653    virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
20654        SpeechDisplayAttributes *DisplayAttributes) = 0;
20655
20656    virtual HRESULT STDMETHODCALLTYPE get_Text(
20657        BSTR *Text) = 0;
20658
20659    virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
20660        LONG *FirstElement) = 0;
20661
20662    virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
20663        LONG *NumberOfElements) = 0;
20664
20665};
20666#ifdef __CRT_UUID_DECL
20667__CRT_UUID_DECL(ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02)
20668#endif
20669#else
20670typedef struct ISpeechPhraseReplacementVtbl {
20671    BEGIN_INTERFACE
20672
20673    /*** IUnknown methods ***/
20674    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20675        ISpeechPhraseReplacement *This,
20676        REFIID riid,
20677        void **ppvObject);
20678
20679    ULONG (STDMETHODCALLTYPE *AddRef)(
20680        ISpeechPhraseReplacement *This);
20681
20682    ULONG (STDMETHODCALLTYPE *Release)(
20683        ISpeechPhraseReplacement *This);
20684
20685    /*** IDispatch methods ***/
20686    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20687        ISpeechPhraseReplacement *This,
20688        UINT *pctinfo);
20689
20690    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20691        ISpeechPhraseReplacement *This,
20692        UINT iTInfo,
20693        LCID lcid,
20694        ITypeInfo **ppTInfo);
20695
20696    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20697        ISpeechPhraseReplacement *This,
20698        REFIID riid,
20699        LPOLESTR *rgszNames,
20700        UINT cNames,
20701        LCID lcid,
20702        DISPID *rgDispId);
20703
20704    HRESULT (STDMETHODCALLTYPE *Invoke)(
20705        ISpeechPhraseReplacement *This,
20706        DISPID dispIdMember,
20707        REFIID riid,
20708        LCID lcid,
20709        WORD wFlags,
20710        DISPPARAMS *pDispParams,
20711        VARIANT *pVarResult,
20712        EXCEPINFO *pExcepInfo,
20713        UINT *puArgErr);
20714
20715    /*** ISpeechPhraseReplacement methods ***/
20716    HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
20717        ISpeechPhraseReplacement *This,
20718        SpeechDisplayAttributes *DisplayAttributes);
20719
20720    HRESULT (STDMETHODCALLTYPE *get_Text)(
20721        ISpeechPhraseReplacement *This,
20722        BSTR *Text);
20723
20724    HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
20725        ISpeechPhraseReplacement *This,
20726        LONG *FirstElement);
20727
20728    HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
20729        ISpeechPhraseReplacement *This,
20730        LONG *NumberOfElements);
20731
20732    END_INTERFACE
20733} ISpeechPhraseReplacementVtbl;
20734
20735interface ISpeechPhraseReplacement {
20736    CONST_VTBL ISpeechPhraseReplacementVtbl* lpVtbl;
20737};
20738
20739#ifdef COBJMACROS
20740#ifndef WIDL_C_INLINE_WRAPPERS
20741/*** IUnknown methods ***/
20742#define ISpeechPhraseReplacement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20743#define ISpeechPhraseReplacement_AddRef(This) (This)->lpVtbl->AddRef(This)
20744#define ISpeechPhraseReplacement_Release(This) (This)->lpVtbl->Release(This)
20745/*** IDispatch methods ***/
20746#define ISpeechPhraseReplacement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20747#define ISpeechPhraseReplacement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20748#define ISpeechPhraseReplacement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20749#define ISpeechPhraseReplacement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20750/*** ISpeechPhraseReplacement methods ***/
20751#define ISpeechPhraseReplacement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
20752#define ISpeechPhraseReplacement_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
20753#define ISpeechPhraseReplacement_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
20754#define ISpeechPhraseReplacement_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
20755#else
20756/*** IUnknown methods ***/
20757static inline HRESULT ISpeechPhraseReplacement_QueryInterface(ISpeechPhraseReplacement* This,REFIID riid,void **ppvObject) {
20758    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20759}
20760static inline ULONG ISpeechPhraseReplacement_AddRef(ISpeechPhraseReplacement* This) {
20761    return This->lpVtbl->AddRef(This);
20762}
20763static inline ULONG ISpeechPhraseReplacement_Release(ISpeechPhraseReplacement* This) {
20764    return This->lpVtbl->Release(This);
20765}
20766/*** IDispatch methods ***/
20767static inline HRESULT ISpeechPhraseReplacement_GetTypeInfoCount(ISpeechPhraseReplacement* This,UINT *pctinfo) {
20768    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20769}
20770static inline HRESULT ISpeechPhraseReplacement_GetTypeInfo(ISpeechPhraseReplacement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20771    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20772}
20773static inline HRESULT ISpeechPhraseReplacement_GetIDsOfNames(ISpeechPhraseReplacement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20774    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20775}
20776static inline HRESULT ISpeechPhraseReplacement_Invoke(ISpeechPhraseReplacement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20777    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20778}
20779/*** ISpeechPhraseReplacement methods ***/
20780static inline HRESULT ISpeechPhraseReplacement_get_DisplayAttributes(ISpeechPhraseReplacement* This,SpeechDisplayAttributes *DisplayAttributes) {
20781    return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
20782}
20783static inline HRESULT ISpeechPhraseReplacement_get_Text(ISpeechPhraseReplacement* This,BSTR *Text) {
20784    return This->lpVtbl->get_Text(This,Text);
20785}
20786static inline HRESULT ISpeechPhraseReplacement_get_FirstElement(ISpeechPhraseReplacement* This,LONG *FirstElement) {
20787    return This->lpVtbl->get_FirstElement(This,FirstElement);
20788}
20789static inline HRESULT ISpeechPhraseReplacement_get_NumberOfElements(ISpeechPhraseReplacement* This,LONG *NumberOfElements) {
20790    return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
20791}
20792#endif
20793#endif
20794
20795#endif
20796
20797
20798#endif  /* __ISpeechPhraseReplacement_INTERFACE_DEFINED__ */
20799
20800/*****************************************************************************
20801 * ISpeechPhraseReplacements interface
20802 */
20803#ifndef __ISpeechPhraseReplacements_INTERFACE_DEFINED__
20804#define __ISpeechPhraseReplacements_INTERFACE_DEFINED__
20805
20806DEFINE_GUID(IID_ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05);
20807#if defined(__cplusplus) && !defined(CINTERFACE)
20808MIDL_INTERFACE("38bc662f-2257-4525-959e-2069d2596c05")
20809ISpeechPhraseReplacements : public IDispatch
20810{
20811    virtual HRESULT STDMETHODCALLTYPE get_Count(
20812        LONG *Count) = 0;
20813
20814    virtual HRESULT STDMETHODCALLTYPE Item(
20815        LONG Index,
20816        ISpeechPhraseReplacement **Reps) = 0;
20817
20818    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
20819        IUnknown **EnumVARIANT) = 0;
20820
20821};
20822#ifdef __CRT_UUID_DECL
20823__CRT_UUID_DECL(ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05)
20824#endif
20825#else
20826typedef struct ISpeechPhraseReplacementsVtbl {
20827    BEGIN_INTERFACE
20828
20829    /*** IUnknown methods ***/
20830    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20831        ISpeechPhraseReplacements *This,
20832        REFIID riid,
20833        void **ppvObject);
20834
20835    ULONG (STDMETHODCALLTYPE *AddRef)(
20836        ISpeechPhraseReplacements *This);
20837
20838    ULONG (STDMETHODCALLTYPE *Release)(
20839        ISpeechPhraseReplacements *This);
20840
20841    /*** IDispatch methods ***/
20842    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20843        ISpeechPhraseReplacements *This,
20844        UINT *pctinfo);
20845
20846    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20847        ISpeechPhraseReplacements *This,
20848        UINT iTInfo,
20849        LCID lcid,
20850        ITypeInfo **ppTInfo);
20851
20852    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20853        ISpeechPhraseReplacements *This,
20854        REFIID riid,
20855        LPOLESTR *rgszNames,
20856        UINT cNames,
20857        LCID lcid,
20858        DISPID *rgDispId);
20859
20860    HRESULT (STDMETHODCALLTYPE *Invoke)(
20861        ISpeechPhraseReplacements *This,
20862        DISPID dispIdMember,
20863        REFIID riid,
20864        LCID lcid,
20865        WORD wFlags,
20866        DISPPARAMS *pDispParams,
20867        VARIANT *pVarResult,
20868        EXCEPINFO *pExcepInfo,
20869        UINT *puArgErr);
20870
20871    /*** ISpeechPhraseReplacements methods ***/
20872    HRESULT (STDMETHODCALLTYPE *get_Count)(
20873        ISpeechPhraseReplacements *This,
20874        LONG *Count);
20875
20876    HRESULT (STDMETHODCALLTYPE *Item)(
20877        ISpeechPhraseReplacements *This,
20878        LONG Index,
20879        ISpeechPhraseReplacement **Reps);
20880
20881    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
20882        ISpeechPhraseReplacements *This,
20883        IUnknown **EnumVARIANT);
20884
20885    END_INTERFACE
20886} ISpeechPhraseReplacementsVtbl;
20887
20888interface ISpeechPhraseReplacements {
20889    CONST_VTBL ISpeechPhraseReplacementsVtbl* lpVtbl;
20890};
20891
20892#ifdef COBJMACROS
20893#ifndef WIDL_C_INLINE_WRAPPERS
20894/*** IUnknown methods ***/
20895#define ISpeechPhraseReplacements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20896#define ISpeechPhraseReplacements_AddRef(This) (This)->lpVtbl->AddRef(This)
20897#define ISpeechPhraseReplacements_Release(This) (This)->lpVtbl->Release(This)
20898/*** IDispatch methods ***/
20899#define ISpeechPhraseReplacements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20900#define ISpeechPhraseReplacements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20901#define ISpeechPhraseReplacements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20902#define ISpeechPhraseReplacements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20903/*** ISpeechPhraseReplacements methods ***/
20904#define ISpeechPhraseReplacements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
20905#define ISpeechPhraseReplacements_Item(This,Index,Reps) (This)->lpVtbl->Item(This,Index,Reps)
20906#define ISpeechPhraseReplacements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
20907#else
20908/*** IUnknown methods ***/
20909static inline HRESULT ISpeechPhraseReplacements_QueryInterface(ISpeechPhraseReplacements* This,REFIID riid,void **ppvObject) {
20910    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20911}
20912static inline ULONG ISpeechPhraseReplacements_AddRef(ISpeechPhraseReplacements* This) {
20913    return This->lpVtbl->AddRef(This);
20914}
20915static inline ULONG ISpeechPhraseReplacements_Release(ISpeechPhraseReplacements* This) {
20916    return This->lpVtbl->Release(This);
20917}
20918/*** IDispatch methods ***/
20919static inline HRESULT ISpeechPhraseReplacements_GetTypeInfoCount(ISpeechPhraseReplacements* This,UINT *pctinfo) {
20920    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20921}
20922static inline HRESULT ISpeechPhraseReplacements_GetTypeInfo(ISpeechPhraseReplacements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20923    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20924}
20925static inline HRESULT ISpeechPhraseReplacements_GetIDsOfNames(ISpeechPhraseReplacements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20926    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20927}
20928static inline HRESULT ISpeechPhraseReplacements_Invoke(ISpeechPhraseReplacements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20929    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20930}
20931/*** ISpeechPhraseReplacements methods ***/
20932static inline HRESULT ISpeechPhraseReplacements_get_Count(ISpeechPhraseReplacements* This,LONG *Count) {
20933    return This->lpVtbl->get_Count(This,Count);
20934}
20935static inline HRESULT ISpeechPhraseReplacements_Item(ISpeechPhraseReplacements* This,LONG Index,ISpeechPhraseReplacement **Reps) {
20936    return This->lpVtbl->Item(This,Index,Reps);
20937}
20938static inline HRESULT ISpeechPhraseReplacements_get__NewEnum(ISpeechPhraseReplacements* This,IUnknown **EnumVARIANT) {
20939    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
20940}
20941#endif
20942#endif
20943
20944#endif
20945
20946
20947#endif  /* __ISpeechPhraseReplacements_INTERFACE_DEFINED__ */
20948
20949/*****************************************************************************
20950 * ISpeechPhraseProperty interface
20951 */
20952#ifndef __ISpeechPhraseProperty_INTERFACE_DEFINED__
20953#define __ISpeechPhraseProperty_INTERFACE_DEFINED__
20954
20955DEFINE_GUID(IID_ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe);
20956#if defined(__cplusplus) && !defined(CINTERFACE)
20957MIDL_INTERFACE("ce563d48-961e-4732-a2e1-378a42b430be")
20958ISpeechPhraseProperty : public IDispatch
20959{
20960    virtual HRESULT STDMETHODCALLTYPE get_Name(
20961        BSTR *Name) = 0;
20962
20963    virtual HRESULT STDMETHODCALLTYPE get_Id(
20964        LONG *Id) = 0;
20965
20966    virtual HRESULT STDMETHODCALLTYPE get_Value(
20967        VARIANT *Value) = 0;
20968
20969    virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
20970        LONG *FirstElement) = 0;
20971
20972    virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
20973        LONG *NumberOfElements) = 0;
20974
20975    virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
20976        float *Confidence) = 0;
20977
20978    virtual HRESULT STDMETHODCALLTYPE get_Confidence(
20979        SpeechEngineConfidence *Confidence) = 0;
20980
20981    virtual HRESULT STDMETHODCALLTYPE get_Parent(
20982        ISpeechPhraseProperty **ParentProperty) = 0;
20983
20984    virtual HRESULT STDMETHODCALLTYPE get_Children(
20985        ISpeechPhraseProperties **Children) = 0;
20986
20987};
20988#ifdef __CRT_UUID_DECL
20989__CRT_UUID_DECL(ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe)
20990#endif
20991#else
20992typedef struct ISpeechPhrasePropertyVtbl {
20993    BEGIN_INTERFACE
20994
20995    /*** IUnknown methods ***/
20996    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20997        ISpeechPhraseProperty *This,
20998        REFIID riid,
20999        void **ppvObject);
21000
21001    ULONG (STDMETHODCALLTYPE *AddRef)(
21002        ISpeechPhraseProperty *This);
21003
21004    ULONG (STDMETHODCALLTYPE *Release)(
21005        ISpeechPhraseProperty *This);
21006
21007    /*** IDispatch methods ***/
21008    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21009        ISpeechPhraseProperty *This,
21010        UINT *pctinfo);
21011
21012    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21013        ISpeechPhraseProperty *This,
21014        UINT iTInfo,
21015        LCID lcid,
21016        ITypeInfo **ppTInfo);
21017
21018    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21019        ISpeechPhraseProperty *This,
21020        REFIID riid,
21021        LPOLESTR *rgszNames,
21022        UINT cNames,
21023        LCID lcid,
21024        DISPID *rgDispId);
21025
21026    HRESULT (STDMETHODCALLTYPE *Invoke)(
21027        ISpeechPhraseProperty *This,
21028        DISPID dispIdMember,
21029        REFIID riid,
21030        LCID lcid,
21031        WORD wFlags,
21032        DISPPARAMS *pDispParams,
21033        VARIANT *pVarResult,
21034        EXCEPINFO *pExcepInfo,
21035        UINT *puArgErr);
21036
21037    /*** ISpeechPhraseProperty methods ***/
21038    HRESULT (STDMETHODCALLTYPE *get_Name)(
21039        ISpeechPhraseProperty *This,
21040        BSTR *Name);
21041
21042    HRESULT (STDMETHODCALLTYPE *get_Id)(
21043        ISpeechPhraseProperty *This,
21044        LONG *Id);
21045
21046    HRESULT (STDMETHODCALLTYPE *get_Value)(
21047        ISpeechPhraseProperty *This,
21048        VARIANT *Value);
21049
21050    HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
21051        ISpeechPhraseProperty *This,
21052        LONG *FirstElement);
21053
21054    HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
21055        ISpeechPhraseProperty *This,
21056        LONG *NumberOfElements);
21057
21058    HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
21059        ISpeechPhraseProperty *This,
21060        float *Confidence);
21061
21062    HRESULT (STDMETHODCALLTYPE *get_Confidence)(
21063        ISpeechPhraseProperty *This,
21064        SpeechEngineConfidence *Confidence);
21065
21066    HRESULT (STDMETHODCALLTYPE *get_Parent)(
21067        ISpeechPhraseProperty *This,
21068        ISpeechPhraseProperty **ParentProperty);
21069
21070    HRESULT (STDMETHODCALLTYPE *get_Children)(
21071        ISpeechPhraseProperty *This,
21072        ISpeechPhraseProperties **Children);
21073
21074    END_INTERFACE
21075} ISpeechPhrasePropertyVtbl;
21076
21077interface ISpeechPhraseProperty {
21078    CONST_VTBL ISpeechPhrasePropertyVtbl* lpVtbl;
21079};
21080
21081#ifdef COBJMACROS
21082#ifndef WIDL_C_INLINE_WRAPPERS
21083/*** IUnknown methods ***/
21084#define ISpeechPhraseProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21085#define ISpeechPhraseProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
21086#define ISpeechPhraseProperty_Release(This) (This)->lpVtbl->Release(This)
21087/*** IDispatch methods ***/
21088#define ISpeechPhraseProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21089#define ISpeechPhraseProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21090#define ISpeechPhraseProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21091#define ISpeechPhraseProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21092/*** ISpeechPhraseProperty methods ***/
21093#define ISpeechPhraseProperty_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
21094#define ISpeechPhraseProperty_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
21095#define ISpeechPhraseProperty_get_Value(This,Value) (This)->lpVtbl->get_Value(This,Value)
21096#define ISpeechPhraseProperty_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
21097#define ISpeechPhraseProperty_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
21098#define ISpeechPhraseProperty_get_EngineConfidence(This,Confidence) (This)->lpVtbl->get_EngineConfidence(This,Confidence)
21099#define ISpeechPhraseProperty_get_Confidence(This,Confidence) (This)->lpVtbl->get_Confidence(This,Confidence)
21100#define ISpeechPhraseProperty_get_Parent(This,ParentProperty) (This)->lpVtbl->get_Parent(This,ParentProperty)
21101#define ISpeechPhraseProperty_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
21102#else
21103/*** IUnknown methods ***/
21104static inline HRESULT ISpeechPhraseProperty_QueryInterface(ISpeechPhraseProperty* This,REFIID riid,void **ppvObject) {
21105    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21106}
21107static inline ULONG ISpeechPhraseProperty_AddRef(ISpeechPhraseProperty* This) {
21108    return This->lpVtbl->AddRef(This);
21109}
21110static inline ULONG ISpeechPhraseProperty_Release(ISpeechPhraseProperty* This) {
21111    return This->lpVtbl->Release(This);
21112}
21113/*** IDispatch methods ***/
21114static inline HRESULT ISpeechPhraseProperty_GetTypeInfoCount(ISpeechPhraseProperty* This,UINT *pctinfo) {
21115    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21116}
21117static inline HRESULT ISpeechPhraseProperty_GetTypeInfo(ISpeechPhraseProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21118    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21119}
21120static inline HRESULT ISpeechPhraseProperty_GetIDsOfNames(ISpeechPhraseProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21121    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21122}
21123static inline HRESULT ISpeechPhraseProperty_Invoke(ISpeechPhraseProperty* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21124    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21125}
21126/*** ISpeechPhraseProperty methods ***/
21127static inline HRESULT ISpeechPhraseProperty_get_Name(ISpeechPhraseProperty* This,BSTR *Name) {
21128    return This->lpVtbl->get_Name(This,Name);
21129}
21130static inline HRESULT ISpeechPhraseProperty_get_Id(ISpeechPhraseProperty* This,LONG *Id) {
21131    return This->lpVtbl->get_Id(This,Id);
21132}
21133static inline HRESULT ISpeechPhraseProperty_get_Value(ISpeechPhraseProperty* This,VARIANT *Value) {
21134    return This->lpVtbl->get_Value(This,Value);
21135}
21136static inline HRESULT ISpeechPhraseProperty_get_FirstElement(ISpeechPhraseProperty* This,LONG *FirstElement) {
21137    return This->lpVtbl->get_FirstElement(This,FirstElement);
21138}
21139static inline HRESULT ISpeechPhraseProperty_get_NumberOfElements(ISpeechPhraseProperty* This,LONG *NumberOfElements) {
21140    return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
21141}
21142static inline HRESULT ISpeechPhraseProperty_get_EngineConfidence(ISpeechPhraseProperty* This,float *Confidence) {
21143    return This->lpVtbl->get_EngineConfidence(This,Confidence);
21144}
21145static inline HRESULT ISpeechPhraseProperty_get_Confidence(ISpeechPhraseProperty* This,SpeechEngineConfidence *Confidence) {
21146    return This->lpVtbl->get_Confidence(This,Confidence);
21147}
21148static inline HRESULT ISpeechPhraseProperty_get_Parent(ISpeechPhraseProperty* This,ISpeechPhraseProperty **ParentProperty) {
21149    return This->lpVtbl->get_Parent(This,ParentProperty);
21150}
21151static inline HRESULT ISpeechPhraseProperty_get_Children(ISpeechPhraseProperty* This,ISpeechPhraseProperties **Children) {
21152    return This->lpVtbl->get_Children(This,Children);
21153}
21154#endif
21155#endif
21156
21157#endif
21158
21159
21160#endif  /* __ISpeechPhraseProperty_INTERFACE_DEFINED__ */
21161
21162/*****************************************************************************
21163 * ISpeechPhraseProperties interface
21164 */
21165#ifndef __ISpeechPhraseProperties_INTERFACE_DEFINED__
21166#define __ISpeechPhraseProperties_INTERFACE_DEFINED__
21167
21168DEFINE_GUID(IID_ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4);
21169#if defined(__cplusplus) && !defined(CINTERFACE)
21170MIDL_INTERFACE("08166b47-102e-4b23-a599-bdb98dbfd1f4")
21171ISpeechPhraseProperties : public IDispatch
21172{
21173    virtual HRESULT STDMETHODCALLTYPE get_Count(
21174        LONG *Count) = 0;
21175
21176    virtual HRESULT STDMETHODCALLTYPE Item(
21177        LONG Index,
21178        ISpeechPhraseProperty **Property) = 0;
21179
21180    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21181        IUnknown **EnumVARIANT) = 0;
21182
21183};
21184#ifdef __CRT_UUID_DECL
21185__CRT_UUID_DECL(ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4)
21186#endif
21187#else
21188typedef struct ISpeechPhrasePropertiesVtbl {
21189    BEGIN_INTERFACE
21190
21191    /*** IUnknown methods ***/
21192    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21193        ISpeechPhraseProperties *This,
21194        REFIID riid,
21195        void **ppvObject);
21196
21197    ULONG (STDMETHODCALLTYPE *AddRef)(
21198        ISpeechPhraseProperties *This);
21199
21200    ULONG (STDMETHODCALLTYPE *Release)(
21201        ISpeechPhraseProperties *This);
21202
21203    /*** IDispatch methods ***/
21204    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21205        ISpeechPhraseProperties *This,
21206        UINT *pctinfo);
21207
21208    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21209        ISpeechPhraseProperties *This,
21210        UINT iTInfo,
21211        LCID lcid,
21212        ITypeInfo **ppTInfo);
21213
21214    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21215        ISpeechPhraseProperties *This,
21216        REFIID riid,
21217        LPOLESTR *rgszNames,
21218        UINT cNames,
21219        LCID lcid,
21220        DISPID *rgDispId);
21221
21222    HRESULT (STDMETHODCALLTYPE *Invoke)(
21223        ISpeechPhraseProperties *This,
21224        DISPID dispIdMember,
21225        REFIID riid,
21226        LCID lcid,
21227        WORD wFlags,
21228        DISPPARAMS *pDispParams,
21229        VARIANT *pVarResult,
21230        EXCEPINFO *pExcepInfo,
21231        UINT *puArgErr);
21232
21233    /*** ISpeechPhraseProperties methods ***/
21234    HRESULT (STDMETHODCALLTYPE *get_Count)(
21235        ISpeechPhraseProperties *This,
21236        LONG *Count);
21237
21238    HRESULT (STDMETHODCALLTYPE *Item)(
21239        ISpeechPhraseProperties *This,
21240        LONG Index,
21241        ISpeechPhraseProperty **Property);
21242
21243    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21244        ISpeechPhraseProperties *This,
21245        IUnknown **EnumVARIANT);
21246
21247    END_INTERFACE
21248} ISpeechPhrasePropertiesVtbl;
21249
21250interface ISpeechPhraseProperties {
21251    CONST_VTBL ISpeechPhrasePropertiesVtbl* lpVtbl;
21252};
21253
21254#ifdef COBJMACROS
21255#ifndef WIDL_C_INLINE_WRAPPERS
21256/*** IUnknown methods ***/
21257#define ISpeechPhraseProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21258#define ISpeechPhraseProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
21259#define ISpeechPhraseProperties_Release(This) (This)->lpVtbl->Release(This)
21260/*** IDispatch methods ***/
21261#define ISpeechPhraseProperties_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21262#define ISpeechPhraseProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21263#define ISpeechPhraseProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21264#define ISpeechPhraseProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21265/*** ISpeechPhraseProperties methods ***/
21266#define ISpeechPhraseProperties_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21267#define ISpeechPhraseProperties_Item(This,Index,Property) (This)->lpVtbl->Item(This,Index,Property)
21268#define ISpeechPhraseProperties_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21269#else
21270/*** IUnknown methods ***/
21271static inline HRESULT ISpeechPhraseProperties_QueryInterface(ISpeechPhraseProperties* This,REFIID riid,void **ppvObject) {
21272    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21273}
21274static inline ULONG ISpeechPhraseProperties_AddRef(ISpeechPhraseProperties* This) {
21275    return This->lpVtbl->AddRef(This);
21276}
21277static inline ULONG ISpeechPhraseProperties_Release(ISpeechPhraseProperties* This) {
21278    return This->lpVtbl->Release(This);
21279}
21280/*** IDispatch methods ***/
21281static inline HRESULT ISpeechPhraseProperties_GetTypeInfoCount(ISpeechPhraseProperties* This,UINT *pctinfo) {
21282    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21283}
21284static inline HRESULT ISpeechPhraseProperties_GetTypeInfo(ISpeechPhraseProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21285    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21286}
21287static inline HRESULT ISpeechPhraseProperties_GetIDsOfNames(ISpeechPhraseProperties* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21288    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21289}
21290static inline HRESULT ISpeechPhraseProperties_Invoke(ISpeechPhraseProperties* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21291    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21292}
21293/*** ISpeechPhraseProperties methods ***/
21294static inline HRESULT ISpeechPhraseProperties_get_Count(ISpeechPhraseProperties* This,LONG *Count) {
21295    return This->lpVtbl->get_Count(This,Count);
21296}
21297static inline HRESULT ISpeechPhraseProperties_Item(ISpeechPhraseProperties* This,LONG Index,ISpeechPhraseProperty **Property) {
21298    return This->lpVtbl->Item(This,Index,Property);
21299}
21300static inline HRESULT ISpeechPhraseProperties_get__NewEnum(ISpeechPhraseProperties* This,IUnknown **EnumVARIANT) {
21301    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21302}
21303#endif
21304#endif
21305
21306#endif
21307
21308
21309#endif  /* __ISpeechPhraseProperties_INTERFACE_DEFINED__ */
21310
21311/*****************************************************************************
21312 * ISpeechPhraseRule interface
21313 */
21314#ifndef __ISpeechPhraseRule_INTERFACE_DEFINED__
21315#define __ISpeechPhraseRule_INTERFACE_DEFINED__
21316
21317DEFINE_GUID(IID_ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64);
21318#if defined(__cplusplus) && !defined(CINTERFACE)
21319MIDL_INTERFACE("a7bfe112-a4a0-48d9-b602-c313843f6964")
21320ISpeechPhraseRule : public IDispatch
21321{
21322    virtual HRESULT STDMETHODCALLTYPE get_Name(
21323        BSTR *Name) = 0;
21324
21325    virtual HRESULT STDMETHODCALLTYPE get_Id(
21326        LONG *Id) = 0;
21327
21328    virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
21329        LONG *FirstElement) = 0;
21330
21331    virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
21332        LONG *NumberOfElements) = 0;
21333
21334    virtual HRESULT STDMETHODCALLTYPE get_Parent(
21335        ISpeechPhraseRule **Parent) = 0;
21336
21337    virtual HRESULT STDMETHODCALLTYPE get_Children(
21338        ISpeechPhraseRules **Children) = 0;
21339
21340    virtual HRESULT STDMETHODCALLTYPE get_Confidence(
21341        SpeechEngineConfidence *ActualConfidence) = 0;
21342
21343    virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
21344        float *EngineConfidence) = 0;
21345
21346};
21347#ifdef __CRT_UUID_DECL
21348__CRT_UUID_DECL(ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64)
21349#endif
21350#else
21351typedef struct ISpeechPhraseRuleVtbl {
21352    BEGIN_INTERFACE
21353
21354    /*** IUnknown methods ***/
21355    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21356        ISpeechPhraseRule *This,
21357        REFIID riid,
21358        void **ppvObject);
21359
21360    ULONG (STDMETHODCALLTYPE *AddRef)(
21361        ISpeechPhraseRule *This);
21362
21363    ULONG (STDMETHODCALLTYPE *Release)(
21364        ISpeechPhraseRule *This);
21365
21366    /*** IDispatch methods ***/
21367    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21368        ISpeechPhraseRule *This,
21369        UINT *pctinfo);
21370
21371    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21372        ISpeechPhraseRule *This,
21373        UINT iTInfo,
21374        LCID lcid,
21375        ITypeInfo **ppTInfo);
21376
21377    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21378        ISpeechPhraseRule *This,
21379        REFIID riid,
21380        LPOLESTR *rgszNames,
21381        UINT cNames,
21382        LCID lcid,
21383        DISPID *rgDispId);
21384
21385    HRESULT (STDMETHODCALLTYPE *Invoke)(
21386        ISpeechPhraseRule *This,
21387        DISPID dispIdMember,
21388        REFIID riid,
21389        LCID lcid,
21390        WORD wFlags,
21391        DISPPARAMS *pDispParams,
21392        VARIANT *pVarResult,
21393        EXCEPINFO *pExcepInfo,
21394        UINT *puArgErr);
21395
21396    /*** ISpeechPhraseRule methods ***/
21397    HRESULT (STDMETHODCALLTYPE *get_Name)(
21398        ISpeechPhraseRule *This,
21399        BSTR *Name);
21400
21401    HRESULT (STDMETHODCALLTYPE *get_Id)(
21402        ISpeechPhraseRule *This,
21403        LONG *Id);
21404
21405    HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
21406        ISpeechPhraseRule *This,
21407        LONG *FirstElement);
21408
21409    HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
21410        ISpeechPhraseRule *This,
21411        LONG *NumberOfElements);
21412
21413    HRESULT (STDMETHODCALLTYPE *get_Parent)(
21414        ISpeechPhraseRule *This,
21415        ISpeechPhraseRule **Parent);
21416
21417    HRESULT (STDMETHODCALLTYPE *get_Children)(
21418        ISpeechPhraseRule *This,
21419        ISpeechPhraseRules **Children);
21420
21421    HRESULT (STDMETHODCALLTYPE *get_Confidence)(
21422        ISpeechPhraseRule *This,
21423        SpeechEngineConfidence *ActualConfidence);
21424
21425    HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
21426        ISpeechPhraseRule *This,
21427        float *EngineConfidence);
21428
21429    END_INTERFACE
21430} ISpeechPhraseRuleVtbl;
21431
21432interface ISpeechPhraseRule {
21433    CONST_VTBL ISpeechPhraseRuleVtbl* lpVtbl;
21434};
21435
21436#ifdef COBJMACROS
21437#ifndef WIDL_C_INLINE_WRAPPERS
21438/*** IUnknown methods ***/
21439#define ISpeechPhraseRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21440#define ISpeechPhraseRule_AddRef(This) (This)->lpVtbl->AddRef(This)
21441#define ISpeechPhraseRule_Release(This) (This)->lpVtbl->Release(This)
21442/*** IDispatch methods ***/
21443#define ISpeechPhraseRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21444#define ISpeechPhraseRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21445#define ISpeechPhraseRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21446#define ISpeechPhraseRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21447/*** ISpeechPhraseRule methods ***/
21448#define ISpeechPhraseRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
21449#define ISpeechPhraseRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
21450#define ISpeechPhraseRule_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
21451#define ISpeechPhraseRule_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
21452#define ISpeechPhraseRule_get_Parent(This,Parent) (This)->lpVtbl->get_Parent(This,Parent)
21453#define ISpeechPhraseRule_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
21454#define ISpeechPhraseRule_get_Confidence(This,ActualConfidence) (This)->lpVtbl->get_Confidence(This,ActualConfidence)
21455#define ISpeechPhraseRule_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
21456#else
21457/*** IUnknown methods ***/
21458static inline HRESULT ISpeechPhraseRule_QueryInterface(ISpeechPhraseRule* This,REFIID riid,void **ppvObject) {
21459    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21460}
21461static inline ULONG ISpeechPhraseRule_AddRef(ISpeechPhraseRule* This) {
21462    return This->lpVtbl->AddRef(This);
21463}
21464static inline ULONG ISpeechPhraseRule_Release(ISpeechPhraseRule* This) {
21465    return This->lpVtbl->Release(This);
21466}
21467/*** IDispatch methods ***/
21468static inline HRESULT ISpeechPhraseRule_GetTypeInfoCount(ISpeechPhraseRule* This,UINT *pctinfo) {
21469    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21470}
21471static inline HRESULT ISpeechPhraseRule_GetTypeInfo(ISpeechPhraseRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21472    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21473}
21474static inline HRESULT ISpeechPhraseRule_GetIDsOfNames(ISpeechPhraseRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21475    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21476}
21477static inline HRESULT ISpeechPhraseRule_Invoke(ISpeechPhraseRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21478    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21479}
21480/*** ISpeechPhraseRule methods ***/
21481static inline HRESULT ISpeechPhraseRule_get_Name(ISpeechPhraseRule* This,BSTR *Name) {
21482    return This->lpVtbl->get_Name(This,Name);
21483}
21484static inline HRESULT ISpeechPhraseRule_get_Id(ISpeechPhraseRule* This,LONG *Id) {
21485    return This->lpVtbl->get_Id(This,Id);
21486}
21487static inline HRESULT ISpeechPhraseRule_get_FirstElement(ISpeechPhraseRule* This,LONG *FirstElement) {
21488    return This->lpVtbl->get_FirstElement(This,FirstElement);
21489}
21490static inline HRESULT ISpeechPhraseRule_get_NumberOfElements(ISpeechPhraseRule* This,LONG *NumberOfElements) {
21491    return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
21492}
21493static inline HRESULT ISpeechPhraseRule_get_Parent(ISpeechPhraseRule* This,ISpeechPhraseRule **Parent) {
21494    return This->lpVtbl->get_Parent(This,Parent);
21495}
21496static inline HRESULT ISpeechPhraseRule_get_Children(ISpeechPhraseRule* This,ISpeechPhraseRules **Children) {
21497    return This->lpVtbl->get_Children(This,Children);
21498}
21499static inline HRESULT ISpeechPhraseRule_get_Confidence(ISpeechPhraseRule* This,SpeechEngineConfidence *ActualConfidence) {
21500    return This->lpVtbl->get_Confidence(This,ActualConfidence);
21501}
21502static inline HRESULT ISpeechPhraseRule_get_EngineConfidence(ISpeechPhraseRule* This,float *EngineConfidence) {
21503    return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
21504}
21505#endif
21506#endif
21507
21508#endif
21509
21510
21511#endif  /* __ISpeechPhraseRule_INTERFACE_DEFINED__ */
21512
21513/*****************************************************************************
21514 * ISpeechPhraseRules interface
21515 */
21516#ifndef __ISpeechPhraseRules_INTERFACE_DEFINED__
21517#define __ISpeechPhraseRules_INTERFACE_DEFINED__
21518
21519DEFINE_GUID(IID_ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07);
21520#if defined(__cplusplus) && !defined(CINTERFACE)
21521MIDL_INTERFACE("9047d593-01dd-4b72-81a3-e4a0ca69f407")
21522ISpeechPhraseRules : public IDispatch
21523{
21524    virtual HRESULT STDMETHODCALLTYPE get_Count(
21525        LONG *Count) = 0;
21526
21527    virtual HRESULT STDMETHODCALLTYPE Item(
21528        LONG Index,
21529        ISpeechPhraseRule **Rule) = 0;
21530
21531    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21532        IUnknown **EnumVARIANT) = 0;
21533
21534};
21535#ifdef __CRT_UUID_DECL
21536__CRT_UUID_DECL(ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07)
21537#endif
21538#else
21539typedef struct ISpeechPhraseRulesVtbl {
21540    BEGIN_INTERFACE
21541
21542    /*** IUnknown methods ***/
21543    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21544        ISpeechPhraseRules *This,
21545        REFIID riid,
21546        void **ppvObject);
21547
21548    ULONG (STDMETHODCALLTYPE *AddRef)(
21549        ISpeechPhraseRules *This);
21550
21551    ULONG (STDMETHODCALLTYPE *Release)(
21552        ISpeechPhraseRules *This);
21553
21554    /*** IDispatch methods ***/
21555    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21556        ISpeechPhraseRules *This,
21557        UINT *pctinfo);
21558
21559    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21560        ISpeechPhraseRules *This,
21561        UINT iTInfo,
21562        LCID lcid,
21563        ITypeInfo **ppTInfo);
21564
21565    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21566        ISpeechPhraseRules *This,
21567        REFIID riid,
21568        LPOLESTR *rgszNames,
21569        UINT cNames,
21570        LCID lcid,
21571        DISPID *rgDispId);
21572
21573    HRESULT (STDMETHODCALLTYPE *Invoke)(
21574        ISpeechPhraseRules *This,
21575        DISPID dispIdMember,
21576        REFIID riid,
21577        LCID lcid,
21578        WORD wFlags,
21579        DISPPARAMS *pDispParams,
21580        VARIANT *pVarResult,
21581        EXCEPINFO *pExcepInfo,
21582        UINT *puArgErr);
21583
21584    /*** ISpeechPhraseRules methods ***/
21585    HRESULT (STDMETHODCALLTYPE *get_Count)(
21586        ISpeechPhraseRules *This,
21587        LONG *Count);
21588
21589    HRESULT (STDMETHODCALLTYPE *Item)(
21590        ISpeechPhraseRules *This,
21591        LONG Index,
21592        ISpeechPhraseRule **Rule);
21593
21594    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21595        ISpeechPhraseRules *This,
21596        IUnknown **EnumVARIANT);
21597
21598    END_INTERFACE
21599} ISpeechPhraseRulesVtbl;
21600
21601interface ISpeechPhraseRules {
21602    CONST_VTBL ISpeechPhraseRulesVtbl* lpVtbl;
21603};
21604
21605#ifdef COBJMACROS
21606#ifndef WIDL_C_INLINE_WRAPPERS
21607/*** IUnknown methods ***/
21608#define ISpeechPhraseRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21609#define ISpeechPhraseRules_AddRef(This) (This)->lpVtbl->AddRef(This)
21610#define ISpeechPhraseRules_Release(This) (This)->lpVtbl->Release(This)
21611/*** IDispatch methods ***/
21612#define ISpeechPhraseRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21613#define ISpeechPhraseRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21614#define ISpeechPhraseRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21615#define ISpeechPhraseRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21616/*** ISpeechPhraseRules methods ***/
21617#define ISpeechPhraseRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21618#define ISpeechPhraseRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
21619#define ISpeechPhraseRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21620#else
21621/*** IUnknown methods ***/
21622static inline HRESULT ISpeechPhraseRules_QueryInterface(ISpeechPhraseRules* This,REFIID riid,void **ppvObject) {
21623    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21624}
21625static inline ULONG ISpeechPhraseRules_AddRef(ISpeechPhraseRules* This) {
21626    return This->lpVtbl->AddRef(This);
21627}
21628static inline ULONG ISpeechPhraseRules_Release(ISpeechPhraseRules* This) {
21629    return This->lpVtbl->Release(This);
21630}
21631/*** IDispatch methods ***/
21632static inline HRESULT ISpeechPhraseRules_GetTypeInfoCount(ISpeechPhraseRules* This,UINT *pctinfo) {
21633    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21634}
21635static inline HRESULT ISpeechPhraseRules_GetTypeInfo(ISpeechPhraseRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21636    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21637}
21638static inline HRESULT ISpeechPhraseRules_GetIDsOfNames(ISpeechPhraseRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21639    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21640}
21641static inline HRESULT ISpeechPhraseRules_Invoke(ISpeechPhraseRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21642    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21643}
21644/*** ISpeechPhraseRules methods ***/
21645static inline HRESULT ISpeechPhraseRules_get_Count(ISpeechPhraseRules* This,LONG *Count) {
21646    return This->lpVtbl->get_Count(This,Count);
21647}
21648static inline HRESULT ISpeechPhraseRules_Item(ISpeechPhraseRules* This,LONG Index,ISpeechPhraseRule **Rule) {
21649    return This->lpVtbl->Item(This,Index,Rule);
21650}
21651static inline HRESULT ISpeechPhraseRules_get__NewEnum(ISpeechPhraseRules* This,IUnknown **EnumVARIANT) {
21652    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21653}
21654#endif
21655#endif
21656
21657#endif
21658
21659
21660#endif  /* __ISpeechPhraseRules_INTERFACE_DEFINED__ */
21661
21662/*****************************************************************************
21663 * ISpeechLexiconWords interface
21664 */
21665#ifndef __ISpeechLexiconWords_INTERFACE_DEFINED__
21666#define __ISpeechLexiconWords_INTERFACE_DEFINED__
21667
21668DEFINE_GUID(IID_ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6);
21669#if defined(__cplusplus) && !defined(CINTERFACE)
21670MIDL_INTERFACE("8d199862-415e-47d5-ac4f-faa608b424e6")
21671ISpeechLexiconWords : public IDispatch
21672{
21673    virtual HRESULT STDMETHODCALLTYPE get_Count(
21674        LONG *Count) = 0;
21675
21676    virtual HRESULT STDMETHODCALLTYPE Item(
21677        LONG Index,
21678        ISpeechLexiconWord **Word) = 0;
21679
21680    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21681        IUnknown **EnumVARIANT) = 0;
21682
21683};
21684#ifdef __CRT_UUID_DECL
21685__CRT_UUID_DECL(ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6)
21686#endif
21687#else
21688typedef struct ISpeechLexiconWordsVtbl {
21689    BEGIN_INTERFACE
21690
21691    /*** IUnknown methods ***/
21692    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21693        ISpeechLexiconWords *This,
21694        REFIID riid,
21695        void **ppvObject);
21696
21697    ULONG (STDMETHODCALLTYPE *AddRef)(
21698        ISpeechLexiconWords *This);
21699
21700    ULONG (STDMETHODCALLTYPE *Release)(
21701        ISpeechLexiconWords *This);
21702
21703    /*** IDispatch methods ***/
21704    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21705        ISpeechLexiconWords *This,
21706        UINT *pctinfo);
21707
21708    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21709        ISpeechLexiconWords *This,
21710        UINT iTInfo,
21711        LCID lcid,
21712        ITypeInfo **ppTInfo);
21713
21714    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21715        ISpeechLexiconWords *This,
21716        REFIID riid,
21717        LPOLESTR *rgszNames,
21718        UINT cNames,
21719        LCID lcid,
21720        DISPID *rgDispId);
21721
21722    HRESULT (STDMETHODCALLTYPE *Invoke)(
21723        ISpeechLexiconWords *This,
21724        DISPID dispIdMember,
21725        REFIID riid,
21726        LCID lcid,
21727        WORD wFlags,
21728        DISPPARAMS *pDispParams,
21729        VARIANT *pVarResult,
21730        EXCEPINFO *pExcepInfo,
21731        UINT *puArgErr);
21732
21733    /*** ISpeechLexiconWords methods ***/
21734    HRESULT (STDMETHODCALLTYPE *get_Count)(
21735        ISpeechLexiconWords *This,
21736        LONG *Count);
21737
21738    HRESULT (STDMETHODCALLTYPE *Item)(
21739        ISpeechLexiconWords *This,
21740        LONG Index,
21741        ISpeechLexiconWord **Word);
21742
21743    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21744        ISpeechLexiconWords *This,
21745        IUnknown **EnumVARIANT);
21746
21747    END_INTERFACE
21748} ISpeechLexiconWordsVtbl;
21749
21750interface ISpeechLexiconWords {
21751    CONST_VTBL ISpeechLexiconWordsVtbl* lpVtbl;
21752};
21753
21754#ifdef COBJMACROS
21755#ifndef WIDL_C_INLINE_WRAPPERS
21756/*** IUnknown methods ***/
21757#define ISpeechLexiconWords_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21758#define ISpeechLexiconWords_AddRef(This) (This)->lpVtbl->AddRef(This)
21759#define ISpeechLexiconWords_Release(This) (This)->lpVtbl->Release(This)
21760/*** IDispatch methods ***/
21761#define ISpeechLexiconWords_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21762#define ISpeechLexiconWords_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21763#define ISpeechLexiconWords_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21764#define ISpeechLexiconWords_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21765/*** ISpeechLexiconWords methods ***/
21766#define ISpeechLexiconWords_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21767#define ISpeechLexiconWords_Item(This,Index,Word) (This)->lpVtbl->Item(This,Index,Word)
21768#define ISpeechLexiconWords_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21769#else
21770/*** IUnknown methods ***/
21771static inline HRESULT ISpeechLexiconWords_QueryInterface(ISpeechLexiconWords* This,REFIID riid,void **ppvObject) {
21772    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21773}
21774static inline ULONG ISpeechLexiconWords_AddRef(ISpeechLexiconWords* This) {
21775    return This->lpVtbl->AddRef(This);
21776}
21777static inline ULONG ISpeechLexiconWords_Release(ISpeechLexiconWords* This) {
21778    return This->lpVtbl->Release(This);
21779}
21780/*** IDispatch methods ***/
21781static inline HRESULT ISpeechLexiconWords_GetTypeInfoCount(ISpeechLexiconWords* This,UINT *pctinfo) {
21782    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21783}
21784static inline HRESULT ISpeechLexiconWords_GetTypeInfo(ISpeechLexiconWords* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21785    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21786}
21787static inline HRESULT ISpeechLexiconWords_GetIDsOfNames(ISpeechLexiconWords* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21788    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21789}
21790static inline HRESULT ISpeechLexiconWords_Invoke(ISpeechLexiconWords* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21791    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21792}
21793/*** ISpeechLexiconWords methods ***/
21794static inline HRESULT ISpeechLexiconWords_get_Count(ISpeechLexiconWords* This,LONG *Count) {
21795    return This->lpVtbl->get_Count(This,Count);
21796}
21797static inline HRESULT ISpeechLexiconWords_Item(ISpeechLexiconWords* This,LONG Index,ISpeechLexiconWord **Word) {
21798    return This->lpVtbl->Item(This,Index,Word);
21799}
21800static inline HRESULT ISpeechLexiconWords_get__NewEnum(ISpeechLexiconWords* This,IUnknown **EnumVARIANT) {
21801    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21802}
21803#endif
21804#endif
21805
21806#endif
21807
21808
21809#endif  /* __ISpeechLexiconWords_INTERFACE_DEFINED__ */
21810
21811/*****************************************************************************
21812 * ISpeechLexicon interface
21813 */
21814#ifndef __ISpeechLexicon_INTERFACE_DEFINED__
21815#define __ISpeechLexicon_INTERFACE_DEFINED__
21816
21817DEFINE_GUID(IID_ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25);
21818#if defined(__cplusplus) && !defined(CINTERFACE)
21819MIDL_INTERFACE("3da7627a-c7ae-4b23-8708-638c50362c25")
21820ISpeechLexicon : public IDispatch
21821{
21822    virtual HRESULT STDMETHODCALLTYPE get_GenerationId(
21823        LONG *GenerationId) = 0;
21824
21825    virtual HRESULT STDMETHODCALLTYPE GetWords(
21826        SpeechLexiconType Flags,
21827        LONG *GenerationID,
21828        ISpeechLexiconWords **Words) = 0;
21829
21830    virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
21831        BSTR bstrWord,
21832        SpeechLanguageId LangId,
21833        SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
21834        BSTR bstrPronunciation = L"") = 0;
21835
21836    virtual HRESULT STDMETHODCALLTYPE AddPronunciationByPhoneIds(
21837        BSTR bstrWord,
21838        SpeechLanguageId LangId,
21839        SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
21840        VARIANT *PhoneIds = 0) = 0;
21841
21842    virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
21843        BSTR bstrWord,
21844        SpeechLanguageId LangId,
21845        SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
21846        BSTR bstrPronunciation = L"") = 0;
21847
21848    virtual HRESULT STDMETHODCALLTYPE RemovePronunciationByPhoneIds(
21849        BSTR bstrWord,
21850        SpeechLanguageId LangId,
21851        SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
21852        VARIANT *PhoneIds = 0) = 0;
21853
21854    virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
21855        BSTR bstrWord,
21856        SpeechLanguageId LangId,
21857        SpeechLexiconType TypeFlags,
21858        ISpeechLexiconPronunciations **ppPronunciations) = 0;
21859
21860    virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
21861        LONG *GenerationID,
21862        ISpeechLexiconWords **ppWords) = 0;
21863
21864};
21865#ifdef __CRT_UUID_DECL
21866__CRT_UUID_DECL(ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25)
21867#endif
21868#else
21869typedef struct ISpeechLexiconVtbl {
21870    BEGIN_INTERFACE
21871
21872    /*** IUnknown methods ***/
21873    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21874        ISpeechLexicon *This,
21875        REFIID riid,
21876        void **ppvObject);
21877
21878    ULONG (STDMETHODCALLTYPE *AddRef)(
21879        ISpeechLexicon *This);
21880
21881    ULONG (STDMETHODCALLTYPE *Release)(
21882        ISpeechLexicon *This);
21883
21884    /*** IDispatch methods ***/
21885    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21886        ISpeechLexicon *This,
21887        UINT *pctinfo);
21888
21889    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21890        ISpeechLexicon *This,
21891        UINT iTInfo,
21892        LCID lcid,
21893        ITypeInfo **ppTInfo);
21894
21895    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21896        ISpeechLexicon *This,
21897        REFIID riid,
21898        LPOLESTR *rgszNames,
21899        UINT cNames,
21900        LCID lcid,
21901        DISPID *rgDispId);
21902
21903    HRESULT (STDMETHODCALLTYPE *Invoke)(
21904        ISpeechLexicon *This,
21905        DISPID dispIdMember,
21906        REFIID riid,
21907        LCID lcid,
21908        WORD wFlags,
21909        DISPPARAMS *pDispParams,
21910        VARIANT *pVarResult,
21911        EXCEPINFO *pExcepInfo,
21912        UINT *puArgErr);
21913
21914    /*** ISpeechLexicon methods ***/
21915    HRESULT (STDMETHODCALLTYPE *get_GenerationId)(
21916        ISpeechLexicon *This,
21917        LONG *GenerationId);
21918
21919    HRESULT (STDMETHODCALLTYPE *GetWords)(
21920        ISpeechLexicon *This,
21921        SpeechLexiconType Flags,
21922        LONG *GenerationID,
21923        ISpeechLexiconWords **Words);
21924
21925    HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
21926        ISpeechLexicon *This,
21927        BSTR bstrWord,
21928        SpeechLanguageId LangId,
21929        SpeechPartOfSpeech PartOfSpeech,
21930        BSTR bstrPronunciation);
21931
21932    HRESULT (STDMETHODCALLTYPE *AddPronunciationByPhoneIds)(
21933        ISpeechLexicon *This,
21934        BSTR bstrWord,
21935        SpeechLanguageId LangId,
21936        SpeechPartOfSpeech PartOfSpeech,
21937        VARIANT *PhoneIds);
21938
21939    HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
21940        ISpeechLexicon *This,
21941        BSTR bstrWord,
21942        SpeechLanguageId LangId,
21943        SpeechPartOfSpeech PartOfSpeech,
21944        BSTR bstrPronunciation);
21945
21946    HRESULT (STDMETHODCALLTYPE *RemovePronunciationByPhoneIds)(
21947        ISpeechLexicon *This,
21948        BSTR bstrWord,
21949        SpeechLanguageId LangId,
21950        SpeechPartOfSpeech PartOfSpeech,
21951        VARIANT *PhoneIds);
21952
21953    HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
21954        ISpeechLexicon *This,
21955        BSTR bstrWord,
21956        SpeechLanguageId LangId,
21957        SpeechLexiconType TypeFlags,
21958        ISpeechLexiconPronunciations **ppPronunciations);
21959
21960    HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
21961        ISpeechLexicon *This,
21962        LONG *GenerationID,
21963        ISpeechLexiconWords **ppWords);
21964
21965    END_INTERFACE
21966} ISpeechLexiconVtbl;
21967
21968interface ISpeechLexicon {
21969    CONST_VTBL ISpeechLexiconVtbl* lpVtbl;
21970};
21971
21972#ifdef COBJMACROS
21973#ifndef WIDL_C_INLINE_WRAPPERS
21974/*** IUnknown methods ***/
21975#define ISpeechLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21976#define ISpeechLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
21977#define ISpeechLexicon_Release(This) (This)->lpVtbl->Release(This)
21978/*** IDispatch methods ***/
21979#define ISpeechLexicon_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21980#define ISpeechLexicon_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21981#define ISpeechLexicon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21982#define ISpeechLexicon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21983/*** ISpeechLexicon methods ***/
21984#define ISpeechLexicon_get_GenerationId(This,GenerationId) (This)->lpVtbl->get_GenerationId(This,GenerationId)
21985#define ISpeechLexicon_GetWords(This,Flags,GenerationID,Words) (This)->lpVtbl->GetWords(This,Flags,GenerationID,Words)
21986#define ISpeechLexicon_AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
21987#define ISpeechLexicon_AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
21988#define ISpeechLexicon_RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
21989#define ISpeechLexicon_RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
21990#define ISpeechLexicon_GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations) (This)->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations)
21991#define ISpeechLexicon_GetGenerationChange(This,GenerationID,ppWords) (This)->lpVtbl->GetGenerationChange(This,GenerationID,ppWords)
21992#else
21993/*** IUnknown methods ***/
21994static inline HRESULT ISpeechLexicon_QueryInterface(ISpeechLexicon* This,REFIID riid,void **ppvObject) {
21995    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21996}
21997static inline ULONG ISpeechLexicon_AddRef(ISpeechLexicon* This) {
21998    return This->lpVtbl->AddRef(This);
21999}
22000static inline ULONG ISpeechLexicon_Release(ISpeechLexicon* This) {
22001    return This->lpVtbl->Release(This);
22002}
22003/*** IDispatch methods ***/
22004static inline HRESULT ISpeechLexicon_GetTypeInfoCount(ISpeechLexicon* This,UINT *pctinfo) {
22005    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22006}
22007static inline HRESULT ISpeechLexicon_GetTypeInfo(ISpeechLexicon* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22008    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22009}
22010static inline HRESULT ISpeechLexicon_GetIDsOfNames(ISpeechLexicon* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22011    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22012}
22013static inline HRESULT ISpeechLexicon_Invoke(ISpeechLexicon* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22014    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22015}
22016/*** ISpeechLexicon methods ***/
22017static inline HRESULT ISpeechLexicon_get_GenerationId(ISpeechLexicon* This,LONG *GenerationId) {
22018    return This->lpVtbl->get_GenerationId(This,GenerationId);
22019}
22020static inline HRESULT ISpeechLexicon_GetWords(ISpeechLexicon* This,SpeechLexiconType Flags,LONG *GenerationID,ISpeechLexiconWords **Words) {
22021    return This->lpVtbl->GetWords(This,Flags,GenerationID,Words);
22022}
22023static inline HRESULT ISpeechLexicon_AddPronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
22024    return This->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
22025}
22026static inline HRESULT ISpeechLexicon_AddPronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
22027    return This->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
22028}
22029static inline HRESULT ISpeechLexicon_RemovePronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
22030    return This->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
22031}
22032static inline HRESULT ISpeechLexicon_RemovePronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
22033    return This->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
22034}
22035static inline HRESULT ISpeechLexicon_GetPronunciations(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechLexiconType TypeFlags,ISpeechLexiconPronunciations **ppPronunciations) {
22036    return This->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations);
22037}
22038static inline HRESULT ISpeechLexicon_GetGenerationChange(ISpeechLexicon* This,LONG *GenerationID,ISpeechLexiconWords **ppWords) {
22039    return This->lpVtbl->GetGenerationChange(This,GenerationID,ppWords);
22040}
22041#endif
22042#endif
22043
22044#endif
22045
22046
22047#endif  /* __ISpeechLexicon_INTERFACE_DEFINED__ */
22048
22049/*****************************************************************************
22050 * ISpeechLexiconWord interface
22051 */
22052#ifndef __ISpeechLexiconWord_INTERFACE_DEFINED__
22053#define __ISpeechLexiconWord_INTERFACE_DEFINED__
22054
22055DEFINE_GUID(IID_ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff);
22056#if defined(__cplusplus) && !defined(CINTERFACE)
22057MIDL_INTERFACE("4e5b933c-c9be-48ed-8842-1ee51bb1d4ff")
22058ISpeechLexiconWord : public IDispatch
22059{
22060    virtual HRESULT STDMETHODCALLTYPE get_LangId(
22061        SpeechLanguageId *LangId) = 0;
22062
22063    virtual HRESULT STDMETHODCALLTYPE get_Type(
22064        SpeechWordType *WordType) = 0;
22065
22066    virtual HRESULT STDMETHODCALLTYPE get_Word(
22067        BSTR *Word) = 0;
22068
22069    virtual HRESULT STDMETHODCALLTYPE get_Pronunciations(
22070        ISpeechLexiconPronunciations **Pronunciations) = 0;
22071
22072};
22073#ifdef __CRT_UUID_DECL
22074__CRT_UUID_DECL(ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff)
22075#endif
22076#else
22077typedef struct ISpeechLexiconWordVtbl {
22078    BEGIN_INTERFACE
22079
22080    /*** IUnknown methods ***/
22081    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22082        ISpeechLexiconWord *This,
22083        REFIID riid,
22084        void **ppvObject);
22085
22086    ULONG (STDMETHODCALLTYPE *AddRef)(
22087        ISpeechLexiconWord *This);
22088
22089    ULONG (STDMETHODCALLTYPE *Release)(
22090        ISpeechLexiconWord *This);
22091
22092    /*** IDispatch methods ***/
22093    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22094        ISpeechLexiconWord *This,
22095        UINT *pctinfo);
22096
22097    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22098        ISpeechLexiconWord *This,
22099        UINT iTInfo,
22100        LCID lcid,
22101        ITypeInfo **ppTInfo);
22102
22103    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22104        ISpeechLexiconWord *This,
22105        REFIID riid,
22106        LPOLESTR *rgszNames,
22107        UINT cNames,
22108        LCID lcid,
22109        DISPID *rgDispId);
22110
22111    HRESULT (STDMETHODCALLTYPE *Invoke)(
22112        ISpeechLexiconWord *This,
22113        DISPID dispIdMember,
22114        REFIID riid,
22115        LCID lcid,
22116        WORD wFlags,
22117        DISPPARAMS *pDispParams,
22118        VARIANT *pVarResult,
22119        EXCEPINFO *pExcepInfo,
22120        UINT *puArgErr);
22121
22122    /*** ISpeechLexiconWord methods ***/
22123    HRESULT (STDMETHODCALLTYPE *get_LangId)(
22124        ISpeechLexiconWord *This,
22125        SpeechLanguageId *LangId);
22126
22127    HRESULT (STDMETHODCALLTYPE *get_Type)(
22128        ISpeechLexiconWord *This,
22129        SpeechWordType *WordType);
22130
22131    HRESULT (STDMETHODCALLTYPE *get_Word)(
22132        ISpeechLexiconWord *This,
22133        BSTR *Word);
22134
22135    HRESULT (STDMETHODCALLTYPE *get_Pronunciations)(
22136        ISpeechLexiconWord *This,
22137        ISpeechLexiconPronunciations **Pronunciations);
22138
22139    END_INTERFACE
22140} ISpeechLexiconWordVtbl;
22141
22142interface ISpeechLexiconWord {
22143    CONST_VTBL ISpeechLexiconWordVtbl* lpVtbl;
22144};
22145
22146#ifdef COBJMACROS
22147#ifndef WIDL_C_INLINE_WRAPPERS
22148/*** IUnknown methods ***/
22149#define ISpeechLexiconWord_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22150#define ISpeechLexiconWord_AddRef(This) (This)->lpVtbl->AddRef(This)
22151#define ISpeechLexiconWord_Release(This) (This)->lpVtbl->Release(This)
22152/*** IDispatch methods ***/
22153#define ISpeechLexiconWord_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22154#define ISpeechLexiconWord_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22155#define ISpeechLexiconWord_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22156#define ISpeechLexiconWord_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22157/*** ISpeechLexiconWord methods ***/
22158#define ISpeechLexiconWord_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
22159#define ISpeechLexiconWord_get_Type(This,WordType) (This)->lpVtbl->get_Type(This,WordType)
22160#define ISpeechLexiconWord_get_Word(This,Word) (This)->lpVtbl->get_Word(This,Word)
22161#define ISpeechLexiconWord_get_Pronunciations(This,Pronunciations) (This)->lpVtbl->get_Pronunciations(This,Pronunciations)
22162#else
22163/*** IUnknown methods ***/
22164static inline HRESULT ISpeechLexiconWord_QueryInterface(ISpeechLexiconWord* This,REFIID riid,void **ppvObject) {
22165    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22166}
22167static inline ULONG ISpeechLexiconWord_AddRef(ISpeechLexiconWord* This) {
22168    return This->lpVtbl->AddRef(This);
22169}
22170static inline ULONG ISpeechLexiconWord_Release(ISpeechLexiconWord* This) {
22171    return This->lpVtbl->Release(This);
22172}
22173/*** IDispatch methods ***/
22174static inline HRESULT ISpeechLexiconWord_GetTypeInfoCount(ISpeechLexiconWord* This,UINT *pctinfo) {
22175    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22176}
22177static inline HRESULT ISpeechLexiconWord_GetTypeInfo(ISpeechLexiconWord* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22178    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22179}
22180static inline HRESULT ISpeechLexiconWord_GetIDsOfNames(ISpeechLexiconWord* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22181    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22182}
22183static inline HRESULT ISpeechLexiconWord_Invoke(ISpeechLexiconWord* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22184    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22185}
22186/*** ISpeechLexiconWord methods ***/
22187static inline HRESULT ISpeechLexiconWord_get_LangId(ISpeechLexiconWord* This,SpeechLanguageId *LangId) {
22188    return This->lpVtbl->get_LangId(This,LangId);
22189}
22190static inline HRESULT ISpeechLexiconWord_get_Type(ISpeechLexiconWord* This,SpeechWordType *WordType) {
22191    return This->lpVtbl->get_Type(This,WordType);
22192}
22193static inline HRESULT ISpeechLexiconWord_get_Word(ISpeechLexiconWord* This,BSTR *Word) {
22194    return This->lpVtbl->get_Word(This,Word);
22195}
22196static inline HRESULT ISpeechLexiconWord_get_Pronunciations(ISpeechLexiconWord* This,ISpeechLexiconPronunciations **Pronunciations) {
22197    return This->lpVtbl->get_Pronunciations(This,Pronunciations);
22198}
22199#endif
22200#endif
22201
22202#endif
22203
22204
22205#endif  /* __ISpeechLexiconWord_INTERFACE_DEFINED__ */
22206
22207/*****************************************************************************
22208 * ISpeechLexiconPronunciations interface
22209 */
22210#ifndef __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
22211#define __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
22212
22213DEFINE_GUID(IID_ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3);
22214#if defined(__cplusplus) && !defined(CINTERFACE)
22215MIDL_INTERFACE("72829128-5682-4704-a0d4-3e2bb6f2ead3")
22216ISpeechLexiconPronunciations : public IDispatch
22217{
22218    virtual HRESULT STDMETHODCALLTYPE get_Count(
22219        LONG *Count) = 0;
22220
22221    virtual HRESULT STDMETHODCALLTYPE Item(
22222        LONG Index,
22223        ISpeechLexiconPronunciation **Pronunciation) = 0;
22224
22225    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
22226        IUnknown **EnumVARIANT) = 0;
22227
22228};
22229#ifdef __CRT_UUID_DECL
22230__CRT_UUID_DECL(ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3)
22231#endif
22232#else
22233typedef struct ISpeechLexiconPronunciationsVtbl {
22234    BEGIN_INTERFACE
22235
22236    /*** IUnknown methods ***/
22237    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22238        ISpeechLexiconPronunciations *This,
22239        REFIID riid,
22240        void **ppvObject);
22241
22242    ULONG (STDMETHODCALLTYPE *AddRef)(
22243        ISpeechLexiconPronunciations *This);
22244
22245    ULONG (STDMETHODCALLTYPE *Release)(
22246        ISpeechLexiconPronunciations *This);
22247
22248    /*** IDispatch methods ***/
22249    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22250        ISpeechLexiconPronunciations *This,
22251        UINT *pctinfo);
22252
22253    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22254        ISpeechLexiconPronunciations *This,
22255        UINT iTInfo,
22256        LCID lcid,
22257        ITypeInfo **ppTInfo);
22258
22259    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22260        ISpeechLexiconPronunciations *This,
22261        REFIID riid,
22262        LPOLESTR *rgszNames,
22263        UINT cNames,
22264        LCID lcid,
22265        DISPID *rgDispId);
22266
22267    HRESULT (STDMETHODCALLTYPE *Invoke)(
22268        ISpeechLexiconPronunciations *This,
22269        DISPID dispIdMember,
22270        REFIID riid,
22271        LCID lcid,
22272        WORD wFlags,
22273        DISPPARAMS *pDispParams,
22274        VARIANT *pVarResult,
22275        EXCEPINFO *pExcepInfo,
22276        UINT *puArgErr);
22277
22278    /*** ISpeechLexiconPronunciations methods ***/
22279    HRESULT (STDMETHODCALLTYPE *get_Count)(
22280        ISpeechLexiconPronunciations *This,
22281        LONG *Count);
22282
22283    HRESULT (STDMETHODCALLTYPE *Item)(
22284        ISpeechLexiconPronunciations *This,
22285        LONG Index,
22286        ISpeechLexiconPronunciation **Pronunciation);
22287
22288    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
22289        ISpeechLexiconPronunciations *This,
22290        IUnknown **EnumVARIANT);
22291
22292    END_INTERFACE
22293} ISpeechLexiconPronunciationsVtbl;
22294
22295interface ISpeechLexiconPronunciations {
22296    CONST_VTBL ISpeechLexiconPronunciationsVtbl* lpVtbl;
22297};
22298
22299#ifdef COBJMACROS
22300#ifndef WIDL_C_INLINE_WRAPPERS
22301/*** IUnknown methods ***/
22302#define ISpeechLexiconPronunciations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22303#define ISpeechLexiconPronunciations_AddRef(This) (This)->lpVtbl->AddRef(This)
22304#define ISpeechLexiconPronunciations_Release(This) (This)->lpVtbl->Release(This)
22305/*** IDispatch methods ***/
22306#define ISpeechLexiconPronunciations_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22307#define ISpeechLexiconPronunciations_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22308#define ISpeechLexiconPronunciations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22309#define ISpeechLexiconPronunciations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22310/*** ISpeechLexiconPronunciations methods ***/
22311#define ISpeechLexiconPronunciations_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
22312#define ISpeechLexiconPronunciations_Item(This,Index,Pronunciation) (This)->lpVtbl->Item(This,Index,Pronunciation)
22313#define ISpeechLexiconPronunciations_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
22314#else
22315/*** IUnknown methods ***/
22316static inline HRESULT ISpeechLexiconPronunciations_QueryInterface(ISpeechLexiconPronunciations* This,REFIID riid,void **ppvObject) {
22317    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22318}
22319static inline ULONG ISpeechLexiconPronunciations_AddRef(ISpeechLexiconPronunciations* This) {
22320    return This->lpVtbl->AddRef(This);
22321}
22322static inline ULONG ISpeechLexiconPronunciations_Release(ISpeechLexiconPronunciations* This) {
22323    return This->lpVtbl->Release(This);
22324}
22325/*** IDispatch methods ***/
22326static inline HRESULT ISpeechLexiconPronunciations_GetTypeInfoCount(ISpeechLexiconPronunciations* This,UINT *pctinfo) {
22327    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22328}
22329static inline HRESULT ISpeechLexiconPronunciations_GetTypeInfo(ISpeechLexiconPronunciations* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22330    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22331}
22332static inline HRESULT ISpeechLexiconPronunciations_GetIDsOfNames(ISpeechLexiconPronunciations* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22333    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22334}
22335static inline HRESULT ISpeechLexiconPronunciations_Invoke(ISpeechLexiconPronunciations* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22336    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22337}
22338/*** ISpeechLexiconPronunciations methods ***/
22339static inline HRESULT ISpeechLexiconPronunciations_get_Count(ISpeechLexiconPronunciations* This,LONG *Count) {
22340    return This->lpVtbl->get_Count(This,Count);
22341}
22342static inline HRESULT ISpeechLexiconPronunciations_Item(ISpeechLexiconPronunciations* This,LONG Index,ISpeechLexiconPronunciation **Pronunciation) {
22343    return This->lpVtbl->Item(This,Index,Pronunciation);
22344}
22345static inline HRESULT ISpeechLexiconPronunciations_get__NewEnum(ISpeechLexiconPronunciations* This,IUnknown **EnumVARIANT) {
22346    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
22347}
22348#endif
22349#endif
22350
22351#endif
22352
22353
22354#endif  /* __ISpeechLexiconPronunciations_INTERFACE_DEFINED__ */
22355
22356/*****************************************************************************
22357 * ISpeechLexiconPronunciation interface
22358 */
22359#ifndef __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
22360#define __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
22361
22362DEFINE_GUID(IID_ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f);
22363#if defined(__cplusplus) && !defined(CINTERFACE)
22364MIDL_INTERFACE("95252c5d-9e43-4f4a-9899-48ee73352f9f")
22365ISpeechLexiconPronunciation : public IDispatch
22366{
22367    virtual HRESULT STDMETHODCALLTYPE get_Type(
22368        SpeechLexiconType *LexiconType) = 0;
22369
22370    virtual HRESULT STDMETHODCALLTYPE get_LangId(
22371        SpeechLanguageId *LangId) = 0;
22372
22373    virtual HRESULT STDMETHODCALLTYPE get_PartOfSpeech(
22374        SpeechPartOfSpeech *PartOfSpeech) = 0;
22375
22376    virtual HRESULT STDMETHODCALLTYPE get_PhoneIds(
22377        VARIANT *PhoneIds) = 0;
22378
22379    virtual HRESULT STDMETHODCALLTYPE get_Symbolic(
22380        BSTR *Symbolic) = 0;
22381
22382};
22383#ifdef __CRT_UUID_DECL
22384__CRT_UUID_DECL(ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f)
22385#endif
22386#else
22387typedef struct ISpeechLexiconPronunciationVtbl {
22388    BEGIN_INTERFACE
22389
22390    /*** IUnknown methods ***/
22391    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22392        ISpeechLexiconPronunciation *This,
22393        REFIID riid,
22394        void **ppvObject);
22395
22396    ULONG (STDMETHODCALLTYPE *AddRef)(
22397        ISpeechLexiconPronunciation *This);
22398
22399    ULONG (STDMETHODCALLTYPE *Release)(
22400        ISpeechLexiconPronunciation *This);
22401
22402    /*** IDispatch methods ***/
22403    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22404        ISpeechLexiconPronunciation *This,
22405        UINT *pctinfo);
22406
22407    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22408        ISpeechLexiconPronunciation *This,
22409        UINT iTInfo,
22410        LCID lcid,
22411        ITypeInfo **ppTInfo);
22412
22413    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22414        ISpeechLexiconPronunciation *This,
22415        REFIID riid,
22416        LPOLESTR *rgszNames,
22417        UINT cNames,
22418        LCID lcid,
22419        DISPID *rgDispId);
22420
22421    HRESULT (STDMETHODCALLTYPE *Invoke)(
22422        ISpeechLexiconPronunciation *This,
22423        DISPID dispIdMember,
22424        REFIID riid,
22425        LCID lcid,
22426        WORD wFlags,
22427        DISPPARAMS *pDispParams,
22428        VARIANT *pVarResult,
22429        EXCEPINFO *pExcepInfo,
22430        UINT *puArgErr);
22431
22432    /*** ISpeechLexiconPronunciation methods ***/
22433    HRESULT (STDMETHODCALLTYPE *get_Type)(
22434        ISpeechLexiconPronunciation *This,
22435        SpeechLexiconType *LexiconType);
22436
22437    HRESULT (STDMETHODCALLTYPE *get_LangId)(
22438        ISpeechLexiconPronunciation *This,
22439        SpeechLanguageId *LangId);
22440
22441    HRESULT (STDMETHODCALLTYPE *get_PartOfSpeech)(
22442        ISpeechLexiconPronunciation *This,
22443        SpeechPartOfSpeech *PartOfSpeech);
22444
22445    HRESULT (STDMETHODCALLTYPE *get_PhoneIds)(
22446        ISpeechLexiconPronunciation *This,
22447        VARIANT *PhoneIds);
22448
22449    HRESULT (STDMETHODCALLTYPE *get_Symbolic)(
22450        ISpeechLexiconPronunciation *This,
22451        BSTR *Symbolic);
22452
22453    END_INTERFACE
22454} ISpeechLexiconPronunciationVtbl;
22455
22456interface ISpeechLexiconPronunciation {
22457    CONST_VTBL ISpeechLexiconPronunciationVtbl* lpVtbl;
22458};
22459
22460#ifdef COBJMACROS
22461#ifndef WIDL_C_INLINE_WRAPPERS
22462/*** IUnknown methods ***/
22463#define ISpeechLexiconPronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22464#define ISpeechLexiconPronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
22465#define ISpeechLexiconPronunciation_Release(This) (This)->lpVtbl->Release(This)
22466/*** IDispatch methods ***/
22467#define ISpeechLexiconPronunciation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22468#define ISpeechLexiconPronunciation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22469#define ISpeechLexiconPronunciation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22470#define ISpeechLexiconPronunciation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22471/*** ISpeechLexiconPronunciation methods ***/
22472#define ISpeechLexiconPronunciation_get_Type(This,LexiconType) (This)->lpVtbl->get_Type(This,LexiconType)
22473#define ISpeechLexiconPronunciation_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
22474#define ISpeechLexiconPronunciation_get_PartOfSpeech(This,PartOfSpeech) (This)->lpVtbl->get_PartOfSpeech(This,PartOfSpeech)
22475#define ISpeechLexiconPronunciation_get_PhoneIds(This,PhoneIds) (This)->lpVtbl->get_PhoneIds(This,PhoneIds)
22476#define ISpeechLexiconPronunciation_get_Symbolic(This,Symbolic) (This)->lpVtbl->get_Symbolic(This,Symbolic)
22477#else
22478/*** IUnknown methods ***/
22479static inline HRESULT ISpeechLexiconPronunciation_QueryInterface(ISpeechLexiconPronunciation* This,REFIID riid,void **ppvObject) {
22480    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22481}
22482static inline ULONG ISpeechLexiconPronunciation_AddRef(ISpeechLexiconPronunciation* This) {
22483    return This->lpVtbl->AddRef(This);
22484}
22485static inline ULONG ISpeechLexiconPronunciation_Release(ISpeechLexiconPronunciation* This) {
22486    return This->lpVtbl->Release(This);
22487}
22488/*** IDispatch methods ***/
22489static inline HRESULT ISpeechLexiconPronunciation_GetTypeInfoCount(ISpeechLexiconPronunciation* This,UINT *pctinfo) {
22490    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22491}
22492static inline HRESULT ISpeechLexiconPronunciation_GetTypeInfo(ISpeechLexiconPronunciation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22493    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22494}
22495static inline HRESULT ISpeechLexiconPronunciation_GetIDsOfNames(ISpeechLexiconPronunciation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22496    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22497}
22498static inline HRESULT ISpeechLexiconPronunciation_Invoke(ISpeechLexiconPronunciation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22499    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22500}
22501/*** ISpeechLexiconPronunciation methods ***/
22502static inline HRESULT ISpeechLexiconPronunciation_get_Type(ISpeechLexiconPronunciation* This,SpeechLexiconType *LexiconType) {
22503    return This->lpVtbl->get_Type(This,LexiconType);
22504}
22505static inline HRESULT ISpeechLexiconPronunciation_get_LangId(ISpeechLexiconPronunciation* This,SpeechLanguageId *LangId) {
22506    return This->lpVtbl->get_LangId(This,LangId);
22507}
22508static inline HRESULT ISpeechLexiconPronunciation_get_PartOfSpeech(ISpeechLexiconPronunciation* This,SpeechPartOfSpeech *PartOfSpeech) {
22509    return This->lpVtbl->get_PartOfSpeech(This,PartOfSpeech);
22510}
22511static inline HRESULT ISpeechLexiconPronunciation_get_PhoneIds(ISpeechLexiconPronunciation* This,VARIANT *PhoneIds) {
22512    return This->lpVtbl->get_PhoneIds(This,PhoneIds);
22513}
22514static inline HRESULT ISpeechLexiconPronunciation_get_Symbolic(ISpeechLexiconPronunciation* This,BSTR *Symbolic) {
22515    return This->lpVtbl->get_Symbolic(This,Symbolic);
22516}
22517#endif
22518#endif
22519
22520#endif
22521
22522
22523#endif  /* __ISpeechLexiconPronunciation_INTERFACE_DEFINED__ */
22524
22525/*****************************************************************************
22526 * ISpeechPhoneConverter interface
22527 */
22528#ifndef __ISpeechPhoneConverter_INTERFACE_DEFINED__
22529#define __ISpeechPhoneConverter_INTERFACE_DEFINED__
22530
22531DEFINE_GUID(IID_ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d);
22532#if defined(__cplusplus) && !defined(CINTERFACE)
22533MIDL_INTERFACE("c3e4f353-433f-43d6-89a1-6a62a7054c3d")
22534ISpeechPhoneConverter : public IDispatch
22535{
22536    virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
22537        SpeechLanguageId *LanguageId) = 0;
22538
22539    virtual HRESULT STDMETHODCALLTYPE put_LanguageId(
22540        SpeechLanguageId LanguageId) = 0;
22541
22542    virtual HRESULT STDMETHODCALLTYPE PhoneToId(
22543        const BSTR Phonemes,
22544        VARIANT *IdArray) = 0;
22545
22546    virtual HRESULT STDMETHODCALLTYPE IdToPhone(
22547        const VARIANT IdArray,
22548        BSTR *Phonemes) = 0;
22549
22550};
22551#ifdef __CRT_UUID_DECL
22552__CRT_UUID_DECL(ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d)
22553#endif
22554#else
22555typedef struct ISpeechPhoneConverterVtbl {
22556    BEGIN_INTERFACE
22557
22558    /*** IUnknown methods ***/
22559    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22560        ISpeechPhoneConverter *This,
22561        REFIID riid,
22562        void **ppvObject);
22563
22564    ULONG (STDMETHODCALLTYPE *AddRef)(
22565        ISpeechPhoneConverter *This);
22566
22567    ULONG (STDMETHODCALLTYPE *Release)(
22568        ISpeechPhoneConverter *This);
22569
22570    /*** IDispatch methods ***/
22571    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22572        ISpeechPhoneConverter *This,
22573        UINT *pctinfo);
22574
22575    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22576        ISpeechPhoneConverter *This,
22577        UINT iTInfo,
22578        LCID lcid,
22579        ITypeInfo **ppTInfo);
22580
22581    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22582        ISpeechPhoneConverter *This,
22583        REFIID riid,
22584        LPOLESTR *rgszNames,
22585        UINT cNames,
22586        LCID lcid,
22587        DISPID *rgDispId);
22588
22589    HRESULT (STDMETHODCALLTYPE *Invoke)(
22590        ISpeechPhoneConverter *This,
22591        DISPID dispIdMember,
22592        REFIID riid,
22593        LCID lcid,
22594        WORD wFlags,
22595        DISPPARAMS *pDispParams,
22596        VARIANT *pVarResult,
22597        EXCEPINFO *pExcepInfo,
22598        UINT *puArgErr);
22599
22600    /*** ISpeechPhoneConverter methods ***/
22601    HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
22602        ISpeechPhoneConverter *This,
22603        SpeechLanguageId *LanguageId);
22604
22605    HRESULT (STDMETHODCALLTYPE *put_LanguageId)(
22606        ISpeechPhoneConverter *This,
22607        SpeechLanguageId LanguageId);
22608
22609    HRESULT (STDMETHODCALLTYPE *PhoneToId)(
22610        ISpeechPhoneConverter *This,
22611        const BSTR Phonemes,
22612        VARIANT *IdArray);
22613
22614    HRESULT (STDMETHODCALLTYPE *IdToPhone)(
22615        ISpeechPhoneConverter *This,
22616        const VARIANT IdArray,
22617        BSTR *Phonemes);
22618
22619    END_INTERFACE
22620} ISpeechPhoneConverterVtbl;
22621
22622interface ISpeechPhoneConverter {
22623    CONST_VTBL ISpeechPhoneConverterVtbl* lpVtbl;
22624};
22625
22626#ifdef COBJMACROS
22627#ifndef WIDL_C_INLINE_WRAPPERS
22628/*** IUnknown methods ***/
22629#define ISpeechPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22630#define ISpeechPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
22631#define ISpeechPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
22632/*** IDispatch methods ***/
22633#define ISpeechPhoneConverter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22634#define ISpeechPhoneConverter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22635#define ISpeechPhoneConverter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22636#define ISpeechPhoneConverter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22637/*** ISpeechPhoneConverter methods ***/
22638#define ISpeechPhoneConverter_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
22639#define ISpeechPhoneConverter_put_LanguageId(This,LanguageId) (This)->lpVtbl->put_LanguageId(This,LanguageId)
22640#define ISpeechPhoneConverter_PhoneToId(This,Phonemes,IdArray) (This)->lpVtbl->PhoneToId(This,Phonemes,IdArray)
22641#define ISpeechPhoneConverter_IdToPhone(This,IdArray,Phonemes) (This)->lpVtbl->IdToPhone(This,IdArray,Phonemes)
22642#else
22643/*** IUnknown methods ***/
22644static inline HRESULT ISpeechPhoneConverter_QueryInterface(ISpeechPhoneConverter* This,REFIID riid,void **ppvObject) {
22645    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22646}
22647static inline ULONG ISpeechPhoneConverter_AddRef(ISpeechPhoneConverter* This) {
22648    return This->lpVtbl->AddRef(This);
22649}
22650static inline ULONG ISpeechPhoneConverter_Release(ISpeechPhoneConverter* This) {
22651    return This->lpVtbl->Release(This);
22652}
22653/*** IDispatch methods ***/
22654static inline HRESULT ISpeechPhoneConverter_GetTypeInfoCount(ISpeechPhoneConverter* This,UINT *pctinfo) {
22655    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22656}
22657static inline HRESULT ISpeechPhoneConverter_GetTypeInfo(ISpeechPhoneConverter* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22658    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22659}
22660static inline HRESULT ISpeechPhoneConverter_GetIDsOfNames(ISpeechPhoneConverter* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22661    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22662}
22663static inline HRESULT ISpeechPhoneConverter_Invoke(ISpeechPhoneConverter* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22664    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22665}
22666/*** ISpeechPhoneConverter methods ***/
22667static inline HRESULT ISpeechPhoneConverter_get_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId *LanguageId) {
22668    return This->lpVtbl->get_LanguageId(This,LanguageId);
22669}
22670static inline HRESULT ISpeechPhoneConverter_put_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId LanguageId) {
22671    return This->lpVtbl->put_LanguageId(This,LanguageId);
22672}
22673static inline HRESULT ISpeechPhoneConverter_PhoneToId(ISpeechPhoneConverter* This,const BSTR Phonemes,VARIANT *IdArray) {
22674    return This->lpVtbl->PhoneToId(This,Phonemes,IdArray);
22675}
22676static inline HRESULT ISpeechPhoneConverter_IdToPhone(ISpeechPhoneConverter* This,const VARIANT IdArray,BSTR *Phonemes) {
22677    return This->lpVtbl->IdToPhone(This,IdArray,Phonemes);
22678}
22679#endif
22680#endif
22681
22682#endif
22683
22684
22685#endif  /* __ISpeechPhoneConverter_INTERFACE_DEFINED__ */
22686
22687/*****************************************************************************
22688 * SpNotifyTranslator coclass
22689 */
22690
22691DEFINE_GUID(CLSID_SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22692
22693#ifdef __cplusplus
22694class DECLSPEC_UUID("e2ae5372-5d40-11d2-960e-00c04f8ee628") SpNotifyTranslator;
22695#ifdef __CRT_UUID_DECL
22696__CRT_UUID_DECL(SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22697#endif
22698#endif
22699
22700/*****************************************************************************
22701 * SpObjectTokenCategory coclass
22702 */
22703
22704DEFINE_GUID(CLSID_SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53);
22705
22706#ifdef __cplusplus
22707class DECLSPEC_UUID("a910187f-0c7a-45ac-92cc-59edafb77b53") SpObjectTokenCategory;
22708#ifdef __CRT_UUID_DECL
22709__CRT_UUID_DECL(SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53)
22710#endif
22711#endif
22712
22713/*****************************************************************************
22714 * SpObjectToken coclass
22715 */
22716
22717DEFINE_GUID(CLSID_SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe);
22718
22719#ifdef __cplusplus
22720class DECLSPEC_UUID("ef411752-3736-4cb4-9c8c-8ef4ccb58efe") SpObjectToken;
22721#ifdef __CRT_UUID_DECL
22722__CRT_UUID_DECL(SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe)
22723#endif
22724#endif
22725
22726/*****************************************************************************
22727 * SpResourceManager coclass
22728 */
22729
22730DEFINE_GUID(CLSID_SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
22731
22732#ifdef __cplusplus
22733class DECLSPEC_UUID("96749373-3391-11d2-9ee3-00c04f797396") SpResourceManager;
22734#ifdef __CRT_UUID_DECL
22735__CRT_UUID_DECL(SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
22736#endif
22737#endif
22738
22739/*****************************************************************************
22740 * SpStreamFormatConverter coclass
22741 */
22742
22743DEFINE_GUID(CLSID_SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
22744
22745#ifdef __cplusplus
22746class DECLSPEC_UUID("7013943a-e2ec-11d2-a086-00c04f8ef9b5") SpStreamFormatConverter;
22747#ifdef __CRT_UUID_DECL
22748__CRT_UUID_DECL(SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
22749#endif
22750#endif
22751
22752/*****************************************************************************
22753 * SpMMAudioEnum coclass
22754 */
22755
22756DEFINE_GUID(CLSID_SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
22757
22758#ifdef __cplusplus
22759class DECLSPEC_UUID("ab1890a0-e91f-11d2-bb91-00c04f8ee6c0") SpMMAudioEnum;
22760#ifdef __CRT_UUID_DECL
22761__CRT_UUID_DECL(SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
22762#endif
22763#endif
22764
22765/*****************************************************************************
22766 * SpMMAudioIn coclass
22767 */
22768
22769DEFINE_GUID(CLSID_SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22770
22771#ifdef __cplusplus
22772class DECLSPEC_UUID("cf3d2e50-53f2-11d2-960c-00c04f8ee628") SpMMAudioIn;
22773#ifdef __CRT_UUID_DECL
22774__CRT_UUID_DECL(SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22775#endif
22776#endif
22777
22778/*****************************************************************************
22779 * SpMMAudioOut coclass
22780 */
22781
22782DEFINE_GUID(CLSID_SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96);
22783
22784#ifdef __cplusplus
22785class DECLSPEC_UUID("a8c680eb-3d32-11d2-9ee7-00c04f797396") SpMMAudioOut;
22786#ifdef __CRT_UUID_DECL
22787__CRT_UUID_DECL(SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96)
22788#endif
22789#endif
22790
22791/*****************************************************************************
22792 * SpStream coclass
22793 */
22794
22795DEFINE_GUID(CLSID_SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22796
22797#ifdef __cplusplus
22798class DECLSPEC_UUID("715d9c59-4442-11d2-9605-00c04f8ee628") SpStream;
22799#ifdef __CRT_UUID_DECL
22800__CRT_UUID_DECL(SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22801#endif
22802#endif
22803
22804/*****************************************************************************
22805 * SpVoice coclass
22806 */
22807
22808DEFINE_GUID(CLSID_SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
22809
22810#ifdef __cplusplus
22811class DECLSPEC_UUID("96749377-3391-11d2-9ee3-00c04f797396") SpVoice;
22812#ifdef __CRT_UUID_DECL
22813__CRT_UUID_DECL(SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
22814#endif
22815#endif
22816
22817/*****************************************************************************
22818 * SpSharedRecoContext coclass
22819 */
22820
22821DEFINE_GUID(CLSID_SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22822
22823#ifdef __cplusplus
22824class DECLSPEC_UUID("47206204-5eca-11d2-960f-00c04f8ee628") SpSharedRecoContext;
22825#ifdef __CRT_UUID_DECL
22826__CRT_UUID_DECL(SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22827#endif
22828#endif
22829
22830/*****************************************************************************
22831 * SpInprocRecognizer coclass
22832 */
22833
22834DEFINE_GUID(CLSID_SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22835
22836#ifdef __cplusplus
22837class DECLSPEC_UUID("41b89b6b-9399-11d2-9623-00c04f8ee628") SpInprocRecognizer;
22838#ifdef __CRT_UUID_DECL
22839__CRT_UUID_DECL(SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22840#endif
22841#endif
22842
22843/*****************************************************************************
22844 * SpSharedRecognizer coclass
22845 */
22846
22847DEFINE_GUID(CLSID_SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f);
22848
22849#ifdef __cplusplus
22850class DECLSPEC_UUID("3bee4890-4fe9-4a37-8c1e-5e7e12791c1f") SpSharedRecognizer;
22851#ifdef __CRT_UUID_DECL
22852__CRT_UUID_DECL(SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f)
22853#endif
22854#endif
22855
22856/*****************************************************************************
22857 * SpLexicon coclass
22858 */
22859
22860DEFINE_GUID(CLSID_SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
22861
22862#ifdef __cplusplus
22863class DECLSPEC_UUID("0655e396-25d0-11d3-9c26-00c04f8ef87c") SpLexicon;
22864#ifdef __CRT_UUID_DECL
22865__CRT_UUID_DECL(SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
22866#endif
22867#endif
22868
22869/*****************************************************************************
22870 * SpUnCompressedLexicon coclass
22871 */
22872
22873DEFINE_GUID(CLSID_SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a);
22874
22875#ifdef __cplusplus
22876class DECLSPEC_UUID("c9e37c15-df92-4727-85d6-72e5eeb6995a") SpUnCompressedLexicon;
22877#ifdef __CRT_UUID_DECL
22878__CRT_UUID_DECL(SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a)
22879#endif
22880#endif
22881
22882/*****************************************************************************
22883 * SpCompressedLexicon coclass
22884 */
22885
22886DEFINE_GUID(CLSID_SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
22887
22888#ifdef __cplusplus
22889class DECLSPEC_UUID("90903716-2f42-11d3-9c26-00c04f8ef87c") SpCompressedLexicon;
22890#ifdef __CRT_UUID_DECL
22891__CRT_UUID_DECL(SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
22892#endif
22893#endif
22894
22895/*****************************************************************************
22896 * SpShortcut coclass
22897 */
22898
22899DEFINE_GUID(CLSID_SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa);
22900
22901#ifdef __cplusplus
22902class DECLSPEC_UUID("0d722f1a-9fcf-4e62-96d8-6df8f01a26aa") SpShortcut;
22903#ifdef __CRT_UUID_DECL
22904__CRT_UUID_DECL(SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa)
22905#endif
22906#endif
22907
22908/*****************************************************************************
22909 * SpPhoneConverter coclass
22910 */
22911
22912DEFINE_GUID(CLSID_SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8);
22913
22914#ifdef __cplusplus
22915class DECLSPEC_UUID("9185f743-1143-4c28-86b5-bff14f20e5c8") SpPhoneConverter;
22916#ifdef __CRT_UUID_DECL
22917__CRT_UUID_DECL(SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8)
22918#endif
22919#endif
22920
22921/*****************************************************************************
22922 * SpPhoneticAlphabetConverter coclass
22923 */
22924
22925DEFINE_GUID(CLSID_SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad);
22926
22927#ifdef __cplusplus
22928class DECLSPEC_UUID("4f414126-dfe3-4629-99ee-797978317ead") SpPhoneticAlphabetConverter;
22929#ifdef __CRT_UUID_DECL
22930__CRT_UUID_DECL(SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad)
22931#endif
22932#endif
22933
22934/*****************************************************************************
22935 * SpNullPhoneConverter coclass
22936 */
22937
22938DEFINE_GUID(CLSID_SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3);
22939
22940#ifdef __cplusplus
22941class DECLSPEC_UUID("455f24e9-7396-4a16-9715-7c0fdbe3efe3") SpNullPhoneConverter;
22942#ifdef __CRT_UUID_DECL
22943__CRT_UUID_DECL(SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3)
22944#endif
22945#endif
22946
22947/*****************************************************************************
22948 * SpTextSelectionInformation coclass
22949 */
22950
22951DEFINE_GUID(CLSID_SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6);
22952
22953#ifdef __cplusplus
22954class DECLSPEC_UUID("0f92030a-cbfd-4ab8-a164-ff5985547ff6") SpTextSelectionInformation;
22955#ifdef __CRT_UUID_DECL
22956__CRT_UUID_DECL(SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6)
22957#endif
22958#endif
22959
22960/*****************************************************************************
22961 * SpPhraseInfoBuilder coclass
22962 */
22963
22964DEFINE_GUID(CLSID_SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1);
22965
22966#ifdef __cplusplus
22967class DECLSPEC_UUID("c23fc28d-c55f-4720-8b32-91f73c2bd5d1") SpPhraseInfoBuilder;
22968#ifdef __CRT_UUID_DECL
22969__CRT_UUID_DECL(SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1)
22970#endif
22971#endif
22972
22973/*****************************************************************************
22974 * SpAudioFormat coclass
22975 */
22976
22977DEFINE_GUID(CLSID_SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec);
22978
22979#ifdef __cplusplus
22980class DECLSPEC_UUID("9ef96870-e160-4792-820d-48cf0649e4ec") SpAudioFormat;
22981#ifdef __CRT_UUID_DECL
22982__CRT_UUID_DECL(SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec)
22983#endif
22984#endif
22985
22986/*****************************************************************************
22987 * SpWaveFormatEx coclass
22988 */
22989
22990DEFINE_GUID(CLSID_SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe);
22991
22992#ifdef __cplusplus
22993class DECLSPEC_UUID("c79a574c-63be-44b9-801f-283f87f898be") SpWaveFormatEx;
22994#ifdef __CRT_UUID_DECL
22995__CRT_UUID_DECL(SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe)
22996#endif
22997#endif
22998
22999/*****************************************************************************
23000 * SpInProcRecoContext coclass
23001 */
23002
23003DEFINE_GUID(CLSID_SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a);
23004
23005#ifdef __cplusplus
23006class DECLSPEC_UUID("73ad6842-ace0-45e8-a4dd-8795881a2c2a") SpInProcRecoContext;
23007#ifdef __CRT_UUID_DECL
23008__CRT_UUID_DECL(SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a)
23009#endif
23010#endif
23011
23012/*****************************************************************************
23013 * SpCustomStream coclass
23014 */
23015
23016DEFINE_GUID(CLSID_SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8);
23017
23018#ifdef __cplusplus
23019class DECLSPEC_UUID("8dbef13f-1948-4aa8-8cf0-048eebed95d8") SpCustomStream;
23020#ifdef __CRT_UUID_DECL
23021__CRT_UUID_DECL(SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8)
23022#endif
23023#endif
23024
23025/*****************************************************************************
23026 * SpFileStream coclass
23027 */
23028
23029DEFINE_GUID(CLSID_SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91);
23030
23031#ifdef __cplusplus
23032class DECLSPEC_UUID("947812b3-2ae1-4644-ba86-9e90ded7ec91") SpFileStream;
23033#ifdef __CRT_UUID_DECL
23034__CRT_UUID_DECL(SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91)
23035#endif
23036#endif
23037
23038/*****************************************************************************
23039 * SpMemoryStream coclass
23040 */
23041
23042DEFINE_GUID(CLSID_SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94);
23043
23044#ifdef __cplusplus
23045class DECLSPEC_UUID("5fb7ef7d-dff4-468a-b6b7-2fcbd188f994") SpMemoryStream;
23046#ifdef __CRT_UUID_DECL
23047__CRT_UUID_DECL(SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94)
23048#endif
23049#endif
23050
23051#ifndef __ISpXMLRecoResult_FWD_DEFINED__
23052#define __ISpXMLRecoResult_FWD_DEFINED__
23053typedef interface ISpXMLRecoResult ISpXMLRecoResult;
23054#ifdef __cplusplus
23055interface ISpXMLRecoResult;
23056#endif /* __cplusplus */
23057#endif
23058
23059#ifndef __ISpRecoGrammar2_FWD_DEFINED__
23060#define __ISpRecoGrammar2_FWD_DEFINED__
23061typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
23062#ifdef __cplusplus
23063interface ISpRecoGrammar2;
23064#endif /* __cplusplus */
23065#endif
23066
23067#ifndef __ISpeechResourceLoader_FWD_DEFINED__
23068#define __ISpeechResourceLoader_FWD_DEFINED__
23069typedef interface ISpeechResourceLoader ISpeechResourceLoader;
23070#ifdef __cplusplus
23071interface ISpeechResourceLoader;
23072#endif /* __cplusplus */
23073#endif
23074
23075#endif /* __SpeechLib_LIBRARY_DEFINED__ */
23076/* Begin additional prototypes for all interfaces */
23077
23078ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
23079unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
23080unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
23081void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
23082ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
23083unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
23084unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
23085void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
23086ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
23087unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
23088unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
23089void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
23090
23091/* End additional prototypes */
23092
23093#ifdef __cplusplus
23094}
23095#endif
23096
23097#endif /* __sapi53_h__ */