master
    1/*** Autogenerated by WIDL 10.4 from include/sapi51.idl - Do not edit ***/
    2
    3#ifdef _WIN32
    4#ifndef __REQUIRED_RPCNDR_H_VERSION__
    5#define __REQUIRED_RPCNDR_H_VERSION__ 475
    6#endif
    7#include <rpc.h>
    8#include <rpcndr.h>
    9#endif
   10
   11#ifndef COM_NO_WINDOWS_H
   12#include <windows.h>
   13#include <ole2.h>
   14#endif
   15
   16#ifndef __sapi51_h__
   17#define __sapi51_h__
   18
   19/* Forward declarations */
   20
   21#ifndef __ISpNotifySource_FWD_DEFINED__
   22#define __ISpNotifySource_FWD_DEFINED__
   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 __ISpEventSink_FWD_DEFINED__
  118#define __ISpEventSink_FWD_DEFINED__
  119typedef interface ISpEventSink ISpEventSink;
  120#ifdef __cplusplus
  121interface ISpEventSink;
  122#endif /* __cplusplus */
  123#endif
  124
  125#ifndef __ISpStreamFormat_FWD_DEFINED__
  126#define __ISpStreamFormat_FWD_DEFINED__
  127typedef interface ISpStreamFormat ISpStreamFormat;
  128#ifdef __cplusplus
  129interface ISpStreamFormat;
  130#endif /* __cplusplus */
  131#endif
  132
  133#ifndef __ISpStream_FWD_DEFINED__
  134#define __ISpStream_FWD_DEFINED__
  135typedef interface ISpStream ISpStream;
  136#ifdef __cplusplus
  137interface ISpStream;
  138#endif /* __cplusplus */
  139#endif
  140
  141#ifndef __ISpStreamFormatConverter_FWD_DEFINED__
  142#define __ISpStreamFormatConverter_FWD_DEFINED__
  143typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
  144#ifdef __cplusplus
  145interface ISpStreamFormatConverter;
  146#endif /* __cplusplus */
  147#endif
  148
  149#ifndef __ISpAudio_FWD_DEFINED__
  150#define __ISpAudio_FWD_DEFINED__
  151typedef interface ISpAudio ISpAudio;
  152#ifdef __cplusplus
  153interface ISpAudio;
  154#endif /* __cplusplus */
  155#endif
  156
  157#ifndef __ISpMMSysAudio_FWD_DEFINED__
  158#define __ISpMMSysAudio_FWD_DEFINED__
  159typedef interface ISpMMSysAudio ISpMMSysAudio;
  160#ifdef __cplusplus
  161interface ISpMMSysAudio;
  162#endif /* __cplusplus */
  163#endif
  164
  165#ifndef __ISpTranscript_FWD_DEFINED__
  166#define __ISpTranscript_FWD_DEFINED__
  167typedef interface ISpTranscript ISpTranscript;
  168#ifdef __cplusplus
  169interface ISpTranscript;
  170#endif /* __cplusplus */
  171#endif
  172
  173#ifndef __ISpLexicon_FWD_DEFINED__
  174#define __ISpLexicon_FWD_DEFINED__
  175typedef interface ISpLexicon ISpLexicon;
  176#ifdef __cplusplus
  177interface ISpLexicon;
  178#endif /* __cplusplus */
  179#endif
  180
  181#ifndef __ISpContainerLexicon_FWD_DEFINED__
  182#define __ISpContainerLexicon_FWD_DEFINED__
  183typedef interface ISpContainerLexicon ISpContainerLexicon;
  184#ifdef __cplusplus
  185interface ISpContainerLexicon;
  186#endif /* __cplusplus */
  187#endif
  188
  189#ifndef __ISpPhoneConverter_FWD_DEFINED__
  190#define __ISpPhoneConverter_FWD_DEFINED__
  191typedef interface ISpPhoneConverter ISpPhoneConverter;
  192#ifdef __cplusplus
  193interface ISpPhoneConverter;
  194#endif /* __cplusplus */
  195#endif
  196
  197#ifndef __ISpVoice_FWD_DEFINED__
  198#define __ISpVoice_FWD_DEFINED__
  199typedef interface ISpVoice ISpVoice;
  200#ifdef __cplusplus
  201interface ISpVoice;
  202#endif /* __cplusplus */
  203#endif
  204
  205#ifndef __ISpPhrase_FWD_DEFINED__
  206#define __ISpPhrase_FWD_DEFINED__
  207typedef interface ISpPhrase ISpPhrase;
  208#ifdef __cplusplus
  209interface ISpPhrase;
  210#endif /* __cplusplus */
  211#endif
  212
  213#ifndef __ISpPhraseAlt_FWD_DEFINED__
  214#define __ISpPhraseAlt_FWD_DEFINED__
  215typedef interface ISpPhraseAlt ISpPhraseAlt;
  216#ifdef __cplusplus
  217interface ISpPhraseAlt;
  218#endif /* __cplusplus */
  219#endif
  220
  221#ifndef __ISpRecoResult_FWD_DEFINED__
  222#define __ISpRecoResult_FWD_DEFINED__
  223typedef interface ISpRecoResult ISpRecoResult;
  224#ifdef __cplusplus
  225interface ISpRecoResult;
  226#endif /* __cplusplus */
  227#endif
  228
  229#ifndef __ISpGrammarBuilder_FWD_DEFINED__
  230#define __ISpGrammarBuilder_FWD_DEFINED__
  231typedef interface ISpGrammarBuilder ISpGrammarBuilder;
  232#ifdef __cplusplus
  233interface ISpGrammarBuilder;
  234#endif /* __cplusplus */
  235#endif
  236
  237#ifndef __ISpRecoGrammar_FWD_DEFINED__
  238#define __ISpRecoGrammar_FWD_DEFINED__
  239typedef interface ISpRecoGrammar ISpRecoGrammar;
  240#ifdef __cplusplus
  241interface ISpRecoGrammar;
  242#endif /* __cplusplus */
  243#endif
  244
  245#ifndef __ISpRecoContext_FWD_DEFINED__
  246#define __ISpRecoContext_FWD_DEFINED__
  247typedef interface ISpRecoContext ISpRecoContext;
  248#ifdef __cplusplus
  249interface ISpRecoContext;
  250#endif /* __cplusplus */
  251#endif
  252
  253#ifndef __ISpProperties_FWD_DEFINED__
  254#define __ISpProperties_FWD_DEFINED__
  255typedef interface ISpProperties ISpProperties;
  256#ifdef __cplusplus
  257interface ISpProperties;
  258#endif /* __cplusplus */
  259#endif
  260
  261#ifndef __ISpRecognizer_FWD_DEFINED__
  262#define __ISpRecognizer_FWD_DEFINED__
  263typedef interface ISpRecognizer ISpRecognizer;
  264#ifdef __cplusplus
  265interface ISpRecognizer;
  266#endif /* __cplusplus */
  267#endif
  268
  269#ifndef __ISpeechDataKey_FWD_DEFINED__
  270#define __ISpeechDataKey_FWD_DEFINED__
  271typedef interface ISpeechDataKey ISpeechDataKey;
  272#ifdef __cplusplus
  273interface ISpeechDataKey;
  274#endif /* __cplusplus */
  275#endif
  276
  277#ifndef __ISpeechObjectToken_FWD_DEFINED__
  278#define __ISpeechObjectToken_FWD_DEFINED__
  279typedef interface ISpeechObjectToken ISpeechObjectToken;
  280#ifdef __cplusplus
  281interface ISpeechObjectToken;
  282#endif /* __cplusplus */
  283#endif
  284
  285#ifndef __ISpeechObjectTokens_FWD_DEFINED__
  286#define __ISpeechObjectTokens_FWD_DEFINED__
  287typedef interface ISpeechObjectTokens ISpeechObjectTokens;
  288#ifdef __cplusplus
  289interface ISpeechObjectTokens;
  290#endif /* __cplusplus */
  291#endif
  292
  293#ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
  294#define __ISpeechObjectTokenCategory_FWD_DEFINED__
  295typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
  296#ifdef __cplusplus
  297interface ISpeechObjectTokenCategory;
  298#endif /* __cplusplus */
  299#endif
  300
  301#ifndef __ISpeechAudioFormat_FWD_DEFINED__
  302#define __ISpeechAudioFormat_FWD_DEFINED__
  303typedef interface ISpeechAudioFormat ISpeechAudioFormat;
  304#ifdef __cplusplus
  305interface ISpeechAudioFormat;
  306#endif /* __cplusplus */
  307#endif
  308
  309#ifndef __ISpeechBaseStream_FWD_DEFINED__
  310#define __ISpeechBaseStream_FWD_DEFINED__
  311typedef interface ISpeechBaseStream ISpeechBaseStream;
  312#ifdef __cplusplus
  313interface ISpeechBaseStream;
  314#endif /* __cplusplus */
  315#endif
  316
  317#ifndef __ISpeechAudio_FWD_DEFINED__
  318#define __ISpeechAudio_FWD_DEFINED__
  319typedef interface ISpeechAudio ISpeechAudio;
  320#ifdef __cplusplus
  321interface ISpeechAudio;
  322#endif /* __cplusplus */
  323#endif
  324
  325#ifndef __ISpeechMMSysAudio_FWD_DEFINED__
  326#define __ISpeechMMSysAudio_FWD_DEFINED__
  327typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
  328#ifdef __cplusplus
  329interface ISpeechMMSysAudio;
  330#endif /* __cplusplus */
  331#endif
  332
  333#ifndef __ISpeechFileStream_FWD_DEFINED__
  334#define __ISpeechFileStream_FWD_DEFINED__
  335typedef interface ISpeechFileStream ISpeechFileStream;
  336#ifdef __cplusplus
  337interface ISpeechFileStream;
  338#endif /* __cplusplus */
  339#endif
  340
  341#ifndef __ISpeechCustomStream_FWD_DEFINED__
  342#define __ISpeechCustomStream_FWD_DEFINED__
  343typedef interface ISpeechCustomStream ISpeechCustomStream;
  344#ifdef __cplusplus
  345interface ISpeechCustomStream;
  346#endif /* __cplusplus */
  347#endif
  348
  349#ifndef __ISpeechMemoryStream_FWD_DEFINED__
  350#define __ISpeechMemoryStream_FWD_DEFINED__
  351typedef interface ISpeechMemoryStream ISpeechMemoryStream;
  352#ifdef __cplusplus
  353interface ISpeechMemoryStream;
  354#endif /* __cplusplus */
  355#endif
  356
  357#ifndef __ISpeechAudioStatus_FWD_DEFINED__
  358#define __ISpeechAudioStatus_FWD_DEFINED__
  359typedef interface ISpeechAudioStatus ISpeechAudioStatus;
  360#ifdef __cplusplus
  361interface ISpeechAudioStatus;
  362#endif /* __cplusplus */
  363#endif
  364
  365#ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
  366#define __ISpeechAudioBufferInfo_FWD_DEFINED__
  367typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
  368#ifdef __cplusplus
  369interface ISpeechAudioBufferInfo;
  370#endif /* __cplusplus */
  371#endif
  372
  373#ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
  374#define __ISpeechWaveFormatEx_FWD_DEFINED__
  375typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
  376#ifdef __cplusplus
  377interface ISpeechWaveFormatEx;
  378#endif /* __cplusplus */
  379#endif
  380
  381#ifndef __ISpeechVoice_FWD_DEFINED__
  382#define __ISpeechVoice_FWD_DEFINED__
  383typedef interface ISpeechVoice ISpeechVoice;
  384#ifdef __cplusplus
  385interface ISpeechVoice;
  386#endif /* __cplusplus */
  387#endif
  388
  389#ifndef __ISpeechVoiceStatus_FWD_DEFINED__
  390#define __ISpeechVoiceStatus_FWD_DEFINED__
  391typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
  392#ifdef __cplusplus
  393interface ISpeechVoiceStatus;
  394#endif /* __cplusplus */
  395#endif
  396
  397#ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
  398#define ___ISpeechVoiceEvents_FWD_DEFINED__
  399typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
  400#ifdef __cplusplus
  401interface _ISpeechVoiceEvents;
  402#endif /* __cplusplus */
  403#endif
  404
  405#ifndef __ISpeechRecognizer_FWD_DEFINED__
  406#define __ISpeechRecognizer_FWD_DEFINED__
  407typedef interface ISpeechRecognizer ISpeechRecognizer;
  408#ifdef __cplusplus
  409interface ISpeechRecognizer;
  410#endif /* __cplusplus */
  411#endif
  412
  413#ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
  414#define __ISpeechRecognizerStatus_FWD_DEFINED__
  415typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
  416#ifdef __cplusplus
  417interface ISpeechRecognizerStatus;
  418#endif /* __cplusplus */
  419#endif
  420
  421#ifndef __ISpeechRecoContext_FWD_DEFINED__
  422#define __ISpeechRecoContext_FWD_DEFINED__
  423typedef interface ISpeechRecoContext ISpeechRecoContext;
  424#ifdef __cplusplus
  425interface ISpeechRecoContext;
  426#endif /* __cplusplus */
  427#endif
  428
  429#ifndef __ISpeechRecoGrammar_FWD_DEFINED__
  430#define __ISpeechRecoGrammar_FWD_DEFINED__
  431typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
  432#ifdef __cplusplus
  433interface ISpeechRecoGrammar;
  434#endif /* __cplusplus */
  435#endif
  436
  437#ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
  438#define ___ISpeechRecoContextEvents_FWD_DEFINED__
  439typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
  440#ifdef __cplusplus
  441interface _ISpeechRecoContextEvents;
  442#endif /* __cplusplus */
  443#endif
  444
  445#ifndef __ISpeechGrammarRule_FWD_DEFINED__
  446#define __ISpeechGrammarRule_FWD_DEFINED__
  447typedef interface ISpeechGrammarRule ISpeechGrammarRule;
  448#ifdef __cplusplus
  449interface ISpeechGrammarRule;
  450#endif /* __cplusplus */
  451#endif
  452
  453#ifndef __ISpeechGrammarRules_FWD_DEFINED__
  454#define __ISpeechGrammarRules_FWD_DEFINED__
  455typedef interface ISpeechGrammarRules ISpeechGrammarRules;
  456#ifdef __cplusplus
  457interface ISpeechGrammarRules;
  458#endif /* __cplusplus */
  459#endif
  460
  461#ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
  462#define __ISpeechGrammarRuleState_FWD_DEFINED__
  463typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
  464#ifdef __cplusplus
  465interface ISpeechGrammarRuleState;
  466#endif /* __cplusplus */
  467#endif
  468
  469#ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
  470#define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
  471typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
  472#ifdef __cplusplus
  473interface ISpeechGrammarRuleStateTransitions;
  474#endif /* __cplusplus */
  475#endif
  476
  477#ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
  478#define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
  479typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
  480#ifdef __cplusplus
  481interface ISpeechGrammarRuleStateTransition;
  482#endif /* __cplusplus */
  483#endif
  484
  485#ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
  486#define __ISpeechTextSelectionInformation_FWD_DEFINED__
  487typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
  488#ifdef __cplusplus
  489interface ISpeechTextSelectionInformation;
  490#endif /* __cplusplus */
  491#endif
  492
  493#ifndef __ISpeechRecoResult_FWD_DEFINED__
  494#define __ISpeechRecoResult_FWD_DEFINED__
  495typedef interface ISpeechRecoResult ISpeechRecoResult;
  496#ifdef __cplusplus
  497interface ISpeechRecoResult;
  498#endif /* __cplusplus */
  499#endif
  500
  501#ifndef __ISpeechPhraseInfoBuilder_FWD_DEFINED__
  502#define __ISpeechPhraseInfoBuilder_FWD_DEFINED__
  503typedef interface ISpeechPhraseInfoBuilder ISpeechPhraseInfoBuilder;
  504#ifdef __cplusplus
  505interface ISpeechPhraseInfoBuilder;
  506#endif /* __cplusplus */
  507#endif
  508
  509#ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
  510#define __ISpeechRecoResultTimes_FWD_DEFINED__
  511typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
  512#ifdef __cplusplus
  513interface ISpeechRecoResultTimes;
  514#endif /* __cplusplus */
  515#endif
  516
  517#ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
  518#define __ISpeechPhraseAlternate_FWD_DEFINED__
  519typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
  520#ifdef __cplusplus
  521interface ISpeechPhraseAlternate;
  522#endif /* __cplusplus */
  523#endif
  524
  525#ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
  526#define __ISpeechPhraseAlternates_FWD_DEFINED__
  527typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
  528#ifdef __cplusplus
  529interface ISpeechPhraseAlternates;
  530#endif /* __cplusplus */
  531#endif
  532
  533#ifndef __ISpeechPhraseInfo_FWD_DEFINED__
  534#define __ISpeechPhraseInfo_FWD_DEFINED__
  535typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
  536#ifdef __cplusplus
  537interface ISpeechPhraseInfo;
  538#endif /* __cplusplus */
  539#endif
  540
  541#ifndef __ISpeechPhraseElement_FWD_DEFINED__
  542#define __ISpeechPhraseElement_FWD_DEFINED__
  543typedef interface ISpeechPhraseElement ISpeechPhraseElement;
  544#ifdef __cplusplus
  545interface ISpeechPhraseElement;
  546#endif /* __cplusplus */
  547#endif
  548
  549#ifndef __ISpeechPhraseElements_FWD_DEFINED__
  550#define __ISpeechPhraseElements_FWD_DEFINED__
  551typedef interface ISpeechPhraseElements ISpeechPhraseElements;
  552#ifdef __cplusplus
  553interface ISpeechPhraseElements;
  554#endif /* __cplusplus */
  555#endif
  556
  557#ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
  558#define __ISpeechPhraseReplacement_FWD_DEFINED__
  559typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
  560#ifdef __cplusplus
  561interface ISpeechPhraseReplacement;
  562#endif /* __cplusplus */
  563#endif
  564
  565#ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
  566#define __ISpeechPhraseReplacements_FWD_DEFINED__
  567typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
  568#ifdef __cplusplus
  569interface ISpeechPhraseReplacements;
  570#endif /* __cplusplus */
  571#endif
  572
  573#ifndef __ISpeechPhraseProperty_FWD_DEFINED__
  574#define __ISpeechPhraseProperty_FWD_DEFINED__
  575typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
  576#ifdef __cplusplus
  577interface ISpeechPhraseProperty;
  578#endif /* __cplusplus */
  579#endif
  580
  581#ifndef __ISpeechPhraseProperties_FWD_DEFINED__
  582#define __ISpeechPhraseProperties_FWD_DEFINED__
  583typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
  584#ifdef __cplusplus
  585interface ISpeechPhraseProperties;
  586#endif /* __cplusplus */
  587#endif
  588
  589#ifndef __ISpeechPhraseRule_FWD_DEFINED__
  590#define __ISpeechPhraseRule_FWD_DEFINED__
  591typedef interface ISpeechPhraseRule ISpeechPhraseRule;
  592#ifdef __cplusplus
  593interface ISpeechPhraseRule;
  594#endif /* __cplusplus */
  595#endif
  596
  597#ifndef __ISpeechPhraseRules_FWD_DEFINED__
  598#define __ISpeechPhraseRules_FWD_DEFINED__
  599typedef interface ISpeechPhraseRules ISpeechPhraseRules;
  600#ifdef __cplusplus
  601interface ISpeechPhraseRules;
  602#endif /* __cplusplus */
  603#endif
  604
  605#ifndef __ISpeechLexiconWords_FWD_DEFINED__
  606#define __ISpeechLexiconWords_FWD_DEFINED__
  607typedef interface ISpeechLexiconWords ISpeechLexiconWords;
  608#ifdef __cplusplus
  609interface ISpeechLexiconWords;
  610#endif /* __cplusplus */
  611#endif
  612
  613#ifndef __ISpeechLexicon_FWD_DEFINED__
  614#define __ISpeechLexicon_FWD_DEFINED__
  615typedef interface ISpeechLexicon ISpeechLexicon;
  616#ifdef __cplusplus
  617interface ISpeechLexicon;
  618#endif /* __cplusplus */
  619#endif
  620
  621#ifndef __ISpeechLexiconWord_FWD_DEFINED__
  622#define __ISpeechLexiconWord_FWD_DEFINED__
  623typedef interface ISpeechLexiconWord ISpeechLexiconWord;
  624#ifdef __cplusplus
  625interface ISpeechLexiconWord;
  626#endif /* __cplusplus */
  627#endif
  628
  629#ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
  630#define __ISpeechLexiconPronunciations_FWD_DEFINED__
  631typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
  632#ifdef __cplusplus
  633interface ISpeechLexiconPronunciations;
  634#endif /* __cplusplus */
  635#endif
  636
  637#ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
  638#define __ISpeechLexiconPronunciation_FWD_DEFINED__
  639typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
  640#ifdef __cplusplus
  641interface ISpeechLexiconPronunciation;
  642#endif /* __cplusplus */
  643#endif
  644
  645#ifndef __ISpeechPhoneConverter_FWD_DEFINED__
  646#define __ISpeechPhoneConverter_FWD_DEFINED__
  647typedef interface ISpeechPhoneConverter ISpeechPhoneConverter;
  648#ifdef __cplusplus
  649interface ISpeechPhoneConverter;
  650#endif /* __cplusplus */
  651#endif
  652
  653#ifndef __SpNotifyTranslator_FWD_DEFINED__
  654#define __SpNotifyTranslator_FWD_DEFINED__
  655#ifdef __cplusplus
  656typedef class SpNotifyTranslator SpNotifyTranslator;
  657#else
  658typedef struct SpNotifyTranslator SpNotifyTranslator;
  659#endif /* defined __cplusplus */
  660#endif /* defined __SpNotifyTranslator_FWD_DEFINED__ */
  661
  662#ifndef __SpObjectTokenCategory_FWD_DEFINED__
  663#define __SpObjectTokenCategory_FWD_DEFINED__
  664#ifdef __cplusplus
  665typedef class SpObjectTokenCategory SpObjectTokenCategory;
  666#else
  667typedef struct SpObjectTokenCategory SpObjectTokenCategory;
  668#endif /* defined __cplusplus */
  669#endif /* defined __SpObjectTokenCategory_FWD_DEFINED__ */
  670
  671#ifndef __SpObjectToken_FWD_DEFINED__
  672#define __SpObjectToken_FWD_DEFINED__
  673#ifdef __cplusplus
  674typedef class SpObjectToken SpObjectToken;
  675#else
  676typedef struct SpObjectToken SpObjectToken;
  677#endif /* defined __cplusplus */
  678#endif /* defined __SpObjectToken_FWD_DEFINED__ */
  679
  680#ifndef __SpResourceManager_FWD_DEFINED__
  681#define __SpResourceManager_FWD_DEFINED__
  682#ifdef __cplusplus
  683typedef class SpResourceManager SpResourceManager;
  684#else
  685typedef struct SpResourceManager SpResourceManager;
  686#endif /* defined __cplusplus */
  687#endif /* defined __SpResourceManager_FWD_DEFINED__ */
  688
  689#ifndef __SpStreamFormatConverter_FWD_DEFINED__
  690#define __SpStreamFormatConverter_FWD_DEFINED__
  691#ifdef __cplusplus
  692typedef class SpStreamFormatConverter SpStreamFormatConverter;
  693#else
  694typedef struct SpStreamFormatConverter SpStreamFormatConverter;
  695#endif /* defined __cplusplus */
  696#endif /* defined __SpStreamFormatConverter_FWD_DEFINED__ */
  697
  698#ifndef __SpMMAudioEnum_FWD_DEFINED__
  699#define __SpMMAudioEnum_FWD_DEFINED__
  700#ifdef __cplusplus
  701typedef class SpMMAudioEnum SpMMAudioEnum;
  702#else
  703typedef struct SpMMAudioEnum SpMMAudioEnum;
  704#endif /* defined __cplusplus */
  705#endif /* defined __SpMMAudioEnum_FWD_DEFINED__ */
  706
  707#ifndef __SpMMAudioIn_FWD_DEFINED__
  708#define __SpMMAudioIn_FWD_DEFINED__
  709#ifdef __cplusplus
  710typedef class SpMMAudioIn SpMMAudioIn;
  711#else
  712typedef struct SpMMAudioIn SpMMAudioIn;
  713#endif /* defined __cplusplus */
  714#endif /* defined __SpMMAudioIn_FWD_DEFINED__ */
  715
  716#ifndef __SpMMAudioOut_FWD_DEFINED__
  717#define __SpMMAudioOut_FWD_DEFINED__
  718#ifdef __cplusplus
  719typedef class SpMMAudioOut SpMMAudioOut;
  720#else
  721typedef struct SpMMAudioOut SpMMAudioOut;
  722#endif /* defined __cplusplus */
  723#endif /* defined __SpMMAudioOut_FWD_DEFINED__ */
  724
  725#ifndef __SpStream_FWD_DEFINED__
  726#define __SpStream_FWD_DEFINED__
  727#ifdef __cplusplus
  728typedef class SpStream SpStream;
  729#else
  730typedef struct SpStream SpStream;
  731#endif /* defined __cplusplus */
  732#endif /* defined __SpStream_FWD_DEFINED__ */
  733
  734#ifndef __SpVoice_FWD_DEFINED__
  735#define __SpVoice_FWD_DEFINED__
  736#ifdef __cplusplus
  737typedef class SpVoice SpVoice;
  738#else
  739typedef struct SpVoice SpVoice;
  740#endif /* defined __cplusplus */
  741#endif /* defined __SpVoice_FWD_DEFINED__ */
  742
  743#ifndef __SpSharedRecoContext_FWD_DEFINED__
  744#define __SpSharedRecoContext_FWD_DEFINED__
  745#ifdef __cplusplus
  746typedef class SpSharedRecoContext SpSharedRecoContext;
  747#else
  748typedef struct SpSharedRecoContext SpSharedRecoContext;
  749#endif /* defined __cplusplus */
  750#endif /* defined __SpSharedRecoContext_FWD_DEFINED__ */
  751
  752#ifndef __SpInprocRecognizer_FWD_DEFINED__
  753#define __SpInprocRecognizer_FWD_DEFINED__
  754#ifdef __cplusplus
  755typedef class SpInprocRecognizer SpInprocRecognizer;
  756#else
  757typedef struct SpInprocRecognizer SpInprocRecognizer;
  758#endif /* defined __cplusplus */
  759#endif /* defined __SpInprocRecognizer_FWD_DEFINED__ */
  760
  761#ifndef __SpSharedRecognizer_FWD_DEFINED__
  762#define __SpSharedRecognizer_FWD_DEFINED__
  763#ifdef __cplusplus
  764typedef class SpSharedRecognizer SpSharedRecognizer;
  765#else
  766typedef struct SpSharedRecognizer SpSharedRecognizer;
  767#endif /* defined __cplusplus */
  768#endif /* defined __SpSharedRecognizer_FWD_DEFINED__ */
  769
  770#ifndef __SpLexicon_FWD_DEFINED__
  771#define __SpLexicon_FWD_DEFINED__
  772#ifdef __cplusplus
  773typedef class SpLexicon SpLexicon;
  774#else
  775typedef struct SpLexicon SpLexicon;
  776#endif /* defined __cplusplus */
  777#endif /* defined __SpLexicon_FWD_DEFINED__ */
  778
  779#ifndef __SpUnCompressedLexicon_FWD_DEFINED__
  780#define __SpUnCompressedLexicon_FWD_DEFINED__
  781#ifdef __cplusplus
  782typedef class SpUnCompressedLexicon SpUnCompressedLexicon;
  783#else
  784typedef struct SpUnCompressedLexicon SpUnCompressedLexicon;
  785#endif /* defined __cplusplus */
  786#endif /* defined __SpUnCompressedLexicon_FWD_DEFINED__ */
  787
  788#ifndef __SpCompressedLexicon_FWD_DEFINED__
  789#define __SpCompressedLexicon_FWD_DEFINED__
  790#ifdef __cplusplus
  791typedef class SpCompressedLexicon SpCompressedLexicon;
  792#else
  793typedef struct SpCompressedLexicon SpCompressedLexicon;
  794#endif /* defined __cplusplus */
  795#endif /* defined __SpCompressedLexicon_FWD_DEFINED__ */
  796
  797#ifndef __SpPhoneConverter_FWD_DEFINED__
  798#define __SpPhoneConverter_FWD_DEFINED__
  799#ifdef __cplusplus
  800typedef class SpPhoneConverter SpPhoneConverter;
  801#else
  802typedef struct SpPhoneConverter SpPhoneConverter;
  803#endif /* defined __cplusplus */
  804#endif /* defined __SpPhoneConverter_FWD_DEFINED__ */
  805
  806#ifndef __SpNullPhoneConverter_FWD_DEFINED__
  807#define __SpNullPhoneConverter_FWD_DEFINED__
  808#ifdef __cplusplus
  809typedef class SpNullPhoneConverter SpNullPhoneConverter;
  810#else
  811typedef struct SpNullPhoneConverter SpNullPhoneConverter;
  812#endif /* defined __cplusplus */
  813#endif /* defined __SpNullPhoneConverter_FWD_DEFINED__ */
  814
  815#ifndef __SpTextSelectionInformation_FWD_DEFINED__
  816#define __SpTextSelectionInformation_FWD_DEFINED__
  817#ifdef __cplusplus
  818typedef class SpTextSelectionInformation SpTextSelectionInformation;
  819#else
  820typedef struct SpTextSelectionInformation SpTextSelectionInformation;
  821#endif /* defined __cplusplus */
  822#endif /* defined __SpTextSelectionInformation_FWD_DEFINED__ */
  823
  824#ifndef __SpPhraseInfoBuilder_FWD_DEFINED__
  825#define __SpPhraseInfoBuilder_FWD_DEFINED__
  826#ifdef __cplusplus
  827typedef class SpPhraseInfoBuilder SpPhraseInfoBuilder;
  828#else
  829typedef struct SpPhraseInfoBuilder SpPhraseInfoBuilder;
  830#endif /* defined __cplusplus */
  831#endif /* defined __SpPhraseInfoBuilder_FWD_DEFINED__ */
  832
  833#ifndef __SpAudioFormat_FWD_DEFINED__
  834#define __SpAudioFormat_FWD_DEFINED__
  835#ifdef __cplusplus
  836typedef class SpAudioFormat SpAudioFormat;
  837#else
  838typedef struct SpAudioFormat SpAudioFormat;
  839#endif /* defined __cplusplus */
  840#endif /* defined __SpAudioFormat_FWD_DEFINED__ */
  841
  842#ifndef __SpWaveFormatEx_FWD_DEFINED__
  843#define __SpWaveFormatEx_FWD_DEFINED__
  844#ifdef __cplusplus
  845typedef class SpWaveFormatEx SpWaveFormatEx;
  846#else
  847typedef struct SpWaveFormatEx SpWaveFormatEx;
  848#endif /* defined __cplusplus */
  849#endif /* defined __SpWaveFormatEx_FWD_DEFINED__ */
  850
  851#ifndef __SpInProcRecoContext_FWD_DEFINED__
  852#define __SpInProcRecoContext_FWD_DEFINED__
  853#ifdef __cplusplus
  854typedef class SpInProcRecoContext SpInProcRecoContext;
  855#else
  856typedef struct SpInProcRecoContext SpInProcRecoContext;
  857#endif /* defined __cplusplus */
  858#endif /* defined __SpInProcRecoContext_FWD_DEFINED__ */
  859
  860#ifndef __SpCustomStream_FWD_DEFINED__
  861#define __SpCustomStream_FWD_DEFINED__
  862#ifdef __cplusplus
  863typedef class SpCustomStream SpCustomStream;
  864#else
  865typedef struct SpCustomStream SpCustomStream;
  866#endif /* defined __cplusplus */
  867#endif /* defined __SpCustomStream_FWD_DEFINED__ */
  868
  869#ifndef __SpFileStream_FWD_DEFINED__
  870#define __SpFileStream_FWD_DEFINED__
  871#ifdef __cplusplus
  872typedef class SpFileStream SpFileStream;
  873#else
  874typedef struct SpFileStream SpFileStream;
  875#endif /* defined __cplusplus */
  876#endif /* defined __SpFileStream_FWD_DEFINED__ */
  877
  878#ifndef __SpMemoryStream_FWD_DEFINED__
  879#define __SpMemoryStream_FWD_DEFINED__
  880#ifdef __cplusplus
  881typedef class SpMemoryStream SpMemoryStream;
  882#else
  883typedef struct SpMemoryStream SpMemoryStream;
  884#endif /* defined __cplusplus */
  885#endif /* defined __SpMemoryStream_FWD_DEFINED__ */
  886
  887/* Headers for imported files */
  888
  889#include <oaidl.h>
  890#include <ocidl.h>
  891
  892#ifdef __cplusplus
  893extern "C" {
  894#endif
  895
  896#ifndef _SAPI_VER
  897#error "you have to include <sapi.h> header before this."
  898#endif
  899#if 0
  900typedef struct WAVEFORMATEX {
  901    WORD wFormatTag;
  902    WORD nChannels;
  903    DWORD nSamplesPerSec;
  904    DWORD nAvgBytesPerSec;
  905    WORD nBlockAlign;
  906    WORD wBitsPerSample;
  907    WORD cbSize;
  908} WAVEFORMATEX;
  909#endif
  910#ifndef __ISpNotifySource_FWD_DEFINED__
  911#define __ISpNotifySource_FWD_DEFINED__
  912typedef interface ISpNotifySource ISpNotifySource;
  913#ifdef __cplusplus
  914interface ISpNotifySource;
  915#endif /* __cplusplus */
  916#endif
  917
  918#ifndef __ISpNotifySink_FWD_DEFINED__
  919#define __ISpNotifySink_FWD_DEFINED__
  920typedef interface ISpNotifySink ISpNotifySink;
  921#ifdef __cplusplus
  922interface ISpNotifySink;
  923#endif /* __cplusplus */
  924#endif
  925
  926#ifndef __ISpNotifyTranslator_FWD_DEFINED__
  927#define __ISpNotifyTranslator_FWD_DEFINED__
  928typedef interface ISpNotifyTranslator ISpNotifyTranslator;
  929#ifdef __cplusplus
  930interface ISpNotifyTranslator;
  931#endif /* __cplusplus */
  932#endif
  933
  934#ifndef __ISpDataKey_FWD_DEFINED__
  935#define __ISpDataKey_FWD_DEFINED__
  936typedef interface ISpDataKey ISpDataKey;
  937#ifdef __cplusplus
  938interface ISpDataKey;
  939#endif /* __cplusplus */
  940#endif
  941
  942#ifndef __ISpObjectTokenCategory_FWD_DEFINED__
  943#define __ISpObjectTokenCategory_FWD_DEFINED__
  944typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
  945#ifdef __cplusplus
  946interface ISpObjectTokenCategory;
  947#endif /* __cplusplus */
  948#endif
  949
  950#ifndef __ISpObjectToken_FWD_DEFINED__
  951#define __ISpObjectToken_FWD_DEFINED__
  952typedef interface ISpObjectToken ISpObjectToken;
  953#ifdef __cplusplus
  954interface ISpObjectToken;
  955#endif /* __cplusplus */
  956#endif
  957
  958#ifndef __IEnumSpObjectTokens_FWD_DEFINED__
  959#define __IEnumSpObjectTokens_FWD_DEFINED__
  960typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
  961#ifdef __cplusplus
  962interface IEnumSpObjectTokens;
  963#endif /* __cplusplus */
  964#endif
  965
  966#ifndef __ISpObjectWithToken_FWD_DEFINED__
  967#define __ISpObjectWithToken_FWD_DEFINED__
  968typedef interface ISpObjectWithToken ISpObjectWithToken;
  969#ifdef __cplusplus
  970interface ISpObjectWithToken;
  971#endif /* __cplusplus */
  972#endif
  973
  974#ifndef __ISpResourceManager_FWD_DEFINED__
  975#define __ISpResourceManager_FWD_DEFINED__
  976typedef interface ISpResourceManager ISpResourceManager;
  977#ifdef __cplusplus
  978interface ISpResourceManager;
  979#endif /* __cplusplus */
  980#endif
  981
  982#ifndef __ISpEventSource_FWD_DEFINED__
  983#define __ISpEventSource_FWD_DEFINED__
  984typedef interface ISpEventSource ISpEventSource;
  985#ifdef __cplusplus
  986interface ISpEventSource;
  987#endif /* __cplusplus */
  988#endif
  989
  990#ifndef __ISpEventSink_FWD_DEFINED__
  991#define __ISpEventSink_FWD_DEFINED__
  992typedef interface ISpEventSink ISpEventSink;
  993#ifdef __cplusplus
  994interface ISpEventSink;
  995#endif /* __cplusplus */
  996#endif
  997
  998#ifndef __ISpStreamFormat_FWD_DEFINED__
  999#define __ISpStreamFormat_FWD_DEFINED__
 1000typedef interface ISpStreamFormat ISpStreamFormat;
 1001#ifdef __cplusplus
 1002interface ISpStreamFormat;
 1003#endif /* __cplusplus */
 1004#endif
 1005
 1006#ifndef __ISpStream_FWD_DEFINED__
 1007#define __ISpStream_FWD_DEFINED__
 1008typedef interface ISpStream ISpStream;
 1009#ifdef __cplusplus
 1010interface ISpStream;
 1011#endif /* __cplusplus */
 1012#endif
 1013
 1014#ifndef __ISpStreamFormatConverter_FWD_DEFINED__
 1015#define __ISpStreamFormatConverter_FWD_DEFINED__
 1016typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
 1017#ifdef __cplusplus
 1018interface ISpStreamFormatConverter;
 1019#endif /* __cplusplus */
 1020#endif
 1021
 1022#ifndef __ISpAudio_FWD_DEFINED__
 1023#define __ISpAudio_FWD_DEFINED__
 1024typedef interface ISpAudio ISpAudio;
 1025#ifdef __cplusplus
 1026interface ISpAudio;
 1027#endif /* __cplusplus */
 1028#endif
 1029
 1030#ifndef __ISpMMSysAudio_FWD_DEFINED__
 1031#define __ISpMMSysAudio_FWD_DEFINED__
 1032typedef interface ISpMMSysAudio ISpMMSysAudio;
 1033#ifdef __cplusplus
 1034interface ISpMMSysAudio;
 1035#endif /* __cplusplus */
 1036#endif
 1037
 1038#ifndef __ISpTranscript_FWD_DEFINED__
 1039#define __ISpTranscript_FWD_DEFINED__
 1040typedef interface ISpTranscript ISpTranscript;
 1041#ifdef __cplusplus
 1042interface ISpTranscript;
 1043#endif /* __cplusplus */
 1044#endif
 1045
 1046#ifndef __ISpVoice_FWD_DEFINED__
 1047#define __ISpVoice_FWD_DEFINED__
 1048typedef interface ISpVoice ISpVoice;
 1049#ifdef __cplusplus
 1050interface ISpVoice;
 1051#endif /* __cplusplus */
 1052#endif
 1053
 1054#ifndef __ISpRecoResult_FWD_DEFINED__
 1055#define __ISpRecoResult_FWD_DEFINED__
 1056typedef interface ISpRecoResult ISpRecoResult;
 1057#ifdef __cplusplus
 1058interface ISpRecoResult;
 1059#endif /* __cplusplus */
 1060#endif
 1061
 1062#ifndef __ISpRecoContext_FWD_DEFINED__
 1063#define __ISpRecoContext_FWD_DEFINED__
 1064typedef interface ISpRecoContext ISpRecoContext;
 1065#ifdef __cplusplus
 1066interface ISpRecoContext;
 1067#endif /* __cplusplus */
 1068#endif
 1069
 1070#ifndef __ISpRecognizer_FWD_DEFINED__
 1071#define __ISpRecognizer_FWD_DEFINED__
 1072typedef interface ISpRecognizer ISpRecognizer;
 1073#ifdef __cplusplus
 1074interface ISpRecognizer;
 1075#endif /* __cplusplus */
 1076#endif
 1077
 1078#ifndef __ISpProperties_FWD_DEFINED__
 1079#define __ISpProperties_FWD_DEFINED__
 1080typedef interface ISpProperties ISpProperties;
 1081#ifdef __cplusplus
 1082interface ISpProperties;
 1083#endif /* __cplusplus */
 1084#endif
 1085
 1086#ifndef __ISpLexicon_FWD_DEFINED__
 1087#define __ISpLexicon_FWD_DEFINED__
 1088typedef interface ISpLexicon ISpLexicon;
 1089#ifdef __cplusplus
 1090interface ISpLexicon;
 1091#endif /* __cplusplus */
 1092#endif
 1093
 1094#ifndef __ISpPhoneConverter_FWD_DEFINED__
 1095#define __ISpPhoneConverter_FWD_DEFINED__
 1096typedef interface ISpPhoneConverter ISpPhoneConverter;
 1097#ifdef __cplusplus
 1098interface ISpPhoneConverter;
 1099#endif /* __cplusplus */
 1100#endif
 1101
 1102#ifndef __ISpPhrase_FWD_DEFINED__
 1103#define __ISpPhrase_FWD_DEFINED__
 1104typedef interface ISpPhrase ISpPhrase;
 1105#ifdef __cplusplus
 1106interface ISpPhrase;
 1107#endif /* __cplusplus */
 1108#endif
 1109
 1110typedef enum SPDATAKEYLOCATION {
 1111    SPDKL_DefaultLocation = 0,
 1112    SPDKL_CurrentUser = 1,
 1113    SPDKL_LocalMachine = 2,
 1114    SPDKL_CurrentConfig = 5
 1115} SPDATAKEYLOCATION;
 1116typedef enum SPSTREAMFORMAT {
 1117    SPSF_Default = -1,
 1118    SPSF_NoAssignedFormat = 0,
 1119    SPSF_Text = 1,
 1120    SPSF_NonStandardFormat = 2,
 1121    SPSF_ExtendedAudioFormat = 3,
 1122    SPSF_8kHz8BitMono = 4,
 1123    SPSF_8kHz8BitStereo = 5,
 1124    SPSF_8kHz16BitMono = 6,
 1125    SPSF_8kHz16BitStereo = 7,
 1126    SPSF_11kHz8BitMono = 8,
 1127    SPSF_11kHz8BitStereo = 9,
 1128    SPSF_11kHz16BitMono = 10,
 1129    SPSF_11kHz16BitStereo = 11,
 1130    SPSF_12kHz8BitMono = 12,
 1131    SPSF_12kHz8BitStereo = 13,
 1132    SPSF_12kHz16BitMono = 14,
 1133    SPSF_12kHz16BitStereo = 15,
 1134    SPSF_16kHz8BitMono = 16,
 1135    SPSF_16kHz8BitStereo = 17,
 1136    SPSF_16kHz16BitMono = 18,
 1137    SPSF_16kHz16BitStereo = 19,
 1138    SPSF_22kHz8BitMono = 20,
 1139    SPSF_22kHz8BitStereo = 21,
 1140    SPSF_22kHz16BitMono = 22,
 1141    SPSF_22kHz16BitStereo = 23,
 1142    SPSF_24kHz8BitMono = 24,
 1143    SPSF_24kHz8BitStereo = 25,
 1144    SPSF_24kHz16BitMono = 26,
 1145    SPSF_24kHz16BitStereo = 27,
 1146    SPSF_32kHz8BitMono = 28,
 1147    SPSF_32kHz8BitStereo = 29,
 1148    SPSF_32kHz16BitMono = 30,
 1149    SPSF_32kHz16BitStereo = 31,
 1150    SPSF_44kHz8BitMono = 32,
 1151    SPSF_44kHz8BitStereo = 33,
 1152    SPSF_44kHz16BitMono = 34,
 1153    SPSF_44kHz16BitStereo = 35,
 1154    SPSF_48kHz8BitMono = 36,
 1155    SPSF_48kHz8BitStereo = 37,
 1156    SPSF_48kHz16BitMono = 38,
 1157    SPSF_48kHz16BitStereo = 39,
 1158    SPSF_TrueSpeech_8kHz1BitMono = 40,
 1159    SPSF_CCITT_ALaw_8kHzMono = 41,
 1160    SPSF_CCITT_ALaw_8kHzStereo = 42,
 1161    SPSF_CCITT_ALaw_11kHzMono = 43,
 1162    SPSF_CCITT_ALaw_11kHzStereo = 44,
 1163    SPSF_CCITT_ALaw_22kHzMono = 45,
 1164    SPSF_CCITT_ALaw_22kHzStereo = 46,
 1165    SPSF_CCITT_ALaw_44kHzMono = 47,
 1166    SPSF_CCITT_ALaw_44kHzStereo = 48,
 1167    SPSF_CCITT_uLaw_8kHzMono = 49,
 1168    SPSF_CCITT_uLaw_8kHzStereo = 50,
 1169    SPSF_CCITT_uLaw_11kHzMono = 51,
 1170    SPSF_CCITT_uLaw_11kHzStereo = 52,
 1171    SPSF_CCITT_uLaw_22kHzMono = 53,
 1172    SPSF_CCITT_uLaw_22kHzStereo = 54,
 1173    SPSF_CCITT_uLaw_44kHzMono = 55,
 1174    SPSF_CCITT_uLaw_44kHzStereo = 56,
 1175    SPSF_ADPCM_8kHzMono = 57,
 1176    SPSF_ADPCM_8kHzStereo = 58,
 1177    SPSF_ADPCM_11kHzMono = 59,
 1178    SPSF_ADPCM_11kHzStereo = 60,
 1179    SPSF_ADPCM_22kHzMono = 61,
 1180    SPSF_ADPCM_22kHzStereo = 62,
 1181    SPSF_ADPCM_44kHzMono = 63,
 1182    SPSF_ADPCM_44kHzStereo = 64,
 1183    SPSF_GSM610_8kHzMono = 65,
 1184    SPSF_GSM610_11kHzMono = 66,
 1185    SPSF_GSM610_22kHzMono = 67,
 1186    SPSF_GSM610_44kHzMono = 68,
 1187    SPSF_NUM_FORMATS = 69
 1188} SPSTREAMFORMAT;
 1189typedef enum SPEVENTLPARAMTYPE {
 1190    SPET_LPARAM_IS_UNDEFINED = 0,
 1191    SPET_LPARAM_IS_TOKEN = 1,
 1192    SPET_LPARAM_IS_OBJECT = 2,
 1193    SPET_LPARAM_IS_POINTER = 3,
 1194    SPET_LPARAM_IS_STRING = 4
 1195} SPEVENTLPARAMTYPE;
 1196typedef enum SPEVENTENUM {
 1197    SPEI_UNDEFINED = 0,
 1198    SPEI_START_INPUT_STREAM = 1,
 1199    SPEI_END_INPUT_STREAM = 2,
 1200    SPEI_VOICE_CHANGE = 3,
 1201    SPEI_TTS_BOOKMARK = 4,
 1202    SPEI_WORD_BOUNDARY = 5,
 1203    SPEI_PHONEME = 6,
 1204    SPEI_SENTENCE_BOUNDARY = 7,
 1205    SPEI_VISEME = 8,
 1206    SPEI_TTS_AUDIO_LEVEL = 9,
 1207    SPEI_TTS_PRIVATE = 15,
 1208    SPEI_MIN_TTS = 1,
 1209    SPEI_MAX_TTS = 15,
 1210    SPEI_END_SR_STREAM = 34,
 1211    SPEI_SOUND_START = 35,
 1212    SPEI_SOUND_END = 36,
 1213    SPEI_PHRASE_START = 37,
 1214    SPEI_RECOGNITION = 38,
 1215    SPEI_HYPOTHESIS = 39,
 1216    SPEI_SR_BOOKMARK = 40,
 1217    SPEI_PROPERTY_NUM_CHANGE = 41,
 1218    SPEI_PROPERTY_STRING_CHANGE = 42,
 1219    SPEI_FALSE_RECOGNITION = 43,
 1220    SPEI_INTERFERENCE = 44,
 1221    SPEI_REQUEST_UI = 45,
 1222    SPEI_RECO_STATE_CHANGE = 46,
 1223    SPEI_ADAPTATION = 47,
 1224    SPEI_START_SR_STREAM = 48,
 1225    SPEI_RECO_OTHER_CONTEXT = 49,
 1226    SPEI_SR_AUDIO_LEVEL = 50,
 1227    SPEI_SR_PRIVATE = 52,
 1228    SPEI_MIN_SR = 34,
 1229    SPEI_MAX_SR = 52,
 1230    SPEI_RESERVED1 = 30,
 1231    SPEI_RESERVED2 = 33,
 1232    SPEI_RESERVED3 = 63
 1233} SPEVENTENUM;
 1234typedef enum SPINTERFERENCE {
 1235    SPINTERFERENCE_NONE = 0,
 1236    SPINTERFERENCE_NOISE = 1,
 1237    SPINTERFERENCE_NOSIGNAL = 2,
 1238    SPINTERFERENCE_TOOLOUD = 3,
 1239    SPINTERFERENCE_TOOQUIET = 4,
 1240    SPINTERFERENCE_TOOFAST = 5,
 1241    SPINTERFERENCE_TOOSLOW = 6,
 1242    SPINTERFERENCE_LATENCY_WARNING = 7,
 1243    SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN = 8,
 1244    SPINTERFERENCE_LATENCY_TRUNCATE_END = 9
 1245} SPINTERFERENCE;
 1246typedef enum SPENDSRSTREAMFLAGS {
 1247    SPESF_NONE = 0,
 1248    SPESF_STREAM_RELEASED = 1
 1249} SPENDSRSTREAMFLAGS;
 1250typedef enum SPVFEATURE {
 1251    SPVFEATURE_STRESSED = 1,
 1252    SPVFEATURE_EMPHASIS = 2
 1253} SPVFEATURE;
 1254typedef enum SPVISEMES {
 1255    SP_VISEME_0 = 0,
 1256    SP_VISEME_1 = 1,
 1257    SP_VISEME_2 = 2,
 1258    SP_VISEME_3 = 3,
 1259    SP_VISEME_4 = 4,
 1260    SP_VISEME_5 = 5,
 1261    SP_VISEME_6 = 6,
 1262    SP_VISEME_7 = 7,
 1263    SP_VISEME_8 = 8,
 1264    SP_VISEME_9 = 9,
 1265    SP_VISEME_10 = 10,
 1266    SP_VISEME_11 = 11,
 1267    SP_VISEME_12 = 12,
 1268    SP_VISEME_13 = 13,
 1269    SP_VISEME_14 = 14,
 1270    SP_VISEME_15 = 15,
 1271    SP_VISEME_16 = 16,
 1272    SP_VISEME_17 = 17,
 1273    SP_VISEME_18 = 18,
 1274    SP_VISEME_19 = 19,
 1275    SP_VISEME_20 = 20,
 1276    SP_VISEME_21 = 21
 1277} SPVISEMES;
 1278typedef enum SPFILEMODE {
 1279    SPFM_OPEN_READONLY = 0,
 1280    SPFM_OPEN_READWRITE = 1,
 1281    SPFM_CREATE = 2,
 1282    SPFM_CREATE_ALWAYS = 3,
 1283    SPFM_NUM_MODES = 4
 1284} SPFILEMODE;
 1285typedef enum _SPAUDIOSTATE {
 1286    SPAS_CLOSED = 0,
 1287    SPAS_STOP = 1,
 1288    SPAS_PAUSE = 2,
 1289    SPAS_RUN = 3
 1290} SPAUDIOSTATE;
 1291typedef enum SPDISPLYATTRIBUTES {
 1292    SPAF_ONE_TRAILING_SPACE = 0x2,
 1293    SPAF_TWO_TRAILING_SPACES = 0x4,
 1294    SPAF_CONSUME_LEADING_SPACES = 0x8,
 1295    SPAF_ALL = 0xf
 1296} SPDISPLAYATTRIBUTES;
 1297typedef enum SPPHRASEPROPERTYUNIONTYPE {
 1298    SPPPUT_UNUSED = 0,
 1299    SPPPUT_ARRAY_INDEX = 1
 1300} SPPHRASEPROPERTYUNIONTYPE;
 1301typedef enum SPRECOEVENTFLAGS {
 1302    SPREF_AutoPause = 0x1,
 1303    SPREF_Emulated = 0x2
 1304} SPRECOEVENTFLAGS;
 1305typedef enum SPPARTOFSPEECH {
 1306    SPPS_NotOverriden = -1,
 1307    SPPS_Unknown = 0,
 1308    SPPS_Noun = 0x1000,
 1309    SPPS_Verb = 0x2000,
 1310    SPPS_Modifier = 0x3000,
 1311    SPPS_Function = 0x4000,
 1312    SPPS_Interjection = 0x5000
 1313} SPPARTOFSPEECH;
 1314typedef enum SPLEXICONTYPE {
 1315    eLEXTYPE_USER = 0x1,
 1316    eLEXTYPE_APP = 0x2,
 1317    eLEXTYPE_VENDORLEXICON = 0x4,
 1318    eLEXTYPE_LETTERTOSOUND = 0x8,
 1319    eLEXTYPE_MORPHOLOGY = 0x10,
 1320    eLEXTYPE_RESERVED4 = 0x20,
 1321    eLEXTYPE_USER_SHORTCUT = 0x40,
 1322    eLEXTYPE_RESERVED6 = 0x80,
 1323    eLEXTYPE_RESERVED7 = 0x100,
 1324    eLEXTYPE_RESERVED8 = 0x200,
 1325    eLEXTYPE_RESERVED9 = 0x400,
 1326    eLEXTYPE_RESERVED10 = 0x800,
 1327    eLEXTYPE_PRIVATE1 = 0x1000,
 1328    eLEXTYPE_PRIVATE2 = 0x2000,
 1329    eLEXTYPE_PRIVATE3 = 0x4000,
 1330    eLEXTYPE_PRIVATE4 = 0x8000,
 1331    eLEXTYPE_PRIVATE5 = 0x10000,
 1332    eLEXTYPE_PRIVATE6 = 0x20000,
 1333    eLEXTYPE_PRIVATE7 = 0x40000,
 1334    eLEXTYPE_PRIVATE8 = 0x80000,
 1335    eLEXTYPE_PRIVATE9 = 0x100000,
 1336    eLEXTYPE_PRIVATE10 = 0x200000,
 1337    eLEXTYPE_PRIVATE11 = 0x400000,
 1338    eLEXTYPE_PRIVATE12 = 0x800000,
 1339    eLEXTYPE_PRIVATE13 = 0x1000000,
 1340    eLEXTYPE_PRIVATE14 = 0x2000000,
 1341    eLEXTYPE_PRIVATE15 = 0x4000000,
 1342    eLEXTYPE_PRIVATE16 = 0x8000000,
 1343    eLEXTYPE_PRIVATE17 = 0x10000000,
 1344    eLEXTYPE_PRIVATE18 = 0x20000000,
 1345    eLEXTYPE_PRIVATE19 = 0x40000000,
 1346    eLEXTYPE_PRIVATE20 = 0x80000000u
 1347} SPLEXICONTYPE;
 1348typedef enum SPWORDTYPE {
 1349    eWORDTYPE_ADDED = 1,
 1350    eWORDTYPE_DELETED = 2
 1351} SPWORDTYPE;
 1352typedef enum SPVALUETYPE {
 1353    SPDF_PROPERTY = 0x1,
 1354    SPDF_REPLACEMENT = 0x2,
 1355    SPDF_RULE = 0x4,
 1356    SPDF_DISPLAYTEXT = 0x8,
 1357    SPDF_LEXICALFORM = 0x10,
 1358    SPDF_PRONUNCIATION = 0x20,
 1359    SPDF_AUDIO = 0x40,
 1360    SPDF_ALTERNATES = 0x80,
 1361    SPDF_ALL = 0xff
 1362} SPVALUETYPE;
 1363typedef enum SPPHRASERNG {
 1364    SPPR_ALL_ELEMENTS = -1
 1365} SPPHRASERNG;
 1366typedef enum SPVACTIONS {
 1367    SPVA_Speak = 0,
 1368    SPVA_Silence = 1,
 1369    SPVA_Pronounce = 2,
 1370    SPVA_Bookmark = 3,
 1371    SPVA_SpellOut = 4,
 1372    SPVA_Section = 5,
 1373    SPVA_ParseUnknownTag = 6
 1374} SPVACTIONS;
 1375typedef enum SPRUNSTATE {
 1376    SPRS_DONE = 1,
 1377    SPRS_IS_SPEAKING = 2
 1378} SPRUNSTATE;
 1379typedef enum SPVLIMITS {
 1380    SPMIN_VOLUME = 0,
 1381    SPMAX_VOLUME = 100,
 1382    SPMIN_RATE = -10,
 1383    SPMAX_RATE = 10
 1384} SPVLIMITS;
 1385typedef enum SPVPRIORITY {
 1386    SPVPRI_NORMAL = 0,
 1387    SPVPRI_ALERT = 1,
 1388    SPVPRI_OVER = 2
 1389} SPVPRIORITY;
 1390EXTERN_C const GUID SPDFID_Text;
 1391EXTERN_C const GUID SPDFID_WaveFormatEx;
 1392
 1393#define SP_LOW_CONFIDENCE (-1)
 1394
 1395#define SP_NORMAL_CONFIDENCE (0)
 1396
 1397#define SP_HIGH_CONFIDENCE (+1)
 1398
 1399#define DEFAULT_WEIGHT (1)
 1400
 1401#define SP_MAX_WORD_LENGTH (128)
 1402
 1403#define SP_MAX_PRON_LENGTH (384)
 1404
 1405
 1406#ifdef __cplusplus
 1407interface ISpNotifyCallback {
 1408  virtual HRESULT STDMETHODCALLTYPE NotifyCallback(WPARAM wParam, LPARAM lParam) = 0;
 1409};
 1410#else
 1411typedef void *ISpNotifyCallback;
 1412#endif
 1413#if 0
 1414typedef void *SPNOTIFYCALLBACK;
 1415#else
 1416typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);
 1417#endif
 1418/*****************************************************************************
 1419 * ISpNotifySource interface
 1420 */
 1421#ifndef __ISpNotifySource_INTERFACE_DEFINED__
 1422#define __ISpNotifySource_INTERFACE_DEFINED__
 1423
 1424DEFINE_GUID(IID_ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 1425#if defined(__cplusplus) && !defined(CINTERFACE)
 1426MIDL_INTERFACE("5eff4aef-8487-11d2-961c-00c04f8ee628")
 1427ISpNotifySource : public IUnknown
 1428{
 1429    virtual HRESULT STDMETHODCALLTYPE SetNotifySink(
 1430        ISpNotifySink *pNotifySink) = 0;
 1431
 1432    virtual HRESULT STDMETHODCALLTYPE SetNotifyWindowMessage(
 1433        HWND hWnd,
 1434        UINT Msg,
 1435        WPARAM wParam,
 1436        LPARAM lParam) = 0;
 1437
 1438    virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackFunction(
 1439        SPNOTIFYCALLBACK *pfnCallback,
 1440        WPARAM wParam,
 1441        LPARAM lParam) = 0;
 1442
 1443    virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackInterface(
 1444        ISpNotifyCallback *pSpCallback,
 1445        WPARAM wParam,
 1446        LPARAM lParam) = 0;
 1447
 1448    virtual HRESULT STDMETHODCALLTYPE SetNotifyWin32Event(
 1449        ) = 0;
 1450
 1451    virtual HRESULT STDMETHODCALLTYPE WaitForNotifyEvent(
 1452        DWORD dwMilliseconds) = 0;
 1453
 1454    virtual HANDLE STDMETHODCALLTYPE GetNotifyEventHandle(
 1455        ) = 0;
 1456
 1457};
 1458#ifdef __CRT_UUID_DECL
 1459__CRT_UUID_DECL(ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 1460#endif
 1461#else
 1462typedef struct ISpNotifySourceVtbl {
 1463    BEGIN_INTERFACE
 1464
 1465    /*** IUnknown methods ***/
 1466    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1467        ISpNotifySource *This,
 1468        REFIID riid,
 1469        void **ppvObject);
 1470
 1471    ULONG (STDMETHODCALLTYPE *AddRef)(
 1472        ISpNotifySource *This);
 1473
 1474    ULONG (STDMETHODCALLTYPE *Release)(
 1475        ISpNotifySource *This);
 1476
 1477    /*** ISpNotifySource methods ***/
 1478    HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
 1479        ISpNotifySource *This,
 1480        ISpNotifySink *pNotifySink);
 1481
 1482    HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
 1483        ISpNotifySource *This,
 1484        HWND hWnd,
 1485        UINT Msg,
 1486        WPARAM wParam,
 1487        LPARAM lParam);
 1488
 1489    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
 1490        ISpNotifySource *This,
 1491        SPNOTIFYCALLBACK *pfnCallback,
 1492        WPARAM wParam,
 1493        LPARAM lParam);
 1494
 1495    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
 1496        ISpNotifySource *This,
 1497        ISpNotifyCallback *pSpCallback,
 1498        WPARAM wParam,
 1499        LPARAM lParam);
 1500
 1501    HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
 1502        ISpNotifySource *This);
 1503
 1504    HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
 1505        ISpNotifySource *This,
 1506        DWORD dwMilliseconds);
 1507
 1508    HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
 1509        ISpNotifySource *This);
 1510
 1511    END_INTERFACE
 1512} ISpNotifySourceVtbl;
 1513
 1514interface ISpNotifySource {
 1515    CONST_VTBL ISpNotifySourceVtbl* lpVtbl;
 1516};
 1517
 1518#ifdef COBJMACROS
 1519#ifndef WIDL_C_INLINE_WRAPPERS
 1520/*** IUnknown methods ***/
 1521#define ISpNotifySource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1522#define ISpNotifySource_AddRef(This) (This)->lpVtbl->AddRef(This)
 1523#define ISpNotifySource_Release(This) (This)->lpVtbl->Release(This)
 1524/*** ISpNotifySource methods ***/
 1525#define ISpNotifySource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
 1526#define ISpNotifySource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
 1527#define ISpNotifySource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
 1528#define ISpNotifySource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
 1529#define ISpNotifySource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
 1530#define ISpNotifySource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
 1531#define ISpNotifySource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
 1532#else
 1533/*** IUnknown methods ***/
 1534static inline HRESULT ISpNotifySource_QueryInterface(ISpNotifySource* This,REFIID riid,void **ppvObject) {
 1535    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1536}
 1537static inline ULONG ISpNotifySource_AddRef(ISpNotifySource* This) {
 1538    return This->lpVtbl->AddRef(This);
 1539}
 1540static inline ULONG ISpNotifySource_Release(ISpNotifySource* This) {
 1541    return This->lpVtbl->Release(This);
 1542}
 1543/*** ISpNotifySource methods ***/
 1544static inline HRESULT ISpNotifySource_SetNotifySink(ISpNotifySource* This,ISpNotifySink *pNotifySink) {
 1545    return This->lpVtbl->SetNotifySink(This,pNotifySink);
 1546}
 1547static inline HRESULT ISpNotifySource_SetNotifyWindowMessage(ISpNotifySource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 1548    return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
 1549}
 1550static inline HRESULT ISpNotifySource_SetNotifyCallbackFunction(ISpNotifySource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 1551    return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
 1552}
 1553static inline HRESULT ISpNotifySource_SetNotifyCallbackInterface(ISpNotifySource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 1554    return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
 1555}
 1556static inline HRESULT ISpNotifySource_SetNotifyWin32Event(ISpNotifySource* This) {
 1557    return This->lpVtbl->SetNotifyWin32Event(This);
 1558}
 1559static inline HRESULT ISpNotifySource_WaitForNotifyEvent(ISpNotifySource* This,DWORD dwMilliseconds) {
 1560    return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
 1561}
 1562static inline HANDLE ISpNotifySource_GetNotifyEventHandle(ISpNotifySource* This) {
 1563    return This->lpVtbl->GetNotifyEventHandle(This);
 1564}
 1565#endif
 1566#endif
 1567
 1568#endif
 1569
 1570
 1571#endif  /* __ISpNotifySource_INTERFACE_DEFINED__ */
 1572
 1573/*****************************************************************************
 1574 * ISpNotifySink interface
 1575 */
 1576#ifndef __ISpNotifySink_INTERFACE_DEFINED__
 1577#define __ISpNotifySink_INTERFACE_DEFINED__
 1578
 1579DEFINE_GUID(IID_ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 1580#if defined(__cplusplus) && !defined(CINTERFACE)
 1581MIDL_INTERFACE("259684dc-37c3-11d2-9603-00c04f8ee628")
 1582ISpNotifySink : public IUnknown
 1583{
 1584    virtual HRESULT STDMETHODCALLTYPE Notify(
 1585        ) = 0;
 1586
 1587};
 1588#ifdef __CRT_UUID_DECL
 1589__CRT_UUID_DECL(ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 1590#endif
 1591#else
 1592typedef struct ISpNotifySinkVtbl {
 1593    BEGIN_INTERFACE
 1594
 1595    /*** IUnknown methods ***/
 1596    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1597        ISpNotifySink *This,
 1598        REFIID riid,
 1599        void **ppvObject);
 1600
 1601    ULONG (STDMETHODCALLTYPE *AddRef)(
 1602        ISpNotifySink *This);
 1603
 1604    ULONG (STDMETHODCALLTYPE *Release)(
 1605        ISpNotifySink *This);
 1606
 1607    /*** ISpNotifySink methods ***/
 1608    HRESULT (STDMETHODCALLTYPE *Notify)(
 1609        ISpNotifySink *This);
 1610
 1611    END_INTERFACE
 1612} ISpNotifySinkVtbl;
 1613
 1614interface ISpNotifySink {
 1615    CONST_VTBL ISpNotifySinkVtbl* lpVtbl;
 1616};
 1617
 1618#ifdef COBJMACROS
 1619#ifndef WIDL_C_INLINE_WRAPPERS
 1620/*** IUnknown methods ***/
 1621#define ISpNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1622#define ISpNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
 1623#define ISpNotifySink_Release(This) (This)->lpVtbl->Release(This)
 1624/*** ISpNotifySink methods ***/
 1625#define ISpNotifySink_Notify(This) (This)->lpVtbl->Notify(This)
 1626#else
 1627/*** IUnknown methods ***/
 1628static inline HRESULT ISpNotifySink_QueryInterface(ISpNotifySink* This,REFIID riid,void **ppvObject) {
 1629    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1630}
 1631static inline ULONG ISpNotifySink_AddRef(ISpNotifySink* This) {
 1632    return This->lpVtbl->AddRef(This);
 1633}
 1634static inline ULONG ISpNotifySink_Release(ISpNotifySink* This) {
 1635    return This->lpVtbl->Release(This);
 1636}
 1637/*** ISpNotifySink methods ***/
 1638static inline HRESULT ISpNotifySink_Notify(ISpNotifySink* This) {
 1639    return This->lpVtbl->Notify(This);
 1640}
 1641#endif
 1642#endif
 1643
 1644#endif
 1645
 1646
 1647#endif  /* __ISpNotifySink_INTERFACE_DEFINED__ */
 1648
 1649/*****************************************************************************
 1650 * ISpNotifyTranslator interface
 1651 */
 1652#ifndef __ISpNotifyTranslator_INTERFACE_DEFINED__
 1653#define __ISpNotifyTranslator_INTERFACE_DEFINED__
 1654
 1655DEFINE_GUID(IID_ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 1656#if defined(__cplusplus) && !defined(CINTERFACE)
 1657MIDL_INTERFACE("aca16614-5d3d-11d2-960e-00c04f8ee628")
 1658ISpNotifyTranslator : public ISpNotifySink
 1659{
 1660    virtual HRESULT STDMETHODCALLTYPE InitWindowMessage(
 1661        HWND hWnd,
 1662        UINT Msg,
 1663        WPARAM wParam,
 1664        LPARAM lParam) = 0;
 1665
 1666    virtual HRESULT STDMETHODCALLTYPE InitCallback(
 1667        SPNOTIFYCALLBACK *pfnCallback,
 1668        WPARAM wParam,
 1669        LPARAM lParam) = 0;
 1670
 1671    virtual HRESULT STDMETHODCALLTYPE InitSpNotifyCallback(
 1672        ISpNotifyCallback *pSpCallback,
 1673        WPARAM wParam,
 1674        LPARAM lParam) = 0;
 1675
 1676    virtual HRESULT STDMETHODCALLTYPE InitWin32Event(
 1677        HANDLE hEvent,
 1678        WINBOOL fCloseHandleOnRelease) = 0;
 1679
 1680    virtual HRESULT STDMETHODCALLTYPE Wait(
 1681        DWORD dwMilliseconds) = 0;
 1682
 1683    virtual HANDLE STDMETHODCALLTYPE GetEventHandle(
 1684        ) = 0;
 1685
 1686};
 1687#ifdef __CRT_UUID_DECL
 1688__CRT_UUID_DECL(ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 1689#endif
 1690#else
 1691typedef struct ISpNotifyTranslatorVtbl {
 1692    BEGIN_INTERFACE
 1693
 1694    /*** IUnknown methods ***/
 1695    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1696        ISpNotifyTranslator *This,
 1697        REFIID riid,
 1698        void **ppvObject);
 1699
 1700    ULONG (STDMETHODCALLTYPE *AddRef)(
 1701        ISpNotifyTranslator *This);
 1702
 1703    ULONG (STDMETHODCALLTYPE *Release)(
 1704        ISpNotifyTranslator *This);
 1705
 1706    /*** ISpNotifySink methods ***/
 1707    HRESULT (STDMETHODCALLTYPE *Notify)(
 1708        ISpNotifyTranslator *This);
 1709
 1710    /*** ISpNotifyTranslator methods ***/
 1711    HRESULT (STDMETHODCALLTYPE *InitWindowMessage)(
 1712        ISpNotifyTranslator *This,
 1713        HWND hWnd,
 1714        UINT Msg,
 1715        WPARAM wParam,
 1716        LPARAM lParam);
 1717
 1718    HRESULT (STDMETHODCALLTYPE *InitCallback)(
 1719        ISpNotifyTranslator *This,
 1720        SPNOTIFYCALLBACK *pfnCallback,
 1721        WPARAM wParam,
 1722        LPARAM lParam);
 1723
 1724    HRESULT (STDMETHODCALLTYPE *InitSpNotifyCallback)(
 1725        ISpNotifyTranslator *This,
 1726        ISpNotifyCallback *pSpCallback,
 1727        WPARAM wParam,
 1728        LPARAM lParam);
 1729
 1730    HRESULT (STDMETHODCALLTYPE *InitWin32Event)(
 1731        ISpNotifyTranslator *This,
 1732        HANDLE hEvent,
 1733        WINBOOL fCloseHandleOnRelease);
 1734
 1735    HRESULT (STDMETHODCALLTYPE *Wait)(
 1736        ISpNotifyTranslator *This,
 1737        DWORD dwMilliseconds);
 1738
 1739    HANDLE (STDMETHODCALLTYPE *GetEventHandle)(
 1740        ISpNotifyTranslator *This);
 1741
 1742    END_INTERFACE
 1743} ISpNotifyTranslatorVtbl;
 1744
 1745interface ISpNotifyTranslator {
 1746    CONST_VTBL ISpNotifyTranslatorVtbl* lpVtbl;
 1747};
 1748
 1749#ifdef COBJMACROS
 1750#ifndef WIDL_C_INLINE_WRAPPERS
 1751/*** IUnknown methods ***/
 1752#define ISpNotifyTranslator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1753#define ISpNotifyTranslator_AddRef(This) (This)->lpVtbl->AddRef(This)
 1754#define ISpNotifyTranslator_Release(This) (This)->lpVtbl->Release(This)
 1755/*** ISpNotifySink methods ***/
 1756#define ISpNotifyTranslator_Notify(This) (This)->lpVtbl->Notify(This)
 1757/*** ISpNotifyTranslator methods ***/
 1758#define ISpNotifyTranslator_InitWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam)
 1759#define ISpNotifyTranslator_InitCallback(This,pfnCallback,wParam,lParam) (This)->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam)
 1760#define ISpNotifyTranslator_InitSpNotifyCallback(This,pSpCallback,wParam,lParam) (This)->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
 1761#define ISpNotifyTranslator_InitWin32Event(This,hEvent,fCloseHandleOnRelease) (This)->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease)
 1762#define ISpNotifyTranslator_Wait(This,dwMilliseconds) (This)->lpVtbl->Wait(This,dwMilliseconds)
 1763#define ISpNotifyTranslator_GetEventHandle(This) (This)->lpVtbl->GetEventHandle(This)
 1764#else
 1765/*** IUnknown methods ***/
 1766static inline HRESULT ISpNotifyTranslator_QueryInterface(ISpNotifyTranslator* This,REFIID riid,void **ppvObject) {
 1767    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1768}
 1769static inline ULONG ISpNotifyTranslator_AddRef(ISpNotifyTranslator* This) {
 1770    return This->lpVtbl->AddRef(This);
 1771}
 1772static inline ULONG ISpNotifyTranslator_Release(ISpNotifyTranslator* This) {
 1773    return This->lpVtbl->Release(This);
 1774}
 1775/*** ISpNotifySink methods ***/
 1776static inline HRESULT ISpNotifyTranslator_Notify(ISpNotifyTranslator* This) {
 1777    return This->lpVtbl->Notify(This);
 1778}
 1779/*** ISpNotifyTranslator methods ***/
 1780static inline HRESULT ISpNotifyTranslator_InitWindowMessage(ISpNotifyTranslator* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 1781    return This->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam);
 1782}
 1783static inline HRESULT ISpNotifyTranslator_InitCallback(ISpNotifyTranslator* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 1784    return This->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam);
 1785}
 1786static inline HRESULT ISpNotifyTranslator_InitSpNotifyCallback(ISpNotifyTranslator* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 1787    return This->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam);
 1788}
 1789static inline HRESULT ISpNotifyTranslator_InitWin32Event(ISpNotifyTranslator* This,HANDLE hEvent,WINBOOL fCloseHandleOnRelease) {
 1790    return This->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease);
 1791}
 1792static inline HRESULT ISpNotifyTranslator_Wait(ISpNotifyTranslator* This,DWORD dwMilliseconds) {
 1793    return This->lpVtbl->Wait(This,dwMilliseconds);
 1794}
 1795static inline HANDLE ISpNotifyTranslator_GetEventHandle(ISpNotifyTranslator* This) {
 1796    return This->lpVtbl->GetEventHandle(This);
 1797}
 1798#endif
 1799#endif
 1800
 1801#endif
 1802
 1803
 1804#endif  /* __ISpNotifyTranslator_INTERFACE_DEFINED__ */
 1805
 1806/*****************************************************************************
 1807 * ISpDataKey interface
 1808 */
 1809#ifndef __ISpDataKey_INTERFACE_DEFINED__
 1810#define __ISpDataKey_INTERFACE_DEFINED__
 1811
 1812DEFINE_GUID(IID_ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
 1813#if defined(__cplusplus) && !defined(CINTERFACE)
 1814MIDL_INTERFACE("14056581-e16c-11d2-bb90-00c04f8ee6c0")
 1815ISpDataKey : public IUnknown
 1816{
 1817    virtual HRESULT STDMETHODCALLTYPE SetData(
 1818        LPCWSTR pszValueName,
 1819        ULONG cbData,
 1820        const BYTE *pData) = 0;
 1821
 1822    virtual HRESULT STDMETHODCALLTYPE GetData(
 1823        LPCWSTR pszValueName,
 1824        ULONG *pcbData,
 1825        BYTE *pData) = 0;
 1826
 1827    virtual HRESULT STDMETHODCALLTYPE SetStringValue(
 1828        LPCWSTR pszValueName,
 1829        LPCWSTR pszValue) = 0;
 1830
 1831    virtual HRESULT STDMETHODCALLTYPE GetStringValue(
 1832        LPCWSTR pszValueName,
 1833        LPWSTR *ppszValue) = 0;
 1834
 1835    virtual HRESULT STDMETHODCALLTYPE SetDWORD(
 1836        LPCWSTR pszValueName,
 1837        DWORD dwValue) = 0;
 1838
 1839    virtual HRESULT STDMETHODCALLTYPE GetDWORD(
 1840        LPCWSTR pszValueName,
 1841        DWORD *pdwValue) = 0;
 1842
 1843    virtual HRESULT STDMETHODCALLTYPE OpenKey(
 1844        LPCWSTR pszSubKeyName,
 1845        ISpDataKey **ppSubKey) = 0;
 1846
 1847    virtual HRESULT STDMETHODCALLTYPE CreateKey(
 1848        LPCWSTR pszSubKey,
 1849        ISpDataKey **ppSubKey) = 0;
 1850
 1851    virtual HRESULT STDMETHODCALLTYPE DeleteKey(
 1852        LPCWSTR pszSubKey) = 0;
 1853
 1854    virtual HRESULT STDMETHODCALLTYPE DeleteValue(
 1855        LPCWSTR pszValueName) = 0;
 1856
 1857    virtual HRESULT STDMETHODCALLTYPE EnumKeys(
 1858        ULONG Index,
 1859        LPWSTR *ppszSubKeyName) = 0;
 1860
 1861    virtual HRESULT STDMETHODCALLTYPE EnumValues(
 1862        ULONG Index,
 1863        LPWSTR *ppszValueName) = 0;
 1864
 1865};
 1866#ifdef __CRT_UUID_DECL
 1867__CRT_UUID_DECL(ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
 1868#endif
 1869#else
 1870typedef struct ISpDataKeyVtbl {
 1871    BEGIN_INTERFACE
 1872
 1873    /*** IUnknown methods ***/
 1874    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1875        ISpDataKey *This,
 1876        REFIID riid,
 1877        void **ppvObject);
 1878
 1879    ULONG (STDMETHODCALLTYPE *AddRef)(
 1880        ISpDataKey *This);
 1881
 1882    ULONG (STDMETHODCALLTYPE *Release)(
 1883        ISpDataKey *This);
 1884
 1885    /*** ISpDataKey methods ***/
 1886    HRESULT (STDMETHODCALLTYPE *SetData)(
 1887        ISpDataKey *This,
 1888        LPCWSTR pszValueName,
 1889        ULONG cbData,
 1890        const BYTE *pData);
 1891
 1892    HRESULT (STDMETHODCALLTYPE *GetData)(
 1893        ISpDataKey *This,
 1894        LPCWSTR pszValueName,
 1895        ULONG *pcbData,
 1896        BYTE *pData);
 1897
 1898    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 1899        ISpDataKey *This,
 1900        LPCWSTR pszValueName,
 1901        LPCWSTR pszValue);
 1902
 1903    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 1904        ISpDataKey *This,
 1905        LPCWSTR pszValueName,
 1906        LPWSTR *ppszValue);
 1907
 1908    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 1909        ISpDataKey *This,
 1910        LPCWSTR pszValueName,
 1911        DWORD dwValue);
 1912
 1913    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 1914        ISpDataKey *This,
 1915        LPCWSTR pszValueName,
 1916        DWORD *pdwValue);
 1917
 1918    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 1919        ISpDataKey *This,
 1920        LPCWSTR pszSubKeyName,
 1921        ISpDataKey **ppSubKey);
 1922
 1923    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 1924        ISpDataKey *This,
 1925        LPCWSTR pszSubKey,
 1926        ISpDataKey **ppSubKey);
 1927
 1928    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 1929        ISpDataKey *This,
 1930        LPCWSTR pszSubKey);
 1931
 1932    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 1933        ISpDataKey *This,
 1934        LPCWSTR pszValueName);
 1935
 1936    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 1937        ISpDataKey *This,
 1938        ULONG Index,
 1939        LPWSTR *ppszSubKeyName);
 1940
 1941    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 1942        ISpDataKey *This,
 1943        ULONG Index,
 1944        LPWSTR *ppszValueName);
 1945
 1946    END_INTERFACE
 1947} ISpDataKeyVtbl;
 1948
 1949interface ISpDataKey {
 1950    CONST_VTBL ISpDataKeyVtbl* lpVtbl;
 1951};
 1952
 1953#ifdef COBJMACROS
 1954#ifndef WIDL_C_INLINE_WRAPPERS
 1955/*** IUnknown methods ***/
 1956#define ISpDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1957#define ISpDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
 1958#define ISpDataKey_Release(This) (This)->lpVtbl->Release(This)
 1959/*** ISpDataKey methods ***/
 1960#define ISpDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 1961#define ISpDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 1962#define ISpDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 1963#define ISpDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 1964#define ISpDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 1965#define ISpDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 1966#define ISpDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 1967#define ISpDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 1968#define ISpDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 1969#define ISpDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 1970#define ISpDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 1971#define ISpDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 1972#else
 1973/*** IUnknown methods ***/
 1974static inline HRESULT ISpDataKey_QueryInterface(ISpDataKey* This,REFIID riid,void **ppvObject) {
 1975    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1976}
 1977static inline ULONG ISpDataKey_AddRef(ISpDataKey* This) {
 1978    return This->lpVtbl->AddRef(This);
 1979}
 1980static inline ULONG ISpDataKey_Release(ISpDataKey* This) {
 1981    return This->lpVtbl->Release(This);
 1982}
 1983/*** ISpDataKey methods ***/
 1984static inline HRESULT ISpDataKey_SetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 1985    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 1986}
 1987static inline HRESULT ISpDataKey_GetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 1988    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 1989}
 1990static inline HRESULT ISpDataKey_SetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 1991    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 1992}
 1993static inline HRESULT ISpDataKey_GetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 1994    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 1995}
 1996static inline HRESULT ISpDataKey_SetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
 1997    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 1998}
 1999static inline HRESULT ISpDataKey_GetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 2000    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 2001}
 2002static inline HRESULT ISpDataKey_OpenKey(ISpDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 2003    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 2004}
 2005static inline HRESULT ISpDataKey_CreateKey(ISpDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 2006    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 2007}
 2008static inline HRESULT ISpDataKey_DeleteKey(ISpDataKey* This,LPCWSTR pszSubKey) {
 2009    return This->lpVtbl->DeleteKey(This,pszSubKey);
 2010}
 2011static inline HRESULT ISpDataKey_DeleteValue(ISpDataKey* This,LPCWSTR pszValueName) {
 2012    return This->lpVtbl->DeleteValue(This,pszValueName);
 2013}
 2014static inline HRESULT ISpDataKey_EnumKeys(ISpDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 2015    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 2016}
 2017static inline HRESULT ISpDataKey_EnumValues(ISpDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
 2018    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 2019}
 2020#endif
 2021#endif
 2022
 2023#endif
 2024
 2025
 2026#endif  /* __ISpDataKey_INTERFACE_DEFINED__ */
 2027
 2028/*****************************************************************************
 2029 * ISpObjectWithToken interface
 2030 */
 2031#ifndef __ISpObjectWithToken_INTERFACE_DEFINED__
 2032#define __ISpObjectWithToken_INTERFACE_DEFINED__
 2033
 2034DEFINE_GUID(IID_ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
 2035#if defined(__cplusplus) && !defined(CINTERFACE)
 2036MIDL_INTERFACE("5b559f40-e952-11d2-bb91-00c04f8ee6c0")
 2037ISpObjectWithToken : public IUnknown
 2038{
 2039    virtual HRESULT STDMETHODCALLTYPE SetObjectToken(
 2040        ISpObjectToken *pToken) = 0;
 2041
 2042    virtual HRESULT STDMETHODCALLTYPE GetObjectToken(
 2043        ISpObjectToken **ppToken) = 0;
 2044
 2045};
 2046#ifdef __CRT_UUID_DECL
 2047__CRT_UUID_DECL(ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
 2048#endif
 2049#else
 2050typedef struct ISpObjectWithTokenVtbl {
 2051    BEGIN_INTERFACE
 2052
 2053    /*** IUnknown methods ***/
 2054    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2055        ISpObjectWithToken *This,
 2056        REFIID riid,
 2057        void **ppvObject);
 2058
 2059    ULONG (STDMETHODCALLTYPE *AddRef)(
 2060        ISpObjectWithToken *This);
 2061
 2062    ULONG (STDMETHODCALLTYPE *Release)(
 2063        ISpObjectWithToken *This);
 2064
 2065    /*** ISpObjectWithToken methods ***/
 2066    HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
 2067        ISpObjectWithToken *This,
 2068        ISpObjectToken *pToken);
 2069
 2070    HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
 2071        ISpObjectWithToken *This,
 2072        ISpObjectToken **ppToken);
 2073
 2074    END_INTERFACE
 2075} ISpObjectWithTokenVtbl;
 2076
 2077interface ISpObjectWithToken {
 2078    CONST_VTBL ISpObjectWithTokenVtbl* lpVtbl;
 2079};
 2080
 2081#ifdef COBJMACROS
 2082#ifndef WIDL_C_INLINE_WRAPPERS
 2083/*** IUnknown methods ***/
 2084#define ISpObjectWithToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2085#define ISpObjectWithToken_AddRef(This) (This)->lpVtbl->AddRef(This)
 2086#define ISpObjectWithToken_Release(This) (This)->lpVtbl->Release(This)
 2087/*** ISpObjectWithToken methods ***/
 2088#define ISpObjectWithToken_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
 2089#define ISpObjectWithToken_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
 2090#else
 2091/*** IUnknown methods ***/
 2092static inline HRESULT ISpObjectWithToken_QueryInterface(ISpObjectWithToken* This,REFIID riid,void **ppvObject) {
 2093    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2094}
 2095static inline ULONG ISpObjectWithToken_AddRef(ISpObjectWithToken* This) {
 2096    return This->lpVtbl->AddRef(This);
 2097}
 2098static inline ULONG ISpObjectWithToken_Release(ISpObjectWithToken* This) {
 2099    return This->lpVtbl->Release(This);
 2100}
 2101/*** ISpObjectWithToken methods ***/
 2102static inline HRESULT ISpObjectWithToken_SetObjectToken(ISpObjectWithToken* This,ISpObjectToken *pToken) {
 2103    return This->lpVtbl->SetObjectToken(This,pToken);
 2104}
 2105static inline HRESULT ISpObjectWithToken_GetObjectToken(ISpObjectWithToken* This,ISpObjectToken **ppToken) {
 2106    return This->lpVtbl->GetObjectToken(This,ppToken);
 2107}
 2108#endif
 2109#endif
 2110
 2111#endif
 2112
 2113
 2114#endif  /* __ISpObjectWithToken_INTERFACE_DEFINED__ */
 2115
 2116/*****************************************************************************
 2117 * IEnumSpObjectTokens interface
 2118 */
 2119#ifndef __IEnumSpObjectTokens_INTERFACE_DEFINED__
 2120#define __IEnumSpObjectTokens_INTERFACE_DEFINED__
 2121
 2122DEFINE_GUID(IID_IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96);
 2123#if defined(__cplusplus) && !defined(CINTERFACE)
 2124MIDL_INTERFACE("06b64f9e-7fda-11d2-b4f2-00c04f797396")
 2125IEnumSpObjectTokens : public IUnknown
 2126{
 2127    virtual HRESULT STDMETHODCALLTYPE Next(
 2128        ULONG celt,
 2129        ISpObjectToken **pelt,
 2130        ULONG *pceltFetched) = 0;
 2131
 2132    virtual HRESULT STDMETHODCALLTYPE Skip(
 2133        ULONG celt) = 0;
 2134
 2135    virtual HRESULT STDMETHODCALLTYPE Reset(
 2136        ) = 0;
 2137
 2138    virtual HRESULT STDMETHODCALLTYPE Clone(
 2139        IEnumSpObjectTokens **ppEnum) = 0;
 2140
 2141    virtual HRESULT STDMETHODCALLTYPE Item(
 2142        ULONG Index,
 2143        ISpObjectToken **ppToken) = 0;
 2144
 2145    virtual HRESULT STDMETHODCALLTYPE GetCount(
 2146        ULONG *pCount) = 0;
 2147
 2148};
 2149#ifdef __CRT_UUID_DECL
 2150__CRT_UUID_DECL(IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96)
 2151#endif
 2152#else
 2153typedef struct IEnumSpObjectTokensVtbl {
 2154    BEGIN_INTERFACE
 2155
 2156    /*** IUnknown methods ***/
 2157    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2158        IEnumSpObjectTokens *This,
 2159        REFIID riid,
 2160        void **ppvObject);
 2161
 2162    ULONG (STDMETHODCALLTYPE *AddRef)(
 2163        IEnumSpObjectTokens *This);
 2164
 2165    ULONG (STDMETHODCALLTYPE *Release)(
 2166        IEnumSpObjectTokens *This);
 2167
 2168    /*** IEnumSpObjectTokens methods ***/
 2169    HRESULT (STDMETHODCALLTYPE *Next)(
 2170        IEnumSpObjectTokens *This,
 2171        ULONG celt,
 2172        ISpObjectToken **pelt,
 2173        ULONG *pceltFetched);
 2174
 2175    HRESULT (STDMETHODCALLTYPE *Skip)(
 2176        IEnumSpObjectTokens *This,
 2177        ULONG celt);
 2178
 2179    HRESULT (STDMETHODCALLTYPE *Reset)(
 2180        IEnumSpObjectTokens *This);
 2181
 2182    HRESULT (STDMETHODCALLTYPE *Clone)(
 2183        IEnumSpObjectTokens *This,
 2184        IEnumSpObjectTokens **ppEnum);
 2185
 2186    HRESULT (STDMETHODCALLTYPE *Item)(
 2187        IEnumSpObjectTokens *This,
 2188        ULONG Index,
 2189        ISpObjectToken **ppToken);
 2190
 2191    HRESULT (STDMETHODCALLTYPE *GetCount)(
 2192        IEnumSpObjectTokens *This,
 2193        ULONG *pCount);
 2194
 2195    END_INTERFACE
 2196} IEnumSpObjectTokensVtbl;
 2197
 2198interface IEnumSpObjectTokens {
 2199    CONST_VTBL IEnumSpObjectTokensVtbl* lpVtbl;
 2200};
 2201
 2202#ifdef COBJMACROS
 2203#ifndef WIDL_C_INLINE_WRAPPERS
 2204/*** IUnknown methods ***/
 2205#define IEnumSpObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2206#define IEnumSpObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
 2207#define IEnumSpObjectTokens_Release(This) (This)->lpVtbl->Release(This)
 2208/*** IEnumSpObjectTokens methods ***/
 2209#define IEnumSpObjectTokens_Next(This,celt,pelt,pceltFetched) (This)->lpVtbl->Next(This,celt,pelt,pceltFetched)
 2210#define IEnumSpObjectTokens_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
 2211#define IEnumSpObjectTokens_Reset(This) (This)->lpVtbl->Reset(This)
 2212#define IEnumSpObjectTokens_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
 2213#define IEnumSpObjectTokens_Item(This,Index,ppToken) (This)->lpVtbl->Item(This,Index,ppToken)
 2214#define IEnumSpObjectTokens_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
 2215#else
 2216/*** IUnknown methods ***/
 2217static inline HRESULT IEnumSpObjectTokens_QueryInterface(IEnumSpObjectTokens* This,REFIID riid,void **ppvObject) {
 2218    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2219}
 2220static inline ULONG IEnumSpObjectTokens_AddRef(IEnumSpObjectTokens* This) {
 2221    return This->lpVtbl->AddRef(This);
 2222}
 2223static inline ULONG IEnumSpObjectTokens_Release(IEnumSpObjectTokens* This) {
 2224    return This->lpVtbl->Release(This);
 2225}
 2226/*** IEnumSpObjectTokens methods ***/
 2227static inline HRESULT IEnumSpObjectTokens_Next(IEnumSpObjectTokens* This,ULONG celt,ISpObjectToken **pelt,ULONG *pceltFetched) {
 2228    return This->lpVtbl->Next(This,celt,pelt,pceltFetched);
 2229}
 2230static inline HRESULT IEnumSpObjectTokens_Skip(IEnumSpObjectTokens* This,ULONG celt) {
 2231    return This->lpVtbl->Skip(This,celt);
 2232}
 2233static inline HRESULT IEnumSpObjectTokens_Reset(IEnumSpObjectTokens* This) {
 2234    return This->lpVtbl->Reset(This);
 2235}
 2236static inline HRESULT IEnumSpObjectTokens_Clone(IEnumSpObjectTokens* This,IEnumSpObjectTokens **ppEnum) {
 2237    return This->lpVtbl->Clone(This,ppEnum);
 2238}
 2239static inline HRESULT IEnumSpObjectTokens_Item(IEnumSpObjectTokens* This,ULONG Index,ISpObjectToken **ppToken) {
 2240    return This->lpVtbl->Item(This,Index,ppToken);
 2241}
 2242static inline HRESULT IEnumSpObjectTokens_GetCount(IEnumSpObjectTokens* This,ULONG *pCount) {
 2243    return This->lpVtbl->GetCount(This,pCount);
 2244}
 2245#endif
 2246#endif
 2247
 2248#endif
 2249
 2250
 2251#endif  /* __IEnumSpObjectTokens_INTERFACE_DEFINED__ */
 2252
 2253/*****************************************************************************
 2254 * ISpRegDataKey interface
 2255 */
 2256#ifndef __ISpRegDataKey_INTERFACE_DEFINED__
 2257#define __ISpRegDataKey_INTERFACE_DEFINED__
 2258
 2259DEFINE_GUID(IID_ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b);
 2260#if defined(__cplusplus) && !defined(CINTERFACE)
 2261MIDL_INTERFACE("92a66e2b-c830-4149-83df-6fc2ba1e7a5b")
 2262ISpRegDataKey : public ISpDataKey
 2263{
 2264    virtual HRESULT STDMETHODCALLTYPE SetKey(
 2265        HKEY hkey,
 2266        WINBOOL fReadOnly) = 0;
 2267
 2268};
 2269#ifdef __CRT_UUID_DECL
 2270__CRT_UUID_DECL(ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b)
 2271#endif
 2272#else
 2273typedef struct ISpRegDataKeyVtbl {
 2274    BEGIN_INTERFACE
 2275
 2276    /*** IUnknown methods ***/
 2277    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2278        ISpRegDataKey *This,
 2279        REFIID riid,
 2280        void **ppvObject);
 2281
 2282    ULONG (STDMETHODCALLTYPE *AddRef)(
 2283        ISpRegDataKey *This);
 2284
 2285    ULONG (STDMETHODCALLTYPE *Release)(
 2286        ISpRegDataKey *This);
 2287
 2288    /*** ISpDataKey methods ***/
 2289    HRESULT (STDMETHODCALLTYPE *SetData)(
 2290        ISpRegDataKey *This,
 2291        LPCWSTR pszValueName,
 2292        ULONG cbData,
 2293        const BYTE *pData);
 2294
 2295    HRESULT (STDMETHODCALLTYPE *GetData)(
 2296        ISpRegDataKey *This,
 2297        LPCWSTR pszValueName,
 2298        ULONG *pcbData,
 2299        BYTE *pData);
 2300
 2301    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 2302        ISpRegDataKey *This,
 2303        LPCWSTR pszValueName,
 2304        LPCWSTR pszValue);
 2305
 2306    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 2307        ISpRegDataKey *This,
 2308        LPCWSTR pszValueName,
 2309        LPWSTR *ppszValue);
 2310
 2311    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 2312        ISpRegDataKey *This,
 2313        LPCWSTR pszValueName,
 2314        DWORD dwValue);
 2315
 2316    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 2317        ISpRegDataKey *This,
 2318        LPCWSTR pszValueName,
 2319        DWORD *pdwValue);
 2320
 2321    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 2322        ISpRegDataKey *This,
 2323        LPCWSTR pszSubKeyName,
 2324        ISpDataKey **ppSubKey);
 2325
 2326    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 2327        ISpRegDataKey *This,
 2328        LPCWSTR pszSubKey,
 2329        ISpDataKey **ppSubKey);
 2330
 2331    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 2332        ISpRegDataKey *This,
 2333        LPCWSTR pszSubKey);
 2334
 2335    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 2336        ISpRegDataKey *This,
 2337        LPCWSTR pszValueName);
 2338
 2339    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 2340        ISpRegDataKey *This,
 2341        ULONG Index,
 2342        LPWSTR *ppszSubKeyName);
 2343
 2344    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 2345        ISpRegDataKey *This,
 2346        ULONG Index,
 2347        LPWSTR *ppszValueName);
 2348
 2349    /*** ISpRegDataKey methods ***/
 2350    HRESULT (STDMETHODCALLTYPE *SetKey)(
 2351        ISpRegDataKey *This,
 2352        HKEY hkey,
 2353        WINBOOL fReadOnly);
 2354
 2355    END_INTERFACE
 2356} ISpRegDataKeyVtbl;
 2357
 2358interface ISpRegDataKey {
 2359    CONST_VTBL ISpRegDataKeyVtbl* lpVtbl;
 2360};
 2361
 2362#ifdef COBJMACROS
 2363#ifndef WIDL_C_INLINE_WRAPPERS
 2364/*** IUnknown methods ***/
 2365#define ISpRegDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2366#define ISpRegDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
 2367#define ISpRegDataKey_Release(This) (This)->lpVtbl->Release(This)
 2368/*** ISpDataKey methods ***/
 2369#define ISpRegDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 2370#define ISpRegDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 2371#define ISpRegDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 2372#define ISpRegDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 2373#define ISpRegDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 2374#define ISpRegDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 2375#define ISpRegDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 2376#define ISpRegDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 2377#define ISpRegDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 2378#define ISpRegDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 2379#define ISpRegDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 2380#define ISpRegDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 2381/*** ISpRegDataKey methods ***/
 2382#define ISpRegDataKey_SetKey(This,hkey,fReadOnly) (This)->lpVtbl->SetKey(This,hkey,fReadOnly)
 2383#else
 2384/*** IUnknown methods ***/
 2385static inline HRESULT ISpRegDataKey_QueryInterface(ISpRegDataKey* This,REFIID riid,void **ppvObject) {
 2386    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2387}
 2388static inline ULONG ISpRegDataKey_AddRef(ISpRegDataKey* This) {
 2389    return This->lpVtbl->AddRef(This);
 2390}
 2391static inline ULONG ISpRegDataKey_Release(ISpRegDataKey* This) {
 2392    return This->lpVtbl->Release(This);
 2393}
 2394/*** ISpDataKey methods ***/
 2395static inline HRESULT ISpRegDataKey_SetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 2396    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 2397}
 2398static inline HRESULT ISpRegDataKey_GetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 2399    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 2400}
 2401static inline HRESULT ISpRegDataKey_SetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 2402    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 2403}
 2404static inline HRESULT ISpRegDataKey_GetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 2405    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 2406}
 2407static inline HRESULT ISpRegDataKey_SetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
 2408    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 2409}
 2410static inline HRESULT ISpRegDataKey_GetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 2411    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 2412}
 2413static inline HRESULT ISpRegDataKey_OpenKey(ISpRegDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 2414    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 2415}
 2416static inline HRESULT ISpRegDataKey_CreateKey(ISpRegDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 2417    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 2418}
 2419static inline HRESULT ISpRegDataKey_DeleteKey(ISpRegDataKey* This,LPCWSTR pszSubKey) {
 2420    return This->lpVtbl->DeleteKey(This,pszSubKey);
 2421}
 2422static inline HRESULT ISpRegDataKey_DeleteValue(ISpRegDataKey* This,LPCWSTR pszValueName) {
 2423    return This->lpVtbl->DeleteValue(This,pszValueName);
 2424}
 2425static inline HRESULT ISpRegDataKey_EnumKeys(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 2426    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 2427}
 2428static inline HRESULT ISpRegDataKey_EnumValues(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
 2429    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 2430}
 2431/*** ISpRegDataKey methods ***/
 2432static inline HRESULT ISpRegDataKey_SetKey(ISpRegDataKey* This,HKEY hkey,WINBOOL fReadOnly) {
 2433    return This->lpVtbl->SetKey(This,hkey,fReadOnly);
 2434}
 2435#endif
 2436#endif
 2437
 2438#endif
 2439
 2440
 2441#endif  /* __ISpRegDataKey_INTERFACE_DEFINED__ */
 2442
 2443/*****************************************************************************
 2444 * ISpObjectTokenCategory interface
 2445 */
 2446#ifndef __ISpObjectTokenCategory_INTERFACE_DEFINED__
 2447#define __ISpObjectTokenCategory_INTERFACE_DEFINED__
 2448
 2449DEFINE_GUID(IID_ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d);
 2450#if defined(__cplusplus) && !defined(CINTERFACE)
 2451MIDL_INTERFACE("2d3d3845-39af-4850-bbf9-40b49780011d")
 2452ISpObjectTokenCategory : public ISpDataKey
 2453{
 2454    virtual HRESULT STDMETHODCALLTYPE SetId(
 2455        LPCWSTR pszCategoryId,
 2456        WINBOOL fCreateIfNotExist) = 0;
 2457
 2458    virtual HRESULT STDMETHODCALLTYPE GetId(
 2459        LPWSTR *ppszCoMemCategoryId) = 0;
 2460
 2461    virtual HRESULT STDMETHODCALLTYPE GetDataKey(
 2462        SPDATAKEYLOCATION spdkl,
 2463        ISpDataKey **ppDataKey) = 0;
 2464
 2465    virtual HRESULT STDMETHODCALLTYPE EnumTokens(
 2466        LPCWSTR pzsReqAttribs,
 2467        LPCWSTR pszOptAttribs,
 2468        IEnumSpObjectTokens **ppEnum) = 0;
 2469
 2470    virtual HRESULT STDMETHODCALLTYPE SetDefaultTokenId(
 2471        LPCWSTR pszTokenId) = 0;
 2472
 2473    virtual HRESULT STDMETHODCALLTYPE GetDefaultTokenId(
 2474        LPWSTR *ppszCoMemTokenId) = 0;
 2475
 2476};
 2477#ifdef __CRT_UUID_DECL
 2478__CRT_UUID_DECL(ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d)
 2479#endif
 2480#else
 2481typedef struct ISpObjectTokenCategoryVtbl {
 2482    BEGIN_INTERFACE
 2483
 2484    /*** IUnknown methods ***/
 2485    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2486        ISpObjectTokenCategory *This,
 2487        REFIID riid,
 2488        void **ppvObject);
 2489
 2490    ULONG (STDMETHODCALLTYPE *AddRef)(
 2491        ISpObjectTokenCategory *This);
 2492
 2493    ULONG (STDMETHODCALLTYPE *Release)(
 2494        ISpObjectTokenCategory *This);
 2495
 2496    /*** ISpDataKey methods ***/
 2497    HRESULT (STDMETHODCALLTYPE *SetData)(
 2498        ISpObjectTokenCategory *This,
 2499        LPCWSTR pszValueName,
 2500        ULONG cbData,
 2501        const BYTE *pData);
 2502
 2503    HRESULT (STDMETHODCALLTYPE *GetData)(
 2504        ISpObjectTokenCategory *This,
 2505        LPCWSTR pszValueName,
 2506        ULONG *pcbData,
 2507        BYTE *pData);
 2508
 2509    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 2510        ISpObjectTokenCategory *This,
 2511        LPCWSTR pszValueName,
 2512        LPCWSTR pszValue);
 2513
 2514    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 2515        ISpObjectTokenCategory *This,
 2516        LPCWSTR pszValueName,
 2517        LPWSTR *ppszValue);
 2518
 2519    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 2520        ISpObjectTokenCategory *This,
 2521        LPCWSTR pszValueName,
 2522        DWORD dwValue);
 2523
 2524    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 2525        ISpObjectTokenCategory *This,
 2526        LPCWSTR pszValueName,
 2527        DWORD *pdwValue);
 2528
 2529    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 2530        ISpObjectTokenCategory *This,
 2531        LPCWSTR pszSubKeyName,
 2532        ISpDataKey **ppSubKey);
 2533
 2534    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 2535        ISpObjectTokenCategory *This,
 2536        LPCWSTR pszSubKey,
 2537        ISpDataKey **ppSubKey);
 2538
 2539    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 2540        ISpObjectTokenCategory *This,
 2541        LPCWSTR pszSubKey);
 2542
 2543    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 2544        ISpObjectTokenCategory *This,
 2545        LPCWSTR pszValueName);
 2546
 2547    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 2548        ISpObjectTokenCategory *This,
 2549        ULONG Index,
 2550        LPWSTR *ppszSubKeyName);
 2551
 2552    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 2553        ISpObjectTokenCategory *This,
 2554        ULONG Index,
 2555        LPWSTR *ppszValueName);
 2556
 2557    /*** ISpObjectTokenCategory methods ***/
 2558    HRESULT (STDMETHODCALLTYPE *SetId)(
 2559        ISpObjectTokenCategory *This,
 2560        LPCWSTR pszCategoryId,
 2561        WINBOOL fCreateIfNotExist);
 2562
 2563    HRESULT (STDMETHODCALLTYPE *GetId)(
 2564        ISpObjectTokenCategory *This,
 2565        LPWSTR *ppszCoMemCategoryId);
 2566
 2567    HRESULT (STDMETHODCALLTYPE *GetDataKey)(
 2568        ISpObjectTokenCategory *This,
 2569        SPDATAKEYLOCATION spdkl,
 2570        ISpDataKey **ppDataKey);
 2571
 2572    HRESULT (STDMETHODCALLTYPE *EnumTokens)(
 2573        ISpObjectTokenCategory *This,
 2574        LPCWSTR pzsReqAttribs,
 2575        LPCWSTR pszOptAttribs,
 2576        IEnumSpObjectTokens **ppEnum);
 2577
 2578    HRESULT (STDMETHODCALLTYPE *SetDefaultTokenId)(
 2579        ISpObjectTokenCategory *This,
 2580        LPCWSTR pszTokenId);
 2581
 2582    HRESULT (STDMETHODCALLTYPE *GetDefaultTokenId)(
 2583        ISpObjectTokenCategory *This,
 2584        LPWSTR *ppszCoMemTokenId);
 2585
 2586    END_INTERFACE
 2587} ISpObjectTokenCategoryVtbl;
 2588
 2589interface ISpObjectTokenCategory {
 2590    CONST_VTBL ISpObjectTokenCategoryVtbl* lpVtbl;
 2591};
 2592
 2593#ifdef COBJMACROS
 2594#ifndef WIDL_C_INLINE_WRAPPERS
 2595/*** IUnknown methods ***/
 2596#define ISpObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2597#define ISpObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
 2598#define ISpObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
 2599/*** ISpDataKey methods ***/
 2600#define ISpObjectTokenCategory_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 2601#define ISpObjectTokenCategory_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 2602#define ISpObjectTokenCategory_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 2603#define ISpObjectTokenCategory_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 2604#define ISpObjectTokenCategory_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 2605#define ISpObjectTokenCategory_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 2606#define ISpObjectTokenCategory_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 2607#define ISpObjectTokenCategory_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 2608#define ISpObjectTokenCategory_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 2609#define ISpObjectTokenCategory_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 2610#define ISpObjectTokenCategory_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 2611#define ISpObjectTokenCategory_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 2612/*** ISpObjectTokenCategory methods ***/
 2613#define ISpObjectTokenCategory_SetId(This,pszCategoryId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist)
 2614#define ISpObjectTokenCategory_GetId(This,ppszCoMemCategoryId) (This)->lpVtbl->GetId(This,ppszCoMemCategoryId)
 2615#define ISpObjectTokenCategory_GetDataKey(This,spdkl,ppDataKey) (This)->lpVtbl->GetDataKey(This,spdkl,ppDataKey)
 2616#define ISpObjectTokenCategory_EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum) (This)->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
 2617#define ISpObjectTokenCategory_SetDefaultTokenId(This,pszTokenId) (This)->lpVtbl->SetDefaultTokenId(This,pszTokenId)
 2618#define ISpObjectTokenCategory_GetDefaultTokenId(This,ppszCoMemTokenId) (This)->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId)
 2619#else
 2620/*** IUnknown methods ***/
 2621static inline HRESULT ISpObjectTokenCategory_QueryInterface(ISpObjectTokenCategory* This,REFIID riid,void **ppvObject) {
 2622    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2623}
 2624static inline ULONG ISpObjectTokenCategory_AddRef(ISpObjectTokenCategory* This) {
 2625    return This->lpVtbl->AddRef(This);
 2626}
 2627static inline ULONG ISpObjectTokenCategory_Release(ISpObjectTokenCategory* This) {
 2628    return This->lpVtbl->Release(This);
 2629}
 2630/*** ISpDataKey methods ***/
 2631static inline HRESULT ISpObjectTokenCategory_SetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 2632    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 2633}
 2634static inline HRESULT ISpObjectTokenCategory_GetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 2635    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 2636}
 2637static inline HRESULT ISpObjectTokenCategory_SetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 2638    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 2639}
 2640static inline HRESULT ISpObjectTokenCategory_GetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 2641    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 2642}
 2643static inline HRESULT ISpObjectTokenCategory_SetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD dwValue) {
 2644    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 2645}
 2646static inline HRESULT ISpObjectTokenCategory_GetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 2647    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 2648}
 2649static inline HRESULT ISpObjectTokenCategory_OpenKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 2650    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 2651}
 2652static inline HRESULT ISpObjectTokenCategory_CreateKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 2653    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 2654}
 2655static inline HRESULT ISpObjectTokenCategory_DeleteKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey) {
 2656    return This->lpVtbl->DeleteKey(This,pszSubKey);
 2657}
 2658static inline HRESULT ISpObjectTokenCategory_DeleteValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName) {
 2659    return This->lpVtbl->DeleteValue(This,pszValueName);
 2660}
 2661static inline HRESULT ISpObjectTokenCategory_EnumKeys(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 2662    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 2663}
 2664static inline HRESULT ISpObjectTokenCategory_EnumValues(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszValueName) {
 2665    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 2666}
 2667/*** ISpObjectTokenCategory methods ***/
 2668static inline HRESULT ISpObjectTokenCategory_SetId(ISpObjectTokenCategory* This,LPCWSTR pszCategoryId,WINBOOL fCreateIfNotExist) {
 2669    return This->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist);
 2670}
 2671static inline HRESULT ISpObjectTokenCategory_GetId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemCategoryId) {
 2672    return This->lpVtbl->GetId(This,ppszCoMemCategoryId);
 2673}
 2674static inline HRESULT ISpObjectTokenCategory_GetDataKey(ISpObjectTokenCategory* This,SPDATAKEYLOCATION spdkl,ISpDataKey **ppDataKey) {
 2675    return This->lpVtbl->GetDataKey(This,spdkl,ppDataKey);
 2676}
 2677static inline HRESULT ISpObjectTokenCategory_EnumTokens(ISpObjectTokenCategory* This,LPCWSTR pzsReqAttribs,LPCWSTR pszOptAttribs,IEnumSpObjectTokens **ppEnum) {
 2678    return This->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum);
 2679}
 2680static inline HRESULT ISpObjectTokenCategory_SetDefaultTokenId(ISpObjectTokenCategory* This,LPCWSTR pszTokenId) {
 2681    return This->lpVtbl->SetDefaultTokenId(This,pszTokenId);
 2682}
 2683static inline HRESULT ISpObjectTokenCategory_GetDefaultTokenId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemTokenId) {
 2684    return This->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId);
 2685}
 2686#endif
 2687#endif
 2688
 2689#endif
 2690
 2691
 2692#endif  /* __ISpObjectTokenCategory_INTERFACE_DEFINED__ */
 2693
 2694/*****************************************************************************
 2695 * ISpObjectToken interface
 2696 */
 2697#ifndef __ISpObjectToken_INTERFACE_DEFINED__
 2698#define __ISpObjectToken_INTERFACE_DEFINED__
 2699
 2700DEFINE_GUID(IID_ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
 2701#if defined(__cplusplus) && !defined(CINTERFACE)
 2702MIDL_INTERFACE("14056589-e16c-11d2-bb90-00c04f8ee6c0")
 2703ISpObjectToken : public ISpDataKey
 2704{
 2705    virtual HRESULT STDMETHODCALLTYPE SetId(
 2706        LPCWSTR pszCategoryId,
 2707        LPCWSTR pszTokenId,
 2708        WINBOOL fCreateIfNotExist) = 0;
 2709
 2710    virtual HRESULT STDMETHODCALLTYPE GetId(
 2711        LPWSTR *ppszCoMemTokenId) = 0;
 2712
 2713    virtual HRESULT STDMETHODCALLTYPE GetCategory(
 2714        ISpObjectTokenCategory **ppTokenCategory) = 0;
 2715
 2716    virtual HRESULT STDMETHODCALLTYPE CreateInstance(
 2717        IUnknown *pUnkOuter,
 2718        DWORD dwClsContext,
 2719        REFIID riid,
 2720        void **ppvObject) = 0;
 2721
 2722    virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
 2723        REFCLSID clsidCaller,
 2724        LPCWSTR pszValueName,
 2725        LPCWSTR pszFileNameSpecifier,
 2726        ULONG nFolder,
 2727        LPWSTR *ppszFilePath) = 0;
 2728
 2729    virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
 2730        REFCLSID clsidCaller,
 2731        LPCWSTR pszKeyName,
 2732        WINBOOL fDeleteFile) = 0;
 2733
 2734    virtual HRESULT STDMETHODCALLTYPE Remove(
 2735        const CLSID *pclsidCaller) = 0;
 2736
 2737    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
 2738        LPCWSTR pszTypeOfUI,
 2739        void *pvExtraData,
 2740        ULONG cbExtraData,
 2741        IUnknown *punkObject,
 2742        WINBOOL *pfSupported) = 0;
 2743
 2744    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
 2745        HWND hwndParent,
 2746        LPCWSTR pszTitle,
 2747        LPCWSTR pszTypeOfUI,
 2748        void *pvExtraData,
 2749        ULONG cbExtraData,
 2750        IUnknown *punkObject) = 0;
 2751
 2752    virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
 2753        LPCWSTR pszAttributes,
 2754        WINBOOL *pfMatches) = 0;
 2755
 2756};
 2757#ifdef __CRT_UUID_DECL
 2758__CRT_UUID_DECL(ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
 2759#endif
 2760#else
 2761typedef struct ISpObjectTokenVtbl {
 2762    BEGIN_INTERFACE
 2763
 2764    /*** IUnknown methods ***/
 2765    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2766        ISpObjectToken *This,
 2767        REFIID riid,
 2768        void **ppvObject);
 2769
 2770    ULONG (STDMETHODCALLTYPE *AddRef)(
 2771        ISpObjectToken *This);
 2772
 2773    ULONG (STDMETHODCALLTYPE *Release)(
 2774        ISpObjectToken *This);
 2775
 2776    /*** ISpDataKey methods ***/
 2777    HRESULT (STDMETHODCALLTYPE *SetData)(
 2778        ISpObjectToken *This,
 2779        LPCWSTR pszValueName,
 2780        ULONG cbData,
 2781        const BYTE *pData);
 2782
 2783    HRESULT (STDMETHODCALLTYPE *GetData)(
 2784        ISpObjectToken *This,
 2785        LPCWSTR pszValueName,
 2786        ULONG *pcbData,
 2787        BYTE *pData);
 2788
 2789    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 2790        ISpObjectToken *This,
 2791        LPCWSTR pszValueName,
 2792        LPCWSTR pszValue);
 2793
 2794    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 2795        ISpObjectToken *This,
 2796        LPCWSTR pszValueName,
 2797        LPWSTR *ppszValue);
 2798
 2799    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 2800        ISpObjectToken *This,
 2801        LPCWSTR pszValueName,
 2802        DWORD dwValue);
 2803
 2804    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 2805        ISpObjectToken *This,
 2806        LPCWSTR pszValueName,
 2807        DWORD *pdwValue);
 2808
 2809    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 2810        ISpObjectToken *This,
 2811        LPCWSTR pszSubKeyName,
 2812        ISpDataKey **ppSubKey);
 2813
 2814    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 2815        ISpObjectToken *This,
 2816        LPCWSTR pszSubKey,
 2817        ISpDataKey **ppSubKey);
 2818
 2819    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 2820        ISpObjectToken *This,
 2821        LPCWSTR pszSubKey);
 2822
 2823    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 2824        ISpObjectToken *This,
 2825        LPCWSTR pszValueName);
 2826
 2827    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 2828        ISpObjectToken *This,
 2829        ULONG Index,
 2830        LPWSTR *ppszSubKeyName);
 2831
 2832    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 2833        ISpObjectToken *This,
 2834        ULONG Index,
 2835        LPWSTR *ppszValueName);
 2836
 2837    /*** ISpObjectToken methods ***/
 2838    HRESULT (STDMETHODCALLTYPE *SetId)(
 2839        ISpObjectToken *This,
 2840        LPCWSTR pszCategoryId,
 2841        LPCWSTR pszTokenId,
 2842        WINBOOL fCreateIfNotExist);
 2843
 2844    HRESULT (STDMETHODCALLTYPE *GetId)(
 2845        ISpObjectToken *This,
 2846        LPWSTR *ppszCoMemTokenId);
 2847
 2848    HRESULT (STDMETHODCALLTYPE *GetCategory)(
 2849        ISpObjectToken *This,
 2850        ISpObjectTokenCategory **ppTokenCategory);
 2851
 2852    HRESULT (STDMETHODCALLTYPE *CreateInstance)(
 2853        ISpObjectToken *This,
 2854        IUnknown *pUnkOuter,
 2855        DWORD dwClsContext,
 2856        REFIID riid,
 2857        void **ppvObject);
 2858
 2859    HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
 2860        ISpObjectToken *This,
 2861        REFCLSID clsidCaller,
 2862        LPCWSTR pszValueName,
 2863        LPCWSTR pszFileNameSpecifier,
 2864        ULONG nFolder,
 2865        LPWSTR *ppszFilePath);
 2866
 2867    HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
 2868        ISpObjectToken *This,
 2869        REFCLSID clsidCaller,
 2870        LPCWSTR pszKeyName,
 2871        WINBOOL fDeleteFile);
 2872
 2873    HRESULT (STDMETHODCALLTYPE *Remove)(
 2874        ISpObjectToken *This,
 2875        const CLSID *pclsidCaller);
 2876
 2877    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
 2878        ISpObjectToken *This,
 2879        LPCWSTR pszTypeOfUI,
 2880        void *pvExtraData,
 2881        ULONG cbExtraData,
 2882        IUnknown *punkObject,
 2883        WINBOOL *pfSupported);
 2884
 2885    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
 2886        ISpObjectToken *This,
 2887        HWND hwndParent,
 2888        LPCWSTR pszTitle,
 2889        LPCWSTR pszTypeOfUI,
 2890        void *pvExtraData,
 2891        ULONG cbExtraData,
 2892        IUnknown *punkObject);
 2893
 2894    HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
 2895        ISpObjectToken *This,
 2896        LPCWSTR pszAttributes,
 2897        WINBOOL *pfMatches);
 2898
 2899    END_INTERFACE
 2900} ISpObjectTokenVtbl;
 2901
 2902interface ISpObjectToken {
 2903    CONST_VTBL ISpObjectTokenVtbl* lpVtbl;
 2904};
 2905
 2906#ifdef COBJMACROS
 2907#ifndef WIDL_C_INLINE_WRAPPERS
 2908/*** IUnknown methods ***/
 2909#define ISpObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2910#define ISpObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
 2911#define ISpObjectToken_Release(This) (This)->lpVtbl->Release(This)
 2912/*** ISpDataKey methods ***/
 2913#define ISpObjectToken_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 2914#define ISpObjectToken_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 2915#define ISpObjectToken_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 2916#define ISpObjectToken_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 2917#define ISpObjectToken_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 2918#define ISpObjectToken_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 2919#define ISpObjectToken_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 2920#define ISpObjectToken_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 2921#define ISpObjectToken_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 2922#define ISpObjectToken_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 2923#define ISpObjectToken_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 2924#define ISpObjectToken_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 2925/*** ISpObjectToken methods ***/
 2926#define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
 2927#define ISpObjectToken_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
 2928#define ISpObjectToken_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
 2929#define ISpObjectToken_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
 2930#define ISpObjectToken_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
 2931#define ISpObjectToken_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
 2932#define ISpObjectToken_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
 2933#define ISpObjectToken_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
 2934#define ISpObjectToken_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
 2935#define ISpObjectToken_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
 2936#else
 2937/*** IUnknown methods ***/
 2938static inline HRESULT ISpObjectToken_QueryInterface(ISpObjectToken* This,REFIID riid,void **ppvObject) {
 2939    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2940}
 2941static inline ULONG ISpObjectToken_AddRef(ISpObjectToken* This) {
 2942    return This->lpVtbl->AddRef(This);
 2943}
 2944static inline ULONG ISpObjectToken_Release(ISpObjectToken* This) {
 2945    return This->lpVtbl->Release(This);
 2946}
 2947/*** ISpDataKey methods ***/
 2948static inline HRESULT ISpObjectToken_SetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 2949    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 2950}
 2951static inline HRESULT ISpObjectToken_GetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 2952    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 2953}
 2954static inline HRESULT ISpObjectToken_SetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 2955    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 2956}
 2957static inline HRESULT ISpObjectToken_GetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 2958    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 2959}
 2960static inline HRESULT ISpObjectToken_SetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD dwValue) {
 2961    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 2962}
 2963static inline HRESULT ISpObjectToken_GetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 2964    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 2965}
 2966static inline HRESULT ISpObjectToken_OpenKey(ISpObjectToken* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 2967    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 2968}
 2969static inline HRESULT ISpObjectToken_CreateKey(ISpObjectToken* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 2970    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 2971}
 2972static inline HRESULT ISpObjectToken_DeleteKey(ISpObjectToken* This,LPCWSTR pszSubKey) {
 2973    return This->lpVtbl->DeleteKey(This,pszSubKey);
 2974}
 2975static inline HRESULT ISpObjectToken_DeleteValue(ISpObjectToken* This,LPCWSTR pszValueName) {
 2976    return This->lpVtbl->DeleteValue(This,pszValueName);
 2977}
 2978static inline HRESULT ISpObjectToken_EnumKeys(ISpObjectToken* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 2979    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 2980}
 2981static inline HRESULT ISpObjectToken_EnumValues(ISpObjectToken* This,ULONG Index,LPWSTR *ppszValueName) {
 2982    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 2983}
 2984/*** ISpObjectToken methods ***/
 2985static inline HRESULT ISpObjectToken_SetId(ISpObjectToken* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
 2986    return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
 2987}
 2988static inline HRESULT ISpObjectToken_GetId(ISpObjectToken* This,LPWSTR *ppszCoMemTokenId) {
 2989    return This->lpVtbl->GetId(This,ppszCoMemTokenId);
 2990}
 2991static inline HRESULT ISpObjectToken_GetCategory(ISpObjectToken* This,ISpObjectTokenCategory **ppTokenCategory) {
 2992    return This->lpVtbl->GetCategory(This,ppTokenCategory);
 2993}
 2994static inline HRESULT ISpObjectToken_CreateInstance(ISpObjectToken* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
 2995    return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
 2996}
 2997static inline HRESULT ISpObjectToken_GetStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
 2998    return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
 2999}
 3000static inline HRESULT ISpObjectToken_RemoveStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
 3001    return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
 3002}
 3003static inline HRESULT ISpObjectToken_Remove(ISpObjectToken* This,const CLSID *pclsidCaller) {
 3004    return This->lpVtbl->Remove(This,pclsidCaller);
 3005}
 3006static inline HRESULT ISpObjectToken_IsUISupported(ISpObjectToken* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
 3007    return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
 3008}
 3009static inline HRESULT ISpObjectToken_DisplayUI(ISpObjectToken* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
 3010    return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
 3011}
 3012static inline HRESULT ISpObjectToken_MatchesAttributes(ISpObjectToken* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
 3013    return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
 3014}
 3015#endif
 3016#endif
 3017
 3018#endif
 3019
 3020
 3021#endif  /* __ISpObjectToken_INTERFACE_DEFINED__ */
 3022
 3023/*****************************************************************************
 3024 * ISpObjectTokenInit interface
 3025 */
 3026#ifndef __ISpObjectTokenInit_INTERFACE_DEFINED__
 3027#define __ISpObjectTokenInit_INTERFACE_DEFINED__
 3028
 3029DEFINE_GUID(IID_ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51);
 3030#if defined(__cplusplus) && !defined(CINTERFACE)
 3031MIDL_INTERFACE("b8aab0cf-346f-49d8-9499-c8b03f161d51")
 3032ISpObjectTokenInit : public ISpObjectToken
 3033{
 3034    virtual HRESULT STDMETHODCALLTYPE InitFromDataKey(
 3035        LPCWSTR pszCategoryId,
 3036        LPCWSTR pszTokenId,
 3037        ISpDataKey *pDataKey) = 0;
 3038
 3039};
 3040#ifdef __CRT_UUID_DECL
 3041__CRT_UUID_DECL(ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51)
 3042#endif
 3043#else
 3044typedef struct ISpObjectTokenInitVtbl {
 3045    BEGIN_INTERFACE
 3046
 3047    /*** IUnknown methods ***/
 3048    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3049        ISpObjectTokenInit *This,
 3050        REFIID riid,
 3051        void **ppvObject);
 3052
 3053    ULONG (STDMETHODCALLTYPE *AddRef)(
 3054        ISpObjectTokenInit *This);
 3055
 3056    ULONG (STDMETHODCALLTYPE *Release)(
 3057        ISpObjectTokenInit *This);
 3058
 3059    /*** ISpDataKey methods ***/
 3060    HRESULT (STDMETHODCALLTYPE *SetData)(
 3061        ISpObjectTokenInit *This,
 3062        LPCWSTR pszValueName,
 3063        ULONG cbData,
 3064        const BYTE *pData);
 3065
 3066    HRESULT (STDMETHODCALLTYPE *GetData)(
 3067        ISpObjectTokenInit *This,
 3068        LPCWSTR pszValueName,
 3069        ULONG *pcbData,
 3070        BYTE *pData);
 3071
 3072    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 3073        ISpObjectTokenInit *This,
 3074        LPCWSTR pszValueName,
 3075        LPCWSTR pszValue);
 3076
 3077    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 3078        ISpObjectTokenInit *This,
 3079        LPCWSTR pszValueName,
 3080        LPWSTR *ppszValue);
 3081
 3082    HRESULT (STDMETHODCALLTYPE *SetDWORD)(
 3083        ISpObjectTokenInit *This,
 3084        LPCWSTR pszValueName,
 3085        DWORD dwValue);
 3086
 3087    HRESULT (STDMETHODCALLTYPE *GetDWORD)(
 3088        ISpObjectTokenInit *This,
 3089        LPCWSTR pszValueName,
 3090        DWORD *pdwValue);
 3091
 3092    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 3093        ISpObjectTokenInit *This,
 3094        LPCWSTR pszSubKeyName,
 3095        ISpDataKey **ppSubKey);
 3096
 3097    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 3098        ISpObjectTokenInit *This,
 3099        LPCWSTR pszSubKey,
 3100        ISpDataKey **ppSubKey);
 3101
 3102    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 3103        ISpObjectTokenInit *This,
 3104        LPCWSTR pszSubKey);
 3105
 3106    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 3107        ISpObjectTokenInit *This,
 3108        LPCWSTR pszValueName);
 3109
 3110    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 3111        ISpObjectTokenInit *This,
 3112        ULONG Index,
 3113        LPWSTR *ppszSubKeyName);
 3114
 3115    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 3116        ISpObjectTokenInit *This,
 3117        ULONG Index,
 3118        LPWSTR *ppszValueName);
 3119
 3120    /*** ISpObjectToken methods ***/
 3121    HRESULT (STDMETHODCALLTYPE *SetId)(
 3122        ISpObjectTokenInit *This,
 3123        LPCWSTR pszCategoryId,
 3124        LPCWSTR pszTokenId,
 3125        WINBOOL fCreateIfNotExist);
 3126
 3127    HRESULT (STDMETHODCALLTYPE *GetId)(
 3128        ISpObjectTokenInit *This,
 3129        LPWSTR *ppszCoMemTokenId);
 3130
 3131    HRESULT (STDMETHODCALLTYPE *GetCategory)(
 3132        ISpObjectTokenInit *This,
 3133        ISpObjectTokenCategory **ppTokenCategory);
 3134
 3135    HRESULT (STDMETHODCALLTYPE *CreateInstance)(
 3136        ISpObjectTokenInit *This,
 3137        IUnknown *pUnkOuter,
 3138        DWORD dwClsContext,
 3139        REFIID riid,
 3140        void **ppvObject);
 3141
 3142    HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
 3143        ISpObjectTokenInit *This,
 3144        REFCLSID clsidCaller,
 3145        LPCWSTR pszValueName,
 3146        LPCWSTR pszFileNameSpecifier,
 3147        ULONG nFolder,
 3148        LPWSTR *ppszFilePath);
 3149
 3150    HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
 3151        ISpObjectTokenInit *This,
 3152        REFCLSID clsidCaller,
 3153        LPCWSTR pszKeyName,
 3154        WINBOOL fDeleteFile);
 3155
 3156    HRESULT (STDMETHODCALLTYPE *Remove)(
 3157        ISpObjectTokenInit *This,
 3158        const CLSID *pclsidCaller);
 3159
 3160    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
 3161        ISpObjectTokenInit *This,
 3162        LPCWSTR pszTypeOfUI,
 3163        void *pvExtraData,
 3164        ULONG cbExtraData,
 3165        IUnknown *punkObject,
 3166        WINBOOL *pfSupported);
 3167
 3168    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
 3169        ISpObjectTokenInit *This,
 3170        HWND hwndParent,
 3171        LPCWSTR pszTitle,
 3172        LPCWSTR pszTypeOfUI,
 3173        void *pvExtraData,
 3174        ULONG cbExtraData,
 3175        IUnknown *punkObject);
 3176
 3177    HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
 3178        ISpObjectTokenInit *This,
 3179        LPCWSTR pszAttributes,
 3180        WINBOOL *pfMatches);
 3181
 3182    /*** ISpObjectTokenInit methods ***/
 3183    HRESULT (STDMETHODCALLTYPE *InitFromDataKey)(
 3184        ISpObjectTokenInit *This,
 3185        LPCWSTR pszCategoryId,
 3186        LPCWSTR pszTokenId,
 3187        ISpDataKey *pDataKey);
 3188
 3189    END_INTERFACE
 3190} ISpObjectTokenInitVtbl;
 3191
 3192interface ISpObjectTokenInit {
 3193    CONST_VTBL ISpObjectTokenInitVtbl* lpVtbl;
 3194};
 3195
 3196#ifdef COBJMACROS
 3197#ifndef WIDL_C_INLINE_WRAPPERS
 3198/*** IUnknown methods ***/
 3199#define ISpObjectTokenInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3200#define ISpObjectTokenInit_AddRef(This) (This)->lpVtbl->AddRef(This)
 3201#define ISpObjectTokenInit_Release(This) (This)->lpVtbl->Release(This)
 3202/*** ISpDataKey methods ***/
 3203#define ISpObjectTokenInit_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
 3204#define ISpObjectTokenInit_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
 3205#define ISpObjectTokenInit_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
 3206#define ISpObjectTokenInit_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
 3207#define ISpObjectTokenInit_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
 3208#define ISpObjectTokenInit_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
 3209#define ISpObjectTokenInit_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
 3210#define ISpObjectTokenInit_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
 3211#define ISpObjectTokenInit_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
 3212#define ISpObjectTokenInit_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
 3213#define ISpObjectTokenInit_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
 3214#define ISpObjectTokenInit_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
 3215/*** ISpObjectToken methods ***/
 3216#define ISpObjectTokenInit_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
 3217#define ISpObjectTokenInit_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
 3218#define ISpObjectTokenInit_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
 3219#define ISpObjectTokenInit_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
 3220#define ISpObjectTokenInit_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
 3221#define ISpObjectTokenInit_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
 3222#define ISpObjectTokenInit_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
 3223#define ISpObjectTokenInit_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
 3224#define ISpObjectTokenInit_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
 3225#define ISpObjectTokenInit_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
 3226/*** ISpObjectTokenInit methods ***/
 3227#define ISpObjectTokenInit_InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey) (This)->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
 3228#else
 3229/*** IUnknown methods ***/
 3230static inline HRESULT ISpObjectTokenInit_QueryInterface(ISpObjectTokenInit* This,REFIID riid,void **ppvObject) {
 3231    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3232}
 3233static inline ULONG ISpObjectTokenInit_AddRef(ISpObjectTokenInit* This) {
 3234    return This->lpVtbl->AddRef(This);
 3235}
 3236static inline ULONG ISpObjectTokenInit_Release(ISpObjectTokenInit* This) {
 3237    return This->lpVtbl->Release(This);
 3238}
 3239/*** ISpDataKey methods ***/
 3240static inline HRESULT ISpObjectTokenInit_SetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
 3241    return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
 3242}
 3243static inline HRESULT ISpObjectTokenInit_GetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
 3244    return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
 3245}
 3246static inline HRESULT ISpObjectTokenInit_SetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
 3247    return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
 3248}
 3249static inline HRESULT ISpObjectTokenInit_GetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
 3250    return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
 3251}
 3252static inline HRESULT ISpObjectTokenInit_SetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD dwValue) {
 3253    return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
 3254}
 3255static inline HRESULT ISpObjectTokenInit_GetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD *pdwValue) {
 3256    return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
 3257}
 3258static inline HRESULT ISpObjectTokenInit_OpenKey(ISpObjectTokenInit* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
 3259    return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
 3260}
 3261static inline HRESULT ISpObjectTokenInit_CreateKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
 3262    return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
 3263}
 3264static inline HRESULT ISpObjectTokenInit_DeleteKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey) {
 3265    return This->lpVtbl->DeleteKey(This,pszSubKey);
 3266}
 3267static inline HRESULT ISpObjectTokenInit_DeleteValue(ISpObjectTokenInit* This,LPCWSTR pszValueName) {
 3268    return This->lpVtbl->DeleteValue(This,pszValueName);
 3269}
 3270static inline HRESULT ISpObjectTokenInit_EnumKeys(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszSubKeyName) {
 3271    return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
 3272}
 3273static inline HRESULT ISpObjectTokenInit_EnumValues(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszValueName) {
 3274    return This->lpVtbl->EnumValues(This,Index,ppszValueName);
 3275}
 3276/*** ISpObjectToken methods ***/
 3277static inline HRESULT ISpObjectTokenInit_SetId(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
 3278    return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
 3279}
 3280static inline HRESULT ISpObjectTokenInit_GetId(ISpObjectTokenInit* This,LPWSTR *ppszCoMemTokenId) {
 3281    return This->lpVtbl->GetId(This,ppszCoMemTokenId);
 3282}
 3283static inline HRESULT ISpObjectTokenInit_GetCategory(ISpObjectTokenInit* This,ISpObjectTokenCategory **ppTokenCategory) {
 3284    return This->lpVtbl->GetCategory(This,ppTokenCategory);
 3285}
 3286static inline HRESULT ISpObjectTokenInit_CreateInstance(ISpObjectTokenInit* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
 3287    return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
 3288}
 3289static inline HRESULT ISpObjectTokenInit_GetStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
 3290    return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
 3291}
 3292static inline HRESULT ISpObjectTokenInit_RemoveStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
 3293    return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
 3294}
 3295static inline HRESULT ISpObjectTokenInit_Remove(ISpObjectTokenInit* This,const CLSID *pclsidCaller) {
 3296    return This->lpVtbl->Remove(This,pclsidCaller);
 3297}
 3298static inline HRESULT ISpObjectTokenInit_IsUISupported(ISpObjectTokenInit* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
 3299    return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
 3300}
 3301static inline HRESULT ISpObjectTokenInit_DisplayUI(ISpObjectTokenInit* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
 3302    return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
 3303}
 3304static inline HRESULT ISpObjectTokenInit_MatchesAttributes(ISpObjectTokenInit* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
 3305    return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
 3306}
 3307/*** ISpObjectTokenInit methods ***/
 3308static inline HRESULT ISpObjectTokenInit_InitFromDataKey(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,ISpDataKey *pDataKey) {
 3309    return This->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey);
 3310}
 3311#endif
 3312#endif
 3313
 3314#endif
 3315
 3316
 3317#endif  /* __ISpObjectTokenInit_INTERFACE_DEFINED__ */
 3318
 3319/*****************************************************************************
 3320 * ISpResourceManager interface
 3321 */
 3322#ifndef __ISpResourceManager_INTERFACE_DEFINED__
 3323#define __ISpResourceManager_INTERFACE_DEFINED__
 3324
 3325DEFINE_GUID(IID_ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd);
 3326#if defined(__cplusplus) && !defined(CINTERFACE)
 3327MIDL_INTERFACE("93384e18-5014-43d5-adbb-a78e055926bd")
 3328ISpResourceManager : public IServiceProvider
 3329{
 3330    virtual HRESULT STDMETHODCALLTYPE SetObject(
 3331        REFGUID guidServiceId,
 3332        IUnknown *pUnkObject) = 0;
 3333
 3334    virtual HRESULT STDMETHODCALLTYPE GetObject(
 3335        REFGUID guidServiceId,
 3336        REFCLSID ObjectCLSID,
 3337        REFIID ObjectIID,
 3338        WINBOOL fReleaseWhenLastExternalRefReleased,
 3339        void **ppObject) = 0;
 3340
 3341};
 3342#ifdef __CRT_UUID_DECL
 3343__CRT_UUID_DECL(ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd)
 3344#endif
 3345#else
 3346typedef struct ISpResourceManagerVtbl {
 3347    BEGIN_INTERFACE
 3348
 3349    /*** IUnknown methods ***/
 3350    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3351        ISpResourceManager *This,
 3352        REFIID riid,
 3353        void **ppvObject);
 3354
 3355    ULONG (STDMETHODCALLTYPE *AddRef)(
 3356        ISpResourceManager *This);
 3357
 3358    ULONG (STDMETHODCALLTYPE *Release)(
 3359        ISpResourceManager *This);
 3360
 3361    /*** IServiceProvider methods ***/
 3362    HRESULT (STDMETHODCALLTYPE *QueryService)(
 3363        ISpResourceManager *This,
 3364        REFGUID guidService,
 3365        REFIID riid,
 3366        void **ppvObject);
 3367
 3368    /*** ISpResourceManager methods ***/
 3369    HRESULT (STDMETHODCALLTYPE *SetObject)(
 3370        ISpResourceManager *This,
 3371        REFGUID guidServiceId,
 3372        IUnknown *pUnkObject);
 3373
 3374    HRESULT (STDMETHODCALLTYPE *GetObject)(
 3375        ISpResourceManager *This,
 3376        REFGUID guidServiceId,
 3377        REFCLSID ObjectCLSID,
 3378        REFIID ObjectIID,
 3379        WINBOOL fReleaseWhenLastExternalRefReleased,
 3380        void **ppObject);
 3381
 3382    END_INTERFACE
 3383} ISpResourceManagerVtbl;
 3384
 3385interface ISpResourceManager {
 3386    CONST_VTBL ISpResourceManagerVtbl* lpVtbl;
 3387};
 3388
 3389#ifdef COBJMACROS
 3390#ifndef WIDL_C_INLINE_WRAPPERS
 3391/*** IUnknown methods ***/
 3392#define ISpResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3393#define ISpResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
 3394#define ISpResourceManager_Release(This) (This)->lpVtbl->Release(This)
 3395/*** IServiceProvider methods ***/
 3396#define ISpResourceManager_QueryService(This,guidService,riid,ppvObject) (This)->lpVtbl->QueryService(This,guidService,riid,ppvObject)
 3397/*** ISpResourceManager methods ***/
 3398#define ISpResourceManager_SetObject(This,guidServiceId,pUnkObject) (This)->lpVtbl->SetObject(This,guidServiceId,pUnkObject)
 3399#define ISpResourceManager_GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject) (This)->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
 3400#else
 3401/*** IUnknown methods ***/
 3402static inline HRESULT ISpResourceManager_QueryInterface(ISpResourceManager* This,REFIID riid,void **ppvObject) {
 3403    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3404}
 3405static inline ULONG ISpResourceManager_AddRef(ISpResourceManager* This) {
 3406    return This->lpVtbl->AddRef(This);
 3407}
 3408static inline ULONG ISpResourceManager_Release(ISpResourceManager* This) {
 3409    return This->lpVtbl->Release(This);
 3410}
 3411/*** IServiceProvider methods ***/
 3412static inline HRESULT ISpResourceManager_QueryService(ISpResourceManager* This,REFGUID guidService,REFIID riid,void **ppvObject) {
 3413    return This->lpVtbl->QueryService(This,guidService,riid,ppvObject);
 3414}
 3415/*** ISpResourceManager methods ***/
 3416static inline HRESULT ISpResourceManager_SetObject(ISpResourceManager* This,REFGUID guidServiceId,IUnknown *pUnkObject) {
 3417    return This->lpVtbl->SetObject(This,guidServiceId,pUnkObject);
 3418}
 3419static inline HRESULT ISpResourceManager_GetObject(ISpResourceManager* This,REFGUID guidServiceId,REFCLSID ObjectCLSID,REFIID ObjectIID,WINBOOL fReleaseWhenLastExternalRefReleased,void **ppObject) {
 3420    return This->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject);
 3421}
 3422#endif
 3423#endif
 3424
 3425#endif
 3426
 3427
 3428#endif  /* __ISpResourceManager_INTERFACE_DEFINED__ */
 3429
 3430#if 0
 3431typedef struct SPEVENT {
 3432    WORD eEventId;
 3433    WORD elParamType;
 3434    ULONG ulStreamNum;
 3435    ULONGLONG ullAudioStreamOffset;
 3436    WPARAM wParam;
 3437    LPARAM lParam;
 3438} SPEVENT;
 3439typedef struct SPSERIALIZEDEVENT {
 3440    WORD eEventId;
 3441    WORD elParamType;
 3442    ULONG ulStreamNum;
 3443    ULONGLONG ullAudioStreamOffset;
 3444    ULONG SerializedwParam;
 3445    LONG SerializedlParam;
 3446} SPSERIALIZEDEVENT;
 3447typedef struct SPSERIALIZEDEVENT64 {
 3448    WORD eEventId;
 3449    WORD elParamType;
 3450    ULONG ulStreamNum;
 3451    ULONGLONG ullAudioStreamOffset;
 3452    ULONGLONG SerializedwParam;
 3453    LONGLONG SerializedlParam;
 3454} SPSERIALIZEDEVENT64;
 3455#else
 3456typedef struct SPEVENT {
 3457  SPEVENTENUM eEventId : 16;
 3458  SPEVENTLPARAMTYPE elParamType : 16;
 3459  ULONG ulStreamNum;
 3460  ULONGLONG ullAudioStreamOffset;
 3461  WPARAM      wParam;
 3462  LPARAM      lParam;
 3463} SPEVENT;
 3464
 3465typedef struct SPSERIALIZEDEVENT {
 3466  SPEVENTENUM eEventId : 16;
 3467  SPEVENTLPARAMTYPE elParamType : 16;
 3468  ULONG ulStreamNum;
 3469  ULONGLONG ullAudioStreamOffset;
 3470  ULONG SerializedwParam;
 3471  LONG SerializedlParam;
 3472} SPSERIALIZEDEVENT;
 3473
 3474typedef struct SPSERIALIZEDEVENT64 {
 3475  SPEVENTENUM eEventId : 16;
 3476  SPEVENTLPARAMTYPE elParamType : 16;
 3477  ULONG ulStreamNum;
 3478  ULONGLONG ullAudioStreamOffset;
 3479  ULONGLONG SerializedwParam;
 3480  LONGLONG SerializedlParam;
 3481} SPSERIALIZEDEVENT64;
 3482#endif
 3483typedef struct SPEVENTSOURCEINFO {
 3484    ULONGLONG ullEventInterest;
 3485    ULONGLONG ullQueuedInterest;
 3486    ULONG ulCount;
 3487} SPEVENTSOURCEINFO;
 3488/*****************************************************************************
 3489 * ISpEventSource interface
 3490 */
 3491#ifndef __ISpEventSource_INTERFACE_DEFINED__
 3492#define __ISpEventSource_INTERFACE_DEFINED__
 3493
 3494DEFINE_GUID(IID_ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 3495#if defined(__cplusplus) && !defined(CINTERFACE)
 3496MIDL_INTERFACE("be7a9cce-5f9e-11d2-960f-00c04f8ee628")
 3497ISpEventSource : public ISpNotifySource
 3498{
 3499    virtual HRESULT STDMETHODCALLTYPE SetInterest(
 3500        ULONGLONG ullEventInterest,
 3501        ULONGLONG ullQueuedInterest) = 0;
 3502
 3503    virtual HRESULT STDMETHODCALLTYPE GetEvents(
 3504        ULONG ulCount,
 3505        SPEVENT *pEventArray,
 3506        ULONG *pulFetched) = 0;
 3507
 3508    virtual HRESULT STDMETHODCALLTYPE GetInfo(
 3509        SPEVENTSOURCEINFO *pInfo) = 0;
 3510
 3511};
 3512#ifdef __CRT_UUID_DECL
 3513__CRT_UUID_DECL(ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 3514#endif
 3515#else
 3516typedef struct ISpEventSourceVtbl {
 3517    BEGIN_INTERFACE
 3518
 3519    /*** IUnknown methods ***/
 3520    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3521        ISpEventSource *This,
 3522        REFIID riid,
 3523        void **ppvObject);
 3524
 3525    ULONG (STDMETHODCALLTYPE *AddRef)(
 3526        ISpEventSource *This);
 3527
 3528    ULONG (STDMETHODCALLTYPE *Release)(
 3529        ISpEventSource *This);
 3530
 3531    /*** ISpNotifySource methods ***/
 3532    HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
 3533        ISpEventSource *This,
 3534        ISpNotifySink *pNotifySink);
 3535
 3536    HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
 3537        ISpEventSource *This,
 3538        HWND hWnd,
 3539        UINT Msg,
 3540        WPARAM wParam,
 3541        LPARAM lParam);
 3542
 3543    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
 3544        ISpEventSource *This,
 3545        SPNOTIFYCALLBACK *pfnCallback,
 3546        WPARAM wParam,
 3547        LPARAM lParam);
 3548
 3549    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
 3550        ISpEventSource *This,
 3551        ISpNotifyCallback *pSpCallback,
 3552        WPARAM wParam,
 3553        LPARAM lParam);
 3554
 3555    HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
 3556        ISpEventSource *This);
 3557
 3558    HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
 3559        ISpEventSource *This,
 3560        DWORD dwMilliseconds);
 3561
 3562    HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
 3563        ISpEventSource *This);
 3564
 3565    /*** ISpEventSource methods ***/
 3566    HRESULT (STDMETHODCALLTYPE *SetInterest)(
 3567        ISpEventSource *This,
 3568        ULONGLONG ullEventInterest,
 3569        ULONGLONG ullQueuedInterest);
 3570
 3571    HRESULT (STDMETHODCALLTYPE *GetEvents)(
 3572        ISpEventSource *This,
 3573        ULONG ulCount,
 3574        SPEVENT *pEventArray,
 3575        ULONG *pulFetched);
 3576
 3577    HRESULT (STDMETHODCALLTYPE *GetInfo)(
 3578        ISpEventSource *This,
 3579        SPEVENTSOURCEINFO *pInfo);
 3580
 3581    END_INTERFACE
 3582} ISpEventSourceVtbl;
 3583
 3584interface ISpEventSource {
 3585    CONST_VTBL ISpEventSourceVtbl* lpVtbl;
 3586};
 3587
 3588#ifdef COBJMACROS
 3589#ifndef WIDL_C_INLINE_WRAPPERS
 3590/*** IUnknown methods ***/
 3591#define ISpEventSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3592#define ISpEventSource_AddRef(This) (This)->lpVtbl->AddRef(This)
 3593#define ISpEventSource_Release(This) (This)->lpVtbl->Release(This)
 3594/*** ISpNotifySource methods ***/
 3595#define ISpEventSource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
 3596#define ISpEventSource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
 3597#define ISpEventSource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
 3598#define ISpEventSource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
 3599#define ISpEventSource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
 3600#define ISpEventSource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
 3601#define ISpEventSource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
 3602/*** ISpEventSource methods ***/
 3603#define ISpEventSource_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
 3604#define ISpEventSource_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
 3605#define ISpEventSource_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
 3606#else
 3607/*** IUnknown methods ***/
 3608static inline HRESULT ISpEventSource_QueryInterface(ISpEventSource* This,REFIID riid,void **ppvObject) {
 3609    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3610}
 3611static inline ULONG ISpEventSource_AddRef(ISpEventSource* This) {
 3612    return This->lpVtbl->AddRef(This);
 3613}
 3614static inline ULONG ISpEventSource_Release(ISpEventSource* This) {
 3615    return This->lpVtbl->Release(This);
 3616}
 3617/*** ISpNotifySource methods ***/
 3618static inline HRESULT ISpEventSource_SetNotifySink(ISpEventSource* This,ISpNotifySink *pNotifySink) {
 3619    return This->lpVtbl->SetNotifySink(This,pNotifySink);
 3620}
 3621static inline HRESULT ISpEventSource_SetNotifyWindowMessage(ISpEventSource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 3622    return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
 3623}
 3624static inline HRESULT ISpEventSource_SetNotifyCallbackFunction(ISpEventSource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 3625    return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
 3626}
 3627static inline HRESULT ISpEventSource_SetNotifyCallbackInterface(ISpEventSource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 3628    return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
 3629}
 3630static inline HRESULT ISpEventSource_SetNotifyWin32Event(ISpEventSource* This) {
 3631    return This->lpVtbl->SetNotifyWin32Event(This);
 3632}
 3633static inline HRESULT ISpEventSource_WaitForNotifyEvent(ISpEventSource* This,DWORD dwMilliseconds) {
 3634    return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
 3635}
 3636static inline HANDLE ISpEventSource_GetNotifyEventHandle(ISpEventSource* This) {
 3637    return This->lpVtbl->GetNotifyEventHandle(This);
 3638}
 3639/*** ISpEventSource methods ***/
 3640static inline HRESULT ISpEventSource_SetInterest(ISpEventSource* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
 3641    return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
 3642}
 3643static inline HRESULT ISpEventSource_GetEvents(ISpEventSource* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
 3644    return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
 3645}
 3646static inline HRESULT ISpEventSource_GetInfo(ISpEventSource* This,SPEVENTSOURCEINFO *pInfo) {
 3647    return This->lpVtbl->GetInfo(This,pInfo);
 3648}
 3649#endif
 3650#endif
 3651
 3652#endif
 3653
 3654
 3655#endif  /* __ISpEventSource_INTERFACE_DEFINED__ */
 3656
 3657/*****************************************************************************
 3658 * ISpEventSink interface
 3659 */
 3660#ifndef __ISpEventSink_INTERFACE_DEFINED__
 3661#define __ISpEventSink_INTERFACE_DEFINED__
 3662
 3663DEFINE_GUID(IID_ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 3664#if defined(__cplusplus) && !defined(CINTERFACE)
 3665MIDL_INTERFACE("be7a9cc9-5f9e-11d2-960f-00c04f8ee628")
 3666ISpEventSink : public IUnknown
 3667{
 3668    virtual HRESULT STDMETHODCALLTYPE AddEvents(
 3669        const SPEVENT *pEventArray,
 3670        ULONG ulCount) = 0;
 3671
 3672    virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
 3673        ULONGLONG *pullEventInterest) = 0;
 3674
 3675};
 3676#ifdef __CRT_UUID_DECL
 3677__CRT_UUID_DECL(ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
 3678#endif
 3679#else
 3680typedef struct ISpEventSinkVtbl {
 3681    BEGIN_INTERFACE
 3682
 3683    /*** IUnknown methods ***/
 3684    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3685        ISpEventSink *This,
 3686        REFIID riid,
 3687        void **ppvObject);
 3688
 3689    ULONG (STDMETHODCALLTYPE *AddRef)(
 3690        ISpEventSink *This);
 3691
 3692    ULONG (STDMETHODCALLTYPE *Release)(
 3693        ISpEventSink *This);
 3694
 3695    /*** ISpEventSink methods ***/
 3696    HRESULT (STDMETHODCALLTYPE *AddEvents)(
 3697        ISpEventSink *This,
 3698        const SPEVENT *pEventArray,
 3699        ULONG ulCount);
 3700
 3701    HRESULT (STDMETHODCALLTYPE *GetEventInterest)(
 3702        ISpEventSink *This,
 3703        ULONGLONG *pullEventInterest);
 3704
 3705    END_INTERFACE
 3706} ISpEventSinkVtbl;
 3707
 3708interface ISpEventSink {
 3709    CONST_VTBL ISpEventSinkVtbl* lpVtbl;
 3710};
 3711
 3712#ifdef COBJMACROS
 3713#ifndef WIDL_C_INLINE_WRAPPERS
 3714/*** IUnknown methods ***/
 3715#define ISpEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3716#define ISpEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
 3717#define ISpEventSink_Release(This) (This)->lpVtbl->Release(This)
 3718/*** ISpEventSink methods ***/
 3719#define ISpEventSink_AddEvents(This,pEventArray,ulCount) (This)->lpVtbl->AddEvents(This,pEventArray,ulCount)
 3720#define ISpEventSink_GetEventInterest(This,pullEventInterest) (This)->lpVtbl->GetEventInterest(This,pullEventInterest)
 3721#else
 3722/*** IUnknown methods ***/
 3723static inline HRESULT ISpEventSink_QueryInterface(ISpEventSink* This,REFIID riid,void **ppvObject) {
 3724    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3725}
 3726static inline ULONG ISpEventSink_AddRef(ISpEventSink* This) {
 3727    return This->lpVtbl->AddRef(This);
 3728}
 3729static inline ULONG ISpEventSink_Release(ISpEventSink* This) {
 3730    return This->lpVtbl->Release(This);
 3731}
 3732/*** ISpEventSink methods ***/
 3733static inline HRESULT ISpEventSink_AddEvents(ISpEventSink* This,const SPEVENT *pEventArray,ULONG ulCount) {
 3734    return This->lpVtbl->AddEvents(This,pEventArray,ulCount);
 3735}
 3736static inline HRESULT ISpEventSink_GetEventInterest(ISpEventSink* This,ULONGLONG *pullEventInterest) {
 3737    return This->lpVtbl->GetEventInterest(This,pullEventInterest);
 3738}
 3739#endif
 3740#endif
 3741
 3742#endif
 3743
 3744
 3745#endif  /* __ISpEventSink_INTERFACE_DEFINED__ */
 3746
 3747/*****************************************************************************
 3748 * ISpStreamFormat interface
 3749 */
 3750#ifndef __ISpStreamFormat_INTERFACE_DEFINED__
 3751#define __ISpStreamFormat_INTERFACE_DEFINED__
 3752
 3753DEFINE_GUID(IID_ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f);
 3754#if defined(__cplusplus) && !defined(CINTERFACE)
 3755MIDL_INTERFACE("bed530be-2606-4f4d-a1c0-54c5cda5566f")
 3756ISpStreamFormat : public IStream
 3757{
 3758    virtual HRESULT STDMETHODCALLTYPE GetFormat(
 3759        GUID *pguidFormatId,
 3760        WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
 3761
 3762};
 3763#ifdef __CRT_UUID_DECL
 3764__CRT_UUID_DECL(ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f)
 3765#endif
 3766#else
 3767typedef struct ISpStreamFormatVtbl {
 3768    BEGIN_INTERFACE
 3769
 3770    /*** IUnknown methods ***/
 3771    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3772        ISpStreamFormat *This,
 3773        REFIID riid,
 3774        void **ppvObject);
 3775
 3776    ULONG (STDMETHODCALLTYPE *AddRef)(
 3777        ISpStreamFormat *This);
 3778
 3779    ULONG (STDMETHODCALLTYPE *Release)(
 3780        ISpStreamFormat *This);
 3781
 3782    /*** ISequentialStream methods ***/
 3783    HRESULT (STDMETHODCALLTYPE *Read)(
 3784        ISpStreamFormat *This,
 3785        void *pv,
 3786        ULONG cb,
 3787        ULONG *pcbRead);
 3788
 3789    HRESULT (STDMETHODCALLTYPE *Write)(
 3790        ISpStreamFormat *This,
 3791        const void *pv,
 3792        ULONG cb,
 3793        ULONG *pcbWritten);
 3794
 3795    /*** IStream methods ***/
 3796    HRESULT (STDMETHODCALLTYPE *Seek)(
 3797        ISpStreamFormat *This,
 3798        LARGE_INTEGER dlibMove,
 3799        DWORD dwOrigin,
 3800        ULARGE_INTEGER *plibNewPosition);
 3801
 3802    HRESULT (STDMETHODCALLTYPE *SetSize)(
 3803        ISpStreamFormat *This,
 3804        ULARGE_INTEGER libNewSize);
 3805
 3806    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 3807        ISpStreamFormat *This,
 3808        IStream *pstm,
 3809        ULARGE_INTEGER cb,
 3810        ULARGE_INTEGER *pcbRead,
 3811        ULARGE_INTEGER *pcbWritten);
 3812
 3813    HRESULT (STDMETHODCALLTYPE *Commit)(
 3814        ISpStreamFormat *This,
 3815        DWORD grfCommitFlags);
 3816
 3817    HRESULT (STDMETHODCALLTYPE *Revert)(
 3818        ISpStreamFormat *This);
 3819
 3820    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 3821        ISpStreamFormat *This,
 3822        ULARGE_INTEGER libOffset,
 3823        ULARGE_INTEGER cb,
 3824        DWORD dwLockType);
 3825
 3826    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 3827        ISpStreamFormat *This,
 3828        ULARGE_INTEGER libOffset,
 3829        ULARGE_INTEGER cb,
 3830        DWORD dwLockType);
 3831
 3832    HRESULT (STDMETHODCALLTYPE *Stat)(
 3833        ISpStreamFormat *This,
 3834        STATSTG *pstatstg,
 3835        DWORD grfStatFlag);
 3836
 3837    HRESULT (STDMETHODCALLTYPE *Clone)(
 3838        ISpStreamFormat *This,
 3839        IStream **ppstm);
 3840
 3841    /*** ISpStreamFormat methods ***/
 3842    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 3843        ISpStreamFormat *This,
 3844        GUID *pguidFormatId,
 3845        WAVEFORMATEX **ppCoMemWaveFormatEx);
 3846
 3847    END_INTERFACE
 3848} ISpStreamFormatVtbl;
 3849
 3850interface ISpStreamFormat {
 3851    CONST_VTBL ISpStreamFormatVtbl* lpVtbl;
 3852};
 3853
 3854#ifdef COBJMACROS
 3855#ifndef WIDL_C_INLINE_WRAPPERS
 3856/*** IUnknown methods ***/
 3857#define ISpStreamFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3858#define ISpStreamFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
 3859#define ISpStreamFormat_Release(This) (This)->lpVtbl->Release(This)
 3860/*** ISequentialStream methods ***/
 3861#define ISpStreamFormat_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 3862#define ISpStreamFormat_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 3863/*** IStream methods ***/
 3864#define ISpStreamFormat_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 3865#define ISpStreamFormat_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 3866#define ISpStreamFormat_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 3867#define ISpStreamFormat_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 3868#define ISpStreamFormat_Revert(This) (This)->lpVtbl->Revert(This)
 3869#define ISpStreamFormat_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 3870#define ISpStreamFormat_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 3871#define ISpStreamFormat_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 3872#define ISpStreamFormat_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 3873/*** ISpStreamFormat methods ***/
 3874#define ISpStreamFormat_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 3875#else
 3876/*** IUnknown methods ***/
 3877static inline HRESULT ISpStreamFormat_QueryInterface(ISpStreamFormat* This,REFIID riid,void **ppvObject) {
 3878    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3879}
 3880static inline ULONG ISpStreamFormat_AddRef(ISpStreamFormat* This) {
 3881    return This->lpVtbl->AddRef(This);
 3882}
 3883static inline ULONG ISpStreamFormat_Release(ISpStreamFormat* This) {
 3884    return This->lpVtbl->Release(This);
 3885}
 3886/*** ISequentialStream methods ***/
 3887static inline HRESULT ISpStreamFormat_Read(ISpStreamFormat* This,void *pv,ULONG cb,ULONG *pcbRead) {
 3888    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 3889}
 3890static inline HRESULT ISpStreamFormat_Write(ISpStreamFormat* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 3891    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 3892}
 3893/*** IStream methods ***/
 3894static inline HRESULT ISpStreamFormat_Seek(ISpStreamFormat* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 3895    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 3896}
 3897static inline HRESULT ISpStreamFormat_SetSize(ISpStreamFormat* This,ULARGE_INTEGER libNewSize) {
 3898    return This->lpVtbl->SetSize(This,libNewSize);
 3899}
 3900static inline HRESULT ISpStreamFormat_CopyTo(ISpStreamFormat* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 3901    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 3902}
 3903static inline HRESULT ISpStreamFormat_Commit(ISpStreamFormat* This,DWORD grfCommitFlags) {
 3904    return This->lpVtbl->Commit(This,grfCommitFlags);
 3905}
 3906static inline HRESULT ISpStreamFormat_Revert(ISpStreamFormat* This) {
 3907    return This->lpVtbl->Revert(This);
 3908}
 3909static inline HRESULT ISpStreamFormat_LockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 3910    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 3911}
 3912static inline HRESULT ISpStreamFormat_UnlockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 3913    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 3914}
 3915static inline HRESULT ISpStreamFormat_Stat(ISpStreamFormat* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 3916    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 3917}
 3918static inline HRESULT ISpStreamFormat_Clone(ISpStreamFormat* This,IStream **ppstm) {
 3919    return This->lpVtbl->Clone(This,ppstm);
 3920}
 3921/*** ISpStreamFormat methods ***/
 3922static inline HRESULT ISpStreamFormat_GetFormat(ISpStreamFormat* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 3923    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 3924}
 3925#endif
 3926#endif
 3927
 3928#endif
 3929
 3930
 3931#endif  /* __ISpStreamFormat_INTERFACE_DEFINED__ */
 3932
 3933/*****************************************************************************
 3934 * ISpStream interface
 3935 */
 3936#ifndef __ISpStream_INTERFACE_DEFINED__
 3937#define __ISpStream_INTERFACE_DEFINED__
 3938
 3939DEFINE_GUID(IID_ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e);
 3940#if defined(__cplusplus) && !defined(CINTERFACE)
 3941MIDL_INTERFACE("12e3cca9-7518-44c5-a5e7-ba5a79cb929e")
 3942ISpStream : public ISpStreamFormat
 3943{
 3944    virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
 3945        IStream *pStream,
 3946        REFGUID rguidFormat,
 3947        const WAVEFORMATEX *pWaveFormatEx) = 0;
 3948
 3949    virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
 3950        IStream **ppStream) = 0;
 3951
 3952    virtual HRESULT STDMETHODCALLTYPE BindToFile(
 3953        LPCWSTR pszFileName,
 3954        SPFILEMODE eMode,
 3955        const GUID *pFormatId,
 3956        const WAVEFORMATEX *pWaveFormatEx,
 3957        ULONGLONG ullEventInterest) = 0;
 3958
 3959    virtual HRESULT STDMETHODCALLTYPE Close(
 3960        ) = 0;
 3961
 3962};
 3963#ifdef __CRT_UUID_DECL
 3964__CRT_UUID_DECL(ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e)
 3965#endif
 3966#else
 3967typedef struct ISpStreamVtbl {
 3968    BEGIN_INTERFACE
 3969
 3970    /*** IUnknown methods ***/
 3971    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3972        ISpStream *This,
 3973        REFIID riid,
 3974        void **ppvObject);
 3975
 3976    ULONG (STDMETHODCALLTYPE *AddRef)(
 3977        ISpStream *This);
 3978
 3979    ULONG (STDMETHODCALLTYPE *Release)(
 3980        ISpStream *This);
 3981
 3982    /*** ISequentialStream methods ***/
 3983    HRESULT (STDMETHODCALLTYPE *Read)(
 3984        ISpStream *This,
 3985        void *pv,
 3986        ULONG cb,
 3987        ULONG *pcbRead);
 3988
 3989    HRESULT (STDMETHODCALLTYPE *Write)(
 3990        ISpStream *This,
 3991        const void *pv,
 3992        ULONG cb,
 3993        ULONG *pcbWritten);
 3994
 3995    /*** IStream methods ***/
 3996    HRESULT (STDMETHODCALLTYPE *Seek)(
 3997        ISpStream *This,
 3998        LARGE_INTEGER dlibMove,
 3999        DWORD dwOrigin,
 4000        ULARGE_INTEGER *plibNewPosition);
 4001
 4002    HRESULT (STDMETHODCALLTYPE *SetSize)(
 4003        ISpStream *This,
 4004        ULARGE_INTEGER libNewSize);
 4005
 4006    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 4007        ISpStream *This,
 4008        IStream *pstm,
 4009        ULARGE_INTEGER cb,
 4010        ULARGE_INTEGER *pcbRead,
 4011        ULARGE_INTEGER *pcbWritten);
 4012
 4013    HRESULT (STDMETHODCALLTYPE *Commit)(
 4014        ISpStream *This,
 4015        DWORD grfCommitFlags);
 4016
 4017    HRESULT (STDMETHODCALLTYPE *Revert)(
 4018        ISpStream *This);
 4019
 4020    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 4021        ISpStream *This,
 4022        ULARGE_INTEGER libOffset,
 4023        ULARGE_INTEGER cb,
 4024        DWORD dwLockType);
 4025
 4026    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 4027        ISpStream *This,
 4028        ULARGE_INTEGER libOffset,
 4029        ULARGE_INTEGER cb,
 4030        DWORD dwLockType);
 4031
 4032    HRESULT (STDMETHODCALLTYPE *Stat)(
 4033        ISpStream *This,
 4034        STATSTG *pstatstg,
 4035        DWORD grfStatFlag);
 4036
 4037    HRESULT (STDMETHODCALLTYPE *Clone)(
 4038        ISpStream *This,
 4039        IStream **ppstm);
 4040
 4041    /*** ISpStreamFormat methods ***/
 4042    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 4043        ISpStream *This,
 4044        GUID *pguidFormatId,
 4045        WAVEFORMATEX **ppCoMemWaveFormatEx);
 4046
 4047    /*** ISpStream methods ***/
 4048    HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
 4049        ISpStream *This,
 4050        IStream *pStream,
 4051        REFGUID rguidFormat,
 4052        const WAVEFORMATEX *pWaveFormatEx);
 4053
 4054    HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
 4055        ISpStream *This,
 4056        IStream **ppStream);
 4057
 4058    HRESULT (STDMETHODCALLTYPE *BindToFile)(
 4059        ISpStream *This,
 4060        LPCWSTR pszFileName,
 4061        SPFILEMODE eMode,
 4062        const GUID *pFormatId,
 4063        const WAVEFORMATEX *pWaveFormatEx,
 4064        ULONGLONG ullEventInterest);
 4065
 4066    HRESULT (STDMETHODCALLTYPE *Close)(
 4067        ISpStream *This);
 4068
 4069    END_INTERFACE
 4070} ISpStreamVtbl;
 4071
 4072interface ISpStream {
 4073    CONST_VTBL ISpStreamVtbl* lpVtbl;
 4074};
 4075
 4076#ifdef COBJMACROS
 4077#ifndef WIDL_C_INLINE_WRAPPERS
 4078/*** IUnknown methods ***/
 4079#define ISpStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4080#define ISpStream_AddRef(This) (This)->lpVtbl->AddRef(This)
 4081#define ISpStream_Release(This) (This)->lpVtbl->Release(This)
 4082/*** ISequentialStream methods ***/
 4083#define ISpStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 4084#define ISpStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 4085/*** IStream methods ***/
 4086#define ISpStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 4087#define ISpStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 4088#define ISpStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 4089#define ISpStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 4090#define ISpStream_Revert(This) (This)->lpVtbl->Revert(This)
 4091#define ISpStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 4092#define ISpStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 4093#define ISpStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 4094#define ISpStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 4095/*** ISpStreamFormat methods ***/
 4096#define ISpStream_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 4097/*** ISpStream methods ***/
 4098#define ISpStream_SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx) (This)->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx)
 4099#define ISpStream_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
 4100#define ISpStream_BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest) (This)->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest)
 4101#define ISpStream_Close(This) (This)->lpVtbl->Close(This)
 4102#else
 4103/*** IUnknown methods ***/
 4104static inline HRESULT ISpStream_QueryInterface(ISpStream* This,REFIID riid,void **ppvObject) {
 4105    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4106}
 4107static inline ULONG ISpStream_AddRef(ISpStream* This) {
 4108    return This->lpVtbl->AddRef(This);
 4109}
 4110static inline ULONG ISpStream_Release(ISpStream* This) {
 4111    return This->lpVtbl->Release(This);
 4112}
 4113/*** ISequentialStream methods ***/
 4114static inline HRESULT ISpStream_Read(ISpStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
 4115    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 4116}
 4117static inline HRESULT ISpStream_Write(ISpStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 4118    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 4119}
 4120/*** IStream methods ***/
 4121static inline HRESULT ISpStream_Seek(ISpStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 4122    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 4123}
 4124static inline HRESULT ISpStream_SetSize(ISpStream* This,ULARGE_INTEGER libNewSize) {
 4125    return This->lpVtbl->SetSize(This,libNewSize);
 4126}
 4127static inline HRESULT ISpStream_CopyTo(ISpStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 4128    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 4129}
 4130static inline HRESULT ISpStream_Commit(ISpStream* This,DWORD grfCommitFlags) {
 4131    return This->lpVtbl->Commit(This,grfCommitFlags);
 4132}
 4133static inline HRESULT ISpStream_Revert(ISpStream* This) {
 4134    return This->lpVtbl->Revert(This);
 4135}
 4136static inline HRESULT ISpStream_LockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4137    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 4138}
 4139static inline HRESULT ISpStream_UnlockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4140    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 4141}
 4142static inline HRESULT ISpStream_Stat(ISpStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 4143    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 4144}
 4145static inline HRESULT ISpStream_Clone(ISpStream* This,IStream **ppstm) {
 4146    return This->lpVtbl->Clone(This,ppstm);
 4147}
 4148/*** ISpStreamFormat methods ***/
 4149static inline HRESULT ISpStream_GetFormat(ISpStream* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 4150    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 4151}
 4152/*** ISpStream methods ***/
 4153static inline HRESULT ISpStream_SetBaseStream(ISpStream* This,IStream *pStream,REFGUID rguidFormat,const WAVEFORMATEX *pWaveFormatEx) {
 4154    return This->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx);
 4155}
 4156static inline HRESULT ISpStream_GetBaseStream(ISpStream* This,IStream **ppStream) {
 4157    return This->lpVtbl->GetBaseStream(This,ppStream);
 4158}
 4159static inline HRESULT ISpStream_BindToFile(ISpStream* This,LPCWSTR pszFileName,SPFILEMODE eMode,const GUID *pFormatId,const WAVEFORMATEX *pWaveFormatEx,ULONGLONG ullEventInterest) {
 4160    return This->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest);
 4161}
 4162static inline HRESULT ISpStream_Close(ISpStream* This) {
 4163    return This->lpVtbl->Close(This);
 4164}
 4165#endif
 4166#endif
 4167
 4168#endif
 4169
 4170
 4171#endif  /* __ISpStream_INTERFACE_DEFINED__ */
 4172
 4173/*****************************************************************************
 4174 * ISpStreamFormatConverter interface
 4175 */
 4176#ifndef __ISpStreamFormatConverter_INTERFACE_DEFINED__
 4177#define __ISpStreamFormatConverter_INTERFACE_DEFINED__
 4178
 4179DEFINE_GUID(IID_ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29);
 4180#if defined(__cplusplus) && !defined(CINTERFACE)
 4181MIDL_INTERFACE("678a932c-ea71-4446-9b41-78fda6280a29")
 4182ISpStreamFormatConverter : public ISpStreamFormat
 4183{
 4184    virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
 4185        ISpStreamFormat *pStream,
 4186        WINBOOL fSetFormatToBaseStreamFormat,
 4187        WINBOOL fWriteToBaseStream) = 0;
 4188
 4189    virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
 4190        ISpStreamFormat **ppStream) = 0;
 4191
 4192    virtual HRESULT STDMETHODCALLTYPE SetFormat(
 4193        REFGUID rguidFormatIdOfConvertedStream,
 4194        const WAVEFORMATEX *pWaveFormatExOfConvertedStream) = 0;
 4195
 4196    virtual HRESULT STDMETHODCALLTYPE ResetSeekPosition(
 4197        ) = 0;
 4198
 4199    virtual HRESULT STDMETHODCALLTYPE ScaleConvertedToBaseOffset(
 4200        ULONGLONG ullOffsetConvertedStream,
 4201        ULONGLONG *pullOffsetBaseStream) = 0;
 4202
 4203    virtual HRESULT STDMETHODCALLTYPE ScaleBaseToConvertedOffset(
 4204        ULONGLONG ullOffsetBaseStream,
 4205        ULONGLONG *pullOffsetConvertedStream) = 0;
 4206
 4207};
 4208#ifdef __CRT_UUID_DECL
 4209__CRT_UUID_DECL(ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29)
 4210#endif
 4211#else
 4212typedef struct ISpStreamFormatConverterVtbl {
 4213    BEGIN_INTERFACE
 4214
 4215    /*** IUnknown methods ***/
 4216    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4217        ISpStreamFormatConverter *This,
 4218        REFIID riid,
 4219        void **ppvObject);
 4220
 4221    ULONG (STDMETHODCALLTYPE *AddRef)(
 4222        ISpStreamFormatConverter *This);
 4223
 4224    ULONG (STDMETHODCALLTYPE *Release)(
 4225        ISpStreamFormatConverter *This);
 4226
 4227    /*** ISequentialStream methods ***/
 4228    HRESULT (STDMETHODCALLTYPE *Read)(
 4229        ISpStreamFormatConverter *This,
 4230        void *pv,
 4231        ULONG cb,
 4232        ULONG *pcbRead);
 4233
 4234    HRESULT (STDMETHODCALLTYPE *Write)(
 4235        ISpStreamFormatConverter *This,
 4236        const void *pv,
 4237        ULONG cb,
 4238        ULONG *pcbWritten);
 4239
 4240    /*** IStream methods ***/
 4241    HRESULT (STDMETHODCALLTYPE *Seek)(
 4242        ISpStreamFormatConverter *This,
 4243        LARGE_INTEGER dlibMove,
 4244        DWORD dwOrigin,
 4245        ULARGE_INTEGER *plibNewPosition);
 4246
 4247    HRESULT (STDMETHODCALLTYPE *SetSize)(
 4248        ISpStreamFormatConverter *This,
 4249        ULARGE_INTEGER libNewSize);
 4250
 4251    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 4252        ISpStreamFormatConverter *This,
 4253        IStream *pstm,
 4254        ULARGE_INTEGER cb,
 4255        ULARGE_INTEGER *pcbRead,
 4256        ULARGE_INTEGER *pcbWritten);
 4257
 4258    HRESULT (STDMETHODCALLTYPE *Commit)(
 4259        ISpStreamFormatConverter *This,
 4260        DWORD grfCommitFlags);
 4261
 4262    HRESULT (STDMETHODCALLTYPE *Revert)(
 4263        ISpStreamFormatConverter *This);
 4264
 4265    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 4266        ISpStreamFormatConverter *This,
 4267        ULARGE_INTEGER libOffset,
 4268        ULARGE_INTEGER cb,
 4269        DWORD dwLockType);
 4270
 4271    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 4272        ISpStreamFormatConverter *This,
 4273        ULARGE_INTEGER libOffset,
 4274        ULARGE_INTEGER cb,
 4275        DWORD dwLockType);
 4276
 4277    HRESULT (STDMETHODCALLTYPE *Stat)(
 4278        ISpStreamFormatConverter *This,
 4279        STATSTG *pstatstg,
 4280        DWORD grfStatFlag);
 4281
 4282    HRESULT (STDMETHODCALLTYPE *Clone)(
 4283        ISpStreamFormatConverter *This,
 4284        IStream **ppstm);
 4285
 4286    /*** ISpStreamFormat methods ***/
 4287    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 4288        ISpStreamFormatConverter *This,
 4289        GUID *pguidFormatId,
 4290        WAVEFORMATEX **ppCoMemWaveFormatEx);
 4291
 4292    /*** ISpStreamFormatConverter methods ***/
 4293    HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
 4294        ISpStreamFormatConverter *This,
 4295        ISpStreamFormat *pStream,
 4296        WINBOOL fSetFormatToBaseStreamFormat,
 4297        WINBOOL fWriteToBaseStream);
 4298
 4299    HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
 4300        ISpStreamFormatConverter *This,
 4301        ISpStreamFormat **ppStream);
 4302
 4303    HRESULT (STDMETHODCALLTYPE *SetFormat)(
 4304        ISpStreamFormatConverter *This,
 4305        REFGUID rguidFormatIdOfConvertedStream,
 4306        const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
 4307
 4308    HRESULT (STDMETHODCALLTYPE *ResetSeekPosition)(
 4309        ISpStreamFormatConverter *This);
 4310
 4311    HRESULT (STDMETHODCALLTYPE *ScaleConvertedToBaseOffset)(
 4312        ISpStreamFormatConverter *This,
 4313        ULONGLONG ullOffsetConvertedStream,
 4314        ULONGLONG *pullOffsetBaseStream);
 4315
 4316    HRESULT (STDMETHODCALLTYPE *ScaleBaseToConvertedOffset)(
 4317        ISpStreamFormatConverter *This,
 4318        ULONGLONG ullOffsetBaseStream,
 4319        ULONGLONG *pullOffsetConvertedStream);
 4320
 4321    END_INTERFACE
 4322} ISpStreamFormatConverterVtbl;
 4323
 4324interface ISpStreamFormatConverter {
 4325    CONST_VTBL ISpStreamFormatConverterVtbl* lpVtbl;
 4326};
 4327
 4328#ifdef COBJMACROS
 4329#ifndef WIDL_C_INLINE_WRAPPERS
 4330/*** IUnknown methods ***/
 4331#define ISpStreamFormatConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4332#define ISpStreamFormatConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
 4333#define ISpStreamFormatConverter_Release(This) (This)->lpVtbl->Release(This)
 4334/*** ISequentialStream methods ***/
 4335#define ISpStreamFormatConverter_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 4336#define ISpStreamFormatConverter_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 4337/*** IStream methods ***/
 4338#define ISpStreamFormatConverter_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 4339#define ISpStreamFormatConverter_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 4340#define ISpStreamFormatConverter_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 4341#define ISpStreamFormatConverter_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 4342#define ISpStreamFormatConverter_Revert(This) (This)->lpVtbl->Revert(This)
 4343#define ISpStreamFormatConverter_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 4344#define ISpStreamFormatConverter_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 4345#define ISpStreamFormatConverter_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 4346#define ISpStreamFormatConverter_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 4347/*** ISpStreamFormat methods ***/
 4348#define ISpStreamFormatConverter_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 4349/*** ISpStreamFormatConverter methods ***/
 4350#define ISpStreamFormatConverter_SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream) (This)->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream)
 4351#define ISpStreamFormatConverter_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
 4352#define ISpStreamFormatConverter_SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream) (This)->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream)
 4353#define ISpStreamFormatConverter_ResetSeekPosition(This) (This)->lpVtbl->ResetSeekPosition(This)
 4354#define ISpStreamFormatConverter_ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream) (This)->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream)
 4355#define ISpStreamFormatConverter_ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream) (This)->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream)
 4356#else
 4357/*** IUnknown methods ***/
 4358static inline HRESULT ISpStreamFormatConverter_QueryInterface(ISpStreamFormatConverter* This,REFIID riid,void **ppvObject) {
 4359    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4360}
 4361static inline ULONG ISpStreamFormatConverter_AddRef(ISpStreamFormatConverter* This) {
 4362    return This->lpVtbl->AddRef(This);
 4363}
 4364static inline ULONG ISpStreamFormatConverter_Release(ISpStreamFormatConverter* This) {
 4365    return This->lpVtbl->Release(This);
 4366}
 4367/*** ISequentialStream methods ***/
 4368static inline HRESULT ISpStreamFormatConverter_Read(ISpStreamFormatConverter* This,void *pv,ULONG cb,ULONG *pcbRead) {
 4369    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 4370}
 4371static inline HRESULT ISpStreamFormatConverter_Write(ISpStreamFormatConverter* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 4372    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 4373}
 4374/*** IStream methods ***/
 4375static inline HRESULT ISpStreamFormatConverter_Seek(ISpStreamFormatConverter* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 4376    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 4377}
 4378static inline HRESULT ISpStreamFormatConverter_SetSize(ISpStreamFormatConverter* This,ULARGE_INTEGER libNewSize) {
 4379    return This->lpVtbl->SetSize(This,libNewSize);
 4380}
 4381static inline HRESULT ISpStreamFormatConverter_CopyTo(ISpStreamFormatConverter* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 4382    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 4383}
 4384static inline HRESULT ISpStreamFormatConverter_Commit(ISpStreamFormatConverter* This,DWORD grfCommitFlags) {
 4385    return This->lpVtbl->Commit(This,grfCommitFlags);
 4386}
 4387static inline HRESULT ISpStreamFormatConverter_Revert(ISpStreamFormatConverter* This) {
 4388    return This->lpVtbl->Revert(This);
 4389}
 4390static inline HRESULT ISpStreamFormatConverter_LockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4391    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 4392}
 4393static inline HRESULT ISpStreamFormatConverter_UnlockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4394    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 4395}
 4396static inline HRESULT ISpStreamFormatConverter_Stat(ISpStreamFormatConverter* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 4397    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 4398}
 4399static inline HRESULT ISpStreamFormatConverter_Clone(ISpStreamFormatConverter* This,IStream **ppstm) {
 4400    return This->lpVtbl->Clone(This,ppstm);
 4401}
 4402/*** ISpStreamFormat methods ***/
 4403static inline HRESULT ISpStreamFormatConverter_GetFormat(ISpStreamFormatConverter* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 4404    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 4405}
 4406/*** ISpStreamFormatConverter methods ***/
 4407static inline HRESULT ISpStreamFormatConverter_SetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat *pStream,WINBOOL fSetFormatToBaseStreamFormat,WINBOOL fWriteToBaseStream) {
 4408    return This->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream);
 4409}
 4410static inline HRESULT ISpStreamFormatConverter_GetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat **ppStream) {
 4411    return This->lpVtbl->GetBaseStream(This,ppStream);
 4412}
 4413static inline HRESULT ISpStreamFormatConverter_SetFormat(ISpStreamFormatConverter* This,REFGUID rguidFormatIdOfConvertedStream,const WAVEFORMATEX *pWaveFormatExOfConvertedStream) {
 4414    return This->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream);
 4415}
 4416static inline HRESULT ISpStreamFormatConverter_ResetSeekPosition(ISpStreamFormatConverter* This) {
 4417    return This->lpVtbl->ResetSeekPosition(This);
 4418}
 4419static inline HRESULT ISpStreamFormatConverter_ScaleConvertedToBaseOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetConvertedStream,ULONGLONG *pullOffsetBaseStream) {
 4420    return This->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream);
 4421}
 4422static inline HRESULT ISpStreamFormatConverter_ScaleBaseToConvertedOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetBaseStream,ULONGLONG *pullOffsetConvertedStream) {
 4423    return This->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream);
 4424}
 4425#endif
 4426#endif
 4427
 4428#endif
 4429
 4430
 4431#endif  /* __ISpStreamFormatConverter_INTERFACE_DEFINED__ */
 4432
 4433typedef struct SPAUDIOSTATUS {
 4434    LONG cbFreeBuffSpace;
 4435    ULONG cbNonBlockingIO;
 4436    SPAUDIOSTATE State;
 4437    ULONGLONG CurSeekPos;
 4438    ULONGLONG CurDevicePos;
 4439    DWORD dwAudioLevel;
 4440    DWORD dwReserved2;
 4441} SPAUDIOSTATUS;
 4442typedef struct SPAUDIOBUFFERINFO {
 4443    ULONG ulMsMinNotification;
 4444    ULONG ulMsBufferSize;
 4445    ULONG ulMsEventBias;
 4446} SPAUDIOBUFFERINFO;
 4447/*****************************************************************************
 4448 * ISpAudio interface
 4449 */
 4450#ifndef __ISpAudio_INTERFACE_DEFINED__
 4451#define __ISpAudio_INTERFACE_DEFINED__
 4452
 4453DEFINE_GUID(IID_ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52);
 4454#if defined(__cplusplus) && !defined(CINTERFACE)
 4455MIDL_INTERFACE("c05c768f-fae8-4ec2-8e07-338321c12452")
 4456ISpAudio : public ISpStreamFormat
 4457{
 4458    virtual HRESULT STDMETHODCALLTYPE SetState(
 4459        SPAUDIOSTATE NewState,
 4460        ULONGLONG ullReserved) = 0;
 4461
 4462    virtual HRESULT STDMETHODCALLTYPE SetFormat(
 4463        REFGUID rguidFmtId,
 4464        const WAVEFORMATEX *pWaveFormatEx) = 0;
 4465
 4466    virtual HRESULT STDMETHODCALLTYPE GetStatus(
 4467        SPAUDIOSTATUS *pStatus) = 0;
 4468
 4469    virtual HRESULT STDMETHODCALLTYPE SetBufferInfo(
 4470        const SPAUDIOBUFFERINFO *pBuffInfo) = 0;
 4471
 4472    virtual HRESULT STDMETHODCALLTYPE GetBufferInfo(
 4473        SPAUDIOBUFFERINFO *pBuffInfo) = 0;
 4474
 4475    virtual HRESULT STDMETHODCALLTYPE GetDefaultFormat(
 4476        GUID *pFormatId,
 4477        WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
 4478
 4479    virtual HANDLE STDMETHODCALLTYPE EventHandle(
 4480        ) = 0;
 4481
 4482    virtual HRESULT STDMETHODCALLTYPE GetVolumeLevel(
 4483        ULONG *pLevel) = 0;
 4484
 4485    virtual HRESULT STDMETHODCALLTYPE SetVolumeLevel(
 4486        ULONG Level) = 0;
 4487
 4488    virtual HRESULT STDMETHODCALLTYPE GetBufferNotifySize(
 4489        ULONG *pcbSize) = 0;
 4490
 4491    virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
 4492        ULONG cbSize) = 0;
 4493
 4494};
 4495#ifdef __CRT_UUID_DECL
 4496__CRT_UUID_DECL(ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52)
 4497#endif
 4498#else
 4499typedef struct ISpAudioVtbl {
 4500    BEGIN_INTERFACE
 4501
 4502    /*** IUnknown methods ***/
 4503    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4504        ISpAudio *This,
 4505        REFIID riid,
 4506        void **ppvObject);
 4507
 4508    ULONG (STDMETHODCALLTYPE *AddRef)(
 4509        ISpAudio *This);
 4510
 4511    ULONG (STDMETHODCALLTYPE *Release)(
 4512        ISpAudio *This);
 4513
 4514    /*** ISequentialStream methods ***/
 4515    HRESULT (STDMETHODCALLTYPE *Read)(
 4516        ISpAudio *This,
 4517        void *pv,
 4518        ULONG cb,
 4519        ULONG *pcbRead);
 4520
 4521    HRESULT (STDMETHODCALLTYPE *Write)(
 4522        ISpAudio *This,
 4523        const void *pv,
 4524        ULONG cb,
 4525        ULONG *pcbWritten);
 4526
 4527    /*** IStream methods ***/
 4528    HRESULT (STDMETHODCALLTYPE *Seek)(
 4529        ISpAudio *This,
 4530        LARGE_INTEGER dlibMove,
 4531        DWORD dwOrigin,
 4532        ULARGE_INTEGER *plibNewPosition);
 4533
 4534    HRESULT (STDMETHODCALLTYPE *SetSize)(
 4535        ISpAudio *This,
 4536        ULARGE_INTEGER libNewSize);
 4537
 4538    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 4539        ISpAudio *This,
 4540        IStream *pstm,
 4541        ULARGE_INTEGER cb,
 4542        ULARGE_INTEGER *pcbRead,
 4543        ULARGE_INTEGER *pcbWritten);
 4544
 4545    HRESULT (STDMETHODCALLTYPE *Commit)(
 4546        ISpAudio *This,
 4547        DWORD grfCommitFlags);
 4548
 4549    HRESULT (STDMETHODCALLTYPE *Revert)(
 4550        ISpAudio *This);
 4551
 4552    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 4553        ISpAudio *This,
 4554        ULARGE_INTEGER libOffset,
 4555        ULARGE_INTEGER cb,
 4556        DWORD dwLockType);
 4557
 4558    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 4559        ISpAudio *This,
 4560        ULARGE_INTEGER libOffset,
 4561        ULARGE_INTEGER cb,
 4562        DWORD dwLockType);
 4563
 4564    HRESULT (STDMETHODCALLTYPE *Stat)(
 4565        ISpAudio *This,
 4566        STATSTG *pstatstg,
 4567        DWORD grfStatFlag);
 4568
 4569    HRESULT (STDMETHODCALLTYPE *Clone)(
 4570        ISpAudio *This,
 4571        IStream **ppstm);
 4572
 4573    /*** ISpStreamFormat methods ***/
 4574    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 4575        ISpAudio *This,
 4576        GUID *pguidFormatId,
 4577        WAVEFORMATEX **ppCoMemWaveFormatEx);
 4578
 4579    /*** ISpAudio methods ***/
 4580    HRESULT (STDMETHODCALLTYPE *SetState)(
 4581        ISpAudio *This,
 4582        SPAUDIOSTATE NewState,
 4583        ULONGLONG ullReserved);
 4584
 4585    HRESULT (STDMETHODCALLTYPE *SetFormat)(
 4586        ISpAudio *This,
 4587        REFGUID rguidFmtId,
 4588        const WAVEFORMATEX *pWaveFormatEx);
 4589
 4590    HRESULT (STDMETHODCALLTYPE *GetStatus)(
 4591        ISpAudio *This,
 4592        SPAUDIOSTATUS *pStatus);
 4593
 4594    HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
 4595        ISpAudio *This,
 4596        const SPAUDIOBUFFERINFO *pBuffInfo);
 4597
 4598    HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
 4599        ISpAudio *This,
 4600        SPAUDIOBUFFERINFO *pBuffInfo);
 4601
 4602    HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
 4603        ISpAudio *This,
 4604        GUID *pFormatId,
 4605        WAVEFORMATEX **ppCoMemWaveFormatEx);
 4606
 4607    HANDLE (STDMETHODCALLTYPE *EventHandle)(
 4608        ISpAudio *This);
 4609
 4610    HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
 4611        ISpAudio *This,
 4612        ULONG *pLevel);
 4613
 4614    HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
 4615        ISpAudio *This,
 4616        ULONG Level);
 4617
 4618    HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
 4619        ISpAudio *This,
 4620        ULONG *pcbSize);
 4621
 4622    HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
 4623        ISpAudio *This,
 4624        ULONG cbSize);
 4625
 4626    END_INTERFACE
 4627} ISpAudioVtbl;
 4628
 4629interface ISpAudio {
 4630    CONST_VTBL ISpAudioVtbl* lpVtbl;
 4631};
 4632
 4633#ifdef COBJMACROS
 4634#ifndef WIDL_C_INLINE_WRAPPERS
 4635/*** IUnknown methods ***/
 4636#define ISpAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4637#define ISpAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
 4638#define ISpAudio_Release(This) (This)->lpVtbl->Release(This)
 4639/*** ISequentialStream methods ***/
 4640#define ISpAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 4641#define ISpAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 4642/*** IStream methods ***/
 4643#define ISpAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 4644#define ISpAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 4645#define ISpAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 4646#define ISpAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 4647#define ISpAudio_Revert(This) (This)->lpVtbl->Revert(This)
 4648#define ISpAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 4649#define ISpAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 4650#define ISpAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 4651#define ISpAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 4652/*** ISpStreamFormat methods ***/
 4653#define ISpAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 4654/*** ISpAudio methods ***/
 4655#define ISpAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
 4656#define ISpAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
 4657#define ISpAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
 4658#define ISpAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
 4659#define ISpAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
 4660#define ISpAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
 4661#define ISpAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
 4662#define ISpAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
 4663#define ISpAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
 4664#define ISpAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
 4665#define ISpAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
 4666#else
 4667/*** IUnknown methods ***/
 4668static inline HRESULT ISpAudio_QueryInterface(ISpAudio* This,REFIID riid,void **ppvObject) {
 4669    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4670}
 4671static inline ULONG ISpAudio_AddRef(ISpAudio* This) {
 4672    return This->lpVtbl->AddRef(This);
 4673}
 4674static inline ULONG ISpAudio_Release(ISpAudio* This) {
 4675    return This->lpVtbl->Release(This);
 4676}
 4677/*** ISequentialStream methods ***/
 4678static inline HRESULT ISpAudio_Read(ISpAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
 4679    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 4680}
 4681static inline HRESULT ISpAudio_Write(ISpAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 4682    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 4683}
 4684/*** IStream methods ***/
 4685static inline HRESULT ISpAudio_Seek(ISpAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 4686    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 4687}
 4688static inline HRESULT ISpAudio_SetSize(ISpAudio* This,ULARGE_INTEGER libNewSize) {
 4689    return This->lpVtbl->SetSize(This,libNewSize);
 4690}
 4691static inline HRESULT ISpAudio_CopyTo(ISpAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 4692    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 4693}
 4694static inline HRESULT ISpAudio_Commit(ISpAudio* This,DWORD grfCommitFlags) {
 4695    return This->lpVtbl->Commit(This,grfCommitFlags);
 4696}
 4697static inline HRESULT ISpAudio_Revert(ISpAudio* This) {
 4698    return This->lpVtbl->Revert(This);
 4699}
 4700static inline HRESULT ISpAudio_LockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4701    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 4702}
 4703static inline HRESULT ISpAudio_UnlockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 4704    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 4705}
 4706static inline HRESULT ISpAudio_Stat(ISpAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 4707    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 4708}
 4709static inline HRESULT ISpAudio_Clone(ISpAudio* This,IStream **ppstm) {
 4710    return This->lpVtbl->Clone(This,ppstm);
 4711}
 4712/*** ISpStreamFormat methods ***/
 4713static inline HRESULT ISpAudio_GetFormat(ISpAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 4714    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 4715}
 4716/*** ISpAudio methods ***/
 4717static inline HRESULT ISpAudio_SetState(ISpAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
 4718    return This->lpVtbl->SetState(This,NewState,ullReserved);
 4719}
 4720static inline HRESULT ISpAudio_SetFormat(ISpAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
 4721    return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
 4722}
 4723static inline HRESULT ISpAudio_GetStatus(ISpAudio* This,SPAUDIOSTATUS *pStatus) {
 4724    return This->lpVtbl->GetStatus(This,pStatus);
 4725}
 4726static inline HRESULT ISpAudio_SetBufferInfo(ISpAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
 4727    return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
 4728}
 4729static inline HRESULT ISpAudio_GetBufferInfo(ISpAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
 4730    return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
 4731}
 4732static inline HRESULT ISpAudio_GetDefaultFormat(ISpAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 4733    return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
 4734}
 4735static inline HANDLE ISpAudio_EventHandle(ISpAudio* This) {
 4736    return This->lpVtbl->EventHandle(This);
 4737}
 4738static inline HRESULT ISpAudio_GetVolumeLevel(ISpAudio* This,ULONG *pLevel) {
 4739    return This->lpVtbl->GetVolumeLevel(This,pLevel);
 4740}
 4741static inline HRESULT ISpAudio_SetVolumeLevel(ISpAudio* This,ULONG Level) {
 4742    return This->lpVtbl->SetVolumeLevel(This,Level);
 4743}
 4744static inline HRESULT ISpAudio_GetBufferNotifySize(ISpAudio* This,ULONG *pcbSize) {
 4745    return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
 4746}
 4747static inline HRESULT ISpAudio_SetBufferNotifySize(ISpAudio* This,ULONG cbSize) {
 4748    return This->lpVtbl->SetBufferNotifySize(This,cbSize);
 4749}
 4750#endif
 4751#endif
 4752
 4753#endif
 4754
 4755
 4756#endif  /* __ISpAudio_INTERFACE_DEFINED__ */
 4757
 4758/*****************************************************************************
 4759 * ISpMMSysAudio interface
 4760 */
 4761#ifndef __ISpMMSysAudio_INTERFACE_DEFINED__
 4762#define __ISpMMSysAudio_INTERFACE_DEFINED__
 4763
 4764DEFINE_GUID(IID_ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab);
 4765#if defined(__cplusplus) && !defined(CINTERFACE)
 4766MIDL_INTERFACE("15806f6e-1d70-4b48-98e6-3b1a007509ab")
 4767ISpMMSysAudio : public ISpAudio
 4768{
 4769    virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
 4770        UINT *puDeviceId) = 0;
 4771
 4772    virtual HRESULT STDMETHODCALLTYPE SetDeviceId(
 4773        UINT uDeviceId) = 0;
 4774
 4775    virtual HRESULT STDMETHODCALLTYPE GetMMHandle(
 4776        void **pHandle) = 0;
 4777
 4778    virtual HRESULT STDMETHODCALLTYPE GetLineId(
 4779        UINT *puLineId) = 0;
 4780
 4781    virtual HRESULT STDMETHODCALLTYPE SetLineId(
 4782        UINT uLineId) = 0;
 4783
 4784};
 4785#ifdef __CRT_UUID_DECL
 4786__CRT_UUID_DECL(ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab)
 4787#endif
 4788#else
 4789typedef struct ISpMMSysAudioVtbl {
 4790    BEGIN_INTERFACE
 4791
 4792    /*** IUnknown methods ***/
 4793    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4794        ISpMMSysAudio *This,
 4795        REFIID riid,
 4796        void **ppvObject);
 4797
 4798    ULONG (STDMETHODCALLTYPE *AddRef)(
 4799        ISpMMSysAudio *This);
 4800
 4801    ULONG (STDMETHODCALLTYPE *Release)(
 4802        ISpMMSysAudio *This);
 4803
 4804    /*** ISequentialStream methods ***/
 4805    HRESULT (STDMETHODCALLTYPE *Read)(
 4806        ISpMMSysAudio *This,
 4807        void *pv,
 4808        ULONG cb,
 4809        ULONG *pcbRead);
 4810
 4811    HRESULT (STDMETHODCALLTYPE *Write)(
 4812        ISpMMSysAudio *This,
 4813        const void *pv,
 4814        ULONG cb,
 4815        ULONG *pcbWritten);
 4816
 4817    /*** IStream methods ***/
 4818    HRESULT (STDMETHODCALLTYPE *Seek)(
 4819        ISpMMSysAudio *This,
 4820        LARGE_INTEGER dlibMove,
 4821        DWORD dwOrigin,
 4822        ULARGE_INTEGER *plibNewPosition);
 4823
 4824    HRESULT (STDMETHODCALLTYPE *SetSize)(
 4825        ISpMMSysAudio *This,
 4826        ULARGE_INTEGER libNewSize);
 4827
 4828    HRESULT (STDMETHODCALLTYPE *CopyTo)(
 4829        ISpMMSysAudio *This,
 4830        IStream *pstm,
 4831        ULARGE_INTEGER cb,
 4832        ULARGE_INTEGER *pcbRead,
 4833        ULARGE_INTEGER *pcbWritten);
 4834
 4835    HRESULT (STDMETHODCALLTYPE *Commit)(
 4836        ISpMMSysAudio *This,
 4837        DWORD grfCommitFlags);
 4838
 4839    HRESULT (STDMETHODCALLTYPE *Revert)(
 4840        ISpMMSysAudio *This);
 4841
 4842    HRESULT (STDMETHODCALLTYPE *LockRegion)(
 4843        ISpMMSysAudio *This,
 4844        ULARGE_INTEGER libOffset,
 4845        ULARGE_INTEGER cb,
 4846        DWORD dwLockType);
 4847
 4848    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
 4849        ISpMMSysAudio *This,
 4850        ULARGE_INTEGER libOffset,
 4851        ULARGE_INTEGER cb,
 4852        DWORD dwLockType);
 4853
 4854    HRESULT (STDMETHODCALLTYPE *Stat)(
 4855        ISpMMSysAudio *This,
 4856        STATSTG *pstatstg,
 4857        DWORD grfStatFlag);
 4858
 4859    HRESULT (STDMETHODCALLTYPE *Clone)(
 4860        ISpMMSysAudio *This,
 4861        IStream **ppstm);
 4862
 4863    /*** ISpStreamFormat methods ***/
 4864    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 4865        ISpMMSysAudio *This,
 4866        GUID *pguidFormatId,
 4867        WAVEFORMATEX **ppCoMemWaveFormatEx);
 4868
 4869    /*** ISpAudio methods ***/
 4870    HRESULT (STDMETHODCALLTYPE *SetState)(
 4871        ISpMMSysAudio *This,
 4872        SPAUDIOSTATE NewState,
 4873        ULONGLONG ullReserved);
 4874
 4875    HRESULT (STDMETHODCALLTYPE *SetFormat)(
 4876        ISpMMSysAudio *This,
 4877        REFGUID rguidFmtId,
 4878        const WAVEFORMATEX *pWaveFormatEx);
 4879
 4880    HRESULT (STDMETHODCALLTYPE *GetStatus)(
 4881        ISpMMSysAudio *This,
 4882        SPAUDIOSTATUS *pStatus);
 4883
 4884    HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
 4885        ISpMMSysAudio *This,
 4886        const SPAUDIOBUFFERINFO *pBuffInfo);
 4887
 4888    HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
 4889        ISpMMSysAudio *This,
 4890        SPAUDIOBUFFERINFO *pBuffInfo);
 4891
 4892    HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
 4893        ISpMMSysAudio *This,
 4894        GUID *pFormatId,
 4895        WAVEFORMATEX **ppCoMemWaveFormatEx);
 4896
 4897    HANDLE (STDMETHODCALLTYPE *EventHandle)(
 4898        ISpMMSysAudio *This);
 4899
 4900    HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
 4901        ISpMMSysAudio *This,
 4902        ULONG *pLevel);
 4903
 4904    HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
 4905        ISpMMSysAudio *This,
 4906        ULONG Level);
 4907
 4908    HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
 4909        ISpMMSysAudio *This,
 4910        ULONG *pcbSize);
 4911
 4912    HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
 4913        ISpMMSysAudio *This,
 4914        ULONG cbSize);
 4915
 4916    /*** ISpMMSysAudio methods ***/
 4917    HRESULT (STDMETHODCALLTYPE *GetDeviceId)(
 4918        ISpMMSysAudio *This,
 4919        UINT *puDeviceId);
 4920
 4921    HRESULT (STDMETHODCALLTYPE *SetDeviceId)(
 4922        ISpMMSysAudio *This,
 4923        UINT uDeviceId);
 4924
 4925    HRESULT (STDMETHODCALLTYPE *GetMMHandle)(
 4926        ISpMMSysAudio *This,
 4927        void **pHandle);
 4928
 4929    HRESULT (STDMETHODCALLTYPE *GetLineId)(
 4930        ISpMMSysAudio *This,
 4931        UINT *puLineId);
 4932
 4933    HRESULT (STDMETHODCALLTYPE *SetLineId)(
 4934        ISpMMSysAudio *This,
 4935        UINT uLineId);
 4936
 4937    END_INTERFACE
 4938} ISpMMSysAudioVtbl;
 4939
 4940interface ISpMMSysAudio {
 4941    CONST_VTBL ISpMMSysAudioVtbl* lpVtbl;
 4942};
 4943
 4944#ifdef COBJMACROS
 4945#ifndef WIDL_C_INLINE_WRAPPERS
 4946/*** IUnknown methods ***/
 4947#define ISpMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4948#define ISpMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
 4949#define ISpMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
 4950/*** ISequentialStream methods ***/
 4951#define ISpMMSysAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
 4952#define ISpMMSysAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
 4953/*** IStream methods ***/
 4954#define ISpMMSysAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
 4955#define ISpMMSysAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
 4956#define ISpMMSysAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
 4957#define ISpMMSysAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
 4958#define ISpMMSysAudio_Revert(This) (This)->lpVtbl->Revert(This)
 4959#define ISpMMSysAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
 4960#define ISpMMSysAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
 4961#define ISpMMSysAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
 4962#define ISpMMSysAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
 4963/*** ISpStreamFormat methods ***/
 4964#define ISpMMSysAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
 4965/*** ISpAudio methods ***/
 4966#define ISpMMSysAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
 4967#define ISpMMSysAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
 4968#define ISpMMSysAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
 4969#define ISpMMSysAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
 4970#define ISpMMSysAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
 4971#define ISpMMSysAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
 4972#define ISpMMSysAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
 4973#define ISpMMSysAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
 4974#define ISpMMSysAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
 4975#define ISpMMSysAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
 4976#define ISpMMSysAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
 4977/*** ISpMMSysAudio methods ***/
 4978#define ISpMMSysAudio_GetDeviceId(This,puDeviceId) (This)->lpVtbl->GetDeviceId(This,puDeviceId)
 4979#define ISpMMSysAudio_SetDeviceId(This,uDeviceId) (This)->lpVtbl->SetDeviceId(This,uDeviceId)
 4980#define ISpMMSysAudio_GetMMHandle(This,pHandle) (This)->lpVtbl->GetMMHandle(This,pHandle)
 4981#define ISpMMSysAudio_GetLineId(This,puLineId) (This)->lpVtbl->GetLineId(This,puLineId)
 4982#define ISpMMSysAudio_SetLineId(This,uLineId) (This)->lpVtbl->SetLineId(This,uLineId)
 4983#else
 4984/*** IUnknown methods ***/
 4985static inline HRESULT ISpMMSysAudio_QueryInterface(ISpMMSysAudio* This,REFIID riid,void **ppvObject) {
 4986    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4987}
 4988static inline ULONG ISpMMSysAudio_AddRef(ISpMMSysAudio* This) {
 4989    return This->lpVtbl->AddRef(This);
 4990}
 4991static inline ULONG ISpMMSysAudio_Release(ISpMMSysAudio* This) {
 4992    return This->lpVtbl->Release(This);
 4993}
 4994/*** ISequentialStream methods ***/
 4995static inline HRESULT ISpMMSysAudio_Read(ISpMMSysAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
 4996    return This->lpVtbl->Read(This,pv,cb,pcbRead);
 4997}
 4998static inline HRESULT ISpMMSysAudio_Write(ISpMMSysAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
 4999    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
 5000}
 5001/*** IStream methods ***/
 5002static inline HRESULT ISpMMSysAudio_Seek(ISpMMSysAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
 5003    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
 5004}
 5005static inline HRESULT ISpMMSysAudio_SetSize(ISpMMSysAudio* This,ULARGE_INTEGER libNewSize) {
 5006    return This->lpVtbl->SetSize(This,libNewSize);
 5007}
 5008static inline HRESULT ISpMMSysAudio_CopyTo(ISpMMSysAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
 5009    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
 5010}
 5011static inline HRESULT ISpMMSysAudio_Commit(ISpMMSysAudio* This,DWORD grfCommitFlags) {
 5012    return This->lpVtbl->Commit(This,grfCommitFlags);
 5013}
 5014static inline HRESULT ISpMMSysAudio_Revert(ISpMMSysAudio* This) {
 5015    return This->lpVtbl->Revert(This);
 5016}
 5017static inline HRESULT ISpMMSysAudio_LockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 5018    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
 5019}
 5020static inline HRESULT ISpMMSysAudio_UnlockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
 5021    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
 5022}
 5023static inline HRESULT ISpMMSysAudio_Stat(ISpMMSysAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
 5024    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
 5025}
 5026static inline HRESULT ISpMMSysAudio_Clone(ISpMMSysAudio* This,IStream **ppstm) {
 5027    return This->lpVtbl->Clone(This,ppstm);
 5028}
 5029/*** ISpStreamFormat methods ***/
 5030static inline HRESULT ISpMMSysAudio_GetFormat(ISpMMSysAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 5031    return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
 5032}
 5033/*** ISpAudio methods ***/
 5034static inline HRESULT ISpMMSysAudio_SetState(ISpMMSysAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
 5035    return This->lpVtbl->SetState(This,NewState,ullReserved);
 5036}
 5037static inline HRESULT ISpMMSysAudio_SetFormat(ISpMMSysAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
 5038    return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
 5039}
 5040static inline HRESULT ISpMMSysAudio_GetStatus(ISpMMSysAudio* This,SPAUDIOSTATUS *pStatus) {
 5041    return This->lpVtbl->GetStatus(This,pStatus);
 5042}
 5043static inline HRESULT ISpMMSysAudio_SetBufferInfo(ISpMMSysAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
 5044    return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
 5045}
 5046static inline HRESULT ISpMMSysAudio_GetBufferInfo(ISpMMSysAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
 5047    return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
 5048}
 5049static inline HRESULT ISpMMSysAudio_GetDefaultFormat(ISpMMSysAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
 5050    return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
 5051}
 5052static inline HANDLE ISpMMSysAudio_EventHandle(ISpMMSysAudio* This) {
 5053    return This->lpVtbl->EventHandle(This);
 5054}
 5055static inline HRESULT ISpMMSysAudio_GetVolumeLevel(ISpMMSysAudio* This,ULONG *pLevel) {
 5056    return This->lpVtbl->GetVolumeLevel(This,pLevel);
 5057}
 5058static inline HRESULT ISpMMSysAudio_SetVolumeLevel(ISpMMSysAudio* This,ULONG Level) {
 5059    return This->lpVtbl->SetVolumeLevel(This,Level);
 5060}
 5061static inline HRESULT ISpMMSysAudio_GetBufferNotifySize(ISpMMSysAudio* This,ULONG *pcbSize) {
 5062    return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
 5063}
 5064static inline HRESULT ISpMMSysAudio_SetBufferNotifySize(ISpMMSysAudio* This,ULONG cbSize) {
 5065    return This->lpVtbl->SetBufferNotifySize(This,cbSize);
 5066}
 5067/*** ISpMMSysAudio methods ***/
 5068static inline HRESULT ISpMMSysAudio_GetDeviceId(ISpMMSysAudio* This,UINT *puDeviceId) {
 5069    return This->lpVtbl->GetDeviceId(This,puDeviceId);
 5070}
 5071static inline HRESULT ISpMMSysAudio_SetDeviceId(ISpMMSysAudio* This,UINT uDeviceId) {
 5072    return This->lpVtbl->SetDeviceId(This,uDeviceId);
 5073}
 5074static inline HRESULT ISpMMSysAudio_GetMMHandle(ISpMMSysAudio* This,void **pHandle) {
 5075    return This->lpVtbl->GetMMHandle(This,pHandle);
 5076}
 5077static inline HRESULT ISpMMSysAudio_GetLineId(ISpMMSysAudio* This,UINT *puLineId) {
 5078    return This->lpVtbl->GetLineId(This,puLineId);
 5079}
 5080static inline HRESULT ISpMMSysAudio_SetLineId(ISpMMSysAudio* This,UINT uLineId) {
 5081    return This->lpVtbl->SetLineId(This,uLineId);
 5082}
 5083#endif
 5084#endif
 5085
 5086#endif
 5087
 5088
 5089#endif  /* __ISpMMSysAudio_INTERFACE_DEFINED__ */
 5090
 5091/*****************************************************************************
 5092 * ISpTranscript interface
 5093 */
 5094#ifndef __ISpTranscript_INTERFACE_DEFINED__
 5095#define __ISpTranscript_INTERFACE_DEFINED__
 5096
 5097DEFINE_GUID(IID_ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
 5098#if defined(__cplusplus) && !defined(CINTERFACE)
 5099MIDL_INTERFACE("10f63bce-201a-11d3-ac70-00c04f8ee6c0")
 5100ISpTranscript : public IUnknown
 5101{
 5102    virtual HRESULT STDMETHODCALLTYPE GetTranscript(
 5103        LPWSTR *ppszTranscript) = 0;
 5104
 5105    virtual HRESULT STDMETHODCALLTYPE AppendTranscript(
 5106        LPCWSTR pszTranscript) = 0;
 5107
 5108};
 5109#ifdef __CRT_UUID_DECL
 5110__CRT_UUID_DECL(ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
 5111#endif
 5112#else
 5113typedef struct ISpTranscriptVtbl {
 5114    BEGIN_INTERFACE
 5115
 5116    /*** IUnknown methods ***/
 5117    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5118        ISpTranscript *This,
 5119        REFIID riid,
 5120        void **ppvObject);
 5121
 5122    ULONG (STDMETHODCALLTYPE *AddRef)(
 5123        ISpTranscript *This);
 5124
 5125    ULONG (STDMETHODCALLTYPE *Release)(
 5126        ISpTranscript *This);
 5127
 5128    /*** ISpTranscript methods ***/
 5129    HRESULT (STDMETHODCALLTYPE *GetTranscript)(
 5130        ISpTranscript *This,
 5131        LPWSTR *ppszTranscript);
 5132
 5133    HRESULT (STDMETHODCALLTYPE *AppendTranscript)(
 5134        ISpTranscript *This,
 5135        LPCWSTR pszTranscript);
 5136
 5137    END_INTERFACE
 5138} ISpTranscriptVtbl;
 5139
 5140interface ISpTranscript {
 5141    CONST_VTBL ISpTranscriptVtbl* lpVtbl;
 5142};
 5143
 5144#ifdef COBJMACROS
 5145#ifndef WIDL_C_INLINE_WRAPPERS
 5146/*** IUnknown methods ***/
 5147#define ISpTranscript_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5148#define ISpTranscript_AddRef(This) (This)->lpVtbl->AddRef(This)
 5149#define ISpTranscript_Release(This) (This)->lpVtbl->Release(This)
 5150/*** ISpTranscript methods ***/
 5151#define ISpTranscript_GetTranscript(This,ppszTranscript) (This)->lpVtbl->GetTranscript(This,ppszTranscript)
 5152#define ISpTranscript_AppendTranscript(This,pszTranscript) (This)->lpVtbl->AppendTranscript(This,pszTranscript)
 5153#else
 5154/*** IUnknown methods ***/
 5155static inline HRESULT ISpTranscript_QueryInterface(ISpTranscript* This,REFIID riid,void **ppvObject) {
 5156    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5157}
 5158static inline ULONG ISpTranscript_AddRef(ISpTranscript* This) {
 5159    return This->lpVtbl->AddRef(This);
 5160}
 5161static inline ULONG ISpTranscript_Release(ISpTranscript* This) {
 5162    return This->lpVtbl->Release(This);
 5163}
 5164/*** ISpTranscript methods ***/
 5165static inline HRESULT ISpTranscript_GetTranscript(ISpTranscript* This,LPWSTR *ppszTranscript) {
 5166    return This->lpVtbl->GetTranscript(This,ppszTranscript);
 5167}
 5168static inline HRESULT ISpTranscript_AppendTranscript(ISpTranscript* This,LPCWSTR pszTranscript) {
 5169    return This->lpVtbl->AppendTranscript(This,pszTranscript);
 5170}
 5171#endif
 5172#endif
 5173
 5174#endif
 5175
 5176
 5177#endif  /* __ISpTranscript_INTERFACE_DEFINED__ */
 5178
 5179typedef WCHAR SPPHONEID;
 5180typedef LPWSTR PSPPHONEID;
 5181typedef LPCWSTR PCSPPHONEID;
 5182typedef struct SPPHRASEELEMENT {
 5183    ULONG ulAudioTimeOffset;
 5184    ULONG ulAudioSizeTime;
 5185    ULONG ulAudioStreamOffset;
 5186    ULONG ulAudioSizeBytes;
 5187    ULONG ulRetainedStreamOffset;
 5188    ULONG ulRetainedSizeBytes;
 5189    LPCWSTR pszDisplayText;
 5190    LPCWSTR pszLexicalForm;
 5191    const SPPHONEID *pszPronunciation;
 5192    BYTE bDisplayAttributes;
 5193    signed char RequiredConfidence;
 5194    signed char ActualConfidence;
 5195    BYTE Reserved;
 5196    float SREngineConfidence;
 5197} SPPHRASEELEMENT;
 5198typedef struct SPPHRASERULE SPPHRASERULE;
 5199typedef struct SPPHRASEPROPERTY SPPHRASEPROPERTY;
 5200struct SPPHRASERULE {
 5201    LPCWSTR pszName;
 5202    ULONG ulId;
 5203    ULONG ulFirstElement;
 5204    ULONG ulCountOfElements;
 5205    const SPPHRASERULE *pNextSibling;
 5206    const SPPHRASERULE *pFirstChild;
 5207    float SREngineConfidence;
 5208    signed char Confidence;
 5209};
 5210struct SPPHRASEPROPERTY {
 5211    LPCWSTR pszName;
 5212    __C89_NAMELESS union {
 5213        ULONG ulId;
 5214        __C89_NAMELESS struct {
 5215            byte bType;
 5216            byte bReserved;
 5217            unsigned short usArrayIndex;
 5218        } __C89_NAMELESSSTRUCTNAME;
 5219    } __C89_NAMELESSUNIONNAME;
 5220    LPCWSTR pszValue;
 5221    VARIANT vValue;
 5222    ULONG ulFirstElement;
 5223    ULONG ulCountOfElements;
 5224    const SPPHRASEPROPERTY *pNextSibling;
 5225    const SPPHRASEPROPERTY *pFirstChild;
 5226    float SREngineConfidence;
 5227    signed char Confidence;
 5228};
 5229typedef struct SPPHRASEREPLACEMENT {
 5230    BYTE bDisplayAttributes;
 5231    LPCWSTR pszReplacementText;
 5232    ULONG ulFirstElement;
 5233    ULONG ulCountOfElements;
 5234} SPPHRASEREPLACEMENT;
 5235typedef struct SPPHRASE {
 5236    ULONG cbSize;
 5237    WORD LangID;
 5238    WORD wHomophoneGroupId;
 5239    ULONGLONG ullGrammarID;
 5240    ULONGLONG ftStartTime;
 5241    ULONGLONG ullAudioStreamPosition;
 5242    ULONG ulAudioSizeBytes;
 5243    ULONG ulRetainedSizeBytes;
 5244    ULONG ulAudioSizeTime;
 5245    SPPHRASERULE Rule;
 5246    const SPPHRASEPROPERTY *pProperties;
 5247    const SPPHRASEELEMENT *pElements;
 5248    ULONG cReplacements;
 5249    const SPPHRASEREPLACEMENT *pReplacements;
 5250    GUID SREngineID;
 5251    ULONG ulSREnginePrivateDataSize;
 5252    const BYTE *pSREnginePrivateData;
 5253} SPPHRASE;
 5254typedef struct SPSERIALIZEDPHRASE {
 5255    ULONG ulSerializedSize;
 5256} SPSERIALIZEDPHRASE;
 5257typedef struct SPBINARYGRAMMAR {
 5258    ULONG ulTotalSerializedSize;
 5259} SPBINARYGRAMMAR;
 5260#if 0
 5261typedef void *SPSTATEHANDLE;
 5262#else
 5263DECLARE_HANDLE(SPSTATEHANDLE);
 5264#endif
 5265typedef struct SPWORDPRONUNCIATION {
 5266    struct SPWORDPRONUNCIATION *pNextWordPronunciation;
 5267    SPLEXICONTYPE eLexiconType;
 5268    WORD LangID;
 5269    WORD wPronunciationFlags;
 5270    SPPARTOFSPEECH ePartOfSpeech;
 5271    SPPHONEID szPronunciation[1];
 5272} SPWORDPRONUNCIATION;
 5273typedef struct SPWORDPRONUNCIATIONLIST {
 5274    ULONG ulSize;
 5275    BYTE *pvBuffer;
 5276    SPWORDPRONUNCIATION *pFirstWordPronunciation;
 5277} SPWORDPRONUNCIATIONLIST;
 5278typedef struct SPWORD {
 5279    struct SPWORD *pNextWord;
 5280    WORD LangID;
 5281    WORD wReserved;
 5282    SPWORDTYPE eWordType;
 5283    LPWSTR pszWord;
 5284    SPWORDPRONUNCIATION *pFirstWordPronunciation;
 5285} SPWORD;
 5286typedef struct SPWORDLIST {
 5287    ULONG ulSize;
 5288    BYTE *pvBuffer;
 5289    SPWORD *pFirstWord;
 5290} SPWORDLIST;
 5291/*****************************************************************************
 5292 * ISpLexicon interface
 5293 */
 5294#ifndef __ISpLexicon_INTERFACE_DEFINED__
 5295#define __ISpLexicon_INTERFACE_DEFINED__
 5296
 5297DEFINE_GUID(IID_ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58);
 5298#if defined(__cplusplus) && !defined(CINTERFACE)
 5299MIDL_INTERFACE("da41a7c2-5383-4db2-916b-6c1719e3db58")
 5300ISpLexicon : public IUnknown
 5301{
 5302    virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
 5303        LPCWSTR pszWord,
 5304        WORD LangID,
 5305        DWORD dwFlags,
 5306        SPWORDPRONUNCIATIONLIST *pWordPronunciationList) = 0;
 5307
 5308    virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
 5309        LPCWSTR pszWord,
 5310        WORD LangID,
 5311        SPPARTOFSPEECH ePartOfSpeech,
 5312        PCSPPHONEID pszPronunciation) = 0;
 5313
 5314    virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
 5315        LPCWSTR pszWord,
 5316        WORD LangID,
 5317        SPPARTOFSPEECH ePartOfSpeech,
 5318        PCSPPHONEID pszPronunciation) = 0;
 5319
 5320    virtual HRESULT STDMETHODCALLTYPE GetGeneration(
 5321        DWORD *pdwGeneration) = 0;
 5322
 5323    virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
 5324        DWORD dwFlags,
 5325        DWORD *pdwGeneration,
 5326        SPWORDLIST *pWordList) = 0;
 5327
 5328    virtual HRESULT STDMETHODCALLTYPE GetWords(
 5329        DWORD dwFlags,
 5330        DWORD *pdwGeneration,
 5331        DWORD *pdwCookie,
 5332        SPWORDLIST *pWordList) = 0;
 5333
 5334};
 5335#ifdef __CRT_UUID_DECL
 5336__CRT_UUID_DECL(ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58)
 5337#endif
 5338#else
 5339typedef struct ISpLexiconVtbl {
 5340    BEGIN_INTERFACE
 5341
 5342    /*** IUnknown methods ***/
 5343    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5344        ISpLexicon *This,
 5345        REFIID riid,
 5346        void **ppvObject);
 5347
 5348    ULONG (STDMETHODCALLTYPE *AddRef)(
 5349        ISpLexicon *This);
 5350
 5351    ULONG (STDMETHODCALLTYPE *Release)(
 5352        ISpLexicon *This);
 5353
 5354    /*** ISpLexicon methods ***/
 5355    HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
 5356        ISpLexicon *This,
 5357        LPCWSTR pszWord,
 5358        WORD LangID,
 5359        DWORD dwFlags,
 5360        SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
 5361
 5362    HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
 5363        ISpLexicon *This,
 5364        LPCWSTR pszWord,
 5365        WORD LangID,
 5366        SPPARTOFSPEECH ePartOfSpeech,
 5367        PCSPPHONEID pszPronunciation);
 5368
 5369    HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
 5370        ISpLexicon *This,
 5371        LPCWSTR pszWord,
 5372        WORD LangID,
 5373        SPPARTOFSPEECH ePartOfSpeech,
 5374        PCSPPHONEID pszPronunciation);
 5375
 5376    HRESULT (STDMETHODCALLTYPE *GetGeneration)(
 5377        ISpLexicon *This,
 5378        DWORD *pdwGeneration);
 5379
 5380    HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
 5381        ISpLexicon *This,
 5382        DWORD dwFlags,
 5383        DWORD *pdwGeneration,
 5384        SPWORDLIST *pWordList);
 5385
 5386    HRESULT (STDMETHODCALLTYPE *GetWords)(
 5387        ISpLexicon *This,
 5388        DWORD dwFlags,
 5389        DWORD *pdwGeneration,
 5390        DWORD *pdwCookie,
 5391        SPWORDLIST *pWordList);
 5392
 5393    END_INTERFACE
 5394} ISpLexiconVtbl;
 5395
 5396interface ISpLexicon {
 5397    CONST_VTBL ISpLexiconVtbl* lpVtbl;
 5398};
 5399
 5400#ifdef COBJMACROS
 5401#ifndef WIDL_C_INLINE_WRAPPERS
 5402/*** IUnknown methods ***/
 5403#define ISpLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5404#define ISpLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
 5405#define ISpLexicon_Release(This) (This)->lpVtbl->Release(This)
 5406/*** ISpLexicon methods ***/
 5407#define ISpLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
 5408#define ISpLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
 5409#define ISpLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
 5410#define ISpLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
 5411#define ISpLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
 5412#define ISpLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
 5413#else
 5414/*** IUnknown methods ***/
 5415static inline HRESULT ISpLexicon_QueryInterface(ISpLexicon* This,REFIID riid,void **ppvObject) {
 5416    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5417}
 5418static inline ULONG ISpLexicon_AddRef(ISpLexicon* This) {
 5419    return This->lpVtbl->AddRef(This);
 5420}
 5421static inline ULONG ISpLexicon_Release(ISpLexicon* This) {
 5422    return This->lpVtbl->Release(This);
 5423}
 5424/*** ISpLexicon methods ***/
 5425static inline HRESULT ISpLexicon_GetPronunciations(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
 5426    return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
 5427}
 5428static inline HRESULT ISpLexicon_AddPronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
 5429    return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
 5430}
 5431static inline HRESULT ISpLexicon_RemovePronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
 5432    return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
 5433}
 5434static inline HRESULT ISpLexicon_GetGeneration(ISpLexicon* This,DWORD *pdwGeneration) {
 5435    return This->lpVtbl->GetGeneration(This,pdwGeneration);
 5436}
 5437static inline HRESULT ISpLexicon_GetGenerationChange(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
 5438    return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
 5439}
 5440static inline HRESULT ISpLexicon_GetWords(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
 5441    return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
 5442}
 5443#endif
 5444#endif
 5445
 5446#endif
 5447
 5448
 5449#endif  /* __ISpLexicon_INTERFACE_DEFINED__ */
 5450
 5451/*****************************************************************************
 5452 * ISpContainerLexicon interface
 5453 */
 5454#ifndef __ISpContainerLexicon_INTERFACE_DEFINED__
 5455#define __ISpContainerLexicon_INTERFACE_DEFINED__
 5456
 5457DEFINE_GUID(IID_ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44);
 5458#if defined(__cplusplus) && !defined(CINTERFACE)
 5459MIDL_INTERFACE("8565572f-c094-41cc-b56e-10bd9c3ff044")
 5460ISpContainerLexicon : public ISpLexicon
 5461{
 5462    virtual HRESULT STDMETHODCALLTYPE AddLexicon(
 5463        ISpLexicon *pAddLexicon,
 5464        DWORD dwFlags) = 0;
 5465
 5466};
 5467#ifdef __CRT_UUID_DECL
 5468__CRT_UUID_DECL(ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44)
 5469#endif
 5470#else
 5471typedef struct ISpContainerLexiconVtbl {
 5472    BEGIN_INTERFACE
 5473
 5474    /*** IUnknown methods ***/
 5475    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5476        ISpContainerLexicon *This,
 5477        REFIID riid,
 5478        void **ppvObject);
 5479
 5480    ULONG (STDMETHODCALLTYPE *AddRef)(
 5481        ISpContainerLexicon *This);
 5482
 5483    ULONG (STDMETHODCALLTYPE *Release)(
 5484        ISpContainerLexicon *This);
 5485
 5486    /*** ISpLexicon methods ***/
 5487    HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
 5488        ISpContainerLexicon *This,
 5489        LPCWSTR pszWord,
 5490        WORD LangID,
 5491        DWORD dwFlags,
 5492        SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
 5493
 5494    HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
 5495        ISpContainerLexicon *This,
 5496        LPCWSTR pszWord,
 5497        WORD LangID,
 5498        SPPARTOFSPEECH ePartOfSpeech,
 5499        PCSPPHONEID pszPronunciation);
 5500
 5501    HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
 5502        ISpContainerLexicon *This,
 5503        LPCWSTR pszWord,
 5504        WORD LangID,
 5505        SPPARTOFSPEECH ePartOfSpeech,
 5506        PCSPPHONEID pszPronunciation);
 5507
 5508    HRESULT (STDMETHODCALLTYPE *GetGeneration)(
 5509        ISpContainerLexicon *This,
 5510        DWORD *pdwGeneration);
 5511
 5512    HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
 5513        ISpContainerLexicon *This,
 5514        DWORD dwFlags,
 5515        DWORD *pdwGeneration,
 5516        SPWORDLIST *pWordList);
 5517
 5518    HRESULT (STDMETHODCALLTYPE *GetWords)(
 5519        ISpContainerLexicon *This,
 5520        DWORD dwFlags,
 5521        DWORD *pdwGeneration,
 5522        DWORD *pdwCookie,
 5523        SPWORDLIST *pWordList);
 5524
 5525    /*** ISpContainerLexicon methods ***/
 5526    HRESULT (STDMETHODCALLTYPE *AddLexicon)(
 5527        ISpContainerLexicon *This,
 5528        ISpLexicon *pAddLexicon,
 5529        DWORD dwFlags);
 5530
 5531    END_INTERFACE
 5532} ISpContainerLexiconVtbl;
 5533
 5534interface ISpContainerLexicon {
 5535    CONST_VTBL ISpContainerLexiconVtbl* lpVtbl;
 5536};
 5537
 5538#ifdef COBJMACROS
 5539#ifndef WIDL_C_INLINE_WRAPPERS
 5540/*** IUnknown methods ***/
 5541#define ISpContainerLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5542#define ISpContainerLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
 5543#define ISpContainerLexicon_Release(This) (This)->lpVtbl->Release(This)
 5544/*** ISpLexicon methods ***/
 5545#define ISpContainerLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
 5546#define ISpContainerLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
 5547#define ISpContainerLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
 5548#define ISpContainerLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
 5549#define ISpContainerLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
 5550#define ISpContainerLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
 5551/*** ISpContainerLexicon methods ***/
 5552#define ISpContainerLexicon_AddLexicon(This,pAddLexicon,dwFlags) (This)->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags)
 5553#else
 5554/*** IUnknown methods ***/
 5555static inline HRESULT ISpContainerLexicon_QueryInterface(ISpContainerLexicon* This,REFIID riid,void **ppvObject) {
 5556    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5557}
 5558static inline ULONG ISpContainerLexicon_AddRef(ISpContainerLexicon* This) {
 5559    return This->lpVtbl->AddRef(This);
 5560}
 5561static inline ULONG ISpContainerLexicon_Release(ISpContainerLexicon* This) {
 5562    return This->lpVtbl->Release(This);
 5563}
 5564/*** ISpLexicon methods ***/
 5565static inline HRESULT ISpContainerLexicon_GetPronunciations(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
 5566    return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
 5567}
 5568static inline HRESULT ISpContainerLexicon_AddPronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
 5569    return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
 5570}
 5571static inline HRESULT ISpContainerLexicon_RemovePronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
 5572    return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
 5573}
 5574static inline HRESULT ISpContainerLexicon_GetGeneration(ISpContainerLexicon* This,DWORD *pdwGeneration) {
 5575    return This->lpVtbl->GetGeneration(This,pdwGeneration);
 5576}
 5577static inline HRESULT ISpContainerLexicon_GetGenerationChange(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
 5578    return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
 5579}
 5580static inline HRESULT ISpContainerLexicon_GetWords(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
 5581    return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
 5582}
 5583/*** ISpContainerLexicon methods ***/
 5584static inline HRESULT ISpContainerLexicon_AddLexicon(ISpContainerLexicon* This,ISpLexicon *pAddLexicon,DWORD dwFlags) {
 5585    return This->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags);
 5586}
 5587#endif
 5588#endif
 5589
 5590#endif
 5591
 5592
 5593#endif  /* __ISpContainerLexicon_INTERFACE_DEFINED__ */
 5594
 5595/*****************************************************************************
 5596 * ISpPhoneConverter interface
 5597 */
 5598#ifndef __ISpPhoneConverter_INTERFACE_DEFINED__
 5599#define __ISpPhoneConverter_INTERFACE_DEFINED__
 5600
 5601DEFINE_GUID(IID_ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55);
 5602#if defined(__cplusplus) && !defined(CINTERFACE)
 5603MIDL_INTERFACE("8445c581-0cac-4a38-abfe-9b2ce2826455")
 5604ISpPhoneConverter : public ISpObjectWithToken
 5605{
 5606    virtual HRESULT STDMETHODCALLTYPE PhoneToId(
 5607        LPCWSTR pszPhone,
 5608        SPPHONEID *pId) = 0;
 5609
 5610    virtual HRESULT STDMETHODCALLTYPE IdToPhone(
 5611        PCSPPHONEID pId,
 5612        WCHAR *pszPhone) = 0;
 5613
 5614};
 5615#ifdef __CRT_UUID_DECL
 5616__CRT_UUID_DECL(ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55)
 5617#endif
 5618#else
 5619typedef struct ISpPhoneConverterVtbl {
 5620    BEGIN_INTERFACE
 5621
 5622    /*** IUnknown methods ***/
 5623    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5624        ISpPhoneConverter *This,
 5625        REFIID riid,
 5626        void **ppvObject);
 5627
 5628    ULONG (STDMETHODCALLTYPE *AddRef)(
 5629        ISpPhoneConverter *This);
 5630
 5631    ULONG (STDMETHODCALLTYPE *Release)(
 5632        ISpPhoneConverter *This);
 5633
 5634    /*** ISpObjectWithToken methods ***/
 5635    HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
 5636        ISpPhoneConverter *This,
 5637        ISpObjectToken *pToken);
 5638
 5639    HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
 5640        ISpPhoneConverter *This,
 5641        ISpObjectToken **ppToken);
 5642
 5643    /*** ISpPhoneConverter methods ***/
 5644    HRESULT (STDMETHODCALLTYPE *PhoneToId)(
 5645        ISpPhoneConverter *This,
 5646        LPCWSTR pszPhone,
 5647        SPPHONEID *pId);
 5648
 5649    HRESULT (STDMETHODCALLTYPE *IdToPhone)(
 5650        ISpPhoneConverter *This,
 5651        PCSPPHONEID pId,
 5652        WCHAR *pszPhone);
 5653
 5654    END_INTERFACE
 5655} ISpPhoneConverterVtbl;
 5656
 5657interface ISpPhoneConverter {
 5658    CONST_VTBL ISpPhoneConverterVtbl* lpVtbl;
 5659};
 5660
 5661#ifdef COBJMACROS
 5662#ifndef WIDL_C_INLINE_WRAPPERS
 5663/*** IUnknown methods ***/
 5664#define ISpPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5665#define ISpPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
 5666#define ISpPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
 5667/*** ISpObjectWithToken methods ***/
 5668#define ISpPhoneConverter_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
 5669#define ISpPhoneConverter_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
 5670/*** ISpPhoneConverter methods ***/
 5671#define ISpPhoneConverter_PhoneToId(This,pszPhone,pId) (This)->lpVtbl->PhoneToId(This,pszPhone,pId)
 5672#define ISpPhoneConverter_IdToPhone(This,pId,pszPhone) (This)->lpVtbl->IdToPhone(This,pId,pszPhone)
 5673#else
 5674/*** IUnknown methods ***/
 5675static inline HRESULT ISpPhoneConverter_QueryInterface(ISpPhoneConverter* This,REFIID riid,void **ppvObject) {
 5676    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5677}
 5678static inline ULONG ISpPhoneConverter_AddRef(ISpPhoneConverter* This) {
 5679    return This->lpVtbl->AddRef(This);
 5680}
 5681static inline ULONG ISpPhoneConverter_Release(ISpPhoneConverter* This) {
 5682    return This->lpVtbl->Release(This);
 5683}
 5684/*** ISpObjectWithToken methods ***/
 5685static inline HRESULT ISpPhoneConverter_SetObjectToken(ISpPhoneConverter* This,ISpObjectToken *pToken) {
 5686    return This->lpVtbl->SetObjectToken(This,pToken);
 5687}
 5688static inline HRESULT ISpPhoneConverter_GetObjectToken(ISpPhoneConverter* This,ISpObjectToken **ppToken) {
 5689    return This->lpVtbl->GetObjectToken(This,ppToken);
 5690}
 5691/*** ISpPhoneConverter methods ***/
 5692static inline HRESULT ISpPhoneConverter_PhoneToId(ISpPhoneConverter* This,LPCWSTR pszPhone,SPPHONEID *pId) {
 5693    return This->lpVtbl->PhoneToId(This,pszPhone,pId);
 5694}
 5695static inline HRESULT ISpPhoneConverter_IdToPhone(ISpPhoneConverter* This,PCSPPHONEID pId,WCHAR *pszPhone) {
 5696    return This->lpVtbl->IdToPhone(This,pId,pszPhone);
 5697}
 5698#endif
 5699#endif
 5700
 5701#endif
 5702
 5703
 5704#endif  /* __ISpPhoneConverter_INTERFACE_DEFINED__ */
 5705
 5706typedef struct SPVPITCH {
 5707    LONG MiddleAdj;
 5708    LONG RangeAdj;
 5709} SPVPITCH;
 5710typedef struct SPVCONTEXT {
 5711    LPCWSTR pCategory;
 5712    LPCWSTR pBefore;
 5713    LPCWSTR pAfter;
 5714} SPVCONTEXT;
 5715typedef struct SPVSTATE {
 5716    SPVACTIONS eAction;
 5717    WORD LangID;
 5718    WORD wReserved;
 5719    LONG EmphAdj;
 5720    LONG RateAdj;
 5721    ULONG Volume;
 5722    SPVPITCH PitchAdj;
 5723    ULONG SilenceMSecs;
 5724    SPPHONEID *pPhoneIds;
 5725    SPPARTOFSPEECH ePartOfSpeech;
 5726    SPVCONTEXT Context;
 5727} SPVSTATE;
 5728typedef struct SPVOICESTATUS {
 5729    ULONG ulCurrentStream;
 5730    ULONG ulLastStreamQueued;
 5731    HRESULT hrLastResult;
 5732    DWORD dwRunningState;
 5733    ULONG ulInputWordPos;
 5734    ULONG ulInputWordLen;
 5735    ULONG ulInputSentPos;
 5736    ULONG ulInputSentLen;
 5737    LONG lBookmarkId;
 5738    SPPHONEID PhonemeId;
 5739    SPVISEMES VisemeId;
 5740    DWORD dwReserved1;
 5741    DWORD dwReserved2;
 5742} SPVOICESTATUS;
 5743typedef enum SPEAKFLAGS {
 5744    SPF_DEFAULT = 0,
 5745    SPF_ASYNC = 1,
 5746    SPF_PURGEBEFORESPEAK = 2,
 5747    SPF_IS_FILENAME = 4,
 5748    SPF_IS_XML = 8,
 5749    SPF_IS_NOT_XML = 0x10,
 5750    SPF_PERSIST_XML = 0x20,
 5751    SPF_NLP_SPEAK_PUNC = 0x40,
 5752    SPF_NLP_MASK = SPF_NLP_SPEAK_PUNC,
 5753    SPF_VOICE_MASK = (((((SPF_ASYNC | SPF_PURGEBEFORESPEAK) | SPF_IS_FILENAME) | SPF_IS_XML) | SPF_IS_NOT_XML) | SPF_NLP_MASK) | SPF_PERSIST_XML,
 5754    SPF_UNUSED_FLAGS = ~SPF_VOICE_MASK
 5755} SPEAKFLAGS;
 5756/*****************************************************************************
 5757 * ISpVoice interface
 5758 */
 5759#ifndef __ISpVoice_INTERFACE_DEFINED__
 5760#define __ISpVoice_INTERFACE_DEFINED__
 5761
 5762DEFINE_GUID(IID_ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4);
 5763#if defined(__cplusplus) && !defined(CINTERFACE)
 5764MIDL_INTERFACE("6c44df74-72b9-4992-a1ec-ef996e0422d4")
 5765ISpVoice : public ISpEventSource
 5766{
 5767    virtual HRESULT STDMETHODCALLTYPE SetOutput(
 5768        IUnknown *pUnkOutput,
 5769        WINBOOL fAllowFormatChanges) = 0;
 5770
 5771    virtual HRESULT STDMETHODCALLTYPE GetOutputObjectToken(
 5772        ISpObjectToken **ppObjectToken) = 0;
 5773
 5774    virtual HRESULT STDMETHODCALLTYPE GetOutputStream(
 5775        ISpStreamFormat **ppStream) = 0;
 5776
 5777    virtual HRESULT STDMETHODCALLTYPE Pause(
 5778        ) = 0;
 5779
 5780    virtual HRESULT STDMETHODCALLTYPE Resume(
 5781        ) = 0;
 5782
 5783    virtual HRESULT STDMETHODCALLTYPE SetVoice(
 5784        ISpObjectToken *pToken) = 0;
 5785
 5786    virtual HRESULT STDMETHODCALLTYPE GetVoice(
 5787        ISpObjectToken **ppToken) = 0;
 5788
 5789    virtual HRESULT STDMETHODCALLTYPE Speak(
 5790        LPCWSTR pwcs,
 5791        DWORD dwFlags,
 5792        ULONG *pulStreamNumber) = 0;
 5793
 5794    virtual HRESULT STDMETHODCALLTYPE SpeakStream(
 5795        IStream *pStream,
 5796        DWORD dwFlags,
 5797        ULONG *pulStreamNumber) = 0;
 5798
 5799    virtual HRESULT STDMETHODCALLTYPE GetStatus(
 5800        SPVOICESTATUS *pStatus,
 5801        LPWSTR *ppszLastBookmark) = 0;
 5802
 5803    virtual HRESULT STDMETHODCALLTYPE Skip(
 5804        LPCWSTR pItemType,
 5805        LONG lNumItems,
 5806        ULONG *pulNumSkipped) = 0;
 5807
 5808    virtual HRESULT STDMETHODCALLTYPE SetPriority(
 5809        SPVPRIORITY ePriority) = 0;
 5810
 5811    virtual HRESULT STDMETHODCALLTYPE GetPriority(
 5812        SPVPRIORITY *pePriority) = 0;
 5813
 5814    virtual HRESULT STDMETHODCALLTYPE SetAlertBoundary(
 5815        SPEVENTENUM eBoundary) = 0;
 5816
 5817    virtual HRESULT STDMETHODCALLTYPE GetAlertBoundary(
 5818        SPEVENTENUM *peBoundary) = 0;
 5819
 5820    virtual HRESULT STDMETHODCALLTYPE SetRate(
 5821        LONG RateAdjust) = 0;
 5822
 5823    virtual HRESULT STDMETHODCALLTYPE GetRate(
 5824        LONG *pRateAdjust) = 0;
 5825
 5826    virtual HRESULT STDMETHODCALLTYPE SetVolume(
 5827        USHORT usVolume) = 0;
 5828
 5829    virtual HRESULT STDMETHODCALLTYPE GetVolume(
 5830        USHORT *pusVolume) = 0;
 5831
 5832    virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
 5833        ULONG msTimeout) = 0;
 5834
 5835    virtual HRESULT STDMETHODCALLTYPE SetSyncSpeakTimeout(
 5836        ULONG msTimeout) = 0;
 5837
 5838    virtual HRESULT STDMETHODCALLTYPE GetSyncSpeakTimeout(
 5839        ULONG *pmsTimeout) = 0;
 5840
 5841    virtual HANDLE STDMETHODCALLTYPE SpeakCompleteEvent(
 5842        ) = 0;
 5843
 5844    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
 5845        LPCWSTR pszTypeOfUI,
 5846        void *pvExtraData,
 5847        ULONG cbExtraData,
 5848        WINBOOL *pfSupported) = 0;
 5849
 5850    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
 5851        HWND hwndParent,
 5852        LPCWSTR pszTitle,
 5853        LPCWSTR pszTypeOfUI,
 5854        void *pvExtraData,
 5855        ULONG cbExtraData) = 0;
 5856
 5857};
 5858#ifdef __CRT_UUID_DECL
 5859__CRT_UUID_DECL(ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4)
 5860#endif
 5861#else
 5862typedef struct ISpVoiceVtbl {
 5863    BEGIN_INTERFACE
 5864
 5865    /*** IUnknown methods ***/
 5866    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5867        ISpVoice *This,
 5868        REFIID riid,
 5869        void **ppvObject);
 5870
 5871    ULONG (STDMETHODCALLTYPE *AddRef)(
 5872        ISpVoice *This);
 5873
 5874    ULONG (STDMETHODCALLTYPE *Release)(
 5875        ISpVoice *This);
 5876
 5877    /*** ISpNotifySource methods ***/
 5878    HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
 5879        ISpVoice *This,
 5880        ISpNotifySink *pNotifySink);
 5881
 5882    HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
 5883        ISpVoice *This,
 5884        HWND hWnd,
 5885        UINT Msg,
 5886        WPARAM wParam,
 5887        LPARAM lParam);
 5888
 5889    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
 5890        ISpVoice *This,
 5891        SPNOTIFYCALLBACK *pfnCallback,
 5892        WPARAM wParam,
 5893        LPARAM lParam);
 5894
 5895    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
 5896        ISpVoice *This,
 5897        ISpNotifyCallback *pSpCallback,
 5898        WPARAM wParam,
 5899        LPARAM lParam);
 5900
 5901    HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
 5902        ISpVoice *This);
 5903
 5904    HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
 5905        ISpVoice *This,
 5906        DWORD dwMilliseconds);
 5907
 5908    HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
 5909        ISpVoice *This);
 5910
 5911    /*** ISpEventSource methods ***/
 5912    HRESULT (STDMETHODCALLTYPE *SetInterest)(
 5913        ISpVoice *This,
 5914        ULONGLONG ullEventInterest,
 5915        ULONGLONG ullQueuedInterest);
 5916
 5917    HRESULT (STDMETHODCALLTYPE *GetEvents)(
 5918        ISpVoice *This,
 5919        ULONG ulCount,
 5920        SPEVENT *pEventArray,
 5921        ULONG *pulFetched);
 5922
 5923    HRESULT (STDMETHODCALLTYPE *GetInfo)(
 5924        ISpVoice *This,
 5925        SPEVENTSOURCEINFO *pInfo);
 5926
 5927    /*** ISpVoice methods ***/
 5928    HRESULT (STDMETHODCALLTYPE *SetOutput)(
 5929        ISpVoice *This,
 5930        IUnknown *pUnkOutput,
 5931        WINBOOL fAllowFormatChanges);
 5932
 5933    HRESULT (STDMETHODCALLTYPE *GetOutputObjectToken)(
 5934        ISpVoice *This,
 5935        ISpObjectToken **ppObjectToken);
 5936
 5937    HRESULT (STDMETHODCALLTYPE *GetOutputStream)(
 5938        ISpVoice *This,
 5939        ISpStreamFormat **ppStream);
 5940
 5941    HRESULT (STDMETHODCALLTYPE *Pause)(
 5942        ISpVoice *This);
 5943
 5944    HRESULT (STDMETHODCALLTYPE *Resume)(
 5945        ISpVoice *This);
 5946
 5947    HRESULT (STDMETHODCALLTYPE *SetVoice)(
 5948        ISpVoice *This,
 5949        ISpObjectToken *pToken);
 5950
 5951    HRESULT (STDMETHODCALLTYPE *GetVoice)(
 5952        ISpVoice *This,
 5953        ISpObjectToken **ppToken);
 5954
 5955    HRESULT (STDMETHODCALLTYPE *Speak)(
 5956        ISpVoice *This,
 5957        LPCWSTR pwcs,
 5958        DWORD dwFlags,
 5959        ULONG *pulStreamNumber);
 5960
 5961    HRESULT (STDMETHODCALLTYPE *SpeakStream)(
 5962        ISpVoice *This,
 5963        IStream *pStream,
 5964        DWORD dwFlags,
 5965        ULONG *pulStreamNumber);
 5966
 5967    HRESULT (STDMETHODCALLTYPE *GetStatus)(
 5968        ISpVoice *This,
 5969        SPVOICESTATUS *pStatus,
 5970        LPWSTR *ppszLastBookmark);
 5971
 5972    HRESULT (STDMETHODCALLTYPE *Skip)(
 5973        ISpVoice *This,
 5974        LPCWSTR pItemType,
 5975        LONG lNumItems,
 5976        ULONG *pulNumSkipped);
 5977
 5978    HRESULT (STDMETHODCALLTYPE *SetPriority)(
 5979        ISpVoice *This,
 5980        SPVPRIORITY ePriority);
 5981
 5982    HRESULT (STDMETHODCALLTYPE *GetPriority)(
 5983        ISpVoice *This,
 5984        SPVPRIORITY *pePriority);
 5985
 5986    HRESULT (STDMETHODCALLTYPE *SetAlertBoundary)(
 5987        ISpVoice *This,
 5988        SPEVENTENUM eBoundary);
 5989
 5990    HRESULT (STDMETHODCALLTYPE *GetAlertBoundary)(
 5991        ISpVoice *This,
 5992        SPEVENTENUM *peBoundary);
 5993
 5994    HRESULT (STDMETHODCALLTYPE *SetRate)(
 5995        ISpVoice *This,
 5996        LONG RateAdjust);
 5997
 5998    HRESULT (STDMETHODCALLTYPE *GetRate)(
 5999        ISpVoice *This,
 6000        LONG *pRateAdjust);
 6001
 6002    HRESULT (STDMETHODCALLTYPE *SetVolume)(
 6003        ISpVoice *This,
 6004        USHORT usVolume);
 6005
 6006    HRESULT (STDMETHODCALLTYPE *GetVolume)(
 6007        ISpVoice *This,
 6008        USHORT *pusVolume);
 6009
 6010    HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
 6011        ISpVoice *This,
 6012        ULONG msTimeout);
 6013
 6014    HRESULT (STDMETHODCALLTYPE *SetSyncSpeakTimeout)(
 6015        ISpVoice *This,
 6016        ULONG msTimeout);
 6017
 6018    HRESULT (STDMETHODCALLTYPE *GetSyncSpeakTimeout)(
 6019        ISpVoice *This,
 6020        ULONG *pmsTimeout);
 6021
 6022    HANDLE (STDMETHODCALLTYPE *SpeakCompleteEvent)(
 6023        ISpVoice *This);
 6024
 6025    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
 6026        ISpVoice *This,
 6027        LPCWSTR pszTypeOfUI,
 6028        void *pvExtraData,
 6029        ULONG cbExtraData,
 6030        WINBOOL *pfSupported);
 6031
 6032    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
 6033        ISpVoice *This,
 6034        HWND hwndParent,
 6035        LPCWSTR pszTitle,
 6036        LPCWSTR pszTypeOfUI,
 6037        void *pvExtraData,
 6038        ULONG cbExtraData);
 6039
 6040    END_INTERFACE
 6041} ISpVoiceVtbl;
 6042
 6043interface ISpVoice {
 6044    CONST_VTBL ISpVoiceVtbl* lpVtbl;
 6045};
 6046
 6047#ifdef COBJMACROS
 6048#ifndef WIDL_C_INLINE_WRAPPERS
 6049/*** IUnknown methods ***/
 6050#define ISpVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6051#define ISpVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
 6052#define ISpVoice_Release(This) (This)->lpVtbl->Release(This)
 6053/*** ISpNotifySource methods ***/
 6054#define ISpVoice_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
 6055#define ISpVoice_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
 6056#define ISpVoice_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
 6057#define ISpVoice_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
 6058#define ISpVoice_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
 6059#define ISpVoice_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
 6060#define ISpVoice_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
 6061/*** ISpEventSource methods ***/
 6062#define ISpVoice_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
 6063#define ISpVoice_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
 6064#define ISpVoice_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
 6065/*** ISpVoice methods ***/
 6066#define ISpVoice_SetOutput(This,pUnkOutput,fAllowFormatChanges) (This)->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges)
 6067#define ISpVoice_GetOutputObjectToken(This,ppObjectToken) (This)->lpVtbl->GetOutputObjectToken(This,ppObjectToken)
 6068#define ISpVoice_GetOutputStream(This,ppStream) (This)->lpVtbl->GetOutputStream(This,ppStream)
 6069#define ISpVoice_Pause(This) (This)->lpVtbl->Pause(This)
 6070#define ISpVoice_Resume(This) (This)->lpVtbl->Resume(This)
 6071#define ISpVoice_SetVoice(This,pToken) (This)->lpVtbl->SetVoice(This,pToken)
 6072#define ISpVoice_GetVoice(This,ppToken) (This)->lpVtbl->GetVoice(This,ppToken)
 6073#define ISpVoice_Speak(This,pwcs,dwFlags,pulStreamNumber) (This)->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber)
 6074#define ISpVoice_SpeakStream(This,pStream,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber)
 6075#define ISpVoice_GetStatus(This,pStatus,ppszLastBookmark) (This)->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark)
 6076#define ISpVoice_Skip(This,pItemType,lNumItems,pulNumSkipped) (This)->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped)
 6077#define ISpVoice_SetPriority(This,ePriority) (This)->lpVtbl->SetPriority(This,ePriority)
 6078#define ISpVoice_GetPriority(This,pePriority) (This)->lpVtbl->GetPriority(This,pePriority)
 6079#define ISpVoice_SetAlertBoundary(This,eBoundary) (This)->lpVtbl->SetAlertBoundary(This,eBoundary)
 6080#define ISpVoice_GetAlertBoundary(This,peBoundary) (This)->lpVtbl->GetAlertBoundary(This,peBoundary)
 6081#define ISpVoice_SetRate(This,RateAdjust) (This)->lpVtbl->SetRate(This,RateAdjust)
 6082#define ISpVoice_GetRate(This,pRateAdjust) (This)->lpVtbl->GetRate(This,pRateAdjust)
 6083#define ISpVoice_SetVolume(This,usVolume) (This)->lpVtbl->SetVolume(This,usVolume)
 6084#define ISpVoice_GetVolume(This,pusVolume) (This)->lpVtbl->GetVolume(This,pusVolume)
 6085#define ISpVoice_WaitUntilDone(This,msTimeout) (This)->lpVtbl->WaitUntilDone(This,msTimeout)
 6086#define ISpVoice_SetSyncSpeakTimeout(This,msTimeout) (This)->lpVtbl->SetSyncSpeakTimeout(This,msTimeout)
 6087#define ISpVoice_GetSyncSpeakTimeout(This,pmsTimeout) (This)->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout)
 6088#define ISpVoice_SpeakCompleteEvent(This) (This)->lpVtbl->SpeakCompleteEvent(This)
 6089#define ISpVoice_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
 6090#define ISpVoice_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
 6091#else
 6092/*** IUnknown methods ***/
 6093static inline HRESULT ISpVoice_QueryInterface(ISpVoice* This,REFIID riid,void **ppvObject) {
 6094    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6095}
 6096static inline ULONG ISpVoice_AddRef(ISpVoice* This) {
 6097    return This->lpVtbl->AddRef(This);
 6098}
 6099static inline ULONG ISpVoice_Release(ISpVoice* This) {
 6100    return This->lpVtbl->Release(This);
 6101}
 6102/*** ISpNotifySource methods ***/
 6103static inline HRESULT ISpVoice_SetNotifySink(ISpVoice* This,ISpNotifySink *pNotifySink) {
 6104    return This->lpVtbl->SetNotifySink(This,pNotifySink);
 6105}
 6106static inline HRESULT ISpVoice_SetNotifyWindowMessage(ISpVoice* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 6107    return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
 6108}
 6109static inline HRESULT ISpVoice_SetNotifyCallbackFunction(ISpVoice* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 6110    return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
 6111}
 6112static inline HRESULT ISpVoice_SetNotifyCallbackInterface(ISpVoice* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 6113    return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
 6114}
 6115static inline HRESULT ISpVoice_SetNotifyWin32Event(ISpVoice* This) {
 6116    return This->lpVtbl->SetNotifyWin32Event(This);
 6117}
 6118static inline HRESULT ISpVoice_WaitForNotifyEvent(ISpVoice* This,DWORD dwMilliseconds) {
 6119    return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
 6120}
 6121static inline HANDLE ISpVoice_GetNotifyEventHandle(ISpVoice* This) {
 6122    return This->lpVtbl->GetNotifyEventHandle(This);
 6123}
 6124/*** ISpEventSource methods ***/
 6125static inline HRESULT ISpVoice_SetInterest(ISpVoice* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
 6126    return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
 6127}
 6128static inline HRESULT ISpVoice_GetEvents(ISpVoice* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
 6129    return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
 6130}
 6131static inline HRESULT ISpVoice_GetInfo(ISpVoice* This,SPEVENTSOURCEINFO *pInfo) {
 6132    return This->lpVtbl->GetInfo(This,pInfo);
 6133}
 6134/*** ISpVoice methods ***/
 6135static inline HRESULT ISpVoice_SetOutput(ISpVoice* This,IUnknown *pUnkOutput,WINBOOL fAllowFormatChanges) {
 6136    return This->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges);
 6137}
 6138static inline HRESULT ISpVoice_GetOutputObjectToken(ISpVoice* This,ISpObjectToken **ppObjectToken) {
 6139    return This->lpVtbl->GetOutputObjectToken(This,ppObjectToken);
 6140}
 6141static inline HRESULT ISpVoice_GetOutputStream(ISpVoice* This,ISpStreamFormat **ppStream) {
 6142    return This->lpVtbl->GetOutputStream(This,ppStream);
 6143}
 6144static inline HRESULT ISpVoice_Pause(ISpVoice* This) {
 6145    return This->lpVtbl->Pause(This);
 6146}
 6147static inline HRESULT ISpVoice_Resume(ISpVoice* This) {
 6148    return This->lpVtbl->Resume(This);
 6149}
 6150static inline HRESULT ISpVoice_SetVoice(ISpVoice* This,ISpObjectToken *pToken) {
 6151    return This->lpVtbl->SetVoice(This,pToken);
 6152}
 6153static inline HRESULT ISpVoice_GetVoice(ISpVoice* This,ISpObjectToken **ppToken) {
 6154    return This->lpVtbl->GetVoice(This,ppToken);
 6155}
 6156static inline HRESULT ISpVoice_Speak(ISpVoice* This,LPCWSTR pwcs,DWORD dwFlags,ULONG *pulStreamNumber) {
 6157    return This->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber);
 6158}
 6159static inline HRESULT ISpVoice_SpeakStream(ISpVoice* This,IStream *pStream,DWORD dwFlags,ULONG *pulStreamNumber) {
 6160    return This->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber);
 6161}
 6162static inline HRESULT ISpVoice_GetStatus(ISpVoice* This,SPVOICESTATUS *pStatus,LPWSTR *ppszLastBookmark) {
 6163    return This->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark);
 6164}
 6165static inline HRESULT ISpVoice_Skip(ISpVoice* This,LPCWSTR pItemType,LONG lNumItems,ULONG *pulNumSkipped) {
 6166    return This->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped);
 6167}
 6168static inline HRESULT ISpVoice_SetPriority(ISpVoice* This,SPVPRIORITY ePriority) {
 6169    return This->lpVtbl->SetPriority(This,ePriority);
 6170}
 6171static inline HRESULT ISpVoice_GetPriority(ISpVoice* This,SPVPRIORITY *pePriority) {
 6172    return This->lpVtbl->GetPriority(This,pePriority);
 6173}
 6174static inline HRESULT ISpVoice_SetAlertBoundary(ISpVoice* This,SPEVENTENUM eBoundary) {
 6175    return This->lpVtbl->SetAlertBoundary(This,eBoundary);
 6176}
 6177static inline HRESULT ISpVoice_GetAlertBoundary(ISpVoice* This,SPEVENTENUM *peBoundary) {
 6178    return This->lpVtbl->GetAlertBoundary(This,peBoundary);
 6179}
 6180static inline HRESULT ISpVoice_SetRate(ISpVoice* This,LONG RateAdjust) {
 6181    return This->lpVtbl->SetRate(This,RateAdjust);
 6182}
 6183static inline HRESULT ISpVoice_GetRate(ISpVoice* This,LONG *pRateAdjust) {
 6184    return This->lpVtbl->GetRate(This,pRateAdjust);
 6185}
 6186static inline HRESULT ISpVoice_SetVolume(ISpVoice* This,USHORT usVolume) {
 6187    return This->lpVtbl->SetVolume(This,usVolume);
 6188}
 6189static inline HRESULT ISpVoice_GetVolume(ISpVoice* This,USHORT *pusVolume) {
 6190    return This->lpVtbl->GetVolume(This,pusVolume);
 6191}
 6192static inline HRESULT ISpVoice_WaitUntilDone(ISpVoice* This,ULONG msTimeout) {
 6193    return This->lpVtbl->WaitUntilDone(This,msTimeout);
 6194}
 6195static inline HRESULT ISpVoice_SetSyncSpeakTimeout(ISpVoice* This,ULONG msTimeout) {
 6196    return This->lpVtbl->SetSyncSpeakTimeout(This,msTimeout);
 6197}
 6198static inline HRESULT ISpVoice_GetSyncSpeakTimeout(ISpVoice* This,ULONG *pmsTimeout) {
 6199    return This->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout);
 6200}
 6201static inline HANDLE ISpVoice_SpeakCompleteEvent(ISpVoice* This) {
 6202    return This->lpVtbl->SpeakCompleteEvent(This);
 6203}
 6204static inline HRESULT ISpVoice_IsUISupported(ISpVoice* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
 6205    return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
 6206}
 6207static inline HRESULT ISpVoice_DisplayUI(ISpVoice* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
 6208    return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
 6209}
 6210#endif
 6211#endif
 6212
 6213#endif
 6214
 6215
 6216#endif  /* __ISpVoice_INTERFACE_DEFINED__ */
 6217
 6218/*****************************************************************************
 6219 * ISpPhrase interface
 6220 */
 6221#ifndef __ISpPhrase_INTERFACE_DEFINED__
 6222#define __ISpPhrase_INTERFACE_DEFINED__
 6223
 6224DEFINE_GUID(IID_ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53);
 6225#if defined(__cplusplus) && !defined(CINTERFACE)
 6226MIDL_INTERFACE("1a5c0354-b621-4b5a-8791-d306ed379e53")
 6227ISpPhrase : public IUnknown
 6228{
 6229    virtual HRESULT STDMETHODCALLTYPE GetPhrase(
 6230        SPPHRASE **ppCoMemPhrase) = 0;
 6231
 6232    virtual HRESULT STDMETHODCALLTYPE GetSerializedPhrase(
 6233        SPSERIALIZEDPHRASE **ppCoMemPhrase) = 0;
 6234
 6235    virtual HRESULT STDMETHODCALLTYPE GetText(
 6236        ULONG ulStart,
 6237        ULONG ulCount,
 6238        WINBOOL fUseTextReplacements,
 6239        LPWSTR *ppszCoMemText,
 6240        BYTE *pbDisplayAttributes) = 0;
 6241
 6242    virtual HRESULT STDMETHODCALLTYPE Discard(
 6243        DWORD dwValueTypes) = 0;
 6244
 6245};
 6246#ifdef __CRT_UUID_DECL
 6247__CRT_UUID_DECL(ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53)
 6248#endif
 6249#else
 6250typedef struct ISpPhraseVtbl {
 6251    BEGIN_INTERFACE
 6252
 6253    /*** IUnknown methods ***/
 6254    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6255        ISpPhrase *This,
 6256        REFIID riid,
 6257        void **ppvObject);
 6258
 6259    ULONG (STDMETHODCALLTYPE *AddRef)(
 6260        ISpPhrase *This);
 6261
 6262    ULONG (STDMETHODCALLTYPE *Release)(
 6263        ISpPhrase *This);
 6264
 6265    /*** ISpPhrase methods ***/
 6266    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 6267        ISpPhrase *This,
 6268        SPPHRASE **ppCoMemPhrase);
 6269
 6270    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 6271        ISpPhrase *This,
 6272        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 6273
 6274    HRESULT (STDMETHODCALLTYPE *GetText)(
 6275        ISpPhrase *This,
 6276        ULONG ulStart,
 6277        ULONG ulCount,
 6278        WINBOOL fUseTextReplacements,
 6279        LPWSTR *ppszCoMemText,
 6280        BYTE *pbDisplayAttributes);
 6281
 6282    HRESULT (STDMETHODCALLTYPE *Discard)(
 6283        ISpPhrase *This,
 6284        DWORD dwValueTypes);
 6285
 6286    END_INTERFACE
 6287} ISpPhraseVtbl;
 6288
 6289interface ISpPhrase {
 6290    CONST_VTBL ISpPhraseVtbl* lpVtbl;
 6291};
 6292
 6293#ifdef COBJMACROS
 6294#ifndef WIDL_C_INLINE_WRAPPERS
 6295/*** IUnknown methods ***/
 6296#define ISpPhrase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6297#define ISpPhrase_AddRef(This) (This)->lpVtbl->AddRef(This)
 6298#define ISpPhrase_Release(This) (This)->lpVtbl->Release(This)
 6299/*** ISpPhrase methods ***/
 6300#define ISpPhrase_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 6301#define ISpPhrase_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 6302#define ISpPhrase_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 6303#define ISpPhrase_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 6304#else
 6305/*** IUnknown methods ***/
 6306static inline HRESULT ISpPhrase_QueryInterface(ISpPhrase* This,REFIID riid,void **ppvObject) {
 6307    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6308}
 6309static inline ULONG ISpPhrase_AddRef(ISpPhrase* This) {
 6310    return This->lpVtbl->AddRef(This);
 6311}
 6312static inline ULONG ISpPhrase_Release(ISpPhrase* This) {
 6313    return This->lpVtbl->Release(This);
 6314}
 6315/*** ISpPhrase methods ***/
 6316static inline HRESULT ISpPhrase_GetPhrase(ISpPhrase* This,SPPHRASE **ppCoMemPhrase) {
 6317    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 6318}
 6319static inline HRESULT ISpPhrase_GetSerializedPhrase(ISpPhrase* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 6320    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 6321}
 6322static inline HRESULT ISpPhrase_GetText(ISpPhrase* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 6323    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 6324}
 6325static inline HRESULT ISpPhrase_Discard(ISpPhrase* This,DWORD dwValueTypes) {
 6326    return This->lpVtbl->Discard(This,dwValueTypes);
 6327}
 6328#endif
 6329#endif
 6330
 6331#endif
 6332
 6333
 6334#endif  /* __ISpPhrase_INTERFACE_DEFINED__ */
 6335
 6336/*****************************************************************************
 6337 * ISpPhraseAlt interface
 6338 */
 6339#ifndef __ISpPhraseAlt_INTERFACE_DEFINED__
 6340#define __ISpPhraseAlt_INTERFACE_DEFINED__
 6341
 6342DEFINE_GUID(IID_ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d);
 6343#if defined(__cplusplus) && !defined(CINTERFACE)
 6344MIDL_INTERFACE("8fcebc98-4e49-4067-9c6c-d86a0e092e3d")
 6345ISpPhraseAlt : public ISpPhrase
 6346{
 6347    virtual HRESULT STDMETHODCALLTYPE GetAltInfo(
 6348        ISpPhrase **ppParent,
 6349        ULONG *pulStartElementInParent,
 6350        ULONG *pcElementsInParent,
 6351        ULONG *pcElementsInAlt) = 0;
 6352
 6353    virtual HRESULT STDMETHODCALLTYPE Commit(
 6354        ) = 0;
 6355
 6356};
 6357#ifdef __CRT_UUID_DECL
 6358__CRT_UUID_DECL(ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d)
 6359#endif
 6360#else
 6361typedef struct ISpPhraseAltVtbl {
 6362    BEGIN_INTERFACE
 6363
 6364    /*** IUnknown methods ***/
 6365    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6366        ISpPhraseAlt *This,
 6367        REFIID riid,
 6368        void **ppvObject);
 6369
 6370    ULONG (STDMETHODCALLTYPE *AddRef)(
 6371        ISpPhraseAlt *This);
 6372
 6373    ULONG (STDMETHODCALLTYPE *Release)(
 6374        ISpPhraseAlt *This);
 6375
 6376    /*** ISpPhrase methods ***/
 6377    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 6378        ISpPhraseAlt *This,
 6379        SPPHRASE **ppCoMemPhrase);
 6380
 6381    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 6382        ISpPhraseAlt *This,
 6383        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 6384
 6385    HRESULT (STDMETHODCALLTYPE *GetText)(
 6386        ISpPhraseAlt *This,
 6387        ULONG ulStart,
 6388        ULONG ulCount,
 6389        WINBOOL fUseTextReplacements,
 6390        LPWSTR *ppszCoMemText,
 6391        BYTE *pbDisplayAttributes);
 6392
 6393    HRESULT (STDMETHODCALLTYPE *Discard)(
 6394        ISpPhraseAlt *This,
 6395        DWORD dwValueTypes);
 6396
 6397    /*** ISpPhraseAlt methods ***/
 6398    HRESULT (STDMETHODCALLTYPE *GetAltInfo)(
 6399        ISpPhraseAlt *This,
 6400        ISpPhrase **ppParent,
 6401        ULONG *pulStartElementInParent,
 6402        ULONG *pcElementsInParent,
 6403        ULONG *pcElementsInAlt);
 6404
 6405    HRESULT (STDMETHODCALLTYPE *Commit)(
 6406        ISpPhraseAlt *This);
 6407
 6408    END_INTERFACE
 6409} ISpPhraseAltVtbl;
 6410
 6411interface ISpPhraseAlt {
 6412    CONST_VTBL ISpPhraseAltVtbl* lpVtbl;
 6413};
 6414
 6415#ifdef COBJMACROS
 6416#ifndef WIDL_C_INLINE_WRAPPERS
 6417/*** IUnknown methods ***/
 6418#define ISpPhraseAlt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6419#define ISpPhraseAlt_AddRef(This) (This)->lpVtbl->AddRef(This)
 6420#define ISpPhraseAlt_Release(This) (This)->lpVtbl->Release(This)
 6421/*** ISpPhrase methods ***/
 6422#define ISpPhraseAlt_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 6423#define ISpPhraseAlt_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 6424#define ISpPhraseAlt_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 6425#define ISpPhraseAlt_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 6426/*** ISpPhraseAlt methods ***/
 6427#define ISpPhraseAlt_GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt) (This)->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
 6428#define ISpPhraseAlt_Commit(This) (This)->lpVtbl->Commit(This)
 6429#else
 6430/*** IUnknown methods ***/
 6431static inline HRESULT ISpPhraseAlt_QueryInterface(ISpPhraseAlt* This,REFIID riid,void **ppvObject) {
 6432    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6433}
 6434static inline ULONG ISpPhraseAlt_AddRef(ISpPhraseAlt* This) {
 6435    return This->lpVtbl->AddRef(This);
 6436}
 6437static inline ULONG ISpPhraseAlt_Release(ISpPhraseAlt* This) {
 6438    return This->lpVtbl->Release(This);
 6439}
 6440/*** ISpPhrase methods ***/
 6441static inline HRESULT ISpPhraseAlt_GetPhrase(ISpPhraseAlt* This,SPPHRASE **ppCoMemPhrase) {
 6442    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 6443}
 6444static inline HRESULT ISpPhraseAlt_GetSerializedPhrase(ISpPhraseAlt* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 6445    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 6446}
 6447static inline HRESULT ISpPhraseAlt_GetText(ISpPhraseAlt* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 6448    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 6449}
 6450static inline HRESULT ISpPhraseAlt_Discard(ISpPhraseAlt* This,DWORD dwValueTypes) {
 6451    return This->lpVtbl->Discard(This,dwValueTypes);
 6452}
 6453/*** ISpPhraseAlt methods ***/
 6454static inline HRESULT ISpPhraseAlt_GetAltInfo(ISpPhraseAlt* This,ISpPhrase **ppParent,ULONG *pulStartElementInParent,ULONG *pcElementsInParent,ULONG *pcElementsInAlt) {
 6455    return This->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt);
 6456}
 6457static inline HRESULT ISpPhraseAlt_Commit(ISpPhraseAlt* This) {
 6458    return This->lpVtbl->Commit(This);
 6459}
 6460#endif
 6461#endif
 6462
 6463#endif
 6464
 6465
 6466#endif  /* __ISpPhraseAlt_INTERFACE_DEFINED__ */
 6467
 6468typedef struct SPRECORESULTTIMES {
 6469    FILETIME ftStreamTime;
 6470    ULONGLONG ullLength;
 6471    DWORD dwTickCount;
 6472    ULONGLONG ullStart;
 6473} SPRECORESULTTIMES;
 6474typedef struct SPSERIALIZEDRESULT {
 6475    ULONG ulSerializedSize;
 6476} SPSERIALIZEDRESULT;
 6477/*****************************************************************************
 6478 * ISpRecoResult interface
 6479 */
 6480#ifndef __ISpRecoResult_INTERFACE_DEFINED__
 6481#define __ISpRecoResult_INTERFACE_DEFINED__
 6482
 6483DEFINE_GUID(IID_ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42);
 6484#if defined(__cplusplus) && !defined(CINTERFACE)
 6485MIDL_INTERFACE("20b053be-e235-43cd-9a2a-8d17a48b7842")
 6486ISpRecoResult : public ISpPhrase
 6487{
 6488    virtual HRESULT STDMETHODCALLTYPE GetResultTimes(
 6489        SPRECORESULTTIMES *pTimes) = 0;
 6490
 6491    virtual HRESULT STDMETHODCALLTYPE GetAlternates(
 6492        ULONG ulStartElement,
 6493        ULONG cElements,
 6494        ULONG ulRequestCount,
 6495        ISpPhraseAlt **ppPhrases,
 6496        ULONG *pcPhrasesReturned) = 0;
 6497
 6498    virtual HRESULT STDMETHODCALLTYPE GetAudio(
 6499        ULONG ulStartElement,
 6500        ULONG cElements,
 6501        ISpStreamFormat **ppStream) = 0;
 6502
 6503    virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
 6504        ULONG ulStartElement,
 6505        ULONG cElements,
 6506        DWORD dwFlags,
 6507        ULONG *pulStreamNumber) = 0;
 6508
 6509    virtual HRESULT STDMETHODCALLTYPE Serialize(
 6510        SPSERIALIZEDRESULT **ppCoMemSerializedResult) = 0;
 6511
 6512    virtual HRESULT STDMETHODCALLTYPE ScaleAudio(
 6513        const GUID *pAudioFormatId,
 6514        const WAVEFORMATEX *pWaveFormatEx) = 0;
 6515
 6516    virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
 6517        ISpRecoContext **ppRecoContext) = 0;
 6518
 6519};
 6520#ifdef __CRT_UUID_DECL
 6521__CRT_UUID_DECL(ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42)
 6522#endif
 6523#else
 6524typedef struct ISpRecoResultVtbl {
 6525    BEGIN_INTERFACE
 6526
 6527    /*** IUnknown methods ***/
 6528    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6529        ISpRecoResult *This,
 6530        REFIID riid,
 6531        void **ppvObject);
 6532
 6533    ULONG (STDMETHODCALLTYPE *AddRef)(
 6534        ISpRecoResult *This);
 6535
 6536    ULONG (STDMETHODCALLTYPE *Release)(
 6537        ISpRecoResult *This);
 6538
 6539    /*** ISpPhrase methods ***/
 6540    HRESULT (STDMETHODCALLTYPE *GetPhrase)(
 6541        ISpRecoResult *This,
 6542        SPPHRASE **ppCoMemPhrase);
 6543
 6544    HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
 6545        ISpRecoResult *This,
 6546        SPSERIALIZEDPHRASE **ppCoMemPhrase);
 6547
 6548    HRESULT (STDMETHODCALLTYPE *GetText)(
 6549        ISpRecoResult *This,
 6550        ULONG ulStart,
 6551        ULONG ulCount,
 6552        WINBOOL fUseTextReplacements,
 6553        LPWSTR *ppszCoMemText,
 6554        BYTE *pbDisplayAttributes);
 6555
 6556    HRESULT (STDMETHODCALLTYPE *Discard)(
 6557        ISpRecoResult *This,
 6558        DWORD dwValueTypes);
 6559
 6560    /*** ISpRecoResult methods ***/
 6561    HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
 6562        ISpRecoResult *This,
 6563        SPRECORESULTTIMES *pTimes);
 6564
 6565    HRESULT (STDMETHODCALLTYPE *GetAlternates)(
 6566        ISpRecoResult *This,
 6567        ULONG ulStartElement,
 6568        ULONG cElements,
 6569        ULONG ulRequestCount,
 6570        ISpPhraseAlt **ppPhrases,
 6571        ULONG *pcPhrasesReturned);
 6572
 6573    HRESULT (STDMETHODCALLTYPE *GetAudio)(
 6574        ISpRecoResult *This,
 6575        ULONG ulStartElement,
 6576        ULONG cElements,
 6577        ISpStreamFormat **ppStream);
 6578
 6579    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
 6580        ISpRecoResult *This,
 6581        ULONG ulStartElement,
 6582        ULONG cElements,
 6583        DWORD dwFlags,
 6584        ULONG *pulStreamNumber);
 6585
 6586    HRESULT (STDMETHODCALLTYPE *Serialize)(
 6587        ISpRecoResult *This,
 6588        SPSERIALIZEDRESULT **ppCoMemSerializedResult);
 6589
 6590    HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
 6591        ISpRecoResult *This,
 6592        const GUID *pAudioFormatId,
 6593        const WAVEFORMATEX *pWaveFormatEx);
 6594
 6595    HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
 6596        ISpRecoResult *This,
 6597        ISpRecoContext **ppRecoContext);
 6598
 6599    END_INTERFACE
 6600} ISpRecoResultVtbl;
 6601
 6602interface ISpRecoResult {
 6603    CONST_VTBL ISpRecoResultVtbl* lpVtbl;
 6604};
 6605
 6606#ifdef COBJMACROS
 6607#ifndef WIDL_C_INLINE_WRAPPERS
 6608/*** IUnknown methods ***/
 6609#define ISpRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6610#define ISpRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
 6611#define ISpRecoResult_Release(This) (This)->lpVtbl->Release(This)
 6612/*** ISpPhrase methods ***/
 6613#define ISpRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
 6614#define ISpRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
 6615#define ISpRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
 6616#define ISpRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
 6617/*** ISpRecoResult methods ***/
 6618#define ISpRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
 6619#define ISpRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
 6620#define ISpRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
 6621#define ISpRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
 6622#define ISpRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
 6623#define ISpRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
 6624#define ISpRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
 6625#else
 6626/*** IUnknown methods ***/
 6627static inline HRESULT ISpRecoResult_QueryInterface(ISpRecoResult* This,REFIID riid,void **ppvObject) {
 6628    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6629}
 6630static inline ULONG ISpRecoResult_AddRef(ISpRecoResult* This) {
 6631    return This->lpVtbl->AddRef(This);
 6632}
 6633static inline ULONG ISpRecoResult_Release(ISpRecoResult* This) {
 6634    return This->lpVtbl->Release(This);
 6635}
 6636/*** ISpPhrase methods ***/
 6637static inline HRESULT ISpRecoResult_GetPhrase(ISpRecoResult* This,SPPHRASE **ppCoMemPhrase) {
 6638    return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
 6639}
 6640static inline HRESULT ISpRecoResult_GetSerializedPhrase(ISpRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
 6641    return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
 6642}
 6643static inline HRESULT ISpRecoResult_GetText(ISpRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
 6644    return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
 6645}
 6646static inline HRESULT ISpRecoResult_Discard(ISpRecoResult* This,DWORD dwValueTypes) {
 6647    return This->lpVtbl->Discard(This,dwValueTypes);
 6648}
 6649/*** ISpRecoResult methods ***/
 6650static inline HRESULT ISpRecoResult_GetResultTimes(ISpRecoResult* This,SPRECORESULTTIMES *pTimes) {
 6651    return This->lpVtbl->GetResultTimes(This,pTimes);
 6652}
 6653static inline HRESULT ISpRecoResult_GetAlternates(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
 6654    return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
 6655}
 6656static inline HRESULT ISpRecoResult_GetAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
 6657    return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
 6658}
 6659static inline HRESULT ISpRecoResult_SpeakAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
 6660    return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
 6661}
 6662static inline HRESULT ISpRecoResult_Serialize(ISpRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
 6663    return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
 6664}
 6665static inline HRESULT ISpRecoResult_ScaleAudio(ISpRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
 6666    return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
 6667}
 6668static inline HRESULT ISpRecoResult_GetRecoContext(ISpRecoResult* This,ISpRecoContext **ppRecoContext) {
 6669    return This->lpVtbl->GetRecoContext(This,ppRecoContext);
 6670}
 6671#endif
 6672#endif
 6673
 6674#endif
 6675
 6676
 6677#endif  /* __ISpRecoResult_INTERFACE_DEFINED__ */
 6678
 6679typedef struct tagSPTEXTSELECTIONINFO {
 6680    ULONG ulStartActiveOffset;
 6681    ULONG cchActiveChars;
 6682    ULONG ulStartSelection;
 6683    ULONG cchSelection;
 6684} SPTEXTSELECTIONINFO;
 6685typedef enum SPWORDPRONOUNCEABLE {
 6686    SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0,
 6687    SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1,
 6688    SPWP_KNOWN_WORD_PRONOUNCEABLE = 2
 6689} SPWORDPRONOUNCEABLE;
 6690typedef enum SPGRAMMARSTATE {
 6691    SPGS_DISABLED = 0,
 6692    SPGS_ENABLED = 1,
 6693    SPGS_EXCLUSIVE = 3
 6694} SPGRAMMARSTATE;
 6695typedef enum SPCONTEXTSTATE {
 6696    SPCS_DISABLED = 0,
 6697    SPCS_ENABLED = 1
 6698} SPCONTEXTSTATE;
 6699typedef enum SPRULESTATE {
 6700    SPRS_INACTIVE = 0,
 6701    SPRS_ACTIVE = 1,
 6702    SPRS_ACTIVE_WITH_AUTO_PAUSE = 3
 6703} SPRULESTATE;
 6704#define SP_STREAMPOS_ASAP (0)
 6705
 6706#define SP_STREAMPOS_REALTIME (-1)
 6707
 6708#define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE) (-1)
 6709#define SPRULETRANS_WILDCARD (SPSTATEHANDLE) (-2)
 6710#define SPRULETRANS_DICTATION (SPSTATEHANDLE) (-3)
 6711typedef enum SPGRAMMARWORDTYPE {
 6712    SPWT_DISPLAY = 0,
 6713    SPWT_LEXICAL = 1,
 6714    SPWT_PRONUNCIATION = 2
 6715} SPGRAMMARWORDTYPE;
 6716typedef struct tagSPPROPERTYINFO {
 6717    LPCWSTR pszName;
 6718    ULONG ulId;
 6719    LPCWSTR pszValue;
 6720    VARIANT vValue;
 6721} SPPROPERTYINFO;
 6722typedef enum SPCFGRULEATTRIBUTES {
 6723    SPRAF_TopLevel = 0x1,
 6724    SPRAF_Active = 0x2,
 6725    SPRAF_Export = 0x4,
 6726    SPRAF_Import = 0x8,
 6727    SPRAF_Interpreter = 0x10,
 6728    SPRAF_Dynamic = 0x20,
 6729    SPRAF_AutoPause = 0x10000
 6730} SPCFGRULEATTRIBUTES;
 6731/*****************************************************************************
 6732 * ISpGrammarBuilder interface
 6733 */
 6734#ifndef __ISpGrammarBuilder_INTERFACE_DEFINED__
 6735#define __ISpGrammarBuilder_INTERFACE_DEFINED__
 6736
 6737DEFINE_GUID(IID_ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68);
 6738#if defined(__cplusplus) && !defined(CINTERFACE)
 6739MIDL_INTERFACE("8137828f-591a-4a42-be58-49ea7ebaac68")
 6740ISpGrammarBuilder : public IUnknown
 6741{
 6742    virtual HRESULT STDMETHODCALLTYPE ResetGrammar(
 6743        WORD NewLanguage) = 0;
 6744
 6745    virtual HRESULT STDMETHODCALLTYPE GetRule(
 6746        LPCWSTR pszRuleName,
 6747        DWORD dwRuleId,
 6748        DWORD dwAttributes,
 6749        WINBOOL fCreateIfNotExist,
 6750        SPSTATEHANDLE *phInitialState) = 0;
 6751
 6752    virtual HRESULT STDMETHODCALLTYPE ClearRule(
 6753        SPSTATEHANDLE hState) = 0;
 6754
 6755    virtual HRESULT STDMETHODCALLTYPE CreateNewState(
 6756        SPSTATEHANDLE hState,
 6757        SPSTATEHANDLE *phState) = 0;
 6758
 6759    virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
 6760        SPSTATEHANDLE hFromState,
 6761        SPSTATEHANDLE hToState,
 6762        LPCWSTR psz,
 6763        LPCWSTR pszSeparators,
 6764        SPGRAMMARWORDTYPE eWordType,
 6765        float Weight,
 6766        const SPPROPERTYINFO *pPropInfo) = 0;
 6767
 6768    virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
 6769        SPSTATEHANDLE hFromState,
 6770        SPSTATEHANDLE hToState,
 6771        SPSTATEHANDLE hRule,
 6772        float Weight,
 6773        const SPPROPERTYINFO *pPropInfo) = 0;
 6774
 6775    virtual HRESULT STDMETHODCALLTYPE AddResource(
 6776        SPSTATEHANDLE hRuleState,
 6777        LPCWSTR pszResourceName,
 6778        LPCWSTR pszResourceValue) = 0;
 6779
 6780    virtual HRESULT STDMETHODCALLTYPE Commit(
 6781        DWORD dwReserved) = 0;
 6782
 6783};
 6784#ifdef __CRT_UUID_DECL
 6785__CRT_UUID_DECL(ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68)
 6786#endif
 6787#else
 6788typedef struct ISpGrammarBuilderVtbl {
 6789    BEGIN_INTERFACE
 6790
 6791    /*** IUnknown methods ***/
 6792    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6793        ISpGrammarBuilder *This,
 6794        REFIID riid,
 6795        void **ppvObject);
 6796
 6797    ULONG (STDMETHODCALLTYPE *AddRef)(
 6798        ISpGrammarBuilder *This);
 6799
 6800    ULONG (STDMETHODCALLTYPE *Release)(
 6801        ISpGrammarBuilder *This);
 6802
 6803    /*** ISpGrammarBuilder methods ***/
 6804    HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
 6805        ISpGrammarBuilder *This,
 6806        WORD NewLanguage);
 6807
 6808    HRESULT (STDMETHODCALLTYPE *GetRule)(
 6809        ISpGrammarBuilder *This,
 6810        LPCWSTR pszRuleName,
 6811        DWORD dwRuleId,
 6812        DWORD dwAttributes,
 6813        WINBOOL fCreateIfNotExist,
 6814        SPSTATEHANDLE *phInitialState);
 6815
 6816    HRESULT (STDMETHODCALLTYPE *ClearRule)(
 6817        ISpGrammarBuilder *This,
 6818        SPSTATEHANDLE hState);
 6819
 6820    HRESULT (STDMETHODCALLTYPE *CreateNewState)(
 6821        ISpGrammarBuilder *This,
 6822        SPSTATEHANDLE hState,
 6823        SPSTATEHANDLE *phState);
 6824
 6825    HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
 6826        ISpGrammarBuilder *This,
 6827        SPSTATEHANDLE hFromState,
 6828        SPSTATEHANDLE hToState,
 6829        LPCWSTR psz,
 6830        LPCWSTR pszSeparators,
 6831        SPGRAMMARWORDTYPE eWordType,
 6832        float Weight,
 6833        const SPPROPERTYINFO *pPropInfo);
 6834
 6835    HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
 6836        ISpGrammarBuilder *This,
 6837        SPSTATEHANDLE hFromState,
 6838        SPSTATEHANDLE hToState,
 6839        SPSTATEHANDLE hRule,
 6840        float Weight,
 6841        const SPPROPERTYINFO *pPropInfo);
 6842
 6843    HRESULT (STDMETHODCALLTYPE *AddResource)(
 6844        ISpGrammarBuilder *This,
 6845        SPSTATEHANDLE hRuleState,
 6846        LPCWSTR pszResourceName,
 6847        LPCWSTR pszResourceValue);
 6848
 6849    HRESULT (STDMETHODCALLTYPE *Commit)(
 6850        ISpGrammarBuilder *This,
 6851        DWORD dwReserved);
 6852
 6853    END_INTERFACE
 6854} ISpGrammarBuilderVtbl;
 6855
 6856interface ISpGrammarBuilder {
 6857    CONST_VTBL ISpGrammarBuilderVtbl* lpVtbl;
 6858};
 6859
 6860#ifdef COBJMACROS
 6861#ifndef WIDL_C_INLINE_WRAPPERS
 6862/*** IUnknown methods ***/
 6863#define ISpGrammarBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6864#define ISpGrammarBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
 6865#define ISpGrammarBuilder_Release(This) (This)->lpVtbl->Release(This)
 6866/*** ISpGrammarBuilder methods ***/
 6867#define ISpGrammarBuilder_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
 6868#define ISpGrammarBuilder_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
 6869#define ISpGrammarBuilder_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
 6870#define ISpGrammarBuilder_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
 6871#define ISpGrammarBuilder_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
 6872#define ISpGrammarBuilder_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
 6873#define ISpGrammarBuilder_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
 6874#define ISpGrammarBuilder_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
 6875#else
 6876/*** IUnknown methods ***/
 6877static inline HRESULT ISpGrammarBuilder_QueryInterface(ISpGrammarBuilder* This,REFIID riid,void **ppvObject) {
 6878    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6879}
 6880static inline ULONG ISpGrammarBuilder_AddRef(ISpGrammarBuilder* This) {
 6881    return This->lpVtbl->AddRef(This);
 6882}
 6883static inline ULONG ISpGrammarBuilder_Release(ISpGrammarBuilder* This) {
 6884    return This->lpVtbl->Release(This);
 6885}
 6886/*** ISpGrammarBuilder methods ***/
 6887static inline HRESULT ISpGrammarBuilder_ResetGrammar(ISpGrammarBuilder* This,WORD NewLanguage) {
 6888    return This->lpVtbl->ResetGrammar(This,NewLanguage);
 6889}
 6890static inline HRESULT ISpGrammarBuilder_GetRule(ISpGrammarBuilder* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
 6891    return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
 6892}
 6893static inline HRESULT ISpGrammarBuilder_ClearRule(ISpGrammarBuilder* This,SPSTATEHANDLE hState) {
 6894    return This->lpVtbl->ClearRule(This,hState);
 6895}
 6896static inline HRESULT ISpGrammarBuilder_CreateNewState(ISpGrammarBuilder* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
 6897    return This->lpVtbl->CreateNewState(This,hState,phState);
 6898}
 6899static inline HRESULT ISpGrammarBuilder_AddWordTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
 6900    return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
 6901}
 6902static inline HRESULT ISpGrammarBuilder_AddRuleTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
 6903    return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
 6904}
 6905static inline HRESULT ISpGrammarBuilder_AddResource(ISpGrammarBuilder* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
 6906    return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
 6907}
 6908static inline HRESULT ISpGrammarBuilder_Commit(ISpGrammarBuilder* This,DWORD dwReserved) {
 6909    return This->lpVtbl->Commit(This,dwReserved);
 6910}
 6911#endif
 6912#endif
 6913
 6914#endif
 6915
 6916
 6917#endif  /* __ISpGrammarBuilder_INTERFACE_DEFINED__ */
 6918
 6919typedef enum SPLOADOPTIONS {
 6920    SPLO_STATIC = 0,
 6921    SPLO_DYNAMIC = 1
 6922} SPLOADOPTIONS;
 6923/*****************************************************************************
 6924 * ISpRecoGrammar interface
 6925 */
 6926#ifndef __ISpRecoGrammar_INTERFACE_DEFINED__
 6927#define __ISpRecoGrammar_INTERFACE_DEFINED__
 6928
 6929DEFINE_GUID(IID_ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02);
 6930#if defined(__cplusplus) && !defined(CINTERFACE)
 6931MIDL_INTERFACE("2177db29-7f45-47d0-8554-067e91c80502")
 6932ISpRecoGrammar : public ISpGrammarBuilder
 6933{
 6934    virtual HRESULT STDMETHODCALLTYPE GetGrammarId(
 6935        ULONGLONG *pullGrammarId) = 0;
 6936
 6937    virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
 6938        ISpRecoContext **ppRecoCtxt) = 0;
 6939
 6940    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile(
 6941        LPCWSTR pszFileName,
 6942        SPLOADOPTIONS Options) = 0;
 6943
 6944    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromObject(
 6945        REFCLSID rcid,
 6946        LPCWSTR pszGrammarName,
 6947        SPLOADOPTIONS Options) = 0;
 6948
 6949    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromResource(
 6950        HMODULE hModule,
 6951        LPCWSTR pszResourceName,
 6952        LPCWSTR pszResourceType,
 6953        WORD wLanguage,
 6954        SPLOADOPTIONS Options) = 0;
 6955
 6956    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory(
 6957        const SPBINARYGRAMMAR *pGrammar,
 6958        SPLOADOPTIONS Options) = 0;
 6959
 6960    virtual HRESULT STDMETHODCALLTYPE LoadCmdFromProprietaryGrammar(
 6961        REFGUID rguidParam,
 6962        LPCWSTR pszStringParam,
 6963        const void *pvDataPrarm,
 6964        ULONG cbDataSize,
 6965        SPLOADOPTIONS Options) = 0;
 6966
 6967    virtual HRESULT STDMETHODCALLTYPE SetRuleState(
 6968        LPCWSTR pszName,
 6969        void *pReserved,
 6970        SPRULESTATE NewState) = 0;
 6971
 6972    virtual HRESULT STDMETHODCALLTYPE SetRuleIdState(
 6973        ULONG ulRuleId,
 6974        SPRULESTATE NewState) = 0;
 6975
 6976    virtual HRESULT STDMETHODCALLTYPE LoadDictation(
 6977        LPCWSTR pszTopicName,
 6978        SPLOADOPTIONS Options) = 0;
 6979
 6980    virtual HRESULT STDMETHODCALLTYPE UnloadDictation(
 6981        ) = 0;
 6982
 6983    virtual HRESULT STDMETHODCALLTYPE SetDictationState(
 6984        SPRULESTATE NewState) = 0;
 6985
 6986    virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
 6987        const WCHAR *pText,
 6988        ULONG cchText,
 6989        const SPTEXTSELECTIONINFO *pInfo) = 0;
 6990
 6991    virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
 6992        const SPTEXTSELECTIONINFO *pInfo) = 0;
 6993
 6994    virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
 6995        LPCWSTR pszWord,
 6996        SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
 6997
 6998    virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
 6999        SPGRAMMARSTATE eGrammarState) = 0;
 7000
 7001    virtual HRESULT STDMETHODCALLTYPE SaveCmd(
 7002        IStream *pStream,
 7003        LPWSTR *ppszCoMemErrorText) = 0;
 7004
 7005    virtual HRESULT STDMETHODCALLTYPE GetGrammarState(
 7006        SPGRAMMARSTATE *peGrammarState) = 0;
 7007
 7008};
 7009#ifdef __CRT_UUID_DECL
 7010__CRT_UUID_DECL(ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02)
 7011#endif
 7012#else
 7013typedef struct ISpRecoGrammarVtbl {
 7014    BEGIN_INTERFACE
 7015
 7016    /*** IUnknown methods ***/
 7017    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7018        ISpRecoGrammar *This,
 7019        REFIID riid,
 7020        void **ppvObject);
 7021
 7022    ULONG (STDMETHODCALLTYPE *AddRef)(
 7023        ISpRecoGrammar *This);
 7024
 7025    ULONG (STDMETHODCALLTYPE *Release)(
 7026        ISpRecoGrammar *This);
 7027
 7028    /*** ISpGrammarBuilder methods ***/
 7029    HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
 7030        ISpRecoGrammar *This,
 7031        WORD NewLanguage);
 7032
 7033    HRESULT (STDMETHODCALLTYPE *GetRule)(
 7034        ISpRecoGrammar *This,
 7035        LPCWSTR pszRuleName,
 7036        DWORD dwRuleId,
 7037        DWORD dwAttributes,
 7038        WINBOOL fCreateIfNotExist,
 7039        SPSTATEHANDLE *phInitialState);
 7040
 7041    HRESULT (STDMETHODCALLTYPE *ClearRule)(
 7042        ISpRecoGrammar *This,
 7043        SPSTATEHANDLE hState);
 7044
 7045    HRESULT (STDMETHODCALLTYPE *CreateNewState)(
 7046        ISpRecoGrammar *This,
 7047        SPSTATEHANDLE hState,
 7048        SPSTATEHANDLE *phState);
 7049
 7050    HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
 7051        ISpRecoGrammar *This,
 7052        SPSTATEHANDLE hFromState,
 7053        SPSTATEHANDLE hToState,
 7054        LPCWSTR psz,
 7055        LPCWSTR pszSeparators,
 7056        SPGRAMMARWORDTYPE eWordType,
 7057        float Weight,
 7058        const SPPROPERTYINFO *pPropInfo);
 7059
 7060    HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
 7061        ISpRecoGrammar *This,
 7062        SPSTATEHANDLE hFromState,
 7063        SPSTATEHANDLE hToState,
 7064        SPSTATEHANDLE hRule,
 7065        float Weight,
 7066        const SPPROPERTYINFO *pPropInfo);
 7067
 7068    HRESULT (STDMETHODCALLTYPE *AddResource)(
 7069        ISpRecoGrammar *This,
 7070        SPSTATEHANDLE hRuleState,
 7071        LPCWSTR pszResourceName,
 7072        LPCWSTR pszResourceValue);
 7073
 7074    HRESULT (STDMETHODCALLTYPE *Commit)(
 7075        ISpRecoGrammar *This,
 7076        DWORD dwReserved);
 7077
 7078    /*** ISpRecoGrammar methods ***/
 7079    HRESULT (STDMETHODCALLTYPE *GetGrammarId)(
 7080        ISpRecoGrammar *This,
 7081        ULONGLONG *pullGrammarId);
 7082
 7083    HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
 7084        ISpRecoGrammar *This,
 7085        ISpRecoContext **ppRecoCtxt);
 7086
 7087    HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile)(
 7088        ISpRecoGrammar *This,
 7089        LPCWSTR pszFileName,
 7090        SPLOADOPTIONS Options);
 7091
 7092    HRESULT (STDMETHODCALLTYPE *LoadCmdFromObject)(
 7093        ISpRecoGrammar *This,
 7094        REFCLSID rcid,
 7095        LPCWSTR pszGrammarName,
 7096        SPLOADOPTIONS Options);
 7097
 7098    HRESULT (STDMETHODCALLTYPE *LoadCmdFromResource)(
 7099        ISpRecoGrammar *This,
 7100        HMODULE hModule,
 7101        LPCWSTR pszResourceName,
 7102        LPCWSTR pszResourceType,
 7103        WORD wLanguage,
 7104        SPLOADOPTIONS Options);
 7105
 7106    HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory)(
 7107        ISpRecoGrammar *This,
 7108        const SPBINARYGRAMMAR *pGrammar,
 7109        SPLOADOPTIONS Options);
 7110
 7111    HRESULT (STDMETHODCALLTYPE *LoadCmdFromProprietaryGrammar)(
 7112        ISpRecoGrammar *This,
 7113        REFGUID rguidParam,
 7114        LPCWSTR pszStringParam,
 7115        const void *pvDataPrarm,
 7116        ULONG cbDataSize,
 7117        SPLOADOPTIONS Options);
 7118
 7119    HRESULT (STDMETHODCALLTYPE *SetRuleState)(
 7120        ISpRecoGrammar *This,
 7121        LPCWSTR pszName,
 7122        void *pReserved,
 7123        SPRULESTATE NewState);
 7124
 7125    HRESULT (STDMETHODCALLTYPE *SetRuleIdState)(
 7126        ISpRecoGrammar *This,
 7127        ULONG ulRuleId,
 7128        SPRULESTATE NewState);
 7129
 7130    HRESULT (STDMETHODCALLTYPE *LoadDictation)(
 7131        ISpRecoGrammar *This,
 7132        LPCWSTR pszTopicName,
 7133        SPLOADOPTIONS Options);
 7134
 7135    HRESULT (STDMETHODCALLTYPE *UnloadDictation)(
 7136        ISpRecoGrammar *This);
 7137
 7138    HRESULT (STDMETHODCALLTYPE *SetDictationState)(
 7139        ISpRecoGrammar *This,
 7140        SPRULESTATE NewState);
 7141
 7142    HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
 7143        ISpRecoGrammar *This,
 7144        const WCHAR *pText,
 7145        ULONG cchText,
 7146        const SPTEXTSELECTIONINFO *pInfo);
 7147
 7148    HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
 7149        ISpRecoGrammar *This,
 7150        const SPTEXTSELECTIONINFO *pInfo);
 7151
 7152    HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
 7153        ISpRecoGrammar *This,
 7154        LPCWSTR pszWord,
 7155        SPWORDPRONOUNCEABLE *pWordPronounceable);
 7156
 7157    HRESULT (STDMETHODCALLTYPE *SetGrammarState)(
 7158        ISpRecoGrammar *This,
 7159        SPGRAMMARSTATE eGrammarState);
 7160
 7161    HRESULT (STDMETHODCALLTYPE *SaveCmd)(
 7162        ISpRecoGrammar *This,
 7163        IStream *pStream,
 7164        LPWSTR *ppszCoMemErrorText);
 7165
 7166    HRESULT (STDMETHODCALLTYPE *GetGrammarState)(
 7167        ISpRecoGrammar *This,
 7168        SPGRAMMARSTATE *peGrammarState);
 7169
 7170    END_INTERFACE
 7171} ISpRecoGrammarVtbl;
 7172
 7173interface ISpRecoGrammar {
 7174    CONST_VTBL ISpRecoGrammarVtbl* lpVtbl;
 7175};
 7176
 7177#ifdef COBJMACROS
 7178#ifndef WIDL_C_INLINE_WRAPPERS
 7179/*** IUnknown methods ***/
 7180#define ISpRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7181#define ISpRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
 7182#define ISpRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
 7183/*** ISpGrammarBuilder methods ***/
 7184#define ISpRecoGrammar_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
 7185#define ISpRecoGrammar_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
 7186#define ISpRecoGrammar_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
 7187#define ISpRecoGrammar_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
 7188#define ISpRecoGrammar_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
 7189#define ISpRecoGrammar_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
 7190#define ISpRecoGrammar_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
 7191#define ISpRecoGrammar_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
 7192/*** ISpRecoGrammar methods ***/
 7193#define ISpRecoGrammar_GetGrammarId(This,pullGrammarId) (This)->lpVtbl->GetGrammarId(This,pullGrammarId)
 7194#define ISpRecoGrammar_GetRecoContext(This,ppRecoCtxt) (This)->lpVtbl->GetRecoContext(This,ppRecoCtxt)
 7195#define ISpRecoGrammar_LoadCmdFromFile(This,pszFileName,Options) (This)->lpVtbl->LoadCmdFromFile(This,pszFileName,Options)
 7196#define ISpRecoGrammar_LoadCmdFromObject(This,rcid,pszGrammarName,Options) (This)->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options)
 7197#define ISpRecoGrammar_LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options) (This)->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
 7198#define ISpRecoGrammar_LoadCmdFromMemory(This,pGrammar,Options) (This)->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options)
 7199#define ISpRecoGrammar_LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options) (This)->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
 7200#define ISpRecoGrammar_SetRuleState(This,pszName,pReserved,NewState) (This)->lpVtbl->SetRuleState(This,pszName,pReserved,NewState)
 7201#define ISpRecoGrammar_SetRuleIdState(This,ulRuleId,NewState) (This)->lpVtbl->SetRuleIdState(This,ulRuleId,NewState)
 7202#define ISpRecoGrammar_LoadDictation(This,pszTopicName,Options) (This)->lpVtbl->LoadDictation(This,pszTopicName,Options)
 7203#define ISpRecoGrammar_UnloadDictation(This) (This)->lpVtbl->UnloadDictation(This)
 7204#define ISpRecoGrammar_SetDictationState(This,NewState) (This)->lpVtbl->SetDictationState(This,NewState)
 7205#define ISpRecoGrammar_SetWordSequenceData(This,pText,cchText,pInfo) (This)->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo)
 7206#define ISpRecoGrammar_SetTextSelection(This,pInfo) (This)->lpVtbl->SetTextSelection(This,pInfo)
 7207#define ISpRecoGrammar_IsPronounceable(This,pszWord,pWordPronounceable) (This)->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable)
 7208#define ISpRecoGrammar_SetGrammarState(This,eGrammarState) (This)->lpVtbl->SetGrammarState(This,eGrammarState)
 7209#define ISpRecoGrammar_SaveCmd(This,pStream,ppszCoMemErrorText) (This)->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText)
 7210#define ISpRecoGrammar_GetGrammarState(This,peGrammarState) (This)->lpVtbl->GetGrammarState(This,peGrammarState)
 7211#else
 7212/*** IUnknown methods ***/
 7213static inline HRESULT ISpRecoGrammar_QueryInterface(ISpRecoGrammar* This,REFIID riid,void **ppvObject) {
 7214    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7215}
 7216static inline ULONG ISpRecoGrammar_AddRef(ISpRecoGrammar* This) {
 7217    return This->lpVtbl->AddRef(This);
 7218}
 7219static inline ULONG ISpRecoGrammar_Release(ISpRecoGrammar* This) {
 7220    return This->lpVtbl->Release(This);
 7221}
 7222/*** ISpGrammarBuilder methods ***/
 7223static inline HRESULT ISpRecoGrammar_ResetGrammar(ISpRecoGrammar* This,WORD NewLanguage) {
 7224    return This->lpVtbl->ResetGrammar(This,NewLanguage);
 7225}
 7226static inline HRESULT ISpRecoGrammar_GetRule(ISpRecoGrammar* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
 7227    return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
 7228}
 7229static inline HRESULT ISpRecoGrammar_ClearRule(ISpRecoGrammar* This,SPSTATEHANDLE hState) {
 7230    return This->lpVtbl->ClearRule(This,hState);
 7231}
 7232static inline HRESULT ISpRecoGrammar_CreateNewState(ISpRecoGrammar* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
 7233    return This->lpVtbl->CreateNewState(This,hState,phState);
 7234}
 7235static inline HRESULT ISpRecoGrammar_AddWordTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
 7236    return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
 7237}
 7238static inline HRESULT ISpRecoGrammar_AddRuleTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
 7239    return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
 7240}
 7241static inline HRESULT ISpRecoGrammar_AddResource(ISpRecoGrammar* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
 7242    return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
 7243}
 7244static inline HRESULT ISpRecoGrammar_Commit(ISpRecoGrammar* This,DWORD dwReserved) {
 7245    return This->lpVtbl->Commit(This,dwReserved);
 7246}
 7247/*** ISpRecoGrammar methods ***/
 7248static inline HRESULT ISpRecoGrammar_GetGrammarId(ISpRecoGrammar* This,ULONGLONG *pullGrammarId) {
 7249    return This->lpVtbl->GetGrammarId(This,pullGrammarId);
 7250}
 7251static inline HRESULT ISpRecoGrammar_GetRecoContext(ISpRecoGrammar* This,ISpRecoContext **ppRecoCtxt) {
 7252    return This->lpVtbl->GetRecoContext(This,ppRecoCtxt);
 7253}
 7254static inline HRESULT ISpRecoGrammar_LoadCmdFromFile(ISpRecoGrammar* This,LPCWSTR pszFileName,SPLOADOPTIONS Options) {
 7255    return This->lpVtbl->LoadCmdFromFile(This,pszFileName,Options);
 7256}
 7257static inline HRESULT ISpRecoGrammar_LoadCmdFromObject(ISpRecoGrammar* This,REFCLSID rcid,LPCWSTR pszGrammarName,SPLOADOPTIONS Options) {
 7258    return This->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options);
 7259}
 7260static inline HRESULT ISpRecoGrammar_LoadCmdFromResource(ISpRecoGrammar* This,HMODULE hModule,LPCWSTR pszResourceName,LPCWSTR pszResourceType,WORD wLanguage,SPLOADOPTIONS Options) {
 7261    return This->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options);
 7262}
 7263static inline HRESULT ISpRecoGrammar_LoadCmdFromMemory(ISpRecoGrammar* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options) {
 7264    return This->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options);
 7265}
 7266static inline HRESULT ISpRecoGrammar_LoadCmdFromProprietaryGrammar(ISpRecoGrammar* This,REFGUID rguidParam,LPCWSTR pszStringParam,const void *pvDataPrarm,ULONG cbDataSize,SPLOADOPTIONS Options) {
 7267    return This->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options);
 7268}
 7269static inline HRESULT ISpRecoGrammar_SetRuleState(ISpRecoGrammar* This,LPCWSTR pszName,void *pReserved,SPRULESTATE NewState) {
 7270    return This->lpVtbl->SetRuleState(This,pszName,pReserved,NewState);
 7271}
 7272static inline HRESULT ISpRecoGrammar_SetRuleIdState(ISpRecoGrammar* This,ULONG ulRuleId,SPRULESTATE NewState) {
 7273    return This->lpVtbl->SetRuleIdState(This,ulRuleId,NewState);
 7274}
 7275static inline HRESULT ISpRecoGrammar_LoadDictation(ISpRecoGrammar* This,LPCWSTR pszTopicName,SPLOADOPTIONS Options) {
 7276    return This->lpVtbl->LoadDictation(This,pszTopicName,Options);
 7277}
 7278static inline HRESULT ISpRecoGrammar_UnloadDictation(ISpRecoGrammar* This) {
 7279    return This->lpVtbl->UnloadDictation(This);
 7280}
 7281static inline HRESULT ISpRecoGrammar_SetDictationState(ISpRecoGrammar* This,SPRULESTATE NewState) {
 7282    return This->lpVtbl->SetDictationState(This,NewState);
 7283}
 7284static inline HRESULT ISpRecoGrammar_SetWordSequenceData(ISpRecoGrammar* This,const WCHAR *pText,ULONG cchText,const SPTEXTSELECTIONINFO *pInfo) {
 7285    return This->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo);
 7286}
 7287static inline HRESULT ISpRecoGrammar_SetTextSelection(ISpRecoGrammar* This,const SPTEXTSELECTIONINFO *pInfo) {
 7288    return This->lpVtbl->SetTextSelection(This,pInfo);
 7289}
 7290static inline HRESULT ISpRecoGrammar_IsPronounceable(ISpRecoGrammar* This,LPCWSTR pszWord,SPWORDPRONOUNCEABLE *pWordPronounceable) {
 7291    return This->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable);
 7292}
 7293static inline HRESULT ISpRecoGrammar_SetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE eGrammarState) {
 7294    return This->lpVtbl->SetGrammarState(This,eGrammarState);
 7295}
 7296static inline HRESULT ISpRecoGrammar_SaveCmd(ISpRecoGrammar* This,IStream *pStream,LPWSTR *ppszCoMemErrorText) {
 7297    return This->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText);
 7298}
 7299static inline HRESULT ISpRecoGrammar_GetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE *peGrammarState) {
 7300    return This->lpVtbl->GetGrammarState(This,peGrammarState);
 7301}
 7302#endif
 7303#endif
 7304
 7305#endif
 7306
 7307
 7308#endif  /* __ISpRecoGrammar_INTERFACE_DEFINED__ */
 7309
 7310typedef struct SPRECOCONTEXTSTATUS {
 7311    SPINTERFERENCE eInterference;
 7312    WCHAR szRequestTypeOfUI[255];
 7313    DWORD dwReserved1;
 7314    DWORD dwReserved2;
 7315} SPRECOCONTEXTSTATUS;
 7316typedef enum SPBOOKMARKOPTIONS {
 7317    SPBO_NONE = 0,
 7318    SPBO_PAUSE = 0x1
 7319} SPBOOKMARKOPTIONS;
 7320typedef enum SPAUDIOOPTIONS {
 7321    SPAO_NONE = 0,
 7322    SPAO_RETAIN_AUDIO = 0x1
 7323} SPAUDIOOPTIONS;
 7324/*****************************************************************************
 7325 * ISpRecoContext interface
 7326 */
 7327#ifndef __ISpRecoContext_INTERFACE_DEFINED__
 7328#define __ISpRecoContext_INTERFACE_DEFINED__
 7329
 7330DEFINE_GUID(IID_ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d);
 7331#if defined(__cplusplus) && !defined(CINTERFACE)
 7332MIDL_INTERFACE("f740a62f-7c15-489e-8234-940a33d9272d")
 7333ISpRecoContext : public ISpEventSource
 7334{
 7335    virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
 7336        ISpRecognizer **ppRecognizer) = 0;
 7337
 7338    virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
 7339        ULONGLONG ullGrammarId,
 7340        ISpRecoGrammar **ppGrammar) = 0;
 7341
 7342    virtual HRESULT STDMETHODCALLTYPE GetStatus(
 7343        SPRECOCONTEXTSTATUS *pStatus) = 0;
 7344
 7345    virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
 7346        ULONG *pcAlternates) = 0;
 7347
 7348    virtual HRESULT STDMETHODCALLTYPE SetMaxAlternates(
 7349        ULONG cAlternates) = 0;
 7350
 7351    virtual HRESULT STDMETHODCALLTYPE SetAudioOptions(
 7352        SPAUDIOOPTIONS Options,
 7353        const GUID *pAudioFormatId,
 7354        const WAVEFORMATEX *pWaveFormatEx) = 0;
 7355
 7356    virtual HRESULT STDMETHODCALLTYPE GetAudioOptions(
 7357        SPAUDIOOPTIONS *pOptions,
 7358        GUID *pAudioFormatId,
 7359        WAVEFORMATEX **ppCoMemWFEX) = 0;
 7360
 7361    virtual HRESULT STDMETHODCALLTYPE DeserializeResult(
 7362        const SPSERIALIZEDRESULT *pSerializedResult,
 7363        ISpRecoResult **ppResult) = 0;
 7364
 7365    virtual HRESULT STDMETHODCALLTYPE Bookmark(
 7366        SPBOOKMARKOPTIONS Options,
 7367        ULONGLONG ullStreamPosition,
 7368        LPARAM lparamEvent) = 0;
 7369
 7370    virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
 7371        LPCWSTR pAdaptationData,
 7372        const ULONG cch) = 0;
 7373
 7374    virtual HRESULT STDMETHODCALLTYPE Pause(
 7375        DWORD dwReserved) = 0;
 7376
 7377    virtual HRESULT STDMETHODCALLTYPE Resume(
 7378        DWORD dwReserved) = 0;
 7379
 7380    virtual HRESULT STDMETHODCALLTYPE SetVoice(
 7381        ISpVoice *pVoice,
 7382        WINBOOL fAllowFormatChanges) = 0;
 7383
 7384    virtual HRESULT STDMETHODCALLTYPE GetVoice(
 7385        ISpVoice **ppVoice) = 0;
 7386
 7387    virtual HRESULT STDMETHODCALLTYPE SetVoicePurgeEvent(
 7388        ULONGLONG ullEventInterest) = 0;
 7389
 7390    virtual HRESULT STDMETHODCALLTYPE GetVoicePurgeEvent(
 7391        ULONGLONG *pullEventInterest) = 0;
 7392
 7393    virtual HRESULT STDMETHODCALLTYPE SetContextState(
 7394        SPCONTEXTSTATE eContextState) = 0;
 7395
 7396    virtual HRESULT STDMETHODCALLTYPE GetContextState(
 7397        SPCONTEXTSTATE *peContextState) = 0;
 7398
 7399};
 7400#ifdef __CRT_UUID_DECL
 7401__CRT_UUID_DECL(ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d)
 7402#endif
 7403#else
 7404typedef struct ISpRecoContextVtbl {
 7405    BEGIN_INTERFACE
 7406
 7407    /*** IUnknown methods ***/
 7408    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7409        ISpRecoContext *This,
 7410        REFIID riid,
 7411        void **ppvObject);
 7412
 7413    ULONG (STDMETHODCALLTYPE *AddRef)(
 7414        ISpRecoContext *This);
 7415
 7416    ULONG (STDMETHODCALLTYPE *Release)(
 7417        ISpRecoContext *This);
 7418
 7419    /*** ISpNotifySource methods ***/
 7420    HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
 7421        ISpRecoContext *This,
 7422        ISpNotifySink *pNotifySink);
 7423
 7424    HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
 7425        ISpRecoContext *This,
 7426        HWND hWnd,
 7427        UINT Msg,
 7428        WPARAM wParam,
 7429        LPARAM lParam);
 7430
 7431    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
 7432        ISpRecoContext *This,
 7433        SPNOTIFYCALLBACK *pfnCallback,
 7434        WPARAM wParam,
 7435        LPARAM lParam);
 7436
 7437    HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
 7438        ISpRecoContext *This,
 7439        ISpNotifyCallback *pSpCallback,
 7440        WPARAM wParam,
 7441        LPARAM lParam);
 7442
 7443    HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
 7444        ISpRecoContext *This);
 7445
 7446    HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
 7447        ISpRecoContext *This,
 7448        DWORD dwMilliseconds);
 7449
 7450    HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
 7451        ISpRecoContext *This);
 7452
 7453    /*** ISpEventSource methods ***/
 7454    HRESULT (STDMETHODCALLTYPE *SetInterest)(
 7455        ISpRecoContext *This,
 7456        ULONGLONG ullEventInterest,
 7457        ULONGLONG ullQueuedInterest);
 7458
 7459    HRESULT (STDMETHODCALLTYPE *GetEvents)(
 7460        ISpRecoContext *This,
 7461        ULONG ulCount,
 7462        SPEVENT *pEventArray,
 7463        ULONG *pulFetched);
 7464
 7465    HRESULT (STDMETHODCALLTYPE *GetInfo)(
 7466        ISpRecoContext *This,
 7467        SPEVENTSOURCEINFO *pInfo);
 7468
 7469    /*** ISpRecoContext methods ***/
 7470    HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
 7471        ISpRecoContext *This,
 7472        ISpRecognizer **ppRecognizer);
 7473
 7474    HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
 7475        ISpRecoContext *This,
 7476        ULONGLONG ullGrammarId,
 7477        ISpRecoGrammar **ppGrammar);
 7478
 7479    HRESULT (STDMETHODCALLTYPE *GetStatus)(
 7480        ISpRecoContext *This,
 7481        SPRECOCONTEXTSTATUS *pStatus);
 7482
 7483    HRESULT (STDMETHODCALLTYPE *GetMaxAlternates)(
 7484        ISpRecoContext *This,
 7485        ULONG *pcAlternates);
 7486
 7487    HRESULT (STDMETHODCALLTYPE *SetMaxAlternates)(
 7488        ISpRecoContext *This,
 7489        ULONG cAlternates);
 7490
 7491    HRESULT (STDMETHODCALLTYPE *SetAudioOptions)(
 7492        ISpRecoContext *This,
 7493        SPAUDIOOPTIONS Options,
 7494        const GUID *pAudioFormatId,
 7495        const WAVEFORMATEX *pWaveFormatEx);
 7496
 7497    HRESULT (STDMETHODCALLTYPE *GetAudioOptions)(
 7498        ISpRecoContext *This,
 7499        SPAUDIOOPTIONS *pOptions,
 7500        GUID *pAudioFormatId,
 7501        WAVEFORMATEX **ppCoMemWFEX);
 7502
 7503    HRESULT (STDMETHODCALLTYPE *DeserializeResult)(
 7504        ISpRecoContext *This,
 7505        const SPSERIALIZEDRESULT *pSerializedResult,
 7506        ISpRecoResult **ppResult);
 7507
 7508    HRESULT (STDMETHODCALLTYPE *Bookmark)(
 7509        ISpRecoContext *This,
 7510        SPBOOKMARKOPTIONS Options,
 7511        ULONGLONG ullStreamPosition,
 7512        LPARAM lparamEvent);
 7513
 7514    HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
 7515        ISpRecoContext *This,
 7516        LPCWSTR pAdaptationData,
 7517        const ULONG cch);
 7518
 7519    HRESULT (STDMETHODCALLTYPE *Pause)(
 7520        ISpRecoContext *This,
 7521        DWORD dwReserved);
 7522
 7523    HRESULT (STDMETHODCALLTYPE *Resume)(
 7524        ISpRecoContext *This,
 7525        DWORD dwReserved);
 7526
 7527    HRESULT (STDMETHODCALLTYPE *SetVoice)(
 7528        ISpRecoContext *This,
 7529        ISpVoice *pVoice,
 7530        WINBOOL fAllowFormatChanges);
 7531
 7532    HRESULT (STDMETHODCALLTYPE *GetVoice)(
 7533        ISpRecoContext *This,
 7534        ISpVoice **ppVoice);
 7535
 7536    HRESULT (STDMETHODCALLTYPE *SetVoicePurgeEvent)(
 7537        ISpRecoContext *This,
 7538        ULONGLONG ullEventInterest);
 7539
 7540    HRESULT (STDMETHODCALLTYPE *GetVoicePurgeEvent)(
 7541        ISpRecoContext *This,
 7542        ULONGLONG *pullEventInterest);
 7543
 7544    HRESULT (STDMETHODCALLTYPE *SetContextState)(
 7545        ISpRecoContext *This,
 7546        SPCONTEXTSTATE eContextState);
 7547
 7548    HRESULT (STDMETHODCALLTYPE *GetContextState)(
 7549        ISpRecoContext *This,
 7550        SPCONTEXTSTATE *peContextState);
 7551
 7552    END_INTERFACE
 7553} ISpRecoContextVtbl;
 7554
 7555interface ISpRecoContext {
 7556    CONST_VTBL ISpRecoContextVtbl* lpVtbl;
 7557};
 7558
 7559#ifdef COBJMACROS
 7560#ifndef WIDL_C_INLINE_WRAPPERS
 7561/*** IUnknown methods ***/
 7562#define ISpRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7563#define ISpRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
 7564#define ISpRecoContext_Release(This) (This)->lpVtbl->Release(This)
 7565/*** ISpNotifySource methods ***/
 7566#define ISpRecoContext_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
 7567#define ISpRecoContext_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
 7568#define ISpRecoContext_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
 7569#define ISpRecoContext_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
 7570#define ISpRecoContext_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
 7571#define ISpRecoContext_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
 7572#define ISpRecoContext_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
 7573/*** ISpEventSource methods ***/
 7574#define ISpRecoContext_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
 7575#define ISpRecoContext_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
 7576#define ISpRecoContext_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
 7577/*** ISpRecoContext methods ***/
 7578#define ISpRecoContext_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
 7579#define ISpRecoContext_CreateGrammar(This,ullGrammarId,ppGrammar) (This)->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar)
 7580#define ISpRecoContext_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
 7581#define ISpRecoContext_GetMaxAlternates(This,pcAlternates) (This)->lpVtbl->GetMaxAlternates(This,pcAlternates)
 7582#define ISpRecoContext_SetMaxAlternates(This,cAlternates) (This)->lpVtbl->SetMaxAlternates(This,cAlternates)
 7583#define ISpRecoContext_SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
 7584#define ISpRecoContext_GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX) (This)->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
 7585#define ISpRecoContext_DeserializeResult(This,pSerializedResult,ppResult) (This)->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult)
 7586#define ISpRecoContext_Bookmark(This,Options,ullStreamPosition,lparamEvent) (This)->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent)
 7587#define ISpRecoContext_SetAdaptationData(This,pAdaptationData,cch) (This)->lpVtbl->SetAdaptationData(This,pAdaptationData,cch)
 7588#define ISpRecoContext_Pause(This,dwReserved) (This)->lpVtbl->Pause(This,dwReserved)
 7589#define ISpRecoContext_Resume(This,dwReserved) (This)->lpVtbl->Resume(This,dwReserved)
 7590#define ISpRecoContext_SetVoice(This,pVoice,fAllowFormatChanges) (This)->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges)
 7591#define ISpRecoContext_GetVoice(This,ppVoice) (This)->lpVtbl->GetVoice(This,ppVoice)
 7592#define ISpRecoContext_SetVoicePurgeEvent(This,ullEventInterest) (This)->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest)
 7593#define ISpRecoContext_GetVoicePurgeEvent(This,pullEventInterest) (This)->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest)
 7594#define ISpRecoContext_SetContextState(This,eContextState) (This)->lpVtbl->SetContextState(This,eContextState)
 7595#define ISpRecoContext_GetContextState(This,peContextState) (This)->lpVtbl->GetContextState(This,peContextState)
 7596#else
 7597/*** IUnknown methods ***/
 7598static inline HRESULT ISpRecoContext_QueryInterface(ISpRecoContext* This,REFIID riid,void **ppvObject) {
 7599    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7600}
 7601static inline ULONG ISpRecoContext_AddRef(ISpRecoContext* This) {
 7602    return This->lpVtbl->AddRef(This);
 7603}
 7604static inline ULONG ISpRecoContext_Release(ISpRecoContext* This) {
 7605    return This->lpVtbl->Release(This);
 7606}
 7607/*** ISpNotifySource methods ***/
 7608static inline HRESULT ISpRecoContext_SetNotifySink(ISpRecoContext* This,ISpNotifySink *pNotifySink) {
 7609    return This->lpVtbl->SetNotifySink(This,pNotifySink);
 7610}
 7611static inline HRESULT ISpRecoContext_SetNotifyWindowMessage(ISpRecoContext* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 7612    return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
 7613}
 7614static inline HRESULT ISpRecoContext_SetNotifyCallbackFunction(ISpRecoContext* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
 7615    return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
 7616}
 7617static inline HRESULT ISpRecoContext_SetNotifyCallbackInterface(ISpRecoContext* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
 7618    return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
 7619}
 7620static inline HRESULT ISpRecoContext_SetNotifyWin32Event(ISpRecoContext* This) {
 7621    return This->lpVtbl->SetNotifyWin32Event(This);
 7622}
 7623static inline HRESULT ISpRecoContext_WaitForNotifyEvent(ISpRecoContext* This,DWORD dwMilliseconds) {
 7624    return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
 7625}
 7626static inline HANDLE ISpRecoContext_GetNotifyEventHandle(ISpRecoContext* This) {
 7627    return This->lpVtbl->GetNotifyEventHandle(This);
 7628}
 7629/*** ISpEventSource methods ***/
 7630static inline HRESULT ISpRecoContext_SetInterest(ISpRecoContext* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
 7631    return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
 7632}
 7633static inline HRESULT ISpRecoContext_GetEvents(ISpRecoContext* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
 7634    return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
 7635}
 7636static inline HRESULT ISpRecoContext_GetInfo(ISpRecoContext* This,SPEVENTSOURCEINFO *pInfo) {
 7637    return This->lpVtbl->GetInfo(This,pInfo);
 7638}
 7639/*** ISpRecoContext methods ***/
 7640static inline HRESULT ISpRecoContext_GetRecognizer(ISpRecoContext* This,ISpRecognizer **ppRecognizer) {
 7641    return This->lpVtbl->GetRecognizer(This,ppRecognizer);
 7642}
 7643static inline HRESULT ISpRecoContext_CreateGrammar(ISpRecoContext* This,ULONGLONG ullGrammarId,ISpRecoGrammar **ppGrammar) {
 7644    return This->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar);
 7645}
 7646static inline HRESULT ISpRecoContext_GetStatus(ISpRecoContext* This,SPRECOCONTEXTSTATUS *pStatus) {
 7647    return This->lpVtbl->GetStatus(This,pStatus);
 7648}
 7649static inline HRESULT ISpRecoContext_GetMaxAlternates(ISpRecoContext* This,ULONG *pcAlternates) {
 7650    return This->lpVtbl->GetMaxAlternates(This,pcAlternates);
 7651}
 7652static inline HRESULT ISpRecoContext_SetMaxAlternates(ISpRecoContext* This,ULONG cAlternates) {
 7653    return This->lpVtbl->SetMaxAlternates(This,cAlternates);
 7654}
 7655static inline HRESULT ISpRecoContext_SetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS Options,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
 7656    return This->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx);
 7657}
 7658static inline HRESULT ISpRecoContext_GetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS *pOptions,GUID *pAudioFormatId,WAVEFORMATEX **ppCoMemWFEX) {
 7659    return This->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX);
 7660}
 7661static inline HRESULT ISpRecoContext_DeserializeResult(ISpRecoContext* This,const SPSERIALIZEDRESULT *pSerializedResult,ISpRecoResult **ppResult) {
 7662    return This->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult);
 7663}
 7664static inline HRESULT ISpRecoContext_Bookmark(ISpRecoContext* This,SPBOOKMARKOPTIONS Options,ULONGLONG ullStreamPosition,LPARAM lparamEvent) {
 7665    return This->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent);
 7666}
 7667static inline HRESULT ISpRecoContext_SetAdaptationData(ISpRecoContext* This,LPCWSTR pAdaptationData,const ULONG cch) {
 7668    return This->lpVtbl->SetAdaptationData(This,pAdaptationData,cch);
 7669}
 7670static inline HRESULT ISpRecoContext_Pause(ISpRecoContext* This,DWORD dwReserved) {
 7671    return This->lpVtbl->Pause(This,dwReserved);
 7672}
 7673static inline HRESULT ISpRecoContext_Resume(ISpRecoContext* This,DWORD dwReserved) {
 7674    return This->lpVtbl->Resume(This,dwReserved);
 7675}
 7676static inline HRESULT ISpRecoContext_SetVoice(ISpRecoContext* This,ISpVoice *pVoice,WINBOOL fAllowFormatChanges) {
 7677    return This->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges);
 7678}
 7679static inline HRESULT ISpRecoContext_GetVoice(ISpRecoContext* This,ISpVoice **ppVoice) {
 7680    return This->lpVtbl->GetVoice(This,ppVoice);
 7681}
 7682static inline HRESULT ISpRecoContext_SetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG ullEventInterest) {
 7683    return This->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest);
 7684}
 7685static inline HRESULT ISpRecoContext_GetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG *pullEventInterest) {
 7686    return This->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest);
 7687}
 7688static inline HRESULT ISpRecoContext_SetContextState(ISpRecoContext* This,SPCONTEXTSTATE eContextState) {
 7689    return This->lpVtbl->SetContextState(This,eContextState);
 7690}
 7691static inline HRESULT ISpRecoContext_GetContextState(ISpRecoContext* This,SPCONTEXTSTATE *peContextState) {
 7692    return This->lpVtbl->GetContextState(This,peContextState);
 7693}
 7694#endif
 7695#endif
 7696
 7697#endif
 7698
 7699
 7700#endif  /* __ISpRecoContext_INTERFACE_DEFINED__ */
 7701
 7702/*****************************************************************************
 7703 * ISpProperties interface
 7704 */
 7705#ifndef __ISpProperties_INTERFACE_DEFINED__
 7706#define __ISpProperties_INTERFACE_DEFINED__
 7707
 7708DEFINE_GUID(IID_ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4);
 7709#if defined(__cplusplus) && !defined(CINTERFACE)
 7710MIDL_INTERFACE("5b4fb971-b115-4de1-ad97-e482e3bf6ee4")
 7711ISpProperties : public IUnknown
 7712{
 7713    virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
 7714        LPCWSTR pName,
 7715        LONG lValue) = 0;
 7716
 7717    virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
 7718        LPCWSTR pName,
 7719        LONG *plValue) = 0;
 7720
 7721    virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
 7722        LPCWSTR pName,
 7723        LPCWSTR pValue) = 0;
 7724
 7725    virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
 7726        LPCWSTR pName,
 7727        LPWSTR *ppCoMemValue) = 0;
 7728
 7729};
 7730#ifdef __CRT_UUID_DECL
 7731__CRT_UUID_DECL(ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4)
 7732#endif
 7733#else
 7734typedef struct ISpPropertiesVtbl {
 7735    BEGIN_INTERFACE
 7736
 7737    /*** IUnknown methods ***/
 7738    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7739        ISpProperties *This,
 7740        REFIID riid,
 7741        void **ppvObject);
 7742
 7743    ULONG (STDMETHODCALLTYPE *AddRef)(
 7744        ISpProperties *This);
 7745
 7746    ULONG (STDMETHODCALLTYPE *Release)(
 7747        ISpProperties *This);
 7748
 7749    /*** ISpProperties methods ***/
 7750    HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
 7751        ISpProperties *This,
 7752        LPCWSTR pName,
 7753        LONG lValue);
 7754
 7755    HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
 7756        ISpProperties *This,
 7757        LPCWSTR pName,
 7758        LONG *plValue);
 7759
 7760    HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
 7761        ISpProperties *This,
 7762        LPCWSTR pName,
 7763        LPCWSTR pValue);
 7764
 7765    HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
 7766        ISpProperties *This,
 7767        LPCWSTR pName,
 7768        LPWSTR *ppCoMemValue);
 7769
 7770    END_INTERFACE
 7771} ISpPropertiesVtbl;
 7772
 7773interface ISpProperties {
 7774    CONST_VTBL ISpPropertiesVtbl* lpVtbl;
 7775};
 7776
 7777#ifdef COBJMACROS
 7778#ifndef WIDL_C_INLINE_WRAPPERS
 7779/*** IUnknown methods ***/
 7780#define ISpProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7781#define ISpProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
 7782#define ISpProperties_Release(This) (This)->lpVtbl->Release(This)
 7783/*** ISpProperties methods ***/
 7784#define ISpProperties_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
 7785#define ISpProperties_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
 7786#define ISpProperties_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
 7787#define ISpProperties_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
 7788#else
 7789/*** IUnknown methods ***/
 7790static inline HRESULT ISpProperties_QueryInterface(ISpProperties* This,REFIID riid,void **ppvObject) {
 7791    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7792}
 7793static inline ULONG ISpProperties_AddRef(ISpProperties* This) {
 7794    return This->lpVtbl->AddRef(This);
 7795}
 7796static inline ULONG ISpProperties_Release(ISpProperties* This) {
 7797    return This->lpVtbl->Release(This);
 7798}
 7799/*** ISpProperties methods ***/
 7800static inline HRESULT ISpProperties_SetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG lValue) {
 7801    return This->lpVtbl->SetPropertyNum(This,pName,lValue);
 7802}
 7803static inline HRESULT ISpProperties_GetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG *plValue) {
 7804    return This->lpVtbl->GetPropertyNum(This,pName,plValue);
 7805}
 7806static inline HRESULT ISpProperties_SetPropertyString(ISpProperties* This,LPCWSTR pName,LPCWSTR pValue) {
 7807    return This->lpVtbl->SetPropertyString(This,pName,pValue);
 7808}
 7809static inline HRESULT ISpProperties_GetPropertyString(ISpProperties* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
 7810    return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
 7811}
 7812#endif
 7813#endif
 7814
 7815#endif
 7816
 7817
 7818#endif  /* __ISpProperties_INTERFACE_DEFINED__ */
 7819
 7820#define SP_MAX_LANGIDS (20)
 7821
 7822typedef struct SPRECOGNIZERSTATUS {
 7823    SPAUDIOSTATUS AudioStatus;
 7824    ULONGLONG ullRecognitionStreamPos;
 7825    ULONG ulStreamNumber;
 7826    ULONG ulNumActive;
 7827    CLSID clsidEngine;
 7828    ULONG cLangIDs;
 7829    WORD aLangID[20];
 7830    ULONGLONG ullRecognitionStreamTime;
 7831} SPRECOGNIZERSTATUS;
 7832typedef enum SPWAVEFORMATTYPE {
 7833    SPWF_INPUT = 0,
 7834    SPWF_SRENGINE = 1
 7835} SPSTREAMFORMATTYPE;
 7836typedef enum SPRECOSTATE {
 7837    SPRST_INACTIVE = 0,
 7838    SPRST_ACTIVE = 1,
 7839    SPRST_ACTIVE_ALWAYS = 2,
 7840    SPRST_INACTIVE_WITH_PURGE = 3,
 7841    SPRST_NUM_STATES = 4
 7842} SPRECOSTATE;
 7843/*****************************************************************************
 7844 * ISpRecognizer interface
 7845 */
 7846#ifndef __ISpRecognizer_INTERFACE_DEFINED__
 7847#define __ISpRecognizer_INTERFACE_DEFINED__
 7848
 7849DEFINE_GUID(IID_ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c);
 7850#if defined(__cplusplus) && !defined(CINTERFACE)
 7851MIDL_INTERFACE("c2b5f241-daa0-4507-9e16-5a1eaa2b7a5c")
 7852ISpRecognizer : public ISpProperties
 7853{
 7854    virtual HRESULT STDMETHODCALLTYPE SetRecognizer(
 7855        ISpObjectToken *pRecognizer) = 0;
 7856
 7857    virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
 7858        ISpObjectToken **ppRecognizer) = 0;
 7859
 7860    virtual HRESULT STDMETHODCALLTYPE SetInput(
 7861        IUnknown *pUnkInput,
 7862        WINBOOL fAllowFormatChanges) = 0;
 7863
 7864    virtual HRESULT STDMETHODCALLTYPE GetInputObjectToken(
 7865        ISpObjectToken **ppToken) = 0;
 7866
 7867    virtual HRESULT STDMETHODCALLTYPE GetInputStream(
 7868        ISpStreamFormat **ppStream) = 0;
 7869
 7870    virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
 7871        ISpRecoContext **ppNewCtxt) = 0;
 7872
 7873    virtual HRESULT STDMETHODCALLTYPE GetRecoProfile(
 7874        ISpObjectToken **ppToken) = 0;
 7875
 7876    virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
 7877        ISpObjectToken *pToken) = 0;
 7878
 7879    virtual HRESULT STDMETHODCALLTYPE IsSharedInstance(
 7880        ) = 0;
 7881
 7882    virtual HRESULT STDMETHODCALLTYPE GetRecoState(
 7883        SPRECOSTATE *pState) = 0;
 7884
 7885    virtual HRESULT STDMETHODCALLTYPE SetRecoState(
 7886        SPRECOSTATE NewState) = 0;
 7887
 7888    virtual HRESULT STDMETHODCALLTYPE GetStatus(
 7889        SPRECOGNIZERSTATUS *pStatus) = 0;
 7890
 7891    virtual HRESULT STDMETHODCALLTYPE GetFormat(
 7892        SPSTREAMFORMATTYPE WaveFormatType,
 7893        GUID *pFormatId,
 7894        WAVEFORMATEX **ppCoMemWFEX) = 0;
 7895
 7896    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
 7897        LPCWSTR pszTypeOfUI,
 7898        void *pvExtraData,
 7899        ULONG cbExtraData,
 7900        WINBOOL *pfSupported) = 0;
 7901
 7902    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
 7903        HWND hwndParent,
 7904        LPCWSTR pszTitle,
 7905        LPCWSTR pszTypeOfUI,
 7906        void *pvExtraData,
 7907        ULONG cbExtraData) = 0;
 7908
 7909    virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
 7910        ISpPhrase *pPhrase) = 0;
 7911
 7912};
 7913#ifdef __CRT_UUID_DECL
 7914__CRT_UUID_DECL(ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c)
 7915#endif
 7916#else
 7917typedef struct ISpRecognizerVtbl {
 7918    BEGIN_INTERFACE
 7919
 7920    /*** IUnknown methods ***/
 7921    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7922        ISpRecognizer *This,
 7923        REFIID riid,
 7924        void **ppvObject);
 7925
 7926    ULONG (STDMETHODCALLTYPE *AddRef)(
 7927        ISpRecognizer *This);
 7928
 7929    ULONG (STDMETHODCALLTYPE *Release)(
 7930        ISpRecognizer *This);
 7931
 7932    /*** ISpProperties methods ***/
 7933    HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
 7934        ISpRecognizer *This,
 7935        LPCWSTR pName,
 7936        LONG lValue);
 7937
 7938    HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
 7939        ISpRecognizer *This,
 7940        LPCWSTR pName,
 7941        LONG *plValue);
 7942
 7943    HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
 7944        ISpRecognizer *This,
 7945        LPCWSTR pName,
 7946        LPCWSTR pValue);
 7947
 7948    HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
 7949        ISpRecognizer *This,
 7950        LPCWSTR pName,
 7951        LPWSTR *ppCoMemValue);
 7952
 7953    /*** ISpRecognizer methods ***/
 7954    HRESULT (STDMETHODCALLTYPE *SetRecognizer)(
 7955        ISpRecognizer *This,
 7956        ISpObjectToken *pRecognizer);
 7957
 7958    HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
 7959        ISpRecognizer *This,
 7960        ISpObjectToken **ppRecognizer);
 7961
 7962    HRESULT (STDMETHODCALLTYPE *SetInput)(
 7963        ISpRecognizer *This,
 7964        IUnknown *pUnkInput,
 7965        WINBOOL fAllowFormatChanges);
 7966
 7967    HRESULT (STDMETHODCALLTYPE *GetInputObjectToken)(
 7968        ISpRecognizer *This,
 7969        ISpObjectToken **ppToken);
 7970
 7971    HRESULT (STDMETHODCALLTYPE *GetInputStream)(
 7972        ISpRecognizer *This,
 7973        ISpStreamFormat **ppStream);
 7974
 7975    HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
 7976        ISpRecognizer *This,
 7977        ISpRecoContext **ppNewCtxt);
 7978
 7979    HRESULT (STDMETHODCALLTYPE *GetRecoProfile)(
 7980        ISpRecognizer *This,
 7981        ISpObjectToken **ppToken);
 7982
 7983    HRESULT (STDMETHODCALLTYPE *SetRecoProfile)(
 7984        ISpRecognizer *This,
 7985        ISpObjectToken *pToken);
 7986
 7987    HRESULT (STDMETHODCALLTYPE *IsSharedInstance)(
 7988        ISpRecognizer *This);
 7989
 7990    HRESULT (STDMETHODCALLTYPE *GetRecoState)(
 7991        ISpRecognizer *This,
 7992        SPRECOSTATE *pState);
 7993
 7994    HRESULT (STDMETHODCALLTYPE *SetRecoState)(
 7995        ISpRecognizer *This,
 7996        SPRECOSTATE NewState);
 7997
 7998    HRESULT (STDMETHODCALLTYPE *GetStatus)(
 7999        ISpRecognizer *This,
 8000        SPRECOGNIZERSTATUS *pStatus);
 8001
 8002    HRESULT (STDMETHODCALLTYPE *GetFormat)(
 8003        ISpRecognizer *This,
 8004        SPSTREAMFORMATTYPE WaveFormatType,
 8005        GUID *pFormatId,
 8006        WAVEFORMATEX **ppCoMemWFEX);
 8007
 8008    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
 8009        ISpRecognizer *This,
 8010        LPCWSTR pszTypeOfUI,
 8011        void *pvExtraData,
 8012        ULONG cbExtraData,
 8013        WINBOOL *pfSupported);
 8014
 8015    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
 8016        ISpRecognizer *This,
 8017        HWND hwndParent,
 8018        LPCWSTR pszTitle,
 8019        LPCWSTR pszTypeOfUI,
 8020        void *pvExtraData,
 8021        ULONG cbExtraData);
 8022
 8023    HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
 8024        ISpRecognizer *This,
 8025        ISpPhrase *pPhrase);
 8026
 8027    END_INTERFACE
 8028} ISpRecognizerVtbl;
 8029
 8030interface ISpRecognizer {
 8031    CONST_VTBL ISpRecognizerVtbl* lpVtbl;
 8032};
 8033
 8034#ifdef COBJMACROS
 8035#ifndef WIDL_C_INLINE_WRAPPERS
 8036/*** IUnknown methods ***/
 8037#define ISpRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8038#define ISpRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
 8039#define ISpRecognizer_Release(This) (This)->lpVtbl->Release(This)
 8040/*** ISpProperties methods ***/
 8041#define ISpRecognizer_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
 8042#define ISpRecognizer_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
 8043#define ISpRecognizer_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
 8044#define ISpRecognizer_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
 8045/*** ISpRecognizer methods ***/
 8046#define ISpRecognizer_SetRecognizer(This,pRecognizer) (This)->lpVtbl->SetRecognizer(This,pRecognizer)
 8047#define ISpRecognizer_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
 8048#define ISpRecognizer_SetInput(This,pUnkInput,fAllowFormatChanges) (This)->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges)
 8049#define ISpRecognizer_GetInputObjectToken(This,ppToken) (This)->lpVtbl->GetInputObjectToken(This,ppToken)
 8050#define ISpRecognizer_GetInputStream(This,ppStream) (This)->lpVtbl->GetInputStream(This,ppStream)
 8051#define ISpRecognizer_CreateRecoContext(This,ppNewCtxt) (This)->lpVtbl->CreateRecoContext(This,ppNewCtxt)
 8052#define ISpRecognizer_GetRecoProfile(This,ppToken) (This)->lpVtbl->GetRecoProfile(This,ppToken)
 8053#define ISpRecognizer_SetRecoProfile(This,pToken) (This)->lpVtbl->SetRecoProfile(This,pToken)
 8054#define ISpRecognizer_IsSharedInstance(This) (This)->lpVtbl->IsSharedInstance(This)
 8055#define ISpRecognizer_GetRecoState(This,pState) (This)->lpVtbl->GetRecoState(This,pState)
 8056#define ISpRecognizer_SetRecoState(This,NewState) (This)->lpVtbl->SetRecoState(This,NewState)
 8057#define ISpRecognizer_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
 8058#define ISpRecognizer_GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX) (This)->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
 8059#define ISpRecognizer_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
 8060#define ISpRecognizer_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
 8061#define ISpRecognizer_EmulateRecognition(This,pPhrase) (This)->lpVtbl->EmulateRecognition(This,pPhrase)
 8062#else
 8063/*** IUnknown methods ***/
 8064static inline HRESULT ISpRecognizer_QueryInterface(ISpRecognizer* This,REFIID riid,void **ppvObject) {
 8065    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8066}
 8067static inline ULONG ISpRecognizer_AddRef(ISpRecognizer* This) {
 8068    return This->lpVtbl->AddRef(This);
 8069}
 8070static inline ULONG ISpRecognizer_Release(ISpRecognizer* This) {
 8071    return This->lpVtbl->Release(This);
 8072}
 8073/*** ISpProperties methods ***/
 8074static inline HRESULT ISpRecognizer_SetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG lValue) {
 8075    return This->lpVtbl->SetPropertyNum(This,pName,lValue);
 8076}
 8077static inline HRESULT ISpRecognizer_GetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG *plValue) {
 8078    return This->lpVtbl->GetPropertyNum(This,pName,plValue);
 8079}
 8080static inline HRESULT ISpRecognizer_SetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPCWSTR pValue) {
 8081    return This->lpVtbl->SetPropertyString(This,pName,pValue);
 8082}
 8083static inline HRESULT ISpRecognizer_GetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
 8084    return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
 8085}
 8086/*** ISpRecognizer methods ***/
 8087static inline HRESULT ISpRecognizer_SetRecognizer(ISpRecognizer* This,ISpObjectToken *pRecognizer) {
 8088    return This->lpVtbl->SetRecognizer(This,pRecognizer);
 8089}
 8090static inline HRESULT ISpRecognizer_GetRecognizer(ISpRecognizer* This,ISpObjectToken **ppRecognizer) {
 8091    return This->lpVtbl->GetRecognizer(This,ppRecognizer);
 8092}
 8093static inline HRESULT ISpRecognizer_SetInput(ISpRecognizer* This,IUnknown *pUnkInput,WINBOOL fAllowFormatChanges) {
 8094    return This->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges);
 8095}
 8096static inline HRESULT ISpRecognizer_GetInputObjectToken(ISpRecognizer* This,ISpObjectToken **ppToken) {
 8097    return This->lpVtbl->GetInputObjectToken(This,ppToken);
 8098}
 8099static inline HRESULT ISpRecognizer_GetInputStream(ISpRecognizer* This,ISpStreamFormat **ppStream) {
 8100    return This->lpVtbl->GetInputStream(This,ppStream);
 8101}
 8102static inline HRESULT ISpRecognizer_CreateRecoContext(ISpRecognizer* This,ISpRecoContext **ppNewCtxt) {
 8103    return This->lpVtbl->CreateRecoContext(This,ppNewCtxt);
 8104}
 8105static inline HRESULT ISpRecognizer_GetRecoProfile(ISpRecognizer* This,ISpObjectToken **ppToken) {
 8106    return This->lpVtbl->GetRecoProfile(This,ppToken);
 8107}
 8108static inline HRESULT ISpRecognizer_SetRecoProfile(ISpRecognizer* This,ISpObjectToken *pToken) {
 8109    return This->lpVtbl->SetRecoProfile(This,pToken);
 8110}
 8111static inline HRESULT ISpRecognizer_IsSharedInstance(ISpRecognizer* This) {
 8112    return This->lpVtbl->IsSharedInstance(This);
 8113}
 8114static inline HRESULT ISpRecognizer_GetRecoState(ISpRecognizer* This,SPRECOSTATE *pState) {
 8115    return This->lpVtbl->GetRecoState(This,pState);
 8116}
 8117static inline HRESULT ISpRecognizer_SetRecoState(ISpRecognizer* This,SPRECOSTATE NewState) {
 8118    return This->lpVtbl->SetRecoState(This,NewState);
 8119}
 8120static inline HRESULT ISpRecognizer_GetStatus(ISpRecognizer* This,SPRECOGNIZERSTATUS *pStatus) {
 8121    return This->lpVtbl->GetStatus(This,pStatus);
 8122}
 8123static inline HRESULT ISpRecognizer_GetFormat(ISpRecognizer* This,SPSTREAMFORMATTYPE WaveFormatType,GUID *pFormatId,WAVEFORMATEX **ppCoMemWFEX) {
 8124    return This->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX);
 8125}
 8126static inline HRESULT ISpRecognizer_IsUISupported(ISpRecognizer* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
 8127    return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
 8128}
 8129static inline HRESULT ISpRecognizer_DisplayUI(ISpRecognizer* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
 8130    return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
 8131}
 8132static inline HRESULT ISpRecognizer_EmulateRecognition(ISpRecognizer* This,ISpPhrase *pPhrase) {
 8133    return This->lpVtbl->EmulateRecognition(This,pPhrase);
 8134}
 8135#endif
 8136#endif
 8137
 8138#endif
 8139
 8140
 8141#endif  /* __ISpRecognizer_INTERFACE_DEFINED__ */
 8142
 8143#ifndef __SpeechLib_LIBRARY_DEFINED__
 8144#define __SpeechLib_LIBRARY_DEFINED__
 8145
 8146DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 8147
 8148#ifndef __ISpeechDataKey_FWD_DEFINED__
 8149#define __ISpeechDataKey_FWD_DEFINED__
 8150typedef interface ISpeechDataKey ISpeechDataKey;
 8151#ifdef __cplusplus
 8152interface ISpeechDataKey;
 8153#endif /* __cplusplus */
 8154#endif
 8155
 8156#ifndef __ISpeechObjectToken_FWD_DEFINED__
 8157#define __ISpeechObjectToken_FWD_DEFINED__
 8158typedef interface ISpeechObjectToken ISpeechObjectToken;
 8159#ifdef __cplusplus
 8160interface ISpeechObjectToken;
 8161#endif /* __cplusplus */
 8162#endif
 8163
 8164#ifndef __ISpeechObjectTokens_FWD_DEFINED__
 8165#define __ISpeechObjectTokens_FWD_DEFINED__
 8166typedef interface ISpeechObjectTokens ISpeechObjectTokens;
 8167#ifdef __cplusplus
 8168interface ISpeechObjectTokens;
 8169#endif /* __cplusplus */
 8170#endif
 8171
 8172#ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
 8173#define __ISpeechObjectTokenCategory_FWD_DEFINED__
 8174typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
 8175#ifdef __cplusplus
 8176interface ISpeechObjectTokenCategory;
 8177#endif /* __cplusplus */
 8178#endif
 8179
 8180#ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
 8181#define __ISpeechAudioBufferInfo_FWD_DEFINED__
 8182typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
 8183#ifdef __cplusplus
 8184interface ISpeechAudioBufferInfo;
 8185#endif /* __cplusplus */
 8186#endif
 8187
 8188#ifndef __ISpeechAudioStatus_FWD_DEFINED__
 8189#define __ISpeechAudioStatus_FWD_DEFINED__
 8190typedef interface ISpeechAudioStatus ISpeechAudioStatus;
 8191#ifdef __cplusplus
 8192interface ISpeechAudioStatus;
 8193#endif /* __cplusplus */
 8194#endif
 8195
 8196#ifndef __ISpeechAudioFormat_FWD_DEFINED__
 8197#define __ISpeechAudioFormat_FWD_DEFINED__
 8198typedef interface ISpeechAudioFormat ISpeechAudioFormat;
 8199#ifdef __cplusplus
 8200interface ISpeechAudioFormat;
 8201#endif /* __cplusplus */
 8202#endif
 8203
 8204#ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
 8205#define __ISpeechWaveFormatEx_FWD_DEFINED__
 8206typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
 8207#ifdef __cplusplus
 8208interface ISpeechWaveFormatEx;
 8209#endif /* __cplusplus */
 8210#endif
 8211
 8212#ifndef __ISpeechBaseStream_FWD_DEFINED__
 8213#define __ISpeechBaseStream_FWD_DEFINED__
 8214typedef interface ISpeechBaseStream ISpeechBaseStream;
 8215#ifdef __cplusplus
 8216interface ISpeechBaseStream;
 8217#endif /* __cplusplus */
 8218#endif
 8219
 8220#ifndef __ISpeechFileStream_FWD_DEFINED__
 8221#define __ISpeechFileStream_FWD_DEFINED__
 8222typedef interface ISpeechFileStream ISpeechFileStream;
 8223#ifdef __cplusplus
 8224interface ISpeechFileStream;
 8225#endif /* __cplusplus */
 8226#endif
 8227
 8228#ifndef __ISpeechMemoryStream_FWD_DEFINED__
 8229#define __ISpeechMemoryStream_FWD_DEFINED__
 8230typedef interface ISpeechMemoryStream ISpeechMemoryStream;
 8231#ifdef __cplusplus
 8232interface ISpeechMemoryStream;
 8233#endif /* __cplusplus */
 8234#endif
 8235
 8236#ifndef __ISpeechCustomStream_FWD_DEFINED__
 8237#define __ISpeechCustomStream_FWD_DEFINED__
 8238typedef interface ISpeechCustomStream ISpeechCustomStream;
 8239#ifdef __cplusplus
 8240interface ISpeechCustomStream;
 8241#endif /* __cplusplus */
 8242#endif
 8243
 8244#ifndef __ISpeechAudio_FWD_DEFINED__
 8245#define __ISpeechAudio_FWD_DEFINED__
 8246typedef interface ISpeechAudio ISpeechAudio;
 8247#ifdef __cplusplus
 8248interface ISpeechAudio;
 8249#endif /* __cplusplus */
 8250#endif
 8251
 8252#ifndef __ISpeechMMSysAudio_FWD_DEFINED__
 8253#define __ISpeechMMSysAudio_FWD_DEFINED__
 8254typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
 8255#ifdef __cplusplus
 8256interface ISpeechMMSysAudio;
 8257#endif /* __cplusplus */
 8258#endif
 8259
 8260#ifndef __ISpeechVoice_FWD_DEFINED__
 8261#define __ISpeechVoice_FWD_DEFINED__
 8262typedef interface ISpeechVoice ISpeechVoice;
 8263#ifdef __cplusplus
 8264interface ISpeechVoice;
 8265#endif /* __cplusplus */
 8266#endif
 8267
 8268#ifndef __ISpeechVoiceStatus_FWD_DEFINED__
 8269#define __ISpeechVoiceStatus_FWD_DEFINED__
 8270typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
 8271#ifdef __cplusplus
 8272interface ISpeechVoiceStatus;
 8273#endif /* __cplusplus */
 8274#endif
 8275
 8276#ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
 8277#define ___ISpeechVoiceEvents_FWD_DEFINED__
 8278typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
 8279#ifdef __cplusplus
 8280interface _ISpeechVoiceEvents;
 8281#endif /* __cplusplus */
 8282#endif
 8283
 8284#ifndef __ISpeechRecognizer_FWD_DEFINED__
 8285#define __ISpeechRecognizer_FWD_DEFINED__
 8286typedef interface ISpeechRecognizer ISpeechRecognizer;
 8287#ifdef __cplusplus
 8288interface ISpeechRecognizer;
 8289#endif /* __cplusplus */
 8290#endif
 8291
 8292#ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
 8293#define __ISpeechRecognizerStatus_FWD_DEFINED__
 8294typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
 8295#ifdef __cplusplus
 8296interface ISpeechRecognizerStatus;
 8297#endif /* __cplusplus */
 8298#endif
 8299
 8300#ifndef __ISpeechRecoContext_FWD_DEFINED__
 8301#define __ISpeechRecoContext_FWD_DEFINED__
 8302typedef interface ISpeechRecoContext ISpeechRecoContext;
 8303#ifdef __cplusplus
 8304interface ISpeechRecoContext;
 8305#endif /* __cplusplus */
 8306#endif
 8307
 8308#ifndef __ISpeechRecoGrammar_FWD_DEFINED__
 8309#define __ISpeechRecoGrammar_FWD_DEFINED__
 8310typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
 8311#ifdef __cplusplus
 8312interface ISpeechRecoGrammar;
 8313#endif /* __cplusplus */
 8314#endif
 8315
 8316#ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
 8317#define ___ISpeechRecoContextEvents_FWD_DEFINED__
 8318typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
 8319#ifdef __cplusplus
 8320interface _ISpeechRecoContextEvents;
 8321#endif /* __cplusplus */
 8322#endif
 8323
 8324#ifndef __ISpeechGrammarRule_FWD_DEFINED__
 8325#define __ISpeechGrammarRule_FWD_DEFINED__
 8326typedef interface ISpeechGrammarRule ISpeechGrammarRule;
 8327#ifdef __cplusplus
 8328interface ISpeechGrammarRule;
 8329#endif /* __cplusplus */
 8330#endif
 8331
 8332#ifndef __ISpeechGrammarRules_FWD_DEFINED__
 8333#define __ISpeechGrammarRules_FWD_DEFINED__
 8334typedef interface ISpeechGrammarRules ISpeechGrammarRules;
 8335#ifdef __cplusplus
 8336interface ISpeechGrammarRules;
 8337#endif /* __cplusplus */
 8338#endif
 8339
 8340#ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
 8341#define __ISpeechGrammarRuleState_FWD_DEFINED__
 8342typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
 8343#ifdef __cplusplus
 8344interface ISpeechGrammarRuleState;
 8345#endif /* __cplusplus */
 8346#endif
 8347
 8348#ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
 8349#define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
 8350typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
 8351#ifdef __cplusplus
 8352interface ISpeechGrammarRuleStateTransition;
 8353#endif /* __cplusplus */
 8354#endif
 8355
 8356#ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
 8357#define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
 8358typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
 8359#ifdef __cplusplus
 8360interface ISpeechGrammarRuleStateTransitions;
 8361#endif /* __cplusplus */
 8362#endif
 8363
 8364#ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
 8365#define __ISpeechTextSelectionInformation_FWD_DEFINED__
 8366typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
 8367#ifdef __cplusplus
 8368interface ISpeechTextSelectionInformation;
 8369#endif /* __cplusplus */
 8370#endif
 8371
 8372#ifndef __ISpeechRecoResult_FWD_DEFINED__
 8373#define __ISpeechRecoResult_FWD_DEFINED__
 8374typedef interface ISpeechRecoResult ISpeechRecoResult;
 8375#ifdef __cplusplus
 8376interface ISpeechRecoResult;
 8377#endif /* __cplusplus */
 8378#endif
 8379
 8380#ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
 8381#define __ISpeechRecoResultTimes_FWD_DEFINED__
 8382typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
 8383#ifdef __cplusplus
 8384interface ISpeechRecoResultTimes;
 8385#endif /* __cplusplus */
 8386#endif
 8387
 8388#ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
 8389#define __ISpeechPhraseAlternate_FWD_DEFINED__
 8390typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
 8391#ifdef __cplusplus
 8392interface ISpeechPhraseAlternate;
 8393#endif /* __cplusplus */
 8394#endif
 8395
 8396#ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
 8397#define __ISpeechPhraseAlternates_FWD_DEFINED__
 8398typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
 8399#ifdef __cplusplus
 8400interface ISpeechPhraseAlternates;
 8401#endif /* __cplusplus */
 8402#endif
 8403
 8404#ifndef __ISpeechPhraseInfo_FWD_DEFINED__
 8405#define __ISpeechPhraseInfo_FWD_DEFINED__
 8406typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
 8407#ifdef __cplusplus
 8408interface ISpeechPhraseInfo;
 8409#endif /* __cplusplus */
 8410#endif
 8411
 8412#ifndef __ISpeechPhraseElement_FWD_DEFINED__
 8413#define __ISpeechPhraseElement_FWD_DEFINED__
 8414typedef interface ISpeechPhraseElement ISpeechPhraseElement;
 8415#ifdef __cplusplus
 8416interface ISpeechPhraseElement;
 8417#endif /* __cplusplus */
 8418#endif
 8419
 8420#ifndef __ISpeechPhraseElements_FWD_DEFINED__
 8421#define __ISpeechPhraseElements_FWD_DEFINED__
 8422typedef interface ISpeechPhraseElements ISpeechPhraseElements;
 8423#ifdef __cplusplus
 8424interface ISpeechPhraseElements;
 8425#endif /* __cplusplus */
 8426#endif
 8427
 8428#ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
 8429#define __ISpeechPhraseReplacement_FWD_DEFINED__
 8430typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
 8431#ifdef __cplusplus
 8432interface ISpeechPhraseReplacement;
 8433#endif /* __cplusplus */
 8434#endif
 8435
 8436#ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
 8437#define __ISpeechPhraseReplacements_FWD_DEFINED__
 8438typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
 8439#ifdef __cplusplus
 8440interface ISpeechPhraseReplacements;
 8441#endif /* __cplusplus */
 8442#endif
 8443
 8444#ifndef __ISpeechPhraseProperty_FWD_DEFINED__
 8445#define __ISpeechPhraseProperty_FWD_DEFINED__
 8446typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
 8447#ifdef __cplusplus
 8448interface ISpeechPhraseProperty;
 8449#endif /* __cplusplus */
 8450#endif
 8451
 8452#ifndef __ISpeechPhraseProperties_FWD_DEFINED__
 8453#define __ISpeechPhraseProperties_FWD_DEFINED__
 8454typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
 8455#ifdef __cplusplus
 8456interface ISpeechPhraseProperties;
 8457#endif /* __cplusplus */
 8458#endif
 8459
 8460#ifndef __ISpeechPhraseRule_FWD_DEFINED__
 8461#define __ISpeechPhraseRule_FWD_DEFINED__
 8462typedef interface ISpeechPhraseRule ISpeechPhraseRule;
 8463#ifdef __cplusplus
 8464interface ISpeechPhraseRule;
 8465#endif /* __cplusplus */
 8466#endif
 8467
 8468#ifndef __ISpeechPhraseRules_FWD_DEFINED__
 8469#define __ISpeechPhraseRules_FWD_DEFINED__
 8470typedef interface ISpeechPhraseRules ISpeechPhraseRules;
 8471#ifdef __cplusplus
 8472interface ISpeechPhraseRules;
 8473#endif /* __cplusplus */
 8474#endif
 8475
 8476#ifndef __ISpeechLexicon_FWD_DEFINED__
 8477#define __ISpeechLexicon_FWD_DEFINED__
 8478typedef interface ISpeechLexicon ISpeechLexicon;
 8479#ifdef __cplusplus
 8480interface ISpeechLexicon;
 8481#endif /* __cplusplus */
 8482#endif
 8483
 8484#ifndef __ISpeechLexiconWords_FWD_DEFINED__
 8485#define __ISpeechLexiconWords_FWD_DEFINED__
 8486typedef interface ISpeechLexiconWords ISpeechLexiconWords;
 8487#ifdef __cplusplus
 8488interface ISpeechLexiconWords;
 8489#endif /* __cplusplus */
 8490#endif
 8491
 8492#ifndef __ISpeechLexiconWord_FWD_DEFINED__
 8493#define __ISpeechLexiconWord_FWD_DEFINED__
 8494typedef interface ISpeechLexiconWord ISpeechLexiconWord;
 8495#ifdef __cplusplus
 8496interface ISpeechLexiconWord;
 8497#endif /* __cplusplus */
 8498#endif
 8499
 8500#ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
 8501#define __ISpeechLexiconPronunciations_FWD_DEFINED__
 8502typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
 8503#ifdef __cplusplus
 8504interface ISpeechLexiconPronunciations;
 8505#endif /* __cplusplus */
 8506#endif
 8507
 8508#ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
 8509#define __ISpeechLexiconPronunciation_FWD_DEFINED__
 8510typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
 8511#ifdef __cplusplus
 8512interface ISpeechLexiconPronunciation;
 8513#endif /* __cplusplus */
 8514#endif
 8515
 8516typedef LONG SpeechLanguageId;
 8517#define __SpeechStringConstants_MODULE_DEFINED__
 8518#ifndef __SpeechStringConstants_MODULE_DEFINED__
 8519#define __SpeechStringConstants_MODULE_DEFINED__
 8520#define SpeechRegistryUserRoot (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech")
 8521
 8522#define SpeechRegistryLocalMachineRoot (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech")
 8523
 8524#define SpeechCategoryAudioOut (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioOutput")
 8525
 8526#define SpeechCategoryAudioIn (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioInput")
 8527
 8528#define SpeechCategoryVoices (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices")
 8529
 8530#define SpeechCategoryRecognizers (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Recognizers")
 8531
 8532#define SpeechCategoryAppLexicons (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AppLexicons")
 8533
 8534#define SpeechCategoryPhoneConverters (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\PhoneConverters")
 8535
 8536#define SpeechCategoryRecoProfiles (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\RecoProfiles")
 8537
 8538#define SpeechTokenIdUserLexicon (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\CurrentUserLexicon")
 8539
 8540#define SpeechTokenValueCLSID (L"CLSID")
 8541
 8542#define SpeechTokenKeyFiles (L"Files")
 8543
 8544#define SpeechTokenKeyUI (L"UI")
 8545
 8546#define SpeechTokenKeyAttributes (L"Attributes")
 8547
 8548#define SpeechVoiceCategoryTTSRate (L"DefaultTTSRate")
 8549
 8550#define SpeechPropertyResourceUsage (L"ResourceUsage")
 8551
 8552#define SpeechPropertyHighConfidenceThreshold (L"HighConfidenceThreshold")
 8553
 8554#define SpeechPropertyNormalConfidenceThreshold (L"NormalConfidenceThreshold")
 8555
 8556#define SpeechPropertyLowConfidenceThreshold (L"LowConfidenceThreshold")
 8557
 8558#define SpeechPropertyResponseSpeed (L"ResponseSpeed")
 8559
 8560#define SpeechPropertyComplexResponseSpeed (L"ComplexResponseSpeed")
 8561
 8562#define SpeechPropertyAdaptationOn (L"AdaptationOn")
 8563
 8564#define SpeechDictationTopicSpelling (L"Spelling")
 8565
 8566#define SpeechGrammarTagWildcard (L"...")
 8567
 8568#define SpeechGrammarTagDictation (L"*")
 8569
 8570#define SpeechGrammarTagUnlimitedDictation (L"*+")
 8571
 8572#define SpeechEngineProperties (L"EngineProperties")
 8573
 8574#define SpeechAddRemoveWord (L"AddRemoveWord")
 8575
 8576#define SpeechUserTraining (L"UserTraining")
 8577
 8578#define SpeechMicTraining (L"MicTraining")
 8579
 8580#define SpeechRecoProfileProperties (L"RecoProfileProperties")
 8581
 8582#define SpeechAudioProperties (L"AudioProperties")
 8583
 8584#define SpeechAudioVolume (L"AudioVolume")
 8585
 8586#define SpeechVoiceSkipTypeSentence (L"Sentence")
 8587
 8588#define SpeechAudioFormatGUIDWave (L"{C31ADBAE-527F-4ff5-A230-F62BB61FF70C}")
 8589
 8590#define SpeechAudioFormatGUIDText (L"{7CEEF9F9-3D13-11d2-9EE7-00C04F797396}")
 8591
 8592#endif /* __SpeechStringConstants_MODULE_DEFINED__ */
 8593#ifndef __SpeechConstants_MODULE_DEFINED__
 8594#define __SpeechConstants_MODULE_DEFINED__
 8595#define Speech_Default_Weight (DEFAULT_WEIGHT)
 8596
 8597#define Speech_Max_Word_Length (SP_MAX_WORD_LENGTH)
 8598
 8599#define Speech_Max_Pron_Length (SP_MAX_PRON_LENGTH)
 8600
 8601#define Speech_StreamPos_Asap (SP_STREAMPOS_ASAP)
 8602
 8603#define Speech_StreamPos_RealTime (SP_STREAMPOS_REALTIME)
 8604
 8605#define SpeechAllElements (SPPR_ALL_ELEMENTS)
 8606
 8607#endif /* __SpeechConstants_MODULE_DEFINED__ */
 8608typedef enum DISPID_SpeechDataKey {
 8609    DISPID_SDKSetBinaryValue = 1,
 8610    DISPID_SDKGetBinaryValue = 2,
 8611    DISPID_SDKSetStringValue = 3,
 8612    DISPID_SDKGetStringValue = 4,
 8613    DISPID_SDKSetLongValue = 5,
 8614    DISPID_SDKGetlongValue = 6,
 8615    DISPID_SDKOpenKey = 7,
 8616    DISPID_SDKCreateKey = 8,
 8617    DISPID_SDKDeleteKey = 9,
 8618    DISPID_SDKDeleteValue = 10,
 8619    DISPID_SDKEnumKeys = 11,
 8620    DISPID_SDKEnumValues = 12
 8621} DISPID_SpeechDataKey;
 8622typedef enum DISPID_SpeechObjectToken {
 8623    DISPID_SOTId = 1,
 8624    DISPID_SOTDataKey = 2,
 8625    DISPID_SOTCategory = 3,
 8626    DISPID_SOTGetDescription = 4,
 8627    DISPID_SOTSetId = 5,
 8628    DISPID_SOTGetAttribute = 6,
 8629    DISPID_SOTCreateInstance = 7,
 8630    DISPID_SOTRemove = 8,
 8631    DISPID_SOTGetStorageFileName = 9,
 8632    DISPID_SOTRemoveStorageFileName = 10,
 8633    DISPID_SOTIsUISupported = 11,
 8634    DISPID_SOTDisplayUI = 12,
 8635    DISPID_SOTMatchesAttributes = 13
 8636} DISPID_SpeechObjectToken;
 8637typedef enum SpeechDataKeyLocation {
 8638    SDKLDefaultLocation = SPDKL_DefaultLocation,
 8639    SDKLCurrentUser = SPDKL_CurrentUser,
 8640    SDKLLocalMachine = SPDKL_LocalMachine,
 8641    SDKLCurrentConfig = SPDKL_CurrentConfig
 8642} SpeechDataKeyLocation;
 8643typedef enum SpeechTokenContext {
 8644    STCInprocServer = CLSCTX_INPROC_SERVER,
 8645    STCInprocHandler = CLSCTX_INPROC_HANDLER,
 8646    STCLocalServer = CLSCTX_LOCAL_SERVER,
 8647    STCRemoteServer = CLSCTX_REMOTE_SERVER,
 8648    STCAll = ((CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER) | CLSCTX_LOCAL_SERVER) | CLSCTX_REMOTE_SERVER
 8649} SpeechTokenContext;
 8650typedef enum SpeechTokenShellFolder {
 8651    STSF_AppData = 0x1a,
 8652    STSF_LocalAppData = 0x1c,
 8653    STSF_CommonAppData = 0x23,
 8654    STSF_FlagCreate = 0x8000
 8655} SpeechTokenShellFolder;
 8656typedef enum DISPID_SpeechObjectTokens {
 8657    DISPID_SOTsCount = 1,
 8658    DISPID_SOTsItem = DISPID_VALUE,
 8659    DISPID_SOTs_NewEnum = DISPID_NEWENUM
 8660} DISPID_SpeechObjectTokens;
 8661typedef enum DISPID_SpeechObjectTokenCategory {
 8662    DISPID_SOTCId = 1,
 8663    DISPID_SOTCDefault = 2,
 8664    DISPID_SOTCSetId = 3,
 8665    DISPID_SOTCGetDataKey = 4,
 8666    DISPID_SOTCEnumerateTokens = 5
 8667} DISPID_SpeechObjectTokenCategory;
 8668/*****************************************************************************
 8669 * ISpeechDataKey interface
 8670 */
 8671#ifndef __ISpeechDataKey_INTERFACE_DEFINED__
 8672#define __ISpeechDataKey_INTERFACE_DEFINED__
 8673
 8674DEFINE_GUID(IID_ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd);
 8675#if defined(__cplusplus) && !defined(CINTERFACE)
 8676MIDL_INTERFACE("ce17c09b-4efa-44d5-a4c9-59d9585ab0cd")
 8677ISpeechDataKey : public IDispatch
 8678{
 8679    virtual HRESULT STDMETHODCALLTYPE SetBinaryValue(
 8680        const BSTR ValueName,
 8681        VARIANT Value) = 0;
 8682
 8683    virtual HRESULT STDMETHODCALLTYPE GetBinaryValue(
 8684        const BSTR ValueName,
 8685        VARIANT *Value) = 0;
 8686
 8687    virtual HRESULT STDMETHODCALLTYPE SetStringValue(
 8688        const BSTR ValueName,
 8689        const BSTR Value) = 0;
 8690
 8691    virtual HRESULT STDMETHODCALLTYPE GetStringValue(
 8692        const BSTR ValueName,
 8693        BSTR *Value) = 0;
 8694
 8695    virtual HRESULT STDMETHODCALLTYPE SetLongValue(
 8696        const BSTR ValueName,
 8697        LONG Value) = 0;
 8698
 8699    virtual HRESULT STDMETHODCALLTYPE GetLongValue(
 8700        const BSTR ValueName,
 8701        LONG *Value) = 0;
 8702
 8703    virtual HRESULT STDMETHODCALLTYPE OpenKey(
 8704        const BSTR SubKeyName,
 8705        ISpeechDataKey **SubKey) = 0;
 8706
 8707    virtual HRESULT STDMETHODCALLTYPE CreateKey(
 8708        const BSTR SubKeyName,
 8709        ISpeechDataKey **SubKey) = 0;
 8710
 8711    virtual HRESULT STDMETHODCALLTYPE DeleteKey(
 8712        const BSTR SubKeyName) = 0;
 8713
 8714    virtual HRESULT STDMETHODCALLTYPE DeleteValue(
 8715        const BSTR ValueName) = 0;
 8716
 8717    virtual HRESULT STDMETHODCALLTYPE EnumKeys(
 8718        LONG Index,
 8719        BSTR *SubKeyName) = 0;
 8720
 8721    virtual HRESULT STDMETHODCALLTYPE EnumValues(
 8722        LONG Index,
 8723        BSTR *ValueName) = 0;
 8724
 8725};
 8726#ifdef __CRT_UUID_DECL
 8727__CRT_UUID_DECL(ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd)
 8728#endif
 8729#else
 8730typedef struct ISpeechDataKeyVtbl {
 8731    BEGIN_INTERFACE
 8732
 8733    /*** IUnknown methods ***/
 8734    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8735        ISpeechDataKey *This,
 8736        REFIID riid,
 8737        void **ppvObject);
 8738
 8739    ULONG (STDMETHODCALLTYPE *AddRef)(
 8740        ISpeechDataKey *This);
 8741
 8742    ULONG (STDMETHODCALLTYPE *Release)(
 8743        ISpeechDataKey *This);
 8744
 8745    /*** IDispatch methods ***/
 8746    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
 8747        ISpeechDataKey *This,
 8748        UINT *pctinfo);
 8749
 8750    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
 8751        ISpeechDataKey *This,
 8752        UINT iTInfo,
 8753        LCID lcid,
 8754        ITypeInfo **ppTInfo);
 8755
 8756    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
 8757        ISpeechDataKey *This,
 8758        REFIID riid,
 8759        LPOLESTR *rgszNames,
 8760        UINT cNames,
 8761        LCID lcid,
 8762        DISPID *rgDispId);
 8763
 8764    HRESULT (STDMETHODCALLTYPE *Invoke)(
 8765        ISpeechDataKey *This,
 8766        DISPID dispIdMember,
 8767        REFIID riid,
 8768        LCID lcid,
 8769        WORD wFlags,
 8770        DISPPARAMS *pDispParams,
 8771        VARIANT *pVarResult,
 8772        EXCEPINFO *pExcepInfo,
 8773        UINT *puArgErr);
 8774
 8775    /*** ISpeechDataKey methods ***/
 8776    HRESULT (STDMETHODCALLTYPE *SetBinaryValue)(
 8777        ISpeechDataKey *This,
 8778        const BSTR ValueName,
 8779        VARIANT Value);
 8780
 8781    HRESULT (STDMETHODCALLTYPE *GetBinaryValue)(
 8782        ISpeechDataKey *This,
 8783        const BSTR ValueName,
 8784        VARIANT *Value);
 8785
 8786    HRESULT (STDMETHODCALLTYPE *SetStringValue)(
 8787        ISpeechDataKey *This,
 8788        const BSTR ValueName,
 8789        const BSTR Value);
 8790
 8791    HRESULT (STDMETHODCALLTYPE *GetStringValue)(
 8792        ISpeechDataKey *This,
 8793        const BSTR ValueName,
 8794        BSTR *Value);
 8795
 8796    HRESULT (STDMETHODCALLTYPE *SetLongValue)(
 8797        ISpeechDataKey *This,
 8798        const BSTR ValueName,
 8799        LONG Value);
 8800
 8801    HRESULT (STDMETHODCALLTYPE *GetLongValue)(
 8802        ISpeechDataKey *This,
 8803        const BSTR ValueName,
 8804        LONG *Value);
 8805
 8806    HRESULT (STDMETHODCALLTYPE *OpenKey)(
 8807        ISpeechDataKey *This,
 8808        const BSTR SubKeyName,
 8809        ISpeechDataKey **SubKey);
 8810
 8811    HRESULT (STDMETHODCALLTYPE *CreateKey)(
 8812        ISpeechDataKey *This,
 8813        const BSTR SubKeyName,
 8814        ISpeechDataKey **SubKey);
 8815
 8816    HRESULT (STDMETHODCALLTYPE *DeleteKey)(
 8817        ISpeechDataKey *This,
 8818        const BSTR SubKeyName);
 8819
 8820    HRESULT (STDMETHODCALLTYPE *DeleteValue)(
 8821        ISpeechDataKey *This,
 8822        const BSTR ValueName);
 8823
 8824    HRESULT (STDMETHODCALLTYPE *EnumKeys)(
 8825        ISpeechDataKey *This,
 8826        LONG Index,
 8827        BSTR *SubKeyName);
 8828
 8829    HRESULT (STDMETHODCALLTYPE *EnumValues)(
 8830        ISpeechDataKey *This,
 8831        LONG Index,
 8832        BSTR *ValueName);
 8833
 8834    END_INTERFACE
 8835} ISpeechDataKeyVtbl;
 8836
 8837interface ISpeechDataKey {
 8838    CONST_VTBL ISpeechDataKeyVtbl* lpVtbl;
 8839};
 8840
 8841#ifdef COBJMACROS
 8842#ifndef WIDL_C_INLINE_WRAPPERS
 8843/*** IUnknown methods ***/
 8844#define ISpeechDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8845#define ISpeechDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
 8846#define ISpeechDataKey_Release(This) (This)->lpVtbl->Release(This)
 8847/*** IDispatch methods ***/
 8848#define ISpeechDataKey_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 8849#define ISpeechDataKey_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 8850#define ISpeechDataKey_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 8851#define ISpeechDataKey_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
 8852/*** ISpeechDataKey methods ***/
 8853#define ISpeechDataKey_SetBinaryValue(This,ValueName,Value) (This)->lpVtbl->SetBinaryValue(This,ValueName,Value)
 8854#define ISpeechDataKey_GetBinaryValue(This,ValueName,Value) (This)->lpVtbl->GetBinaryValue(This,ValueName,Value)
 8855#define ISpeechDataKey_SetStringValue(This,ValueName,Value) (This)->lpVtbl->SetStringValue(This,ValueName,Value)
 8856#define ISpeechDataKey_GetStringValue(This,ValueName,Value) (This)->lpVtbl->GetStringValue(This,ValueName,Value)
 8857#define ISpeechDataKey_SetLongValue(This,ValueName,Value) (This)->lpVtbl->SetLongValue(This,ValueName,Value)
 8858#define ISpeechDataKey_GetLongValue(This,ValueName,Value) (This)->lpVtbl->GetLongValue(This,ValueName,Value)
 8859#define ISpeechDataKey_OpenKey(This,SubKeyName,SubKey) (This)->lpVtbl->OpenKey(This,SubKeyName,SubKey)
 8860#define ISpeechDataKey_CreateKey(This,SubKeyName,SubKey) (This)->lpVtbl->CreateKey(This,SubKeyName,SubKey)
 8861#define ISpeechDataKey_DeleteKey(This,SubKeyName) (This)->lpVtbl->DeleteKey(This,SubKeyName)
 8862#define ISpeechDataKey_DeleteValue(This,ValueName) (This)->lpVtbl->DeleteValue(This,ValueName)
 8863#define ISpeechDataKey_EnumKeys(This,Index,SubKeyName) (This)->lpVtbl->EnumKeys(This,Index,SubKeyName)
 8864#define ISpeechDataKey_EnumValues(This,Index,ValueName) (This)->lpVtbl->EnumValues(This,Index,ValueName)
 8865#else
 8866/*** IUnknown methods ***/
 8867static inline HRESULT ISpeechDataKey_QueryInterface(ISpeechDataKey* This,REFIID riid,void **ppvObject) {
 8868    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8869}
 8870static inline ULONG ISpeechDataKey_AddRef(ISpeechDataKey* This) {
 8871    return This->lpVtbl->AddRef(This);
 8872}
 8873static inline ULONG ISpeechDataKey_Release(ISpeechDataKey* This) {
 8874    return This->lpVtbl->Release(This);
 8875}
 8876/*** IDispatch methods ***/
 8877static inline HRESULT ISpeechDataKey_GetTypeInfoCount(ISpeechDataKey* This,UINT *pctinfo) {
 8878    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
 8879}
 8880static inline HRESULT ISpeechDataKey_GetTypeInfo(ISpeechDataKey* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
 8881    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
 8882}
 8883static inline HRESULT ISpeechDataKey_GetIDsOfNames(ISpeechDataKey* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
 8884    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
 8885}
 8886static inline HRESULT ISpeechDataKey_Invoke(ISpeechDataKey* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
 8887    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
 8888}
 8889/*** ISpeechDataKey methods ***/
 8890static inline HRESULT ISpeechDataKey_SetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT Value) {
 8891    return This->lpVtbl->SetBinaryValue(This,ValueName,Value);
 8892}
 8893static inline HRESULT ISpeechDataKey_GetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT *Value) {
 8894    return This->lpVtbl->GetBinaryValue(This,ValueName,Value);
 8895}
 8896static inline HRESULT ISpeechDataKey_SetStringValue(ISpeechDataKey* This,const BSTR ValueName,const BSTR Value) {
 8897    return This->lpVtbl->SetStringValue(This,ValueName,Value);
 8898}
 8899static inline HRESULT ISpeechDataKey_GetStringValue(ISpeechDataKey* This,const BSTR ValueName,BSTR *Value) {
 8900    return This->lpVtbl->GetStringValue(This,ValueName,Value);
 8901}
 8902static inline HRESULT ISpeechDataKey_SetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG Value) {
 8903    return This->lpVtbl->SetLongValue(This,ValueName,Value);
 8904}
 8905static inline HRESULT ISpeechDataKey_GetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG *Value) {
 8906    return This->lpVtbl->GetLongValue(This,ValueName,Value);
 8907}
 8908static inline HRESULT ISpeechDataKey_OpenKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
 8909    return This->lpVtbl->OpenKey(This,SubKeyName,SubKey);
 8910}
 8911static inline HRESULT ISpeechDataKey_CreateKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
 8912    return This->lpVtbl->CreateKey(This,SubKeyName,SubKey);
 8913}
 8914static inline HRESULT ISpeechDataKey_DeleteKey(ISpeechDataKey* This,const BSTR SubKeyName) {
 8915    return This->lpVtbl->DeleteKey(This,SubKeyName);
 8916}
 8917static inline HRESULT ISpeechDataKey_DeleteValue(ISpeechDataKey* This,const BSTR ValueName) {
 8918    return This->lpVtbl->DeleteValue(This,ValueName);
 8919}
 8920static inline HRESULT ISpeechDataKey_EnumKeys(ISpeechDataKey* This,LONG Index,BSTR *SubKeyName) {
 8921    return This->lpVtbl->EnumKeys(This,Index,SubKeyName);
 8922}
 8923static inline HRESULT ISpeechDataKey_EnumValues(ISpeechDataKey* This,LONG Index,BSTR *ValueName) {
 8924    return This->lpVtbl->EnumValues(This,Index,ValueName);
 8925}
 8926#endif
 8927#endif
 8928
 8929#endif
 8930
 8931
 8932#endif  /* __ISpeechDataKey_INTERFACE_DEFINED__ */
 8933
 8934/*****************************************************************************
 8935 * ISpeechObjectToken interface
 8936 */
 8937#ifndef __ISpeechObjectToken_INTERFACE_DEFINED__
 8938#define __ISpeechObjectToken_INTERFACE_DEFINED__
 8939
 8940DEFINE_GUID(IID_ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c);
 8941#if defined(__cplusplus) && !defined(CINTERFACE)
 8942MIDL_INTERFACE("c74a3adc-b727-4500-a84a-b526721c8b8c")
 8943ISpeechObjectToken : public IDispatch
 8944{
 8945    virtual HRESULT STDMETHODCALLTYPE get_Id(
 8946        BSTR *ObjectId) = 0;
 8947
 8948    virtual HRESULT STDMETHODCALLTYPE get_DataKey(
 8949        ISpeechDataKey **DataKey) = 0;
 8950
 8951    virtual HRESULT STDMETHODCALLTYPE get_Category(
 8952        ISpeechObjectTokenCategory **Category) = 0;
 8953
 8954    virtual HRESULT STDMETHODCALLTYPE GetDescription(
 8955        LONG Locale,
 8956        BSTR *Description) = 0;
 8957
 8958    virtual HRESULT STDMETHODCALLTYPE SetId(
 8959        BSTR Id,
 8960        BSTR CategoryID = L"",
 8961        VARIANT_BOOL CreateIfNotExist = 0) = 0;
 8962
 8963    virtual HRESULT STDMETHODCALLTYPE GetAttribute(
 8964        BSTR AttributeName,
 8965        BSTR *AttributeValue) = 0;
 8966
 8967    virtual HRESULT STDMETHODCALLTYPE CreateInstance(
 8968        IUnknown *pUnkOuter,
 8969        SpeechTokenContext ClsContext,
 8970        IUnknown **Object) = 0;
 8971
 8972    virtual HRESULT STDMETHODCALLTYPE Remove(
 8973        BSTR ObjectStorageCLSID) = 0;
 8974
 8975    virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
 8976        BSTR ObjectStorageCLSID,
 8977        BSTR KeyName,
 8978        BSTR FileName,
 8979        SpeechTokenShellFolder Folder,
 8980        BSTR *FilePath) = 0;
 8981
 8982    virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
 8983        BSTR ObjectStorageCLSID,
 8984        BSTR KeyName,
 8985        VARIANT_BOOL DeleteFile) = 0;
 8986
 8987    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
 8988        const BSTR TypeOfUI,
 8989        const VARIANT *ExtraData,
 8990        IUnknown *Object,
 8991        VARIANT_BOOL *Supported) = 0;
 8992
 8993    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
 8994        LONG hWnd,
 8995        BSTR Title,
 8996        const BSTR TypeOfUI,
 8997        const VARIANT *ExtraData = 0,
 8998        IUnknown *Object = 0) = 0;
 8999
 9000    virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
 9001        BSTR Attributes,
 9002        VARIANT_BOOL *Matches) = 0;
 9003
 9004};
 9005#ifdef __CRT_UUID_DECL
 9006__CRT_UUID_DECL(ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c)
 9007#endif
 9008#else
 9009typedef struct ISpeechObjectTokenVtbl {
 9010    BEGIN_INTERFACE
 9011
 9012    /*** IUnknown methods ***/
 9013    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9014        ISpeechObjectToken *This,
 9015        REFIID riid,
 9016        void **ppvObject);
 9017
 9018    ULONG (STDMETHODCALLTYPE *AddRef)(
 9019        ISpeechObjectToken *This);
 9020
 9021    ULONG (STDMETHODCALLTYPE *Release)(
 9022        ISpeechObjectToken *This);
 9023
 9024    /*** IDispatch methods ***/
 9025    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
 9026        ISpeechObjectToken *This,
 9027        UINT *pctinfo);
 9028
 9029    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
 9030        ISpeechObjectToken *This,
 9031        UINT iTInfo,
 9032        LCID lcid,
 9033        ITypeInfo **ppTInfo);
 9034
 9035    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
 9036        ISpeechObjectToken *This,
 9037        REFIID riid,
 9038        LPOLESTR *rgszNames,
 9039        UINT cNames,
 9040        LCID lcid,
 9041        DISPID *rgDispId);
 9042
 9043    HRESULT (STDMETHODCALLTYPE *Invoke)(
 9044        ISpeechObjectToken *This,
 9045        DISPID dispIdMember,
 9046        REFIID riid,
 9047        LCID lcid,
 9048        WORD wFlags,
 9049        DISPPARAMS *pDispParams,
 9050        VARIANT *pVarResult,
 9051        EXCEPINFO *pExcepInfo,
 9052        UINT *puArgErr);
 9053
 9054    /*** ISpeechObjectToken methods ***/
 9055    HRESULT (STDMETHODCALLTYPE *get_Id)(
 9056        ISpeechObjectToken *This,
 9057        BSTR *ObjectId);
 9058
 9059    HRESULT (STDMETHODCALLTYPE *get_DataKey)(
 9060        ISpeechObjectToken *This,
 9061        ISpeechDataKey **DataKey);
 9062
 9063    HRESULT (STDMETHODCALLTYPE *get_Category)(
 9064        ISpeechObjectToken *This,
 9065        ISpeechObjectTokenCategory **Category);
 9066
 9067    HRESULT (STDMETHODCALLTYPE *GetDescription)(
 9068        ISpeechObjectToken *This,
 9069        LONG Locale,
 9070        BSTR *Description);
 9071
 9072    HRESULT (STDMETHODCALLTYPE *SetId)(
 9073        ISpeechObjectToken *This,
 9074        BSTR Id,
 9075        BSTR CategoryID,
 9076        VARIANT_BOOL CreateIfNotExist);
 9077
 9078    HRESULT (STDMETHODCALLTYPE *GetAttribute)(
 9079        ISpeechObjectToken *This,
 9080        BSTR AttributeName,
 9081        BSTR *AttributeValue);
 9082
 9083    HRESULT (STDMETHODCALLTYPE *CreateInstance)(
 9084        ISpeechObjectToken *This,
 9085        IUnknown *pUnkOuter,
 9086        SpeechTokenContext ClsContext,
 9087        IUnknown **Object);
 9088
 9089    HRESULT (STDMETHODCALLTYPE *Remove)(
 9090        ISpeechObjectToken *This,
 9091        BSTR ObjectStorageCLSID);
 9092
 9093    HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
 9094        ISpeechObjectToken *This,
 9095        BSTR ObjectStorageCLSID,
 9096        BSTR KeyName,
 9097        BSTR FileName,
 9098        SpeechTokenShellFolder Folder,
 9099        BSTR *FilePath);
 9100
 9101    HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
 9102        ISpeechObjectToken *This,
 9103        BSTR ObjectStorageCLSID,
 9104        BSTR KeyName,
 9105        VARIANT_BOOL DeleteFile);
 9106
 9107    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
 9108        ISpeechObjectToken *This,
 9109        const BSTR TypeOfUI,
 9110        const VARIANT *ExtraData,
 9111        IUnknown *Object,
 9112        VARIANT_BOOL *Supported);
 9113
 9114    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
 9115        ISpeechObjectToken *This,
 9116        LONG hWnd,
 9117        BSTR Title,
 9118        const BSTR TypeOfUI,
 9119        const VARIANT *ExtraData,
 9120        IUnknown *Object);
 9121
 9122    HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
 9123        ISpeechObjectToken *This,
 9124        BSTR Attributes,
 9125        VARIANT_BOOL *Matches);
 9126
 9127    END_INTERFACE
 9128} ISpeechObjectTokenVtbl;
 9129
 9130interface ISpeechObjectToken {
 9131    CONST_VTBL ISpeechObjectTokenVtbl* lpVtbl;
 9132};
 9133
 9134#ifdef COBJMACROS
 9135#ifndef WIDL_C_INLINE_WRAPPERS
 9136/*** IUnknown methods ***/
 9137#define ISpeechObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9138#define ISpeechObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
 9139#define ISpeechObjectToken_Release(This) (This)->lpVtbl->Release(This)
 9140/*** IDispatch methods ***/
 9141#define ISpeechObjectToken_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 9142#define ISpeechObjectToken_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 9143#define ISpeechObjectToken_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 9144#define ISpeechObjectToken_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
 9145/*** ISpeechObjectToken methods ***/
 9146#define ISpeechObjectToken_get_Id(This,ObjectId) (This)->lpVtbl->get_Id(This,ObjectId)
 9147#define ISpeechObjectToken_get_DataKey(This,DataKey) (This)->lpVtbl->get_DataKey(This,DataKey)
 9148#define ISpeechObjectToken_get_Category(This,Category) (This)->lpVtbl->get_Category(This,Category)
 9149#define ISpeechObjectToken_GetDescription(This,Locale,Description) (This)->lpVtbl->GetDescription(This,Locale,Description)
 9150#define ISpeechObjectToken_SetId(This,Id,CategoryID,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist)
 9151#define ISpeechObjectToken_GetAttribute(This,AttributeName,AttributeValue) (This)->lpVtbl->GetAttribute(This,AttributeName,AttributeValue)
 9152#define ISpeechObjectToken_CreateInstance(This,pUnkOuter,ClsContext,Object) (This)->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object)
 9153#define ISpeechObjectToken_Remove(This,ObjectStorageCLSID) (This)->lpVtbl->Remove(This,ObjectStorageCLSID)
 9154#define ISpeechObjectToken_GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath) (This)->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath)
 9155#define ISpeechObjectToken_RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile)
 9156#define ISpeechObjectToken_IsUISupported(This,TypeOfUI,ExtraData,Object,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported)
 9157#define ISpeechObjectToken_DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object) (This)->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object)
 9158#define ISpeechObjectToken_MatchesAttributes(This,Attributes,Matches) (This)->lpVtbl->MatchesAttributes(This,Attributes,Matches)
 9159#else
 9160/*** IUnknown methods ***/
 9161static inline HRESULT ISpeechObjectToken_QueryInterface(ISpeechObjectToken* This,REFIID riid,void **ppvObject) {
 9162    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9163}
 9164static inline ULONG ISpeechObjectToken_AddRef(ISpeechObjectToken* This) {
 9165    return This->lpVtbl->AddRef(This);
 9166}
 9167static inline ULONG ISpeechObjectToken_Release(ISpeechObjectToken* This) {
 9168    return This->lpVtbl->Release(This);
 9169}
 9170/*** IDispatch methods ***/
 9171static inline HRESULT ISpeechObjectToken_GetTypeInfoCount(ISpeechObjectToken* This,UINT *pctinfo) {
 9172    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
 9173}
 9174static inline HRESULT ISpeechObjectToken_GetTypeInfo(ISpeechObjectToken* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
 9175    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
 9176}
 9177static inline HRESULT ISpeechObjectToken_GetIDsOfNames(ISpeechObjectToken* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
 9178    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
 9179}
 9180static inline HRESULT ISpeechObjectToken_Invoke(ISpeechObjectToken* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
 9181    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
 9182}
 9183/*** ISpeechObjectToken methods ***/
 9184static inline HRESULT ISpeechObjectToken_get_Id(ISpeechObjectToken* This,BSTR *ObjectId) {
 9185    return This->lpVtbl->get_Id(This,ObjectId);
 9186}
 9187static inline HRESULT ISpeechObjectToken_get_DataKey(ISpeechObjectToken* This,ISpeechDataKey **DataKey) {
 9188    return This->lpVtbl->get_DataKey(This,DataKey);
 9189}
 9190static inline HRESULT ISpeechObjectToken_get_Category(ISpeechObjectToken* This,ISpeechObjectTokenCategory **Category) {
 9191    return This->lpVtbl->get_Category(This,Category);
 9192}
 9193static inline HRESULT ISpeechObjectToken_GetDescription(ISpeechObjectToken* This,LONG Locale,BSTR *Description) {
 9194    return This->lpVtbl->GetDescription(This,Locale,Description);
 9195}
 9196static inline HRESULT ISpeechObjectToken_SetId(ISpeechObjectToken* This,BSTR Id,BSTR CategoryID,VARIANT_BOOL CreateIfNotExist) {
 9197    return This->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist);
 9198}
 9199static inline HRESULT ISpeechObjectToken_GetAttribute(ISpeechObjectToken* This,BSTR AttributeName,BSTR *AttributeValue) {
 9200    return This->lpVtbl->GetAttribute(This,AttributeName,AttributeValue);
 9201}
 9202static inline HRESULT ISpeechObjectToken_CreateInstance(ISpeechObjectToken* This,IUnknown *pUnkOuter,SpeechTokenContext ClsContext,IUnknown **Object) {
 9203    return This->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object);
 9204}
 9205static inline HRESULT ISpeechObjectToken_Remove(ISpeechObjectToken* This,BSTR ObjectStorageCLSID) {
 9206    return This->lpVtbl->Remove(This,ObjectStorageCLSID);
 9207}
 9208static inline HRESULT ISpeechObjectToken_GetStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,BSTR FileName,SpeechTokenShellFolder Folder,BSTR *FilePath) {
 9209    return This->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath);
 9210}
 9211static inline HRESULT ISpeechObjectToken_RemoveStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,VARIANT_BOOL DeleteFile) {
 9212    return This->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile);
 9213}
 9214static inline HRESULT ISpeechObjectToken_IsUISupported(ISpeechObjectToken* This,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object,VARIANT_BOOL *Supported) {
 9215    return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported);
 9216}
 9217static inline HRESULT ISpeechObjectToken_DisplayUI(ISpeechObjectToken* This,LONG hWnd,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object) {
 9218    return This->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object);
 9219}
 9220static inline HRESULT ISpeechObjectToken_MatchesAttributes(ISpeechObjectToken* This,BSTR Attributes,VARIANT_BOOL *Matches) {
 9221    return This->lpVtbl->MatchesAttributes(This,Attributes,Matches);
 9222}
 9223#endif
 9224#endif
 9225
 9226#endif
 9227
 9228
 9229#endif  /* __ISpeechObjectToken_INTERFACE_DEFINED__ */
 9230
 9231/*****************************************************************************
 9232 * ISpeechObjectTokens interface
 9233 */
 9234#ifndef __ISpeechObjectTokens_INTERFACE_DEFINED__
 9235#define __ISpeechObjectTokens_INTERFACE_DEFINED__
 9236
 9237DEFINE_GUID(IID_ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f);
 9238#if defined(__cplusplus) && !defined(CINTERFACE)
 9239MIDL_INTERFACE("9285b776-2e7b-4bc0-b53e-580eb6fa967f")
 9240ISpeechObjectTokens : public IDispatch
 9241{
 9242    virtual HRESULT STDMETHODCALLTYPE get_Count(
 9243        LONG *Count) = 0;
 9244
 9245    virtual HRESULT STDMETHODCALLTYPE Item(
 9246        LONG Index,
 9247        ISpeechObjectToken **Token) = 0;
 9248
 9249    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
 9250        IUnknown **ppEnumVARIANT) = 0;
 9251
 9252};
 9253#ifdef __CRT_UUID_DECL
 9254__CRT_UUID_DECL(ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f)
 9255#endif
 9256#else
 9257typedef struct ISpeechObjectTokensVtbl {
 9258    BEGIN_INTERFACE
 9259
 9260    /*** IUnknown methods ***/
 9261    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9262        ISpeechObjectTokens *This,
 9263        REFIID riid,
 9264        void **ppvObject);
 9265
 9266    ULONG (STDMETHODCALLTYPE *AddRef)(
 9267        ISpeechObjectTokens *This);
 9268
 9269    ULONG (STDMETHODCALLTYPE *Release)(
 9270        ISpeechObjectTokens *This);
 9271
 9272    /*** IDispatch methods ***/
 9273    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
 9274        ISpeechObjectTokens *This,
 9275        UINT *pctinfo);
 9276
 9277    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
 9278        ISpeechObjectTokens *This,
 9279        UINT iTInfo,
 9280        LCID lcid,
 9281        ITypeInfo **ppTInfo);
 9282
 9283    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
 9284        ISpeechObjectTokens *This,
 9285        REFIID riid,
 9286        LPOLESTR *rgszNames,
 9287        UINT cNames,
 9288        LCID lcid,
 9289        DISPID *rgDispId);
 9290
 9291    HRESULT (STDMETHODCALLTYPE *Invoke)(
 9292        ISpeechObjectTokens *This,
 9293        DISPID dispIdMember,
 9294        REFIID riid,
 9295        LCID lcid,
 9296        WORD wFlags,
 9297        DISPPARAMS *pDispParams,
 9298        VARIANT *pVarResult,
 9299        EXCEPINFO *pExcepInfo,
 9300        UINT *puArgErr);
 9301
 9302    /*** ISpeechObjectTokens methods ***/
 9303    HRESULT (STDMETHODCALLTYPE *get_Count)(
 9304        ISpeechObjectTokens *This,
 9305        LONG *Count);
 9306
 9307    HRESULT (STDMETHODCALLTYPE *Item)(
 9308        ISpeechObjectTokens *This,
 9309        LONG Index,
 9310        ISpeechObjectToken **Token);
 9311
 9312    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
 9313        ISpeechObjectTokens *This,
 9314        IUnknown **ppEnumVARIANT);
 9315
 9316    END_INTERFACE
 9317} ISpeechObjectTokensVtbl;
 9318
 9319interface ISpeechObjectTokens {
 9320    CONST_VTBL ISpeechObjectTokensVtbl* lpVtbl;
 9321};
 9322
 9323#ifdef COBJMACROS
 9324#ifndef WIDL_C_INLINE_WRAPPERS
 9325/*** IUnknown methods ***/
 9326#define ISpeechObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9327#define ISpeechObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
 9328#define ISpeechObjectTokens_Release(This) (This)->lpVtbl->Release(This)
 9329/*** IDispatch methods ***/
 9330#define ISpeechObjectTokens_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 9331#define ISpeechObjectTokens_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 9332#define ISpeechObjectTokens_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 9333#define ISpeechObjectTokens_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
 9334/*** ISpeechObjectTokens methods ***/
 9335#define ISpeechObjectTokens_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
 9336#define ISpeechObjectTokens_Item(This,Index,Token) (This)->lpVtbl->Item(This,Index,Token)
 9337#define ISpeechObjectTokens_get__NewEnum(This,ppEnumVARIANT) (This)->lpVtbl->get__NewEnum(This,ppEnumVARIANT)
 9338#else
 9339/*** IUnknown methods ***/
 9340static inline HRESULT ISpeechObjectTokens_QueryInterface(ISpeechObjectTokens* This,REFIID riid,void **ppvObject) {
 9341    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9342}
 9343static inline ULONG ISpeechObjectTokens_AddRef(ISpeechObjectTokens* This) {
 9344    return This->lpVtbl->AddRef(This);
 9345}
 9346static inline ULONG ISpeechObjectTokens_Release(ISpeechObjectTokens* This) {
 9347    return This->lpVtbl->Release(This);
 9348}
 9349/*** IDispatch methods ***/
 9350static inline HRESULT ISpeechObjectTokens_GetTypeInfoCount(ISpeechObjectTokens* This,UINT *pctinfo) {
 9351    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
 9352}
 9353static inline HRESULT ISpeechObjectTokens_GetTypeInfo(ISpeechObjectTokens* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
 9354    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
 9355}
 9356static inline HRESULT ISpeechObjectTokens_GetIDsOfNames(ISpeechObjectTokens* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
 9357    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
 9358}
 9359static inline HRESULT ISpeechObjectTokens_Invoke(ISpeechObjectTokens* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
 9360    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
 9361}
 9362/*** ISpeechObjectTokens methods ***/
 9363static inline HRESULT ISpeechObjectTokens_get_Count(ISpeechObjectTokens* This,LONG *Count) {
 9364    return This->lpVtbl->get_Count(This,Count);
 9365}
 9366static inline HRESULT ISpeechObjectTokens_Item(ISpeechObjectTokens* This,LONG Index,ISpeechObjectToken **Token) {
 9367    return This->lpVtbl->Item(This,Index,Token);
 9368}
 9369static inline HRESULT ISpeechObjectTokens_get__NewEnum(ISpeechObjectTokens* This,IUnknown **ppEnumVARIANT) {
 9370    return This->lpVtbl->get__NewEnum(This,ppEnumVARIANT);
 9371}
 9372#endif
 9373#endif
 9374
 9375#endif
 9376
 9377
 9378#endif  /* __ISpeechObjectTokens_INTERFACE_DEFINED__ */
 9379
 9380/*****************************************************************************
 9381 * ISpeechObjectTokenCategory interface
 9382 */
 9383#ifndef __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
 9384#define __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
 9385
 9386DEFINE_GUID(IID_ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69);
 9387#if defined(__cplusplus) && !defined(CINTERFACE)
 9388MIDL_INTERFACE("ca7eac50-2d01-4145-86d4-5ae7d70f4469")
 9389ISpeechObjectTokenCategory : public IDispatch
 9390{
 9391    virtual HRESULT STDMETHODCALLTYPE get_Id(
 9392        BSTR *Id) = 0;
 9393
 9394    virtual HRESULT STDMETHODCALLTYPE put_Default(
 9395        const BSTR TokenId) = 0;
 9396
 9397    virtual HRESULT STDMETHODCALLTYPE get_Default(
 9398        BSTR *TokenId) = 0;
 9399
 9400    virtual HRESULT STDMETHODCALLTYPE SetId(
 9401        const BSTR Id,
 9402        VARIANT_BOOL CreateIfNotExist = 0) = 0;
 9403
 9404    virtual HRESULT STDMETHODCALLTYPE GetDataKey(
 9405        SpeechDataKeyLocation Location,
 9406        ISpeechDataKey **DataKey) = 0;
 9407
 9408    virtual HRESULT STDMETHODCALLTYPE EnumerateTokens(
 9409        BSTR RequiredAttributes,
 9410        BSTR OptionalAttributes,
 9411        ISpeechObjectTokens **Tokens) = 0;
 9412
 9413};
 9414#ifdef __CRT_UUID_DECL
 9415__CRT_UUID_DECL(ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69)
 9416#endif
 9417#else
 9418typedef struct ISpeechObjectTokenCategoryVtbl {
 9419    BEGIN_INTERFACE
 9420
 9421    /*** IUnknown methods ***/
 9422    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9423        ISpeechObjectTokenCategory *This,
 9424        REFIID riid,
 9425        void **ppvObject);
 9426
 9427    ULONG (STDMETHODCALLTYPE *AddRef)(
 9428        ISpeechObjectTokenCategory *This);
 9429
 9430    ULONG (STDMETHODCALLTYPE *Release)(
 9431        ISpeechObjectTokenCategory *This);
 9432
 9433    /*** IDispatch methods ***/
 9434    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
 9435        ISpeechObjectTokenCategory *This,
 9436        UINT *pctinfo);
 9437
 9438    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
 9439        ISpeechObjectTokenCategory *This,
 9440        UINT iTInfo,
 9441        LCID lcid,
 9442        ITypeInfo **ppTInfo);
 9443
 9444    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
 9445        ISpeechObjectTokenCategory *This,
 9446        REFIID riid,
 9447        LPOLESTR *rgszNames,
 9448        UINT cNames,
 9449        LCID lcid,
 9450        DISPID *rgDispId);
 9451
 9452    HRESULT (STDMETHODCALLTYPE *Invoke)(
 9453        ISpeechObjectTokenCategory *This,
 9454        DISPID dispIdMember,
 9455        REFIID riid,
 9456        LCID lcid,
 9457        WORD wFlags,
 9458        DISPPARAMS *pDispParams,
 9459        VARIANT *pVarResult,
 9460        EXCEPINFO *pExcepInfo,
 9461        UINT *puArgErr);
 9462
 9463    /*** ISpeechObjectTokenCategory methods ***/
 9464    HRESULT (STDMETHODCALLTYPE *get_Id)(
 9465        ISpeechObjectTokenCategory *This,
 9466        BSTR *Id);
 9467
 9468    HRESULT (STDMETHODCALLTYPE *put_Default)(
 9469        ISpeechObjectTokenCategory *This,
 9470        const BSTR TokenId);
 9471
 9472    HRESULT (STDMETHODCALLTYPE *get_Default)(
 9473        ISpeechObjectTokenCategory *This,
 9474        BSTR *TokenId);
 9475
 9476    HRESULT (STDMETHODCALLTYPE *SetId)(
 9477        ISpeechObjectTokenCategory *This,
 9478        const BSTR Id,
 9479        VARIANT_BOOL CreateIfNotExist);
 9480
 9481    HRESULT (STDMETHODCALLTYPE *GetDataKey)(
 9482        ISpeechObjectTokenCategory *This,
 9483        SpeechDataKeyLocation Location,
 9484        ISpeechDataKey **DataKey);
 9485
 9486    HRESULT (STDMETHODCALLTYPE *EnumerateTokens)(
 9487        ISpeechObjectTokenCategory *This,
 9488        BSTR RequiredAttributes,
 9489        BSTR OptionalAttributes,
 9490        ISpeechObjectTokens **Tokens);
 9491
 9492    END_INTERFACE
 9493} ISpeechObjectTokenCategoryVtbl;
 9494
 9495interface ISpeechObjectTokenCategory {
 9496    CONST_VTBL ISpeechObjectTokenCategoryVtbl* lpVtbl;
 9497};
 9498
 9499#ifdef COBJMACROS
 9500#ifndef WIDL_C_INLINE_WRAPPERS
 9501/*** IUnknown methods ***/
 9502#define ISpeechObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9503#define ISpeechObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
 9504#define ISpeechObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
 9505/*** IDispatch methods ***/
 9506#define ISpeechObjectTokenCategory_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 9507#define ISpeechObjectTokenCategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 9508#define ISpeechObjectTokenCategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 9509#define ISpeechObjectTokenCategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
 9510/*** ISpeechObjectTokenCategory methods ***/
 9511#define ISpeechObjectTokenCategory_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
 9512#define ISpeechObjectTokenCategory_put_Default(This,TokenId) (This)->lpVtbl->put_Default(This,TokenId)
 9513#define ISpeechObjectTokenCategory_get_Default(This,TokenId) (This)->lpVtbl->get_Default(This,TokenId)
 9514#define ISpeechObjectTokenCategory_SetId(This,Id,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CreateIfNotExist)
 9515#define ISpeechObjectTokenCategory_GetDataKey(This,Location,DataKey) (This)->lpVtbl->GetDataKey(This,Location,DataKey)
 9516#define ISpeechObjectTokenCategory_EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens) (This)->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens)
 9517#else
 9518/*** IUnknown methods ***/
 9519static inline HRESULT ISpeechObjectTokenCategory_QueryInterface(ISpeechObjectTokenCategory* This,REFIID riid,void **ppvObject) {
 9520    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9521}
 9522static inline ULONG ISpeechObjectTokenCategory_AddRef(ISpeechObjectTokenCategory* This) {
 9523    return This->lpVtbl->AddRef(This);
 9524}
 9525static inline ULONG ISpeechObjectTokenCategory_Release(ISpeechObjectTokenCategory* This) {
 9526    return This->lpVtbl->Release(This);
 9527}
 9528/*** IDispatch methods ***/
 9529static inline HRESULT ISpeechObjectTokenCategory_GetTypeInfoCount(ISpeechObjectTokenCategory* This,UINT *pctinfo) {
 9530    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
 9531}
 9532static inline HRESULT ISpeechObjectTokenCategory_GetTypeInfo(ISpeechObjectTokenCategory* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
 9533    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
 9534}
 9535static inline HRESULT ISpeechObjectTokenCategory_GetIDsOfNames(ISpeechObjectTokenCategory* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
 9536    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
 9537}
 9538static inline HRESULT ISpeechObjectTokenCategory_Invoke(ISpeechObjectTokenCategory* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
 9539    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
 9540}
 9541/*** ISpeechObjectTokenCategory methods ***/
 9542static inline HRESULT ISpeechObjectTokenCategory_get_Id(ISpeechObjectTokenCategory* This,BSTR *Id) {
 9543    return This->lpVtbl->get_Id(This,Id);
 9544}
 9545static inline HRESULT ISpeechObjectTokenCategory_put_Default(ISpeechObjectTokenCategory* This,const BSTR TokenId) {
 9546    return This->lpVtbl->put_Default(This,TokenId);
 9547}
 9548static inline HRESULT ISpeechObjectTokenCategory_get_Default(ISpeechObjectTokenCategory* This,BSTR *TokenId) {
 9549    return This->lpVtbl->get_Default(This,TokenId);
 9550}
 9551static inline HRESULT ISpeechObjectTokenCategory_SetId(ISpeechObjectTokenCategory* This,const BSTR Id,VARIANT_BOOL CreateIfNotExist) {
 9552    return This->lpVtbl->SetId(This,Id,CreateIfNotExist);
 9553}
 9554static inline HRESULT ISpeechObjectTokenCategory_GetDataKey(ISpeechObjectTokenCategory* This,SpeechDataKeyLocation Location,ISpeechDataKey **DataKey) {
 9555    return This->lpVtbl->GetDataKey(This,Location,DataKey);
 9556}
 9557static inline HRESULT ISpeechObjectTokenCategory_EnumerateTokens(ISpeechObjectTokenCategory* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **Tokens) {
 9558    return This->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens);
 9559}
 9560#endif
 9561#endif
 9562
 9563#endif
 9564
 9565
 9566#endif  /* __ISpeechObjectTokenCategory_INTERFACE_DEFINED__ */
 9567
 9568typedef enum SpeechAudioFormatType {
 9569    SAFTDefault = -1,
 9570    SAFTNoAssignedFormat = 0,
 9571    SAFTText = 1,
 9572    SAFTNonStandardFormat = 2,
 9573    SAFTExtendedAudioFormat = 3,
 9574    SAFT8kHz8BitMono = 4,
 9575    SAFT8kHz8BitStereo = 5,
 9576    SAFT8kHz16BitMono = 6,
 9577    SAFT8kHz16BitStereo = 7,
 9578    SAFT11kHz8BitMono = 8,
 9579    SAFT11kHz8BitStereo = 9,
 9580    SAFT11kHz16BitMono = 10,
 9581    SAFT11kHz16BitStereo = 11,
 9582    SAFT12kHz8BitMono = 12,
 9583    SAFT12kHz8BitStereo = 13,
 9584    SAFT12kHz16BitMono = 14,
 9585    SAFT12kHz16BitStereo = 15,
 9586    SAFT16kHz8BitMono = 16,
 9587    SAFT16kHz8BitStereo = 17,
 9588    SAFT16kHz16BitMono = 18,
 9589    SAFT16kHz16BitStereo = 19,
 9590    SAFT22kHz8BitMono = 20,
 9591    SAFT22kHz8BitStereo = 21,
 9592    SAFT22kHz16BitMono = 22,
 9593    SAFT22kHz16BitStereo = 23,
 9594    SAFT24kHz8BitMono = 24,
 9595    SAFT24kHz8BitStereo = 25,
 9596    SAFT24kHz16BitMono = 26,
 9597    SAFT24kHz16BitStereo = 27,
 9598    SAFT32kHz8BitMono = 28,
 9599    SAFT32kHz8BitStereo = 29,
 9600    SAFT32kHz16BitMono = 30,
 9601    SAFT32kHz16BitStereo = 31,
 9602    SAFT44kHz8BitMono = 32,
 9603    SAFT44kHz8BitStereo = 33,
 9604    SAFT44kHz16BitMono = 34,
 9605    SAFT44kHz16BitStereo = 35,
 9606    SAFT48kHz8BitMono = 36,
 9607    SAFT48kHz8BitStereo = 37,
 9608    SAFT48kHz16BitMono = 38,
 9609    SAFT48kHz16BitStereo = 39,
 9610    SAFTTrueSpeech_8kHz1BitMono = 40,
 9611    SAFTCCITT_ALaw_8kHzMono = 41,
 9612    SAFTCCITT_ALaw_8kHzStereo = 42,
 9613    SAFTCCITT_ALaw_11kHzMono = 43,
 9614    SAFTCCITT_ALaw_11kHzStereo = 44,
 9615    SAFTCCITT_ALaw_22kHzMono = 45,
 9616    SAFTCCITT_ALaw_22kHzStereo = 46,
 9617    SAFTCCITT_ALaw_44kHzMono = 47,
 9618    SAFTCCITT_ALaw_44kHzStereo = 48,
 9619    SAFTCCITT_uLaw_8kHzMono = 49,
 9620    SAFTCCITT_uLaw_8kHzStereo = 50,
 9621    SAFTCCITT_uLaw_11kHzMono = 51,
 9622    SAFTCCITT_uLaw_11kHzStereo = 52,
 9623    SAFTCCITT_uLaw_22kHzMono = 53,
 9624    SAFTCCITT_uLaw_22kHzStereo = 54,
 9625    SAFTCCITT_uLaw_44kHzMono = 55,
 9626    SAFTCCITT_uLaw_44kHzStereo = 56,
 9627    SAFTADPCM_8kHzMono = 57,
 9628    SAFTADPCM_8kHzStereo = 58,
 9629    SAFTADPCM_11kHzMono = 59,
 9630    SAFTADPCM_11kHzStereo = 60,
 9631    SAFTADPCM_22kHzMono = 61,
 9632    SAFTADPCM_22kHzStereo = 62,
 9633    SAFTADPCM_44kHzMono = 63,
 9634    SAFTADPCM_44kHzStereo = 64,
 9635    SAFTGSM610_8kHzMono = 65,
 9636    SAFTGSM610_11kHzMono = 66,
 9637    SAFTGSM610_22kHzMono = 67,
 9638    SAFTGSM610_44kHzMono = 68
 9639} SpeechAudioFormatType;
 9640typedef enum DISPID_SpeechAudioFormat {
 9641    DISPID_SAFType = 1,
 9642    DISPID_SAFGuid = 2,
 9643    DISPID_SAFGetWaveFormatEx = 3,
 9644    DISPID_SAFSetWaveFormatEx = 4
 9645} DISPID_SpeechAudioFormat;
 9646typedef enum DISPID_SpeechBaseStream {
 9647    DISPID_SBSFormat = 1,
 9648    DISPID_SBSRead = 2,
 9649    DISPID_SBSWrite = 3,
 9650    DISPID_SBSSeek = 4
 9651} DISPID_SpeechBaseStream;
 9652typedef enum SpeechStreamSeekPositionType {
 9653    SSSPTRelativeToStart = STREAM_SEEK_SET,
 9654    SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR,
 9655    SSSPTRelativeToEnd = STREAM_SEEK_END
 9656} SpeechStreamSeekPositionType;
 9657typedef enum DISPID_SpeechAudio {
 9658    DISPID_SAStatus = 200,
 9659    DISPID_SABufferInfo = 201,
 9660    DISPID_SADefaultFormat = 202,
 9661    DISPID_SAVolume = 203,
 9662    DISPID_SABufferNotifySize = 204,
 9663    DISPID_SAEventHandle = 205,
 9664    DISPID_SASetState = 206
 9665} DISPID_SpeechAudio;
 9666typedef enum SpeechAudioState {
 9667    SASClosed = SPAS_CLOSED,
 9668    SASStop = SPAS_STOP,
 9669    SASPause = SPAS_PAUSE,
 9670    SASRun = SPAS_RUN
 9671} SpeechAudioState;
 9672typedef enum DISPID_SpeechMMSysAudio {
 9673    DISPID_SMSADeviceId = 300,
 9674    DISPID_SMSALineId = 301,
 9675    DISPID_SMSAMMHandle = 302
 9676} DISPID_SpeechMMSysAudio;
 9677typedef enum DISPID_SpeechFileStream {
 9678    DISPID_SFSOpen = 100,
 9679    DISPID_SFSClose = 101
 9680} DISPID_SpeechFileStream;
 9681typedef enum SpeechStreamFileMode {
 9682    SSFMOpenForRead = SPFM_OPEN_READONLY,
 9683    SSFMOpenReadWrite = SPFM_OPEN_READWRITE,
 9684    SSFMCreate = SPFM_CREATE,
 9685    SSFMCreateForWrite = SPFM_CREATE_ALWAYS
 9686} SpeechStreamFileMode;
 9687typedef enum DISPID_SpeechCustomStream {
 9688    DISPID_SCSBaseStream = 100
 9689} DISPID_SpeechCustomStream;
 9690typedef enum DISPID_SpeechMemoryStream {
 9691    DISPID_SMSSetData = 100,
 9692    DISPID_SMSGetData = 101
 9693} DISPID_SpeechMemoryStream;
 9694typedef enum DISPID_SpeechAudioStatus {
 9695    DISPID_SASFreeBufferSpace = 1,
 9696    DISPID_SASNonBlockingIO = 2,
 9697    DISPID_SASState = 3,
 9698    DISPID_SASCurrentSeekPosition = 4,
 9699    DISPID_SASCurrentDevicePosition = 5
 9700} DISPID_SpeechAudioStatus;
 9701typedef enum DISPID_SpeechAudioBufferInfo {
 9702    DISPID_SABIMinNotification = 1,
 9703    DISPID_SABIBufferSize = 2,
 9704    DISPID_SABIEventBias = 3
 9705} DISPID_SpeechAudioBufferInfo;
 9706typedef enum DISPID_SpeechWaveFormatEx {
 9707    DISPID_SWFEFormatTag = 1,
 9708    DISPID_SWFEChannels = 2,
 9709    DISPID_SWFESamplesPerSec = 3,
 9710    DISPID_SWFEAvgBytesPerSec = 4,
 9711    DISPID_SWFEBlockAlign = 5,
 9712    DISPID_SWFEBitsPerSample = 6,
 9713    DISPID_SWFEExtraData = 7
 9714} DISPID_SpeechWaveFormatEx;
 9715typedef enum DISPID_SpeechVoice {
 9716    DISPID_SVStatus = 1,
 9717    DISPID_SVVoice = 2,
 9718    DISPID_SVAudioOutput = 3,
 9719    DISPID_SVAudioOutputStream = 4,
 9720    DISPID_SVRate = 5,
 9721    DISPID_SVVolume = 6,
 9722    DISPID_SVAllowAudioOuputFormatChangesOnNextSet = 7,
 9723    DISPID_SVEventInterests = 8,
 9724    DISPID_SVPriority = 9,
 9725    DISPID_SVAlertBoundary = 10,
 9726    DISPID_SVSyncronousSpeakTimeout = 11,
 9727    DISPID_SVSpeak = 12,
 9728    DISPID_SVSpeakStream = 13,
 9729    DISPID_SVPause = 14,
 9730    DISPID_SVResume = 15,
 9731    DISPID_SVSkip = 16,
 9732    DISPID_SVGetVoices = 17,
 9733    DISPID_SVGetAudioOutputs = 18,
 9734    DISPID_SVWaitUntilDone = 19,
 9735    DISPID_SVSpeakCompleteEvent = 20,
 9736    DISPID_SVIsUISupported = 21,
 9737    DISPID_SVDisplayUI = 22
 9738} DISPID_SpeechVoice;
 9739typedef enum SpeechVoicePriority {
 9740    SVPNormal = SPVPRI_NORMAL,
 9741    SVPAlert = SPVPRI_ALERT,
 9742    SVPOver = SPVPRI_OVER
 9743} SpeechVoicePriority;
 9744typedef enum SpeechVoiceSpeakFlags {
 9745    SVSFDefault = SPF_DEFAULT,
 9746    SVSFlagsAsync = SPF_ASYNC,
 9747    SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK,
 9748    SVSFIsFilename = SPF_IS_FILENAME,
 9749    SVSFIsXML = SPF_IS_XML,
 9750    SVSFIsNotXML = SPF_IS_NOT_XML,
 9751    SVSFPersistXML = SPF_PERSIST_XML,
 9752    SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC,
 9753    SVSFNLPMask = SPF_NLP_MASK,
 9754    SVSFVoiceMask = SPF_VOICE_MASK,
 9755    SVSFUnusedFlags = SPF_UNUSED_FLAGS
 9756} SpeechVoiceSpeakFlags;
 9757typedef enum SpeechVoiceEvents {
 9758    SVEStartInputStream = 0x2,
 9759    SVEEndInputStream = 0x4,
 9760    SVEVoiceChange = 0x8,
 9761    SVEBookmark = 0x10,
 9762    SVEWordBoundary = 0x20,
 9763    SVEPhoneme = 0x40,
 9764    SVESentenceBoundary = 0x80,
 9765    SVEViseme = 0x100,
 9766    SVEAudioLevel = 0x200,
 9767    SVEPrivate = 0x8000,
 9768    SVEAllEvents = 0x83fe
 9769} SpeechVoiceEvents;
 9770typedef enum DISPID_SpeechVoiceStatus {
 9771    DISPID_SVSCurrentStreamNumber = 1,
 9772    DISPID_SVSLastStreamNumberQueued = 2,
 9773    DISPID_SVSLastResult = 3,
 9774    DISPID_SVSRunningState = 4,
 9775    DISPID_SVSInputWordPosition = 5,
 9776    DISPID_SVSInputWordLength = 6,
 9777    DISPID_SVSInputSentencePosition = 7,
 9778    DISPID_SVSInputSentenceLength = 8,
 9779    DISPID_SVSLastBookmark = 9,
 9780    DISPID_SVSLastBookmarkId = 10,
 9781    DISPID_SVSPhonemeId = 11,
 9782    DISPID_SVSVisemeId = 12
 9783} DISPID_SpeechVoiceStatus;
 9784typedef enum SpeechRunState {
 9785    SRSEDone = SPRS_DONE,
 9786    SRSEIsSpeaking = SPRS_IS_SPEAKING
 9787} SpeechRunState;
 9788/*****************************************************************************
 9789 * ISpeechAudioFormat interface
 9790 */
 9791#ifndef __ISpeechAudioFormat_INTERFACE_DEFINED__
 9792#define __ISpeechAudioFormat_INTERFACE_DEFINED__
 9793
 9794DEFINE_GUID(IID_ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7);
 9795#if defined(__cplusplus) && !defined(CINTERFACE)
 9796MIDL_INTERFACE("e6e9c590-3e18-40e3-8299-061f98bde7c7")
 9797ISpeechAudioFormat : public IDispatch
 9798{
 9799    virtual HRESULT STDMETHODCALLTYPE get_Type(
 9800        SpeechAudioFormatType *AudioFormat) = 0;
 9801
 9802    virtual HRESULT STDMETHODCALLTYPE put_Type(
 9803        SpeechAudioFormatType AudioFormat) = 0;
 9804
 9805    virtual HRESULT STDMETHODCALLTYPE get_Guid(
 9806        BSTR *Guid) = 0;
 9807
 9808    virtual HRESULT STDMETHODCALLTYPE put_Guid(
 9809        BSTR Guid) = 0;
 9810
 9811    virtual HRESULT STDMETHODCALLTYPE GetWaveFormatEx(
 9812        ISpeechWaveFormatEx **SpeechWaveFormatEx) = 0;
 9813
 9814    virtual HRESULT STDMETHODCALLTYPE SetWaveFormatEx(
 9815        ISpeechWaveFormatEx *SpeechWaveFormatEx) = 0;
 9816
 9817};
 9818#ifdef __CRT_UUID_DECL
 9819__CRT_UUID_DECL(ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7)
 9820#endif
 9821#else
 9822typedef struct ISpeechAudioFormatVtbl {
 9823    BEGIN_INTERFACE
 9824
 9825    /*** IUnknown methods ***/
 9826    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9827        ISpeechAudioFormat *This,
 9828        REFIID riid,
 9829        void **ppvObject);
 9830
 9831    ULONG (STDMETHODCALLTYPE *AddRef)(
 9832        ISpeechAudioFormat *This);
 9833
 9834    ULONG (STDMETHODCALLTYPE *Release)(
 9835        ISpeechAudioFormat *This);
 9836
 9837    /*** IDispatch methods ***/
 9838    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
 9839        ISpeechAudioFormat *This,
 9840        UINT *pctinfo);
 9841
 9842    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
 9843        ISpeechAudioFormat *This,
 9844        UINT iTInfo,
 9845        LCID lcid,
 9846        ITypeInfo **ppTInfo);
 9847
 9848    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
 9849        ISpeechAudioFormat *This,
 9850        REFIID riid,
 9851        LPOLESTR *rgszNames,
 9852        UINT cNames,
 9853        LCID lcid,
 9854        DISPID *rgDispId);
 9855
 9856    HRESULT (STDMETHODCALLTYPE *Invoke)(
 9857        ISpeechAudioFormat *This,
 9858        DISPID dispIdMember,
 9859        REFIID riid,
 9860        LCID lcid,
 9861        WORD wFlags,
 9862        DISPPARAMS *pDispParams,
 9863        VARIANT *pVarResult,
 9864        EXCEPINFO *pExcepInfo,
 9865        UINT *puArgErr);
 9866
 9867    /*** ISpeechAudioFormat methods ***/
 9868    HRESULT (STDMETHODCALLTYPE *get_Type)(
 9869        ISpeechAudioFormat *This,
 9870        SpeechAudioFormatType *AudioFormat);
 9871
 9872    HRESULT (STDMETHODCALLTYPE *put_Type)(
 9873        ISpeechAudioFormat *This,
 9874        SpeechAudioFormatType AudioFormat);
 9875
 9876    HRESULT (STDMETHODCALLTYPE *get_Guid)(
 9877        ISpeechAudioFormat *This,
 9878        BSTR *Guid);
 9879
 9880    HRESULT (STDMETHODCALLTYPE *put_Guid)(
 9881        ISpeechAudioFormat *This,
 9882        BSTR Guid);
 9883
 9884    HRESULT (STDMETHODCALLTYPE *GetWaveFormatEx)(
 9885        ISpeechAudioFormat *This,
 9886        ISpeechWaveFormatEx **SpeechWaveFormatEx);
 9887
 9888    HRESULT (STDMETHODCALLTYPE *SetWaveFormatEx)(
 9889        ISpeechAudioFormat *This,
 9890        ISpeechWaveFormatEx *SpeechWaveFormatEx);
 9891
 9892    END_INTERFACE
 9893} ISpeechAudioFormatVtbl;
 9894
 9895interface ISpeechAudioFormat {
 9896    CONST_VTBL ISpeechAudioFormatVtbl* lpVtbl;
 9897};
 9898
 9899#ifdef COBJMACROS
 9900#ifndef WIDL_C_INLINE_WRAPPERS
 9901/*** IUnknown methods ***/
 9902#define ISpeechAudioFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9903#define ISpeechAudioFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
 9904#define ISpeechAudioFormat_Release(This) (This)->lpVtbl->Release(This)
 9905/*** IDispatch methods ***/
 9906#define ISpeechAudioFormat_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 9907#define ISpeechAudioFormat_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 9908#define ISpeechAudioFormat_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 9909#define ISpeechAudioFormat_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
 9910/*** ISpeechAudioFormat methods ***/
 9911#define ISpeechAudioFormat_get_Type(This,AudioFormat) (This)->lpVtbl->get_Type(This,AudioFormat)
 9912#define ISpeechAudioFormat_put_Type(This,AudioFormat) (This)->lpVtbl->put_Type(This,AudioFormat)
 9913#define ISpeechAudioFormat_get_Guid(This,Guid) (This)->lpVtbl->get_Guid(This,Guid)
 9914#define ISpeechAudioFormat_put_Guid(This,Guid) (This)->lpVtbl->put_Guid(This,Guid)
 9915#define ISpeechAudioFormat_GetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx)
 9916#define ISpeechAudioFormat_SetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx)
 9917#else
 9918/*** IUnknown methods ***/
 9919static inline HRESULT ISpeechAudioFormat_QueryInterface(ISpeechAudioFormat* This,REFIID riid,void **ppvObject) {
 9920    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9921}
 9922static inline ULONG ISpeechAudioFormat_AddRef(ISpeechAudioFormat* This) {
 9923    return This->lpVtbl->AddRef(This);
 9924}
 9925static inline ULONG ISpeechAudioFormat_Release(ISpeechAudioFormat* This) {
 9926    return This->lpVtbl->Release(This);
 9927}
 9928/*** IDispatch methods ***/
 9929static inline HRESULT ISpeechAudioFormat_GetTypeInfoCount(ISpeechAudioFormat* This,UINT *pctinfo) {
 9930    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
 9931}
 9932static inline HRESULT ISpeechAudioFormat_GetTypeInfo(ISpeechAudioFormat* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
 9933    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
 9934}
 9935static inline HRESULT ISpeechAudioFormat_GetIDsOfNames(ISpeechAudioFormat* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
 9936    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
 9937}
 9938static inline HRESULT ISpeechAudioFormat_Invoke(ISpeechAudioFormat* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
 9939    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
 9940}
 9941/*** ISpeechAudioFormat methods ***/
 9942static inline HRESULT ISpeechAudioFormat_get_Type(ISpeechAudioFormat* This,SpeechAudioFormatType *AudioFormat) {
 9943    return This->lpVtbl->get_Type(This,AudioFormat);
 9944}
 9945static inline HRESULT ISpeechAudioFormat_put_Type(ISpeechAudioFormat* This,SpeechAudioFormatType AudioFormat) {
 9946    return This->lpVtbl->put_Type(This,AudioFormat);
 9947}
 9948static inline HRESULT ISpeechAudioFormat_get_Guid(ISpeechAudioFormat* This,BSTR *Guid) {
 9949    return This->lpVtbl->get_Guid(This,Guid);
 9950}
 9951static inline HRESULT ISpeechAudioFormat_put_Guid(ISpeechAudioFormat* This,BSTR Guid) {
 9952    return This->lpVtbl->put_Guid(This,Guid);
 9953}
 9954static inline HRESULT ISpeechAudioFormat_GetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx **SpeechWaveFormatEx) {
 9955    return This->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx);
 9956}
 9957static inline HRESULT ISpeechAudioFormat_SetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx *SpeechWaveFormatEx) {
 9958    return This->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx);
 9959}
 9960#endif
 9961#endif
 9962
 9963#endif
 9964
 9965
 9966#endif  /* __ISpeechAudioFormat_INTERFACE_DEFINED__ */
 9967
 9968/*****************************************************************************
 9969 * ISpeechBaseStream interface
 9970 */
 9971#ifndef __ISpeechBaseStream_INTERFACE_DEFINED__
 9972#define __ISpeechBaseStream_INTERFACE_DEFINED__
 9973
 9974DEFINE_GUID(IID_ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94);
 9975#if defined(__cplusplus) && !defined(CINTERFACE)
 9976MIDL_INTERFACE("6450336f-7d49-4ced-8097-49d6dee37294")
 9977ISpeechBaseStream : public IDispatch
 9978{
 9979    virtual HRESULT STDMETHODCALLTYPE get_Format(
 9980        ISpeechAudioFormat **AudioFormat) = 0;
 9981
 9982    virtual HRESULT STDMETHODCALLTYPE putref_Format(
 9983        ISpeechAudioFormat *AudioFormat) = 0;
 9984
 9985    virtual HRESULT STDMETHODCALLTYPE Read(
 9986        VARIANT *Buffer,
 9987        LONG NumberOfBytes,
 9988        LONG *BytesRead) = 0;
 9989
 9990    virtual HRESULT STDMETHODCALLTYPE Write(
 9991        VARIANT Buffer,
 9992        LONG *BytesWritten) = 0;
 9993
 9994    virtual HRESULT STDMETHODCALLTYPE Seek(
 9995        VARIANT Position,
 9996        SpeechStreamSeekPositionType Origin,
 9997        VARIANT *NewPosition) = 0;
 9998
 9999};
10000#ifdef __CRT_UUID_DECL
10001__CRT_UUID_DECL(ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94)
10002#endif
10003#else
10004typedef struct ISpeechBaseStreamVtbl {
10005    BEGIN_INTERFACE
10006
10007    /*** IUnknown methods ***/
10008    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10009        ISpeechBaseStream *This,
10010        REFIID riid,
10011        void **ppvObject);
10012
10013    ULONG (STDMETHODCALLTYPE *AddRef)(
10014        ISpeechBaseStream *This);
10015
10016    ULONG (STDMETHODCALLTYPE *Release)(
10017        ISpeechBaseStream *This);
10018
10019    /*** IDispatch methods ***/
10020    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
10021        ISpeechBaseStream *This,
10022        UINT *pctinfo);
10023
10024    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
10025        ISpeechBaseStream *This,
10026        UINT iTInfo,
10027        LCID lcid,
10028        ITypeInfo **ppTInfo);
10029
10030    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
10031        ISpeechBaseStream *This,
10032        REFIID riid,
10033        LPOLESTR *rgszNames,
10034        UINT cNames,
10035        LCID lcid,
10036        DISPID *rgDispId);
10037
10038    HRESULT (STDMETHODCALLTYPE *Invoke)(
10039        ISpeechBaseStream *This,
10040        DISPID dispIdMember,
10041        REFIID riid,
10042        LCID lcid,
10043        WORD wFlags,
10044        DISPPARAMS *pDispParams,
10045        VARIANT *pVarResult,
10046        EXCEPINFO *pExcepInfo,
10047        UINT *puArgErr);
10048
10049    /*** ISpeechBaseStream methods ***/
10050    HRESULT (STDMETHODCALLTYPE *get_Format)(
10051        ISpeechBaseStream *This,
10052        ISpeechAudioFormat **AudioFormat);
10053
10054    HRESULT (STDMETHODCALLTYPE *putref_Format)(
10055        ISpeechBaseStream *This,
10056        ISpeechAudioFormat *AudioFormat);
10057
10058    HRESULT (STDMETHODCALLTYPE *Read)(
10059        ISpeechBaseStream *This,
10060        VARIANT *Buffer,
10061        LONG NumberOfBytes,
10062        LONG *BytesRead);
10063
10064    HRESULT (STDMETHODCALLTYPE *Write)(
10065        ISpeechBaseStream *This,
10066        VARIANT Buffer,
10067        LONG *BytesWritten);
10068
10069    HRESULT (STDMETHODCALLTYPE *Seek)(
10070        ISpeechBaseStream *This,
10071        VARIANT Position,
10072        SpeechStreamSeekPositionType Origin,
10073        VARIANT *NewPosition);
10074
10075    END_INTERFACE
10076} ISpeechBaseStreamVtbl;
10077
10078interface ISpeechBaseStream {
10079    CONST_VTBL ISpeechBaseStreamVtbl* lpVtbl;
10080};
10081
10082#ifdef COBJMACROS
10083#ifndef WIDL_C_INLINE_WRAPPERS
10084/*** IUnknown methods ***/
10085#define ISpeechBaseStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10086#define ISpeechBaseStream_AddRef(This) (This)->lpVtbl->AddRef(This)
10087#define ISpeechBaseStream_Release(This) (This)->lpVtbl->Release(This)
10088/*** IDispatch methods ***/
10089#define ISpeechBaseStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
10090#define ISpeechBaseStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
10091#define ISpeechBaseStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
10092#define ISpeechBaseStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
10093/*** ISpeechBaseStream methods ***/
10094#define ISpeechBaseStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
10095#define ISpeechBaseStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
10096#define ISpeechBaseStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
10097#define ISpeechBaseStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
10098#define ISpeechBaseStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
10099#else
10100/*** IUnknown methods ***/
10101static inline HRESULT ISpeechBaseStream_QueryInterface(ISpeechBaseStream* This,REFIID riid,void **ppvObject) {
10102    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10103}
10104static inline ULONG ISpeechBaseStream_AddRef(ISpeechBaseStream* This) {
10105    return This->lpVtbl->AddRef(This);
10106}
10107static inline ULONG ISpeechBaseStream_Release(ISpeechBaseStream* This) {
10108    return This->lpVtbl->Release(This);
10109}
10110/*** IDispatch methods ***/
10111static inline HRESULT ISpeechBaseStream_GetTypeInfoCount(ISpeechBaseStream* This,UINT *pctinfo) {
10112    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
10113}
10114static inline HRESULT ISpeechBaseStream_GetTypeInfo(ISpeechBaseStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
10115    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
10116}
10117static inline HRESULT ISpeechBaseStream_GetIDsOfNames(ISpeechBaseStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
10118    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
10119}
10120static inline HRESULT ISpeechBaseStream_Invoke(ISpeechBaseStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
10121    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
10122}
10123/*** ISpeechBaseStream methods ***/
10124static inline HRESULT ISpeechBaseStream_get_Format(ISpeechBaseStream* This,ISpeechAudioFormat **AudioFormat) {
10125    return This->lpVtbl->get_Format(This,AudioFormat);
10126}
10127static inline HRESULT ISpeechBaseStream_putref_Format(ISpeechBaseStream* This,ISpeechAudioFormat *AudioFormat) {
10128    return This->lpVtbl->putref_Format(This,AudioFormat);
10129}
10130static inline HRESULT ISpeechBaseStream_Read(ISpeechBaseStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
10131    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
10132}
10133static inline HRESULT ISpeechBaseStream_Write(ISpeechBaseStream* This,VARIANT Buffer,LONG *BytesWritten) {
10134    return This->lpVtbl->Write(This,Buffer,BytesWritten);
10135}
10136static inline HRESULT ISpeechBaseStream_Seek(ISpeechBaseStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
10137    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
10138}
10139#endif
10140#endif
10141
10142#endif
10143
10144
10145#endif  /* __ISpeechBaseStream_INTERFACE_DEFINED__ */
10146
10147/*****************************************************************************
10148 * ISpeechAudio interface
10149 */
10150#ifndef __ISpeechAudio_INTERFACE_DEFINED__
10151#define __ISpeechAudio_INTERFACE_DEFINED__
10152
10153DEFINE_GUID(IID_ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
10154#if defined(__cplusplus) && !defined(CINTERFACE)
10155MIDL_INTERFACE("cff8e175-019e-11d3-a08e-00c04f8ef9b5")
10156ISpeechAudio : public ISpeechBaseStream
10157{
10158    virtual HRESULT STDMETHODCALLTYPE get_Status(
10159        ISpeechAudioStatus **Status) = 0;
10160
10161    virtual HRESULT STDMETHODCALLTYPE get_BufferInfo(
10162        ISpeechAudioBufferInfo **BufferInfo) = 0;
10163
10164    virtual HRESULT STDMETHODCALLTYPE get_DefaultFormat(
10165        ISpeechAudioFormat **StreamFormat) = 0;
10166
10167    virtual HRESULT STDMETHODCALLTYPE get_Volume(
10168        LONG *Volume) = 0;
10169
10170    virtual HRESULT STDMETHODCALLTYPE put_Volume(
10171        LONG Volume) = 0;
10172
10173    virtual HRESULT STDMETHODCALLTYPE get_BufferNotifySize(
10174        LONG *BufferNotifySize) = 0;
10175
10176    virtual HRESULT STDMETHODCALLTYPE put_BufferNotifySize(
10177        LONG BufferNotifySize) = 0;
10178
10179    virtual HRESULT STDMETHODCALLTYPE get_EventHandle(
10180        LONG *EventHandle) = 0;
10181
10182    virtual HRESULT STDMETHODCALLTYPE SetState(
10183        SpeechAudioState State) = 0;
10184
10185};
10186#ifdef __CRT_UUID_DECL
10187__CRT_UUID_DECL(ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
10188#endif
10189#else
10190typedef struct ISpeechAudioVtbl {
10191    BEGIN_INTERFACE
10192
10193    /*** IUnknown methods ***/
10194    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10195        ISpeechAudio *This,
10196        REFIID riid,
10197        void **ppvObject);
10198
10199    ULONG (STDMETHODCALLTYPE *AddRef)(
10200        ISpeechAudio *This);
10201
10202    ULONG (STDMETHODCALLTYPE *Release)(
10203        ISpeechAudio *This);
10204
10205    /*** IDispatch methods ***/
10206    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
10207        ISpeechAudio *This,
10208        UINT *pctinfo);
10209
10210    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
10211        ISpeechAudio *This,
10212        UINT iTInfo,
10213        LCID lcid,
10214        ITypeInfo **ppTInfo);
10215
10216    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
10217        ISpeechAudio *This,
10218        REFIID riid,
10219        LPOLESTR *rgszNames,
10220        UINT cNames,
10221        LCID lcid,
10222        DISPID *rgDispId);
10223
10224    HRESULT (STDMETHODCALLTYPE *Invoke)(
10225        ISpeechAudio *This,
10226        DISPID dispIdMember,
10227        REFIID riid,
10228        LCID lcid,
10229        WORD wFlags,
10230        DISPPARAMS *pDispParams,
10231        VARIANT *pVarResult,
10232        EXCEPINFO *pExcepInfo,
10233        UINT *puArgErr);
10234
10235    /*** ISpeechBaseStream methods ***/
10236    HRESULT (STDMETHODCALLTYPE *get_Format)(
10237        ISpeechAudio *This,
10238        ISpeechAudioFormat **AudioFormat);
10239
10240    HRESULT (STDMETHODCALLTYPE *putref_Format)(
10241        ISpeechAudio *This,
10242        ISpeechAudioFormat *AudioFormat);
10243
10244    HRESULT (STDMETHODCALLTYPE *Read)(
10245        ISpeechAudio *This,
10246        VARIANT *Buffer,
10247        LONG NumberOfBytes,
10248        LONG *BytesRead);
10249
10250    HRESULT (STDMETHODCALLTYPE *Write)(
10251        ISpeechAudio *This,
10252        VARIANT Buffer,
10253        LONG *BytesWritten);
10254
10255    HRESULT (STDMETHODCALLTYPE *Seek)(
10256        ISpeechAudio *This,
10257        VARIANT Position,
10258        SpeechStreamSeekPositionType Origin,
10259        VARIANT *NewPosition);
10260
10261    /*** ISpeechAudio methods ***/
10262    HRESULT (STDMETHODCALLTYPE *get_Status)(
10263        ISpeechAudio *This,
10264        ISpeechAudioStatus **Status);
10265
10266    HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
10267        ISpeechAudio *This,
10268        ISpeechAudioBufferInfo **BufferInfo);
10269
10270    HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
10271        ISpeechAudio *This,
10272        ISpeechAudioFormat **StreamFormat);
10273
10274    HRESULT (STDMETHODCALLTYPE *get_Volume)(
10275        ISpeechAudio *This,
10276        LONG *Volume);
10277
10278    HRESULT (STDMETHODCALLTYPE *put_Volume)(
10279        ISpeechAudio *This,
10280        LONG Volume);
10281
10282    HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
10283        ISpeechAudio *This,
10284        LONG *BufferNotifySize);
10285
10286    HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
10287        ISpeechAudio *This,
10288        LONG BufferNotifySize);
10289
10290    HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
10291        ISpeechAudio *This,
10292        LONG *EventHandle);
10293
10294    HRESULT (STDMETHODCALLTYPE *SetState)(
10295        ISpeechAudio *This,
10296        SpeechAudioState State);
10297
10298    END_INTERFACE
10299} ISpeechAudioVtbl;
10300
10301interface ISpeechAudio {
10302    CONST_VTBL ISpeechAudioVtbl* lpVtbl;
10303};
10304
10305#ifdef COBJMACROS
10306#ifndef WIDL_C_INLINE_WRAPPERS
10307/*** IUnknown methods ***/
10308#define ISpeechAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10309#define ISpeechAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
10310#define ISpeechAudio_Release(This) (This)->lpVtbl->Release(This)
10311/*** IDispatch methods ***/
10312#define ISpeechAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
10313#define ISpeechAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
10314#define ISpeechAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
10315#define ISpeechAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
10316/*** ISpeechBaseStream methods ***/
10317#define ISpeechAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
10318#define ISpeechAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
10319#define ISpeechAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
10320#define ISpeechAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
10321#define ISpeechAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
10322/*** ISpeechAudio methods ***/
10323#define ISpeechAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
10324#define ISpeechAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
10325#define ISpeechAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
10326#define ISpeechAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
10327#define ISpeechAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
10328#define ISpeechAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
10329#define ISpeechAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
10330#define ISpeechAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
10331#define ISpeechAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
10332#else
10333/*** IUnknown methods ***/
10334static inline HRESULT ISpeechAudio_QueryInterface(ISpeechAudio* This,REFIID riid,void **ppvObject) {
10335    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10336}
10337static inline ULONG ISpeechAudio_AddRef(ISpeechAudio* This) {
10338    return This->lpVtbl->AddRef(This);
10339}
10340static inline ULONG ISpeechAudio_Release(ISpeechAudio* This) {
10341    return This->lpVtbl->Release(This);
10342}
10343/*** IDispatch methods ***/
10344static inline HRESULT ISpeechAudio_GetTypeInfoCount(ISpeechAudio* This,UINT *pctinfo) {
10345    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
10346}
10347static inline HRESULT ISpeechAudio_GetTypeInfo(ISpeechAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
10348    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
10349}
10350static inline HRESULT ISpeechAudio_GetIDsOfNames(ISpeechAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
10351    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
10352}
10353static inline HRESULT ISpeechAudio_Invoke(ISpeechAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
10354    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
10355}
10356/*** ISpeechBaseStream methods ***/
10357static inline HRESULT ISpeechAudio_get_Format(ISpeechAudio* This,ISpeechAudioFormat **AudioFormat) {
10358    return This->lpVtbl->get_Format(This,AudioFormat);
10359}
10360static inline HRESULT ISpeechAudio_putref_Format(ISpeechAudio* This,ISpeechAudioFormat *AudioFormat) {
10361    return This->lpVtbl->putref_Format(This,AudioFormat);
10362}
10363static inline HRESULT ISpeechAudio_Read(ISpeechAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
10364    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
10365}
10366static inline HRESULT ISpeechAudio_Write(ISpeechAudio* This,VARIANT Buffer,LONG *BytesWritten) {
10367    return This->lpVtbl->Write(This,Buffer,BytesWritten);
10368}
10369static inline HRESULT ISpeechAudio_Seek(ISpeechAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
10370    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
10371}
10372/*** ISpeechAudio methods ***/
10373static inline HRESULT ISpeechAudio_get_Status(ISpeechAudio* This,ISpeechAudioStatus **Status) {
10374    return This->lpVtbl->get_Status(This,Status);
10375}
10376static inline HRESULT ISpeechAudio_get_BufferInfo(ISpeechAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
10377    return This->lpVtbl->get_BufferInfo(This,BufferInfo);
10378}
10379static inline HRESULT ISpeechAudio_get_DefaultFormat(ISpeechAudio* This,ISpeechAudioFormat **StreamFormat) {
10380    return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
10381}
10382static inline HRESULT ISpeechAudio_get_Volume(ISpeechAudio* This,LONG *Volume) {
10383    return This->lpVtbl->get_Volume(This,Volume);
10384}
10385static inline HRESULT ISpeechAudio_put_Volume(ISpeechAudio* This,LONG Volume) {
10386    return This->lpVtbl->put_Volume(This,Volume);
10387}
10388static inline HRESULT ISpeechAudio_get_BufferNotifySize(ISpeechAudio* This,LONG *BufferNotifySize) {
10389    return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
10390}
10391static inline HRESULT ISpeechAudio_put_BufferNotifySize(ISpeechAudio* This,LONG BufferNotifySize) {
10392    return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
10393}
10394static inline HRESULT ISpeechAudio_get_EventHandle(ISpeechAudio* This,LONG *EventHandle) {
10395    return This->lpVtbl->get_EventHandle(This,EventHandle);
10396}
10397static inline HRESULT ISpeechAudio_SetState(ISpeechAudio* This,SpeechAudioState State) {
10398    return This->lpVtbl->SetState(This,State);
10399}
10400#endif
10401#endif
10402
10403#endif
10404
10405
10406#endif  /* __ISpeechAudio_INTERFACE_DEFINED__ */
10407
10408/*****************************************************************************
10409 * ISpeechMMSysAudio interface
10410 */
10411#ifndef __ISpeechMMSysAudio_INTERFACE_DEFINED__
10412#define __ISpeechMMSysAudio_INTERFACE_DEFINED__
10413
10414DEFINE_GUID(IID_ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44);
10415#if defined(__cplusplus) && !defined(CINTERFACE)
10416MIDL_INTERFACE("3c76af6d-1fd7-4831-81d1-3b71d5a13c44")
10417ISpeechMMSysAudio : public ISpeechAudio
10418{
10419    virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
10420        LONG *DeviceId) = 0;
10421
10422    virtual HRESULT STDMETHODCALLTYPE put_DeviceId(
10423        LONG DeviceId) = 0;
10424
10425    virtual HRESULT STDMETHODCALLTYPE get_LineId(
10426        LONG *LineId) = 0;
10427
10428    virtual HRESULT STDMETHODCALLTYPE put_LineId(
10429        LONG LineId) = 0;
10430
10431    virtual HRESULT STDMETHODCALLTYPE get_MMHandle(
10432        LONG *Handle) = 0;
10433
10434};
10435#ifdef __CRT_UUID_DECL
10436__CRT_UUID_DECL(ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44)
10437#endif
10438#else
10439typedef struct ISpeechMMSysAudioVtbl {
10440    BEGIN_INTERFACE
10441
10442    /*** IUnknown methods ***/
10443    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10444        ISpeechMMSysAudio *This,
10445        REFIID riid,
10446        void **ppvObject);
10447
10448    ULONG (STDMETHODCALLTYPE *AddRef)(
10449        ISpeechMMSysAudio *This);
10450
10451    ULONG (STDMETHODCALLTYPE *Release)(
10452        ISpeechMMSysAudio *This);
10453
10454    /*** IDispatch methods ***/
10455    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
10456        ISpeechMMSysAudio *This,
10457        UINT *pctinfo);
10458
10459    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
10460        ISpeechMMSysAudio *This,
10461        UINT iTInfo,
10462        LCID lcid,
10463        ITypeInfo **ppTInfo);
10464
10465    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
10466        ISpeechMMSysAudio *This,
10467        REFIID riid,
10468        LPOLESTR *rgszNames,
10469        UINT cNames,
10470        LCID lcid,
10471        DISPID *rgDispId);
10472
10473    HRESULT (STDMETHODCALLTYPE *Invoke)(
10474        ISpeechMMSysAudio *This,
10475        DISPID dispIdMember,
10476        REFIID riid,
10477        LCID lcid,
10478        WORD wFlags,
10479        DISPPARAMS *pDispParams,
10480        VARIANT *pVarResult,
10481        EXCEPINFO *pExcepInfo,
10482        UINT *puArgErr);
10483
10484    /*** ISpeechBaseStream methods ***/
10485    HRESULT (STDMETHODCALLTYPE *get_Format)(
10486        ISpeechMMSysAudio *This,
10487        ISpeechAudioFormat **AudioFormat);
10488
10489    HRESULT (STDMETHODCALLTYPE *putref_Format)(
10490        ISpeechMMSysAudio *This,
10491        ISpeechAudioFormat *AudioFormat);
10492
10493    HRESULT (STDMETHODCALLTYPE *Read)(
10494        ISpeechMMSysAudio *This,
10495        VARIANT *Buffer,
10496        LONG NumberOfBytes,
10497        LONG *BytesRead);
10498
10499    HRESULT (STDMETHODCALLTYPE *Write)(
10500        ISpeechMMSysAudio *This,
10501        VARIANT Buffer,
10502        LONG *BytesWritten);
10503
10504    HRESULT (STDMETHODCALLTYPE *Seek)(
10505        ISpeechMMSysAudio *This,
10506        VARIANT Position,
10507        SpeechStreamSeekPositionType Origin,
10508        VARIANT *NewPosition);
10509
10510    /*** ISpeechAudio methods ***/
10511    HRESULT (STDMETHODCALLTYPE *get_Status)(
10512        ISpeechMMSysAudio *This,
10513        ISpeechAudioStatus **Status);
10514
10515    HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
10516        ISpeechMMSysAudio *This,
10517        ISpeechAudioBufferInfo **BufferInfo);
10518
10519    HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
10520        ISpeechMMSysAudio *This,
10521        ISpeechAudioFormat **StreamFormat);
10522
10523    HRESULT (STDMETHODCALLTYPE *get_Volume)(
10524        ISpeechMMSysAudio *This,
10525        LONG *Volume);
10526
10527    HRESULT (STDMETHODCALLTYPE *put_Volume)(
10528        ISpeechMMSysAudio *This,
10529        LONG Volume);
10530
10531    HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
10532        ISpeechMMSysAudio *This,
10533        LONG *BufferNotifySize);
10534
10535    HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
10536        ISpeechMMSysAudio *This,
10537        LONG BufferNotifySize);
10538
10539    HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
10540        ISpeechMMSysAudio *This,
10541        LONG *EventHandle);
10542
10543    HRESULT (STDMETHODCALLTYPE *SetState)(
10544        ISpeechMMSysAudio *This,
10545        SpeechAudioState State);
10546
10547    /*** ISpeechMMSysAudio methods ***/
10548    HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
10549        ISpeechMMSysAudio *This,
10550        LONG *DeviceId);
10551
10552    HRESULT (STDMETHODCALLTYPE *put_DeviceId)(
10553        ISpeechMMSysAudio *This,
10554        LONG DeviceId);
10555
10556    HRESULT (STDMETHODCALLTYPE *get_LineId)(
10557        ISpeechMMSysAudio *This,
10558        LONG *LineId);
10559
10560    HRESULT (STDMETHODCALLTYPE *put_LineId)(
10561        ISpeechMMSysAudio *This,
10562        LONG LineId);
10563
10564    HRESULT (STDMETHODCALLTYPE *get_MMHandle)(
10565        ISpeechMMSysAudio *This,
10566        LONG *Handle);
10567
10568    END_INTERFACE
10569} ISpeechMMSysAudioVtbl;
10570
10571interface ISpeechMMSysAudio {
10572    CONST_VTBL ISpeechMMSysAudioVtbl* lpVtbl;
10573};
10574
10575#ifdef COBJMACROS
10576#ifndef WIDL_C_INLINE_WRAPPERS
10577/*** IUnknown methods ***/
10578#define ISpeechMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10579#define ISpeechMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
10580#define ISpeechMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
10581/*** IDispatch methods ***/
10582#define ISpeechMMSysAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
10583#define ISpeechMMSysAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
10584#define ISpeechMMSysAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
10585#define ISpeechMMSysAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
10586/*** ISpeechBaseStream methods ***/
10587#define ISpeechMMSysAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
10588#define ISpeechMMSysAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
10589#define ISpeechMMSysAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
10590#define ISpeechMMSysAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
10591#define ISpeechMMSysAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
10592/*** ISpeechAudio methods ***/
10593#define ISpeechMMSysAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
10594#define ISpeechMMSysAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
10595#define ISpeechMMSysAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
10596#define ISpeechMMSysAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
10597#define ISpeechMMSysAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
10598#define ISpeechMMSysAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
10599#define ISpeechMMSysAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
10600#define ISpeechMMSysAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
10601#define ISpeechMMSysAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
10602/*** ISpeechMMSysAudio methods ***/
10603#define ISpeechMMSysAudio_get_DeviceId(This,DeviceId) (This)->lpVtbl->get_DeviceId(This,DeviceId)
10604#define ISpeechMMSysAudio_put_DeviceId(This,DeviceId) (This)->lpVtbl->put_DeviceId(This,DeviceId)
10605#define ISpeechMMSysAudio_get_LineId(This,LineId) (This)->lpVtbl->get_LineId(This,LineId)
10606#define ISpeechMMSysAudio_put_LineId(This,LineId) (This)->lpVtbl->put_LineId(This,LineId)
10607#define ISpeechMMSysAudio_get_MMHandle(This,Handle) (This)->lpVtbl->get_MMHandle(This,Handle)
10608#else
10609/*** IUnknown methods ***/
10610static inline HRESULT ISpeechMMSysAudio_QueryInterface(ISpeechMMSysAudio* This,REFIID riid,void **ppvObject) {
10611    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10612}
10613static inline ULONG ISpeechMMSysAudio_AddRef(ISpeechMMSysAudio* This) {
10614    return This->lpVtbl->AddRef(This);
10615}
10616static inline ULONG ISpeechMMSysAudio_Release(ISpeechMMSysAudio* This) {
10617    return This->lpVtbl->Release(This);
10618}
10619/*** IDispatch methods ***/
10620static inline HRESULT ISpeechMMSysAudio_GetTypeInfoCount(ISpeechMMSysAudio* This,UINT *pctinfo) {
10621    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
10622}
10623static inline HRESULT ISpeechMMSysAudio_GetTypeInfo(ISpeechMMSysAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
10624    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
10625}
10626static inline HRESULT ISpeechMMSysAudio_GetIDsOfNames(ISpeechMMSysAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
10627    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
10628}
10629static inline HRESULT ISpeechMMSysAudio_Invoke(ISpeechMMSysAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
10630    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
10631}
10632/*** ISpeechBaseStream methods ***/
10633static inline HRESULT ISpeechMMSysAudio_get_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat **AudioFormat) {
10634    return This->lpVtbl->get_Format(This,AudioFormat);
10635}
10636static inline HRESULT ISpeechMMSysAudio_putref_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat *AudioFormat) {
10637    return This->lpVtbl->putref_Format(This,AudioFormat);
10638}
10639static inline HRESULT ISpeechMMSysAudio_Read(ISpeechMMSysAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
10640    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
10641}
10642static inline HRESULT ISpeechMMSysAudio_Write(ISpeechMMSysAudio* This,VARIANT Buffer,LONG *BytesWritten) {
10643    return This->lpVtbl->Write(This,Buffer,BytesWritten);
10644}
10645static inline HRESULT ISpeechMMSysAudio_Seek(ISpeechMMSysAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
10646    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
10647}
10648/*** ISpeechAudio methods ***/
10649static inline HRESULT ISpeechMMSysAudio_get_Status(ISpeechMMSysAudio* This,ISpeechAudioStatus **Status) {
10650    return This->lpVtbl->get_Status(This,Status);
10651}
10652static inline HRESULT ISpeechMMSysAudio_get_BufferInfo(ISpeechMMSysAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
10653    return This->lpVtbl->get_BufferInfo(This,BufferInfo);
10654}
10655static inline HRESULT ISpeechMMSysAudio_get_DefaultFormat(ISpeechMMSysAudio* This,ISpeechAudioFormat **StreamFormat) {
10656    return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
10657}
10658static inline HRESULT ISpeechMMSysAudio_get_Volume(ISpeechMMSysAudio* This,LONG *Volume) {
10659    return This->lpVtbl->get_Volume(This,Volume);
10660}
10661static inline HRESULT ISpeechMMSysAudio_put_Volume(ISpeechMMSysAudio* This,LONG Volume) {
10662    return This->lpVtbl->put_Volume(This,Volume);
10663}
10664static inline HRESULT ISpeechMMSysAudio_get_BufferNotifySize(ISpeechMMSysAudio* This,LONG *BufferNotifySize) {
10665    return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
10666}
10667static inline HRESULT ISpeechMMSysAudio_put_BufferNotifySize(ISpeechMMSysAudio* This,LONG BufferNotifySize) {
10668    return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
10669}
10670static inline HRESULT ISpeechMMSysAudio_get_EventHandle(ISpeechMMSysAudio* This,LONG *EventHandle) {
10671    return This->lpVtbl->get_EventHandle(This,EventHandle);
10672}
10673static inline HRESULT ISpeechMMSysAudio_SetState(ISpeechMMSysAudio* This,SpeechAudioState State) {
10674    return This->lpVtbl->SetState(This,State);
10675}
10676/*** ISpeechMMSysAudio methods ***/
10677static inline HRESULT ISpeechMMSysAudio_get_DeviceId(ISpeechMMSysAudio* This,LONG *DeviceId) {
10678    return This->lpVtbl->get_DeviceId(This,DeviceId);
10679}
10680static inline HRESULT ISpeechMMSysAudio_put_DeviceId(ISpeechMMSysAudio* This,LONG DeviceId) {
10681    return This->lpVtbl->put_DeviceId(This,DeviceId);
10682}
10683static inline HRESULT ISpeechMMSysAudio_get_LineId(ISpeechMMSysAudio* This,LONG *LineId) {
10684    return This->lpVtbl->get_LineId(This,LineId);
10685}
10686static inline HRESULT ISpeechMMSysAudio_put_LineId(ISpeechMMSysAudio* This,LONG LineId) {
10687    return This->lpVtbl->put_LineId(This,LineId);
10688}
10689static inline HRESULT ISpeechMMSysAudio_get_MMHandle(ISpeechMMSysAudio* This,LONG *Handle) {
10690    return This->lpVtbl->get_MMHandle(This,Handle);
10691}
10692#endif
10693#endif
10694
10695#endif
10696
10697
10698#endif  /* __ISpeechMMSysAudio_INTERFACE_DEFINED__ */
10699
10700/*****************************************************************************
10701 * ISpeechFileStream interface
10702 */
10703#ifndef __ISpeechFileStream_INTERFACE_DEFINED__
10704#define __ISpeechFileStream_INTERFACE_DEFINED__
10705
10706DEFINE_GUID(IID_ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7);
10707#if defined(__cplusplus) && !defined(CINTERFACE)
10708MIDL_INTERFACE("af67f125-ab39-4e93-b4a2-cc2e66e182a7")
10709ISpeechFileStream : public ISpeechBaseStream
10710{
10711    virtual HRESULT STDMETHODCALLTYPE Open(
10712        BSTR FileName,
10713        SpeechStreamFileMode FileMode = SSFMOpenForRead,
10714        VARIANT_BOOL DoEvents = 0) = 0;
10715
10716    virtual HRESULT STDMETHODCALLTYPE Close(
10717        ) = 0;
10718
10719};
10720#ifdef __CRT_UUID_DECL
10721__CRT_UUID_DECL(ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7)
10722#endif
10723#else
10724typedef struct ISpeechFileStreamVtbl {
10725    BEGIN_INTERFACE
10726
10727    /*** IUnknown methods ***/
10728    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10729        ISpeechFileStream *This,
10730        REFIID riid,
10731        void **ppvObject);
10732
10733    ULONG (STDMETHODCALLTYPE *AddRef)(
10734        ISpeechFileStream *This);
10735
10736    ULONG (STDMETHODCALLTYPE *Release)(
10737        ISpeechFileStream *This);
10738
10739    /*** IDispatch methods ***/
10740    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
10741        ISpeechFileStream *This,
10742        UINT *pctinfo);
10743
10744    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
10745        ISpeechFileStream *This,
10746        UINT iTInfo,
10747        LCID lcid,
10748        ITypeInfo **ppTInfo);
10749
10750    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
10751        ISpeechFileStream *This,
10752        REFIID riid,
10753        LPOLESTR *rgszNames,
10754        UINT cNames,
10755        LCID lcid,
10756        DISPID *rgDispId);
10757
10758    HRESULT (STDMETHODCALLTYPE *Invoke)(
10759        ISpeechFileStream *This,
10760        DISPID dispIdMember,
10761        REFIID riid,
10762        LCID lcid,
10763        WORD wFlags,
10764        DISPPARAMS *pDispParams,
10765        VARIANT *pVarResult,
10766        EXCEPINFO *pExcepInfo,
10767        UINT *puArgErr);
10768
10769    /*** ISpeechBaseStream methods ***/
10770    HRESULT (STDMETHODCALLTYPE *get_Format)(
10771        ISpeechFileStream *This,
10772        ISpeechAudioFormat **AudioFormat);
10773
10774    HRESULT (STDMETHODCALLTYPE *putref_Format)(
10775        ISpeechFileStream *This,
10776        ISpeechAudioFormat *AudioFormat);
10777
10778    HRESULT (STDMETHODCALLTYPE *Read)(
10779        ISpeechFileStream *This,
10780        VARIANT *Buffer,
10781        LONG NumberOfBytes,
10782        LONG *BytesRead);
10783
10784    HRESULT (STDMETHODCALLTYPE *Write)(
10785        ISpeechFileStream *This,
10786        VARIANT Buffer,
10787        LONG *BytesWritten);
10788
10789    HRESULT (STDMETHODCALLTYPE *Seek)(
10790        ISpeechFileStream *This,
10791        VARIANT Position,
10792        SpeechStreamSeekPositionType Origin,
10793        VARIANT *NewPosition);
10794
10795    /*** ISpeechFileStream methods ***/
10796    HRESULT (STDMETHODCALLTYPE *Open)(
10797        ISpeechFileStream *This,
10798        BSTR FileName,
10799        SpeechStreamFileMode FileMode,
10800        VARIANT_BOOL DoEvents);
10801
10802    HRESULT (STDMETHODCALLTYPE *Close)(
10803        ISpeechFileStream *This);
10804
10805    END_INTERFACE
10806} ISpeechFileStreamVtbl;
10807
10808interface ISpeechFileStream {
10809    CONST_VTBL ISpeechFileStreamVtbl* lpVtbl;
10810};
10811
10812#ifdef COBJMACROS
10813#ifndef WIDL_C_INLINE_WRAPPERS
10814/*** IUnknown methods ***/
10815#define ISpeechFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10816#define ISpeechFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
10817#define ISpeechFileStream_Release(This) (This)->lpVtbl->Release(This)
10818/*** IDispatch methods ***/
10819#define ISpeechFileStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
10820#define ISpeechFileStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
10821#define ISpeechFileStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
10822#define ISpeechFileStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
10823/*** ISpeechBaseStream methods ***/
10824#define ISpeechFileStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
10825#define ISpeechFileStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
10826#define ISpeechFileStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
10827#define ISpeechFileStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
10828#define ISpeechFileStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
10829/*** ISpeechFileStream methods ***/
10830#define ISpeechFileStream_Open(This,FileName,FileMode,DoEvents) (This)->lpVtbl->Open(This,FileName,FileMode,DoEvents)
10831#define ISpeechFileStream_Close(This) (This)->lpVtbl->Close(This)
10832#else
10833/*** IUnknown methods ***/
10834static inline HRESULT ISpeechFileStream_QueryInterface(ISpeechFileStream* This,REFIID riid,void **ppvObject) {
10835    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10836}
10837static inline ULONG ISpeechFileStream_AddRef(ISpeechFileStream* This) {
10838    return This->lpVtbl->AddRef(This);
10839}
10840static inline ULONG ISpeechFileStream_Release(ISpeechFileStream* This) {
10841    return This->lpVtbl->Release(This);
10842}
10843/*** IDispatch methods ***/
10844static inline HRESULT ISpeechFileStream_GetTypeInfoCount(ISpeechFileStream* This,UINT *pctinfo) {
10845    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
10846}
10847static inline HRESULT ISpeechFileStream_GetTypeInfo(ISpeechFileStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
10848    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
10849}
10850static inline HRESULT ISpeechFileStream_GetIDsOfNames(ISpeechFileStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
10851    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
10852}
10853static inline HRESULT ISpeechFileStream_Invoke(ISpeechFileStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
10854    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
10855}
10856/*** ISpeechBaseStream methods ***/
10857static inline HRESULT ISpeechFileStream_get_Format(ISpeechFileStream* This,ISpeechAudioFormat **AudioFormat) {
10858    return This->lpVtbl->get_Format(This,AudioFormat);
10859}
10860static inline HRESULT ISpeechFileStream_putref_Format(ISpeechFileStream* This,ISpeechAudioFormat *AudioFormat) {
10861    return This->lpVtbl->putref_Format(This,AudioFormat);
10862}
10863static inline HRESULT ISpeechFileStream_Read(ISpeechFileStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
10864    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
10865}
10866static inline HRESULT ISpeechFileStream_Write(ISpeechFileStream* This,VARIANT Buffer,LONG *BytesWritten) {
10867    return This->lpVtbl->Write(This,Buffer,BytesWritten);
10868}
10869static inline HRESULT ISpeechFileStream_Seek(ISpeechFileStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
10870    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
10871}
10872/*** ISpeechFileStream methods ***/
10873static inline HRESULT ISpeechFileStream_Open(ISpeechFileStream* This,BSTR FileName,SpeechStreamFileMode FileMode,VARIANT_BOOL DoEvents) {
10874    return This->lpVtbl->Open(This,FileName,FileMode,DoEvents);
10875}
10876static inline HRESULT ISpeechFileStream_Close(ISpeechFileStream* This) {
10877    return This->lpVtbl->Close(This);
10878}
10879#endif
10880#endif
10881
10882#endif
10883
10884
10885#endif  /* __ISpeechFileStream_INTERFACE_DEFINED__ */
10886
10887/*****************************************************************************
10888 * ISpeechCustomStream interface
10889 */
10890#ifndef __ISpeechCustomStream_INTERFACE_DEFINED__
10891#define __ISpeechCustomStream_INTERFACE_DEFINED__
10892
10893DEFINE_GUID(IID_ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae);
10894#if defined(__cplusplus) && !defined(CINTERFACE)
10895MIDL_INTERFACE("1a9e9f4f-104f-4db8-a115-efd7fd0c97ae")
10896ISpeechCustomStream : public ISpeechBaseStream
10897{
10898    virtual HRESULT STDMETHODCALLTYPE get_BaseStream(
10899        IUnknown **ppUnkStream) = 0;
10900
10901    virtual HRESULT STDMETHODCALLTYPE putref_BaseStream(
10902        IUnknown *pUnkStream) = 0;
10903
10904};
10905#ifdef __CRT_UUID_DECL
10906__CRT_UUID_DECL(ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae)
10907#endif
10908#else
10909typedef struct ISpeechCustomStreamVtbl {
10910    BEGIN_INTERFACE
10911
10912    /*** IUnknown methods ***/
10913    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10914        ISpeechCustomStream *This,
10915        REFIID riid,
10916        void **ppvObject);
10917
10918    ULONG (STDMETHODCALLTYPE *AddRef)(
10919        ISpeechCustomStream *This);
10920
10921    ULONG (STDMETHODCALLTYPE *Release)(
10922        ISpeechCustomStream *This);
10923
10924    /*** IDispatch methods ***/
10925    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
10926        ISpeechCustomStream *This,
10927        UINT *pctinfo);
10928
10929    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
10930        ISpeechCustomStream *This,
10931        UINT iTInfo,
10932        LCID lcid,
10933        ITypeInfo **ppTInfo);
10934
10935    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
10936        ISpeechCustomStream *This,
10937        REFIID riid,
10938        LPOLESTR *rgszNames,
10939        UINT cNames,
10940        LCID lcid,
10941        DISPID *rgDispId);
10942
10943    HRESULT (STDMETHODCALLTYPE *Invoke)(
10944        ISpeechCustomStream *This,
10945        DISPID dispIdMember,
10946        REFIID riid,
10947        LCID lcid,
10948        WORD wFlags,
10949        DISPPARAMS *pDispParams,
10950        VARIANT *pVarResult,
10951        EXCEPINFO *pExcepInfo,
10952        UINT *puArgErr);
10953
10954    /*** ISpeechBaseStream methods ***/
10955    HRESULT (STDMETHODCALLTYPE *get_Format)(
10956        ISpeechCustomStream *This,
10957        ISpeechAudioFormat **AudioFormat);
10958
10959    HRESULT (STDMETHODCALLTYPE *putref_Format)(
10960        ISpeechCustomStream *This,
10961        ISpeechAudioFormat *AudioFormat);
10962
10963    HRESULT (STDMETHODCALLTYPE *Read)(
10964        ISpeechCustomStream *This,
10965        VARIANT *Buffer,
10966        LONG NumberOfBytes,
10967        LONG *BytesRead);
10968
10969    HRESULT (STDMETHODCALLTYPE *Write)(
10970        ISpeechCustomStream *This,
10971        VARIANT Buffer,
10972        LONG *BytesWritten);
10973
10974    HRESULT (STDMETHODCALLTYPE *Seek)(
10975        ISpeechCustomStream *This,
10976        VARIANT Position,
10977        SpeechStreamSeekPositionType Origin,
10978        VARIANT *NewPosition);
10979
10980    /*** ISpeechCustomStream methods ***/
10981    HRESULT (STDMETHODCALLTYPE *get_BaseStream)(
10982        ISpeechCustomStream *This,
10983        IUnknown **ppUnkStream);
10984
10985    HRESULT (STDMETHODCALLTYPE *putref_BaseStream)(
10986        ISpeechCustomStream *This,
10987        IUnknown *pUnkStream);
10988
10989    END_INTERFACE
10990} ISpeechCustomStreamVtbl;
10991
10992interface ISpeechCustomStream {
10993    CONST_VTBL ISpeechCustomStreamVtbl* lpVtbl;
10994};
10995
10996#ifdef COBJMACROS
10997#ifndef WIDL_C_INLINE_WRAPPERS
10998/*** IUnknown methods ***/
10999#define ISpeechCustomStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11000#define ISpeechCustomStream_AddRef(This) (This)->lpVtbl->AddRef(This)
11001#define ISpeechCustomStream_Release(This) (This)->lpVtbl->Release(This)
11002/*** IDispatch methods ***/
11003#define ISpeechCustomStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11004#define ISpeechCustomStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11005#define ISpeechCustomStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11006#define ISpeechCustomStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11007/*** ISpeechBaseStream methods ***/
11008#define ISpeechCustomStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
11009#define ISpeechCustomStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
11010#define ISpeechCustomStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
11011#define ISpeechCustomStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
11012#define ISpeechCustomStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
11013/*** ISpeechCustomStream methods ***/
11014#define ISpeechCustomStream_get_BaseStream(This,ppUnkStream) (This)->lpVtbl->get_BaseStream(This,ppUnkStream)
11015#define ISpeechCustomStream_putref_BaseStream(This,pUnkStream) (This)->lpVtbl->putref_BaseStream(This,pUnkStream)
11016#else
11017/*** IUnknown methods ***/
11018static inline HRESULT ISpeechCustomStream_QueryInterface(ISpeechCustomStream* This,REFIID riid,void **ppvObject) {
11019    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11020}
11021static inline ULONG ISpeechCustomStream_AddRef(ISpeechCustomStream* This) {
11022    return This->lpVtbl->AddRef(This);
11023}
11024static inline ULONG ISpeechCustomStream_Release(ISpeechCustomStream* This) {
11025    return This->lpVtbl->Release(This);
11026}
11027/*** IDispatch methods ***/
11028static inline HRESULT ISpeechCustomStream_GetTypeInfoCount(ISpeechCustomStream* This,UINT *pctinfo) {
11029    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11030}
11031static inline HRESULT ISpeechCustomStream_GetTypeInfo(ISpeechCustomStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11032    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11033}
11034static inline HRESULT ISpeechCustomStream_GetIDsOfNames(ISpeechCustomStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11035    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11036}
11037static inline HRESULT ISpeechCustomStream_Invoke(ISpeechCustomStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11038    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11039}
11040/*** ISpeechBaseStream methods ***/
11041static inline HRESULT ISpeechCustomStream_get_Format(ISpeechCustomStream* This,ISpeechAudioFormat **AudioFormat) {
11042    return This->lpVtbl->get_Format(This,AudioFormat);
11043}
11044static inline HRESULT ISpeechCustomStream_putref_Format(ISpeechCustomStream* This,ISpeechAudioFormat *AudioFormat) {
11045    return This->lpVtbl->putref_Format(This,AudioFormat);
11046}
11047static inline HRESULT ISpeechCustomStream_Read(ISpeechCustomStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
11048    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
11049}
11050static inline HRESULT ISpeechCustomStream_Write(ISpeechCustomStream* This,VARIANT Buffer,LONG *BytesWritten) {
11051    return This->lpVtbl->Write(This,Buffer,BytesWritten);
11052}
11053static inline HRESULT ISpeechCustomStream_Seek(ISpeechCustomStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
11054    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
11055}
11056/*** ISpeechCustomStream methods ***/
11057static inline HRESULT ISpeechCustomStream_get_BaseStream(ISpeechCustomStream* This,IUnknown **ppUnkStream) {
11058    return This->lpVtbl->get_BaseStream(This,ppUnkStream);
11059}
11060static inline HRESULT ISpeechCustomStream_putref_BaseStream(ISpeechCustomStream* This,IUnknown *pUnkStream) {
11061    return This->lpVtbl->putref_BaseStream(This,pUnkStream);
11062}
11063#endif
11064#endif
11065
11066#endif
11067
11068
11069#endif  /* __ISpeechCustomStream_INTERFACE_DEFINED__ */
11070
11071/*****************************************************************************
11072 * ISpeechMemoryStream interface
11073 */
11074#ifndef __ISpeechMemoryStream_INTERFACE_DEFINED__
11075#define __ISpeechMemoryStream_INTERFACE_DEFINED__
11076
11077DEFINE_GUID(IID_ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08);
11078#if defined(__cplusplus) && !defined(CINTERFACE)
11079MIDL_INTERFACE("eeb14b68-808b-4abe-a5ea-b51da7588008")
11080ISpeechMemoryStream : public ISpeechBaseStream
11081{
11082    virtual HRESULT STDMETHODCALLTYPE SetData(
11083        VARIANT Data) = 0;
11084
11085    virtual HRESULT STDMETHODCALLTYPE GetData(
11086        VARIANT *pData) = 0;
11087
11088};
11089#ifdef __CRT_UUID_DECL
11090__CRT_UUID_DECL(ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08)
11091#endif
11092#else
11093typedef struct ISpeechMemoryStreamVtbl {
11094    BEGIN_INTERFACE
11095
11096    /*** IUnknown methods ***/
11097    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11098        ISpeechMemoryStream *This,
11099        REFIID riid,
11100        void **ppvObject);
11101
11102    ULONG (STDMETHODCALLTYPE *AddRef)(
11103        ISpeechMemoryStream *This);
11104
11105    ULONG (STDMETHODCALLTYPE *Release)(
11106        ISpeechMemoryStream *This);
11107
11108    /*** IDispatch methods ***/
11109    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11110        ISpeechMemoryStream *This,
11111        UINT *pctinfo);
11112
11113    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11114        ISpeechMemoryStream *This,
11115        UINT iTInfo,
11116        LCID lcid,
11117        ITypeInfo **ppTInfo);
11118
11119    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11120        ISpeechMemoryStream *This,
11121        REFIID riid,
11122        LPOLESTR *rgszNames,
11123        UINT cNames,
11124        LCID lcid,
11125        DISPID *rgDispId);
11126
11127    HRESULT (STDMETHODCALLTYPE *Invoke)(
11128        ISpeechMemoryStream *This,
11129        DISPID dispIdMember,
11130        REFIID riid,
11131        LCID lcid,
11132        WORD wFlags,
11133        DISPPARAMS *pDispParams,
11134        VARIANT *pVarResult,
11135        EXCEPINFO *pExcepInfo,
11136        UINT *puArgErr);
11137
11138    /*** ISpeechBaseStream methods ***/
11139    HRESULT (STDMETHODCALLTYPE *get_Format)(
11140        ISpeechMemoryStream *This,
11141        ISpeechAudioFormat **AudioFormat);
11142
11143    HRESULT (STDMETHODCALLTYPE *putref_Format)(
11144        ISpeechMemoryStream *This,
11145        ISpeechAudioFormat *AudioFormat);
11146
11147    HRESULT (STDMETHODCALLTYPE *Read)(
11148        ISpeechMemoryStream *This,
11149        VARIANT *Buffer,
11150        LONG NumberOfBytes,
11151        LONG *BytesRead);
11152
11153    HRESULT (STDMETHODCALLTYPE *Write)(
11154        ISpeechMemoryStream *This,
11155        VARIANT Buffer,
11156        LONG *BytesWritten);
11157
11158    HRESULT (STDMETHODCALLTYPE *Seek)(
11159        ISpeechMemoryStream *This,
11160        VARIANT Position,
11161        SpeechStreamSeekPositionType Origin,
11162        VARIANT *NewPosition);
11163
11164    /*** ISpeechMemoryStream methods ***/
11165    HRESULT (STDMETHODCALLTYPE *SetData)(
11166        ISpeechMemoryStream *This,
11167        VARIANT Data);
11168
11169    HRESULT (STDMETHODCALLTYPE *GetData)(
11170        ISpeechMemoryStream *This,
11171        VARIANT *pData);
11172
11173    END_INTERFACE
11174} ISpeechMemoryStreamVtbl;
11175
11176interface ISpeechMemoryStream {
11177    CONST_VTBL ISpeechMemoryStreamVtbl* lpVtbl;
11178};
11179
11180#ifdef COBJMACROS
11181#ifndef WIDL_C_INLINE_WRAPPERS
11182/*** IUnknown methods ***/
11183#define ISpeechMemoryStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11184#define ISpeechMemoryStream_AddRef(This) (This)->lpVtbl->AddRef(This)
11185#define ISpeechMemoryStream_Release(This) (This)->lpVtbl->Release(This)
11186/*** IDispatch methods ***/
11187#define ISpeechMemoryStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11188#define ISpeechMemoryStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11189#define ISpeechMemoryStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11190#define ISpeechMemoryStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11191/*** ISpeechBaseStream methods ***/
11192#define ISpeechMemoryStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
11193#define ISpeechMemoryStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
11194#define ISpeechMemoryStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
11195#define ISpeechMemoryStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
11196#define ISpeechMemoryStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
11197/*** ISpeechMemoryStream methods ***/
11198#define ISpeechMemoryStream_SetData(This,Data) (This)->lpVtbl->SetData(This,Data)
11199#define ISpeechMemoryStream_GetData(This,pData) (This)->lpVtbl->GetData(This,pData)
11200#else
11201/*** IUnknown methods ***/
11202static inline HRESULT ISpeechMemoryStream_QueryInterface(ISpeechMemoryStream* This,REFIID riid,void **ppvObject) {
11203    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11204}
11205static inline ULONG ISpeechMemoryStream_AddRef(ISpeechMemoryStream* This) {
11206    return This->lpVtbl->AddRef(This);
11207}
11208static inline ULONG ISpeechMemoryStream_Release(ISpeechMemoryStream* This) {
11209    return This->lpVtbl->Release(This);
11210}
11211/*** IDispatch methods ***/
11212static inline HRESULT ISpeechMemoryStream_GetTypeInfoCount(ISpeechMemoryStream* This,UINT *pctinfo) {
11213    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11214}
11215static inline HRESULT ISpeechMemoryStream_GetTypeInfo(ISpeechMemoryStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11216    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11217}
11218static inline HRESULT ISpeechMemoryStream_GetIDsOfNames(ISpeechMemoryStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11219    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11220}
11221static inline HRESULT ISpeechMemoryStream_Invoke(ISpeechMemoryStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11222    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11223}
11224/*** ISpeechBaseStream methods ***/
11225static inline HRESULT ISpeechMemoryStream_get_Format(ISpeechMemoryStream* This,ISpeechAudioFormat **AudioFormat) {
11226    return This->lpVtbl->get_Format(This,AudioFormat);
11227}
11228static inline HRESULT ISpeechMemoryStream_putref_Format(ISpeechMemoryStream* This,ISpeechAudioFormat *AudioFormat) {
11229    return This->lpVtbl->putref_Format(This,AudioFormat);
11230}
11231static inline HRESULT ISpeechMemoryStream_Read(ISpeechMemoryStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
11232    return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
11233}
11234static inline HRESULT ISpeechMemoryStream_Write(ISpeechMemoryStream* This,VARIANT Buffer,LONG *BytesWritten) {
11235    return This->lpVtbl->Write(This,Buffer,BytesWritten);
11236}
11237static inline HRESULT ISpeechMemoryStream_Seek(ISpeechMemoryStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
11238    return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
11239}
11240/*** ISpeechMemoryStream methods ***/
11241static inline HRESULT ISpeechMemoryStream_SetData(ISpeechMemoryStream* This,VARIANT Data) {
11242    return This->lpVtbl->SetData(This,Data);
11243}
11244static inline HRESULT ISpeechMemoryStream_GetData(ISpeechMemoryStream* This,VARIANT *pData) {
11245    return This->lpVtbl->GetData(This,pData);
11246}
11247#endif
11248#endif
11249
11250#endif
11251
11252
11253#endif  /* __ISpeechMemoryStream_INTERFACE_DEFINED__ */
11254
11255/*****************************************************************************
11256 * ISpeechAudioStatus interface
11257 */
11258#ifndef __ISpeechAudioStatus_INTERFACE_DEFINED__
11259#define __ISpeechAudioStatus_INTERFACE_DEFINED__
11260
11261DEFINE_GUID(IID_ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78);
11262#if defined(__cplusplus) && !defined(CINTERFACE)
11263MIDL_INTERFACE("c62d9c91-7458-47f6-862d-1ef86fb0b278")
11264ISpeechAudioStatus : public IDispatch
11265{
11266    virtual HRESULT STDMETHODCALLTYPE get_FreeBufferSpace(
11267        LONG *FreeBufferSpace) = 0;
11268
11269    virtual HRESULT STDMETHODCALLTYPE get_NonBlockingIO(
11270        LONG *NonBlockingIO) = 0;
11271
11272    virtual HRESULT STDMETHODCALLTYPE get_State(
11273        SpeechAudioState *State) = 0;
11274
11275    virtual HRESULT STDMETHODCALLTYPE get_CurrentSeekPosition(
11276        VARIANT *CurrentSeekPosition) = 0;
11277
11278    virtual HRESULT STDMETHODCALLTYPE get_CurrentDevicePosition(
11279        VARIANT *CurrentDevicePosition) = 0;
11280
11281};
11282#ifdef __CRT_UUID_DECL
11283__CRT_UUID_DECL(ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78)
11284#endif
11285#else
11286typedef struct ISpeechAudioStatusVtbl {
11287    BEGIN_INTERFACE
11288
11289    /*** IUnknown methods ***/
11290    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11291        ISpeechAudioStatus *This,
11292        REFIID riid,
11293        void **ppvObject);
11294
11295    ULONG (STDMETHODCALLTYPE *AddRef)(
11296        ISpeechAudioStatus *This);
11297
11298    ULONG (STDMETHODCALLTYPE *Release)(
11299        ISpeechAudioStatus *This);
11300
11301    /*** IDispatch methods ***/
11302    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11303        ISpeechAudioStatus *This,
11304        UINT *pctinfo);
11305
11306    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11307        ISpeechAudioStatus *This,
11308        UINT iTInfo,
11309        LCID lcid,
11310        ITypeInfo **ppTInfo);
11311
11312    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11313        ISpeechAudioStatus *This,
11314        REFIID riid,
11315        LPOLESTR *rgszNames,
11316        UINT cNames,
11317        LCID lcid,
11318        DISPID *rgDispId);
11319
11320    HRESULT (STDMETHODCALLTYPE *Invoke)(
11321        ISpeechAudioStatus *This,
11322        DISPID dispIdMember,
11323        REFIID riid,
11324        LCID lcid,
11325        WORD wFlags,
11326        DISPPARAMS *pDispParams,
11327        VARIANT *pVarResult,
11328        EXCEPINFO *pExcepInfo,
11329        UINT *puArgErr);
11330
11331    /*** ISpeechAudioStatus methods ***/
11332    HRESULT (STDMETHODCALLTYPE *get_FreeBufferSpace)(
11333        ISpeechAudioStatus *This,
11334        LONG *FreeBufferSpace);
11335
11336    HRESULT (STDMETHODCALLTYPE *get_NonBlockingIO)(
11337        ISpeechAudioStatus *This,
11338        LONG *NonBlockingIO);
11339
11340    HRESULT (STDMETHODCALLTYPE *get_State)(
11341        ISpeechAudioStatus *This,
11342        SpeechAudioState *State);
11343
11344    HRESULT (STDMETHODCALLTYPE *get_CurrentSeekPosition)(
11345        ISpeechAudioStatus *This,
11346        VARIANT *CurrentSeekPosition);
11347
11348    HRESULT (STDMETHODCALLTYPE *get_CurrentDevicePosition)(
11349        ISpeechAudioStatus *This,
11350        VARIANT *CurrentDevicePosition);
11351
11352    END_INTERFACE
11353} ISpeechAudioStatusVtbl;
11354
11355interface ISpeechAudioStatus {
11356    CONST_VTBL ISpeechAudioStatusVtbl* lpVtbl;
11357};
11358
11359#ifdef COBJMACROS
11360#ifndef WIDL_C_INLINE_WRAPPERS
11361/*** IUnknown methods ***/
11362#define ISpeechAudioStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11363#define ISpeechAudioStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
11364#define ISpeechAudioStatus_Release(This) (This)->lpVtbl->Release(This)
11365/*** IDispatch methods ***/
11366#define ISpeechAudioStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11367#define ISpeechAudioStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11368#define ISpeechAudioStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11369#define ISpeechAudioStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11370/*** ISpeechAudioStatus methods ***/
11371#define ISpeechAudioStatus_get_FreeBufferSpace(This,FreeBufferSpace) (This)->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace)
11372#define ISpeechAudioStatus_get_NonBlockingIO(This,NonBlockingIO) (This)->lpVtbl->get_NonBlockingIO(This,NonBlockingIO)
11373#define ISpeechAudioStatus_get_State(This,State) (This)->lpVtbl->get_State(This,State)
11374#define ISpeechAudioStatus_get_CurrentSeekPosition(This,CurrentSeekPosition) (This)->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition)
11375#define ISpeechAudioStatus_get_CurrentDevicePosition(This,CurrentDevicePosition) (This)->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition)
11376#else
11377/*** IUnknown methods ***/
11378static inline HRESULT ISpeechAudioStatus_QueryInterface(ISpeechAudioStatus* This,REFIID riid,void **ppvObject) {
11379    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11380}
11381static inline ULONG ISpeechAudioStatus_AddRef(ISpeechAudioStatus* This) {
11382    return This->lpVtbl->AddRef(This);
11383}
11384static inline ULONG ISpeechAudioStatus_Release(ISpeechAudioStatus* This) {
11385    return This->lpVtbl->Release(This);
11386}
11387/*** IDispatch methods ***/
11388static inline HRESULT ISpeechAudioStatus_GetTypeInfoCount(ISpeechAudioStatus* This,UINT *pctinfo) {
11389    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11390}
11391static inline HRESULT ISpeechAudioStatus_GetTypeInfo(ISpeechAudioStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11392    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11393}
11394static inline HRESULT ISpeechAudioStatus_GetIDsOfNames(ISpeechAudioStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11395    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11396}
11397static inline HRESULT ISpeechAudioStatus_Invoke(ISpeechAudioStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11398    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11399}
11400/*** ISpeechAudioStatus methods ***/
11401static inline HRESULT ISpeechAudioStatus_get_FreeBufferSpace(ISpeechAudioStatus* This,LONG *FreeBufferSpace) {
11402    return This->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace);
11403}
11404static inline HRESULT ISpeechAudioStatus_get_NonBlockingIO(ISpeechAudioStatus* This,LONG *NonBlockingIO) {
11405    return This->lpVtbl->get_NonBlockingIO(This,NonBlockingIO);
11406}
11407static inline HRESULT ISpeechAudioStatus_get_State(ISpeechAudioStatus* This,SpeechAudioState *State) {
11408    return This->lpVtbl->get_State(This,State);
11409}
11410static inline HRESULT ISpeechAudioStatus_get_CurrentSeekPosition(ISpeechAudioStatus* This,VARIANT *CurrentSeekPosition) {
11411    return This->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition);
11412}
11413static inline HRESULT ISpeechAudioStatus_get_CurrentDevicePosition(ISpeechAudioStatus* This,VARIANT *CurrentDevicePosition) {
11414    return This->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition);
11415}
11416#endif
11417#endif
11418
11419#endif
11420
11421
11422#endif  /* __ISpeechAudioStatus_INTERFACE_DEFINED__ */
11423
11424/*****************************************************************************
11425 * ISpeechAudioBufferInfo interface
11426 */
11427#ifndef __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
11428#define __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
11429
11430DEFINE_GUID(IID_ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc);
11431#if defined(__cplusplus) && !defined(CINTERFACE)
11432MIDL_INTERFACE("11b103d8-1142-4edf-a093-82fb3915f8cc")
11433ISpeechAudioBufferInfo : public IDispatch
11434{
11435    virtual HRESULT STDMETHODCALLTYPE get_MinNotification(
11436        LONG *MinNotification) = 0;
11437
11438    virtual HRESULT STDMETHODCALLTYPE put_MinNotification(
11439        LONG MinNotification) = 0;
11440
11441    virtual HRESULT STDMETHODCALLTYPE get_BufferSize(
11442        LONG *BufferSize) = 0;
11443
11444    virtual HRESULT STDMETHODCALLTYPE put_BufferSize(
11445        LONG BufferSize) = 0;
11446
11447    virtual HRESULT STDMETHODCALLTYPE get_EventBias(
11448        LONG *EventBias) = 0;
11449
11450    virtual HRESULT STDMETHODCALLTYPE put_EventBias(
11451        LONG EventBias) = 0;
11452
11453};
11454#ifdef __CRT_UUID_DECL
11455__CRT_UUID_DECL(ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc)
11456#endif
11457#else
11458typedef struct ISpeechAudioBufferInfoVtbl {
11459    BEGIN_INTERFACE
11460
11461    /*** IUnknown methods ***/
11462    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11463        ISpeechAudioBufferInfo *This,
11464        REFIID riid,
11465        void **ppvObject);
11466
11467    ULONG (STDMETHODCALLTYPE *AddRef)(
11468        ISpeechAudioBufferInfo *This);
11469
11470    ULONG (STDMETHODCALLTYPE *Release)(
11471        ISpeechAudioBufferInfo *This);
11472
11473    /*** IDispatch methods ***/
11474    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11475        ISpeechAudioBufferInfo *This,
11476        UINT *pctinfo);
11477
11478    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11479        ISpeechAudioBufferInfo *This,
11480        UINT iTInfo,
11481        LCID lcid,
11482        ITypeInfo **ppTInfo);
11483
11484    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11485        ISpeechAudioBufferInfo *This,
11486        REFIID riid,
11487        LPOLESTR *rgszNames,
11488        UINT cNames,
11489        LCID lcid,
11490        DISPID *rgDispId);
11491
11492    HRESULT (STDMETHODCALLTYPE *Invoke)(
11493        ISpeechAudioBufferInfo *This,
11494        DISPID dispIdMember,
11495        REFIID riid,
11496        LCID lcid,
11497        WORD wFlags,
11498        DISPPARAMS *pDispParams,
11499        VARIANT *pVarResult,
11500        EXCEPINFO *pExcepInfo,
11501        UINT *puArgErr);
11502
11503    /*** ISpeechAudioBufferInfo methods ***/
11504    HRESULT (STDMETHODCALLTYPE *get_MinNotification)(
11505        ISpeechAudioBufferInfo *This,
11506        LONG *MinNotification);
11507
11508    HRESULT (STDMETHODCALLTYPE *put_MinNotification)(
11509        ISpeechAudioBufferInfo *This,
11510        LONG MinNotification);
11511
11512    HRESULT (STDMETHODCALLTYPE *get_BufferSize)(
11513        ISpeechAudioBufferInfo *This,
11514        LONG *BufferSize);
11515
11516    HRESULT (STDMETHODCALLTYPE *put_BufferSize)(
11517        ISpeechAudioBufferInfo *This,
11518        LONG BufferSize);
11519
11520    HRESULT (STDMETHODCALLTYPE *get_EventBias)(
11521        ISpeechAudioBufferInfo *This,
11522        LONG *EventBias);
11523
11524    HRESULT (STDMETHODCALLTYPE *put_EventBias)(
11525        ISpeechAudioBufferInfo *This,
11526        LONG EventBias);
11527
11528    END_INTERFACE
11529} ISpeechAudioBufferInfoVtbl;
11530
11531interface ISpeechAudioBufferInfo {
11532    CONST_VTBL ISpeechAudioBufferInfoVtbl* lpVtbl;
11533};
11534
11535#ifdef COBJMACROS
11536#ifndef WIDL_C_INLINE_WRAPPERS
11537/*** IUnknown methods ***/
11538#define ISpeechAudioBufferInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11539#define ISpeechAudioBufferInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
11540#define ISpeechAudioBufferInfo_Release(This) (This)->lpVtbl->Release(This)
11541/*** IDispatch methods ***/
11542#define ISpeechAudioBufferInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11543#define ISpeechAudioBufferInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11544#define ISpeechAudioBufferInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11545#define ISpeechAudioBufferInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11546/*** ISpeechAudioBufferInfo methods ***/
11547#define ISpeechAudioBufferInfo_get_MinNotification(This,MinNotification) (This)->lpVtbl->get_MinNotification(This,MinNotification)
11548#define ISpeechAudioBufferInfo_put_MinNotification(This,MinNotification) (This)->lpVtbl->put_MinNotification(This,MinNotification)
11549#define ISpeechAudioBufferInfo_get_BufferSize(This,BufferSize) (This)->lpVtbl->get_BufferSize(This,BufferSize)
11550#define ISpeechAudioBufferInfo_put_BufferSize(This,BufferSize) (This)->lpVtbl->put_BufferSize(This,BufferSize)
11551#define ISpeechAudioBufferInfo_get_EventBias(This,EventBias) (This)->lpVtbl->get_EventBias(This,EventBias)
11552#define ISpeechAudioBufferInfo_put_EventBias(This,EventBias) (This)->lpVtbl->put_EventBias(This,EventBias)
11553#else
11554/*** IUnknown methods ***/
11555static inline HRESULT ISpeechAudioBufferInfo_QueryInterface(ISpeechAudioBufferInfo* This,REFIID riid,void **ppvObject) {
11556    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11557}
11558static inline ULONG ISpeechAudioBufferInfo_AddRef(ISpeechAudioBufferInfo* This) {
11559    return This->lpVtbl->AddRef(This);
11560}
11561static inline ULONG ISpeechAudioBufferInfo_Release(ISpeechAudioBufferInfo* This) {
11562    return This->lpVtbl->Release(This);
11563}
11564/*** IDispatch methods ***/
11565static inline HRESULT ISpeechAudioBufferInfo_GetTypeInfoCount(ISpeechAudioBufferInfo* This,UINT *pctinfo) {
11566    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11567}
11568static inline HRESULT ISpeechAudioBufferInfo_GetTypeInfo(ISpeechAudioBufferInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11569    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11570}
11571static inline HRESULT ISpeechAudioBufferInfo_GetIDsOfNames(ISpeechAudioBufferInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11572    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11573}
11574static inline HRESULT ISpeechAudioBufferInfo_Invoke(ISpeechAudioBufferInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11575    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11576}
11577/*** ISpeechAudioBufferInfo methods ***/
11578static inline HRESULT ISpeechAudioBufferInfo_get_MinNotification(ISpeechAudioBufferInfo* This,LONG *MinNotification) {
11579    return This->lpVtbl->get_MinNotification(This,MinNotification);
11580}
11581static inline HRESULT ISpeechAudioBufferInfo_put_MinNotification(ISpeechAudioBufferInfo* This,LONG MinNotification) {
11582    return This->lpVtbl->put_MinNotification(This,MinNotification);
11583}
11584static inline HRESULT ISpeechAudioBufferInfo_get_BufferSize(ISpeechAudioBufferInfo* This,LONG *BufferSize) {
11585    return This->lpVtbl->get_BufferSize(This,BufferSize);
11586}
11587static inline HRESULT ISpeechAudioBufferInfo_put_BufferSize(ISpeechAudioBufferInfo* This,LONG BufferSize) {
11588    return This->lpVtbl->put_BufferSize(This,BufferSize);
11589}
11590static inline HRESULT ISpeechAudioBufferInfo_get_EventBias(ISpeechAudioBufferInfo* This,LONG *EventBias) {
11591    return This->lpVtbl->get_EventBias(This,EventBias);
11592}
11593static inline HRESULT ISpeechAudioBufferInfo_put_EventBias(ISpeechAudioBufferInfo* This,LONG EventBias) {
11594    return This->lpVtbl->put_EventBias(This,EventBias);
11595}
11596#endif
11597#endif
11598
11599#endif
11600
11601
11602#endif  /* __ISpeechAudioBufferInfo_INTERFACE_DEFINED__ */
11603
11604/*****************************************************************************
11605 * ISpeechWaveFormatEx interface
11606 */
11607#ifndef __ISpeechWaveFormatEx_INTERFACE_DEFINED__
11608#define __ISpeechWaveFormatEx_INTERFACE_DEFINED__
11609
11610DEFINE_GUID(IID_ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10);
11611#if defined(__cplusplus) && !defined(CINTERFACE)
11612MIDL_INTERFACE("7a1ef0d5-1581-4741-88e4-209a49f11a10")
11613ISpeechWaveFormatEx : public IDispatch
11614{
11615    virtual HRESULT STDMETHODCALLTYPE get_FormatTag(
11616        short *FormatTag) = 0;
11617
11618    virtual HRESULT STDMETHODCALLTYPE put_FormatTag(
11619        short FormatTag) = 0;
11620
11621    virtual HRESULT STDMETHODCALLTYPE get_Channels(
11622        short *Channels) = 0;
11623
11624    virtual HRESULT STDMETHODCALLTYPE put_Channels(
11625        short Channels) = 0;
11626
11627    virtual HRESULT STDMETHODCALLTYPE get_SamplesPerSec(
11628        LONG *SamplesPerSec) = 0;
11629
11630    virtual HRESULT STDMETHODCALLTYPE put_SamplesPerSec(
11631        LONG SamplesPerSec) = 0;
11632
11633    virtual HRESULT STDMETHODCALLTYPE get_AvgBytesPerSec(
11634        LONG *AvgBytesPerSec) = 0;
11635
11636    virtual HRESULT STDMETHODCALLTYPE put_AvgBytesPerSec(
11637        LONG AvgBytesPerSec) = 0;
11638
11639    virtual HRESULT STDMETHODCALLTYPE get_BlockAlign(
11640        short *BlockAlign) = 0;
11641
11642    virtual HRESULT STDMETHODCALLTYPE put_BlockAlign(
11643        short BlockAlign) = 0;
11644
11645    virtual HRESULT STDMETHODCALLTYPE get_BitsPerSample(
11646        short *BitsPerSample) = 0;
11647
11648    virtual HRESULT STDMETHODCALLTYPE put_BitsPerSample(
11649        short BitsPerSample) = 0;
11650
11651    virtual HRESULT STDMETHODCALLTYPE get_ExtraData(
11652        VARIANT *ExtraData) = 0;
11653
11654    virtual HRESULT STDMETHODCALLTYPE put_ExtraData(
11655        VARIANT ExtraData) = 0;
11656
11657};
11658#ifdef __CRT_UUID_DECL
11659__CRT_UUID_DECL(ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10)
11660#endif
11661#else
11662typedef struct ISpeechWaveFormatExVtbl {
11663    BEGIN_INTERFACE
11664
11665    /*** IUnknown methods ***/
11666    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11667        ISpeechWaveFormatEx *This,
11668        REFIID riid,
11669        void **ppvObject);
11670
11671    ULONG (STDMETHODCALLTYPE *AddRef)(
11672        ISpeechWaveFormatEx *This);
11673
11674    ULONG (STDMETHODCALLTYPE *Release)(
11675        ISpeechWaveFormatEx *This);
11676
11677    /*** IDispatch methods ***/
11678    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11679        ISpeechWaveFormatEx *This,
11680        UINT *pctinfo);
11681
11682    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11683        ISpeechWaveFormatEx *This,
11684        UINT iTInfo,
11685        LCID lcid,
11686        ITypeInfo **ppTInfo);
11687
11688    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11689        ISpeechWaveFormatEx *This,
11690        REFIID riid,
11691        LPOLESTR *rgszNames,
11692        UINT cNames,
11693        LCID lcid,
11694        DISPID *rgDispId);
11695
11696    HRESULT (STDMETHODCALLTYPE *Invoke)(
11697        ISpeechWaveFormatEx *This,
11698        DISPID dispIdMember,
11699        REFIID riid,
11700        LCID lcid,
11701        WORD wFlags,
11702        DISPPARAMS *pDispParams,
11703        VARIANT *pVarResult,
11704        EXCEPINFO *pExcepInfo,
11705        UINT *puArgErr);
11706
11707    /*** ISpeechWaveFormatEx methods ***/
11708    HRESULT (STDMETHODCALLTYPE *get_FormatTag)(
11709        ISpeechWaveFormatEx *This,
11710        short *FormatTag);
11711
11712    HRESULT (STDMETHODCALLTYPE *put_FormatTag)(
11713        ISpeechWaveFormatEx *This,
11714        short FormatTag);
11715
11716    HRESULT (STDMETHODCALLTYPE *get_Channels)(
11717        ISpeechWaveFormatEx *This,
11718        short *Channels);
11719
11720    HRESULT (STDMETHODCALLTYPE *put_Channels)(
11721        ISpeechWaveFormatEx *This,
11722        short Channels);
11723
11724    HRESULT (STDMETHODCALLTYPE *get_SamplesPerSec)(
11725        ISpeechWaveFormatEx *This,
11726        LONG *SamplesPerSec);
11727
11728    HRESULT (STDMETHODCALLTYPE *put_SamplesPerSec)(
11729        ISpeechWaveFormatEx *This,
11730        LONG SamplesPerSec);
11731
11732    HRESULT (STDMETHODCALLTYPE *get_AvgBytesPerSec)(
11733        ISpeechWaveFormatEx *This,
11734        LONG *AvgBytesPerSec);
11735
11736    HRESULT (STDMETHODCALLTYPE *put_AvgBytesPerSec)(
11737        ISpeechWaveFormatEx *This,
11738        LONG AvgBytesPerSec);
11739
11740    HRESULT (STDMETHODCALLTYPE *get_BlockAlign)(
11741        ISpeechWaveFormatEx *This,
11742        short *BlockAlign);
11743
11744    HRESULT (STDMETHODCALLTYPE *put_BlockAlign)(
11745        ISpeechWaveFormatEx *This,
11746        short BlockAlign);
11747
11748    HRESULT (STDMETHODCALLTYPE *get_BitsPerSample)(
11749        ISpeechWaveFormatEx *This,
11750        short *BitsPerSample);
11751
11752    HRESULT (STDMETHODCALLTYPE *put_BitsPerSample)(
11753        ISpeechWaveFormatEx *This,
11754        short BitsPerSample);
11755
11756    HRESULT (STDMETHODCALLTYPE *get_ExtraData)(
11757        ISpeechWaveFormatEx *This,
11758        VARIANT *ExtraData);
11759
11760    HRESULT (STDMETHODCALLTYPE *put_ExtraData)(
11761        ISpeechWaveFormatEx *This,
11762        VARIANT ExtraData);
11763
11764    END_INTERFACE
11765} ISpeechWaveFormatExVtbl;
11766
11767interface ISpeechWaveFormatEx {
11768    CONST_VTBL ISpeechWaveFormatExVtbl* lpVtbl;
11769};
11770
11771#ifdef COBJMACROS
11772#ifndef WIDL_C_INLINE_WRAPPERS
11773/*** IUnknown methods ***/
11774#define ISpeechWaveFormatEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11775#define ISpeechWaveFormatEx_AddRef(This) (This)->lpVtbl->AddRef(This)
11776#define ISpeechWaveFormatEx_Release(This) (This)->lpVtbl->Release(This)
11777/*** IDispatch methods ***/
11778#define ISpeechWaveFormatEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11779#define ISpeechWaveFormatEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11780#define ISpeechWaveFormatEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11781#define ISpeechWaveFormatEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11782/*** ISpeechWaveFormatEx methods ***/
11783#define ISpeechWaveFormatEx_get_FormatTag(This,FormatTag) (This)->lpVtbl->get_FormatTag(This,FormatTag)
11784#define ISpeechWaveFormatEx_put_FormatTag(This,FormatTag) (This)->lpVtbl->put_FormatTag(This,FormatTag)
11785#define ISpeechWaveFormatEx_get_Channels(This,Channels) (This)->lpVtbl->get_Channels(This,Channels)
11786#define ISpeechWaveFormatEx_put_Channels(This,Channels) (This)->lpVtbl->put_Channels(This,Channels)
11787#define ISpeechWaveFormatEx_get_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->get_SamplesPerSec(This,SamplesPerSec)
11788#define ISpeechWaveFormatEx_put_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->put_SamplesPerSec(This,SamplesPerSec)
11789#define ISpeechWaveFormatEx_get_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec)
11790#define ISpeechWaveFormatEx_put_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec)
11791#define ISpeechWaveFormatEx_get_BlockAlign(This,BlockAlign) (This)->lpVtbl->get_BlockAlign(This,BlockAlign)
11792#define ISpeechWaveFormatEx_put_BlockAlign(This,BlockAlign) (This)->lpVtbl->put_BlockAlign(This,BlockAlign)
11793#define ISpeechWaveFormatEx_get_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->get_BitsPerSample(This,BitsPerSample)
11794#define ISpeechWaveFormatEx_put_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->put_BitsPerSample(This,BitsPerSample)
11795#define ISpeechWaveFormatEx_get_ExtraData(This,ExtraData) (This)->lpVtbl->get_ExtraData(This,ExtraData)
11796#define ISpeechWaveFormatEx_put_ExtraData(This,ExtraData) (This)->lpVtbl->put_ExtraData(This,ExtraData)
11797#else
11798/*** IUnknown methods ***/
11799static inline HRESULT ISpeechWaveFormatEx_QueryInterface(ISpeechWaveFormatEx* This,REFIID riid,void **ppvObject) {
11800    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11801}
11802static inline ULONG ISpeechWaveFormatEx_AddRef(ISpeechWaveFormatEx* This) {
11803    return This->lpVtbl->AddRef(This);
11804}
11805static inline ULONG ISpeechWaveFormatEx_Release(ISpeechWaveFormatEx* This) {
11806    return This->lpVtbl->Release(This);
11807}
11808/*** IDispatch methods ***/
11809static inline HRESULT ISpeechWaveFormatEx_GetTypeInfoCount(ISpeechWaveFormatEx* This,UINT *pctinfo) {
11810    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11811}
11812static inline HRESULT ISpeechWaveFormatEx_GetTypeInfo(ISpeechWaveFormatEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11813    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11814}
11815static inline HRESULT ISpeechWaveFormatEx_GetIDsOfNames(ISpeechWaveFormatEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11816    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11817}
11818static inline HRESULT ISpeechWaveFormatEx_Invoke(ISpeechWaveFormatEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11819    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11820}
11821/*** ISpeechWaveFormatEx methods ***/
11822static inline HRESULT ISpeechWaveFormatEx_get_FormatTag(ISpeechWaveFormatEx* This,short *FormatTag) {
11823    return This->lpVtbl->get_FormatTag(This,FormatTag);
11824}
11825static inline HRESULT ISpeechWaveFormatEx_put_FormatTag(ISpeechWaveFormatEx* This,short FormatTag) {
11826    return This->lpVtbl->put_FormatTag(This,FormatTag);
11827}
11828static inline HRESULT ISpeechWaveFormatEx_get_Channels(ISpeechWaveFormatEx* This,short *Channels) {
11829    return This->lpVtbl->get_Channels(This,Channels);
11830}
11831static inline HRESULT ISpeechWaveFormatEx_put_Channels(ISpeechWaveFormatEx* This,short Channels) {
11832    return This->lpVtbl->put_Channels(This,Channels);
11833}
11834static inline HRESULT ISpeechWaveFormatEx_get_SamplesPerSec(ISpeechWaveFormatEx* This,LONG *SamplesPerSec) {
11835    return This->lpVtbl->get_SamplesPerSec(This,SamplesPerSec);
11836}
11837static inline HRESULT ISpeechWaveFormatEx_put_SamplesPerSec(ISpeechWaveFormatEx* This,LONG SamplesPerSec) {
11838    return This->lpVtbl->put_SamplesPerSec(This,SamplesPerSec);
11839}
11840static inline HRESULT ISpeechWaveFormatEx_get_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG *AvgBytesPerSec) {
11841    return This->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec);
11842}
11843static inline HRESULT ISpeechWaveFormatEx_put_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG AvgBytesPerSec) {
11844    return This->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec);
11845}
11846static inline HRESULT ISpeechWaveFormatEx_get_BlockAlign(ISpeechWaveFormatEx* This,short *BlockAlign) {
11847    return This->lpVtbl->get_BlockAlign(This,BlockAlign);
11848}
11849static inline HRESULT ISpeechWaveFormatEx_put_BlockAlign(ISpeechWaveFormatEx* This,short BlockAlign) {
11850    return This->lpVtbl->put_BlockAlign(This,BlockAlign);
11851}
11852static inline HRESULT ISpeechWaveFormatEx_get_BitsPerSample(ISpeechWaveFormatEx* This,short *BitsPerSample) {
11853    return This->lpVtbl->get_BitsPerSample(This,BitsPerSample);
11854}
11855static inline HRESULT ISpeechWaveFormatEx_put_BitsPerSample(ISpeechWaveFormatEx* This,short BitsPerSample) {
11856    return This->lpVtbl->put_BitsPerSample(This,BitsPerSample);
11857}
11858static inline HRESULT ISpeechWaveFormatEx_get_ExtraData(ISpeechWaveFormatEx* This,VARIANT *ExtraData) {
11859    return This->lpVtbl->get_ExtraData(This,ExtraData);
11860}
11861static inline HRESULT ISpeechWaveFormatEx_put_ExtraData(ISpeechWaveFormatEx* This,VARIANT ExtraData) {
11862    return This->lpVtbl->put_ExtraData(This,ExtraData);
11863}
11864#endif
11865#endif
11866
11867#endif
11868
11869
11870#endif  /* __ISpeechWaveFormatEx_INTERFACE_DEFINED__ */
11871
11872/*****************************************************************************
11873 * ISpeechVoice interface
11874 */
11875#ifndef __ISpeechVoice_INTERFACE_DEFINED__
11876#define __ISpeechVoice_INTERFACE_DEFINED__
11877
11878DEFINE_GUID(IID_ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
11879#if defined(__cplusplus) && !defined(CINTERFACE)
11880MIDL_INTERFACE("269316d8-57bd-11d2-9eee-00c04f797396")
11881ISpeechVoice : public IDispatch
11882{
11883    virtual HRESULT STDMETHODCALLTYPE get_Status(
11884        ISpeechVoiceStatus **Status) = 0;
11885
11886    virtual HRESULT STDMETHODCALLTYPE get_Voice(
11887        ISpeechObjectToken **Voice) = 0;
11888
11889    virtual HRESULT STDMETHODCALLTYPE putref_Voice(
11890        ISpeechObjectToken *Voice) = 0;
11891
11892    virtual HRESULT STDMETHODCALLTYPE get_AudioOutput(
11893        ISpeechObjectToken **AudioOutput) = 0;
11894
11895    virtual HRESULT STDMETHODCALLTYPE putref_AudioOutput(
11896        ISpeechObjectToken *AudioOutput) = 0;
11897
11898    virtual HRESULT STDMETHODCALLTYPE get_AudioOutputStream(
11899        ISpeechBaseStream **AudioOutputStream) = 0;
11900
11901    virtual HRESULT STDMETHODCALLTYPE putref_AudioOutputStream(
11902        ISpeechBaseStream *AudioOutputStream) = 0;
11903
11904    virtual HRESULT STDMETHODCALLTYPE get_Rate(
11905        LONG *Rate) = 0;
11906
11907    virtual HRESULT STDMETHODCALLTYPE put_Rate(
11908        LONG Rate) = 0;
11909
11910    virtual HRESULT STDMETHODCALLTYPE get_Volume(
11911        LONG *Volume) = 0;
11912
11913    virtual HRESULT STDMETHODCALLTYPE put_Volume(
11914        LONG Volume) = 0;
11915
11916    virtual HRESULT STDMETHODCALLTYPE put_AllowAudioOutputFormatChangesOnNextSet(
11917        VARIANT_BOOL Allow) = 0;
11918
11919    virtual HRESULT STDMETHODCALLTYPE get_AllowAudioOutputFormatChangesOnNextSet(
11920        VARIANT_BOOL *Allow) = 0;
11921
11922    virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
11923        SpeechVoiceEvents *EventInterestFlags) = 0;
11924
11925    virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
11926        SpeechVoiceEvents EventInterestFlags) = 0;
11927
11928    virtual HRESULT STDMETHODCALLTYPE put_Priority(
11929        SpeechVoicePriority Priority) = 0;
11930
11931    virtual HRESULT STDMETHODCALLTYPE get_Priority(
11932        SpeechVoicePriority *Priority) = 0;
11933
11934    virtual HRESULT STDMETHODCALLTYPE put_AlertBoundary(
11935        SpeechVoiceEvents Boundary) = 0;
11936
11937    virtual HRESULT STDMETHODCALLTYPE get_AlertBoundary(
11938        SpeechVoiceEvents *Boundary) = 0;
11939
11940    virtual HRESULT STDMETHODCALLTYPE put_SynchronousSpeakTimeout(
11941        LONG msTimeout) = 0;
11942
11943    virtual HRESULT STDMETHODCALLTYPE get_SynchronousSpeakTimeout(
11944        LONG *msTimeout) = 0;
11945
11946    virtual HRESULT STDMETHODCALLTYPE Speak(
11947        BSTR Text,
11948        SpeechVoiceSpeakFlags Flags,
11949        LONG *StreamNumber) = 0;
11950
11951    virtual HRESULT STDMETHODCALLTYPE SpeakStream(
11952        ISpeechBaseStream *Stream,
11953        SpeechVoiceSpeakFlags Flags,
11954        LONG *StreamNumber) = 0;
11955
11956    virtual HRESULT STDMETHODCALLTYPE Pause(
11957        ) = 0;
11958
11959    virtual HRESULT STDMETHODCALLTYPE Resume(
11960        ) = 0;
11961
11962    virtual HRESULT STDMETHODCALLTYPE Skip(
11963        const BSTR Type,
11964        LONG NumItems,
11965        LONG *NumSkipped) = 0;
11966
11967    virtual HRESULT STDMETHODCALLTYPE GetVoices(
11968        BSTR RequiredAttributes,
11969        BSTR OptionalAttributes,
11970        ISpeechObjectTokens **ObjectTokens) = 0;
11971
11972    virtual HRESULT STDMETHODCALLTYPE GetAudioOutputs(
11973        BSTR RequiredAttributes,
11974        BSTR OptionalAttributes,
11975        ISpeechObjectTokens **ObjectTokens) = 0;
11976
11977    virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
11978        LONG msTimeout,
11979        VARIANT_BOOL *Done) = 0;
11980
11981    virtual HRESULT STDMETHODCALLTYPE SpeakCompleteEvent(
11982        LONG *Handle) = 0;
11983
11984    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
11985        const BSTR TypeOfUI,
11986        const VARIANT *ExtraData,
11987        VARIANT_BOOL *Supported) = 0;
11988
11989    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
11990        LONG hWndParent,
11991        BSTR Title,
11992        const BSTR TypeOfUI,
11993        const VARIANT *ExtraData = 0) = 0;
11994
11995};
11996#ifdef __CRT_UUID_DECL
11997__CRT_UUID_DECL(ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
11998#endif
11999#else
12000typedef struct ISpeechVoiceVtbl {
12001    BEGIN_INTERFACE
12002
12003    /*** IUnknown methods ***/
12004    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12005        ISpeechVoice *This,
12006        REFIID riid,
12007        void **ppvObject);
12008
12009    ULONG (STDMETHODCALLTYPE *AddRef)(
12010        ISpeechVoice *This);
12011
12012    ULONG (STDMETHODCALLTYPE *Release)(
12013        ISpeechVoice *This);
12014
12015    /*** IDispatch methods ***/
12016    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12017        ISpeechVoice *This,
12018        UINT *pctinfo);
12019
12020    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12021        ISpeechVoice *This,
12022        UINT iTInfo,
12023        LCID lcid,
12024        ITypeInfo **ppTInfo);
12025
12026    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12027        ISpeechVoice *This,
12028        REFIID riid,
12029        LPOLESTR *rgszNames,
12030        UINT cNames,
12031        LCID lcid,
12032        DISPID *rgDispId);
12033
12034    HRESULT (STDMETHODCALLTYPE *Invoke)(
12035        ISpeechVoice *This,
12036        DISPID dispIdMember,
12037        REFIID riid,
12038        LCID lcid,
12039        WORD wFlags,
12040        DISPPARAMS *pDispParams,
12041        VARIANT *pVarResult,
12042        EXCEPINFO *pExcepInfo,
12043        UINT *puArgErr);
12044
12045    /*** ISpeechVoice methods ***/
12046    HRESULT (STDMETHODCALLTYPE *get_Status)(
12047        ISpeechVoice *This,
12048        ISpeechVoiceStatus **Status);
12049
12050    HRESULT (STDMETHODCALLTYPE *get_Voice)(
12051        ISpeechVoice *This,
12052        ISpeechObjectToken **Voice);
12053
12054    HRESULT (STDMETHODCALLTYPE *putref_Voice)(
12055        ISpeechVoice *This,
12056        ISpeechObjectToken *Voice);
12057
12058    HRESULT (STDMETHODCALLTYPE *get_AudioOutput)(
12059        ISpeechVoice *This,
12060        ISpeechObjectToken **AudioOutput);
12061
12062    HRESULT (STDMETHODCALLTYPE *putref_AudioOutput)(
12063        ISpeechVoice *This,
12064        ISpeechObjectToken *AudioOutput);
12065
12066    HRESULT (STDMETHODCALLTYPE *get_AudioOutputStream)(
12067        ISpeechVoice *This,
12068        ISpeechBaseStream **AudioOutputStream);
12069
12070    HRESULT (STDMETHODCALLTYPE *putref_AudioOutputStream)(
12071        ISpeechVoice *This,
12072        ISpeechBaseStream *AudioOutputStream);
12073
12074    HRESULT (STDMETHODCALLTYPE *get_Rate)(
12075        ISpeechVoice *This,
12076        LONG *Rate);
12077
12078    HRESULT (STDMETHODCALLTYPE *put_Rate)(
12079        ISpeechVoice *This,
12080        LONG Rate);
12081
12082    HRESULT (STDMETHODCALLTYPE *get_Volume)(
12083        ISpeechVoice *This,
12084        LONG *Volume);
12085
12086    HRESULT (STDMETHODCALLTYPE *put_Volume)(
12087        ISpeechVoice *This,
12088        LONG Volume);
12089
12090    HRESULT (STDMETHODCALLTYPE *put_AllowAudioOutputFormatChangesOnNextSet)(
12091        ISpeechVoice *This,
12092        VARIANT_BOOL Allow);
12093
12094    HRESULT (STDMETHODCALLTYPE *get_AllowAudioOutputFormatChangesOnNextSet)(
12095        ISpeechVoice *This,
12096        VARIANT_BOOL *Allow);
12097
12098    HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
12099        ISpeechVoice *This,
12100        SpeechVoiceEvents *EventInterestFlags);
12101
12102    HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
12103        ISpeechVoice *This,
12104        SpeechVoiceEvents EventInterestFlags);
12105
12106    HRESULT (STDMETHODCALLTYPE *put_Priority)(
12107        ISpeechVoice *This,
12108        SpeechVoicePriority Priority);
12109
12110    HRESULT (STDMETHODCALLTYPE *get_Priority)(
12111        ISpeechVoice *This,
12112        SpeechVoicePriority *Priority);
12113
12114    HRESULT (STDMETHODCALLTYPE *put_AlertBoundary)(
12115        ISpeechVoice *This,
12116        SpeechVoiceEvents Boundary);
12117
12118    HRESULT (STDMETHODCALLTYPE *get_AlertBoundary)(
12119        ISpeechVoice *This,
12120        SpeechVoiceEvents *Boundary);
12121
12122    HRESULT (STDMETHODCALLTYPE *put_SynchronousSpeakTimeout)(
12123        ISpeechVoice *This,
12124        LONG msTimeout);
12125
12126    HRESULT (STDMETHODCALLTYPE *get_SynchronousSpeakTimeout)(
12127        ISpeechVoice *This,
12128        LONG *msTimeout);
12129
12130    HRESULT (STDMETHODCALLTYPE *Speak)(
12131        ISpeechVoice *This,
12132        BSTR Text,
12133        SpeechVoiceSpeakFlags Flags,
12134        LONG *StreamNumber);
12135
12136    HRESULT (STDMETHODCALLTYPE *SpeakStream)(
12137        ISpeechVoice *This,
12138        ISpeechBaseStream *Stream,
12139        SpeechVoiceSpeakFlags Flags,
12140        LONG *StreamNumber);
12141
12142    HRESULT (STDMETHODCALLTYPE *Pause)(
12143        ISpeechVoice *This);
12144
12145    HRESULT (STDMETHODCALLTYPE *Resume)(
12146        ISpeechVoice *This);
12147
12148    HRESULT (STDMETHODCALLTYPE *Skip)(
12149        ISpeechVoice *This,
12150        const BSTR Type,
12151        LONG NumItems,
12152        LONG *NumSkipped);
12153
12154    HRESULT (STDMETHODCALLTYPE *GetVoices)(
12155        ISpeechVoice *This,
12156        BSTR RequiredAttributes,
12157        BSTR OptionalAttributes,
12158        ISpeechObjectTokens **ObjectTokens);
12159
12160    HRESULT (STDMETHODCALLTYPE *GetAudioOutputs)(
12161        ISpeechVoice *This,
12162        BSTR RequiredAttributes,
12163        BSTR OptionalAttributes,
12164        ISpeechObjectTokens **ObjectTokens);
12165
12166    HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
12167        ISpeechVoice *This,
12168        LONG msTimeout,
12169        VARIANT_BOOL *Done);
12170
12171    HRESULT (STDMETHODCALLTYPE *SpeakCompleteEvent)(
12172        ISpeechVoice *This,
12173        LONG *Handle);
12174
12175    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
12176        ISpeechVoice *This,
12177        const BSTR TypeOfUI,
12178        const VARIANT *ExtraData,
12179        VARIANT_BOOL *Supported);
12180
12181    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
12182        ISpeechVoice *This,
12183        LONG hWndParent,
12184        BSTR Title,
12185        const BSTR TypeOfUI,
12186        const VARIANT *ExtraData);
12187
12188    END_INTERFACE
12189} ISpeechVoiceVtbl;
12190
12191interface ISpeechVoice {
12192    CONST_VTBL ISpeechVoiceVtbl* lpVtbl;
12193};
12194
12195#ifdef COBJMACROS
12196#ifndef WIDL_C_INLINE_WRAPPERS
12197/*** IUnknown methods ***/
12198#define ISpeechVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12199#define ISpeechVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
12200#define ISpeechVoice_Release(This) (This)->lpVtbl->Release(This)
12201/*** IDispatch methods ***/
12202#define ISpeechVoice_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12203#define ISpeechVoice_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12204#define ISpeechVoice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12205#define ISpeechVoice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12206/*** ISpeechVoice methods ***/
12207#define ISpeechVoice_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
12208#define ISpeechVoice_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
12209#define ISpeechVoice_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
12210#define ISpeechVoice_get_AudioOutput(This,AudioOutput) (This)->lpVtbl->get_AudioOutput(This,AudioOutput)
12211#define ISpeechVoice_putref_AudioOutput(This,AudioOutput) (This)->lpVtbl->putref_AudioOutput(This,AudioOutput)
12212#define ISpeechVoice_get_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->get_AudioOutputStream(This,AudioOutputStream)
12213#define ISpeechVoice_putref_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream)
12214#define ISpeechVoice_get_Rate(This,Rate) (This)->lpVtbl->get_Rate(This,Rate)
12215#define ISpeechVoice_put_Rate(This,Rate) (This)->lpVtbl->put_Rate(This,Rate)
12216#define ISpeechVoice_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
12217#define ISpeechVoice_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
12218#define ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
12219#define ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
12220#define ISpeechVoice_get_EventInterests(This,EventInterestFlags) (This)->lpVtbl->get_EventInterests(This,EventInterestFlags)
12221#define ISpeechVoice_put_EventInterests(This,EventInterestFlags) (This)->lpVtbl->put_EventInterests(This,EventInterestFlags)
12222#define ISpeechVoice_put_Priority(This,Priority) (This)->lpVtbl->put_Priority(This,Priority)
12223#define ISpeechVoice_get_Priority(This,Priority) (This)->lpVtbl->get_Priority(This,Priority)
12224#define ISpeechVoice_put_AlertBoundary(This,Boundary) (This)->lpVtbl->put_AlertBoundary(This,Boundary)
12225#define ISpeechVoice_get_AlertBoundary(This,Boundary) (This)->lpVtbl->get_AlertBoundary(This,Boundary)
12226#define ISpeechVoice_put_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout)
12227#define ISpeechVoice_get_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout)
12228#define ISpeechVoice_Speak(This,Text,Flags,StreamNumber) (This)->lpVtbl->Speak(This,Text,Flags,StreamNumber)
12229#define ISpeechVoice_SpeakStream(This,Stream,Flags,StreamNumber) (This)->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber)
12230#define ISpeechVoice_Pause(This) (This)->lpVtbl->Pause(This)
12231#define ISpeechVoice_Resume(This) (This)->lpVtbl->Resume(This)
12232#define ISpeechVoice_Skip(This,Type,NumItems,NumSkipped) (This)->lpVtbl->Skip(This,Type,NumItems,NumSkipped)
12233#define ISpeechVoice_GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
12234#define ISpeechVoice_GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
12235#define ISpeechVoice_WaitUntilDone(This,msTimeout,Done) (This)->lpVtbl->WaitUntilDone(This,msTimeout,Done)
12236#define ISpeechVoice_SpeakCompleteEvent(This,Handle) (This)->lpVtbl->SpeakCompleteEvent(This,Handle)
12237#define ISpeechVoice_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
12238#define ISpeechVoice_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
12239#else
12240/*** IUnknown methods ***/
12241static inline HRESULT ISpeechVoice_QueryInterface(ISpeechVoice* This,REFIID riid,void **ppvObject) {
12242    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12243}
12244static inline ULONG ISpeechVoice_AddRef(ISpeechVoice* This) {
12245    return This->lpVtbl->AddRef(This);
12246}
12247static inline ULONG ISpeechVoice_Release(ISpeechVoice* This) {
12248    return This->lpVtbl->Release(This);
12249}
12250/*** IDispatch methods ***/
12251static inline HRESULT ISpeechVoice_GetTypeInfoCount(ISpeechVoice* This,UINT *pctinfo) {
12252    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12253}
12254static inline HRESULT ISpeechVoice_GetTypeInfo(ISpeechVoice* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12255    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12256}
12257static inline HRESULT ISpeechVoice_GetIDsOfNames(ISpeechVoice* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12258    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12259}
12260static inline HRESULT ISpeechVoice_Invoke(ISpeechVoice* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12261    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12262}
12263/*** ISpeechVoice methods ***/
12264static inline HRESULT ISpeechVoice_get_Status(ISpeechVoice* This,ISpeechVoiceStatus **Status) {
12265    return This->lpVtbl->get_Status(This,Status);
12266}
12267static inline HRESULT ISpeechVoice_get_Voice(ISpeechVoice* This,ISpeechObjectToken **Voice) {
12268    return This->lpVtbl->get_Voice(This,Voice);
12269}
12270static inline HRESULT ISpeechVoice_putref_Voice(ISpeechVoice* This,ISpeechObjectToken *Voice) {
12271    return This->lpVtbl->putref_Voice(This,Voice);
12272}
12273static inline HRESULT ISpeechVoice_get_AudioOutput(ISpeechVoice* This,ISpeechObjectToken **AudioOutput) {
12274    return This->lpVtbl->get_AudioOutput(This,AudioOutput);
12275}
12276static inline HRESULT ISpeechVoice_putref_AudioOutput(ISpeechVoice* This,ISpeechObjectToken *AudioOutput) {
12277    return This->lpVtbl->putref_AudioOutput(This,AudioOutput);
12278}
12279static inline HRESULT ISpeechVoice_get_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream **AudioOutputStream) {
12280    return This->lpVtbl->get_AudioOutputStream(This,AudioOutputStream);
12281}
12282static inline HRESULT ISpeechVoice_putref_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream *AudioOutputStream) {
12283    return This->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream);
12284}
12285static inline HRESULT ISpeechVoice_get_Rate(ISpeechVoice* This,LONG *Rate) {
12286    return This->lpVtbl->get_Rate(This,Rate);
12287}
12288static inline HRESULT ISpeechVoice_put_Rate(ISpeechVoice* This,LONG Rate) {
12289    return This->lpVtbl->put_Rate(This,Rate);
12290}
12291static inline HRESULT ISpeechVoice_get_Volume(ISpeechVoice* This,LONG *Volume) {
12292    return This->lpVtbl->get_Volume(This,Volume);
12293}
12294static inline HRESULT ISpeechVoice_put_Volume(ISpeechVoice* This,LONG Volume) {
12295    return This->lpVtbl->put_Volume(This,Volume);
12296}
12297static inline HRESULT ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL Allow) {
12298    return This->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
12299}
12300static inline HRESULT ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL *Allow) {
12301    return This->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
12302}
12303static inline HRESULT ISpeechVoice_get_EventInterests(ISpeechVoice* This,SpeechVoiceEvents *EventInterestFlags) {
12304    return This->lpVtbl->get_EventInterests(This,EventInterestFlags);
12305}
12306static inline HRESULT ISpeechVoice_put_EventInterests(ISpeechVoice* This,SpeechVoiceEvents EventInterestFlags) {
12307    return This->lpVtbl->put_EventInterests(This,EventInterestFlags);
12308}
12309static inline HRESULT ISpeechVoice_put_Priority(ISpeechVoice* This,SpeechVoicePriority Priority) {
12310    return This->lpVtbl->put_Priority(This,Priority);
12311}
12312static inline HRESULT ISpeechVoice_get_Priority(ISpeechVoice* This,SpeechVoicePriority *Priority) {
12313    return This->lpVtbl->get_Priority(This,Priority);
12314}
12315static inline HRESULT ISpeechVoice_put_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents Boundary) {
12316    return This->lpVtbl->put_AlertBoundary(This,Boundary);
12317}
12318static inline HRESULT ISpeechVoice_get_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents *Boundary) {
12319    return This->lpVtbl->get_AlertBoundary(This,Boundary);
12320}
12321static inline HRESULT ISpeechVoice_put_SynchronousSpeakTimeout(ISpeechVoice* This,LONG msTimeout) {
12322    return This->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout);
12323}
12324static inline HRESULT ISpeechVoice_get_SynchronousSpeakTimeout(ISpeechVoice* This,LONG *msTimeout) {
12325    return This->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout);
12326}
12327static inline HRESULT ISpeechVoice_Speak(ISpeechVoice* This,BSTR Text,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
12328    return This->lpVtbl->Speak(This,Text,Flags,StreamNumber);
12329}
12330static inline HRESULT ISpeechVoice_SpeakStream(ISpeechVoice* This,ISpeechBaseStream *Stream,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
12331    return This->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber);
12332}
12333static inline HRESULT ISpeechVoice_Pause(ISpeechVoice* This) {
12334    return This->lpVtbl->Pause(This);
12335}
12336static inline HRESULT ISpeechVoice_Resume(ISpeechVoice* This) {
12337    return This->lpVtbl->Resume(This);
12338}
12339static inline HRESULT ISpeechVoice_Skip(ISpeechVoice* This,const BSTR Type,LONG NumItems,LONG *NumSkipped) {
12340    return This->lpVtbl->Skip(This,Type,NumItems,NumSkipped);
12341}
12342static inline HRESULT ISpeechVoice_GetVoices(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
12343    return This->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
12344}
12345static inline HRESULT ISpeechVoice_GetAudioOutputs(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
12346    return This->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
12347}
12348static inline HRESULT ISpeechVoice_WaitUntilDone(ISpeechVoice* This,LONG msTimeout,VARIANT_BOOL *Done) {
12349    return This->lpVtbl->WaitUntilDone(This,msTimeout,Done);
12350}
12351static inline HRESULT ISpeechVoice_SpeakCompleteEvent(ISpeechVoice* This,LONG *Handle) {
12352    return This->lpVtbl->SpeakCompleteEvent(This,Handle);
12353}
12354static inline HRESULT ISpeechVoice_IsUISupported(ISpeechVoice* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
12355    return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
12356}
12357static inline HRESULT ISpeechVoice_DisplayUI(ISpeechVoice* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
12358    return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
12359}
12360#endif
12361#endif
12362
12363#endif
12364
12365
12366#endif  /* __ISpeechVoice_INTERFACE_DEFINED__ */
12367
12368/*****************************************************************************
12369 * ISpeechVoiceStatus interface
12370 */
12371#ifndef __ISpeechVoiceStatus_INTERFACE_DEFINED__
12372#define __ISpeechVoiceStatus_INTERFACE_DEFINED__
12373
12374DEFINE_GUID(IID_ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
12375#if defined(__cplusplus) && !defined(CINTERFACE)
12376MIDL_INTERFACE("8be47b07-57f6-11d2-9eee-00c04f797396")
12377ISpeechVoiceStatus : public IDispatch
12378{
12379    virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
12380        LONG *StreamNumber) = 0;
12381
12382    virtual HRESULT STDMETHODCALLTYPE get_LastStreamNumberQueued(
12383        LONG *StreamNumber) = 0;
12384
12385    virtual HRESULT STDMETHODCALLTYPE get_LastHResult(
12386        LONG *HResult) = 0;
12387
12388    virtual HRESULT STDMETHODCALLTYPE get_RunningState(
12389        SpeechRunState *State) = 0;
12390
12391    virtual HRESULT STDMETHODCALLTYPE get_InputWordPosition(
12392        LONG *Position) = 0;
12393
12394    virtual HRESULT STDMETHODCALLTYPE get_InputWordLength(
12395        LONG *Length) = 0;
12396
12397    virtual HRESULT STDMETHODCALLTYPE get_InputSentencePosition(
12398        LONG *Position) = 0;
12399
12400    virtual HRESULT STDMETHODCALLTYPE get_InputSentenceLength(
12401        LONG *Length) = 0;
12402
12403    virtual HRESULT STDMETHODCALLTYPE get_LastBookmark(
12404        BSTR *Bookmark) = 0;
12405
12406    virtual HRESULT STDMETHODCALLTYPE get_LastBookmarkId(
12407        LONG *BookmarkId) = 0;
12408
12409    virtual HRESULT STDMETHODCALLTYPE get_PhonemeId(
12410        short *PhoneId) = 0;
12411
12412    virtual HRESULT STDMETHODCALLTYPE get_VisemeId(
12413        short *VisemeId) = 0;
12414
12415};
12416#ifdef __CRT_UUID_DECL
12417__CRT_UUID_DECL(ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
12418#endif
12419#else
12420typedef struct ISpeechVoiceStatusVtbl {
12421    BEGIN_INTERFACE
12422
12423    /*** IUnknown methods ***/
12424    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12425        ISpeechVoiceStatus *This,
12426        REFIID riid,
12427        void **ppvObject);
12428
12429    ULONG (STDMETHODCALLTYPE *AddRef)(
12430        ISpeechVoiceStatus *This);
12431
12432    ULONG (STDMETHODCALLTYPE *Release)(
12433        ISpeechVoiceStatus *This);
12434
12435    /*** IDispatch methods ***/
12436    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12437        ISpeechVoiceStatus *This,
12438        UINT *pctinfo);
12439
12440    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12441        ISpeechVoiceStatus *This,
12442        UINT iTInfo,
12443        LCID lcid,
12444        ITypeInfo **ppTInfo);
12445
12446    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12447        ISpeechVoiceStatus *This,
12448        REFIID riid,
12449        LPOLESTR *rgszNames,
12450        UINT cNames,
12451        LCID lcid,
12452        DISPID *rgDispId);
12453
12454    HRESULT (STDMETHODCALLTYPE *Invoke)(
12455        ISpeechVoiceStatus *This,
12456        DISPID dispIdMember,
12457        REFIID riid,
12458        LCID lcid,
12459        WORD wFlags,
12460        DISPPARAMS *pDispParams,
12461        VARIANT *pVarResult,
12462        EXCEPINFO *pExcepInfo,
12463        UINT *puArgErr);
12464
12465    /*** ISpeechVoiceStatus methods ***/
12466    HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
12467        ISpeechVoiceStatus *This,
12468        LONG *StreamNumber);
12469
12470    HRESULT (STDMETHODCALLTYPE *get_LastStreamNumberQueued)(
12471        ISpeechVoiceStatus *This,
12472        LONG *StreamNumber);
12473
12474    HRESULT (STDMETHODCALLTYPE *get_LastHResult)(
12475        ISpeechVoiceStatus *This,
12476        LONG *HResult);
12477
12478    HRESULT (STDMETHODCALLTYPE *get_RunningState)(
12479        ISpeechVoiceStatus *This,
12480        SpeechRunState *State);
12481
12482    HRESULT (STDMETHODCALLTYPE *get_InputWordPosition)(
12483        ISpeechVoiceStatus *This,
12484        LONG *Position);
12485
12486    HRESULT (STDMETHODCALLTYPE *get_InputWordLength)(
12487        ISpeechVoiceStatus *This,
12488        LONG *Length);
12489
12490    HRESULT (STDMETHODCALLTYPE *get_InputSentencePosition)(
12491        ISpeechVoiceStatus *This,
12492        LONG *Position);
12493
12494    HRESULT (STDMETHODCALLTYPE *get_InputSentenceLength)(
12495        ISpeechVoiceStatus *This,
12496        LONG *Length);
12497
12498    HRESULT (STDMETHODCALLTYPE *get_LastBookmark)(
12499        ISpeechVoiceStatus *This,
12500        BSTR *Bookmark);
12501
12502    HRESULT (STDMETHODCALLTYPE *get_LastBookmarkId)(
12503        ISpeechVoiceStatus *This,
12504        LONG *BookmarkId);
12505
12506    HRESULT (STDMETHODCALLTYPE *get_PhonemeId)(
12507        ISpeechVoiceStatus *This,
12508        short *PhoneId);
12509
12510    HRESULT (STDMETHODCALLTYPE *get_VisemeId)(
12511        ISpeechVoiceStatus *This,
12512        short *VisemeId);
12513
12514    END_INTERFACE
12515} ISpeechVoiceStatusVtbl;
12516
12517interface ISpeechVoiceStatus {
12518    CONST_VTBL ISpeechVoiceStatusVtbl* lpVtbl;
12519};
12520
12521#ifdef COBJMACROS
12522#ifndef WIDL_C_INLINE_WRAPPERS
12523/*** IUnknown methods ***/
12524#define ISpeechVoiceStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12525#define ISpeechVoiceStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
12526#define ISpeechVoiceStatus_Release(This) (This)->lpVtbl->Release(This)
12527/*** IDispatch methods ***/
12528#define ISpeechVoiceStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12529#define ISpeechVoiceStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12530#define ISpeechVoiceStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12531#define ISpeechVoiceStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12532/*** ISpeechVoiceStatus methods ***/
12533#define ISpeechVoiceStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
12534#define ISpeechVoiceStatus_get_LastStreamNumberQueued(This,StreamNumber) (This)->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber)
12535#define ISpeechVoiceStatus_get_LastHResult(This,HResult) (This)->lpVtbl->get_LastHResult(This,HResult)
12536#define ISpeechVoiceStatus_get_RunningState(This,State) (This)->lpVtbl->get_RunningState(This,State)
12537#define ISpeechVoiceStatus_get_InputWordPosition(This,Position) (This)->lpVtbl->get_InputWordPosition(This,Position)
12538#define ISpeechVoiceStatus_get_InputWordLength(This,Length) (This)->lpVtbl->get_InputWordLength(This,Length)
12539#define ISpeechVoiceStatus_get_InputSentencePosition(This,Position) (This)->lpVtbl->get_InputSentencePosition(This,Position)
12540#define ISpeechVoiceStatus_get_InputSentenceLength(This,Length) (This)->lpVtbl->get_InputSentenceLength(This,Length)
12541#define ISpeechVoiceStatus_get_LastBookmark(This,Bookmark) (This)->lpVtbl->get_LastBookmark(This,Bookmark)
12542#define ISpeechVoiceStatus_get_LastBookmarkId(This,BookmarkId) (This)->lpVtbl->get_LastBookmarkId(This,BookmarkId)
12543#define ISpeechVoiceStatus_get_PhonemeId(This,PhoneId) (This)->lpVtbl->get_PhonemeId(This,PhoneId)
12544#define ISpeechVoiceStatus_get_VisemeId(This,VisemeId) (This)->lpVtbl->get_VisemeId(This,VisemeId)
12545#else
12546/*** IUnknown methods ***/
12547static inline HRESULT ISpeechVoiceStatus_QueryInterface(ISpeechVoiceStatus* This,REFIID riid,void **ppvObject) {
12548    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12549}
12550static inline ULONG ISpeechVoiceStatus_AddRef(ISpeechVoiceStatus* This) {
12551    return This->lpVtbl->AddRef(This);
12552}
12553static inline ULONG ISpeechVoiceStatus_Release(ISpeechVoiceStatus* This) {
12554    return This->lpVtbl->Release(This);
12555}
12556/*** IDispatch methods ***/
12557static inline HRESULT ISpeechVoiceStatus_GetTypeInfoCount(ISpeechVoiceStatus* This,UINT *pctinfo) {
12558    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12559}
12560static inline HRESULT ISpeechVoiceStatus_GetTypeInfo(ISpeechVoiceStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12561    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12562}
12563static inline HRESULT ISpeechVoiceStatus_GetIDsOfNames(ISpeechVoiceStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12564    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12565}
12566static inline HRESULT ISpeechVoiceStatus_Invoke(ISpeechVoiceStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12567    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12568}
12569/*** ISpeechVoiceStatus methods ***/
12570static inline HRESULT ISpeechVoiceStatus_get_CurrentStreamNumber(ISpeechVoiceStatus* This,LONG *StreamNumber) {
12571    return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
12572}
12573static inline HRESULT ISpeechVoiceStatus_get_LastStreamNumberQueued(ISpeechVoiceStatus* This,LONG *StreamNumber) {
12574    return This->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber);
12575}
12576static inline HRESULT ISpeechVoiceStatus_get_LastHResult(ISpeechVoiceStatus* This,LONG *HResult) {
12577    return This->lpVtbl->get_LastHResult(This,HResult);
12578}
12579static inline HRESULT ISpeechVoiceStatus_get_RunningState(ISpeechVoiceStatus* This,SpeechRunState *State) {
12580    return This->lpVtbl->get_RunningState(This,State);
12581}
12582static inline HRESULT ISpeechVoiceStatus_get_InputWordPosition(ISpeechVoiceStatus* This,LONG *Position) {
12583    return This->lpVtbl->get_InputWordPosition(This,Position);
12584}
12585static inline HRESULT ISpeechVoiceStatus_get_InputWordLength(ISpeechVoiceStatus* This,LONG *Length) {
12586    return This->lpVtbl->get_InputWordLength(This,Length);
12587}
12588static inline HRESULT ISpeechVoiceStatus_get_InputSentencePosition(ISpeechVoiceStatus* This,LONG *Position) {
12589    return This->lpVtbl->get_InputSentencePosition(This,Position);
12590}
12591static inline HRESULT ISpeechVoiceStatus_get_InputSentenceLength(ISpeechVoiceStatus* This,LONG *Length) {
12592    return This->lpVtbl->get_InputSentenceLength(This,Length);
12593}
12594static inline HRESULT ISpeechVoiceStatus_get_LastBookmark(ISpeechVoiceStatus* This,BSTR *Bookmark) {
12595    return This->lpVtbl->get_LastBookmark(This,Bookmark);
12596}
12597static inline HRESULT ISpeechVoiceStatus_get_LastBookmarkId(ISpeechVoiceStatus* This,LONG *BookmarkId) {
12598    return This->lpVtbl->get_LastBookmarkId(This,BookmarkId);
12599}
12600static inline HRESULT ISpeechVoiceStatus_get_PhonemeId(ISpeechVoiceStatus* This,short *PhoneId) {
12601    return This->lpVtbl->get_PhonemeId(This,PhoneId);
12602}
12603static inline HRESULT ISpeechVoiceStatus_get_VisemeId(ISpeechVoiceStatus* This,short *VisemeId) {
12604    return This->lpVtbl->get_VisemeId(This,VisemeId);
12605}
12606#endif
12607#endif
12608
12609#endif
12610
12611
12612#endif  /* __ISpeechVoiceStatus_INTERFACE_DEFINED__ */
12613
12614typedef enum SpeechVisemeType {
12615    SVP_0 = 0,
12616    SVP_1 = 1,
12617    SVP_2 = 2,
12618    SVP_3 = 3,
12619    SVP_4 = 4,
12620    SVP_5 = 5,
12621    SVP_6 = 6,
12622    SVP_7 = 7,
12623    SVP_8 = 8,
12624    SVP_9 = 9,
12625    SVP_10 = 10,
12626    SVP_11 = 11,
12627    SVP_12 = 12,
12628    SVP_13 = 13,
12629    SVP_14 = 14,
12630    SVP_15 = 15,
12631    SVP_16 = 16,
12632    SVP_17 = 17,
12633    SVP_18 = 18,
12634    SVP_19 = 19,
12635    SVP_20 = 20,
12636    SVP_21 = 21
12637} SpeechVisemeType;
12638typedef enum SpeechVisemeFeature {
12639    SVF_None = 0,
12640    SVF_Stressed = SPVFEATURE_STRESSED,
12641    SVF_Emphasis = SPVFEATURE_EMPHASIS
12642} SpeechVisemeFeature;
12643typedef enum DISPID_SpeechVoiceEvent {
12644    DISPID_SVEStreamStart = 1,
12645    DISPID_SVEStreamEnd = 2,
12646    DISPID_SVEVoiceChange = 3,
12647    DISPID_SVEBookmark = 4,
12648    DISPID_SVEWord = 5,
12649    DISPID_SVEPhoneme = 6,
12650    DISPID_SVESentenceBoundary = 7,
12651    DISPID_SVEViseme = 8,
12652    DISPID_SVEAudioLevel = 9,
12653    DISPID_SVEEnginePrivate = 10
12654} DISPID_SpeechVoiceEvent;
12655typedef enum DISPID_SpeechRecognizer {
12656    DISPID_SRRecognizer = 1,
12657    DISPID_SRAllowAudioInputFormatChangesOnNextSet = 2,
12658    DISPID_SRAudioInput = 3,
12659    DISPID_SRAudioInputStream = 4,
12660    DISPID_SRIsShared = 5,
12661    DISPID_SRState = 6,
12662    DISPID_SRStatus = 7,
12663    DISPID_SRProfile = 8,
12664    DISPID_SREmulateRecognition = 9,
12665    DISPID_SRCreateRecoContext = 10,
12666    DISPID_SRGetFormat = 11,
12667    DISPID_SRSetPropertyNumber = 12,
12668    DISPID_SRGetPropertyNumber = 13,
12669    DISPID_SRSetPropertyString = 14,
12670    DISPID_SRGetPropertyString = 15,
12671    DISPID_SRIsUISupported = 16,
12672    DISPID_SRDisplayUI = 17,
12673    DISPID_SRGetRecognizers = 18,
12674    DISPID_SVGetAudioInputs = 19,
12675    DISPID_SVGetProfiles = 20
12676} DISPID_SpeechRecognizer;
12677typedef enum SpeechRecognizerState {
12678    SRSInactive = SPRST_INACTIVE,
12679    SRSActive = SPRST_ACTIVE,
12680    SRSActiveAlways = SPRST_ACTIVE_ALWAYS,
12681    SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE
12682} SpeechRecognizerState;
12683typedef enum SpeechDisplayAttributes {
12684    SDA_No_Trailing_Space = 0,
12685    SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE,
12686    SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES,
12687    SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES
12688} SpeechDisplayAttributes;
12689typedef enum SpeechFormatType {
12690    SFTInput = SPWF_INPUT,
12691    SFTSREngine = SPWF_SRENGINE
12692} SpeechFormatType;
12693typedef enum DISPID_SpeechRecognizerStatus {
12694    DISPID_SRSAudioStatus = 1,
12695    DISPID_SRSCurrentStreamPosition = 2,
12696    DISPID_SRSCurrentStreamNumber = 3,
12697    DISPID_SRSNumberOfActiveRules = 4,
12698    DISPID_SRSClsidEngine = 5,
12699    DISPID_SRSSupportedLanguages = 6
12700} DISPID_SpeechRecognizerStatus;
12701typedef enum DISPID_SpeechRecoContext {
12702    DISPID_SRCRecognizer = 1,
12703    DISPID_SRCAudioInInterferenceStatus = 2,
12704    DISPID_SRCRequestedUIType = 3,
12705    DISPID_SRCVoice = 4,
12706    DISPID_SRAllowVoiceFormatMatchingOnNextSet = 5,
12707    DISPID_SRCVoicePurgeEvent = 6,
12708    DISPID_SRCEventInterests = 7,
12709    DISPID_SRCCmdMaxAlternates = 8,
12710    DISPID_SRCState = 9,
12711    DISPID_SRCRetainedAudio = 10,
12712    DISPID_SRCRetainedAudioFormat = 11,
12713    DISPID_SRCPause = 12,
12714    DISPID_SRCResume = 13,
12715    DISPID_SRCCreateGrammar = 14,
12716    DISPID_SRCCreateResultFromMemory = 15,
12717    DISPID_SRCBookmark = 16,
12718    DISPID_SRCSetAdaptationData = 17
12719} DISPID_SpeechRecoContext;
12720typedef enum SpeechRetainedAudioOptions {
12721    SRAONone = SPAO_NONE,
12722    SRAORetainAudio = SPAO_RETAIN_AUDIO
12723} SpeechRetainedAudioOptions;
12724typedef enum SpeechBookmarkOptions {
12725    SBONone = SPBO_NONE,
12726    SBOPause = SPBO_PAUSE
12727} SpeechBookmarkOptions;
12728typedef enum SpeechInterference {
12729    SINone = SPINTERFERENCE_NONE,
12730    SINoise = SPINTERFERENCE_NOISE,
12731    SINoSignal = SPINTERFERENCE_NOSIGNAL,
12732    SITooLoud = SPINTERFERENCE_TOOLOUD,
12733    SITooQuiet = SPINTERFERENCE_TOOQUIET,
12734    SITooFast = SPINTERFERENCE_TOOFAST,
12735    SITooSlow = SPINTERFERENCE_TOOSLOW
12736} SpeechInterference;
12737typedef enum SpeechRecoEvents {
12738    SREStreamEnd = 0x1,
12739    SRESoundStart = 0x2,
12740    SRESoundEnd = 0x4,
12741    SREPhraseStart = 0x8,
12742    SRERecognition = 0x10,
12743    SREHypothesis = 0x20,
12744    SREBookmark = 0x40,
12745    SREPropertyNumChange = 0x80,
12746    SREPropertyStringChange = 0x100,
12747    SREFalseRecognition = 0x200,
12748    SREInterference = 0x400,
12749    SRERequestUI = 0x800,
12750    SREStateChange = 0x1000,
12751    SREAdaptation = 0x2000,
12752    SREStreamStart = 0x4000,
12753    SRERecoOtherContext = 0x8000,
12754    SREAudioLevel = 0x10000,
12755    SREPrivate = 0x40000,
12756    SREAllEvents = 0x5ffff
12757} SpeechRecoEvents;
12758typedef enum SpeechRecoContextState {
12759    SRCS_Disabled = SPCS_DISABLED,
12760    SRCS_Enabled = SPCS_ENABLED
12761} SpeechRecoContextState;
12762typedef enum DISPIDSPRG {
12763    DISPID_SRGId = 1,
12764    DISPID_SRGRecoContext = 2,
12765    DISPID_SRGState = 3,
12766    DISPID_SRGRules = 4,
12767    DISPID_SRGReset = 5,
12768    DISPID_SRGCommit = 6,
12769    DISPID_SRGCmdLoadFromFile = 7,
12770    DISPID_SRGCmdLoadFromObject = 8,
12771    DISPID_SRGCmdLoadFromResource = 9,
12772    DISPID_SRGCmdLoadFromMemory = 10,
12773    DISPID_SRGCmdLoadFromProprietaryGrammar = 11,
12774    DISPID_SRGCmdSetRuleState = 12,
12775    DISPID_SRGCmdSetRuleIdState = 13,
12776    DISPID_SRGDictationLoad = 14,
12777    DISPID_SRGDictationUnload = 15,
12778    DISPID_SRGDictationSetState = 16,
12779    DISPID_SRGSetWordSequenceData = 17,
12780    DISPID_SRGSetTextSelection = 18,
12781    DISPID_SRGIsPronounceable = 19
12782} DISPIDSPRG;
12783typedef enum SpeechLoadOption {
12784    SLOStatic = SPLO_STATIC,
12785    SLODynamic = SPLO_DYNAMIC
12786} SpeechLoadOption;
12787typedef enum SpeechWordPronounceable {
12788    SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
12789    SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
12790    SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE
12791} SpeechWordPronounceable;
12792typedef enum SpeechGrammarState {
12793    SGSEnabled = SPGS_ENABLED,
12794    SGSDisabled = SPGS_DISABLED,
12795    SGSExclusive = SPGS_EXCLUSIVE
12796} SpeechGrammarState;
12797typedef enum SpeechRuleState {
12798    SGDSInactive = SPRS_INACTIVE,
12799    SGDSActive = SPRS_ACTIVE,
12800    SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE
12801} SpeechRuleState;
12802typedef enum SpeechRuleAttributes {
12803    SRATopLevel = SPRAF_TopLevel,
12804    SRADefaultToActive = SPRAF_Active,
12805    SRAExport = SPRAF_Export,
12806    SRAImport = SPRAF_Import,
12807    SRAInterpreter = SPRAF_Interpreter,
12808    SRADynamic = SPRAF_Dynamic
12809} SpeechRuleAttributes;
12810typedef enum SpeechGrammarWordType {
12811    SGDisplay = SPWT_DISPLAY,
12812    SGLexical = SPWT_LEXICAL,
12813    SGPronounciation = SPWT_PRONUNCIATION
12814} SpeechGrammarWordType;
12815typedef enum DISPID_SpeechRecoContextEvents {
12816    DISPID_SRCEStartStream = 1,
12817    DISPID_SRCEEndStream = 2,
12818    DISPID_SRCEBookmark = 3,
12819    DISPID_SRCESoundStart = 4,
12820    DISPID_SRCESoundEnd = 5,
12821    DISPID_SRCEPhraseStart = 6,
12822    DISPID_SRCERecognition = 7,
12823    DISPID_SRCEHypothesis = 8,
12824    DISPID_SRCEPropertyNumberChange = 9,
12825    DISPID_SRCEPropertyStringChange = 10,
12826    DISPID_SRCEFalseRecognition = 11,
12827    DISPID_SRCEInterference = 12,
12828    DISPID_SRCERequestUI = 13,
12829    DISPID_SRCERecognizerStateChange = 14,
12830    DISPID_SRCEAdaptation = 15,
12831    DISPID_SRCERecognitionForOtherContext = 16,
12832    DISPID_SRCEAudioLevel = 17,
12833    DISPID_SRCEEnginePrivate = 18
12834} DISPID_SpeechRecoContextEvents;
12835typedef enum SpeechRecognitionType {
12836    SRTStandard = 0,
12837    SRTAutopause = SPREF_AutoPause,
12838    SRTEmulated = SPREF_Emulated
12839} SpeechRecognitionType;
12840typedef enum DISPID_SpeechGrammarRule {
12841    DISPID_SGRAttributes = 1,
12842    DISPID_SGRInitialState = 2,
12843    DISPID_SGRName = 3,
12844    DISPID_SGRId = 4,
12845    DISPID_SGRClear = 5,
12846    DISPID_SGRAddResource = 6,
12847    DISPID_SGRAddState = 7
12848} DISPID_SpeechGrammarRule;
12849typedef enum DISPID_SpeechGrammarRules {
12850    DISPID_SGRsCount = 1,
12851    DISPID_SGRsDynamic = 2,
12852    DISPID_SGRsAdd = 3,
12853    DISPID_SGRsCommit = 4,
12854    DISPID_SGRsCommitAndSave = 5,
12855    DISPID_SGRsFindRule = 6,
12856    DISPID_SGRsItem = DISPID_VALUE,
12857    DISPID_SGRs_NewEnum = DISPID_NEWENUM
12858} DISPID_SpeechGrammarRules;
12859typedef enum DISPID_SpeechGrammarRuleState {
12860    DISPID_SGRSRule = 1,
12861    DISPID_SGRSTransitions = 2,
12862    DISPID_SGRSAddWordTransition = 3,
12863    DISPID_SGRSAddRuleTransition = 4,
12864    DISPID_SGRSAddSpecialTransition = 5
12865} DISPID_SpeechGrammarRuleState;
12866typedef enum SpeechSpecialTransitionType {
12867    SSTTWildcard = 1,
12868    SSTTDictation = 2,
12869    SSTTTextBuffer = 3
12870} SpeechSpecialTransitionType;
12871typedef enum DISPID_SpeechGrammarRuleStateTransitions {
12872    DISPID_SGRSTsCount = 1,
12873    DISPID_SGRSTsItem = DISPID_VALUE,
12874    DISPID_SGRSTs_NewEnum = DISPID_NEWENUM
12875} DISPID_SpeechGrammarRuleStateTransitions;
12876typedef enum DISPID_SpeechGrammarRuleStateTransition {
12877    DISPID_SGRSTType = 1,
12878    DISPID_SGRSTText = 2,
12879    DISPID_SGRSTRule = 3,
12880    DISPID_SGRSTWeight = 4,
12881    DISPID_SGRSTPropertyName = 5,
12882    DISPID_SGRSTPropertyId = 6,
12883    DISPID_SGRSTPropertyValue = 7,
12884    DISPID_SGRSTNextState = 8
12885} DISPID_SpeechGrammarRuleStateTransition;
12886typedef enum SpeechGrammarRuleStateTransitionType {
12887    SGRSTTEpsilon = 0,
12888    SGRSTTWord = 1,
12889    SGRSTTRule = 2,
12890    SGRSTTDictation = 3,
12891    SGRSTTWildcard = 4,
12892    SGRSTTTextBuffer = 5
12893} SpeechGrammarRuleStateTransitionType;
12894typedef enum DISPIDSPTSI {
12895    DISPIDSPTSI_ActiveOffset = 1,
12896    DISPIDSPTSI_ActiveLength = 2,
12897    DISPIDSPTSI_SelectionOffset = 3,
12898    DISPIDSPTSI_SelectionLength = 4
12899} DISPIDSPTSI;
12900typedef enum DISPID_SpeechRecoResult {
12901    DISPID_SRRRecoContext = 1,
12902    DISPID_SRRTimes = 2,
12903    DISPID_SRRAudioFormat = 3,
12904    DISPID_SRRPhraseInfo = 4,
12905    DISPID_SRRAlternates = 5,
12906    DISPID_SRRAudio = 6,
12907    DISPID_SRRSpeakAudio = 7,
12908    DISPID_SRRSaveToMemory = 8,
12909    DISPID_SRRDiscardResultInfo = 9
12910} DISPID_SpeechRecoResult;
12911typedef enum SpeechDiscardType {
12912    SDTProperty = SPDF_PROPERTY,
12913    SDTReplacement = SPDF_REPLACEMENT,
12914    SDTRule = SPDF_RULE,
12915    SDTDisplayText = SPDF_DISPLAYTEXT,
12916    SDTLexicalForm = SPDF_LEXICALFORM,
12917    SDTPronunciation = SPDF_PRONUNCIATION,
12918    SDTAudio = SPDF_AUDIO,
12919    SDTAlternates = SPDF_ALTERNATES,
12920    SDTAll = SPDF_ALL
12921} SpeechDiscardType;
12922typedef enum DISPID_SpeechPhraseBuilder {
12923    DISPID_SPPBRestorePhraseFromMemory = 1
12924} DISPID_SpeechPhraseBuilder;
12925typedef enum DISPID_SpeechRecoResultTimes {
12926    DISPID_SRRTStreamTime = 1,
12927    DISPID_SRRTLength = 2,
12928    DISPID_SRRTTickCount = 3,
12929    DISPID_SRRTOffsetFromStart = 4
12930} DISPID_SpeechRecoResultTimes;
12931typedef enum DISPID_SpeechPhraseAlternate {
12932    DISPID_SPARecoResult = 1,
12933    DISPID_SPAStartElementInResult = 2,
12934    DISPID_SPANumberOfElementsInResult = 3,
12935    DISPID_SPAPhraseInfo = 4,
12936    DISPID_SPACommit = 5
12937} DISPID_SpeechPhraseAlternate;
12938typedef enum DISPID_SpeechPhraseAlternates {
12939    DISPID_SPAsCount = 1,
12940    DISPID_SPAsItem = DISPID_VALUE,
12941    DISPID_SPAs_NewEnum = DISPID_NEWENUM
12942} DISPID_SpeechPhraseAlternates;
12943typedef enum DISPID_SpeechPhraseInfo {
12944    DISPID_SPILanguageId = 1,
12945    DISPID_SPIGrammarId = 2,
12946    DISPID_SPIStartTime = 3,
12947    DISPID_SPIAudioStreamPosition = 4,
12948    DISPID_SPIAudioSizeBytes = 5,
12949    DISPID_SPIRetainedSizeBytes = 6,
12950    DISPID_SPIAudioSizeTime = 7,
12951    DISPID_SPIRule = 8,
12952    DISPID_SPIProperties = 9,
12953    DISPID_SPIElements = 10,
12954    DISPID_SPIReplacements = 11,
12955    DISPID_SPIEngineId = 12,
12956    DISPID_SPIEnginePrivateData = 13,
12957    DISPID_SPISaveToMemory = 14,
12958    DISPID_SPIGetText = 15,
12959    DISPID_SPIGetDisplayAttributes = 16
12960} DISPID_SpeechPhraseInfo;
12961typedef enum DISPID_SpeechPhraseElement {
12962    DISPID_SPEAudioTimeOffset = 1,
12963    DISPID_SPEAudioSizeTime = 2,
12964    DISPID_SPEAudioStreamOffset = 3,
12965    DISPID_SPEAudioSizeBytes = 4,
12966    DISPID_SPERetainedStreamOffset = 5,
12967    DISPID_SPERetainedSizeBytes = 6,
12968    DISPID_SPEDisplayText = 7,
12969    DISPID_SPELexicalForm = 8,
12970    DISPID_SPEPronunciation = 9,
12971    DISPID_SPEDisplayAttributes = 10,
12972    DISPID_SPERequiredConfidence = 11,
12973    DISPID_SPEActualConfidence = 12,
12974    DISPID_SPEEngineConfidence = 13
12975} DISPID_SpeechPhraseElement;
12976typedef enum SpeechEngineConfidence {
12977    SECLowConfidence = -1,
12978    SECNormalConfidence = 0,
12979    SECHighConfidence = 1
12980} SpeechEngineConfidence;
12981typedef enum DISPID_SpeechPhraseElements {
12982    DISPID_SPEsCount = 1,
12983    DISPID_SPEsItem = DISPID_VALUE,
12984    DISPID_SPEs_NewEnum = DISPID_NEWENUM
12985} DISPID_SpeechPhraseElements;
12986typedef enum DISPID_SpeechPhraseReplacement {
12987    DISPID_SPRDisplayAttributes = 1,
12988    DISPID_SPRText = 2,
12989    DISPID_SPRFirstElement = 3,
12990    DISPID_SPRNumberOfElements = 4
12991} DISPID_SpeechPhraseReplacement;
12992typedef enum DISPID_SpeechPhraseReplacements {
12993    DISPID_SPRsCount = 1,
12994    DISPID_SPRsItem = DISPID_VALUE,
12995    DISPID_SPRs_NewEnum = DISPID_NEWENUM
12996} DISPID_SpeechPhraseReplacements;
12997typedef enum DISPID_SpeechPhraseProperty {
12998    DISPID_SPPName = 1,
12999    DISPID_SPPId = 2,
13000    DISPID_SPPValue = 3,
13001    DISPID_SPPFirstElement = 4,
13002    DISPID_SPPNumberOfElements = 5,
13003    DISPID_SPPEngineConfidence = 6,
13004    DISPID_SPPConfidence = 7,
13005    DISPID_SPPParent = 8,
13006    DISPID_SPPChildren = 9
13007} DISPID_SpeechPhraseProperty;
13008typedef enum DISPID_SpeechPhraseProperties {
13009    DISPID_SPPsCount = 1,
13010    DISPID_SPPsItem = DISPID_VALUE,
13011    DISPID_SPPs_NewEnum = DISPID_NEWENUM
13012} DISPID_SpeechPhraseProperties;
13013typedef enum DISPID_SpeechPhraseRule {
13014    DISPID_SPRuleName = 1,
13015    DISPID_SPRuleId = 2,
13016    DISPID_SPRuleFirstElement = 3,
13017    DISPID_SPRuleNumberOfElements = 4,
13018    DISPID_SPRuleParent = 5,
13019    DISPID_SPRuleChildren = 6,
13020    DISPID_SPRuleConfidence = 7,
13021    DISPID_SPRuleEngineConfidence = 8
13022} DISPID_SpeechPhraseRule;
13023typedef enum DISPID_SpeechPhraseRules {
13024    DISPID_SPRulesCount = 1,
13025    DISPID_SPRulesItem = DISPID_VALUE,
13026    DISPID_SPRules_NewEnum = DISPID_NEWENUM
13027} DISPID_SpeechPhraseRules;
13028typedef enum DISPID_SpeechLexicon {
13029    DISPID_SLGenerationId = 1,
13030    DISPID_SLGetWords = 2,
13031    DISPID_SLAddPronunciation = 3,
13032    DISPID_SLAddPronunciationByPhoneIds = 4,
13033    DISPID_SLRemovePronunciation = 5,
13034    DISPID_SLRemovePronunciationByPhoneIds = 6,
13035    DISPID_SLGetPronunciations = 7,
13036    DISPID_SLGetGenerationChange = 8
13037} DISPID_SpeechLexicon;
13038typedef enum SpeechLexiconType {
13039    SLTUser = eLEXTYPE_USER,
13040    SLTApp = eLEXTYPE_APP
13041} SpeechLexiconType;
13042typedef enum SpeechPartOfSpeech {
13043    SPSNotOverriden = SPPS_NotOverriden,
13044    SPSUnknown = SPPS_Unknown,
13045    SPSNoun = SPPS_Noun,
13046    SPSVerb = SPPS_Verb,
13047    SPSModifier = SPPS_Modifier,
13048    SPSFunction = SPPS_Function,
13049    SPSInterjection = SPPS_Interjection
13050} SpeechPartOfSpeech;
13051typedef enum DISPID_SpeechLexiconWords {
13052    DISPID_SLWsCount = 1,
13053    DISPID_SLWsItem = DISPID_VALUE,
13054    DISPID_SLWs_NewEnum = DISPID_NEWENUM
13055} DISPID_SpeechLexiconWords;
13056typedef enum SpeechWordType {
13057    SWTAdded = eWORDTYPE_ADDED,
13058    SWTDeleted = eWORDTYPE_DELETED
13059} SpeechWordType;
13060typedef enum DISPID_SpeechLexiconWord {
13061    DISPID_SLWLangId = 1,
13062    DISPID_SLWType = 2,
13063    DISPID_SLWWord = 3,
13064    DISPID_SLWPronunciations = 4
13065} DISPID_SpeechLexiconWord;
13066typedef enum DISPID_SpeechLexiconProns {
13067    DISPID_SLPsCount = 1,
13068    DISPID_SLPsItem = DISPID_VALUE,
13069    DISPID_SLPs_NewEnum = DISPID_NEWENUM
13070} DISPID_SpeechLexiconProns;
13071typedef enum DISPID_SpeechLexiconPronunciation {
13072    DISPID_SLPType = 1,
13073    DISPID_SLPLangId = 2,
13074    DISPID_SLPPartOfSpeech = 3,
13075    DISPID_SLPPhoneIds = 4,
13076    DISPID_SLPSymbolic = 5
13077} DISPID_SpeechLexiconPronunciation;
13078typedef enum DISPID_SpeechPhoneConverter {
13079    DISPID_SPCLangId = 1,
13080    DISPID_SPCPhoneToId = 2,
13081    DISPID_SPCIdToPhone = 3
13082} DISPID_SpeechPhoneConverter;
13083/*****************************************************************************
13084 * _ISpeechVoiceEvents dispinterface
13085 */
13086#ifndef ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
13087#define ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
13088
13089DEFINE_GUID(DIID__ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8);
13090#if defined(__cplusplus) && !defined(CINTERFACE)
13091MIDL_INTERFACE("a372acd1-3bef-4bbd-8ffb-cb3e2b416af8")
13092_ISpeechVoiceEvents : public IDispatch
13093{
13094};
13095#ifdef __CRT_UUID_DECL
13096__CRT_UUID_DECL(_ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8)
13097#endif
13098#else
13099typedef struct _ISpeechVoiceEventsVtbl {
13100    BEGIN_INTERFACE
13101
13102    /*** IUnknown methods ***/
13103    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13104        _ISpeechVoiceEvents *This,
13105        REFIID riid,
13106        void **ppvObject);
13107
13108    ULONG (STDMETHODCALLTYPE *AddRef)(
13109        _ISpeechVoiceEvents *This);
13110
13111    ULONG (STDMETHODCALLTYPE *Release)(
13112        _ISpeechVoiceEvents *This);
13113
13114    /*** IDispatch methods ***/
13115    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13116        _ISpeechVoiceEvents *This,
13117        UINT *pctinfo);
13118
13119    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13120        _ISpeechVoiceEvents *This,
13121        UINT iTInfo,
13122        LCID lcid,
13123        ITypeInfo **ppTInfo);
13124
13125    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13126        _ISpeechVoiceEvents *This,
13127        REFIID riid,
13128        LPOLESTR *rgszNames,
13129        UINT cNames,
13130        LCID lcid,
13131        DISPID *rgDispId);
13132
13133    HRESULT (STDMETHODCALLTYPE *Invoke)(
13134        _ISpeechVoiceEvents *This,
13135        DISPID dispIdMember,
13136        REFIID riid,
13137        LCID lcid,
13138        WORD wFlags,
13139        DISPPARAMS *pDispParams,
13140        VARIANT *pVarResult,
13141        EXCEPINFO *pExcepInfo,
13142        UINT *puArgErr);
13143
13144    END_INTERFACE
13145} _ISpeechVoiceEventsVtbl;
13146
13147interface _ISpeechVoiceEvents {
13148    CONST_VTBL _ISpeechVoiceEventsVtbl* lpVtbl;
13149};
13150
13151#ifdef COBJMACROS
13152#ifndef WIDL_C_INLINE_WRAPPERS
13153/*** IUnknown methods ***/
13154#define _ISpeechVoiceEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13155#define _ISpeechVoiceEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
13156#define _ISpeechVoiceEvents_Release(This) (This)->lpVtbl->Release(This)
13157/*** IDispatch methods ***/
13158#define _ISpeechVoiceEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13159#define _ISpeechVoiceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13160#define _ISpeechVoiceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13161#define _ISpeechVoiceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13162#else
13163/*** IUnknown methods ***/
13164static inline HRESULT _ISpeechVoiceEvents_QueryInterface(_ISpeechVoiceEvents* This,REFIID riid,void **ppvObject) {
13165    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13166}
13167static inline ULONG _ISpeechVoiceEvents_AddRef(_ISpeechVoiceEvents* This) {
13168    return This->lpVtbl->AddRef(This);
13169}
13170static inline ULONG _ISpeechVoiceEvents_Release(_ISpeechVoiceEvents* This) {
13171    return This->lpVtbl->Release(This);
13172}
13173/*** IDispatch methods ***/
13174static inline HRESULT _ISpeechVoiceEvents_GetTypeInfoCount(_ISpeechVoiceEvents* This,UINT *pctinfo) {
13175    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13176}
13177static inline HRESULT _ISpeechVoiceEvents_GetTypeInfo(_ISpeechVoiceEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13178    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13179}
13180static inline HRESULT _ISpeechVoiceEvents_GetIDsOfNames(_ISpeechVoiceEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13181    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13182}
13183static inline HRESULT _ISpeechVoiceEvents_Invoke(_ISpeechVoiceEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13184    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13185}
13186#endif
13187#endif
13188
13189#endif
13190
13191#endif  /* ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__ */
13192
13193/*****************************************************************************
13194 * ISpeechRecognizer interface
13195 */
13196#ifndef __ISpeechRecognizer_INTERFACE_DEFINED__
13197#define __ISpeechRecognizer_INTERFACE_DEFINED__
13198
13199DEFINE_GUID(IID_ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c);
13200#if defined(__cplusplus) && !defined(CINTERFACE)
13201MIDL_INTERFACE("2d5f1c0c-bd75-4b08-9478-3b11fea2586c")
13202ISpeechRecognizer : public IDispatch
13203{
13204    virtual HRESULT STDMETHODCALLTYPE putref_Recognizer(
13205        ISpeechObjectToken *Recognizer) = 0;
13206
13207    virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
13208        ISpeechObjectToken **Recognizer) = 0;
13209
13210    virtual HRESULT STDMETHODCALLTYPE put_AllowAudioInputFormatChangesOnNextSet(
13211        VARIANT_BOOL Allow) = 0;
13212
13213    virtual HRESULT STDMETHODCALLTYPE get_AllowAudioInputFormatChangesOnNextSet(
13214        VARIANT_BOOL *Allow) = 0;
13215
13216    virtual HRESULT STDMETHODCALLTYPE putref_AudioInput(
13217        ISpeechObjectToken *AudioInput = 0) = 0;
13218
13219    virtual HRESULT STDMETHODCALLTYPE get_AudioInput(
13220        ISpeechObjectToken **AudioInput) = 0;
13221
13222    virtual HRESULT STDMETHODCALLTYPE putref_AudioInputStream(
13223        ISpeechBaseStream *AudioInputStream = 0) = 0;
13224
13225    virtual HRESULT STDMETHODCALLTYPE get_AudioInputStream(
13226        ISpeechBaseStream **AudioInputStream) = 0;
13227
13228    virtual HRESULT STDMETHODCALLTYPE get_IsShared(
13229        VARIANT_BOOL *Shared) = 0;
13230
13231    virtual HRESULT STDMETHODCALLTYPE put_State(
13232        SpeechRecognizerState State) = 0;
13233
13234    virtual HRESULT STDMETHODCALLTYPE get_State(
13235        SpeechRecognizerState *State) = 0;
13236
13237    virtual HRESULT STDMETHODCALLTYPE get_Status(
13238        ISpeechRecognizerStatus **Status) = 0;
13239
13240    virtual HRESULT STDMETHODCALLTYPE putref_Profile(
13241        ISpeechObjectToken *Profile = 0) = 0;
13242
13243    virtual HRESULT STDMETHODCALLTYPE get_Profile(
13244        ISpeechObjectToken **Profile) = 0;
13245
13246    virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
13247        VARIANT TextElements,
13248        VARIANT *ElementDisplayAttributes = 0,
13249        LONG LanguageId = 0) = 0;
13250
13251    virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
13252        ISpeechRecoContext **NewContext) = 0;
13253
13254    virtual HRESULT STDMETHODCALLTYPE GetFormat(
13255        SpeechFormatType Type,
13256        ISpeechAudioFormat **Format) = 0;
13257
13258    virtual HRESULT STDMETHODCALLTYPE SetPropertyNumber(
13259        const BSTR Name,
13260        LONG Value,
13261        VARIANT_BOOL *Supported) = 0;
13262
13263    virtual HRESULT STDMETHODCALLTYPE GetPropertyNumber(
13264        const BSTR Name,
13265        LONG *Value,
13266        VARIANT_BOOL *Supported) = 0;
13267
13268    virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
13269        const BSTR Name,
13270        const BSTR Value,
13271        VARIANT_BOOL *Supported) = 0;
13272
13273    virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
13274        const BSTR Name,
13275        BSTR *Value,
13276        VARIANT_BOOL *Supported) = 0;
13277
13278    virtual HRESULT STDMETHODCALLTYPE IsUISupported(
13279        const BSTR TypeOfUI,
13280        const VARIANT *ExtraData,
13281        VARIANT_BOOL *Supported) = 0;
13282
13283    virtual HRESULT STDMETHODCALLTYPE DisplayUI(
13284        LONG hWndParent,
13285        BSTR Title,
13286        const BSTR TypeOfUI,
13287        const VARIANT *ExtraData = 0) = 0;
13288
13289    virtual HRESULT STDMETHODCALLTYPE GetRecognizers(
13290        BSTR RequiredAttributes,
13291        BSTR OptionalAttributes,
13292        ISpeechObjectTokens **ObjectTokens) = 0;
13293
13294    virtual HRESULT STDMETHODCALLTYPE GetAudioInputs(
13295        BSTR RequiredAttributes,
13296        BSTR OptionalAttributes,
13297        ISpeechObjectTokens **ObjectTokens) = 0;
13298
13299    virtual HRESULT STDMETHODCALLTYPE GetProfiles(
13300        BSTR RequiredAttributes,
13301        BSTR OptionalAttributes,
13302        ISpeechObjectTokens **ObjectTokens) = 0;
13303
13304};
13305#ifdef __CRT_UUID_DECL
13306__CRT_UUID_DECL(ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c)
13307#endif
13308#else
13309typedef struct ISpeechRecognizerVtbl {
13310    BEGIN_INTERFACE
13311
13312    /*** IUnknown methods ***/
13313    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13314        ISpeechRecognizer *This,
13315        REFIID riid,
13316        void **ppvObject);
13317
13318    ULONG (STDMETHODCALLTYPE *AddRef)(
13319        ISpeechRecognizer *This);
13320
13321    ULONG (STDMETHODCALLTYPE *Release)(
13322        ISpeechRecognizer *This);
13323
13324    /*** IDispatch methods ***/
13325    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13326        ISpeechRecognizer *This,
13327        UINT *pctinfo);
13328
13329    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13330        ISpeechRecognizer *This,
13331        UINT iTInfo,
13332        LCID lcid,
13333        ITypeInfo **ppTInfo);
13334
13335    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13336        ISpeechRecognizer *This,
13337        REFIID riid,
13338        LPOLESTR *rgszNames,
13339        UINT cNames,
13340        LCID lcid,
13341        DISPID *rgDispId);
13342
13343    HRESULT (STDMETHODCALLTYPE *Invoke)(
13344        ISpeechRecognizer *This,
13345        DISPID dispIdMember,
13346        REFIID riid,
13347        LCID lcid,
13348        WORD wFlags,
13349        DISPPARAMS *pDispParams,
13350        VARIANT *pVarResult,
13351        EXCEPINFO *pExcepInfo,
13352        UINT *puArgErr);
13353
13354    /*** ISpeechRecognizer methods ***/
13355    HRESULT (STDMETHODCALLTYPE *putref_Recognizer)(
13356        ISpeechRecognizer *This,
13357        ISpeechObjectToken *Recognizer);
13358
13359    HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
13360        ISpeechRecognizer *This,
13361        ISpeechObjectToken **Recognizer);
13362
13363    HRESULT (STDMETHODCALLTYPE *put_AllowAudioInputFormatChangesOnNextSet)(
13364        ISpeechRecognizer *This,
13365        VARIANT_BOOL Allow);
13366
13367    HRESULT (STDMETHODCALLTYPE *get_AllowAudioInputFormatChangesOnNextSet)(
13368        ISpeechRecognizer *This,
13369        VARIANT_BOOL *Allow);
13370
13371    HRESULT (STDMETHODCALLTYPE *putref_AudioInput)(
13372        ISpeechRecognizer *This,
13373        ISpeechObjectToken *AudioInput);
13374
13375    HRESULT (STDMETHODCALLTYPE *get_AudioInput)(
13376        ISpeechRecognizer *This,
13377        ISpeechObjectToken **AudioInput);
13378
13379    HRESULT (STDMETHODCALLTYPE *putref_AudioInputStream)(
13380        ISpeechRecognizer *This,
13381        ISpeechBaseStream *AudioInputStream);
13382
13383    HRESULT (STDMETHODCALLTYPE *get_AudioInputStream)(
13384        ISpeechRecognizer *This,
13385        ISpeechBaseStream **AudioInputStream);
13386
13387    HRESULT (STDMETHODCALLTYPE *get_IsShared)(
13388        ISpeechRecognizer *This,
13389        VARIANT_BOOL *Shared);
13390
13391    HRESULT (STDMETHODCALLTYPE *put_State)(
13392        ISpeechRecognizer *This,
13393        SpeechRecognizerState State);
13394
13395    HRESULT (STDMETHODCALLTYPE *get_State)(
13396        ISpeechRecognizer *This,
13397        SpeechRecognizerState *State);
13398
13399    HRESULT (STDMETHODCALLTYPE *get_Status)(
13400        ISpeechRecognizer *This,
13401        ISpeechRecognizerStatus **Status);
13402
13403    HRESULT (STDMETHODCALLTYPE *putref_Profile)(
13404        ISpeechRecognizer *This,
13405        ISpeechObjectToken *Profile);
13406
13407    HRESULT (STDMETHODCALLTYPE *get_Profile)(
13408        ISpeechRecognizer *This,
13409        ISpeechObjectToken **Profile);
13410
13411    HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
13412        ISpeechRecognizer *This,
13413        VARIANT TextElements,
13414        VARIANT *ElementDisplayAttributes,
13415        LONG LanguageId);
13416
13417    HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
13418        ISpeechRecognizer *This,
13419        ISpeechRecoContext **NewContext);
13420
13421    HRESULT (STDMETHODCALLTYPE *GetFormat)(
13422        ISpeechRecognizer *This,
13423        SpeechFormatType Type,
13424        ISpeechAudioFormat **Format);
13425
13426    HRESULT (STDMETHODCALLTYPE *SetPropertyNumber)(
13427        ISpeechRecognizer *This,
13428        const BSTR Name,
13429        LONG Value,
13430        VARIANT_BOOL *Supported);
13431
13432    HRESULT (STDMETHODCALLTYPE *GetPropertyNumber)(
13433        ISpeechRecognizer *This,
13434        const BSTR Name,
13435        LONG *Value,
13436        VARIANT_BOOL *Supported);
13437
13438    HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
13439        ISpeechRecognizer *This,
13440        const BSTR Name,
13441        const BSTR Value,
13442        VARIANT_BOOL *Supported);
13443
13444    HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
13445        ISpeechRecognizer *This,
13446        const BSTR Name,
13447        BSTR *Value,
13448        VARIANT_BOOL *Supported);
13449
13450    HRESULT (STDMETHODCALLTYPE *IsUISupported)(
13451        ISpeechRecognizer *This,
13452        const BSTR TypeOfUI,
13453        const VARIANT *ExtraData,
13454        VARIANT_BOOL *Supported);
13455
13456    HRESULT (STDMETHODCALLTYPE *DisplayUI)(
13457        ISpeechRecognizer *This,
13458        LONG hWndParent,
13459        BSTR Title,
13460        const BSTR TypeOfUI,
13461        const VARIANT *ExtraData);
13462
13463    HRESULT (STDMETHODCALLTYPE *GetRecognizers)(
13464        ISpeechRecognizer *This,
13465        BSTR RequiredAttributes,
13466        BSTR OptionalAttributes,
13467        ISpeechObjectTokens **ObjectTokens);
13468
13469    HRESULT (STDMETHODCALLTYPE *GetAudioInputs)(
13470        ISpeechRecognizer *This,
13471        BSTR RequiredAttributes,
13472        BSTR OptionalAttributes,
13473        ISpeechObjectTokens **ObjectTokens);
13474
13475    HRESULT (STDMETHODCALLTYPE *GetProfiles)(
13476        ISpeechRecognizer *This,
13477        BSTR RequiredAttributes,
13478        BSTR OptionalAttributes,
13479        ISpeechObjectTokens **ObjectTokens);
13480
13481    END_INTERFACE
13482} ISpeechRecognizerVtbl;
13483
13484interface ISpeechRecognizer {
13485    CONST_VTBL ISpeechRecognizerVtbl* lpVtbl;
13486};
13487
13488#ifdef COBJMACROS
13489#ifndef WIDL_C_INLINE_WRAPPERS
13490/*** IUnknown methods ***/
13491#define ISpeechRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13492#define ISpeechRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
13493#define ISpeechRecognizer_Release(This) (This)->lpVtbl->Release(This)
13494/*** IDispatch methods ***/
13495#define ISpeechRecognizer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13496#define ISpeechRecognizer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13497#define ISpeechRecognizer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13498#define ISpeechRecognizer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13499/*** ISpeechRecognizer methods ***/
13500#define ISpeechRecognizer_putref_Recognizer(This,Recognizer) (This)->lpVtbl->putref_Recognizer(This,Recognizer)
13501#define ISpeechRecognizer_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
13502#define ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow)
13503#define ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow)
13504#define ISpeechRecognizer_putref_AudioInput(This,AudioInput) (This)->lpVtbl->putref_AudioInput(This,AudioInput)
13505#define ISpeechRecognizer_get_AudioInput(This,AudioInput) (This)->lpVtbl->get_AudioInput(This,AudioInput)
13506#define ISpeechRecognizer_putref_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->putref_AudioInputStream(This,AudioInputStream)
13507#define ISpeechRecognizer_get_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->get_AudioInputStream(This,AudioInputStream)
13508#define ISpeechRecognizer_get_IsShared(This,Shared) (This)->lpVtbl->get_IsShared(This,Shared)
13509#define ISpeechRecognizer_put_State(This,State) (This)->lpVtbl->put_State(This,State)
13510#define ISpeechRecognizer_get_State(This,State) (This)->lpVtbl->get_State(This,State)
13511#define ISpeechRecognizer_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
13512#define ISpeechRecognizer_putref_Profile(This,Profile) (This)->lpVtbl->putref_Profile(This,Profile)
13513#define ISpeechRecognizer_get_Profile(This,Profile) (This)->lpVtbl->get_Profile(This,Profile)
13514#define ISpeechRecognizer_EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId) (This)->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId)
13515#define ISpeechRecognizer_CreateRecoContext(This,NewContext) (This)->lpVtbl->CreateRecoContext(This,NewContext)
13516#define ISpeechRecognizer_GetFormat(This,Type,Format) (This)->lpVtbl->GetFormat(This,Type,Format)
13517#define ISpeechRecognizer_SetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyNumber(This,Name,Value,Supported)
13518#define ISpeechRecognizer_GetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyNumber(This,Name,Value,Supported)
13519#define ISpeechRecognizer_SetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyString(This,Name,Value,Supported)
13520#define ISpeechRecognizer_GetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyString(This,Name,Value,Supported)
13521#define ISpeechRecognizer_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
13522#define ISpeechRecognizer_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
13523#define ISpeechRecognizer_GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
13524#define ISpeechRecognizer_GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
13525#define ISpeechRecognizer_GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
13526#else
13527/*** IUnknown methods ***/
13528static inline HRESULT ISpeechRecognizer_QueryInterface(ISpeechRecognizer* This,REFIID riid,void **ppvObject) {
13529    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13530}
13531static inline ULONG ISpeechRecognizer_AddRef(ISpeechRecognizer* This) {
13532    return This->lpVtbl->AddRef(This);
13533}
13534static inline ULONG ISpeechRecognizer_Release(ISpeechRecognizer* This) {
13535    return This->lpVtbl->Release(This);
13536}
13537/*** IDispatch methods ***/
13538static inline HRESULT ISpeechRecognizer_GetTypeInfoCount(ISpeechRecognizer* This,UINT *pctinfo) {
13539    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13540}
13541static inline HRESULT ISpeechRecognizer_GetTypeInfo(ISpeechRecognizer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13542    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13543}
13544static inline HRESULT ISpeechRecognizer_GetIDsOfNames(ISpeechRecognizer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13545    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13546}
13547static inline HRESULT ISpeechRecognizer_Invoke(ISpeechRecognizer* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13548    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13549}
13550/*** ISpeechRecognizer methods ***/
13551static inline HRESULT ISpeechRecognizer_putref_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken *Recognizer) {
13552    return This->lpVtbl->putref_Recognizer(This,Recognizer);
13553}
13554static inline HRESULT ISpeechRecognizer_get_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken **Recognizer) {
13555    return This->lpVtbl->get_Recognizer(This,Recognizer);
13556}
13557static inline HRESULT ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL Allow) {
13558    return This->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow);
13559}
13560static inline HRESULT ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL *Allow) {
13561    return This->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow);
13562}
13563static inline HRESULT ISpeechRecognizer_putref_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken *AudioInput) {
13564    return This->lpVtbl->putref_AudioInput(This,AudioInput);
13565}
13566static inline HRESULT ISpeechRecognizer_get_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken **AudioInput) {
13567    return This->lpVtbl->get_AudioInput(This,AudioInput);
13568}
13569static inline HRESULT ISpeechRecognizer_putref_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream *AudioInputStream) {
13570    return This->lpVtbl->putref_AudioInputStream(This,AudioInputStream);
13571}
13572static inline HRESULT ISpeechRecognizer_get_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream **AudioInputStream) {
13573    return This->lpVtbl->get_AudioInputStream(This,AudioInputStream);
13574}
13575static inline HRESULT ISpeechRecognizer_get_IsShared(ISpeechRecognizer* This,VARIANT_BOOL *Shared) {
13576    return This->lpVtbl->get_IsShared(This,Shared);
13577}
13578static inline HRESULT ISpeechRecognizer_put_State(ISpeechRecognizer* This,SpeechRecognizerState State) {
13579    return This->lpVtbl->put_State(This,State);
13580}
13581static inline HRESULT ISpeechRecognizer_get_State(ISpeechRecognizer* This,SpeechRecognizerState *State) {
13582    return This->lpVtbl->get_State(This,State);
13583}
13584static inline HRESULT ISpeechRecognizer_get_Status(ISpeechRecognizer* This,ISpeechRecognizerStatus **Status) {
13585    return This->lpVtbl->get_Status(This,Status);
13586}
13587static inline HRESULT ISpeechRecognizer_putref_Profile(ISpeechRecognizer* This,ISpeechObjectToken *Profile) {
13588    return This->lpVtbl->putref_Profile(This,Profile);
13589}
13590static inline HRESULT ISpeechRecognizer_get_Profile(ISpeechRecognizer* This,ISpeechObjectToken **Profile) {
13591    return This->lpVtbl->get_Profile(This,Profile);
13592}
13593static inline HRESULT ISpeechRecognizer_EmulateRecognition(ISpeechRecognizer* This,VARIANT TextElements,VARIANT *ElementDisplayAttributes,LONG LanguageId) {
13594    return This->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId);
13595}
13596static inline HRESULT ISpeechRecognizer_CreateRecoContext(ISpeechRecognizer* This,ISpeechRecoContext **NewContext) {
13597    return This->lpVtbl->CreateRecoContext(This,NewContext);
13598}
13599static inline HRESULT ISpeechRecognizer_GetFormat(ISpeechRecognizer* This,SpeechFormatType Type,ISpeechAudioFormat **Format) {
13600    return This->lpVtbl->GetFormat(This,Type,Format);
13601}
13602static inline HRESULT ISpeechRecognizer_SetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG Value,VARIANT_BOOL *Supported) {
13603    return This->lpVtbl->SetPropertyNumber(This,Name,Value,Supported);
13604}
13605static inline HRESULT ISpeechRecognizer_GetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG *Value,VARIANT_BOOL *Supported) {
13606    return This->lpVtbl->GetPropertyNumber(This,Name,Value,Supported);
13607}
13608static inline HRESULT ISpeechRecognizer_SetPropertyString(ISpeechRecognizer* This,const BSTR Name,const BSTR Value,VARIANT_BOOL *Supported) {
13609    return This->lpVtbl->SetPropertyString(This,Name,Value,Supported);
13610}
13611static inline HRESULT ISpeechRecognizer_GetPropertyString(ISpeechRecognizer* This,const BSTR Name,BSTR *Value,VARIANT_BOOL *Supported) {
13612    return This->lpVtbl->GetPropertyString(This,Name,Value,Supported);
13613}
13614static inline HRESULT ISpeechRecognizer_IsUISupported(ISpeechRecognizer* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
13615    return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
13616}
13617static inline HRESULT ISpeechRecognizer_DisplayUI(ISpeechRecognizer* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
13618    return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
13619}
13620static inline HRESULT ISpeechRecognizer_GetRecognizers(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
13621    return This->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
13622}
13623static inline HRESULT ISpeechRecognizer_GetAudioInputs(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
13624    return This->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
13625}
13626static inline HRESULT ISpeechRecognizer_GetProfiles(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
13627    return This->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
13628}
13629#endif
13630#endif
13631
13632#endif
13633
13634
13635#endif  /* __ISpeechRecognizer_INTERFACE_DEFINED__ */
13636
13637/*****************************************************************************
13638 * ISpeechRecognizerStatus interface
13639 */
13640#ifndef __ISpeechRecognizerStatus_INTERFACE_DEFINED__
13641#define __ISpeechRecognizerStatus_INTERFACE_DEFINED__
13642
13643DEFINE_GUID(IID_ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c);
13644#if defined(__cplusplus) && !defined(CINTERFACE)
13645MIDL_INTERFACE("bff9e781-53ec-484e-bb8a-0e1b5551e35c")
13646ISpeechRecognizerStatus : public IDispatch
13647{
13648    virtual HRESULT STDMETHODCALLTYPE get_AudioStatus(
13649        ISpeechAudioStatus **AudioStatus) = 0;
13650
13651    virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamPosition(
13652        VARIANT *pCurrentStreamPos) = 0;
13653
13654    virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
13655        LONG *StreamNumber) = 0;
13656
13657    virtual HRESULT STDMETHODCALLTYPE get_NumberOfActiveRules(
13658        LONG *NumberOfActiveRules) = 0;
13659
13660    virtual HRESULT STDMETHODCALLTYPE get_ClsidEngine(
13661        BSTR *ClsidEngine) = 0;
13662
13663    virtual HRESULT STDMETHODCALLTYPE get_SupportedLanguages(
13664        VARIANT *SupportedLanguages) = 0;
13665
13666};
13667#ifdef __CRT_UUID_DECL
13668__CRT_UUID_DECL(ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c)
13669#endif
13670#else
13671typedef struct ISpeechRecognizerStatusVtbl {
13672    BEGIN_INTERFACE
13673
13674    /*** IUnknown methods ***/
13675    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13676        ISpeechRecognizerStatus *This,
13677        REFIID riid,
13678        void **ppvObject);
13679
13680    ULONG (STDMETHODCALLTYPE *AddRef)(
13681        ISpeechRecognizerStatus *This);
13682
13683    ULONG (STDMETHODCALLTYPE *Release)(
13684        ISpeechRecognizerStatus *This);
13685
13686    /*** IDispatch methods ***/
13687    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13688        ISpeechRecognizerStatus *This,
13689        UINT *pctinfo);
13690
13691    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13692        ISpeechRecognizerStatus *This,
13693        UINT iTInfo,
13694        LCID lcid,
13695        ITypeInfo **ppTInfo);
13696
13697    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13698        ISpeechRecognizerStatus *This,
13699        REFIID riid,
13700        LPOLESTR *rgszNames,
13701        UINT cNames,
13702        LCID lcid,
13703        DISPID *rgDispId);
13704
13705    HRESULT (STDMETHODCALLTYPE *Invoke)(
13706        ISpeechRecognizerStatus *This,
13707        DISPID dispIdMember,
13708        REFIID riid,
13709        LCID lcid,
13710        WORD wFlags,
13711        DISPPARAMS *pDispParams,
13712        VARIANT *pVarResult,
13713        EXCEPINFO *pExcepInfo,
13714        UINT *puArgErr);
13715
13716    /*** ISpeechRecognizerStatus methods ***/
13717    HRESULT (STDMETHODCALLTYPE *get_AudioStatus)(
13718        ISpeechRecognizerStatus *This,
13719        ISpeechAudioStatus **AudioStatus);
13720
13721    HRESULT (STDMETHODCALLTYPE *get_CurrentStreamPosition)(
13722        ISpeechRecognizerStatus *This,
13723        VARIANT *pCurrentStreamPos);
13724
13725    HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
13726        ISpeechRecognizerStatus *This,
13727        LONG *StreamNumber);
13728
13729    HRESULT (STDMETHODCALLTYPE *get_NumberOfActiveRules)(
13730        ISpeechRecognizerStatus *This,
13731        LONG *NumberOfActiveRules);
13732
13733    HRESULT (STDMETHODCALLTYPE *get_ClsidEngine)(
13734        ISpeechRecognizerStatus *This,
13735        BSTR *ClsidEngine);
13736
13737    HRESULT (STDMETHODCALLTYPE *get_SupportedLanguages)(
13738        ISpeechRecognizerStatus *This,
13739        VARIANT *SupportedLanguages);
13740
13741    END_INTERFACE
13742} ISpeechRecognizerStatusVtbl;
13743
13744interface ISpeechRecognizerStatus {
13745    CONST_VTBL ISpeechRecognizerStatusVtbl* lpVtbl;
13746};
13747
13748#ifdef COBJMACROS
13749#ifndef WIDL_C_INLINE_WRAPPERS
13750/*** IUnknown methods ***/
13751#define ISpeechRecognizerStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13752#define ISpeechRecognizerStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
13753#define ISpeechRecognizerStatus_Release(This) (This)->lpVtbl->Release(This)
13754/*** IDispatch methods ***/
13755#define ISpeechRecognizerStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13756#define ISpeechRecognizerStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13757#define ISpeechRecognizerStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13758#define ISpeechRecognizerStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13759/*** ISpeechRecognizerStatus methods ***/
13760#define ISpeechRecognizerStatus_get_AudioStatus(This,AudioStatus) (This)->lpVtbl->get_AudioStatus(This,AudioStatus)
13761#define ISpeechRecognizerStatus_get_CurrentStreamPosition(This,pCurrentStreamPos) (This)->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos)
13762#define ISpeechRecognizerStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
13763#define ISpeechRecognizerStatus_get_NumberOfActiveRules(This,NumberOfActiveRules) (This)->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules)
13764#define ISpeechRecognizerStatus_get_ClsidEngine(This,ClsidEngine) (This)->lpVtbl->get_ClsidEngine(This,ClsidEngine)
13765#define ISpeechRecognizerStatus_get_SupportedLanguages(This,SupportedLanguages) (This)->lpVtbl->get_SupportedLanguages(This,SupportedLanguages)
13766#else
13767/*** IUnknown methods ***/
13768static inline HRESULT ISpeechRecognizerStatus_QueryInterface(ISpeechRecognizerStatus* This,REFIID riid,void **ppvObject) {
13769    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13770}
13771static inline ULONG ISpeechRecognizerStatus_AddRef(ISpeechRecognizerStatus* This) {
13772    return This->lpVtbl->AddRef(This);
13773}
13774static inline ULONG ISpeechRecognizerStatus_Release(ISpeechRecognizerStatus* This) {
13775    return This->lpVtbl->Release(This);
13776}
13777/*** IDispatch methods ***/
13778static inline HRESULT ISpeechRecognizerStatus_GetTypeInfoCount(ISpeechRecognizerStatus* This,UINT *pctinfo) {
13779    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13780}
13781static inline HRESULT ISpeechRecognizerStatus_GetTypeInfo(ISpeechRecognizerStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13782    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13783}
13784static inline HRESULT ISpeechRecognizerStatus_GetIDsOfNames(ISpeechRecognizerStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13785    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13786}
13787static inline HRESULT ISpeechRecognizerStatus_Invoke(ISpeechRecognizerStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13788    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13789}
13790/*** ISpeechRecognizerStatus methods ***/
13791static inline HRESULT ISpeechRecognizerStatus_get_AudioStatus(ISpeechRecognizerStatus* This,ISpeechAudioStatus **AudioStatus) {
13792    return This->lpVtbl->get_AudioStatus(This,AudioStatus);
13793}
13794static inline HRESULT ISpeechRecognizerStatus_get_CurrentStreamPosition(ISpeechRecognizerStatus* This,VARIANT *pCurrentStreamPos) {
13795    return This->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos);
13796}
13797static inline HRESULT ISpeechRecognizerStatus_get_CurrentStreamNumber(ISpeechRecognizerStatus* This,LONG *StreamNumber) {
13798    return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
13799}
13800static inline HRESULT ISpeechRecognizerStatus_get_NumberOfActiveRules(ISpeechRecognizerStatus* This,LONG *NumberOfActiveRules) {
13801    return This->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules);
13802}
13803static inline HRESULT ISpeechRecognizerStatus_get_ClsidEngine(ISpeechRecognizerStatus* This,BSTR *ClsidEngine) {
13804    return This->lpVtbl->get_ClsidEngine(This,ClsidEngine);
13805}
13806static inline HRESULT ISpeechRecognizerStatus_get_SupportedLanguages(ISpeechRecognizerStatus* This,VARIANT *SupportedLanguages) {
13807    return This->lpVtbl->get_SupportedLanguages(This,SupportedLanguages);
13808}
13809#endif
13810#endif
13811
13812#endif
13813
13814
13815#endif  /* __ISpeechRecognizerStatus_INTERFACE_DEFINED__ */
13816
13817/*****************************************************************************
13818 * ISpeechRecoContext interface
13819 */
13820#ifndef __ISpeechRecoContext_INTERFACE_DEFINED__
13821#define __ISpeechRecoContext_INTERFACE_DEFINED__
13822
13823DEFINE_GUID(IID_ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8);
13824#if defined(__cplusplus) && !defined(CINTERFACE)
13825MIDL_INTERFACE("580aa49d-7e1e-4809-b8e2-57da806104b8")
13826ISpeechRecoContext : public IDispatch
13827{
13828    virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
13829        ISpeechRecognizer **Recognizer) = 0;
13830
13831    virtual HRESULT STDMETHODCALLTYPE get_AudioInputInterferenceStatus(
13832        SpeechInterference *Interference) = 0;
13833
13834    virtual HRESULT STDMETHODCALLTYPE get_RequestedUIType(
13835        BSTR *UIType) = 0;
13836
13837    virtual HRESULT STDMETHODCALLTYPE putref_Voice(
13838        ISpeechVoice *Voice) = 0;
13839
13840    virtual HRESULT STDMETHODCALLTYPE get_Voice(
13841        ISpeechVoice **Voice) = 0;
13842
13843    virtual HRESULT STDMETHODCALLTYPE put_AllowVoiceFormatMatchingOnNextSet(
13844        VARIANT_BOOL Allow) = 0;
13845
13846    virtual HRESULT STDMETHODCALLTYPE get_AllowVoiceFormatMatchingOnNextSet(
13847        VARIANT_BOOL *pAllow) = 0;
13848
13849    virtual HRESULT STDMETHODCALLTYPE put_VoicePurgeEvent(
13850        SpeechRecoEvents EventInterest) = 0;
13851
13852    virtual HRESULT STDMETHODCALLTYPE get_VoicePurgeEvent(
13853        SpeechRecoEvents *EventInterest) = 0;
13854
13855    virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
13856        SpeechRecoEvents EventInterest) = 0;
13857
13858    virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
13859        SpeechRecoEvents *EventInterest) = 0;
13860
13861    virtual HRESULT STDMETHODCALLTYPE put_CmdMaxAlternates(
13862        LONG MaxAlternates) = 0;
13863
13864    virtual HRESULT STDMETHODCALLTYPE get_CmdMaxAlternates(
13865        LONG *MaxAlternates) = 0;
13866
13867    virtual HRESULT STDMETHODCALLTYPE put_State(
13868        SpeechRecoContextState State) = 0;
13869
13870    virtual HRESULT STDMETHODCALLTYPE get_State(
13871        SpeechRecoContextState *State) = 0;
13872
13873    virtual HRESULT STDMETHODCALLTYPE put_RetainedAudio(
13874        SpeechRetainedAudioOptions Option) = 0;
13875
13876    virtual HRESULT STDMETHODCALLTYPE get_RetainedAudio(
13877        SpeechRetainedAudioOptions *Option) = 0;
13878
13879    virtual HRESULT STDMETHODCALLTYPE putref_RetainedAudioFormat(
13880        ISpeechAudioFormat *Format) = 0;
13881
13882    virtual HRESULT STDMETHODCALLTYPE get_RetainedAudioFormat(
13883        ISpeechAudioFormat **Format) = 0;
13884
13885    virtual HRESULT STDMETHODCALLTYPE Pause(
13886        ) = 0;
13887
13888    virtual HRESULT STDMETHODCALLTYPE Resume(
13889        ) = 0;
13890
13891    virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
13892        VARIANT GrammarId,
13893        ISpeechRecoGrammar **Grammar) = 0;
13894
13895    virtual HRESULT STDMETHODCALLTYPE CreateResultFromMemory(
13896        VARIANT *ResultBlock,
13897        ISpeechRecoResult **Result) = 0;
13898
13899    virtual HRESULT STDMETHODCALLTYPE Bookmark(
13900        SpeechBookmarkOptions Options,
13901        VARIANT StreamPos,
13902        VARIANT BookmarkId) = 0;
13903
13904    virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
13905        BSTR AdaptationString) = 0;
13906
13907};
13908#ifdef __CRT_UUID_DECL
13909__CRT_UUID_DECL(ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8)
13910#endif
13911#else
13912typedef struct ISpeechRecoContextVtbl {
13913    BEGIN_INTERFACE
13914
13915    /*** IUnknown methods ***/
13916    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13917        ISpeechRecoContext *This,
13918        REFIID riid,
13919        void **ppvObject);
13920
13921    ULONG (STDMETHODCALLTYPE *AddRef)(
13922        ISpeechRecoContext *This);
13923
13924    ULONG (STDMETHODCALLTYPE *Release)(
13925        ISpeechRecoContext *This);
13926
13927    /*** IDispatch methods ***/
13928    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13929        ISpeechRecoContext *This,
13930        UINT *pctinfo);
13931
13932    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13933        ISpeechRecoContext *This,
13934        UINT iTInfo,
13935        LCID lcid,
13936        ITypeInfo **ppTInfo);
13937
13938    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13939        ISpeechRecoContext *This,
13940        REFIID riid,
13941        LPOLESTR *rgszNames,
13942        UINT cNames,
13943        LCID lcid,
13944        DISPID *rgDispId);
13945
13946    HRESULT (STDMETHODCALLTYPE *Invoke)(
13947        ISpeechRecoContext *This,
13948        DISPID dispIdMember,
13949        REFIID riid,
13950        LCID lcid,
13951        WORD wFlags,
13952        DISPPARAMS *pDispParams,
13953        VARIANT *pVarResult,
13954        EXCEPINFO *pExcepInfo,
13955        UINT *puArgErr);
13956
13957    /*** ISpeechRecoContext methods ***/
13958    HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
13959        ISpeechRecoContext *This,
13960        ISpeechRecognizer **Recognizer);
13961
13962    HRESULT (STDMETHODCALLTYPE *get_AudioInputInterferenceStatus)(
13963        ISpeechRecoContext *This,
13964        SpeechInterference *Interference);
13965
13966    HRESULT (STDMETHODCALLTYPE *get_RequestedUIType)(
13967        ISpeechRecoContext *This,
13968        BSTR *UIType);
13969
13970    HRESULT (STDMETHODCALLTYPE *putref_Voice)(
13971        ISpeechRecoContext *This,
13972        ISpeechVoice *Voice);
13973
13974    HRESULT (STDMETHODCALLTYPE *get_Voice)(
13975        ISpeechRecoContext *This,
13976        ISpeechVoice **Voice);
13977
13978    HRESULT (STDMETHODCALLTYPE *put_AllowVoiceFormatMatchingOnNextSet)(
13979        ISpeechRecoContext *This,
13980        VARIANT_BOOL Allow);
13981
13982    HRESULT (STDMETHODCALLTYPE *get_AllowVoiceFormatMatchingOnNextSet)(
13983        ISpeechRecoContext *This,
13984        VARIANT_BOOL *pAllow);
13985
13986    HRESULT (STDMETHODCALLTYPE *put_VoicePurgeEvent)(
13987        ISpeechRecoContext *This,
13988        SpeechRecoEvents EventInterest);
13989
13990    HRESULT (STDMETHODCALLTYPE *get_VoicePurgeEvent)(
13991        ISpeechRecoContext *This,
13992        SpeechRecoEvents *EventInterest);
13993
13994    HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
13995        ISpeechRecoContext *This,
13996        SpeechRecoEvents EventInterest);
13997
13998    HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
13999        ISpeechRecoContext *This,
14000        SpeechRecoEvents *EventInterest);
14001
14002    HRESULT (STDMETHODCALLTYPE *put_CmdMaxAlternates)(
14003        ISpeechRecoContext *This,
14004        LONG MaxAlternates);
14005
14006    HRESULT (STDMETHODCALLTYPE *get_CmdMaxAlternates)(
14007        ISpeechRecoContext *This,
14008        LONG *MaxAlternates);
14009
14010    HRESULT (STDMETHODCALLTYPE *put_State)(
14011        ISpeechRecoContext *This,
14012        SpeechRecoContextState State);
14013
14014    HRESULT (STDMETHODCALLTYPE *get_State)(
14015        ISpeechRecoContext *This,
14016        SpeechRecoContextState *State);
14017
14018    HRESULT (STDMETHODCALLTYPE *put_RetainedAudio)(
14019        ISpeechRecoContext *This,
14020        SpeechRetainedAudioOptions Option);
14021
14022    HRESULT (STDMETHODCALLTYPE *get_RetainedAudio)(
14023        ISpeechRecoContext *This,
14024        SpeechRetainedAudioOptions *Option);
14025
14026    HRESULT (STDMETHODCALLTYPE *putref_RetainedAudioFormat)(
14027        ISpeechRecoContext *This,
14028        ISpeechAudioFormat *Format);
14029
14030    HRESULT (STDMETHODCALLTYPE *get_RetainedAudioFormat)(
14031        ISpeechRecoContext *This,
14032        ISpeechAudioFormat **Format);
14033
14034    HRESULT (STDMETHODCALLTYPE *Pause)(
14035        ISpeechRecoContext *This);
14036
14037    HRESULT (STDMETHODCALLTYPE *Resume)(
14038        ISpeechRecoContext *This);
14039
14040    HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
14041        ISpeechRecoContext *This,
14042        VARIANT GrammarId,
14043        ISpeechRecoGrammar **Grammar);
14044
14045    HRESULT (STDMETHODCALLTYPE *CreateResultFromMemory)(
14046        ISpeechRecoContext *This,
14047        VARIANT *ResultBlock,
14048        ISpeechRecoResult **Result);
14049
14050    HRESULT (STDMETHODCALLTYPE *Bookmark)(
14051        ISpeechRecoContext *This,
14052        SpeechBookmarkOptions Options,
14053        VARIANT StreamPos,
14054        VARIANT BookmarkId);
14055
14056    HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
14057        ISpeechRecoContext *This,
14058        BSTR AdaptationString);
14059
14060    END_INTERFACE
14061} ISpeechRecoContextVtbl;
14062
14063interface ISpeechRecoContext {
14064    CONST_VTBL ISpeechRecoContextVtbl* lpVtbl;
14065};
14066
14067#ifdef COBJMACROS
14068#ifndef WIDL_C_INLINE_WRAPPERS
14069/*** IUnknown methods ***/
14070#define ISpeechRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14071#define ISpeechRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
14072#define ISpeechRecoContext_Release(This) (This)->lpVtbl->Release(This)
14073/*** IDispatch methods ***/
14074#define ISpeechRecoContext_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14075#define ISpeechRecoContext_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14076#define ISpeechRecoContext_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14077#define ISpeechRecoContext_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14078/*** ISpeechRecoContext methods ***/
14079#define ISpeechRecoContext_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
14080#define ISpeechRecoContext_get_AudioInputInterferenceStatus(This,Interference) (This)->lpVtbl->get_AudioInputInterferenceStatus(This,Interference)
14081#define ISpeechRecoContext_get_RequestedUIType(This,UIType) (This)->lpVtbl->get_RequestedUIType(This,UIType)
14082#define ISpeechRecoContext_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
14083#define ISpeechRecoContext_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
14084#define ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(This,Allow) (This)->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow)
14085#define ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(This,pAllow) (This)->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow)
14086#define ISpeechRecoContext_put_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->put_VoicePurgeEvent(This,EventInterest)
14087#define ISpeechRecoContext_get_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->get_VoicePurgeEvent(This,EventInterest)
14088#define ISpeechRecoContext_put_EventInterests(This,EventInterest) (This)->lpVtbl->put_EventInterests(This,EventInterest)
14089#define ISpeechRecoContext_get_EventInterests(This,EventInterest) (This)->lpVtbl->get_EventInterests(This,EventInterest)
14090#define ISpeechRecoContext_put_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates)
14091#define ISpeechRecoContext_get_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates)
14092#define ISpeechRecoContext_put_State(This,State) (This)->lpVtbl->put_State(This,State)
14093#define ISpeechRecoContext_get_State(This,State) (This)->lpVtbl->get_State(This,State)
14094#define ISpeechRecoContext_put_RetainedAudio(This,Option) (This)->lpVtbl->put_RetainedAudio(This,Option)
14095#define ISpeechRecoContext_get_RetainedAudio(This,Option) (This)->lpVtbl->get_RetainedAudio(This,Option)
14096#define ISpeechRecoContext_putref_RetainedAudioFormat(This,Format) (This)->lpVtbl->putref_RetainedAudioFormat(This,Format)
14097#define ISpeechRecoContext_get_RetainedAudioFormat(This,Format) (This)->lpVtbl->get_RetainedAudioFormat(This,Format)
14098#define ISpeechRecoContext_Pause(This) (This)->lpVtbl->Pause(This)
14099#define ISpeechRecoContext_Resume(This) (This)->lpVtbl->Resume(This)
14100#define ISpeechRecoContext_CreateGrammar(This,GrammarId,Grammar) (This)->lpVtbl->CreateGrammar(This,GrammarId,Grammar)
14101#define ISpeechRecoContext_CreateResultFromMemory(This,ResultBlock,Result) (This)->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result)
14102#define ISpeechRecoContext_Bookmark(This,Options,StreamPos,BookmarkId) (This)->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId)
14103#define ISpeechRecoContext_SetAdaptationData(This,AdaptationString) (This)->lpVtbl->SetAdaptationData(This,AdaptationString)
14104#else
14105/*** IUnknown methods ***/
14106static inline HRESULT ISpeechRecoContext_QueryInterface(ISpeechRecoContext* This,REFIID riid,void **ppvObject) {
14107    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14108}
14109static inline ULONG ISpeechRecoContext_AddRef(ISpeechRecoContext* This) {
14110    return This->lpVtbl->AddRef(This);
14111}
14112static inline ULONG ISpeechRecoContext_Release(ISpeechRecoContext* This) {
14113    return This->lpVtbl->Release(This);
14114}
14115/*** IDispatch methods ***/
14116static inline HRESULT ISpeechRecoContext_GetTypeInfoCount(ISpeechRecoContext* This,UINT *pctinfo) {
14117    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14118}
14119static inline HRESULT ISpeechRecoContext_GetTypeInfo(ISpeechRecoContext* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14120    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14121}
14122static inline HRESULT ISpeechRecoContext_GetIDsOfNames(ISpeechRecoContext* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14123    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14124}
14125static inline HRESULT ISpeechRecoContext_Invoke(ISpeechRecoContext* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14126    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14127}
14128/*** ISpeechRecoContext methods ***/
14129static inline HRESULT ISpeechRecoContext_get_Recognizer(ISpeechRecoContext* This,ISpeechRecognizer **Recognizer) {
14130    return This->lpVtbl->get_Recognizer(This,Recognizer);
14131}
14132static inline HRESULT ISpeechRecoContext_get_AudioInputInterferenceStatus(ISpeechRecoContext* This,SpeechInterference *Interference) {
14133    return This->lpVtbl->get_AudioInputInterferenceStatus(This,Interference);
14134}
14135static inline HRESULT ISpeechRecoContext_get_RequestedUIType(ISpeechRecoContext* This,BSTR *UIType) {
14136    return This->lpVtbl->get_RequestedUIType(This,UIType);
14137}
14138static inline HRESULT ISpeechRecoContext_putref_Voice(ISpeechRecoContext* This,ISpeechVoice *Voice) {
14139    return This->lpVtbl->putref_Voice(This,Voice);
14140}
14141static inline HRESULT ISpeechRecoContext_get_Voice(ISpeechRecoContext* This,ISpeechVoice **Voice) {
14142    return This->lpVtbl->get_Voice(This,Voice);
14143}
14144static inline HRESULT ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL Allow) {
14145    return This->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow);
14146}
14147static inline HRESULT ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL *pAllow) {
14148    return This->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow);
14149}
14150static inline HRESULT ISpeechRecoContext_put_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
14151    return This->lpVtbl->put_VoicePurgeEvent(This,EventInterest);
14152}
14153static inline HRESULT ISpeechRecoContext_get_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
14154    return This->lpVtbl->get_VoicePurgeEvent(This,EventInterest);
14155}
14156static inline HRESULT ISpeechRecoContext_put_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
14157    return This->lpVtbl->put_EventInterests(This,EventInterest);
14158}
14159static inline HRESULT ISpeechRecoContext_get_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
14160    return This->lpVtbl->get_EventInterests(This,EventInterest);
14161}
14162static inline HRESULT ISpeechRecoContext_put_CmdMaxAlternates(ISpeechRecoContext* This,LONG MaxAlternates) {
14163    return This->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates);
14164}
14165static inline HRESULT ISpeechRecoContext_get_CmdMaxAlternates(ISpeechRecoContext* This,LONG *MaxAlternates) {
14166    return This->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates);
14167}
14168static inline HRESULT ISpeechRecoContext_put_State(ISpeechRecoContext* This,SpeechRecoContextState State) {
14169    return This->lpVtbl->put_State(This,State);
14170}
14171static inline HRESULT ISpeechRecoContext_get_State(ISpeechRecoContext* This,SpeechRecoContextState *State) {
14172    return This->lpVtbl->get_State(This,State);
14173}
14174static inline HRESULT ISpeechRecoContext_put_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions Option) {
14175    return This->lpVtbl->put_RetainedAudio(This,Option);
14176}
14177static inline HRESULT ISpeechRecoContext_get_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions *Option) {
14178    return This->lpVtbl->get_RetainedAudio(This,Option);
14179}
14180static inline HRESULT ISpeechRecoContext_putref_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat *Format) {
14181    return This->lpVtbl->putref_RetainedAudioFormat(This,Format);
14182}
14183static inline HRESULT ISpeechRecoContext_get_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat **Format) {
14184    return This->lpVtbl->get_RetainedAudioFormat(This,Format);
14185}
14186static inline HRESULT ISpeechRecoContext_Pause(ISpeechRecoContext* This) {
14187    return This->lpVtbl->Pause(This);
14188}
14189static inline HRESULT ISpeechRecoContext_Resume(ISpeechRecoContext* This) {
14190    return This->lpVtbl->Resume(This);
14191}
14192static inline HRESULT ISpeechRecoContext_CreateGrammar(ISpeechRecoContext* This,VARIANT GrammarId,ISpeechRecoGrammar **Grammar) {
14193    return This->lpVtbl->CreateGrammar(This,GrammarId,Grammar);
14194}
14195static inline HRESULT ISpeechRecoContext_CreateResultFromMemory(ISpeechRecoContext* This,VARIANT *ResultBlock,ISpeechRecoResult **Result) {
14196    return This->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result);
14197}
14198static inline HRESULT ISpeechRecoContext_Bookmark(ISpeechRecoContext* This,SpeechBookmarkOptions Options,VARIANT StreamPos,VARIANT BookmarkId) {
14199    return This->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId);
14200}
14201static inline HRESULT ISpeechRecoContext_SetAdaptationData(ISpeechRecoContext* This,BSTR AdaptationString) {
14202    return This->lpVtbl->SetAdaptationData(This,AdaptationString);
14203}
14204#endif
14205#endif
14206
14207#endif
14208
14209
14210#endif  /* __ISpeechRecoContext_INTERFACE_DEFINED__ */
14211
14212/*****************************************************************************
14213 * ISpeechRecoGrammar interface
14214 */
14215#ifndef __ISpeechRecoGrammar_INTERFACE_DEFINED__
14216#define __ISpeechRecoGrammar_INTERFACE_DEFINED__
14217
14218DEFINE_GUID(IID_ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09);
14219#if defined(__cplusplus) && !defined(CINTERFACE)
14220MIDL_INTERFACE("b6d6f79f-2158-4e50-b5bc-9a9ccd852a09")
14221ISpeechRecoGrammar : public IDispatch
14222{
14223    virtual HRESULT STDMETHODCALLTYPE get_Id(
14224        VARIANT *Id) = 0;
14225
14226    virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
14227        ISpeechRecoContext **RecoContext) = 0;
14228
14229    virtual HRESULT STDMETHODCALLTYPE put_State(
14230        SpeechGrammarState State) = 0;
14231
14232    virtual HRESULT STDMETHODCALLTYPE get_State(
14233        SpeechGrammarState *State) = 0;
14234
14235    virtual HRESULT STDMETHODCALLTYPE get_Rules(
14236        ISpeechGrammarRules **Rules) = 0;
14237
14238    virtual HRESULT STDMETHODCALLTYPE Reset(
14239        SpeechLanguageId NewLanguage = 0) = 0;
14240
14241    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromFile(
14242        const BSTR FileName,
14243        SpeechLoadOption LoadOption = SLOStatic) = 0;
14244
14245    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromObject(
14246        const BSTR ClassId,
14247        const BSTR GrammarName,
14248        SpeechLoadOption LoadOption = SLOStatic) = 0;
14249
14250    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromResource(
14251        LONG hModule,
14252        VARIANT ResourceName,
14253        VARIANT ResourceType,
14254        SpeechLanguageId LanguageId,
14255        SpeechLoadOption LoadOption = SLOStatic) = 0;
14256
14257    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromMemory(
14258        VARIANT GrammarData,
14259        SpeechLoadOption LoadOption = SLOStatic) = 0;
14260
14261    virtual HRESULT STDMETHODCALLTYPE CmdLoadFromProprietaryGrammar(
14262        const BSTR ProprietaryGuid,
14263        const BSTR ProprietaryString,
14264        VARIANT ProprietaryData,
14265        SpeechLoadOption LoadOption = SLOStatic) = 0;
14266
14267    virtual HRESULT STDMETHODCALLTYPE CmdSetRuleState(
14268        const BSTR Name,
14269        SpeechRuleState State) = 0;
14270
14271    virtual HRESULT STDMETHODCALLTYPE CmdSetRuleIdState(
14272        LONG RuleId,
14273        SpeechRuleState State) = 0;
14274
14275    virtual HRESULT STDMETHODCALLTYPE DictationLoad(
14276        const BSTR TopicName = L"",
14277        SpeechLoadOption LoadOption = SLOStatic) = 0;
14278
14279    virtual HRESULT STDMETHODCALLTYPE DictationUnload(
14280        ) = 0;
14281
14282    virtual HRESULT STDMETHODCALLTYPE DictationSetState(
14283        SpeechRuleState State) = 0;
14284
14285    virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
14286        const BSTR Text,
14287        LONG TextLength,
14288        ISpeechTextSelectionInformation *Info) = 0;
14289
14290    virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
14291        ISpeechTextSelectionInformation *Info) = 0;
14292
14293    virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
14294        const BSTR Word,
14295        SpeechWordPronounceable *WordPronounceable) = 0;
14296
14297};
14298#ifdef __CRT_UUID_DECL
14299__CRT_UUID_DECL(ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09)
14300#endif
14301#else
14302typedef struct ISpeechRecoGrammarVtbl {
14303    BEGIN_INTERFACE
14304
14305    /*** IUnknown methods ***/
14306    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14307        ISpeechRecoGrammar *This,
14308        REFIID riid,
14309        void **ppvObject);
14310
14311    ULONG (STDMETHODCALLTYPE *AddRef)(
14312        ISpeechRecoGrammar *This);
14313
14314    ULONG (STDMETHODCALLTYPE *Release)(
14315        ISpeechRecoGrammar *This);
14316
14317    /*** IDispatch methods ***/
14318    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14319        ISpeechRecoGrammar *This,
14320        UINT *pctinfo);
14321
14322    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14323        ISpeechRecoGrammar *This,
14324        UINT iTInfo,
14325        LCID lcid,
14326        ITypeInfo **ppTInfo);
14327
14328    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14329        ISpeechRecoGrammar *This,
14330        REFIID riid,
14331        LPOLESTR *rgszNames,
14332        UINT cNames,
14333        LCID lcid,
14334        DISPID *rgDispId);
14335
14336    HRESULT (STDMETHODCALLTYPE *Invoke)(
14337        ISpeechRecoGrammar *This,
14338        DISPID dispIdMember,
14339        REFIID riid,
14340        LCID lcid,
14341        WORD wFlags,
14342        DISPPARAMS *pDispParams,
14343        VARIANT *pVarResult,
14344        EXCEPINFO *pExcepInfo,
14345        UINT *puArgErr);
14346
14347    /*** ISpeechRecoGrammar methods ***/
14348    HRESULT (STDMETHODCALLTYPE *get_Id)(
14349        ISpeechRecoGrammar *This,
14350        VARIANT *Id);
14351
14352    HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
14353        ISpeechRecoGrammar *This,
14354        ISpeechRecoContext **RecoContext);
14355
14356    HRESULT (STDMETHODCALLTYPE *put_State)(
14357        ISpeechRecoGrammar *This,
14358        SpeechGrammarState State);
14359
14360    HRESULT (STDMETHODCALLTYPE *get_State)(
14361        ISpeechRecoGrammar *This,
14362        SpeechGrammarState *State);
14363
14364    HRESULT (STDMETHODCALLTYPE *get_Rules)(
14365        ISpeechRecoGrammar *This,
14366        ISpeechGrammarRules **Rules);
14367
14368    HRESULT (STDMETHODCALLTYPE *Reset)(
14369        ISpeechRecoGrammar *This,
14370        SpeechLanguageId NewLanguage);
14371
14372    HRESULT (STDMETHODCALLTYPE *CmdLoadFromFile)(
14373        ISpeechRecoGrammar *This,
14374        const BSTR FileName,
14375        SpeechLoadOption LoadOption);
14376
14377    HRESULT (STDMETHODCALLTYPE *CmdLoadFromObject)(
14378        ISpeechRecoGrammar *This,
14379        const BSTR ClassId,
14380        const BSTR GrammarName,
14381        SpeechLoadOption LoadOption);
14382
14383    HRESULT (STDMETHODCALLTYPE *CmdLoadFromResource)(
14384        ISpeechRecoGrammar *This,
14385        LONG hModule,
14386        VARIANT ResourceName,
14387        VARIANT ResourceType,
14388        SpeechLanguageId LanguageId,
14389        SpeechLoadOption LoadOption);
14390
14391    HRESULT (STDMETHODCALLTYPE *CmdLoadFromMemory)(
14392        ISpeechRecoGrammar *This,
14393        VARIANT GrammarData,
14394        SpeechLoadOption LoadOption);
14395
14396    HRESULT (STDMETHODCALLTYPE *CmdLoadFromProprietaryGrammar)(
14397        ISpeechRecoGrammar *This,
14398        const BSTR ProprietaryGuid,
14399        const BSTR ProprietaryString,
14400        VARIANT ProprietaryData,
14401        SpeechLoadOption LoadOption);
14402
14403    HRESULT (STDMETHODCALLTYPE *CmdSetRuleState)(
14404        ISpeechRecoGrammar *This,
14405        const BSTR Name,
14406        SpeechRuleState State);
14407
14408    HRESULT (STDMETHODCALLTYPE *CmdSetRuleIdState)(
14409        ISpeechRecoGrammar *This,
14410        LONG RuleId,
14411        SpeechRuleState State);
14412
14413    HRESULT (STDMETHODCALLTYPE *DictationLoad)(
14414        ISpeechRecoGrammar *This,
14415        const BSTR TopicName,
14416        SpeechLoadOption LoadOption);
14417
14418    HRESULT (STDMETHODCALLTYPE *DictationUnload)(
14419        ISpeechRecoGrammar *This);
14420
14421    HRESULT (STDMETHODCALLTYPE *DictationSetState)(
14422        ISpeechRecoGrammar *This,
14423        SpeechRuleState State);
14424
14425    HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
14426        ISpeechRecoGrammar *This,
14427        const BSTR Text,
14428        LONG TextLength,
14429        ISpeechTextSelectionInformation *Info);
14430
14431    HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
14432        ISpeechRecoGrammar *This,
14433        ISpeechTextSelectionInformation *Info);
14434
14435    HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
14436        ISpeechRecoGrammar *This,
14437        const BSTR Word,
14438        SpeechWordPronounceable *WordPronounceable);
14439
14440    END_INTERFACE
14441} ISpeechRecoGrammarVtbl;
14442
14443interface ISpeechRecoGrammar {
14444    CONST_VTBL ISpeechRecoGrammarVtbl* lpVtbl;
14445};
14446
14447#ifdef COBJMACROS
14448#ifndef WIDL_C_INLINE_WRAPPERS
14449/*** IUnknown methods ***/
14450#define ISpeechRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14451#define ISpeechRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
14452#define ISpeechRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
14453/*** IDispatch methods ***/
14454#define ISpeechRecoGrammar_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14455#define ISpeechRecoGrammar_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14456#define ISpeechRecoGrammar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14457#define ISpeechRecoGrammar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14458/*** ISpeechRecoGrammar methods ***/
14459#define ISpeechRecoGrammar_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
14460#define ISpeechRecoGrammar_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
14461#define ISpeechRecoGrammar_put_State(This,State) (This)->lpVtbl->put_State(This,State)
14462#define ISpeechRecoGrammar_get_State(This,State) (This)->lpVtbl->get_State(This,State)
14463#define ISpeechRecoGrammar_get_Rules(This,Rules) (This)->lpVtbl->get_Rules(This,Rules)
14464#define ISpeechRecoGrammar_Reset(This,NewLanguage) (This)->lpVtbl->Reset(This,NewLanguage)
14465#define ISpeechRecoGrammar_CmdLoadFromFile(This,FileName,LoadOption) (This)->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption)
14466#define ISpeechRecoGrammar_CmdLoadFromObject(This,ClassId,GrammarName,LoadOption) (This)->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption)
14467#define ISpeechRecoGrammar_CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption) (This)->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption)
14468#define ISpeechRecoGrammar_CmdLoadFromMemory(This,GrammarData,LoadOption) (This)->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption)
14469#define ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption) (This)->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption)
14470#define ISpeechRecoGrammar_CmdSetRuleState(This,Name,State) (This)->lpVtbl->CmdSetRuleState(This,Name,State)
14471#define ISpeechRecoGrammar_CmdSetRuleIdState(This,RuleId,State) (This)->lpVtbl->CmdSetRuleIdState(This,RuleId,State)
14472#define ISpeechRecoGrammar_DictationLoad(This,TopicName,LoadOption) (This)->lpVtbl->DictationLoad(This,TopicName,LoadOption)
14473#define ISpeechRecoGrammar_DictationUnload(This) (This)->lpVtbl->DictationUnload(This)
14474#define ISpeechRecoGrammar_DictationSetState(This,State) (This)->lpVtbl->DictationSetState(This,State)
14475#define ISpeechRecoGrammar_SetWordSequenceData(This,Text,TextLength,Info) (This)->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info)
14476#define ISpeechRecoGrammar_SetTextSelection(This,Info) (This)->lpVtbl->SetTextSelection(This,Info)
14477#define ISpeechRecoGrammar_IsPronounceable(This,Word,WordPronounceable) (This)->lpVtbl->IsPronounceable(This,Word,WordPronounceable)
14478#else
14479/*** IUnknown methods ***/
14480static inline HRESULT ISpeechRecoGrammar_QueryInterface(ISpeechRecoGrammar* This,REFIID riid,void **ppvObject) {
14481    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14482}
14483static inline ULONG ISpeechRecoGrammar_AddRef(ISpeechRecoGrammar* This) {
14484    return This->lpVtbl->AddRef(This);
14485}
14486static inline ULONG ISpeechRecoGrammar_Release(ISpeechRecoGrammar* This) {
14487    return This->lpVtbl->Release(This);
14488}
14489/*** IDispatch methods ***/
14490static inline HRESULT ISpeechRecoGrammar_GetTypeInfoCount(ISpeechRecoGrammar* This,UINT *pctinfo) {
14491    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14492}
14493static inline HRESULT ISpeechRecoGrammar_GetTypeInfo(ISpeechRecoGrammar* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14494    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14495}
14496static inline HRESULT ISpeechRecoGrammar_GetIDsOfNames(ISpeechRecoGrammar* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14497    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14498}
14499static inline HRESULT ISpeechRecoGrammar_Invoke(ISpeechRecoGrammar* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14500    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14501}
14502/*** ISpeechRecoGrammar methods ***/
14503static inline HRESULT ISpeechRecoGrammar_get_Id(ISpeechRecoGrammar* This,VARIANT *Id) {
14504    return This->lpVtbl->get_Id(This,Id);
14505}
14506static inline HRESULT ISpeechRecoGrammar_get_RecoContext(ISpeechRecoGrammar* This,ISpeechRecoContext **RecoContext) {
14507    return This->lpVtbl->get_RecoContext(This,RecoContext);
14508}
14509static inline HRESULT ISpeechRecoGrammar_put_State(ISpeechRecoGrammar* This,SpeechGrammarState State) {
14510    return This->lpVtbl->put_State(This,State);
14511}
14512static inline HRESULT ISpeechRecoGrammar_get_State(ISpeechRecoGrammar* This,SpeechGrammarState *State) {
14513    return This->lpVtbl->get_State(This,State);
14514}
14515static inline HRESULT ISpeechRecoGrammar_get_Rules(ISpeechRecoGrammar* This,ISpeechGrammarRules **Rules) {
14516    return This->lpVtbl->get_Rules(This,Rules);
14517}
14518static inline HRESULT ISpeechRecoGrammar_Reset(ISpeechRecoGrammar* This,SpeechLanguageId NewLanguage) {
14519    return This->lpVtbl->Reset(This,NewLanguage);
14520}
14521static inline HRESULT ISpeechRecoGrammar_CmdLoadFromFile(ISpeechRecoGrammar* This,const BSTR FileName,SpeechLoadOption LoadOption) {
14522    return This->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption);
14523}
14524static inline HRESULT ISpeechRecoGrammar_CmdLoadFromObject(ISpeechRecoGrammar* This,const BSTR ClassId,const BSTR GrammarName,SpeechLoadOption LoadOption) {
14525    return This->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption);
14526}
14527static inline HRESULT ISpeechRecoGrammar_CmdLoadFromResource(ISpeechRecoGrammar* This,LONG hModule,VARIANT ResourceName,VARIANT ResourceType,SpeechLanguageId LanguageId,SpeechLoadOption LoadOption) {
14528    return This->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption);
14529}
14530static inline HRESULT ISpeechRecoGrammar_CmdLoadFromMemory(ISpeechRecoGrammar* This,VARIANT GrammarData,SpeechLoadOption LoadOption) {
14531    return This->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption);
14532}
14533static inline HRESULT ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(ISpeechRecoGrammar* This,const BSTR ProprietaryGuid,const BSTR ProprietaryString,VARIANT ProprietaryData,SpeechLoadOption LoadOption) {
14534    return This->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption);
14535}
14536static inline HRESULT ISpeechRecoGrammar_CmdSetRuleState(ISpeechRecoGrammar* This,const BSTR Name,SpeechRuleState State) {
14537    return This->lpVtbl->CmdSetRuleState(This,Name,State);
14538}
14539static inline HRESULT ISpeechRecoGrammar_CmdSetRuleIdState(ISpeechRecoGrammar* This,LONG RuleId,SpeechRuleState State) {
14540    return This->lpVtbl->CmdSetRuleIdState(This,RuleId,State);
14541}
14542static inline HRESULT ISpeechRecoGrammar_DictationLoad(ISpeechRecoGrammar* This,const BSTR TopicName,SpeechLoadOption LoadOption) {
14543    return This->lpVtbl->DictationLoad(This,TopicName,LoadOption);
14544}
14545static inline HRESULT ISpeechRecoGrammar_DictationUnload(ISpeechRecoGrammar* This) {
14546    return This->lpVtbl->DictationUnload(This);
14547}
14548static inline HRESULT ISpeechRecoGrammar_DictationSetState(ISpeechRecoGrammar* This,SpeechRuleState State) {
14549    return This->lpVtbl->DictationSetState(This,State);
14550}
14551static inline HRESULT ISpeechRecoGrammar_SetWordSequenceData(ISpeechRecoGrammar* This,const BSTR Text,LONG TextLength,ISpeechTextSelectionInformation *Info) {
14552    return This->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info);
14553}
14554static inline HRESULT ISpeechRecoGrammar_SetTextSelection(ISpeechRecoGrammar* This,ISpeechTextSelectionInformation *Info) {
14555    return This->lpVtbl->SetTextSelection(This,Info);
14556}
14557static inline HRESULT ISpeechRecoGrammar_IsPronounceable(ISpeechRecoGrammar* This,const BSTR Word,SpeechWordPronounceable *WordPronounceable) {
14558    return This->lpVtbl->IsPronounceable(This,Word,WordPronounceable);
14559}
14560#endif
14561#endif
14562
14563#endif
14564
14565
14566#endif  /* __ISpeechRecoGrammar_INTERFACE_DEFINED__ */
14567
14568/*****************************************************************************
14569 * _ISpeechRecoContextEvents dispinterface
14570 */
14571#ifndef ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
14572#define ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
14573
14574DEFINE_GUID(DIID__ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d);
14575#if defined(__cplusplus) && !defined(CINTERFACE)
14576MIDL_INTERFACE("7b8fcb42-0e9d-4f00-a048-7b04d6179d3d")
14577_ISpeechRecoContextEvents : public IDispatch
14578{
14579};
14580#ifdef __CRT_UUID_DECL
14581__CRT_UUID_DECL(_ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d)
14582#endif
14583#else
14584typedef struct _ISpeechRecoContextEventsVtbl {
14585    BEGIN_INTERFACE
14586
14587    /*** IUnknown methods ***/
14588    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14589        _ISpeechRecoContextEvents *This,
14590        REFIID riid,
14591        void **ppvObject);
14592
14593    ULONG (STDMETHODCALLTYPE *AddRef)(
14594        _ISpeechRecoContextEvents *This);
14595
14596    ULONG (STDMETHODCALLTYPE *Release)(
14597        _ISpeechRecoContextEvents *This);
14598
14599    /*** IDispatch methods ***/
14600    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14601        _ISpeechRecoContextEvents *This,
14602        UINT *pctinfo);
14603
14604    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14605        _ISpeechRecoContextEvents *This,
14606        UINT iTInfo,
14607        LCID lcid,
14608        ITypeInfo **ppTInfo);
14609
14610    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14611        _ISpeechRecoContextEvents *This,
14612        REFIID riid,
14613        LPOLESTR *rgszNames,
14614        UINT cNames,
14615        LCID lcid,
14616        DISPID *rgDispId);
14617
14618    HRESULT (STDMETHODCALLTYPE *Invoke)(
14619        _ISpeechRecoContextEvents *This,
14620        DISPID dispIdMember,
14621        REFIID riid,
14622        LCID lcid,
14623        WORD wFlags,
14624        DISPPARAMS *pDispParams,
14625        VARIANT *pVarResult,
14626        EXCEPINFO *pExcepInfo,
14627        UINT *puArgErr);
14628
14629    END_INTERFACE
14630} _ISpeechRecoContextEventsVtbl;
14631
14632interface _ISpeechRecoContextEvents {
14633    CONST_VTBL _ISpeechRecoContextEventsVtbl* lpVtbl;
14634};
14635
14636#ifdef COBJMACROS
14637#ifndef WIDL_C_INLINE_WRAPPERS
14638/*** IUnknown methods ***/
14639#define _ISpeechRecoContextEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14640#define _ISpeechRecoContextEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
14641#define _ISpeechRecoContextEvents_Release(This) (This)->lpVtbl->Release(This)
14642/*** IDispatch methods ***/
14643#define _ISpeechRecoContextEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14644#define _ISpeechRecoContextEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14645#define _ISpeechRecoContextEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14646#define _ISpeechRecoContextEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14647#else
14648/*** IUnknown methods ***/
14649static inline HRESULT _ISpeechRecoContextEvents_QueryInterface(_ISpeechRecoContextEvents* This,REFIID riid,void **ppvObject) {
14650    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14651}
14652static inline ULONG _ISpeechRecoContextEvents_AddRef(_ISpeechRecoContextEvents* This) {
14653    return This->lpVtbl->AddRef(This);
14654}
14655static inline ULONG _ISpeechRecoContextEvents_Release(_ISpeechRecoContextEvents* This) {
14656    return This->lpVtbl->Release(This);
14657}
14658/*** IDispatch methods ***/
14659static inline HRESULT _ISpeechRecoContextEvents_GetTypeInfoCount(_ISpeechRecoContextEvents* This,UINT *pctinfo) {
14660    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14661}
14662static inline HRESULT _ISpeechRecoContextEvents_GetTypeInfo(_ISpeechRecoContextEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14663    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14664}
14665static inline HRESULT _ISpeechRecoContextEvents_GetIDsOfNames(_ISpeechRecoContextEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14666    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14667}
14668static inline HRESULT _ISpeechRecoContextEvents_Invoke(_ISpeechRecoContextEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14669    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14670}
14671#endif
14672#endif
14673
14674#endif
14675
14676#endif  /* ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__ */
14677
14678/*****************************************************************************
14679 * ISpeechGrammarRule interface
14680 */
14681#ifndef __ISpeechGrammarRule_INTERFACE_DEFINED__
14682#define __ISpeechGrammarRule_INTERFACE_DEFINED__
14683
14684DEFINE_GUID(IID_ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc);
14685#if defined(__cplusplus) && !defined(CINTERFACE)
14686MIDL_INTERFACE("afe719cf-5dd1-44f2-999c-7a399f1cfccc")
14687ISpeechGrammarRule : public IDispatch
14688{
14689    virtual HRESULT STDMETHODCALLTYPE get_Attributes(
14690        SpeechRuleAttributes *Attributes) = 0;
14691
14692    virtual HRESULT STDMETHODCALLTYPE get_InitialState(
14693        ISpeechGrammarRuleState **State) = 0;
14694
14695    virtual HRESULT STDMETHODCALLTYPE get_Name(
14696        BSTR *Name) = 0;
14697
14698    virtual HRESULT STDMETHODCALLTYPE get_Id(
14699        LONG *Id) = 0;
14700
14701    virtual HRESULT STDMETHODCALLTYPE Clear(
14702        ) = 0;
14703
14704    virtual HRESULT STDMETHODCALLTYPE AddResource(
14705        const BSTR ResourceName,
14706        const BSTR ResourceValue) = 0;
14707
14708    virtual HRESULT STDMETHODCALLTYPE AddState(
14709        ISpeechGrammarRuleState **State) = 0;
14710
14711};
14712#ifdef __CRT_UUID_DECL
14713__CRT_UUID_DECL(ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc)
14714#endif
14715#else
14716typedef struct ISpeechGrammarRuleVtbl {
14717    BEGIN_INTERFACE
14718
14719    /*** IUnknown methods ***/
14720    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14721        ISpeechGrammarRule *This,
14722        REFIID riid,
14723        void **ppvObject);
14724
14725    ULONG (STDMETHODCALLTYPE *AddRef)(
14726        ISpeechGrammarRule *This);
14727
14728    ULONG (STDMETHODCALLTYPE *Release)(
14729        ISpeechGrammarRule *This);
14730
14731    /*** IDispatch methods ***/
14732    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14733        ISpeechGrammarRule *This,
14734        UINT *pctinfo);
14735
14736    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14737        ISpeechGrammarRule *This,
14738        UINT iTInfo,
14739        LCID lcid,
14740        ITypeInfo **ppTInfo);
14741
14742    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14743        ISpeechGrammarRule *This,
14744        REFIID riid,
14745        LPOLESTR *rgszNames,
14746        UINT cNames,
14747        LCID lcid,
14748        DISPID *rgDispId);
14749
14750    HRESULT (STDMETHODCALLTYPE *Invoke)(
14751        ISpeechGrammarRule *This,
14752        DISPID dispIdMember,
14753        REFIID riid,
14754        LCID lcid,
14755        WORD wFlags,
14756        DISPPARAMS *pDispParams,
14757        VARIANT *pVarResult,
14758        EXCEPINFO *pExcepInfo,
14759        UINT *puArgErr);
14760
14761    /*** ISpeechGrammarRule methods ***/
14762    HRESULT (STDMETHODCALLTYPE *get_Attributes)(
14763        ISpeechGrammarRule *This,
14764        SpeechRuleAttributes *Attributes);
14765
14766    HRESULT (STDMETHODCALLTYPE *get_InitialState)(
14767        ISpeechGrammarRule *This,
14768        ISpeechGrammarRuleState **State);
14769
14770    HRESULT (STDMETHODCALLTYPE *get_Name)(
14771        ISpeechGrammarRule *This,
14772        BSTR *Name);
14773
14774    HRESULT (STDMETHODCALLTYPE *get_Id)(
14775        ISpeechGrammarRule *This,
14776        LONG *Id);
14777
14778    HRESULT (STDMETHODCALLTYPE *Clear)(
14779        ISpeechGrammarRule *This);
14780
14781    HRESULT (STDMETHODCALLTYPE *AddResource)(
14782        ISpeechGrammarRule *This,
14783        const BSTR ResourceName,
14784        const BSTR ResourceValue);
14785
14786    HRESULT (STDMETHODCALLTYPE *AddState)(
14787        ISpeechGrammarRule *This,
14788        ISpeechGrammarRuleState **State);
14789
14790    END_INTERFACE
14791} ISpeechGrammarRuleVtbl;
14792
14793interface ISpeechGrammarRule {
14794    CONST_VTBL ISpeechGrammarRuleVtbl* lpVtbl;
14795};
14796
14797#ifdef COBJMACROS
14798#ifndef WIDL_C_INLINE_WRAPPERS
14799/*** IUnknown methods ***/
14800#define ISpeechGrammarRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14801#define ISpeechGrammarRule_AddRef(This) (This)->lpVtbl->AddRef(This)
14802#define ISpeechGrammarRule_Release(This) (This)->lpVtbl->Release(This)
14803/*** IDispatch methods ***/
14804#define ISpeechGrammarRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14805#define ISpeechGrammarRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14806#define ISpeechGrammarRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14807#define ISpeechGrammarRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14808/*** ISpeechGrammarRule methods ***/
14809#define ISpeechGrammarRule_get_Attributes(This,Attributes) (This)->lpVtbl->get_Attributes(This,Attributes)
14810#define ISpeechGrammarRule_get_InitialState(This,State) (This)->lpVtbl->get_InitialState(This,State)
14811#define ISpeechGrammarRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
14812#define ISpeechGrammarRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
14813#define ISpeechGrammarRule_Clear(This) (This)->lpVtbl->Clear(This)
14814#define ISpeechGrammarRule_AddResource(This,ResourceName,ResourceValue) (This)->lpVtbl->AddResource(This,ResourceName,ResourceValue)
14815#define ISpeechGrammarRule_AddState(This,State) (This)->lpVtbl->AddState(This,State)
14816#else
14817/*** IUnknown methods ***/
14818static inline HRESULT ISpeechGrammarRule_QueryInterface(ISpeechGrammarRule* This,REFIID riid,void **ppvObject) {
14819    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14820}
14821static inline ULONG ISpeechGrammarRule_AddRef(ISpeechGrammarRule* This) {
14822    return This->lpVtbl->AddRef(This);
14823}
14824static inline ULONG ISpeechGrammarRule_Release(ISpeechGrammarRule* This) {
14825    return This->lpVtbl->Release(This);
14826}
14827/*** IDispatch methods ***/
14828static inline HRESULT ISpeechGrammarRule_GetTypeInfoCount(ISpeechGrammarRule* This,UINT *pctinfo) {
14829    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14830}
14831static inline HRESULT ISpeechGrammarRule_GetTypeInfo(ISpeechGrammarRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14832    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14833}
14834static inline HRESULT ISpeechGrammarRule_GetIDsOfNames(ISpeechGrammarRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14835    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14836}
14837static inline HRESULT ISpeechGrammarRule_Invoke(ISpeechGrammarRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14838    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14839}
14840/*** ISpeechGrammarRule methods ***/
14841static inline HRESULT ISpeechGrammarRule_get_Attributes(ISpeechGrammarRule* This,SpeechRuleAttributes *Attributes) {
14842    return This->lpVtbl->get_Attributes(This,Attributes);
14843}
14844static inline HRESULT ISpeechGrammarRule_get_InitialState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
14845    return This->lpVtbl->get_InitialState(This,State);
14846}
14847static inline HRESULT ISpeechGrammarRule_get_Name(ISpeechGrammarRule* This,BSTR *Name) {
14848    return This->lpVtbl->get_Name(This,Name);
14849}
14850static inline HRESULT ISpeechGrammarRule_get_Id(ISpeechGrammarRule* This,LONG *Id) {
14851    return This->lpVtbl->get_Id(This,Id);
14852}
14853static inline HRESULT ISpeechGrammarRule_Clear(ISpeechGrammarRule* This) {
14854    return This->lpVtbl->Clear(This);
14855}
14856static inline HRESULT ISpeechGrammarRule_AddResource(ISpeechGrammarRule* This,const BSTR ResourceName,const BSTR ResourceValue) {
14857    return This->lpVtbl->AddResource(This,ResourceName,ResourceValue);
14858}
14859static inline HRESULT ISpeechGrammarRule_AddState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
14860    return This->lpVtbl->AddState(This,State);
14861}
14862#endif
14863#endif
14864
14865#endif
14866
14867
14868#endif  /* __ISpeechGrammarRule_INTERFACE_DEFINED__ */
14869
14870/*****************************************************************************
14871 * ISpeechGrammarRules interface
14872 */
14873#ifndef __ISpeechGrammarRules_INTERFACE_DEFINED__
14874#define __ISpeechGrammarRules_INTERFACE_DEFINED__
14875
14876DEFINE_GUID(IID_ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1);
14877#if defined(__cplusplus) && !defined(CINTERFACE)
14878MIDL_INTERFACE("6ffa3b44-fc2d-40d1-8afc-32911c7f1ad1")
14879ISpeechGrammarRules : public IDispatch
14880{
14881    virtual HRESULT STDMETHODCALLTYPE get_Count(
14882        LONG *Count) = 0;
14883
14884    virtual HRESULT STDMETHODCALLTYPE FindRule(
14885        VARIANT RuleNameOrId,
14886        ISpeechGrammarRule **Rule) = 0;
14887
14888    virtual HRESULT STDMETHODCALLTYPE Item(
14889        LONG Index,
14890        ISpeechGrammarRule **Rule) = 0;
14891
14892    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
14893        IUnknown **EnumVARIANT) = 0;
14894
14895    virtual HRESULT STDMETHODCALLTYPE get_Dynamic(
14896        VARIANT_BOOL *Dynamic) = 0;
14897
14898    virtual HRESULT STDMETHODCALLTYPE Add(
14899        BSTR RuleName,
14900        SpeechRuleAttributes Attributes,
14901        LONG RuleId,
14902        ISpeechGrammarRule **Rule) = 0;
14903
14904    virtual HRESULT STDMETHODCALLTYPE Commit(
14905        ) = 0;
14906
14907    virtual HRESULT STDMETHODCALLTYPE CommitAndSave(
14908        BSTR *ErrorText,
14909        VARIANT *SaveStream) = 0;
14910
14911};
14912#ifdef __CRT_UUID_DECL
14913__CRT_UUID_DECL(ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1)
14914#endif
14915#else
14916typedef struct ISpeechGrammarRulesVtbl {
14917    BEGIN_INTERFACE
14918
14919    /*** IUnknown methods ***/
14920    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14921        ISpeechGrammarRules *This,
14922        REFIID riid,
14923        void **ppvObject);
14924
14925    ULONG (STDMETHODCALLTYPE *AddRef)(
14926        ISpeechGrammarRules *This);
14927
14928    ULONG (STDMETHODCALLTYPE *Release)(
14929        ISpeechGrammarRules *This);
14930
14931    /*** IDispatch methods ***/
14932    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14933        ISpeechGrammarRules *This,
14934        UINT *pctinfo);
14935
14936    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14937        ISpeechGrammarRules *This,
14938        UINT iTInfo,
14939        LCID lcid,
14940        ITypeInfo **ppTInfo);
14941
14942    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14943        ISpeechGrammarRules *This,
14944        REFIID riid,
14945        LPOLESTR *rgszNames,
14946        UINT cNames,
14947        LCID lcid,
14948        DISPID *rgDispId);
14949
14950    HRESULT (STDMETHODCALLTYPE *Invoke)(
14951        ISpeechGrammarRules *This,
14952        DISPID dispIdMember,
14953        REFIID riid,
14954        LCID lcid,
14955        WORD wFlags,
14956        DISPPARAMS *pDispParams,
14957        VARIANT *pVarResult,
14958        EXCEPINFO *pExcepInfo,
14959        UINT *puArgErr);
14960
14961    /*** ISpeechGrammarRules methods ***/
14962    HRESULT (STDMETHODCALLTYPE *get_Count)(
14963        ISpeechGrammarRules *This,
14964        LONG *Count);
14965
14966    HRESULT (STDMETHODCALLTYPE *FindRule)(
14967        ISpeechGrammarRules *This,
14968        VARIANT RuleNameOrId,
14969        ISpeechGrammarRule **Rule);
14970
14971    HRESULT (STDMETHODCALLTYPE *Item)(
14972        ISpeechGrammarRules *This,
14973        LONG Index,
14974        ISpeechGrammarRule **Rule);
14975
14976    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
14977        ISpeechGrammarRules *This,
14978        IUnknown **EnumVARIANT);
14979
14980    HRESULT (STDMETHODCALLTYPE *get_Dynamic)(
14981        ISpeechGrammarRules *This,
14982        VARIANT_BOOL *Dynamic);
14983
14984    HRESULT (STDMETHODCALLTYPE *Add)(
14985        ISpeechGrammarRules *This,
14986        BSTR RuleName,
14987        SpeechRuleAttributes Attributes,
14988        LONG RuleId,
14989        ISpeechGrammarRule **Rule);
14990
14991    HRESULT (STDMETHODCALLTYPE *Commit)(
14992        ISpeechGrammarRules *This);
14993
14994    HRESULT (STDMETHODCALLTYPE *CommitAndSave)(
14995        ISpeechGrammarRules *This,
14996        BSTR *ErrorText,
14997        VARIANT *SaveStream);
14998
14999    END_INTERFACE
15000} ISpeechGrammarRulesVtbl;
15001
15002interface ISpeechGrammarRules {
15003    CONST_VTBL ISpeechGrammarRulesVtbl* lpVtbl;
15004};
15005
15006#ifdef COBJMACROS
15007#ifndef WIDL_C_INLINE_WRAPPERS
15008/*** IUnknown methods ***/
15009#define ISpeechGrammarRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15010#define ISpeechGrammarRules_AddRef(This) (This)->lpVtbl->AddRef(This)
15011#define ISpeechGrammarRules_Release(This) (This)->lpVtbl->Release(This)
15012/*** IDispatch methods ***/
15013#define ISpeechGrammarRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15014#define ISpeechGrammarRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15015#define ISpeechGrammarRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15016#define ISpeechGrammarRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15017/*** ISpeechGrammarRules methods ***/
15018#define ISpeechGrammarRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
15019#define ISpeechGrammarRules_FindRule(This,RuleNameOrId,Rule) (This)->lpVtbl->FindRule(This,RuleNameOrId,Rule)
15020#define ISpeechGrammarRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
15021#define ISpeechGrammarRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
15022#define ISpeechGrammarRules_get_Dynamic(This,Dynamic) (This)->lpVtbl->get_Dynamic(This,Dynamic)
15023#define ISpeechGrammarRules_Add(This,RuleName,Attributes,RuleId,Rule) (This)->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule)
15024#define ISpeechGrammarRules_Commit(This) (This)->lpVtbl->Commit(This)
15025#define ISpeechGrammarRules_CommitAndSave(This,ErrorText,SaveStream) (This)->lpVtbl->CommitAndSave(This,ErrorText,SaveStream)
15026#else
15027/*** IUnknown methods ***/
15028static inline HRESULT ISpeechGrammarRules_QueryInterface(ISpeechGrammarRules* This,REFIID riid,void **ppvObject) {
15029    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15030}
15031static inline ULONG ISpeechGrammarRules_AddRef(ISpeechGrammarRules* This) {
15032    return This->lpVtbl->AddRef(This);
15033}
15034static inline ULONG ISpeechGrammarRules_Release(ISpeechGrammarRules* This) {
15035    return This->lpVtbl->Release(This);
15036}
15037/*** IDispatch methods ***/
15038static inline HRESULT ISpeechGrammarRules_GetTypeInfoCount(ISpeechGrammarRules* This,UINT *pctinfo) {
15039    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15040}
15041static inline HRESULT ISpeechGrammarRules_GetTypeInfo(ISpeechGrammarRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15042    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15043}
15044static inline HRESULT ISpeechGrammarRules_GetIDsOfNames(ISpeechGrammarRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15045    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15046}
15047static inline HRESULT ISpeechGrammarRules_Invoke(ISpeechGrammarRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15048    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15049}
15050/*** ISpeechGrammarRules methods ***/
15051static inline HRESULT ISpeechGrammarRules_get_Count(ISpeechGrammarRules* This,LONG *Count) {
15052    return This->lpVtbl->get_Count(This,Count);
15053}
15054static inline HRESULT ISpeechGrammarRules_FindRule(ISpeechGrammarRules* This,VARIANT RuleNameOrId,ISpeechGrammarRule **Rule) {
15055    return This->lpVtbl->FindRule(This,RuleNameOrId,Rule);
15056}
15057static inline HRESULT ISpeechGrammarRules_Item(ISpeechGrammarRules* This,LONG Index,ISpeechGrammarRule **Rule) {
15058    return This->lpVtbl->Item(This,Index,Rule);
15059}
15060static inline HRESULT ISpeechGrammarRules_get__NewEnum(ISpeechGrammarRules* This,IUnknown **EnumVARIANT) {
15061    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
15062}
15063static inline HRESULT ISpeechGrammarRules_get_Dynamic(ISpeechGrammarRules* This,VARIANT_BOOL *Dynamic) {
15064    return This->lpVtbl->get_Dynamic(This,Dynamic);
15065}
15066static inline HRESULT ISpeechGrammarRules_Add(ISpeechGrammarRules* This,BSTR RuleName,SpeechRuleAttributes Attributes,LONG RuleId,ISpeechGrammarRule **Rule) {
15067    return This->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule);
15068}
15069static inline HRESULT ISpeechGrammarRules_Commit(ISpeechGrammarRules* This) {
15070    return This->lpVtbl->Commit(This);
15071}
15072static inline HRESULT ISpeechGrammarRules_CommitAndSave(ISpeechGrammarRules* This,BSTR *ErrorText,VARIANT *SaveStream) {
15073    return This->lpVtbl->CommitAndSave(This,ErrorText,SaveStream);
15074}
15075#endif
15076#endif
15077
15078#endif
15079
15080
15081#endif  /* __ISpeechGrammarRules_INTERFACE_DEFINED__ */
15082
15083/*****************************************************************************
15084 * ISpeechGrammarRuleState interface
15085 */
15086#ifndef __ISpeechGrammarRuleState_INTERFACE_DEFINED__
15087#define __ISpeechGrammarRuleState_INTERFACE_DEFINED__
15088
15089DEFINE_GUID(IID_ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda);
15090#if defined(__cplusplus) && !defined(CINTERFACE)
15091MIDL_INTERFACE("d4286f2c-ee67-45ae-b928-28d695362eda")
15092ISpeechGrammarRuleState : public IDispatch
15093{
15094    virtual HRESULT STDMETHODCALLTYPE get_Rule(
15095        ISpeechGrammarRule **Rule) = 0;
15096
15097    virtual HRESULT STDMETHODCALLTYPE get_Transitions(
15098        ISpeechGrammarRuleStateTransitions **Transitions) = 0;
15099
15100    virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
15101        ISpeechGrammarRuleState *DestState,
15102        const BSTR Words,
15103        const BSTR Separators = L" ",
15104        SpeechGrammarWordType Type = SGLexical,
15105        const BSTR PropertyName = L"",
15106        LONG PropertyId = 0,
15107        VARIANT *PropertyValue = 0,
15108        float Weight = 1) = 0;
15109
15110    virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
15111        ISpeechGrammarRuleState *DestinationState,
15112        ISpeechGrammarRule *Rule,
15113        const BSTR PropertyName = L"",
15114        LONG PropertyId = 0,
15115        VARIANT *PropertyValue = 0,
15116        float Weight = 1) = 0;
15117
15118    virtual HRESULT STDMETHODCALLTYPE AddSpecialTransition(
15119        ISpeechGrammarRuleState *DestinationState,
15120        SpeechSpecialTransitionType Type,
15121        const BSTR PropertyName = L"",
15122        LONG PropertyId = 0,
15123        VARIANT *PropertyValue = 0,
15124        float Weight = 1) = 0;
15125
15126};
15127#ifdef __CRT_UUID_DECL
15128__CRT_UUID_DECL(ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda)
15129#endif
15130#else
15131typedef struct ISpeechGrammarRuleStateVtbl {
15132    BEGIN_INTERFACE
15133
15134    /*** IUnknown methods ***/
15135    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15136        ISpeechGrammarRuleState *This,
15137        REFIID riid,
15138        void **ppvObject);
15139
15140    ULONG (STDMETHODCALLTYPE *AddRef)(
15141        ISpeechGrammarRuleState *This);
15142
15143    ULONG (STDMETHODCALLTYPE *Release)(
15144        ISpeechGrammarRuleState *This);
15145
15146    /*** IDispatch methods ***/
15147    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15148        ISpeechGrammarRuleState *This,
15149        UINT *pctinfo);
15150
15151    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15152        ISpeechGrammarRuleState *This,
15153        UINT iTInfo,
15154        LCID lcid,
15155        ITypeInfo **ppTInfo);
15156
15157    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15158        ISpeechGrammarRuleState *This,
15159        REFIID riid,
15160        LPOLESTR *rgszNames,
15161        UINT cNames,
15162        LCID lcid,
15163        DISPID *rgDispId);
15164
15165    HRESULT (STDMETHODCALLTYPE *Invoke)(
15166        ISpeechGrammarRuleState *This,
15167        DISPID dispIdMember,
15168        REFIID riid,
15169        LCID lcid,
15170        WORD wFlags,
15171        DISPPARAMS *pDispParams,
15172        VARIANT *pVarResult,
15173        EXCEPINFO *pExcepInfo,
15174        UINT *puArgErr);
15175
15176    /*** ISpeechGrammarRuleState methods ***/
15177    HRESULT (STDMETHODCALLTYPE *get_Rule)(
15178        ISpeechGrammarRuleState *This,
15179        ISpeechGrammarRule **Rule);
15180
15181    HRESULT (STDMETHODCALLTYPE *get_Transitions)(
15182        ISpeechGrammarRuleState *This,
15183        ISpeechGrammarRuleStateTransitions **Transitions);
15184
15185    HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
15186        ISpeechGrammarRuleState *This,
15187        ISpeechGrammarRuleState *DestState,
15188        const BSTR Words,
15189        const BSTR Separators,
15190        SpeechGrammarWordType Type,
15191        const BSTR PropertyName,
15192        LONG PropertyId,
15193        VARIANT *PropertyValue,
15194        float Weight);
15195
15196    HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
15197        ISpeechGrammarRuleState *This,
15198        ISpeechGrammarRuleState *DestinationState,
15199        ISpeechGrammarRule *Rule,
15200        const BSTR PropertyName,
15201        LONG PropertyId,
15202        VARIANT *PropertyValue,
15203        float Weight);
15204
15205    HRESULT (STDMETHODCALLTYPE *AddSpecialTransition)(
15206        ISpeechGrammarRuleState *This,
15207        ISpeechGrammarRuleState *DestinationState,
15208        SpeechSpecialTransitionType Type,
15209        const BSTR PropertyName,
15210        LONG PropertyId,
15211        VARIANT *PropertyValue,
15212        float Weight);
15213
15214    END_INTERFACE
15215} ISpeechGrammarRuleStateVtbl;
15216
15217interface ISpeechGrammarRuleState {
15218    CONST_VTBL ISpeechGrammarRuleStateVtbl* lpVtbl;
15219};
15220
15221#ifdef COBJMACROS
15222#ifndef WIDL_C_INLINE_WRAPPERS
15223/*** IUnknown methods ***/
15224#define ISpeechGrammarRuleState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15225#define ISpeechGrammarRuleState_AddRef(This) (This)->lpVtbl->AddRef(This)
15226#define ISpeechGrammarRuleState_Release(This) (This)->lpVtbl->Release(This)
15227/*** IDispatch methods ***/
15228#define ISpeechGrammarRuleState_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15229#define ISpeechGrammarRuleState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15230#define ISpeechGrammarRuleState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15231#define ISpeechGrammarRuleState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15232/*** ISpeechGrammarRuleState methods ***/
15233#define ISpeechGrammarRuleState_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
15234#define ISpeechGrammarRuleState_get_Transitions(This,Transitions) (This)->lpVtbl->get_Transitions(This,Transitions)
15235#define ISpeechGrammarRuleState_AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight)
15236#define ISpeechGrammarRuleState_AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight)
15237#define ISpeechGrammarRuleState_AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight)
15238#else
15239/*** IUnknown methods ***/
15240static inline HRESULT ISpeechGrammarRuleState_QueryInterface(ISpeechGrammarRuleState* This,REFIID riid,void **ppvObject) {
15241    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15242}
15243static inline ULONG ISpeechGrammarRuleState_AddRef(ISpeechGrammarRuleState* This) {
15244    return This->lpVtbl->AddRef(This);
15245}
15246static inline ULONG ISpeechGrammarRuleState_Release(ISpeechGrammarRuleState* This) {
15247    return This->lpVtbl->Release(This);
15248}
15249/*** IDispatch methods ***/
15250static inline HRESULT ISpeechGrammarRuleState_GetTypeInfoCount(ISpeechGrammarRuleState* This,UINT *pctinfo) {
15251    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15252}
15253static inline HRESULT ISpeechGrammarRuleState_GetTypeInfo(ISpeechGrammarRuleState* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15254    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15255}
15256static inline HRESULT ISpeechGrammarRuleState_GetIDsOfNames(ISpeechGrammarRuleState* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15257    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15258}
15259static inline HRESULT ISpeechGrammarRuleState_Invoke(ISpeechGrammarRuleState* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15260    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15261}
15262/*** ISpeechGrammarRuleState methods ***/
15263static inline HRESULT ISpeechGrammarRuleState_get_Rule(ISpeechGrammarRuleState* This,ISpeechGrammarRule **Rule) {
15264    return This->lpVtbl->get_Rule(This,Rule);
15265}
15266static inline HRESULT ISpeechGrammarRuleState_get_Transitions(ISpeechGrammarRuleState* This,ISpeechGrammarRuleStateTransitions **Transitions) {
15267    return This->lpVtbl->get_Transitions(This,Transitions);
15268}
15269static inline HRESULT ISpeechGrammarRuleState_AddWordTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestState,const BSTR Words,const BSTR Separators,SpeechGrammarWordType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
15270    return This->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight);
15271}
15272static inline HRESULT ISpeechGrammarRuleState_AddRuleTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,ISpeechGrammarRule *Rule,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
15273    return This->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight);
15274}
15275static inline HRESULT ISpeechGrammarRuleState_AddSpecialTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,SpeechSpecialTransitionType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
15276    return This->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight);
15277}
15278#endif
15279#endif
15280
15281#endif
15282
15283
15284#endif  /* __ISpeechGrammarRuleState_INTERFACE_DEFINED__ */
15285
15286/*****************************************************************************
15287 * ISpeechGrammarRuleStateTransitions interface
15288 */
15289#ifndef __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
15290#define __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
15291
15292DEFINE_GUID(IID_ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63);
15293#if defined(__cplusplus) && !defined(CINTERFACE)
15294MIDL_INTERFACE("eabce657-75bc-44a2-aa7f-c56476742963")
15295ISpeechGrammarRuleStateTransitions : public IDispatch
15296{
15297    virtual HRESULT STDMETHODCALLTYPE get_Count(
15298        LONG *Count) = 0;
15299
15300    virtual HRESULT STDMETHODCALLTYPE Item(
15301        LONG Index,
15302        ISpeechGrammarRuleStateTransition **Transition) = 0;
15303
15304    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
15305        IUnknown **EnumVARIANT) = 0;
15306
15307};
15308#ifdef __CRT_UUID_DECL
15309__CRT_UUID_DECL(ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63)
15310#endif
15311#else
15312typedef struct ISpeechGrammarRuleStateTransitionsVtbl {
15313    BEGIN_INTERFACE
15314
15315    /*** IUnknown methods ***/
15316    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15317        ISpeechGrammarRuleStateTransitions *This,
15318        REFIID riid,
15319        void **ppvObject);
15320
15321    ULONG (STDMETHODCALLTYPE *AddRef)(
15322        ISpeechGrammarRuleStateTransitions *This);
15323
15324    ULONG (STDMETHODCALLTYPE *Release)(
15325        ISpeechGrammarRuleStateTransitions *This);
15326
15327    /*** IDispatch methods ***/
15328    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15329        ISpeechGrammarRuleStateTransitions *This,
15330        UINT *pctinfo);
15331
15332    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15333        ISpeechGrammarRuleStateTransitions *This,
15334        UINT iTInfo,
15335        LCID lcid,
15336        ITypeInfo **ppTInfo);
15337
15338    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15339        ISpeechGrammarRuleStateTransitions *This,
15340        REFIID riid,
15341        LPOLESTR *rgszNames,
15342        UINT cNames,
15343        LCID lcid,
15344        DISPID *rgDispId);
15345
15346    HRESULT (STDMETHODCALLTYPE *Invoke)(
15347        ISpeechGrammarRuleStateTransitions *This,
15348        DISPID dispIdMember,
15349        REFIID riid,
15350        LCID lcid,
15351        WORD wFlags,
15352        DISPPARAMS *pDispParams,
15353        VARIANT *pVarResult,
15354        EXCEPINFO *pExcepInfo,
15355        UINT *puArgErr);
15356
15357    /*** ISpeechGrammarRuleStateTransitions methods ***/
15358    HRESULT (STDMETHODCALLTYPE *get_Count)(
15359        ISpeechGrammarRuleStateTransitions *This,
15360        LONG *Count);
15361
15362    HRESULT (STDMETHODCALLTYPE *Item)(
15363        ISpeechGrammarRuleStateTransitions *This,
15364        LONG Index,
15365        ISpeechGrammarRuleStateTransition **Transition);
15366
15367    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
15368        ISpeechGrammarRuleStateTransitions *This,
15369        IUnknown **EnumVARIANT);
15370
15371    END_INTERFACE
15372} ISpeechGrammarRuleStateTransitionsVtbl;
15373
15374interface ISpeechGrammarRuleStateTransitions {
15375    CONST_VTBL ISpeechGrammarRuleStateTransitionsVtbl* lpVtbl;
15376};
15377
15378#ifdef COBJMACROS
15379#ifndef WIDL_C_INLINE_WRAPPERS
15380/*** IUnknown methods ***/
15381#define ISpeechGrammarRuleStateTransitions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15382#define ISpeechGrammarRuleStateTransitions_AddRef(This) (This)->lpVtbl->AddRef(This)
15383#define ISpeechGrammarRuleStateTransitions_Release(This) (This)->lpVtbl->Release(This)
15384/*** IDispatch methods ***/
15385#define ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15386#define ISpeechGrammarRuleStateTransitions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15387#define ISpeechGrammarRuleStateTransitions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15388#define ISpeechGrammarRuleStateTransitions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15389/*** ISpeechGrammarRuleStateTransitions methods ***/
15390#define ISpeechGrammarRuleStateTransitions_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
15391#define ISpeechGrammarRuleStateTransitions_Item(This,Index,Transition) (This)->lpVtbl->Item(This,Index,Transition)
15392#define ISpeechGrammarRuleStateTransitions_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
15393#else
15394/*** IUnknown methods ***/
15395static inline HRESULT ISpeechGrammarRuleStateTransitions_QueryInterface(ISpeechGrammarRuleStateTransitions* This,REFIID riid,void **ppvObject) {
15396    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15397}
15398static inline ULONG ISpeechGrammarRuleStateTransitions_AddRef(ISpeechGrammarRuleStateTransitions* This) {
15399    return This->lpVtbl->AddRef(This);
15400}
15401static inline ULONG ISpeechGrammarRuleStateTransitions_Release(ISpeechGrammarRuleStateTransitions* This) {
15402    return This->lpVtbl->Release(This);
15403}
15404/*** IDispatch methods ***/
15405static inline HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(ISpeechGrammarRuleStateTransitions* This,UINT *pctinfo) {
15406    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15407}
15408static inline HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfo(ISpeechGrammarRuleStateTransitions* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15409    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15410}
15411static inline HRESULT ISpeechGrammarRuleStateTransitions_GetIDsOfNames(ISpeechGrammarRuleStateTransitions* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15412    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15413}
15414static inline HRESULT ISpeechGrammarRuleStateTransitions_Invoke(ISpeechGrammarRuleStateTransitions* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15415    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15416}
15417/*** ISpeechGrammarRuleStateTransitions methods ***/
15418static inline HRESULT ISpeechGrammarRuleStateTransitions_get_Count(ISpeechGrammarRuleStateTransitions* This,LONG *Count) {
15419    return This->lpVtbl->get_Count(This,Count);
15420}
15421static inline HRESULT ISpeechGrammarRuleStateTransitions_Item(ISpeechGrammarRuleStateTransitions* This,LONG Index,ISpeechGrammarRuleStateTransition **Transition) {
15422    return This->lpVtbl->Item(This,Index,Transition);
15423}
15424static inline HRESULT ISpeechGrammarRuleStateTransitions_get__NewEnum(ISpeechGrammarRuleStateTransitions* This,IUnknown **EnumVARIANT) {
15425    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
15426}
15427#endif
15428#endif
15429
15430#endif
15431
15432
15433#endif  /* __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__ */
15434
15435/*****************************************************************************
15436 * ISpeechGrammarRuleStateTransition interface
15437 */
15438#ifndef __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
15439#define __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
15440
15441DEFINE_GUID(IID_ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a);
15442#if defined(__cplusplus) && !defined(CINTERFACE)
15443MIDL_INTERFACE("cafd1db1-41d1-4a06-9863-e2e81da17a9a")
15444ISpeechGrammarRuleStateTransition : public IDispatch
15445{
15446    virtual HRESULT STDMETHODCALLTYPE get_Type(
15447        SpeechGrammarRuleStateTransitionType *Type) = 0;
15448
15449    virtual HRESULT STDMETHODCALLTYPE get_Text(
15450        BSTR *Text) = 0;
15451
15452    virtual HRESULT STDMETHODCALLTYPE get_Rule(
15453        ISpeechGrammarRule **Rule) = 0;
15454
15455    virtual HRESULT STDMETHODCALLTYPE get_Weight(
15456        VARIANT *Weight) = 0;
15457
15458    virtual HRESULT STDMETHODCALLTYPE get_PropertyName(
15459        BSTR *PropertyName) = 0;
15460
15461    virtual HRESULT STDMETHODCALLTYPE get_PropertyId(
15462        LONG *PropertyId) = 0;
15463
15464    virtual HRESULT STDMETHODCALLTYPE get_PropertyValue(
15465        VARIANT *PropertyValue) = 0;
15466
15467    virtual HRESULT STDMETHODCALLTYPE get_NextState(
15468        ISpeechGrammarRuleState **NextState) = 0;
15469
15470};
15471#ifdef __CRT_UUID_DECL
15472__CRT_UUID_DECL(ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a)
15473#endif
15474#else
15475typedef struct ISpeechGrammarRuleStateTransitionVtbl {
15476    BEGIN_INTERFACE
15477
15478    /*** IUnknown methods ***/
15479    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15480        ISpeechGrammarRuleStateTransition *This,
15481        REFIID riid,
15482        void **ppvObject);
15483
15484    ULONG (STDMETHODCALLTYPE *AddRef)(
15485        ISpeechGrammarRuleStateTransition *This);
15486
15487    ULONG (STDMETHODCALLTYPE *Release)(
15488        ISpeechGrammarRuleStateTransition *This);
15489
15490    /*** IDispatch methods ***/
15491    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15492        ISpeechGrammarRuleStateTransition *This,
15493        UINT *pctinfo);
15494
15495    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15496        ISpeechGrammarRuleStateTransition *This,
15497        UINT iTInfo,
15498        LCID lcid,
15499        ITypeInfo **ppTInfo);
15500
15501    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15502        ISpeechGrammarRuleStateTransition *This,
15503        REFIID riid,
15504        LPOLESTR *rgszNames,
15505        UINT cNames,
15506        LCID lcid,
15507        DISPID *rgDispId);
15508
15509    HRESULT (STDMETHODCALLTYPE *Invoke)(
15510        ISpeechGrammarRuleStateTransition *This,
15511        DISPID dispIdMember,
15512        REFIID riid,
15513        LCID lcid,
15514        WORD wFlags,
15515        DISPPARAMS *pDispParams,
15516        VARIANT *pVarResult,
15517        EXCEPINFO *pExcepInfo,
15518        UINT *puArgErr);
15519
15520    /*** ISpeechGrammarRuleStateTransition methods ***/
15521    HRESULT (STDMETHODCALLTYPE *get_Type)(
15522        ISpeechGrammarRuleStateTransition *This,
15523        SpeechGrammarRuleStateTransitionType *Type);
15524
15525    HRESULT (STDMETHODCALLTYPE *get_Text)(
15526        ISpeechGrammarRuleStateTransition *This,
15527        BSTR *Text);
15528
15529    HRESULT (STDMETHODCALLTYPE *get_Rule)(
15530        ISpeechGrammarRuleStateTransition *This,
15531        ISpeechGrammarRule **Rule);
15532
15533    HRESULT (STDMETHODCALLTYPE *get_Weight)(
15534        ISpeechGrammarRuleStateTransition *This,
15535        VARIANT *Weight);
15536
15537    HRESULT (STDMETHODCALLTYPE *get_PropertyName)(
15538        ISpeechGrammarRuleStateTransition *This,
15539        BSTR *PropertyName);
15540
15541    HRESULT (STDMETHODCALLTYPE *get_PropertyId)(
15542        ISpeechGrammarRuleStateTransition *This,
15543        LONG *PropertyId);
15544
15545    HRESULT (STDMETHODCALLTYPE *get_PropertyValue)(
15546        ISpeechGrammarRuleStateTransition *This,
15547        VARIANT *PropertyValue);
15548
15549    HRESULT (STDMETHODCALLTYPE *get_NextState)(
15550        ISpeechGrammarRuleStateTransition *This,
15551        ISpeechGrammarRuleState **NextState);
15552
15553    END_INTERFACE
15554} ISpeechGrammarRuleStateTransitionVtbl;
15555
15556interface ISpeechGrammarRuleStateTransition {
15557    CONST_VTBL ISpeechGrammarRuleStateTransitionVtbl* lpVtbl;
15558};
15559
15560#ifdef COBJMACROS
15561#ifndef WIDL_C_INLINE_WRAPPERS
15562/*** IUnknown methods ***/
15563#define ISpeechGrammarRuleStateTransition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15564#define ISpeechGrammarRuleStateTransition_AddRef(This) (This)->lpVtbl->AddRef(This)
15565#define ISpeechGrammarRuleStateTransition_Release(This) (This)->lpVtbl->Release(This)
15566/*** IDispatch methods ***/
15567#define ISpeechGrammarRuleStateTransition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15568#define ISpeechGrammarRuleStateTransition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15569#define ISpeechGrammarRuleStateTransition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15570#define ISpeechGrammarRuleStateTransition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15571/*** ISpeechGrammarRuleStateTransition methods ***/
15572#define ISpeechGrammarRuleStateTransition_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
15573#define ISpeechGrammarRuleStateTransition_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
15574#define ISpeechGrammarRuleStateTransition_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
15575#define ISpeechGrammarRuleStateTransition_get_Weight(This,Weight) (This)->lpVtbl->get_Weight(This,Weight)
15576#define ISpeechGrammarRuleStateTransition_get_PropertyName(This,PropertyName) (This)->lpVtbl->get_PropertyName(This,PropertyName)
15577#define ISpeechGrammarRuleStateTransition_get_PropertyId(This,PropertyId) (This)->lpVtbl->get_PropertyId(This,PropertyId)
15578#define ISpeechGrammarRuleStateTransition_get_PropertyValue(This,PropertyValue) (This)->lpVtbl->get_PropertyValue(This,PropertyValue)
15579#define ISpeechGrammarRuleStateTransition_get_NextState(This,NextState) (This)->lpVtbl->get_NextState(This,NextState)
15580#else
15581/*** IUnknown methods ***/
15582static inline HRESULT ISpeechGrammarRuleStateTransition_QueryInterface(ISpeechGrammarRuleStateTransition* This,REFIID riid,void **ppvObject) {
15583    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15584}
15585static inline ULONG ISpeechGrammarRuleStateTransition_AddRef(ISpeechGrammarRuleStateTransition* This) {
15586    return This->lpVtbl->AddRef(This);
15587}
15588static inline ULONG ISpeechGrammarRuleStateTransition_Release(ISpeechGrammarRuleStateTransition* This) {
15589    return This->lpVtbl->Release(This);
15590}
15591/*** IDispatch methods ***/
15592static inline HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfoCount(ISpeechGrammarRuleStateTransition* This,UINT *pctinfo) {
15593    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15594}
15595static inline HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfo(ISpeechGrammarRuleStateTransition* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15596    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15597}
15598static inline HRESULT ISpeechGrammarRuleStateTransition_GetIDsOfNames(ISpeechGrammarRuleStateTransition* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15599    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15600}
15601static inline HRESULT ISpeechGrammarRuleStateTransition_Invoke(ISpeechGrammarRuleStateTransition* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15602    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15603}
15604/*** ISpeechGrammarRuleStateTransition methods ***/
15605static inline HRESULT ISpeechGrammarRuleStateTransition_get_Type(ISpeechGrammarRuleStateTransition* This,SpeechGrammarRuleStateTransitionType *Type) {
15606    return This->lpVtbl->get_Type(This,Type);
15607}
15608static inline HRESULT ISpeechGrammarRuleStateTransition_get_Text(ISpeechGrammarRuleStateTransition* This,BSTR *Text) {
15609    return This->lpVtbl->get_Text(This,Text);
15610}
15611static inline HRESULT ISpeechGrammarRuleStateTransition_get_Rule(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRule **Rule) {
15612    return This->lpVtbl->get_Rule(This,Rule);
15613}
15614static inline HRESULT ISpeechGrammarRuleStateTransition_get_Weight(ISpeechGrammarRuleStateTransition* This,VARIANT *Weight) {
15615    return This->lpVtbl->get_Weight(This,Weight);
15616}
15617static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyName(ISpeechGrammarRuleStateTransition* This,BSTR *PropertyName) {
15618    return This->lpVtbl->get_PropertyName(This,PropertyName);
15619}
15620static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyId(ISpeechGrammarRuleStateTransition* This,LONG *PropertyId) {
15621    return This->lpVtbl->get_PropertyId(This,PropertyId);
15622}
15623static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyValue(ISpeechGrammarRuleStateTransition* This,VARIANT *PropertyValue) {
15624    return This->lpVtbl->get_PropertyValue(This,PropertyValue);
15625}
15626static inline HRESULT ISpeechGrammarRuleStateTransition_get_NextState(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRuleState **NextState) {
15627    return This->lpVtbl->get_NextState(This,NextState);
15628}
15629#endif
15630#endif
15631
15632#endif
15633
15634
15635#endif  /* __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__ */
15636
15637/*****************************************************************************
15638 * ISpeechTextSelectionInformation interface
15639 */
15640#ifndef __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
15641#define __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
15642
15643DEFINE_GUID(IID_ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe);
15644#if defined(__cplusplus) && !defined(CINTERFACE)
15645MIDL_INTERFACE("3b9c7e7a-6eee-4ded-9092-11657279adbe")
15646ISpeechTextSelectionInformation : public IDispatch
15647{
15648    virtual HRESULT STDMETHODCALLTYPE put_ActiveOffset(
15649        LONG ActiveOffset) = 0;
15650
15651    virtual HRESULT STDMETHODCALLTYPE get_ActiveOffset(
15652        LONG *ActiveOffset) = 0;
15653
15654    virtual HRESULT STDMETHODCALLTYPE put_ActiveLength(
15655        LONG ActiveLength) = 0;
15656
15657    virtual HRESULT STDMETHODCALLTYPE get_ActiveLength(
15658        LONG *ActiveLength) = 0;
15659
15660    virtual HRESULT STDMETHODCALLTYPE put_SelectionOffset(
15661        LONG SelectionOffset) = 0;
15662
15663    virtual HRESULT STDMETHODCALLTYPE get_SelectionOffset(
15664        LONG *SelectionOffset) = 0;
15665
15666    virtual HRESULT STDMETHODCALLTYPE put_SelectionLength(
15667        LONG SelectionLength) = 0;
15668
15669    virtual HRESULT STDMETHODCALLTYPE get_SelectionLength(
15670        LONG *SelectionLength) = 0;
15671
15672};
15673#ifdef __CRT_UUID_DECL
15674__CRT_UUID_DECL(ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe)
15675#endif
15676#else
15677typedef struct ISpeechTextSelectionInformationVtbl {
15678    BEGIN_INTERFACE
15679
15680    /*** IUnknown methods ***/
15681    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15682        ISpeechTextSelectionInformation *This,
15683        REFIID riid,
15684        void **ppvObject);
15685
15686    ULONG (STDMETHODCALLTYPE *AddRef)(
15687        ISpeechTextSelectionInformation *This);
15688
15689    ULONG (STDMETHODCALLTYPE *Release)(
15690        ISpeechTextSelectionInformation *This);
15691
15692    /*** IDispatch methods ***/
15693    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15694        ISpeechTextSelectionInformation *This,
15695        UINT *pctinfo);
15696
15697    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15698        ISpeechTextSelectionInformation *This,
15699        UINT iTInfo,
15700        LCID lcid,
15701        ITypeInfo **ppTInfo);
15702
15703    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15704        ISpeechTextSelectionInformation *This,
15705        REFIID riid,
15706        LPOLESTR *rgszNames,
15707        UINT cNames,
15708        LCID lcid,
15709        DISPID *rgDispId);
15710
15711    HRESULT (STDMETHODCALLTYPE *Invoke)(
15712        ISpeechTextSelectionInformation *This,
15713        DISPID dispIdMember,
15714        REFIID riid,
15715        LCID lcid,
15716        WORD wFlags,
15717        DISPPARAMS *pDispParams,
15718        VARIANT *pVarResult,
15719        EXCEPINFO *pExcepInfo,
15720        UINT *puArgErr);
15721
15722    /*** ISpeechTextSelectionInformation methods ***/
15723    HRESULT (STDMETHODCALLTYPE *put_ActiveOffset)(
15724        ISpeechTextSelectionInformation *This,
15725        LONG ActiveOffset);
15726
15727    HRESULT (STDMETHODCALLTYPE *get_ActiveOffset)(
15728        ISpeechTextSelectionInformation *This,
15729        LONG *ActiveOffset);
15730
15731    HRESULT (STDMETHODCALLTYPE *put_ActiveLength)(
15732        ISpeechTextSelectionInformation *This,
15733        LONG ActiveLength);
15734
15735    HRESULT (STDMETHODCALLTYPE *get_ActiveLength)(
15736        ISpeechTextSelectionInformation *This,
15737        LONG *ActiveLength);
15738
15739    HRESULT (STDMETHODCALLTYPE *put_SelectionOffset)(
15740        ISpeechTextSelectionInformation *This,
15741        LONG SelectionOffset);
15742
15743    HRESULT (STDMETHODCALLTYPE *get_SelectionOffset)(
15744        ISpeechTextSelectionInformation *This,
15745        LONG *SelectionOffset);
15746
15747    HRESULT (STDMETHODCALLTYPE *put_SelectionLength)(
15748        ISpeechTextSelectionInformation *This,
15749        LONG SelectionLength);
15750
15751    HRESULT (STDMETHODCALLTYPE *get_SelectionLength)(
15752        ISpeechTextSelectionInformation *This,
15753        LONG *SelectionLength);
15754
15755    END_INTERFACE
15756} ISpeechTextSelectionInformationVtbl;
15757
15758interface ISpeechTextSelectionInformation {
15759    CONST_VTBL ISpeechTextSelectionInformationVtbl* lpVtbl;
15760};
15761
15762#ifdef COBJMACROS
15763#ifndef WIDL_C_INLINE_WRAPPERS
15764/*** IUnknown methods ***/
15765#define ISpeechTextSelectionInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15766#define ISpeechTextSelectionInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
15767#define ISpeechTextSelectionInformation_Release(This) (This)->lpVtbl->Release(This)
15768/*** IDispatch methods ***/
15769#define ISpeechTextSelectionInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15770#define ISpeechTextSelectionInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15771#define ISpeechTextSelectionInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15772#define ISpeechTextSelectionInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15773/*** ISpeechTextSelectionInformation methods ***/
15774#define ISpeechTextSelectionInformation_put_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->put_ActiveOffset(This,ActiveOffset)
15775#define ISpeechTextSelectionInformation_get_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->get_ActiveOffset(This,ActiveOffset)
15776#define ISpeechTextSelectionInformation_put_ActiveLength(This,ActiveLength) (This)->lpVtbl->put_ActiveLength(This,ActiveLength)
15777#define ISpeechTextSelectionInformation_get_ActiveLength(This,ActiveLength) (This)->lpVtbl->get_ActiveLength(This,ActiveLength)
15778#define ISpeechTextSelectionInformation_put_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->put_SelectionOffset(This,SelectionOffset)
15779#define ISpeechTextSelectionInformation_get_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->get_SelectionOffset(This,SelectionOffset)
15780#define ISpeechTextSelectionInformation_put_SelectionLength(This,SelectionLength) (This)->lpVtbl->put_SelectionLength(This,SelectionLength)
15781#define ISpeechTextSelectionInformation_get_SelectionLength(This,SelectionLength) (This)->lpVtbl->get_SelectionLength(This,SelectionLength)
15782#else
15783/*** IUnknown methods ***/
15784static inline HRESULT ISpeechTextSelectionInformation_QueryInterface(ISpeechTextSelectionInformation* This,REFIID riid,void **ppvObject) {
15785    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15786}
15787static inline ULONG ISpeechTextSelectionInformation_AddRef(ISpeechTextSelectionInformation* This) {
15788    return This->lpVtbl->AddRef(This);
15789}
15790static inline ULONG ISpeechTextSelectionInformation_Release(ISpeechTextSelectionInformation* This) {
15791    return This->lpVtbl->Release(This);
15792}
15793/*** IDispatch methods ***/
15794static inline HRESULT ISpeechTextSelectionInformation_GetTypeInfoCount(ISpeechTextSelectionInformation* This,UINT *pctinfo) {
15795    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15796}
15797static inline HRESULT ISpeechTextSelectionInformation_GetTypeInfo(ISpeechTextSelectionInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15798    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15799}
15800static inline HRESULT ISpeechTextSelectionInformation_GetIDsOfNames(ISpeechTextSelectionInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15801    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15802}
15803static inline HRESULT ISpeechTextSelectionInformation_Invoke(ISpeechTextSelectionInformation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15804    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15805}
15806/*** ISpeechTextSelectionInformation methods ***/
15807static inline HRESULT ISpeechTextSelectionInformation_put_ActiveOffset(ISpeechTextSelectionInformation* This,LONG ActiveOffset) {
15808    return This->lpVtbl->put_ActiveOffset(This,ActiveOffset);
15809}
15810static inline HRESULT ISpeechTextSelectionInformation_get_ActiveOffset(ISpeechTextSelectionInformation* This,LONG *ActiveOffset) {
15811    return This->lpVtbl->get_ActiveOffset(This,ActiveOffset);
15812}
15813static inline HRESULT ISpeechTextSelectionInformation_put_ActiveLength(ISpeechTextSelectionInformation* This,LONG ActiveLength) {
15814    return This->lpVtbl->put_ActiveLength(This,ActiveLength);
15815}
15816static inline HRESULT ISpeechTextSelectionInformation_get_ActiveLength(ISpeechTextSelectionInformation* This,LONG *ActiveLength) {
15817    return This->lpVtbl->get_ActiveLength(This,ActiveLength);
15818}
15819static inline HRESULT ISpeechTextSelectionInformation_put_SelectionOffset(ISpeechTextSelectionInformation* This,LONG SelectionOffset) {
15820    return This->lpVtbl->put_SelectionOffset(This,SelectionOffset);
15821}
15822static inline HRESULT ISpeechTextSelectionInformation_get_SelectionOffset(ISpeechTextSelectionInformation* This,LONG *SelectionOffset) {
15823    return This->lpVtbl->get_SelectionOffset(This,SelectionOffset);
15824}
15825static inline HRESULT ISpeechTextSelectionInformation_put_SelectionLength(ISpeechTextSelectionInformation* This,LONG SelectionLength) {
15826    return This->lpVtbl->put_SelectionLength(This,SelectionLength);
15827}
15828static inline HRESULT ISpeechTextSelectionInformation_get_SelectionLength(ISpeechTextSelectionInformation* This,LONG *SelectionLength) {
15829    return This->lpVtbl->get_SelectionLength(This,SelectionLength);
15830}
15831#endif
15832#endif
15833
15834#endif
15835
15836
15837#endif  /* __ISpeechTextSelectionInformation_INTERFACE_DEFINED__ */
15838
15839/*****************************************************************************
15840 * ISpeechRecoResult interface
15841 */
15842#ifndef __ISpeechRecoResult_INTERFACE_DEFINED__
15843#define __ISpeechRecoResult_INTERFACE_DEFINED__
15844
15845DEFINE_GUID(IID_ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d);
15846#if defined(__cplusplus) && !defined(CINTERFACE)
15847MIDL_INTERFACE("ed2879cf-ced9-4ee6-a534-de0191d5468d")
15848ISpeechRecoResult : public IDispatch
15849{
15850    virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
15851        ISpeechRecoContext **RecoContext) = 0;
15852
15853    virtual HRESULT STDMETHODCALLTYPE get_Times(
15854        ISpeechRecoResultTimes **Times) = 0;
15855
15856    virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
15857        ISpeechAudioFormat *Format) = 0;
15858
15859    virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
15860        ISpeechAudioFormat **Format) = 0;
15861
15862    virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
15863        ISpeechPhraseInfo **PhraseInfo) = 0;
15864
15865    virtual HRESULT STDMETHODCALLTYPE Alternates(
15866        LONG RequestCount,
15867        LONG StartElement,
15868        LONG Elements,
15869        ISpeechPhraseAlternates **Alternates) = 0;
15870
15871    virtual HRESULT STDMETHODCALLTYPE Audio(
15872        LONG StartElement,
15873        LONG Elements,
15874        ISpeechMemoryStream **Stream) = 0;
15875
15876    virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
15877        LONG StartElement,
15878        LONG Elements,
15879        SpeechVoiceSpeakFlags Flags,
15880        LONG *StreamNumber) = 0;
15881
15882    virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
15883        VARIANT *ResultBlock) = 0;
15884
15885    virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
15886        SpeechDiscardType ValueTypes) = 0;
15887
15888};
15889#ifdef __CRT_UUID_DECL
15890__CRT_UUID_DECL(ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d)
15891#endif
15892#else
15893typedef struct ISpeechRecoResultVtbl {
15894    BEGIN_INTERFACE
15895
15896    /*** IUnknown methods ***/
15897    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15898        ISpeechRecoResult *This,
15899        REFIID riid,
15900        void **ppvObject);
15901
15902    ULONG (STDMETHODCALLTYPE *AddRef)(
15903        ISpeechRecoResult *This);
15904
15905    ULONG (STDMETHODCALLTYPE *Release)(
15906        ISpeechRecoResult *This);
15907
15908    /*** IDispatch methods ***/
15909    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15910        ISpeechRecoResult *This,
15911        UINT *pctinfo);
15912
15913    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15914        ISpeechRecoResult *This,
15915        UINT iTInfo,
15916        LCID lcid,
15917        ITypeInfo **ppTInfo);
15918
15919    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15920        ISpeechRecoResult *This,
15921        REFIID riid,
15922        LPOLESTR *rgszNames,
15923        UINT cNames,
15924        LCID lcid,
15925        DISPID *rgDispId);
15926
15927    HRESULT (STDMETHODCALLTYPE *Invoke)(
15928        ISpeechRecoResult *This,
15929        DISPID dispIdMember,
15930        REFIID riid,
15931        LCID lcid,
15932        WORD wFlags,
15933        DISPPARAMS *pDispParams,
15934        VARIANT *pVarResult,
15935        EXCEPINFO *pExcepInfo,
15936        UINT *puArgErr);
15937
15938    /*** ISpeechRecoResult methods ***/
15939    HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
15940        ISpeechRecoResult *This,
15941        ISpeechRecoContext **RecoContext);
15942
15943    HRESULT (STDMETHODCALLTYPE *get_Times)(
15944        ISpeechRecoResult *This,
15945        ISpeechRecoResultTimes **Times);
15946
15947    HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
15948        ISpeechRecoResult *This,
15949        ISpeechAudioFormat *Format);
15950
15951    HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
15952        ISpeechRecoResult *This,
15953        ISpeechAudioFormat **Format);
15954
15955    HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
15956        ISpeechRecoResult *This,
15957        ISpeechPhraseInfo **PhraseInfo);
15958
15959    HRESULT (STDMETHODCALLTYPE *Alternates)(
15960        ISpeechRecoResult *This,
15961        LONG RequestCount,
15962        LONG StartElement,
15963        LONG Elements,
15964        ISpeechPhraseAlternates **Alternates);
15965
15966    HRESULT (STDMETHODCALLTYPE *Audio)(
15967        ISpeechRecoResult *This,
15968        LONG StartElement,
15969        LONG Elements,
15970        ISpeechMemoryStream **Stream);
15971
15972    HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
15973        ISpeechRecoResult *This,
15974        LONG StartElement,
15975        LONG Elements,
15976        SpeechVoiceSpeakFlags Flags,
15977        LONG *StreamNumber);
15978
15979    HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
15980        ISpeechRecoResult *This,
15981        VARIANT *ResultBlock);
15982
15983    HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
15984        ISpeechRecoResult *This,
15985        SpeechDiscardType ValueTypes);
15986
15987    END_INTERFACE
15988} ISpeechRecoResultVtbl;
15989
15990interface ISpeechRecoResult {
15991    CONST_VTBL ISpeechRecoResultVtbl* lpVtbl;
15992};
15993
15994#ifdef COBJMACROS
15995#ifndef WIDL_C_INLINE_WRAPPERS
15996/*** IUnknown methods ***/
15997#define ISpeechRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15998#define ISpeechRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
15999#define ISpeechRecoResult_Release(This) (This)->lpVtbl->Release(This)
16000/*** IDispatch methods ***/
16001#define ISpeechRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16002#define ISpeechRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16003#define ISpeechRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16004#define ISpeechRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16005/*** ISpeechRecoResult methods ***/
16006#define ISpeechRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
16007#define ISpeechRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
16008#define ISpeechRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
16009#define ISpeechRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
16010#define ISpeechRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
16011#define ISpeechRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
16012#define ISpeechRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
16013#define ISpeechRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
16014#define ISpeechRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
16015#define ISpeechRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
16016#else
16017/*** IUnknown methods ***/
16018static inline HRESULT ISpeechRecoResult_QueryInterface(ISpeechRecoResult* This,REFIID riid,void **ppvObject) {
16019    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16020}
16021static inline ULONG ISpeechRecoResult_AddRef(ISpeechRecoResult* This) {
16022    return This->lpVtbl->AddRef(This);
16023}
16024static inline ULONG ISpeechRecoResult_Release(ISpeechRecoResult* This) {
16025    return This->lpVtbl->Release(This);
16026}
16027/*** IDispatch methods ***/
16028static inline HRESULT ISpeechRecoResult_GetTypeInfoCount(ISpeechRecoResult* This,UINT *pctinfo) {
16029    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16030}
16031static inline HRESULT ISpeechRecoResult_GetTypeInfo(ISpeechRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16032    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16033}
16034static inline HRESULT ISpeechRecoResult_GetIDsOfNames(ISpeechRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16035    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16036}
16037static inline HRESULT ISpeechRecoResult_Invoke(ISpeechRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16038    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16039}
16040/*** ISpeechRecoResult methods ***/
16041static inline HRESULT ISpeechRecoResult_get_RecoContext(ISpeechRecoResult* This,ISpeechRecoContext **RecoContext) {
16042    return This->lpVtbl->get_RecoContext(This,RecoContext);
16043}
16044static inline HRESULT ISpeechRecoResult_get_Times(ISpeechRecoResult* This,ISpeechRecoResultTimes **Times) {
16045    return This->lpVtbl->get_Times(This,Times);
16046}
16047static inline HRESULT ISpeechRecoResult_putref_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat *Format) {
16048    return This->lpVtbl->putref_AudioFormat(This,Format);
16049}
16050static inline HRESULT ISpeechRecoResult_get_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat **Format) {
16051    return This->lpVtbl->get_AudioFormat(This,Format);
16052}
16053static inline HRESULT ISpeechRecoResult_get_PhraseInfo(ISpeechRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
16054    return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
16055}
16056static inline HRESULT ISpeechRecoResult_Alternates(ISpeechRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
16057    return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
16058}
16059static inline HRESULT ISpeechRecoResult_Audio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
16060    return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
16061}
16062static inline HRESULT ISpeechRecoResult_SpeakAudio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
16063    return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
16064}
16065static inline HRESULT ISpeechRecoResult_SaveToMemory(ISpeechRecoResult* This,VARIANT *ResultBlock) {
16066    return This->lpVtbl->SaveToMemory(This,ResultBlock);
16067}
16068static inline HRESULT ISpeechRecoResult_DiscardResultInfo(ISpeechRecoResult* This,SpeechDiscardType ValueTypes) {
16069    return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
16070}
16071#endif
16072#endif
16073
16074#endif
16075
16076
16077#endif  /* __ISpeechRecoResult_INTERFACE_DEFINED__ */
16078
16079/*****************************************************************************
16080 * ISpeechPhraseInfoBuilder interface
16081 */
16082#ifndef __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
16083#define __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
16084
16085DEFINE_GUID(IID_ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33);
16086#if defined(__cplusplus) && !defined(CINTERFACE)
16087MIDL_INTERFACE("3b151836-df3a-4e0a-846c-d2adc9334333")
16088ISpeechPhraseInfoBuilder : public IDispatch
16089{
16090    virtual HRESULT STDMETHODCALLTYPE RestorePhraseFromMemory(
16091        VARIANT *PhraseInMemory,
16092        ISpeechPhraseInfo **PhraseInfo) = 0;
16093
16094};
16095#ifdef __CRT_UUID_DECL
16096__CRT_UUID_DECL(ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33)
16097#endif
16098#else
16099typedef struct ISpeechPhraseInfoBuilderVtbl {
16100    BEGIN_INTERFACE
16101
16102    /*** IUnknown methods ***/
16103    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16104        ISpeechPhraseInfoBuilder *This,
16105        REFIID riid,
16106        void **ppvObject);
16107
16108    ULONG (STDMETHODCALLTYPE *AddRef)(
16109        ISpeechPhraseInfoBuilder *This);
16110
16111    ULONG (STDMETHODCALLTYPE *Release)(
16112        ISpeechPhraseInfoBuilder *This);
16113
16114    /*** IDispatch methods ***/
16115    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16116        ISpeechPhraseInfoBuilder *This,
16117        UINT *pctinfo);
16118
16119    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16120        ISpeechPhraseInfoBuilder *This,
16121        UINT iTInfo,
16122        LCID lcid,
16123        ITypeInfo **ppTInfo);
16124
16125    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16126        ISpeechPhraseInfoBuilder *This,
16127        REFIID riid,
16128        LPOLESTR *rgszNames,
16129        UINT cNames,
16130        LCID lcid,
16131        DISPID *rgDispId);
16132
16133    HRESULT (STDMETHODCALLTYPE *Invoke)(
16134        ISpeechPhraseInfoBuilder *This,
16135        DISPID dispIdMember,
16136        REFIID riid,
16137        LCID lcid,
16138        WORD wFlags,
16139        DISPPARAMS *pDispParams,
16140        VARIANT *pVarResult,
16141        EXCEPINFO *pExcepInfo,
16142        UINT *puArgErr);
16143
16144    /*** ISpeechPhraseInfoBuilder methods ***/
16145    HRESULT (STDMETHODCALLTYPE *RestorePhraseFromMemory)(
16146        ISpeechPhraseInfoBuilder *This,
16147        VARIANT *PhraseInMemory,
16148        ISpeechPhraseInfo **PhraseInfo);
16149
16150    END_INTERFACE
16151} ISpeechPhraseInfoBuilderVtbl;
16152
16153interface ISpeechPhraseInfoBuilder {
16154    CONST_VTBL ISpeechPhraseInfoBuilderVtbl* lpVtbl;
16155};
16156
16157#ifdef COBJMACROS
16158#ifndef WIDL_C_INLINE_WRAPPERS
16159/*** IUnknown methods ***/
16160#define ISpeechPhraseInfoBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16161#define ISpeechPhraseInfoBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
16162#define ISpeechPhraseInfoBuilder_Release(This) (This)->lpVtbl->Release(This)
16163/*** IDispatch methods ***/
16164#define ISpeechPhraseInfoBuilder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16165#define ISpeechPhraseInfoBuilder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16166#define ISpeechPhraseInfoBuilder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16167#define ISpeechPhraseInfoBuilder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16168/*** ISpeechPhraseInfoBuilder methods ***/
16169#define ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo) (This)->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo)
16170#else
16171/*** IUnknown methods ***/
16172static inline HRESULT ISpeechPhraseInfoBuilder_QueryInterface(ISpeechPhraseInfoBuilder* This,REFIID riid,void **ppvObject) {
16173    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16174}
16175static inline ULONG ISpeechPhraseInfoBuilder_AddRef(ISpeechPhraseInfoBuilder* This) {
16176    return This->lpVtbl->AddRef(This);
16177}
16178static inline ULONG ISpeechPhraseInfoBuilder_Release(ISpeechPhraseInfoBuilder* This) {
16179    return This->lpVtbl->Release(This);
16180}
16181/*** IDispatch methods ***/
16182static inline HRESULT ISpeechPhraseInfoBuilder_GetTypeInfoCount(ISpeechPhraseInfoBuilder* This,UINT *pctinfo) {
16183    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16184}
16185static inline HRESULT ISpeechPhraseInfoBuilder_GetTypeInfo(ISpeechPhraseInfoBuilder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16186    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16187}
16188static inline HRESULT ISpeechPhraseInfoBuilder_GetIDsOfNames(ISpeechPhraseInfoBuilder* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16189    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16190}
16191static inline HRESULT ISpeechPhraseInfoBuilder_Invoke(ISpeechPhraseInfoBuilder* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16192    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16193}
16194/*** ISpeechPhraseInfoBuilder methods ***/
16195static inline HRESULT ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(ISpeechPhraseInfoBuilder* This,VARIANT *PhraseInMemory,ISpeechPhraseInfo **PhraseInfo) {
16196    return This->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo);
16197}
16198#endif
16199#endif
16200
16201#endif
16202
16203
16204#endif  /* __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__ */
16205
16206/*****************************************************************************
16207 * ISpeechRecoResultTimes interface
16208 */
16209#ifndef __ISpeechRecoResultTimes_INTERFACE_DEFINED__
16210#define __ISpeechRecoResultTimes_INTERFACE_DEFINED__
16211
16212DEFINE_GUID(IID_ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0);
16213#if defined(__cplusplus) && !defined(CINTERFACE)
16214MIDL_INTERFACE("62b3b8fb-f6e7-41be-bdcb-056b1c29efc0")
16215ISpeechRecoResultTimes : public IDispatch
16216{
16217    virtual HRESULT STDMETHODCALLTYPE get_StreamTime(
16218        VARIANT *Time) = 0;
16219
16220    virtual HRESULT STDMETHODCALLTYPE get_Length(
16221        VARIANT *Length) = 0;
16222
16223    virtual HRESULT STDMETHODCALLTYPE get_TickCount(
16224        LONG *TickCount) = 0;
16225
16226    virtual HRESULT STDMETHODCALLTYPE get_OffsetFromStart(
16227        VARIANT *OffsetFromStart) = 0;
16228
16229};
16230#ifdef __CRT_UUID_DECL
16231__CRT_UUID_DECL(ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0)
16232#endif
16233#else
16234typedef struct ISpeechRecoResultTimesVtbl {
16235    BEGIN_INTERFACE
16236
16237    /*** IUnknown methods ***/
16238    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16239        ISpeechRecoResultTimes *This,
16240        REFIID riid,
16241        void **ppvObject);
16242
16243    ULONG (STDMETHODCALLTYPE *AddRef)(
16244        ISpeechRecoResultTimes *This);
16245
16246    ULONG (STDMETHODCALLTYPE *Release)(
16247        ISpeechRecoResultTimes *This);
16248
16249    /*** IDispatch methods ***/
16250    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16251        ISpeechRecoResultTimes *This,
16252        UINT *pctinfo);
16253
16254    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16255        ISpeechRecoResultTimes *This,
16256        UINT iTInfo,
16257        LCID lcid,
16258        ITypeInfo **ppTInfo);
16259
16260    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16261        ISpeechRecoResultTimes *This,
16262        REFIID riid,
16263        LPOLESTR *rgszNames,
16264        UINT cNames,
16265        LCID lcid,
16266        DISPID *rgDispId);
16267
16268    HRESULT (STDMETHODCALLTYPE *Invoke)(
16269        ISpeechRecoResultTimes *This,
16270        DISPID dispIdMember,
16271        REFIID riid,
16272        LCID lcid,
16273        WORD wFlags,
16274        DISPPARAMS *pDispParams,
16275        VARIANT *pVarResult,
16276        EXCEPINFO *pExcepInfo,
16277        UINT *puArgErr);
16278
16279    /*** ISpeechRecoResultTimes methods ***/
16280    HRESULT (STDMETHODCALLTYPE *get_StreamTime)(
16281        ISpeechRecoResultTimes *This,
16282        VARIANT *Time);
16283
16284    HRESULT (STDMETHODCALLTYPE *get_Length)(
16285        ISpeechRecoResultTimes *This,
16286        VARIANT *Length);
16287
16288    HRESULT (STDMETHODCALLTYPE *get_TickCount)(
16289        ISpeechRecoResultTimes *This,
16290        LONG *TickCount);
16291
16292    HRESULT (STDMETHODCALLTYPE *get_OffsetFromStart)(
16293        ISpeechRecoResultTimes *This,
16294        VARIANT *OffsetFromStart);
16295
16296    END_INTERFACE
16297} ISpeechRecoResultTimesVtbl;
16298
16299interface ISpeechRecoResultTimes {
16300    CONST_VTBL ISpeechRecoResultTimesVtbl* lpVtbl;
16301};
16302
16303#ifdef COBJMACROS
16304#ifndef WIDL_C_INLINE_WRAPPERS
16305/*** IUnknown methods ***/
16306#define ISpeechRecoResultTimes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16307#define ISpeechRecoResultTimes_AddRef(This) (This)->lpVtbl->AddRef(This)
16308#define ISpeechRecoResultTimes_Release(This) (This)->lpVtbl->Release(This)
16309/*** IDispatch methods ***/
16310#define ISpeechRecoResultTimes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16311#define ISpeechRecoResultTimes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16312#define ISpeechRecoResultTimes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16313#define ISpeechRecoResultTimes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16314/*** ISpeechRecoResultTimes methods ***/
16315#define ISpeechRecoResultTimes_get_StreamTime(This,Time) (This)->lpVtbl->get_StreamTime(This,Time)
16316#define ISpeechRecoResultTimes_get_Length(This,Length) (This)->lpVtbl->get_Length(This,Length)
16317#define ISpeechRecoResultTimes_get_TickCount(This,TickCount) (This)->lpVtbl->get_TickCount(This,TickCount)
16318#define ISpeechRecoResultTimes_get_OffsetFromStart(This,OffsetFromStart) (This)->lpVtbl->get_OffsetFromStart(This,OffsetFromStart)
16319#else
16320/*** IUnknown methods ***/
16321static inline HRESULT ISpeechRecoResultTimes_QueryInterface(ISpeechRecoResultTimes* This,REFIID riid,void **ppvObject) {
16322    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16323}
16324static inline ULONG ISpeechRecoResultTimes_AddRef(ISpeechRecoResultTimes* This) {
16325    return This->lpVtbl->AddRef(This);
16326}
16327static inline ULONG ISpeechRecoResultTimes_Release(ISpeechRecoResultTimes* This) {
16328    return This->lpVtbl->Release(This);
16329}
16330/*** IDispatch methods ***/
16331static inline HRESULT ISpeechRecoResultTimes_GetTypeInfoCount(ISpeechRecoResultTimes* This,UINT *pctinfo) {
16332    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16333}
16334static inline HRESULT ISpeechRecoResultTimes_GetTypeInfo(ISpeechRecoResultTimes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16335    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16336}
16337static inline HRESULT ISpeechRecoResultTimes_GetIDsOfNames(ISpeechRecoResultTimes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16338    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16339}
16340static inline HRESULT ISpeechRecoResultTimes_Invoke(ISpeechRecoResultTimes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16341    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16342}
16343/*** ISpeechRecoResultTimes methods ***/
16344static inline HRESULT ISpeechRecoResultTimes_get_StreamTime(ISpeechRecoResultTimes* This,VARIANT *Time) {
16345    return This->lpVtbl->get_StreamTime(This,Time);
16346}
16347static inline HRESULT ISpeechRecoResultTimes_get_Length(ISpeechRecoResultTimes* This,VARIANT *Length) {
16348    return This->lpVtbl->get_Length(This,Length);
16349}
16350static inline HRESULT ISpeechRecoResultTimes_get_TickCount(ISpeechRecoResultTimes* This,LONG *TickCount) {
16351    return This->lpVtbl->get_TickCount(This,TickCount);
16352}
16353static inline HRESULT ISpeechRecoResultTimes_get_OffsetFromStart(ISpeechRecoResultTimes* This,VARIANT *OffsetFromStart) {
16354    return This->lpVtbl->get_OffsetFromStart(This,OffsetFromStart);
16355}
16356#endif
16357#endif
16358
16359#endif
16360
16361
16362#endif  /* __ISpeechRecoResultTimes_INTERFACE_DEFINED__ */
16363
16364/*****************************************************************************
16365 * ISpeechPhraseAlternate interface
16366 */
16367#ifndef __ISpeechPhraseAlternate_INTERFACE_DEFINED__
16368#define __ISpeechPhraseAlternate_INTERFACE_DEFINED__
16369
16370DEFINE_GUID(IID_ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73);
16371#if defined(__cplusplus) && !defined(CINTERFACE)
16372MIDL_INTERFACE("27864a2a-2b9f-4cb8-92d3-0d2722fd1e73")
16373ISpeechPhraseAlternate : public IDispatch
16374{
16375    virtual HRESULT STDMETHODCALLTYPE get_RecoResult(
16376        ISpeechRecoResult **RecoResult) = 0;
16377
16378    virtual HRESULT STDMETHODCALLTYPE get_StartElementInResult(
16379        LONG *StartElement) = 0;
16380
16381    virtual HRESULT STDMETHODCALLTYPE get_NumberOfElementsInResult(
16382        LONG *NumberOfElements) = 0;
16383
16384    virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
16385        ISpeechPhraseInfo **PhraseInfo) = 0;
16386
16387    virtual HRESULT STDMETHODCALLTYPE Commit(
16388        ) = 0;
16389
16390};
16391#ifdef __CRT_UUID_DECL
16392__CRT_UUID_DECL(ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73)
16393#endif
16394#else
16395typedef struct ISpeechPhraseAlternateVtbl {
16396    BEGIN_INTERFACE
16397
16398    /*** IUnknown methods ***/
16399    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16400        ISpeechPhraseAlternate *This,
16401        REFIID riid,
16402        void **ppvObject);
16403
16404    ULONG (STDMETHODCALLTYPE *AddRef)(
16405        ISpeechPhraseAlternate *This);
16406
16407    ULONG (STDMETHODCALLTYPE *Release)(
16408        ISpeechPhraseAlternate *This);
16409
16410    /*** IDispatch methods ***/
16411    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16412        ISpeechPhraseAlternate *This,
16413        UINT *pctinfo);
16414
16415    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16416        ISpeechPhraseAlternate *This,
16417        UINT iTInfo,
16418        LCID lcid,
16419        ITypeInfo **ppTInfo);
16420
16421    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16422        ISpeechPhraseAlternate *This,
16423        REFIID riid,
16424        LPOLESTR *rgszNames,
16425        UINT cNames,
16426        LCID lcid,
16427        DISPID *rgDispId);
16428
16429    HRESULT (STDMETHODCALLTYPE *Invoke)(
16430        ISpeechPhraseAlternate *This,
16431        DISPID dispIdMember,
16432        REFIID riid,
16433        LCID lcid,
16434        WORD wFlags,
16435        DISPPARAMS *pDispParams,
16436        VARIANT *pVarResult,
16437        EXCEPINFO *pExcepInfo,
16438        UINT *puArgErr);
16439
16440    /*** ISpeechPhraseAlternate methods ***/
16441    HRESULT (STDMETHODCALLTYPE *get_RecoResult)(
16442        ISpeechPhraseAlternate *This,
16443        ISpeechRecoResult **RecoResult);
16444
16445    HRESULT (STDMETHODCALLTYPE *get_StartElementInResult)(
16446        ISpeechPhraseAlternate *This,
16447        LONG *StartElement);
16448
16449    HRESULT (STDMETHODCALLTYPE *get_NumberOfElementsInResult)(
16450        ISpeechPhraseAlternate *This,
16451        LONG *NumberOfElements);
16452
16453    HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
16454        ISpeechPhraseAlternate *This,
16455        ISpeechPhraseInfo **PhraseInfo);
16456
16457    HRESULT (STDMETHODCALLTYPE *Commit)(
16458        ISpeechPhraseAlternate *This);
16459
16460    END_INTERFACE
16461} ISpeechPhraseAlternateVtbl;
16462
16463interface ISpeechPhraseAlternate {
16464    CONST_VTBL ISpeechPhraseAlternateVtbl* lpVtbl;
16465};
16466
16467#ifdef COBJMACROS
16468#ifndef WIDL_C_INLINE_WRAPPERS
16469/*** IUnknown methods ***/
16470#define ISpeechPhraseAlternate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16471#define ISpeechPhraseAlternate_AddRef(This) (This)->lpVtbl->AddRef(This)
16472#define ISpeechPhraseAlternate_Release(This) (This)->lpVtbl->Release(This)
16473/*** IDispatch methods ***/
16474#define ISpeechPhraseAlternate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16475#define ISpeechPhraseAlternate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16476#define ISpeechPhraseAlternate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16477#define ISpeechPhraseAlternate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16478/*** ISpeechPhraseAlternate methods ***/
16479#define ISpeechPhraseAlternate_get_RecoResult(This,RecoResult) (This)->lpVtbl->get_RecoResult(This,RecoResult)
16480#define ISpeechPhraseAlternate_get_StartElementInResult(This,StartElement) (This)->lpVtbl->get_StartElementInResult(This,StartElement)
16481#define ISpeechPhraseAlternate_get_NumberOfElementsInResult(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements)
16482#define ISpeechPhraseAlternate_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
16483#define ISpeechPhraseAlternate_Commit(This) (This)->lpVtbl->Commit(This)
16484#else
16485/*** IUnknown methods ***/
16486static inline HRESULT ISpeechPhraseAlternate_QueryInterface(ISpeechPhraseAlternate* This,REFIID riid,void **ppvObject) {
16487    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16488}
16489static inline ULONG ISpeechPhraseAlternate_AddRef(ISpeechPhraseAlternate* This) {
16490    return This->lpVtbl->AddRef(This);
16491}
16492static inline ULONG ISpeechPhraseAlternate_Release(ISpeechPhraseAlternate* This) {
16493    return This->lpVtbl->Release(This);
16494}
16495/*** IDispatch methods ***/
16496static inline HRESULT ISpeechPhraseAlternate_GetTypeInfoCount(ISpeechPhraseAlternate* This,UINT *pctinfo) {
16497    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16498}
16499static inline HRESULT ISpeechPhraseAlternate_GetTypeInfo(ISpeechPhraseAlternate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16500    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16501}
16502static inline HRESULT ISpeechPhraseAlternate_GetIDsOfNames(ISpeechPhraseAlternate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16503    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16504}
16505static inline HRESULT ISpeechPhraseAlternate_Invoke(ISpeechPhraseAlternate* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16506    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16507}
16508/*** ISpeechPhraseAlternate methods ***/
16509static inline HRESULT ISpeechPhraseAlternate_get_RecoResult(ISpeechPhraseAlternate* This,ISpeechRecoResult **RecoResult) {
16510    return This->lpVtbl->get_RecoResult(This,RecoResult);
16511}
16512static inline HRESULT ISpeechPhraseAlternate_get_StartElementInResult(ISpeechPhraseAlternate* This,LONG *StartElement) {
16513    return This->lpVtbl->get_StartElementInResult(This,StartElement);
16514}
16515static inline HRESULT ISpeechPhraseAlternate_get_NumberOfElementsInResult(ISpeechPhraseAlternate* This,LONG *NumberOfElements) {
16516    return This->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements);
16517}
16518static inline HRESULT ISpeechPhraseAlternate_get_PhraseInfo(ISpeechPhraseAlternate* This,ISpeechPhraseInfo **PhraseInfo) {
16519    return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
16520}
16521static inline HRESULT ISpeechPhraseAlternate_Commit(ISpeechPhraseAlternate* This) {
16522    return This->lpVtbl->Commit(This);
16523}
16524#endif
16525#endif
16526
16527#endif
16528
16529
16530#endif  /* __ISpeechPhraseAlternate_INTERFACE_DEFINED__ */
16531
16532/*****************************************************************************
16533 * ISpeechPhraseAlternates interface
16534 */
16535#ifndef __ISpeechPhraseAlternates_INTERFACE_DEFINED__
16536#define __ISpeechPhraseAlternates_INTERFACE_DEFINED__
16537
16538DEFINE_GUID(IID_ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2);
16539#if defined(__cplusplus) && !defined(CINTERFACE)
16540MIDL_INTERFACE("b238b6d5-f276-4c3d-a6c1-2974801c3cc2")
16541ISpeechPhraseAlternates : public IDispatch
16542{
16543    virtual HRESULT STDMETHODCALLTYPE get_Count(
16544        LONG *Count) = 0;
16545
16546    virtual HRESULT STDMETHODCALLTYPE Item(
16547        LONG Index,
16548        ISpeechPhraseAlternate **PhraseAlternate) = 0;
16549
16550    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
16551        IUnknown **EnumVARIANT) = 0;
16552
16553};
16554#ifdef __CRT_UUID_DECL
16555__CRT_UUID_DECL(ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2)
16556#endif
16557#else
16558typedef struct ISpeechPhraseAlternatesVtbl {
16559    BEGIN_INTERFACE
16560
16561    /*** IUnknown methods ***/
16562    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16563        ISpeechPhraseAlternates *This,
16564        REFIID riid,
16565        void **ppvObject);
16566
16567    ULONG (STDMETHODCALLTYPE *AddRef)(
16568        ISpeechPhraseAlternates *This);
16569
16570    ULONG (STDMETHODCALLTYPE *Release)(
16571        ISpeechPhraseAlternates *This);
16572
16573    /*** IDispatch methods ***/
16574    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16575        ISpeechPhraseAlternates *This,
16576        UINT *pctinfo);
16577
16578    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16579        ISpeechPhraseAlternates *This,
16580        UINT iTInfo,
16581        LCID lcid,
16582        ITypeInfo **ppTInfo);
16583
16584    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16585        ISpeechPhraseAlternates *This,
16586        REFIID riid,
16587        LPOLESTR *rgszNames,
16588        UINT cNames,
16589        LCID lcid,
16590        DISPID *rgDispId);
16591
16592    HRESULT (STDMETHODCALLTYPE *Invoke)(
16593        ISpeechPhraseAlternates *This,
16594        DISPID dispIdMember,
16595        REFIID riid,
16596        LCID lcid,
16597        WORD wFlags,
16598        DISPPARAMS *pDispParams,
16599        VARIANT *pVarResult,
16600        EXCEPINFO *pExcepInfo,
16601        UINT *puArgErr);
16602
16603    /*** ISpeechPhraseAlternates methods ***/
16604    HRESULT (STDMETHODCALLTYPE *get_Count)(
16605        ISpeechPhraseAlternates *This,
16606        LONG *Count);
16607
16608    HRESULT (STDMETHODCALLTYPE *Item)(
16609        ISpeechPhraseAlternates *This,
16610        LONG Index,
16611        ISpeechPhraseAlternate **PhraseAlternate);
16612
16613    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
16614        ISpeechPhraseAlternates *This,
16615        IUnknown **EnumVARIANT);
16616
16617    END_INTERFACE
16618} ISpeechPhraseAlternatesVtbl;
16619
16620interface ISpeechPhraseAlternates {
16621    CONST_VTBL ISpeechPhraseAlternatesVtbl* lpVtbl;
16622};
16623
16624#ifdef COBJMACROS
16625#ifndef WIDL_C_INLINE_WRAPPERS
16626/*** IUnknown methods ***/
16627#define ISpeechPhraseAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16628#define ISpeechPhraseAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
16629#define ISpeechPhraseAlternates_Release(This) (This)->lpVtbl->Release(This)
16630/*** IDispatch methods ***/
16631#define ISpeechPhraseAlternates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16632#define ISpeechPhraseAlternates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16633#define ISpeechPhraseAlternates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16634#define ISpeechPhraseAlternates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16635/*** ISpeechPhraseAlternates methods ***/
16636#define ISpeechPhraseAlternates_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
16637#define ISpeechPhraseAlternates_Item(This,Index,PhraseAlternate) (This)->lpVtbl->Item(This,Index,PhraseAlternate)
16638#define ISpeechPhraseAlternates_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
16639#else
16640/*** IUnknown methods ***/
16641static inline HRESULT ISpeechPhraseAlternates_QueryInterface(ISpeechPhraseAlternates* This,REFIID riid,void **ppvObject) {
16642    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16643}
16644static inline ULONG ISpeechPhraseAlternates_AddRef(ISpeechPhraseAlternates* This) {
16645    return This->lpVtbl->AddRef(This);
16646}
16647static inline ULONG ISpeechPhraseAlternates_Release(ISpeechPhraseAlternates* This) {
16648    return This->lpVtbl->Release(This);
16649}
16650/*** IDispatch methods ***/
16651static inline HRESULT ISpeechPhraseAlternates_GetTypeInfoCount(ISpeechPhraseAlternates* This,UINT *pctinfo) {
16652    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16653}
16654static inline HRESULT ISpeechPhraseAlternates_GetTypeInfo(ISpeechPhraseAlternates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16655    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16656}
16657static inline HRESULT ISpeechPhraseAlternates_GetIDsOfNames(ISpeechPhraseAlternates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16658    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16659}
16660static inline HRESULT ISpeechPhraseAlternates_Invoke(ISpeechPhraseAlternates* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16661    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16662}
16663/*** ISpeechPhraseAlternates methods ***/
16664static inline HRESULT ISpeechPhraseAlternates_get_Count(ISpeechPhraseAlternates* This,LONG *Count) {
16665    return This->lpVtbl->get_Count(This,Count);
16666}
16667static inline HRESULT ISpeechPhraseAlternates_Item(ISpeechPhraseAlternates* This,LONG Index,ISpeechPhraseAlternate **PhraseAlternate) {
16668    return This->lpVtbl->Item(This,Index,PhraseAlternate);
16669}
16670static inline HRESULT ISpeechPhraseAlternates_get__NewEnum(ISpeechPhraseAlternates* This,IUnknown **EnumVARIANT) {
16671    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
16672}
16673#endif
16674#endif
16675
16676#endif
16677
16678
16679#endif  /* __ISpeechPhraseAlternates_INTERFACE_DEFINED__ */
16680
16681/*****************************************************************************
16682 * ISpeechPhraseInfo interface
16683 */
16684#ifndef __ISpeechPhraseInfo_INTERFACE_DEFINED__
16685#define __ISpeechPhraseInfo_INTERFACE_DEFINED__
16686
16687DEFINE_GUID(IID_ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3);
16688#if defined(__cplusplus) && !defined(CINTERFACE)
16689MIDL_INTERFACE("961559cf-4e67-4662-8bf0-d93f1fcd61b3")
16690ISpeechPhraseInfo : public IDispatch
16691{
16692    virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
16693        LONG *LanguageId) = 0;
16694
16695    virtual HRESULT STDMETHODCALLTYPE get_GrammarId(
16696        VARIANT *GrammarId) = 0;
16697
16698    virtual HRESULT STDMETHODCALLTYPE get_StartTime(
16699        VARIANT *StartTime) = 0;
16700
16701    virtual HRESULT STDMETHODCALLTYPE get_AudioStreamPosition(
16702        VARIANT *AudioStreamPosition) = 0;
16703
16704    virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
16705        LONG *pAudioSizeBytes) = 0;
16706
16707    virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
16708        LONG *RetainedSizeBytes) = 0;
16709
16710    virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
16711        LONG *AudioSizeTime) = 0;
16712
16713    virtual HRESULT STDMETHODCALLTYPE get_Rule(
16714        ISpeechPhraseRule **Rule) = 0;
16715
16716    virtual HRESULT STDMETHODCALLTYPE get_Properties(
16717        ISpeechPhraseProperties **Properties) = 0;
16718
16719    virtual HRESULT STDMETHODCALLTYPE get_Elements(
16720        ISpeechPhraseElements **Elements) = 0;
16721
16722    virtual HRESULT STDMETHODCALLTYPE get_Replacements(
16723        ISpeechPhraseReplacements **Replacements) = 0;
16724
16725    virtual HRESULT STDMETHODCALLTYPE get_EngineId(
16726        BSTR *EngineIdGuid) = 0;
16727
16728    virtual HRESULT STDMETHODCALLTYPE get_EnginePrivateData(
16729        VARIANT *PrivateData) = 0;
16730
16731    virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
16732        VARIANT *PhraseBlock) = 0;
16733
16734    virtual HRESULT STDMETHODCALLTYPE GetText(
16735        LONG StartElement,
16736        LONG Elements,
16737        VARIANT_BOOL UseReplacements,
16738        BSTR *Text) = 0;
16739
16740    virtual HRESULT STDMETHODCALLTYPE GetDisplayAttributes(
16741        LONG StartElement,
16742        LONG Elements,
16743        VARIANT_BOOL UseReplacements,
16744        SpeechDisplayAttributes *DisplayAttributes) = 0;
16745
16746};
16747#ifdef __CRT_UUID_DECL
16748__CRT_UUID_DECL(ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3)
16749#endif
16750#else
16751typedef struct ISpeechPhraseInfoVtbl {
16752    BEGIN_INTERFACE
16753
16754    /*** IUnknown methods ***/
16755    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16756        ISpeechPhraseInfo *This,
16757        REFIID riid,
16758        void **ppvObject);
16759
16760    ULONG (STDMETHODCALLTYPE *AddRef)(
16761        ISpeechPhraseInfo *This);
16762
16763    ULONG (STDMETHODCALLTYPE *Release)(
16764        ISpeechPhraseInfo *This);
16765
16766    /*** IDispatch methods ***/
16767    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16768        ISpeechPhraseInfo *This,
16769        UINT *pctinfo);
16770
16771    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16772        ISpeechPhraseInfo *This,
16773        UINT iTInfo,
16774        LCID lcid,
16775        ITypeInfo **ppTInfo);
16776
16777    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16778        ISpeechPhraseInfo *This,
16779        REFIID riid,
16780        LPOLESTR *rgszNames,
16781        UINT cNames,
16782        LCID lcid,
16783        DISPID *rgDispId);
16784
16785    HRESULT (STDMETHODCALLTYPE *Invoke)(
16786        ISpeechPhraseInfo *This,
16787        DISPID dispIdMember,
16788        REFIID riid,
16789        LCID lcid,
16790        WORD wFlags,
16791        DISPPARAMS *pDispParams,
16792        VARIANT *pVarResult,
16793        EXCEPINFO *pExcepInfo,
16794        UINT *puArgErr);
16795
16796    /*** ISpeechPhraseInfo methods ***/
16797    HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
16798        ISpeechPhraseInfo *This,
16799        LONG *LanguageId);
16800
16801    HRESULT (STDMETHODCALLTYPE *get_GrammarId)(
16802        ISpeechPhraseInfo *This,
16803        VARIANT *GrammarId);
16804
16805    HRESULT (STDMETHODCALLTYPE *get_StartTime)(
16806        ISpeechPhraseInfo *This,
16807        VARIANT *StartTime);
16808
16809    HRESULT (STDMETHODCALLTYPE *get_AudioStreamPosition)(
16810        ISpeechPhraseInfo *This,
16811        VARIANT *AudioStreamPosition);
16812
16813    HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
16814        ISpeechPhraseInfo *This,
16815        LONG *pAudioSizeBytes);
16816
16817    HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
16818        ISpeechPhraseInfo *This,
16819        LONG *RetainedSizeBytes);
16820
16821    HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
16822        ISpeechPhraseInfo *This,
16823        LONG *AudioSizeTime);
16824
16825    HRESULT (STDMETHODCALLTYPE *get_Rule)(
16826        ISpeechPhraseInfo *This,
16827        ISpeechPhraseRule **Rule);
16828
16829    HRESULT (STDMETHODCALLTYPE *get_Properties)(
16830        ISpeechPhraseInfo *This,
16831        ISpeechPhraseProperties **Properties);
16832
16833    HRESULT (STDMETHODCALLTYPE *get_Elements)(
16834        ISpeechPhraseInfo *This,
16835        ISpeechPhraseElements **Elements);
16836
16837    HRESULT (STDMETHODCALLTYPE *get_Replacements)(
16838        ISpeechPhraseInfo *This,
16839        ISpeechPhraseReplacements **Replacements);
16840
16841    HRESULT (STDMETHODCALLTYPE *get_EngineId)(
16842        ISpeechPhraseInfo *This,
16843        BSTR *EngineIdGuid);
16844
16845    HRESULT (STDMETHODCALLTYPE *get_EnginePrivateData)(
16846        ISpeechPhraseInfo *This,
16847        VARIANT *PrivateData);
16848
16849    HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
16850        ISpeechPhraseInfo *This,
16851        VARIANT *PhraseBlock);
16852
16853    HRESULT (STDMETHODCALLTYPE *GetText)(
16854        ISpeechPhraseInfo *This,
16855        LONG StartElement,
16856        LONG Elements,
16857        VARIANT_BOOL UseReplacements,
16858        BSTR *Text);
16859
16860    HRESULT (STDMETHODCALLTYPE *GetDisplayAttributes)(
16861        ISpeechPhraseInfo *This,
16862        LONG StartElement,
16863        LONG Elements,
16864        VARIANT_BOOL UseReplacements,
16865        SpeechDisplayAttributes *DisplayAttributes);
16866
16867    END_INTERFACE
16868} ISpeechPhraseInfoVtbl;
16869
16870interface ISpeechPhraseInfo {
16871    CONST_VTBL ISpeechPhraseInfoVtbl* lpVtbl;
16872};
16873
16874#ifdef COBJMACROS
16875#ifndef WIDL_C_INLINE_WRAPPERS
16876/*** IUnknown methods ***/
16877#define ISpeechPhraseInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16878#define ISpeechPhraseInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
16879#define ISpeechPhraseInfo_Release(This) (This)->lpVtbl->Release(This)
16880/*** IDispatch methods ***/
16881#define ISpeechPhraseInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16882#define ISpeechPhraseInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16883#define ISpeechPhraseInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16884#define ISpeechPhraseInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16885/*** ISpeechPhraseInfo methods ***/
16886#define ISpeechPhraseInfo_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
16887#define ISpeechPhraseInfo_get_GrammarId(This,GrammarId) (This)->lpVtbl->get_GrammarId(This,GrammarId)
16888#define ISpeechPhraseInfo_get_StartTime(This,StartTime) (This)->lpVtbl->get_StartTime(This,StartTime)
16889#define ISpeechPhraseInfo_get_AudioStreamPosition(This,AudioStreamPosition) (This)->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition)
16890#define ISpeechPhraseInfo_get_AudioSizeBytes(This,pAudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes)
16891#define ISpeechPhraseInfo_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
16892#define ISpeechPhraseInfo_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
16893#define ISpeechPhraseInfo_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
16894#define ISpeechPhraseInfo_get_Properties(This,Properties) (This)->lpVtbl->get_Properties(This,Properties)
16895#define ISpeechPhraseInfo_get_Elements(This,Elements) (This)->lpVtbl->get_Elements(This,Elements)
16896#define ISpeechPhraseInfo_get_Replacements(This,Replacements) (This)->lpVtbl->get_Replacements(This,Replacements)
16897#define ISpeechPhraseInfo_get_EngineId(This,EngineIdGuid) (This)->lpVtbl->get_EngineId(This,EngineIdGuid)
16898#define ISpeechPhraseInfo_get_EnginePrivateData(This,PrivateData) (This)->lpVtbl->get_EnginePrivateData(This,PrivateData)
16899#define ISpeechPhraseInfo_SaveToMemory(This,PhraseBlock) (This)->lpVtbl->SaveToMemory(This,PhraseBlock)
16900#define ISpeechPhraseInfo_GetText(This,StartElement,Elements,UseReplacements,Text) (This)->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text)
16901#define ISpeechPhraseInfo_GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes) (This)->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes)
16902#else
16903/*** IUnknown methods ***/
16904static inline HRESULT ISpeechPhraseInfo_QueryInterface(ISpeechPhraseInfo* This,REFIID riid,void **ppvObject) {
16905    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16906}
16907static inline ULONG ISpeechPhraseInfo_AddRef(ISpeechPhraseInfo* This) {
16908    return This->lpVtbl->AddRef(This);
16909}
16910static inline ULONG ISpeechPhraseInfo_Release(ISpeechPhraseInfo* This) {
16911    return This->lpVtbl->Release(This);
16912}
16913/*** IDispatch methods ***/
16914static inline HRESULT ISpeechPhraseInfo_GetTypeInfoCount(ISpeechPhraseInfo* This,UINT *pctinfo) {
16915    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16916}
16917static inline HRESULT ISpeechPhraseInfo_GetTypeInfo(ISpeechPhraseInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16918    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16919}
16920static inline HRESULT ISpeechPhraseInfo_GetIDsOfNames(ISpeechPhraseInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16921    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16922}
16923static inline HRESULT ISpeechPhraseInfo_Invoke(ISpeechPhraseInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16924    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16925}
16926/*** ISpeechPhraseInfo methods ***/
16927static inline HRESULT ISpeechPhraseInfo_get_LanguageId(ISpeechPhraseInfo* This,LONG *LanguageId) {
16928    return This->lpVtbl->get_LanguageId(This,LanguageId);
16929}
16930static inline HRESULT ISpeechPhraseInfo_get_GrammarId(ISpeechPhraseInfo* This,VARIANT *GrammarId) {
16931    return This->lpVtbl->get_GrammarId(This,GrammarId);
16932}
16933static inline HRESULT ISpeechPhraseInfo_get_StartTime(ISpeechPhraseInfo* This,VARIANT *StartTime) {
16934    return This->lpVtbl->get_StartTime(This,StartTime);
16935}
16936static inline HRESULT ISpeechPhraseInfo_get_AudioStreamPosition(ISpeechPhraseInfo* This,VARIANT *AudioStreamPosition) {
16937    return This->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition);
16938}
16939static inline HRESULT ISpeechPhraseInfo_get_AudioSizeBytes(ISpeechPhraseInfo* This,LONG *pAudioSizeBytes) {
16940    return This->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes);
16941}
16942static inline HRESULT ISpeechPhraseInfo_get_RetainedSizeBytes(ISpeechPhraseInfo* This,LONG *RetainedSizeBytes) {
16943    return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
16944}
16945static inline HRESULT ISpeechPhraseInfo_get_AudioSizeTime(ISpeechPhraseInfo* This,LONG *AudioSizeTime) {
16946    return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
16947}
16948static inline HRESULT ISpeechPhraseInfo_get_Rule(ISpeechPhraseInfo* This,ISpeechPhraseRule **Rule) {
16949    return This->lpVtbl->get_Rule(This,Rule);
16950}
16951static inline HRESULT ISpeechPhraseInfo_get_Properties(ISpeechPhraseInfo* This,ISpeechPhraseProperties **Properties) {
16952    return This->lpVtbl->get_Properties(This,Properties);
16953}
16954static inline HRESULT ISpeechPhraseInfo_get_Elements(ISpeechPhraseInfo* This,ISpeechPhraseElements **Elements) {
16955    return This->lpVtbl->get_Elements(This,Elements);
16956}
16957static inline HRESULT ISpeechPhraseInfo_get_Replacements(ISpeechPhraseInfo* This,ISpeechPhraseReplacements **Replacements) {
16958    return This->lpVtbl->get_Replacements(This,Replacements);
16959}
16960static inline HRESULT ISpeechPhraseInfo_get_EngineId(ISpeechPhraseInfo* This,BSTR *EngineIdGuid) {
16961    return This->lpVtbl->get_EngineId(This,EngineIdGuid);
16962}
16963static inline HRESULT ISpeechPhraseInfo_get_EnginePrivateData(ISpeechPhraseInfo* This,VARIANT *PrivateData) {
16964    return This->lpVtbl->get_EnginePrivateData(This,PrivateData);
16965}
16966static inline HRESULT ISpeechPhraseInfo_SaveToMemory(ISpeechPhraseInfo* This,VARIANT *PhraseBlock) {
16967    return This->lpVtbl->SaveToMemory(This,PhraseBlock);
16968}
16969static inline HRESULT ISpeechPhraseInfo_GetText(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,BSTR *Text) {
16970    return This->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text);
16971}
16972static inline HRESULT ISpeechPhraseInfo_GetDisplayAttributes(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,SpeechDisplayAttributes *DisplayAttributes) {
16973    return This->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes);
16974}
16975#endif
16976#endif
16977
16978#endif
16979
16980
16981#endif  /* __ISpeechPhraseInfo_INTERFACE_DEFINED__ */
16982
16983/*****************************************************************************
16984 * ISpeechPhraseElement interface
16985 */
16986#ifndef __ISpeechPhraseElement_INTERFACE_DEFINED__
16987#define __ISpeechPhraseElement_INTERFACE_DEFINED__
16988
16989DEFINE_GUID(IID_ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4);
16990#if defined(__cplusplus) && !defined(CINTERFACE)
16991MIDL_INTERFACE("e6176f96-e373-4801-b223-3b62c068c0b4")
16992ISpeechPhraseElement : public IDispatch
16993{
16994    virtual HRESULT STDMETHODCALLTYPE get_AudioTimeOffset(
16995        LONG *AudioTimeOffset) = 0;
16996
16997    virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
16998        LONG *AudioSizeTime) = 0;
16999
17000    virtual HRESULT STDMETHODCALLTYPE get_AudioStreamOffset(
17001        LONG *AudioStreamOffset) = 0;
17002
17003    virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
17004        LONG *AudioSizeBytes) = 0;
17005
17006    virtual HRESULT STDMETHODCALLTYPE get_RetainedStreamOffset(
17007        LONG *RetainedStreamOffset) = 0;
17008
17009    virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
17010        LONG *RetainedSizeBytes) = 0;
17011
17012    virtual HRESULT STDMETHODCALLTYPE get_DisplayText(
17013        BSTR *DisplayText) = 0;
17014
17015    virtual HRESULT STDMETHODCALLTYPE get_LexicalForm(
17016        BSTR *LexicalForm) = 0;
17017
17018    virtual HRESULT STDMETHODCALLTYPE get_Pronunciation(
17019        VARIANT *Pronunciation) = 0;
17020
17021    virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
17022        SpeechDisplayAttributes *DisplayAttributes) = 0;
17023
17024    virtual HRESULT STDMETHODCALLTYPE get_RequiredConfidence(
17025        SpeechEngineConfidence *RequiredConfidence) = 0;
17026
17027    virtual HRESULT STDMETHODCALLTYPE get_ActualConfidence(
17028        SpeechEngineConfidence *ActualConfidence) = 0;
17029
17030    virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
17031        float *EngineConfidence) = 0;
17032
17033};
17034#ifdef __CRT_UUID_DECL
17035__CRT_UUID_DECL(ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4)
17036#endif
17037#else
17038typedef struct ISpeechPhraseElementVtbl {
17039    BEGIN_INTERFACE
17040
17041    /*** IUnknown methods ***/
17042    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17043        ISpeechPhraseElement *This,
17044        REFIID riid,
17045        void **ppvObject);
17046
17047    ULONG (STDMETHODCALLTYPE *AddRef)(
17048        ISpeechPhraseElement *This);
17049
17050    ULONG (STDMETHODCALLTYPE *Release)(
17051        ISpeechPhraseElement *This);
17052
17053    /*** IDispatch methods ***/
17054    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17055        ISpeechPhraseElement *This,
17056        UINT *pctinfo);
17057
17058    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17059        ISpeechPhraseElement *This,
17060        UINT iTInfo,
17061        LCID lcid,
17062        ITypeInfo **ppTInfo);
17063
17064    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17065        ISpeechPhraseElement *This,
17066        REFIID riid,
17067        LPOLESTR *rgszNames,
17068        UINT cNames,
17069        LCID lcid,
17070        DISPID *rgDispId);
17071
17072    HRESULT (STDMETHODCALLTYPE *Invoke)(
17073        ISpeechPhraseElement *This,
17074        DISPID dispIdMember,
17075        REFIID riid,
17076        LCID lcid,
17077        WORD wFlags,
17078        DISPPARAMS *pDispParams,
17079        VARIANT *pVarResult,
17080        EXCEPINFO *pExcepInfo,
17081        UINT *puArgErr);
17082
17083    /*** ISpeechPhraseElement methods ***/
17084    HRESULT (STDMETHODCALLTYPE *get_AudioTimeOffset)(
17085        ISpeechPhraseElement *This,
17086        LONG *AudioTimeOffset);
17087
17088    HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
17089        ISpeechPhraseElement *This,
17090        LONG *AudioSizeTime);
17091
17092    HRESULT (STDMETHODCALLTYPE *get_AudioStreamOffset)(
17093        ISpeechPhraseElement *This,
17094        LONG *AudioStreamOffset);
17095
17096    HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
17097        ISpeechPhraseElement *This,
17098        LONG *AudioSizeBytes);
17099
17100    HRESULT (STDMETHODCALLTYPE *get_RetainedStreamOffset)(
17101        ISpeechPhraseElement *This,
17102        LONG *RetainedStreamOffset);
17103
17104    HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
17105        ISpeechPhraseElement *This,
17106        LONG *RetainedSizeBytes);
17107
17108    HRESULT (STDMETHODCALLTYPE *get_DisplayText)(
17109        ISpeechPhraseElement *This,
17110        BSTR *DisplayText);
17111
17112    HRESULT (STDMETHODCALLTYPE *get_LexicalForm)(
17113        ISpeechPhraseElement *This,
17114        BSTR *LexicalForm);
17115
17116    HRESULT (STDMETHODCALLTYPE *get_Pronunciation)(
17117        ISpeechPhraseElement *This,
17118        VARIANT *Pronunciation);
17119
17120    HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
17121        ISpeechPhraseElement *This,
17122        SpeechDisplayAttributes *DisplayAttributes);
17123
17124    HRESULT (STDMETHODCALLTYPE *get_RequiredConfidence)(
17125        ISpeechPhraseElement *This,
17126        SpeechEngineConfidence *RequiredConfidence);
17127
17128    HRESULT (STDMETHODCALLTYPE *get_ActualConfidence)(
17129        ISpeechPhraseElement *This,
17130        SpeechEngineConfidence *ActualConfidence);
17131
17132    HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
17133        ISpeechPhraseElement *This,
17134        float *EngineConfidence);
17135
17136    END_INTERFACE
17137} ISpeechPhraseElementVtbl;
17138
17139interface ISpeechPhraseElement {
17140    CONST_VTBL ISpeechPhraseElementVtbl* lpVtbl;
17141};
17142
17143#ifdef COBJMACROS
17144#ifndef WIDL_C_INLINE_WRAPPERS
17145/*** IUnknown methods ***/
17146#define ISpeechPhraseElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17147#define ISpeechPhraseElement_AddRef(This) (This)->lpVtbl->AddRef(This)
17148#define ISpeechPhraseElement_Release(This) (This)->lpVtbl->Release(This)
17149/*** IDispatch methods ***/
17150#define ISpeechPhraseElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17151#define ISpeechPhraseElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17152#define ISpeechPhraseElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17153#define ISpeechPhraseElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17154/*** ISpeechPhraseElement methods ***/
17155#define ISpeechPhraseElement_get_AudioTimeOffset(This,AudioTimeOffset) (This)->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset)
17156#define ISpeechPhraseElement_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
17157#define ISpeechPhraseElement_get_AudioStreamOffset(This,AudioStreamOffset) (This)->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset)
17158#define ISpeechPhraseElement_get_AudioSizeBytes(This,AudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes)
17159#define ISpeechPhraseElement_get_RetainedStreamOffset(This,RetainedStreamOffset) (This)->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset)
17160#define ISpeechPhraseElement_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
17161#define ISpeechPhraseElement_get_DisplayText(This,DisplayText) (This)->lpVtbl->get_DisplayText(This,DisplayText)
17162#define ISpeechPhraseElement_get_LexicalForm(This,LexicalForm) (This)->lpVtbl->get_LexicalForm(This,LexicalForm)
17163#define ISpeechPhraseElement_get_Pronunciation(This,Pronunciation) (This)->lpVtbl->get_Pronunciation(This,Pronunciation)
17164#define ISpeechPhraseElement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
17165#define ISpeechPhraseElement_get_RequiredConfidence(This,RequiredConfidence) (This)->lpVtbl->get_RequiredConfidence(This,RequiredConfidence)
17166#define ISpeechPhraseElement_get_ActualConfidence(This,ActualConfidence) (This)->lpVtbl->get_ActualConfidence(This,ActualConfidence)
17167#define ISpeechPhraseElement_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
17168#else
17169/*** IUnknown methods ***/
17170static inline HRESULT ISpeechPhraseElement_QueryInterface(ISpeechPhraseElement* This,REFIID riid,void **ppvObject) {
17171    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17172}
17173static inline ULONG ISpeechPhraseElement_AddRef(ISpeechPhraseElement* This) {
17174    return This->lpVtbl->AddRef(This);
17175}
17176static inline ULONG ISpeechPhraseElement_Release(ISpeechPhraseElement* This) {
17177    return This->lpVtbl->Release(This);
17178}
17179/*** IDispatch methods ***/
17180static inline HRESULT ISpeechPhraseElement_GetTypeInfoCount(ISpeechPhraseElement* This,UINT *pctinfo) {
17181    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17182}
17183static inline HRESULT ISpeechPhraseElement_GetTypeInfo(ISpeechPhraseElement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17184    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17185}
17186static inline HRESULT ISpeechPhraseElement_GetIDsOfNames(ISpeechPhraseElement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17187    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17188}
17189static inline HRESULT ISpeechPhraseElement_Invoke(ISpeechPhraseElement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17190    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17191}
17192/*** ISpeechPhraseElement methods ***/
17193static inline HRESULT ISpeechPhraseElement_get_AudioTimeOffset(ISpeechPhraseElement* This,LONG *AudioTimeOffset) {
17194    return This->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset);
17195}
17196static inline HRESULT ISpeechPhraseElement_get_AudioSizeTime(ISpeechPhraseElement* This,LONG *AudioSizeTime) {
17197    return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
17198}
17199static inline HRESULT ISpeechPhraseElement_get_AudioStreamOffset(ISpeechPhraseElement* This,LONG *AudioStreamOffset) {
17200    return This->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset);
17201}
17202static inline HRESULT ISpeechPhraseElement_get_AudioSizeBytes(ISpeechPhraseElement* This,LONG *AudioSizeBytes) {
17203    return This->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes);
17204}
17205static inline HRESULT ISpeechPhraseElement_get_RetainedStreamOffset(ISpeechPhraseElement* This,LONG *RetainedStreamOffset) {
17206    return This->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset);
17207}
17208static inline HRESULT ISpeechPhraseElement_get_RetainedSizeBytes(ISpeechPhraseElement* This,LONG *RetainedSizeBytes) {
17209    return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
17210}
17211static inline HRESULT ISpeechPhraseElement_get_DisplayText(ISpeechPhraseElement* This,BSTR *DisplayText) {
17212    return This->lpVtbl->get_DisplayText(This,DisplayText);
17213}
17214static inline HRESULT ISpeechPhraseElement_get_LexicalForm(ISpeechPhraseElement* This,BSTR *LexicalForm) {
17215    return This->lpVtbl->get_LexicalForm(This,LexicalForm);
17216}
17217static inline HRESULT ISpeechPhraseElement_get_Pronunciation(ISpeechPhraseElement* This,VARIANT *Pronunciation) {
17218    return This->lpVtbl->get_Pronunciation(This,Pronunciation);
17219}
17220static inline HRESULT ISpeechPhraseElement_get_DisplayAttributes(ISpeechPhraseElement* This,SpeechDisplayAttributes *DisplayAttributes) {
17221    return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
17222}
17223static inline HRESULT ISpeechPhraseElement_get_RequiredConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *RequiredConfidence) {
17224    return This->lpVtbl->get_RequiredConfidence(This,RequiredConfidence);
17225}
17226static inline HRESULT ISpeechPhraseElement_get_ActualConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *ActualConfidence) {
17227    return This->lpVtbl->get_ActualConfidence(This,ActualConfidence);
17228}
17229static inline HRESULT ISpeechPhraseElement_get_EngineConfidence(ISpeechPhraseElement* This,float *EngineConfidence) {
17230    return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
17231}
17232#endif
17233#endif
17234
17235#endif
17236
17237
17238#endif  /* __ISpeechPhraseElement_INTERFACE_DEFINED__ */
17239
17240/*****************************************************************************
17241 * ISpeechPhraseElements interface
17242 */
17243#ifndef __ISpeechPhraseElements_INTERFACE_DEFINED__
17244#define __ISpeechPhraseElements_INTERFACE_DEFINED__
17245
17246DEFINE_GUID(IID_ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3);
17247#if defined(__cplusplus) && !defined(CINTERFACE)
17248MIDL_INTERFACE("0626b328-3478-467d-a0b3-d0853b93dda3")
17249ISpeechPhraseElements : public IDispatch
17250{
17251    virtual HRESULT STDMETHODCALLTYPE get_Count(
17252        LONG *Count) = 0;
17253
17254    virtual HRESULT STDMETHODCALLTYPE Item(
17255        LONG Index,
17256        ISpeechPhraseElement **Element) = 0;
17257
17258    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
17259        IUnknown **EnumVARIANT) = 0;
17260
17261};
17262#ifdef __CRT_UUID_DECL
17263__CRT_UUID_DECL(ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3)
17264#endif
17265#else
17266typedef struct ISpeechPhraseElementsVtbl {
17267    BEGIN_INTERFACE
17268
17269    /*** IUnknown methods ***/
17270    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17271        ISpeechPhraseElements *This,
17272        REFIID riid,
17273        void **ppvObject);
17274
17275    ULONG (STDMETHODCALLTYPE *AddRef)(
17276        ISpeechPhraseElements *This);
17277
17278    ULONG (STDMETHODCALLTYPE *Release)(
17279        ISpeechPhraseElements *This);
17280
17281    /*** IDispatch methods ***/
17282    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17283        ISpeechPhraseElements *This,
17284        UINT *pctinfo);
17285
17286    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17287        ISpeechPhraseElements *This,
17288        UINT iTInfo,
17289        LCID lcid,
17290        ITypeInfo **ppTInfo);
17291
17292    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17293        ISpeechPhraseElements *This,
17294        REFIID riid,
17295        LPOLESTR *rgszNames,
17296        UINT cNames,
17297        LCID lcid,
17298        DISPID *rgDispId);
17299
17300    HRESULT (STDMETHODCALLTYPE *Invoke)(
17301        ISpeechPhraseElements *This,
17302        DISPID dispIdMember,
17303        REFIID riid,
17304        LCID lcid,
17305        WORD wFlags,
17306        DISPPARAMS *pDispParams,
17307        VARIANT *pVarResult,
17308        EXCEPINFO *pExcepInfo,
17309        UINT *puArgErr);
17310
17311    /*** ISpeechPhraseElements methods ***/
17312    HRESULT (STDMETHODCALLTYPE *get_Count)(
17313        ISpeechPhraseElements *This,
17314        LONG *Count);
17315
17316    HRESULT (STDMETHODCALLTYPE *Item)(
17317        ISpeechPhraseElements *This,
17318        LONG Index,
17319        ISpeechPhraseElement **Element);
17320
17321    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
17322        ISpeechPhraseElements *This,
17323        IUnknown **EnumVARIANT);
17324
17325    END_INTERFACE
17326} ISpeechPhraseElementsVtbl;
17327
17328interface ISpeechPhraseElements {
17329    CONST_VTBL ISpeechPhraseElementsVtbl* lpVtbl;
17330};
17331
17332#ifdef COBJMACROS
17333#ifndef WIDL_C_INLINE_WRAPPERS
17334/*** IUnknown methods ***/
17335#define ISpeechPhraseElements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17336#define ISpeechPhraseElements_AddRef(This) (This)->lpVtbl->AddRef(This)
17337#define ISpeechPhraseElements_Release(This) (This)->lpVtbl->Release(This)
17338/*** IDispatch methods ***/
17339#define ISpeechPhraseElements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17340#define ISpeechPhraseElements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17341#define ISpeechPhraseElements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17342#define ISpeechPhraseElements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17343/*** ISpeechPhraseElements methods ***/
17344#define ISpeechPhraseElements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
17345#define ISpeechPhraseElements_Item(This,Index,Element) (This)->lpVtbl->Item(This,Index,Element)
17346#define ISpeechPhraseElements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
17347#else
17348/*** IUnknown methods ***/
17349static inline HRESULT ISpeechPhraseElements_QueryInterface(ISpeechPhraseElements* This,REFIID riid,void **ppvObject) {
17350    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17351}
17352static inline ULONG ISpeechPhraseElements_AddRef(ISpeechPhraseElements* This) {
17353    return This->lpVtbl->AddRef(This);
17354}
17355static inline ULONG ISpeechPhraseElements_Release(ISpeechPhraseElements* This) {
17356    return This->lpVtbl->Release(This);
17357}
17358/*** IDispatch methods ***/
17359static inline HRESULT ISpeechPhraseElements_GetTypeInfoCount(ISpeechPhraseElements* This,UINT *pctinfo) {
17360    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17361}
17362static inline HRESULT ISpeechPhraseElements_GetTypeInfo(ISpeechPhraseElements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17363    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17364}
17365static inline HRESULT ISpeechPhraseElements_GetIDsOfNames(ISpeechPhraseElements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17366    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17367}
17368static inline HRESULT ISpeechPhraseElements_Invoke(ISpeechPhraseElements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17369    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17370}
17371/*** ISpeechPhraseElements methods ***/
17372static inline HRESULT ISpeechPhraseElements_get_Count(ISpeechPhraseElements* This,LONG *Count) {
17373    return This->lpVtbl->get_Count(This,Count);
17374}
17375static inline HRESULT ISpeechPhraseElements_Item(ISpeechPhraseElements* This,LONG Index,ISpeechPhraseElement **Element) {
17376    return This->lpVtbl->Item(This,Index,Element);
17377}
17378static inline HRESULT ISpeechPhraseElements_get__NewEnum(ISpeechPhraseElements* This,IUnknown **EnumVARIANT) {
17379    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
17380}
17381#endif
17382#endif
17383
17384#endif
17385
17386
17387#endif  /* __ISpeechPhraseElements_INTERFACE_DEFINED__ */
17388
17389/*****************************************************************************
17390 * ISpeechPhraseReplacement interface
17391 */
17392#ifndef __ISpeechPhraseReplacement_INTERFACE_DEFINED__
17393#define __ISpeechPhraseReplacement_INTERFACE_DEFINED__
17394
17395DEFINE_GUID(IID_ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02);
17396#if defined(__cplusplus) && !defined(CINTERFACE)
17397MIDL_INTERFACE("2890a410-53a7-4fb5-94ec-06d4998e3d02")
17398ISpeechPhraseReplacement : public IDispatch
17399{
17400    virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
17401        SpeechDisplayAttributes *DisplayAttributes) = 0;
17402
17403    virtual HRESULT STDMETHODCALLTYPE get_Text(
17404        BSTR *Text) = 0;
17405
17406    virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
17407        LONG *FirstElement) = 0;
17408
17409    virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
17410        LONG *NumberOfElements) = 0;
17411
17412};
17413#ifdef __CRT_UUID_DECL
17414__CRT_UUID_DECL(ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02)
17415#endif
17416#else
17417typedef struct ISpeechPhraseReplacementVtbl {
17418    BEGIN_INTERFACE
17419
17420    /*** IUnknown methods ***/
17421    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17422        ISpeechPhraseReplacement *This,
17423        REFIID riid,
17424        void **ppvObject);
17425
17426    ULONG (STDMETHODCALLTYPE *AddRef)(
17427        ISpeechPhraseReplacement *This);
17428
17429    ULONG (STDMETHODCALLTYPE *Release)(
17430        ISpeechPhraseReplacement *This);
17431
17432    /*** IDispatch methods ***/
17433    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17434        ISpeechPhraseReplacement *This,
17435        UINT *pctinfo);
17436
17437    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17438        ISpeechPhraseReplacement *This,
17439        UINT iTInfo,
17440        LCID lcid,
17441        ITypeInfo **ppTInfo);
17442
17443    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17444        ISpeechPhraseReplacement *This,
17445        REFIID riid,
17446        LPOLESTR *rgszNames,
17447        UINT cNames,
17448        LCID lcid,
17449        DISPID *rgDispId);
17450
17451    HRESULT (STDMETHODCALLTYPE *Invoke)(
17452        ISpeechPhraseReplacement *This,
17453        DISPID dispIdMember,
17454        REFIID riid,
17455        LCID lcid,
17456        WORD wFlags,
17457        DISPPARAMS *pDispParams,
17458        VARIANT *pVarResult,
17459        EXCEPINFO *pExcepInfo,
17460        UINT *puArgErr);
17461
17462    /*** ISpeechPhraseReplacement methods ***/
17463    HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
17464        ISpeechPhraseReplacement *This,
17465        SpeechDisplayAttributes *DisplayAttributes);
17466
17467    HRESULT (STDMETHODCALLTYPE *get_Text)(
17468        ISpeechPhraseReplacement *This,
17469        BSTR *Text);
17470
17471    HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
17472        ISpeechPhraseReplacement *This,
17473        LONG *FirstElement);
17474
17475    HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
17476        ISpeechPhraseReplacement *This,
17477        LONG *NumberOfElements);
17478
17479    END_INTERFACE
17480} ISpeechPhraseReplacementVtbl;
17481
17482interface ISpeechPhraseReplacement {
17483    CONST_VTBL ISpeechPhraseReplacementVtbl* lpVtbl;
17484};
17485
17486#ifdef COBJMACROS
17487#ifndef WIDL_C_INLINE_WRAPPERS
17488/*** IUnknown methods ***/
17489#define ISpeechPhraseReplacement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17490#define ISpeechPhraseReplacement_AddRef(This) (This)->lpVtbl->AddRef(This)
17491#define ISpeechPhraseReplacement_Release(This) (This)->lpVtbl->Release(This)
17492/*** IDispatch methods ***/
17493#define ISpeechPhraseReplacement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17494#define ISpeechPhraseReplacement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17495#define ISpeechPhraseReplacement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17496#define ISpeechPhraseReplacement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17497/*** ISpeechPhraseReplacement methods ***/
17498#define ISpeechPhraseReplacement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
17499#define ISpeechPhraseReplacement_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
17500#define ISpeechPhraseReplacement_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
17501#define ISpeechPhraseReplacement_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
17502#else
17503/*** IUnknown methods ***/
17504static inline HRESULT ISpeechPhraseReplacement_QueryInterface(ISpeechPhraseReplacement* This,REFIID riid,void **ppvObject) {
17505    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17506}
17507static inline ULONG ISpeechPhraseReplacement_AddRef(ISpeechPhraseReplacement* This) {
17508    return This->lpVtbl->AddRef(This);
17509}
17510static inline ULONG ISpeechPhraseReplacement_Release(ISpeechPhraseReplacement* This) {
17511    return This->lpVtbl->Release(This);
17512}
17513/*** IDispatch methods ***/
17514static inline HRESULT ISpeechPhraseReplacement_GetTypeInfoCount(ISpeechPhraseReplacement* This,UINT *pctinfo) {
17515    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17516}
17517static inline HRESULT ISpeechPhraseReplacement_GetTypeInfo(ISpeechPhraseReplacement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17518    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17519}
17520static inline HRESULT ISpeechPhraseReplacement_GetIDsOfNames(ISpeechPhraseReplacement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17521    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17522}
17523static inline HRESULT ISpeechPhraseReplacement_Invoke(ISpeechPhraseReplacement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17524    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17525}
17526/*** ISpeechPhraseReplacement methods ***/
17527static inline HRESULT ISpeechPhraseReplacement_get_DisplayAttributes(ISpeechPhraseReplacement* This,SpeechDisplayAttributes *DisplayAttributes) {
17528    return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
17529}
17530static inline HRESULT ISpeechPhraseReplacement_get_Text(ISpeechPhraseReplacement* This,BSTR *Text) {
17531    return This->lpVtbl->get_Text(This,Text);
17532}
17533static inline HRESULT ISpeechPhraseReplacement_get_FirstElement(ISpeechPhraseReplacement* This,LONG *FirstElement) {
17534    return This->lpVtbl->get_FirstElement(This,FirstElement);
17535}
17536static inline HRESULT ISpeechPhraseReplacement_get_NumberOfElements(ISpeechPhraseReplacement* This,LONG *NumberOfElements) {
17537    return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
17538}
17539#endif
17540#endif
17541
17542#endif
17543
17544
17545#endif  /* __ISpeechPhraseReplacement_INTERFACE_DEFINED__ */
17546
17547/*****************************************************************************
17548 * ISpeechPhraseReplacements interface
17549 */
17550#ifndef __ISpeechPhraseReplacements_INTERFACE_DEFINED__
17551#define __ISpeechPhraseReplacements_INTERFACE_DEFINED__
17552
17553DEFINE_GUID(IID_ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05);
17554#if defined(__cplusplus) && !defined(CINTERFACE)
17555MIDL_INTERFACE("38bc662f-2257-4525-959e-2069d2596c05")
17556ISpeechPhraseReplacements : public IDispatch
17557{
17558    virtual HRESULT STDMETHODCALLTYPE get_Count(
17559        LONG *Count) = 0;
17560
17561    virtual HRESULT STDMETHODCALLTYPE Item(
17562        LONG Index,
17563        ISpeechPhraseReplacement **Reps) = 0;
17564
17565    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
17566        IUnknown **EnumVARIANT) = 0;
17567
17568};
17569#ifdef __CRT_UUID_DECL
17570__CRT_UUID_DECL(ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05)
17571#endif
17572#else
17573typedef struct ISpeechPhraseReplacementsVtbl {
17574    BEGIN_INTERFACE
17575
17576    /*** IUnknown methods ***/
17577    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17578        ISpeechPhraseReplacements *This,
17579        REFIID riid,
17580        void **ppvObject);
17581
17582    ULONG (STDMETHODCALLTYPE *AddRef)(
17583        ISpeechPhraseReplacements *This);
17584
17585    ULONG (STDMETHODCALLTYPE *Release)(
17586        ISpeechPhraseReplacements *This);
17587
17588    /*** IDispatch methods ***/
17589    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17590        ISpeechPhraseReplacements *This,
17591        UINT *pctinfo);
17592
17593    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17594        ISpeechPhraseReplacements *This,
17595        UINT iTInfo,
17596        LCID lcid,
17597        ITypeInfo **ppTInfo);
17598
17599    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17600        ISpeechPhraseReplacements *This,
17601        REFIID riid,
17602        LPOLESTR *rgszNames,
17603        UINT cNames,
17604        LCID lcid,
17605        DISPID *rgDispId);
17606
17607    HRESULT (STDMETHODCALLTYPE *Invoke)(
17608        ISpeechPhraseReplacements *This,
17609        DISPID dispIdMember,
17610        REFIID riid,
17611        LCID lcid,
17612        WORD wFlags,
17613        DISPPARAMS *pDispParams,
17614        VARIANT *pVarResult,
17615        EXCEPINFO *pExcepInfo,
17616        UINT *puArgErr);
17617
17618    /*** ISpeechPhraseReplacements methods ***/
17619    HRESULT (STDMETHODCALLTYPE *get_Count)(
17620        ISpeechPhraseReplacements *This,
17621        LONG *Count);
17622
17623    HRESULT (STDMETHODCALLTYPE *Item)(
17624        ISpeechPhraseReplacements *This,
17625        LONG Index,
17626        ISpeechPhraseReplacement **Reps);
17627
17628    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
17629        ISpeechPhraseReplacements *This,
17630        IUnknown **EnumVARIANT);
17631
17632    END_INTERFACE
17633} ISpeechPhraseReplacementsVtbl;
17634
17635interface ISpeechPhraseReplacements {
17636    CONST_VTBL ISpeechPhraseReplacementsVtbl* lpVtbl;
17637};
17638
17639#ifdef COBJMACROS
17640#ifndef WIDL_C_INLINE_WRAPPERS
17641/*** IUnknown methods ***/
17642#define ISpeechPhraseReplacements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17643#define ISpeechPhraseReplacements_AddRef(This) (This)->lpVtbl->AddRef(This)
17644#define ISpeechPhraseReplacements_Release(This) (This)->lpVtbl->Release(This)
17645/*** IDispatch methods ***/
17646#define ISpeechPhraseReplacements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17647#define ISpeechPhraseReplacements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17648#define ISpeechPhraseReplacements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17649#define ISpeechPhraseReplacements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17650/*** ISpeechPhraseReplacements methods ***/
17651#define ISpeechPhraseReplacements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
17652#define ISpeechPhraseReplacements_Item(This,Index,Reps) (This)->lpVtbl->Item(This,Index,Reps)
17653#define ISpeechPhraseReplacements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
17654#else
17655/*** IUnknown methods ***/
17656static inline HRESULT ISpeechPhraseReplacements_QueryInterface(ISpeechPhraseReplacements* This,REFIID riid,void **ppvObject) {
17657    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17658}
17659static inline ULONG ISpeechPhraseReplacements_AddRef(ISpeechPhraseReplacements* This) {
17660    return This->lpVtbl->AddRef(This);
17661}
17662static inline ULONG ISpeechPhraseReplacements_Release(ISpeechPhraseReplacements* This) {
17663    return This->lpVtbl->Release(This);
17664}
17665/*** IDispatch methods ***/
17666static inline HRESULT ISpeechPhraseReplacements_GetTypeInfoCount(ISpeechPhraseReplacements* This,UINT *pctinfo) {
17667    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17668}
17669static inline HRESULT ISpeechPhraseReplacements_GetTypeInfo(ISpeechPhraseReplacements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17670    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17671}
17672static inline HRESULT ISpeechPhraseReplacements_GetIDsOfNames(ISpeechPhraseReplacements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17673    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17674}
17675static inline HRESULT ISpeechPhraseReplacements_Invoke(ISpeechPhraseReplacements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17676    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17677}
17678/*** ISpeechPhraseReplacements methods ***/
17679static inline HRESULT ISpeechPhraseReplacements_get_Count(ISpeechPhraseReplacements* This,LONG *Count) {
17680    return This->lpVtbl->get_Count(This,Count);
17681}
17682static inline HRESULT ISpeechPhraseReplacements_Item(ISpeechPhraseReplacements* This,LONG Index,ISpeechPhraseReplacement **Reps) {
17683    return This->lpVtbl->Item(This,Index,Reps);
17684}
17685static inline HRESULT ISpeechPhraseReplacements_get__NewEnum(ISpeechPhraseReplacements* This,IUnknown **EnumVARIANT) {
17686    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
17687}
17688#endif
17689#endif
17690
17691#endif
17692
17693
17694#endif  /* __ISpeechPhraseReplacements_INTERFACE_DEFINED__ */
17695
17696/*****************************************************************************
17697 * ISpeechPhraseProperty interface
17698 */
17699#ifndef __ISpeechPhraseProperty_INTERFACE_DEFINED__
17700#define __ISpeechPhraseProperty_INTERFACE_DEFINED__
17701
17702DEFINE_GUID(IID_ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe);
17703#if defined(__cplusplus) && !defined(CINTERFACE)
17704MIDL_INTERFACE("ce563d48-961e-4732-a2e1-378a42b430be")
17705ISpeechPhraseProperty : public IDispatch
17706{
17707    virtual HRESULT STDMETHODCALLTYPE get_Name(
17708        BSTR *Name) = 0;
17709
17710    virtual HRESULT STDMETHODCALLTYPE get_Id(
17711        LONG *Id) = 0;
17712
17713    virtual HRESULT STDMETHODCALLTYPE get_Value(
17714        VARIANT *Value) = 0;
17715
17716    virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
17717        LONG *FirstElement) = 0;
17718
17719    virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
17720        LONG *NumberOfElements) = 0;
17721
17722    virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
17723        float *Confidence) = 0;
17724
17725    virtual HRESULT STDMETHODCALLTYPE get_Confidence(
17726        SpeechEngineConfidence *Confidence) = 0;
17727
17728    virtual HRESULT STDMETHODCALLTYPE get_Parent(
17729        ISpeechPhraseProperty **ParentProperty) = 0;
17730
17731    virtual HRESULT STDMETHODCALLTYPE get_Children(
17732        ISpeechPhraseProperties **Children) = 0;
17733
17734};
17735#ifdef __CRT_UUID_DECL
17736__CRT_UUID_DECL(ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe)
17737#endif
17738#else
17739typedef struct ISpeechPhrasePropertyVtbl {
17740    BEGIN_INTERFACE
17741
17742    /*** IUnknown methods ***/
17743    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17744        ISpeechPhraseProperty *This,
17745        REFIID riid,
17746        void **ppvObject);
17747
17748    ULONG (STDMETHODCALLTYPE *AddRef)(
17749        ISpeechPhraseProperty *This);
17750
17751    ULONG (STDMETHODCALLTYPE *Release)(
17752        ISpeechPhraseProperty *This);
17753
17754    /*** IDispatch methods ***/
17755    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17756        ISpeechPhraseProperty *This,
17757        UINT *pctinfo);
17758
17759    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17760        ISpeechPhraseProperty *This,
17761        UINT iTInfo,
17762        LCID lcid,
17763        ITypeInfo **ppTInfo);
17764
17765    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17766        ISpeechPhraseProperty *This,
17767        REFIID riid,
17768        LPOLESTR *rgszNames,
17769        UINT cNames,
17770        LCID lcid,
17771        DISPID *rgDispId);
17772
17773    HRESULT (STDMETHODCALLTYPE *Invoke)(
17774        ISpeechPhraseProperty *This,
17775        DISPID dispIdMember,
17776        REFIID riid,
17777        LCID lcid,
17778        WORD wFlags,
17779        DISPPARAMS *pDispParams,
17780        VARIANT *pVarResult,
17781        EXCEPINFO *pExcepInfo,
17782        UINT *puArgErr);
17783
17784    /*** ISpeechPhraseProperty methods ***/
17785    HRESULT (STDMETHODCALLTYPE *get_Name)(
17786        ISpeechPhraseProperty *This,
17787        BSTR *Name);
17788
17789    HRESULT (STDMETHODCALLTYPE *get_Id)(
17790        ISpeechPhraseProperty *This,
17791        LONG *Id);
17792
17793    HRESULT (STDMETHODCALLTYPE *get_Value)(
17794        ISpeechPhraseProperty *This,
17795        VARIANT *Value);
17796
17797    HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
17798        ISpeechPhraseProperty *This,
17799        LONG *FirstElement);
17800
17801    HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
17802        ISpeechPhraseProperty *This,
17803        LONG *NumberOfElements);
17804
17805    HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
17806        ISpeechPhraseProperty *This,
17807        float *Confidence);
17808
17809    HRESULT (STDMETHODCALLTYPE *get_Confidence)(
17810        ISpeechPhraseProperty *This,
17811        SpeechEngineConfidence *Confidence);
17812
17813    HRESULT (STDMETHODCALLTYPE *get_Parent)(
17814        ISpeechPhraseProperty *This,
17815        ISpeechPhraseProperty **ParentProperty);
17816
17817    HRESULT (STDMETHODCALLTYPE *get_Children)(
17818        ISpeechPhraseProperty *This,
17819        ISpeechPhraseProperties **Children);
17820
17821    END_INTERFACE
17822} ISpeechPhrasePropertyVtbl;
17823
17824interface ISpeechPhraseProperty {
17825    CONST_VTBL ISpeechPhrasePropertyVtbl* lpVtbl;
17826};
17827
17828#ifdef COBJMACROS
17829#ifndef WIDL_C_INLINE_WRAPPERS
17830/*** IUnknown methods ***/
17831#define ISpeechPhraseProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17832#define ISpeechPhraseProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
17833#define ISpeechPhraseProperty_Release(This) (This)->lpVtbl->Release(This)
17834/*** IDispatch methods ***/
17835#define ISpeechPhraseProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17836#define ISpeechPhraseProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17837#define ISpeechPhraseProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17838#define ISpeechPhraseProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17839/*** ISpeechPhraseProperty methods ***/
17840#define ISpeechPhraseProperty_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
17841#define ISpeechPhraseProperty_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
17842#define ISpeechPhraseProperty_get_Value(This,Value) (This)->lpVtbl->get_Value(This,Value)
17843#define ISpeechPhraseProperty_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
17844#define ISpeechPhraseProperty_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
17845#define ISpeechPhraseProperty_get_EngineConfidence(This,Confidence) (This)->lpVtbl->get_EngineConfidence(This,Confidence)
17846#define ISpeechPhraseProperty_get_Confidence(This,Confidence) (This)->lpVtbl->get_Confidence(This,Confidence)
17847#define ISpeechPhraseProperty_get_Parent(This,ParentProperty) (This)->lpVtbl->get_Parent(This,ParentProperty)
17848#define ISpeechPhraseProperty_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
17849#else
17850/*** IUnknown methods ***/
17851static inline HRESULT ISpeechPhraseProperty_QueryInterface(ISpeechPhraseProperty* This,REFIID riid,void **ppvObject) {
17852    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17853}
17854static inline ULONG ISpeechPhraseProperty_AddRef(ISpeechPhraseProperty* This) {
17855    return This->lpVtbl->AddRef(This);
17856}
17857static inline ULONG ISpeechPhraseProperty_Release(ISpeechPhraseProperty* This) {
17858    return This->lpVtbl->Release(This);
17859}
17860/*** IDispatch methods ***/
17861static inline HRESULT ISpeechPhraseProperty_GetTypeInfoCount(ISpeechPhraseProperty* This,UINT *pctinfo) {
17862    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17863}
17864static inline HRESULT ISpeechPhraseProperty_GetTypeInfo(ISpeechPhraseProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17865    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17866}
17867static inline HRESULT ISpeechPhraseProperty_GetIDsOfNames(ISpeechPhraseProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17868    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17869}
17870static inline HRESULT ISpeechPhraseProperty_Invoke(ISpeechPhraseProperty* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17871    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17872}
17873/*** ISpeechPhraseProperty methods ***/
17874static inline HRESULT ISpeechPhraseProperty_get_Name(ISpeechPhraseProperty* This,BSTR *Name) {
17875    return This->lpVtbl->get_Name(This,Name);
17876}
17877static inline HRESULT ISpeechPhraseProperty_get_Id(ISpeechPhraseProperty* This,LONG *Id) {
17878    return This->lpVtbl->get_Id(This,Id);
17879}
17880static inline HRESULT ISpeechPhraseProperty_get_Value(ISpeechPhraseProperty* This,VARIANT *Value) {
17881    return This->lpVtbl->get_Value(This,Value);
17882}
17883static inline HRESULT ISpeechPhraseProperty_get_FirstElement(ISpeechPhraseProperty* This,LONG *FirstElement) {
17884    return This->lpVtbl->get_FirstElement(This,FirstElement);
17885}
17886static inline HRESULT ISpeechPhraseProperty_get_NumberOfElements(ISpeechPhraseProperty* This,LONG *NumberOfElements) {
17887    return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
17888}
17889static inline HRESULT ISpeechPhraseProperty_get_EngineConfidence(ISpeechPhraseProperty* This,float *Confidence) {
17890    return This->lpVtbl->get_EngineConfidence(This,Confidence);
17891}
17892static inline HRESULT ISpeechPhraseProperty_get_Confidence(ISpeechPhraseProperty* This,SpeechEngineConfidence *Confidence) {
17893    return This->lpVtbl->get_Confidence(This,Confidence);
17894}
17895static inline HRESULT ISpeechPhraseProperty_get_Parent(ISpeechPhraseProperty* This,ISpeechPhraseProperty **ParentProperty) {
17896    return This->lpVtbl->get_Parent(This,ParentProperty);
17897}
17898static inline HRESULT ISpeechPhraseProperty_get_Children(ISpeechPhraseProperty* This,ISpeechPhraseProperties **Children) {
17899    return This->lpVtbl->get_Children(This,Children);
17900}
17901#endif
17902#endif
17903
17904#endif
17905
17906
17907#endif  /* __ISpeechPhraseProperty_INTERFACE_DEFINED__ */
17908
17909/*****************************************************************************
17910 * ISpeechPhraseProperties interface
17911 */
17912#ifndef __ISpeechPhraseProperties_INTERFACE_DEFINED__
17913#define __ISpeechPhraseProperties_INTERFACE_DEFINED__
17914
17915DEFINE_GUID(IID_ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4);
17916#if defined(__cplusplus) && !defined(CINTERFACE)
17917MIDL_INTERFACE("08166b47-102e-4b23-a599-bdb98dbfd1f4")
17918ISpeechPhraseProperties : public IDispatch
17919{
17920    virtual HRESULT STDMETHODCALLTYPE get_Count(
17921        LONG *Count) = 0;
17922
17923    virtual HRESULT STDMETHODCALLTYPE Item(
17924        LONG Index,
17925        ISpeechPhraseProperty **Property) = 0;
17926
17927    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
17928        IUnknown **EnumVARIANT) = 0;
17929
17930};
17931#ifdef __CRT_UUID_DECL
17932__CRT_UUID_DECL(ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4)
17933#endif
17934#else
17935typedef struct ISpeechPhrasePropertiesVtbl {
17936    BEGIN_INTERFACE
17937
17938    /*** IUnknown methods ***/
17939    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17940        ISpeechPhraseProperties *This,
17941        REFIID riid,
17942        void **ppvObject);
17943
17944    ULONG (STDMETHODCALLTYPE *AddRef)(
17945        ISpeechPhraseProperties *This);
17946
17947    ULONG (STDMETHODCALLTYPE *Release)(
17948        ISpeechPhraseProperties *This);
17949
17950    /*** IDispatch methods ***/
17951    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17952        ISpeechPhraseProperties *This,
17953        UINT *pctinfo);
17954
17955    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17956        ISpeechPhraseProperties *This,
17957        UINT iTInfo,
17958        LCID lcid,
17959        ITypeInfo **ppTInfo);
17960
17961    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17962        ISpeechPhraseProperties *This,
17963        REFIID riid,
17964        LPOLESTR *rgszNames,
17965        UINT cNames,
17966        LCID lcid,
17967        DISPID *rgDispId);
17968
17969    HRESULT (STDMETHODCALLTYPE *Invoke)(
17970        ISpeechPhraseProperties *This,
17971        DISPID dispIdMember,
17972        REFIID riid,
17973        LCID lcid,
17974        WORD wFlags,
17975        DISPPARAMS *pDispParams,
17976        VARIANT *pVarResult,
17977        EXCEPINFO *pExcepInfo,
17978        UINT *puArgErr);
17979
17980    /*** ISpeechPhraseProperties methods ***/
17981    HRESULT (STDMETHODCALLTYPE *get_Count)(
17982        ISpeechPhraseProperties *This,
17983        LONG *Count);
17984
17985    HRESULT (STDMETHODCALLTYPE *Item)(
17986        ISpeechPhraseProperties *This,
17987        LONG Index,
17988        ISpeechPhraseProperty **Property);
17989
17990    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
17991        ISpeechPhraseProperties *This,
17992        IUnknown **EnumVARIANT);
17993
17994    END_INTERFACE
17995} ISpeechPhrasePropertiesVtbl;
17996
17997interface ISpeechPhraseProperties {
17998    CONST_VTBL ISpeechPhrasePropertiesVtbl* lpVtbl;
17999};
18000
18001#ifdef COBJMACROS
18002#ifndef WIDL_C_INLINE_WRAPPERS
18003/*** IUnknown methods ***/
18004#define ISpeechPhraseProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18005#define ISpeechPhraseProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
18006#define ISpeechPhraseProperties_Release(This) (This)->lpVtbl->Release(This)
18007/*** IDispatch methods ***/
18008#define ISpeechPhraseProperties_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18009#define ISpeechPhraseProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18010#define ISpeechPhraseProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18011#define ISpeechPhraseProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18012/*** ISpeechPhraseProperties methods ***/
18013#define ISpeechPhraseProperties_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
18014#define ISpeechPhraseProperties_Item(This,Index,Property) (This)->lpVtbl->Item(This,Index,Property)
18015#define ISpeechPhraseProperties_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
18016#else
18017/*** IUnknown methods ***/
18018static inline HRESULT ISpeechPhraseProperties_QueryInterface(ISpeechPhraseProperties* This,REFIID riid,void **ppvObject) {
18019    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18020}
18021static inline ULONG ISpeechPhraseProperties_AddRef(ISpeechPhraseProperties* This) {
18022    return This->lpVtbl->AddRef(This);
18023}
18024static inline ULONG ISpeechPhraseProperties_Release(ISpeechPhraseProperties* This) {
18025    return This->lpVtbl->Release(This);
18026}
18027/*** IDispatch methods ***/
18028static inline HRESULT ISpeechPhraseProperties_GetTypeInfoCount(ISpeechPhraseProperties* This,UINT *pctinfo) {
18029    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18030}
18031static inline HRESULT ISpeechPhraseProperties_GetTypeInfo(ISpeechPhraseProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18032    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18033}
18034static inline HRESULT ISpeechPhraseProperties_GetIDsOfNames(ISpeechPhraseProperties* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18035    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18036}
18037static inline HRESULT ISpeechPhraseProperties_Invoke(ISpeechPhraseProperties* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18038    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18039}
18040/*** ISpeechPhraseProperties methods ***/
18041static inline HRESULT ISpeechPhraseProperties_get_Count(ISpeechPhraseProperties* This,LONG *Count) {
18042    return This->lpVtbl->get_Count(This,Count);
18043}
18044static inline HRESULT ISpeechPhraseProperties_Item(ISpeechPhraseProperties* This,LONG Index,ISpeechPhraseProperty **Property) {
18045    return This->lpVtbl->Item(This,Index,Property);
18046}
18047static inline HRESULT ISpeechPhraseProperties_get__NewEnum(ISpeechPhraseProperties* This,IUnknown **EnumVARIANT) {
18048    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
18049}
18050#endif
18051#endif
18052
18053#endif
18054
18055
18056#endif  /* __ISpeechPhraseProperties_INTERFACE_DEFINED__ */
18057
18058/*****************************************************************************
18059 * ISpeechPhraseRule interface
18060 */
18061#ifndef __ISpeechPhraseRule_INTERFACE_DEFINED__
18062#define __ISpeechPhraseRule_INTERFACE_DEFINED__
18063
18064DEFINE_GUID(IID_ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64);
18065#if defined(__cplusplus) && !defined(CINTERFACE)
18066MIDL_INTERFACE("a7bfe112-a4a0-48d9-b602-c313843f6964")
18067ISpeechPhraseRule : public IDispatch
18068{
18069    virtual HRESULT STDMETHODCALLTYPE get_Name(
18070        BSTR *Name) = 0;
18071
18072    virtual HRESULT STDMETHODCALLTYPE get_Id(
18073        LONG *Id) = 0;
18074
18075    virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
18076        LONG *FirstElement) = 0;
18077
18078    virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
18079        LONG *NumberOfElements) = 0;
18080
18081    virtual HRESULT STDMETHODCALLTYPE get_Parent(
18082        ISpeechPhraseRule **Parent) = 0;
18083
18084    virtual HRESULT STDMETHODCALLTYPE get_Children(
18085        ISpeechPhraseRules **Children) = 0;
18086
18087    virtual HRESULT STDMETHODCALLTYPE get_Confidence(
18088        SpeechEngineConfidence *ActualConfidence) = 0;
18089
18090    virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
18091        float *EngineConfidence) = 0;
18092
18093};
18094#ifdef __CRT_UUID_DECL
18095__CRT_UUID_DECL(ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64)
18096#endif
18097#else
18098typedef struct ISpeechPhraseRuleVtbl {
18099    BEGIN_INTERFACE
18100
18101    /*** IUnknown methods ***/
18102    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18103        ISpeechPhraseRule *This,
18104        REFIID riid,
18105        void **ppvObject);
18106
18107    ULONG (STDMETHODCALLTYPE *AddRef)(
18108        ISpeechPhraseRule *This);
18109
18110    ULONG (STDMETHODCALLTYPE *Release)(
18111        ISpeechPhraseRule *This);
18112
18113    /*** IDispatch methods ***/
18114    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18115        ISpeechPhraseRule *This,
18116        UINT *pctinfo);
18117
18118    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18119        ISpeechPhraseRule *This,
18120        UINT iTInfo,
18121        LCID lcid,
18122        ITypeInfo **ppTInfo);
18123
18124    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18125        ISpeechPhraseRule *This,
18126        REFIID riid,
18127        LPOLESTR *rgszNames,
18128        UINT cNames,
18129        LCID lcid,
18130        DISPID *rgDispId);
18131
18132    HRESULT (STDMETHODCALLTYPE *Invoke)(
18133        ISpeechPhraseRule *This,
18134        DISPID dispIdMember,
18135        REFIID riid,
18136        LCID lcid,
18137        WORD wFlags,
18138        DISPPARAMS *pDispParams,
18139        VARIANT *pVarResult,
18140        EXCEPINFO *pExcepInfo,
18141        UINT *puArgErr);
18142
18143    /*** ISpeechPhraseRule methods ***/
18144    HRESULT (STDMETHODCALLTYPE *get_Name)(
18145        ISpeechPhraseRule *This,
18146        BSTR *Name);
18147
18148    HRESULT (STDMETHODCALLTYPE *get_Id)(
18149        ISpeechPhraseRule *This,
18150        LONG *Id);
18151
18152    HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
18153        ISpeechPhraseRule *This,
18154        LONG *FirstElement);
18155
18156    HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
18157        ISpeechPhraseRule *This,
18158        LONG *NumberOfElements);
18159
18160    HRESULT (STDMETHODCALLTYPE *get_Parent)(
18161        ISpeechPhraseRule *This,
18162        ISpeechPhraseRule **Parent);
18163
18164    HRESULT (STDMETHODCALLTYPE *get_Children)(
18165        ISpeechPhraseRule *This,
18166        ISpeechPhraseRules **Children);
18167
18168    HRESULT (STDMETHODCALLTYPE *get_Confidence)(
18169        ISpeechPhraseRule *This,
18170        SpeechEngineConfidence *ActualConfidence);
18171
18172    HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
18173        ISpeechPhraseRule *This,
18174        float *EngineConfidence);
18175
18176    END_INTERFACE
18177} ISpeechPhraseRuleVtbl;
18178
18179interface ISpeechPhraseRule {
18180    CONST_VTBL ISpeechPhraseRuleVtbl* lpVtbl;
18181};
18182
18183#ifdef COBJMACROS
18184#ifndef WIDL_C_INLINE_WRAPPERS
18185/*** IUnknown methods ***/
18186#define ISpeechPhraseRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18187#define ISpeechPhraseRule_AddRef(This) (This)->lpVtbl->AddRef(This)
18188#define ISpeechPhraseRule_Release(This) (This)->lpVtbl->Release(This)
18189/*** IDispatch methods ***/
18190#define ISpeechPhraseRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18191#define ISpeechPhraseRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18192#define ISpeechPhraseRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18193#define ISpeechPhraseRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18194/*** ISpeechPhraseRule methods ***/
18195#define ISpeechPhraseRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
18196#define ISpeechPhraseRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
18197#define ISpeechPhraseRule_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
18198#define ISpeechPhraseRule_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
18199#define ISpeechPhraseRule_get_Parent(This,Parent) (This)->lpVtbl->get_Parent(This,Parent)
18200#define ISpeechPhraseRule_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
18201#define ISpeechPhraseRule_get_Confidence(This,ActualConfidence) (This)->lpVtbl->get_Confidence(This,ActualConfidence)
18202#define ISpeechPhraseRule_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
18203#else
18204/*** IUnknown methods ***/
18205static inline HRESULT ISpeechPhraseRule_QueryInterface(ISpeechPhraseRule* This,REFIID riid,void **ppvObject) {
18206    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18207}
18208static inline ULONG ISpeechPhraseRule_AddRef(ISpeechPhraseRule* This) {
18209    return This->lpVtbl->AddRef(This);
18210}
18211static inline ULONG ISpeechPhraseRule_Release(ISpeechPhraseRule* This) {
18212    return This->lpVtbl->Release(This);
18213}
18214/*** IDispatch methods ***/
18215static inline HRESULT ISpeechPhraseRule_GetTypeInfoCount(ISpeechPhraseRule* This,UINT *pctinfo) {
18216    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18217}
18218static inline HRESULT ISpeechPhraseRule_GetTypeInfo(ISpeechPhraseRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18219    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18220}
18221static inline HRESULT ISpeechPhraseRule_GetIDsOfNames(ISpeechPhraseRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18222    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18223}
18224static inline HRESULT ISpeechPhraseRule_Invoke(ISpeechPhraseRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18225    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18226}
18227/*** ISpeechPhraseRule methods ***/
18228static inline HRESULT ISpeechPhraseRule_get_Name(ISpeechPhraseRule* This,BSTR *Name) {
18229    return This->lpVtbl->get_Name(This,Name);
18230}
18231static inline HRESULT ISpeechPhraseRule_get_Id(ISpeechPhraseRule* This,LONG *Id) {
18232    return This->lpVtbl->get_Id(This,Id);
18233}
18234static inline HRESULT ISpeechPhraseRule_get_FirstElement(ISpeechPhraseRule* This,LONG *FirstElement) {
18235    return This->lpVtbl->get_FirstElement(This,FirstElement);
18236}
18237static inline HRESULT ISpeechPhraseRule_get_NumberOfElements(ISpeechPhraseRule* This,LONG *NumberOfElements) {
18238    return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
18239}
18240static inline HRESULT ISpeechPhraseRule_get_Parent(ISpeechPhraseRule* This,ISpeechPhraseRule **Parent) {
18241    return This->lpVtbl->get_Parent(This,Parent);
18242}
18243static inline HRESULT ISpeechPhraseRule_get_Children(ISpeechPhraseRule* This,ISpeechPhraseRules **Children) {
18244    return This->lpVtbl->get_Children(This,Children);
18245}
18246static inline HRESULT ISpeechPhraseRule_get_Confidence(ISpeechPhraseRule* This,SpeechEngineConfidence *ActualConfidence) {
18247    return This->lpVtbl->get_Confidence(This,ActualConfidence);
18248}
18249static inline HRESULT ISpeechPhraseRule_get_EngineConfidence(ISpeechPhraseRule* This,float *EngineConfidence) {
18250    return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
18251}
18252#endif
18253#endif
18254
18255#endif
18256
18257
18258#endif  /* __ISpeechPhraseRule_INTERFACE_DEFINED__ */
18259
18260/*****************************************************************************
18261 * ISpeechPhraseRules interface
18262 */
18263#ifndef __ISpeechPhraseRules_INTERFACE_DEFINED__
18264#define __ISpeechPhraseRules_INTERFACE_DEFINED__
18265
18266DEFINE_GUID(IID_ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07);
18267#if defined(__cplusplus) && !defined(CINTERFACE)
18268MIDL_INTERFACE("9047d593-01dd-4b72-81a3-e4a0ca69f407")
18269ISpeechPhraseRules : public IDispatch
18270{
18271    virtual HRESULT STDMETHODCALLTYPE get_Count(
18272        LONG *Count) = 0;
18273
18274    virtual HRESULT STDMETHODCALLTYPE Item(
18275        LONG Index,
18276        ISpeechPhraseRule **Rule) = 0;
18277
18278    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
18279        IUnknown **EnumVARIANT) = 0;
18280
18281};
18282#ifdef __CRT_UUID_DECL
18283__CRT_UUID_DECL(ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07)
18284#endif
18285#else
18286typedef struct ISpeechPhraseRulesVtbl {
18287    BEGIN_INTERFACE
18288
18289    /*** IUnknown methods ***/
18290    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18291        ISpeechPhraseRules *This,
18292        REFIID riid,
18293        void **ppvObject);
18294
18295    ULONG (STDMETHODCALLTYPE *AddRef)(
18296        ISpeechPhraseRules *This);
18297
18298    ULONG (STDMETHODCALLTYPE *Release)(
18299        ISpeechPhraseRules *This);
18300
18301    /*** IDispatch methods ***/
18302    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18303        ISpeechPhraseRules *This,
18304        UINT *pctinfo);
18305
18306    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18307        ISpeechPhraseRules *This,
18308        UINT iTInfo,
18309        LCID lcid,
18310        ITypeInfo **ppTInfo);
18311
18312    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18313        ISpeechPhraseRules *This,
18314        REFIID riid,
18315        LPOLESTR *rgszNames,
18316        UINT cNames,
18317        LCID lcid,
18318        DISPID *rgDispId);
18319
18320    HRESULT (STDMETHODCALLTYPE *Invoke)(
18321        ISpeechPhraseRules *This,
18322        DISPID dispIdMember,
18323        REFIID riid,
18324        LCID lcid,
18325        WORD wFlags,
18326        DISPPARAMS *pDispParams,
18327        VARIANT *pVarResult,
18328        EXCEPINFO *pExcepInfo,
18329        UINT *puArgErr);
18330
18331    /*** ISpeechPhraseRules methods ***/
18332    HRESULT (STDMETHODCALLTYPE *get_Count)(
18333        ISpeechPhraseRules *This,
18334        LONG *Count);
18335
18336    HRESULT (STDMETHODCALLTYPE *Item)(
18337        ISpeechPhraseRules *This,
18338        LONG Index,
18339        ISpeechPhraseRule **Rule);
18340
18341    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
18342        ISpeechPhraseRules *This,
18343        IUnknown **EnumVARIANT);
18344
18345    END_INTERFACE
18346} ISpeechPhraseRulesVtbl;
18347
18348interface ISpeechPhraseRules {
18349    CONST_VTBL ISpeechPhraseRulesVtbl* lpVtbl;
18350};
18351
18352#ifdef COBJMACROS
18353#ifndef WIDL_C_INLINE_WRAPPERS
18354/*** IUnknown methods ***/
18355#define ISpeechPhraseRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18356#define ISpeechPhraseRules_AddRef(This) (This)->lpVtbl->AddRef(This)
18357#define ISpeechPhraseRules_Release(This) (This)->lpVtbl->Release(This)
18358/*** IDispatch methods ***/
18359#define ISpeechPhraseRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18360#define ISpeechPhraseRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18361#define ISpeechPhraseRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18362#define ISpeechPhraseRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18363/*** ISpeechPhraseRules methods ***/
18364#define ISpeechPhraseRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
18365#define ISpeechPhraseRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
18366#define ISpeechPhraseRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
18367#else
18368/*** IUnknown methods ***/
18369static inline HRESULT ISpeechPhraseRules_QueryInterface(ISpeechPhraseRules* This,REFIID riid,void **ppvObject) {
18370    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18371}
18372static inline ULONG ISpeechPhraseRules_AddRef(ISpeechPhraseRules* This) {
18373    return This->lpVtbl->AddRef(This);
18374}
18375static inline ULONG ISpeechPhraseRules_Release(ISpeechPhraseRules* This) {
18376    return This->lpVtbl->Release(This);
18377}
18378/*** IDispatch methods ***/
18379static inline HRESULT ISpeechPhraseRules_GetTypeInfoCount(ISpeechPhraseRules* This,UINT *pctinfo) {
18380    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18381}
18382static inline HRESULT ISpeechPhraseRules_GetTypeInfo(ISpeechPhraseRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18383    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18384}
18385static inline HRESULT ISpeechPhraseRules_GetIDsOfNames(ISpeechPhraseRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18386    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18387}
18388static inline HRESULT ISpeechPhraseRules_Invoke(ISpeechPhraseRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18389    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18390}
18391/*** ISpeechPhraseRules methods ***/
18392static inline HRESULT ISpeechPhraseRules_get_Count(ISpeechPhraseRules* This,LONG *Count) {
18393    return This->lpVtbl->get_Count(This,Count);
18394}
18395static inline HRESULT ISpeechPhraseRules_Item(ISpeechPhraseRules* This,LONG Index,ISpeechPhraseRule **Rule) {
18396    return This->lpVtbl->Item(This,Index,Rule);
18397}
18398static inline HRESULT ISpeechPhraseRules_get__NewEnum(ISpeechPhraseRules* This,IUnknown **EnumVARIANT) {
18399    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
18400}
18401#endif
18402#endif
18403
18404#endif
18405
18406
18407#endif  /* __ISpeechPhraseRules_INTERFACE_DEFINED__ */
18408
18409/*****************************************************************************
18410 * ISpeechLexiconWords interface
18411 */
18412#ifndef __ISpeechLexiconWords_INTERFACE_DEFINED__
18413#define __ISpeechLexiconWords_INTERFACE_DEFINED__
18414
18415DEFINE_GUID(IID_ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6);
18416#if defined(__cplusplus) && !defined(CINTERFACE)
18417MIDL_INTERFACE("8d199862-415e-47d5-ac4f-faa608b424e6")
18418ISpeechLexiconWords : public IDispatch
18419{
18420    virtual HRESULT STDMETHODCALLTYPE get_Count(
18421        LONG *Count) = 0;
18422
18423    virtual HRESULT STDMETHODCALLTYPE Item(
18424        LONG Index,
18425        ISpeechLexiconWord **Word) = 0;
18426
18427    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
18428        IUnknown **EnumVARIANT) = 0;
18429
18430};
18431#ifdef __CRT_UUID_DECL
18432__CRT_UUID_DECL(ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6)
18433#endif
18434#else
18435typedef struct ISpeechLexiconWordsVtbl {
18436    BEGIN_INTERFACE
18437
18438    /*** IUnknown methods ***/
18439    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18440        ISpeechLexiconWords *This,
18441        REFIID riid,
18442        void **ppvObject);
18443
18444    ULONG (STDMETHODCALLTYPE *AddRef)(
18445        ISpeechLexiconWords *This);
18446
18447    ULONG (STDMETHODCALLTYPE *Release)(
18448        ISpeechLexiconWords *This);
18449
18450    /*** IDispatch methods ***/
18451    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18452        ISpeechLexiconWords *This,
18453        UINT *pctinfo);
18454
18455    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18456        ISpeechLexiconWords *This,
18457        UINT iTInfo,
18458        LCID lcid,
18459        ITypeInfo **ppTInfo);
18460
18461    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18462        ISpeechLexiconWords *This,
18463        REFIID riid,
18464        LPOLESTR *rgszNames,
18465        UINT cNames,
18466        LCID lcid,
18467        DISPID *rgDispId);
18468
18469    HRESULT (STDMETHODCALLTYPE *Invoke)(
18470        ISpeechLexiconWords *This,
18471        DISPID dispIdMember,
18472        REFIID riid,
18473        LCID lcid,
18474        WORD wFlags,
18475        DISPPARAMS *pDispParams,
18476        VARIANT *pVarResult,
18477        EXCEPINFO *pExcepInfo,
18478        UINT *puArgErr);
18479
18480    /*** ISpeechLexiconWords methods ***/
18481    HRESULT (STDMETHODCALLTYPE *get_Count)(
18482        ISpeechLexiconWords *This,
18483        LONG *Count);
18484
18485    HRESULT (STDMETHODCALLTYPE *Item)(
18486        ISpeechLexiconWords *This,
18487        LONG Index,
18488        ISpeechLexiconWord **Word);
18489
18490    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
18491        ISpeechLexiconWords *This,
18492        IUnknown **EnumVARIANT);
18493
18494    END_INTERFACE
18495} ISpeechLexiconWordsVtbl;
18496
18497interface ISpeechLexiconWords {
18498    CONST_VTBL ISpeechLexiconWordsVtbl* lpVtbl;
18499};
18500
18501#ifdef COBJMACROS
18502#ifndef WIDL_C_INLINE_WRAPPERS
18503/*** IUnknown methods ***/
18504#define ISpeechLexiconWords_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18505#define ISpeechLexiconWords_AddRef(This) (This)->lpVtbl->AddRef(This)
18506#define ISpeechLexiconWords_Release(This) (This)->lpVtbl->Release(This)
18507/*** IDispatch methods ***/
18508#define ISpeechLexiconWords_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18509#define ISpeechLexiconWords_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18510#define ISpeechLexiconWords_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18511#define ISpeechLexiconWords_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18512/*** ISpeechLexiconWords methods ***/
18513#define ISpeechLexiconWords_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
18514#define ISpeechLexiconWords_Item(This,Index,Word) (This)->lpVtbl->Item(This,Index,Word)
18515#define ISpeechLexiconWords_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
18516#else
18517/*** IUnknown methods ***/
18518static inline HRESULT ISpeechLexiconWords_QueryInterface(ISpeechLexiconWords* This,REFIID riid,void **ppvObject) {
18519    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18520}
18521static inline ULONG ISpeechLexiconWords_AddRef(ISpeechLexiconWords* This) {
18522    return This->lpVtbl->AddRef(This);
18523}
18524static inline ULONG ISpeechLexiconWords_Release(ISpeechLexiconWords* This) {
18525    return This->lpVtbl->Release(This);
18526}
18527/*** IDispatch methods ***/
18528static inline HRESULT ISpeechLexiconWords_GetTypeInfoCount(ISpeechLexiconWords* This,UINT *pctinfo) {
18529    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18530}
18531static inline HRESULT ISpeechLexiconWords_GetTypeInfo(ISpeechLexiconWords* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18532    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18533}
18534static inline HRESULT ISpeechLexiconWords_GetIDsOfNames(ISpeechLexiconWords* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18535    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18536}
18537static inline HRESULT ISpeechLexiconWords_Invoke(ISpeechLexiconWords* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18538    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18539}
18540/*** ISpeechLexiconWords methods ***/
18541static inline HRESULT ISpeechLexiconWords_get_Count(ISpeechLexiconWords* This,LONG *Count) {
18542    return This->lpVtbl->get_Count(This,Count);
18543}
18544static inline HRESULT ISpeechLexiconWords_Item(ISpeechLexiconWords* This,LONG Index,ISpeechLexiconWord **Word) {
18545    return This->lpVtbl->Item(This,Index,Word);
18546}
18547static inline HRESULT ISpeechLexiconWords_get__NewEnum(ISpeechLexiconWords* This,IUnknown **EnumVARIANT) {
18548    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
18549}
18550#endif
18551#endif
18552
18553#endif
18554
18555
18556#endif  /* __ISpeechLexiconWords_INTERFACE_DEFINED__ */
18557
18558/*****************************************************************************
18559 * ISpeechLexicon interface
18560 */
18561#ifndef __ISpeechLexicon_INTERFACE_DEFINED__
18562#define __ISpeechLexicon_INTERFACE_DEFINED__
18563
18564DEFINE_GUID(IID_ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25);
18565#if defined(__cplusplus) && !defined(CINTERFACE)
18566MIDL_INTERFACE("3da7627a-c7ae-4b23-8708-638c50362c25")
18567ISpeechLexicon : public IDispatch
18568{
18569    virtual HRESULT STDMETHODCALLTYPE get_GenerationId(
18570        LONG *GenerationId) = 0;
18571
18572    virtual HRESULT STDMETHODCALLTYPE GetWords(
18573        SpeechLexiconType Flags,
18574        LONG *GenerationID,
18575        ISpeechLexiconWords **Words) = 0;
18576
18577    virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
18578        BSTR bstrWord,
18579        SpeechLanguageId LangId,
18580        SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
18581        BSTR bstrPronunciation = L"") = 0;
18582
18583    virtual HRESULT STDMETHODCALLTYPE AddPronunciationByPhoneIds(
18584        BSTR bstrWord,
18585        SpeechLanguageId LangId,
18586        SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
18587        VARIANT *PhoneIds = 0) = 0;
18588
18589    virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
18590        BSTR bstrWord,
18591        SpeechLanguageId LangId,
18592        SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
18593        BSTR bstrPronunciation = L"") = 0;
18594
18595    virtual HRESULT STDMETHODCALLTYPE RemovePronunciationByPhoneIds(
18596        BSTR bstrWord,
18597        SpeechLanguageId LangId,
18598        SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
18599        VARIANT *PhoneIds = 0) = 0;
18600
18601    virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
18602        BSTR bstrWord,
18603        SpeechLanguageId LangId,
18604        SpeechLexiconType TypeFlags,
18605        ISpeechLexiconPronunciations **ppPronunciations) = 0;
18606
18607    virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
18608        LONG *GenerationID,
18609        ISpeechLexiconWords **ppWords) = 0;
18610
18611};
18612#ifdef __CRT_UUID_DECL
18613__CRT_UUID_DECL(ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25)
18614#endif
18615#else
18616typedef struct ISpeechLexiconVtbl {
18617    BEGIN_INTERFACE
18618
18619    /*** IUnknown methods ***/
18620    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18621        ISpeechLexicon *This,
18622        REFIID riid,
18623        void **ppvObject);
18624
18625    ULONG (STDMETHODCALLTYPE *AddRef)(
18626        ISpeechLexicon *This);
18627
18628    ULONG (STDMETHODCALLTYPE *Release)(
18629        ISpeechLexicon *This);
18630
18631    /*** IDispatch methods ***/
18632    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18633        ISpeechLexicon *This,
18634        UINT *pctinfo);
18635
18636    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18637        ISpeechLexicon *This,
18638        UINT iTInfo,
18639        LCID lcid,
18640        ITypeInfo **ppTInfo);
18641
18642    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18643        ISpeechLexicon *This,
18644        REFIID riid,
18645        LPOLESTR *rgszNames,
18646        UINT cNames,
18647        LCID lcid,
18648        DISPID *rgDispId);
18649
18650    HRESULT (STDMETHODCALLTYPE *Invoke)(
18651        ISpeechLexicon *This,
18652        DISPID dispIdMember,
18653        REFIID riid,
18654        LCID lcid,
18655        WORD wFlags,
18656        DISPPARAMS *pDispParams,
18657        VARIANT *pVarResult,
18658        EXCEPINFO *pExcepInfo,
18659        UINT *puArgErr);
18660
18661    /*** ISpeechLexicon methods ***/
18662    HRESULT (STDMETHODCALLTYPE *get_GenerationId)(
18663        ISpeechLexicon *This,
18664        LONG *GenerationId);
18665
18666    HRESULT (STDMETHODCALLTYPE *GetWords)(
18667        ISpeechLexicon *This,
18668        SpeechLexiconType Flags,
18669        LONG *GenerationID,
18670        ISpeechLexiconWords **Words);
18671
18672    HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
18673        ISpeechLexicon *This,
18674        BSTR bstrWord,
18675        SpeechLanguageId LangId,
18676        SpeechPartOfSpeech PartOfSpeech,
18677        BSTR bstrPronunciation);
18678
18679    HRESULT (STDMETHODCALLTYPE *AddPronunciationByPhoneIds)(
18680        ISpeechLexicon *This,
18681        BSTR bstrWord,
18682        SpeechLanguageId LangId,
18683        SpeechPartOfSpeech PartOfSpeech,
18684        VARIANT *PhoneIds);
18685
18686    HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
18687        ISpeechLexicon *This,
18688        BSTR bstrWord,
18689        SpeechLanguageId LangId,
18690        SpeechPartOfSpeech PartOfSpeech,
18691        BSTR bstrPronunciation);
18692
18693    HRESULT (STDMETHODCALLTYPE *RemovePronunciationByPhoneIds)(
18694        ISpeechLexicon *This,
18695        BSTR bstrWord,
18696        SpeechLanguageId LangId,
18697        SpeechPartOfSpeech PartOfSpeech,
18698        VARIANT *PhoneIds);
18699
18700    HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
18701        ISpeechLexicon *This,
18702        BSTR bstrWord,
18703        SpeechLanguageId LangId,
18704        SpeechLexiconType TypeFlags,
18705        ISpeechLexiconPronunciations **ppPronunciations);
18706
18707    HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
18708        ISpeechLexicon *This,
18709        LONG *GenerationID,
18710        ISpeechLexiconWords **ppWords);
18711
18712    END_INTERFACE
18713} ISpeechLexiconVtbl;
18714
18715interface ISpeechLexicon {
18716    CONST_VTBL ISpeechLexiconVtbl* lpVtbl;
18717};
18718
18719#ifdef COBJMACROS
18720#ifndef WIDL_C_INLINE_WRAPPERS
18721/*** IUnknown methods ***/
18722#define ISpeechLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18723#define ISpeechLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
18724#define ISpeechLexicon_Release(This) (This)->lpVtbl->Release(This)
18725/*** IDispatch methods ***/
18726#define ISpeechLexicon_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18727#define ISpeechLexicon_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18728#define ISpeechLexicon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18729#define ISpeechLexicon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18730/*** ISpeechLexicon methods ***/
18731#define ISpeechLexicon_get_GenerationId(This,GenerationId) (This)->lpVtbl->get_GenerationId(This,GenerationId)
18732#define ISpeechLexicon_GetWords(This,Flags,GenerationID,Words) (This)->lpVtbl->GetWords(This,Flags,GenerationID,Words)
18733#define ISpeechLexicon_AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
18734#define ISpeechLexicon_AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
18735#define ISpeechLexicon_RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
18736#define ISpeechLexicon_RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
18737#define ISpeechLexicon_GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations) (This)->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations)
18738#define ISpeechLexicon_GetGenerationChange(This,GenerationID,ppWords) (This)->lpVtbl->GetGenerationChange(This,GenerationID,ppWords)
18739#else
18740/*** IUnknown methods ***/
18741static inline HRESULT ISpeechLexicon_QueryInterface(ISpeechLexicon* This,REFIID riid,void **ppvObject) {
18742    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18743}
18744static inline ULONG ISpeechLexicon_AddRef(ISpeechLexicon* This) {
18745    return This->lpVtbl->AddRef(This);
18746}
18747static inline ULONG ISpeechLexicon_Release(ISpeechLexicon* This) {
18748    return This->lpVtbl->Release(This);
18749}
18750/*** IDispatch methods ***/
18751static inline HRESULT ISpeechLexicon_GetTypeInfoCount(ISpeechLexicon* This,UINT *pctinfo) {
18752    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18753}
18754static inline HRESULT ISpeechLexicon_GetTypeInfo(ISpeechLexicon* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18755    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18756}
18757static inline HRESULT ISpeechLexicon_GetIDsOfNames(ISpeechLexicon* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18758    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18759}
18760static inline HRESULT ISpeechLexicon_Invoke(ISpeechLexicon* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18761    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18762}
18763/*** ISpeechLexicon methods ***/
18764static inline HRESULT ISpeechLexicon_get_GenerationId(ISpeechLexicon* This,LONG *GenerationId) {
18765    return This->lpVtbl->get_GenerationId(This,GenerationId);
18766}
18767static inline HRESULT ISpeechLexicon_GetWords(ISpeechLexicon* This,SpeechLexiconType Flags,LONG *GenerationID,ISpeechLexiconWords **Words) {
18768    return This->lpVtbl->GetWords(This,Flags,GenerationID,Words);
18769}
18770static inline HRESULT ISpeechLexicon_AddPronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
18771    return This->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
18772}
18773static inline HRESULT ISpeechLexicon_AddPronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
18774    return This->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
18775}
18776static inline HRESULT ISpeechLexicon_RemovePronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
18777    return This->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
18778}
18779static inline HRESULT ISpeechLexicon_RemovePronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
18780    return This->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
18781}
18782static inline HRESULT ISpeechLexicon_GetPronunciations(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechLexiconType TypeFlags,ISpeechLexiconPronunciations **ppPronunciations) {
18783    return This->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations);
18784}
18785static inline HRESULT ISpeechLexicon_GetGenerationChange(ISpeechLexicon* This,LONG *GenerationID,ISpeechLexiconWords **ppWords) {
18786    return This->lpVtbl->GetGenerationChange(This,GenerationID,ppWords);
18787}
18788#endif
18789#endif
18790
18791#endif
18792
18793
18794#endif  /* __ISpeechLexicon_INTERFACE_DEFINED__ */
18795
18796/*****************************************************************************
18797 * ISpeechLexiconWord interface
18798 */
18799#ifndef __ISpeechLexiconWord_INTERFACE_DEFINED__
18800#define __ISpeechLexiconWord_INTERFACE_DEFINED__
18801
18802DEFINE_GUID(IID_ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff);
18803#if defined(__cplusplus) && !defined(CINTERFACE)
18804MIDL_INTERFACE("4e5b933c-c9be-48ed-8842-1ee51bb1d4ff")
18805ISpeechLexiconWord : public IDispatch
18806{
18807    virtual HRESULT STDMETHODCALLTYPE get_LangId(
18808        SpeechLanguageId *LangId) = 0;
18809
18810    virtual HRESULT STDMETHODCALLTYPE get_Type(
18811        SpeechWordType *WordType) = 0;
18812
18813    virtual HRESULT STDMETHODCALLTYPE get_Word(
18814        BSTR *Word) = 0;
18815
18816    virtual HRESULT STDMETHODCALLTYPE get_Pronunciations(
18817        ISpeechLexiconPronunciations **Pronunciations) = 0;
18818
18819};
18820#ifdef __CRT_UUID_DECL
18821__CRT_UUID_DECL(ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff)
18822#endif
18823#else
18824typedef struct ISpeechLexiconWordVtbl {
18825    BEGIN_INTERFACE
18826
18827    /*** IUnknown methods ***/
18828    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18829        ISpeechLexiconWord *This,
18830        REFIID riid,
18831        void **ppvObject);
18832
18833    ULONG (STDMETHODCALLTYPE *AddRef)(
18834        ISpeechLexiconWord *This);
18835
18836    ULONG (STDMETHODCALLTYPE *Release)(
18837        ISpeechLexiconWord *This);
18838
18839    /*** IDispatch methods ***/
18840    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18841        ISpeechLexiconWord *This,
18842        UINT *pctinfo);
18843
18844    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18845        ISpeechLexiconWord *This,
18846        UINT iTInfo,
18847        LCID lcid,
18848        ITypeInfo **ppTInfo);
18849
18850    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18851        ISpeechLexiconWord *This,
18852        REFIID riid,
18853        LPOLESTR *rgszNames,
18854        UINT cNames,
18855        LCID lcid,
18856        DISPID *rgDispId);
18857
18858    HRESULT (STDMETHODCALLTYPE *Invoke)(
18859        ISpeechLexiconWord *This,
18860        DISPID dispIdMember,
18861        REFIID riid,
18862        LCID lcid,
18863        WORD wFlags,
18864        DISPPARAMS *pDispParams,
18865        VARIANT *pVarResult,
18866        EXCEPINFO *pExcepInfo,
18867        UINT *puArgErr);
18868
18869    /*** ISpeechLexiconWord methods ***/
18870    HRESULT (STDMETHODCALLTYPE *get_LangId)(
18871        ISpeechLexiconWord *This,
18872        SpeechLanguageId *LangId);
18873
18874    HRESULT (STDMETHODCALLTYPE *get_Type)(
18875        ISpeechLexiconWord *This,
18876        SpeechWordType *WordType);
18877
18878    HRESULT (STDMETHODCALLTYPE *get_Word)(
18879        ISpeechLexiconWord *This,
18880        BSTR *Word);
18881
18882    HRESULT (STDMETHODCALLTYPE *get_Pronunciations)(
18883        ISpeechLexiconWord *This,
18884        ISpeechLexiconPronunciations **Pronunciations);
18885
18886    END_INTERFACE
18887} ISpeechLexiconWordVtbl;
18888
18889interface ISpeechLexiconWord {
18890    CONST_VTBL ISpeechLexiconWordVtbl* lpVtbl;
18891};
18892
18893#ifdef COBJMACROS
18894#ifndef WIDL_C_INLINE_WRAPPERS
18895/*** IUnknown methods ***/
18896#define ISpeechLexiconWord_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18897#define ISpeechLexiconWord_AddRef(This) (This)->lpVtbl->AddRef(This)
18898#define ISpeechLexiconWord_Release(This) (This)->lpVtbl->Release(This)
18899/*** IDispatch methods ***/
18900#define ISpeechLexiconWord_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18901#define ISpeechLexiconWord_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18902#define ISpeechLexiconWord_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18903#define ISpeechLexiconWord_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18904/*** ISpeechLexiconWord methods ***/
18905#define ISpeechLexiconWord_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
18906#define ISpeechLexiconWord_get_Type(This,WordType) (This)->lpVtbl->get_Type(This,WordType)
18907#define ISpeechLexiconWord_get_Word(This,Word) (This)->lpVtbl->get_Word(This,Word)
18908#define ISpeechLexiconWord_get_Pronunciations(This,Pronunciations) (This)->lpVtbl->get_Pronunciations(This,Pronunciations)
18909#else
18910/*** IUnknown methods ***/
18911static inline HRESULT ISpeechLexiconWord_QueryInterface(ISpeechLexiconWord* This,REFIID riid,void **ppvObject) {
18912    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18913}
18914static inline ULONG ISpeechLexiconWord_AddRef(ISpeechLexiconWord* This) {
18915    return This->lpVtbl->AddRef(This);
18916}
18917static inline ULONG ISpeechLexiconWord_Release(ISpeechLexiconWord* This) {
18918    return This->lpVtbl->Release(This);
18919}
18920/*** IDispatch methods ***/
18921static inline HRESULT ISpeechLexiconWord_GetTypeInfoCount(ISpeechLexiconWord* This,UINT *pctinfo) {
18922    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18923}
18924static inline HRESULT ISpeechLexiconWord_GetTypeInfo(ISpeechLexiconWord* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18925    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18926}
18927static inline HRESULT ISpeechLexiconWord_GetIDsOfNames(ISpeechLexiconWord* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18928    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18929}
18930static inline HRESULT ISpeechLexiconWord_Invoke(ISpeechLexiconWord* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18931    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18932}
18933/*** ISpeechLexiconWord methods ***/
18934static inline HRESULT ISpeechLexiconWord_get_LangId(ISpeechLexiconWord* This,SpeechLanguageId *LangId) {
18935    return This->lpVtbl->get_LangId(This,LangId);
18936}
18937static inline HRESULT ISpeechLexiconWord_get_Type(ISpeechLexiconWord* This,SpeechWordType *WordType) {
18938    return This->lpVtbl->get_Type(This,WordType);
18939}
18940static inline HRESULT ISpeechLexiconWord_get_Word(ISpeechLexiconWord* This,BSTR *Word) {
18941    return This->lpVtbl->get_Word(This,Word);
18942}
18943static inline HRESULT ISpeechLexiconWord_get_Pronunciations(ISpeechLexiconWord* This,ISpeechLexiconPronunciations **Pronunciations) {
18944    return This->lpVtbl->get_Pronunciations(This,Pronunciations);
18945}
18946#endif
18947#endif
18948
18949#endif
18950
18951
18952#endif  /* __ISpeechLexiconWord_INTERFACE_DEFINED__ */
18953
18954/*****************************************************************************
18955 * ISpeechLexiconPronunciations interface
18956 */
18957#ifndef __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
18958#define __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
18959
18960DEFINE_GUID(IID_ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3);
18961#if defined(__cplusplus) && !defined(CINTERFACE)
18962MIDL_INTERFACE("72829128-5682-4704-a0d4-3e2bb6f2ead3")
18963ISpeechLexiconPronunciations : public IDispatch
18964{
18965    virtual HRESULT STDMETHODCALLTYPE get_Count(
18966        LONG *Count) = 0;
18967
18968    virtual HRESULT STDMETHODCALLTYPE Item(
18969        LONG Index,
18970        ISpeechLexiconPronunciation **Pronunciation) = 0;
18971
18972    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
18973        IUnknown **EnumVARIANT) = 0;
18974
18975};
18976#ifdef __CRT_UUID_DECL
18977__CRT_UUID_DECL(ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3)
18978#endif
18979#else
18980typedef struct ISpeechLexiconPronunciationsVtbl {
18981    BEGIN_INTERFACE
18982
18983    /*** IUnknown methods ***/
18984    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18985        ISpeechLexiconPronunciations *This,
18986        REFIID riid,
18987        void **ppvObject);
18988
18989    ULONG (STDMETHODCALLTYPE *AddRef)(
18990        ISpeechLexiconPronunciations *This);
18991
18992    ULONG (STDMETHODCALLTYPE *Release)(
18993        ISpeechLexiconPronunciations *This);
18994
18995    /*** IDispatch methods ***/
18996    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18997        ISpeechLexiconPronunciations *This,
18998        UINT *pctinfo);
18999
19000    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19001        ISpeechLexiconPronunciations *This,
19002        UINT iTInfo,
19003        LCID lcid,
19004        ITypeInfo **ppTInfo);
19005
19006    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19007        ISpeechLexiconPronunciations *This,
19008        REFIID riid,
19009        LPOLESTR *rgszNames,
19010        UINT cNames,
19011        LCID lcid,
19012        DISPID *rgDispId);
19013
19014    HRESULT (STDMETHODCALLTYPE *Invoke)(
19015        ISpeechLexiconPronunciations *This,
19016        DISPID dispIdMember,
19017        REFIID riid,
19018        LCID lcid,
19019        WORD wFlags,
19020        DISPPARAMS *pDispParams,
19021        VARIANT *pVarResult,
19022        EXCEPINFO *pExcepInfo,
19023        UINT *puArgErr);
19024
19025    /*** ISpeechLexiconPronunciations methods ***/
19026    HRESULT (STDMETHODCALLTYPE *get_Count)(
19027        ISpeechLexiconPronunciations *This,
19028        LONG *Count);
19029
19030    HRESULT (STDMETHODCALLTYPE *Item)(
19031        ISpeechLexiconPronunciations *This,
19032        LONG Index,
19033        ISpeechLexiconPronunciation **Pronunciation);
19034
19035    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
19036        ISpeechLexiconPronunciations *This,
19037        IUnknown **EnumVARIANT);
19038
19039    END_INTERFACE
19040} ISpeechLexiconPronunciationsVtbl;
19041
19042interface ISpeechLexiconPronunciations {
19043    CONST_VTBL ISpeechLexiconPronunciationsVtbl* lpVtbl;
19044};
19045
19046#ifdef COBJMACROS
19047#ifndef WIDL_C_INLINE_WRAPPERS
19048/*** IUnknown methods ***/
19049#define ISpeechLexiconPronunciations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19050#define ISpeechLexiconPronunciations_AddRef(This) (This)->lpVtbl->AddRef(This)
19051#define ISpeechLexiconPronunciations_Release(This) (This)->lpVtbl->Release(This)
19052/*** IDispatch methods ***/
19053#define ISpeechLexiconPronunciations_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19054#define ISpeechLexiconPronunciations_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19055#define ISpeechLexiconPronunciations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19056#define ISpeechLexiconPronunciations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19057/*** ISpeechLexiconPronunciations methods ***/
19058#define ISpeechLexiconPronunciations_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
19059#define ISpeechLexiconPronunciations_Item(This,Index,Pronunciation) (This)->lpVtbl->Item(This,Index,Pronunciation)
19060#define ISpeechLexiconPronunciations_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
19061#else
19062/*** IUnknown methods ***/
19063static inline HRESULT ISpeechLexiconPronunciations_QueryInterface(ISpeechLexiconPronunciations* This,REFIID riid,void **ppvObject) {
19064    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19065}
19066static inline ULONG ISpeechLexiconPronunciations_AddRef(ISpeechLexiconPronunciations* This) {
19067    return This->lpVtbl->AddRef(This);
19068}
19069static inline ULONG ISpeechLexiconPronunciations_Release(ISpeechLexiconPronunciations* This) {
19070    return This->lpVtbl->Release(This);
19071}
19072/*** IDispatch methods ***/
19073static inline HRESULT ISpeechLexiconPronunciations_GetTypeInfoCount(ISpeechLexiconPronunciations* This,UINT *pctinfo) {
19074    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19075}
19076static inline HRESULT ISpeechLexiconPronunciations_GetTypeInfo(ISpeechLexiconPronunciations* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19077    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19078}
19079static inline HRESULT ISpeechLexiconPronunciations_GetIDsOfNames(ISpeechLexiconPronunciations* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19080    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19081}
19082static inline HRESULT ISpeechLexiconPronunciations_Invoke(ISpeechLexiconPronunciations* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19083    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19084}
19085/*** ISpeechLexiconPronunciations methods ***/
19086static inline HRESULT ISpeechLexiconPronunciations_get_Count(ISpeechLexiconPronunciations* This,LONG *Count) {
19087    return This->lpVtbl->get_Count(This,Count);
19088}
19089static inline HRESULT ISpeechLexiconPronunciations_Item(ISpeechLexiconPronunciations* This,LONG Index,ISpeechLexiconPronunciation **Pronunciation) {
19090    return This->lpVtbl->Item(This,Index,Pronunciation);
19091}
19092static inline HRESULT ISpeechLexiconPronunciations_get__NewEnum(ISpeechLexiconPronunciations* This,IUnknown **EnumVARIANT) {
19093    return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
19094}
19095#endif
19096#endif
19097
19098#endif
19099
19100
19101#endif  /* __ISpeechLexiconPronunciations_INTERFACE_DEFINED__ */
19102
19103/*****************************************************************************
19104 * ISpeechLexiconPronunciation interface
19105 */
19106#ifndef __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
19107#define __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
19108
19109DEFINE_GUID(IID_ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f);
19110#if defined(__cplusplus) && !defined(CINTERFACE)
19111MIDL_INTERFACE("95252c5d-9e43-4f4a-9899-48ee73352f9f")
19112ISpeechLexiconPronunciation : public IDispatch
19113{
19114    virtual HRESULT STDMETHODCALLTYPE get_Type(
19115        SpeechLexiconType *LexiconType) = 0;
19116
19117    virtual HRESULT STDMETHODCALLTYPE get_LangId(
19118        SpeechLanguageId *LangId) = 0;
19119
19120    virtual HRESULT STDMETHODCALLTYPE get_PartOfSpeech(
19121        SpeechPartOfSpeech *PartOfSpeech) = 0;
19122
19123    virtual HRESULT STDMETHODCALLTYPE get_PhoneIds(
19124        VARIANT *PhoneIds) = 0;
19125
19126    virtual HRESULT STDMETHODCALLTYPE get_Symbolic(
19127        BSTR *Symbolic) = 0;
19128
19129};
19130#ifdef __CRT_UUID_DECL
19131__CRT_UUID_DECL(ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f)
19132#endif
19133#else
19134typedef struct ISpeechLexiconPronunciationVtbl {
19135    BEGIN_INTERFACE
19136
19137    /*** IUnknown methods ***/
19138    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19139        ISpeechLexiconPronunciation *This,
19140        REFIID riid,
19141        void **ppvObject);
19142
19143    ULONG (STDMETHODCALLTYPE *AddRef)(
19144        ISpeechLexiconPronunciation *This);
19145
19146    ULONG (STDMETHODCALLTYPE *Release)(
19147        ISpeechLexiconPronunciation *This);
19148
19149    /*** IDispatch methods ***/
19150    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19151        ISpeechLexiconPronunciation *This,
19152        UINT *pctinfo);
19153
19154    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19155        ISpeechLexiconPronunciation *This,
19156        UINT iTInfo,
19157        LCID lcid,
19158        ITypeInfo **ppTInfo);
19159
19160    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19161        ISpeechLexiconPronunciation *This,
19162        REFIID riid,
19163        LPOLESTR *rgszNames,
19164        UINT cNames,
19165        LCID lcid,
19166        DISPID *rgDispId);
19167
19168    HRESULT (STDMETHODCALLTYPE *Invoke)(
19169        ISpeechLexiconPronunciation *This,
19170        DISPID dispIdMember,
19171        REFIID riid,
19172        LCID lcid,
19173        WORD wFlags,
19174        DISPPARAMS *pDispParams,
19175        VARIANT *pVarResult,
19176        EXCEPINFO *pExcepInfo,
19177        UINT *puArgErr);
19178
19179    /*** ISpeechLexiconPronunciation methods ***/
19180    HRESULT (STDMETHODCALLTYPE *get_Type)(
19181        ISpeechLexiconPronunciation *This,
19182        SpeechLexiconType *LexiconType);
19183
19184    HRESULT (STDMETHODCALLTYPE *get_LangId)(
19185        ISpeechLexiconPronunciation *This,
19186        SpeechLanguageId *LangId);
19187
19188    HRESULT (STDMETHODCALLTYPE *get_PartOfSpeech)(
19189        ISpeechLexiconPronunciation *This,
19190        SpeechPartOfSpeech *PartOfSpeech);
19191
19192    HRESULT (STDMETHODCALLTYPE *get_PhoneIds)(
19193        ISpeechLexiconPronunciation *This,
19194        VARIANT *PhoneIds);
19195
19196    HRESULT (STDMETHODCALLTYPE *get_Symbolic)(
19197        ISpeechLexiconPronunciation *This,
19198        BSTR *Symbolic);
19199
19200    END_INTERFACE
19201} ISpeechLexiconPronunciationVtbl;
19202
19203interface ISpeechLexiconPronunciation {
19204    CONST_VTBL ISpeechLexiconPronunciationVtbl* lpVtbl;
19205};
19206
19207#ifdef COBJMACROS
19208#ifndef WIDL_C_INLINE_WRAPPERS
19209/*** IUnknown methods ***/
19210#define ISpeechLexiconPronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19211#define ISpeechLexiconPronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
19212#define ISpeechLexiconPronunciation_Release(This) (This)->lpVtbl->Release(This)
19213/*** IDispatch methods ***/
19214#define ISpeechLexiconPronunciation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19215#define ISpeechLexiconPronunciation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19216#define ISpeechLexiconPronunciation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19217#define ISpeechLexiconPronunciation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19218/*** ISpeechLexiconPronunciation methods ***/
19219#define ISpeechLexiconPronunciation_get_Type(This,LexiconType) (This)->lpVtbl->get_Type(This,LexiconType)
19220#define ISpeechLexiconPronunciation_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
19221#define ISpeechLexiconPronunciation_get_PartOfSpeech(This,PartOfSpeech) (This)->lpVtbl->get_PartOfSpeech(This,PartOfSpeech)
19222#define ISpeechLexiconPronunciation_get_PhoneIds(This,PhoneIds) (This)->lpVtbl->get_PhoneIds(This,PhoneIds)
19223#define ISpeechLexiconPronunciation_get_Symbolic(This,Symbolic) (This)->lpVtbl->get_Symbolic(This,Symbolic)
19224#else
19225/*** IUnknown methods ***/
19226static inline HRESULT ISpeechLexiconPronunciation_QueryInterface(ISpeechLexiconPronunciation* This,REFIID riid,void **ppvObject) {
19227    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19228}
19229static inline ULONG ISpeechLexiconPronunciation_AddRef(ISpeechLexiconPronunciation* This) {
19230    return This->lpVtbl->AddRef(This);
19231}
19232static inline ULONG ISpeechLexiconPronunciation_Release(ISpeechLexiconPronunciation* This) {
19233    return This->lpVtbl->Release(This);
19234}
19235/*** IDispatch methods ***/
19236static inline HRESULT ISpeechLexiconPronunciation_GetTypeInfoCount(ISpeechLexiconPronunciation* This,UINT *pctinfo) {
19237    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19238}
19239static inline HRESULT ISpeechLexiconPronunciation_GetTypeInfo(ISpeechLexiconPronunciation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19240    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19241}
19242static inline HRESULT ISpeechLexiconPronunciation_GetIDsOfNames(ISpeechLexiconPronunciation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19243    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19244}
19245static inline HRESULT ISpeechLexiconPronunciation_Invoke(ISpeechLexiconPronunciation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19246    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19247}
19248/*** ISpeechLexiconPronunciation methods ***/
19249static inline HRESULT ISpeechLexiconPronunciation_get_Type(ISpeechLexiconPronunciation* This,SpeechLexiconType *LexiconType) {
19250    return This->lpVtbl->get_Type(This,LexiconType);
19251}
19252static inline HRESULT ISpeechLexiconPronunciation_get_LangId(ISpeechLexiconPronunciation* This,SpeechLanguageId *LangId) {
19253    return This->lpVtbl->get_LangId(This,LangId);
19254}
19255static inline HRESULT ISpeechLexiconPronunciation_get_PartOfSpeech(ISpeechLexiconPronunciation* This,SpeechPartOfSpeech *PartOfSpeech) {
19256    return This->lpVtbl->get_PartOfSpeech(This,PartOfSpeech);
19257}
19258static inline HRESULT ISpeechLexiconPronunciation_get_PhoneIds(ISpeechLexiconPronunciation* This,VARIANT *PhoneIds) {
19259    return This->lpVtbl->get_PhoneIds(This,PhoneIds);
19260}
19261static inline HRESULT ISpeechLexiconPronunciation_get_Symbolic(ISpeechLexiconPronunciation* This,BSTR *Symbolic) {
19262    return This->lpVtbl->get_Symbolic(This,Symbolic);
19263}
19264#endif
19265#endif
19266
19267#endif
19268
19269
19270#endif  /* __ISpeechLexiconPronunciation_INTERFACE_DEFINED__ */
19271
19272/*****************************************************************************
19273 * ISpeechPhoneConverter interface
19274 */
19275#ifndef __ISpeechPhoneConverter_INTERFACE_DEFINED__
19276#define __ISpeechPhoneConverter_INTERFACE_DEFINED__
19277
19278DEFINE_GUID(IID_ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d);
19279#if defined(__cplusplus) && !defined(CINTERFACE)
19280MIDL_INTERFACE("c3e4f353-433f-43d6-89a1-6a62a7054c3d")
19281ISpeechPhoneConverter : public IDispatch
19282{
19283    virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
19284        SpeechLanguageId *LanguageId) = 0;
19285
19286    virtual HRESULT STDMETHODCALLTYPE put_LanguageId(
19287        SpeechLanguageId LanguageId) = 0;
19288
19289    virtual HRESULT STDMETHODCALLTYPE PhoneToId(
19290        const BSTR Phonemes,
19291        VARIANT *IdArray) = 0;
19292
19293    virtual HRESULT STDMETHODCALLTYPE IdToPhone(
19294        const VARIANT IdArray,
19295        BSTR *Phonemes) = 0;
19296
19297};
19298#ifdef __CRT_UUID_DECL
19299__CRT_UUID_DECL(ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d)
19300#endif
19301#else
19302typedef struct ISpeechPhoneConverterVtbl {
19303    BEGIN_INTERFACE
19304
19305    /*** IUnknown methods ***/
19306    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19307        ISpeechPhoneConverter *This,
19308        REFIID riid,
19309        void **ppvObject);
19310
19311    ULONG (STDMETHODCALLTYPE *AddRef)(
19312        ISpeechPhoneConverter *This);
19313
19314    ULONG (STDMETHODCALLTYPE *Release)(
19315        ISpeechPhoneConverter *This);
19316
19317    /*** IDispatch methods ***/
19318    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19319        ISpeechPhoneConverter *This,
19320        UINT *pctinfo);
19321
19322    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19323        ISpeechPhoneConverter *This,
19324        UINT iTInfo,
19325        LCID lcid,
19326        ITypeInfo **ppTInfo);
19327
19328    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19329        ISpeechPhoneConverter *This,
19330        REFIID riid,
19331        LPOLESTR *rgszNames,
19332        UINT cNames,
19333        LCID lcid,
19334        DISPID *rgDispId);
19335
19336    HRESULT (STDMETHODCALLTYPE *Invoke)(
19337        ISpeechPhoneConverter *This,
19338        DISPID dispIdMember,
19339        REFIID riid,
19340        LCID lcid,
19341        WORD wFlags,
19342        DISPPARAMS *pDispParams,
19343        VARIANT *pVarResult,
19344        EXCEPINFO *pExcepInfo,
19345        UINT *puArgErr);
19346
19347    /*** ISpeechPhoneConverter methods ***/
19348    HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
19349        ISpeechPhoneConverter *This,
19350        SpeechLanguageId *LanguageId);
19351
19352    HRESULT (STDMETHODCALLTYPE *put_LanguageId)(
19353        ISpeechPhoneConverter *This,
19354        SpeechLanguageId LanguageId);
19355
19356    HRESULT (STDMETHODCALLTYPE *PhoneToId)(
19357        ISpeechPhoneConverter *This,
19358        const BSTR Phonemes,
19359        VARIANT *IdArray);
19360
19361    HRESULT (STDMETHODCALLTYPE *IdToPhone)(
19362        ISpeechPhoneConverter *This,
19363        const VARIANT IdArray,
19364        BSTR *Phonemes);
19365
19366    END_INTERFACE
19367} ISpeechPhoneConverterVtbl;
19368
19369interface ISpeechPhoneConverter {
19370    CONST_VTBL ISpeechPhoneConverterVtbl* lpVtbl;
19371};
19372
19373#ifdef COBJMACROS
19374#ifndef WIDL_C_INLINE_WRAPPERS
19375/*** IUnknown methods ***/
19376#define ISpeechPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19377#define ISpeechPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
19378#define ISpeechPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
19379/*** IDispatch methods ***/
19380#define ISpeechPhoneConverter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19381#define ISpeechPhoneConverter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19382#define ISpeechPhoneConverter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19383#define ISpeechPhoneConverter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19384/*** ISpeechPhoneConverter methods ***/
19385#define ISpeechPhoneConverter_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
19386#define ISpeechPhoneConverter_put_LanguageId(This,LanguageId) (This)->lpVtbl->put_LanguageId(This,LanguageId)
19387#define ISpeechPhoneConverter_PhoneToId(This,Phonemes,IdArray) (This)->lpVtbl->PhoneToId(This,Phonemes,IdArray)
19388#define ISpeechPhoneConverter_IdToPhone(This,IdArray,Phonemes) (This)->lpVtbl->IdToPhone(This,IdArray,Phonemes)
19389#else
19390/*** IUnknown methods ***/
19391static inline HRESULT ISpeechPhoneConverter_QueryInterface(ISpeechPhoneConverter* This,REFIID riid,void **ppvObject) {
19392    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19393}
19394static inline ULONG ISpeechPhoneConverter_AddRef(ISpeechPhoneConverter* This) {
19395    return This->lpVtbl->AddRef(This);
19396}
19397static inline ULONG ISpeechPhoneConverter_Release(ISpeechPhoneConverter* This) {
19398    return This->lpVtbl->Release(This);
19399}
19400/*** IDispatch methods ***/
19401static inline HRESULT ISpeechPhoneConverter_GetTypeInfoCount(ISpeechPhoneConverter* This,UINT *pctinfo) {
19402    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19403}
19404static inline HRESULT ISpeechPhoneConverter_GetTypeInfo(ISpeechPhoneConverter* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19405    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19406}
19407static inline HRESULT ISpeechPhoneConverter_GetIDsOfNames(ISpeechPhoneConverter* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19408    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19409}
19410static inline HRESULT ISpeechPhoneConverter_Invoke(ISpeechPhoneConverter* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19411    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19412}
19413/*** ISpeechPhoneConverter methods ***/
19414static inline HRESULT ISpeechPhoneConverter_get_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId *LanguageId) {
19415    return This->lpVtbl->get_LanguageId(This,LanguageId);
19416}
19417static inline HRESULT ISpeechPhoneConverter_put_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId LanguageId) {
19418    return This->lpVtbl->put_LanguageId(This,LanguageId);
19419}
19420static inline HRESULT ISpeechPhoneConverter_PhoneToId(ISpeechPhoneConverter* This,const BSTR Phonemes,VARIANT *IdArray) {
19421    return This->lpVtbl->PhoneToId(This,Phonemes,IdArray);
19422}
19423static inline HRESULT ISpeechPhoneConverter_IdToPhone(ISpeechPhoneConverter* This,const VARIANT IdArray,BSTR *Phonemes) {
19424    return This->lpVtbl->IdToPhone(This,IdArray,Phonemes);
19425}
19426#endif
19427#endif
19428
19429#endif
19430
19431
19432#endif  /* __ISpeechPhoneConverter_INTERFACE_DEFINED__ */
19433
19434/*****************************************************************************
19435 * SpNotifyTranslator coclass
19436 */
19437
19438DEFINE_GUID(CLSID_SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
19439
19440#ifdef __cplusplus
19441class DECLSPEC_UUID("e2ae5372-5d40-11d2-960e-00c04f8ee628") SpNotifyTranslator;
19442#ifdef __CRT_UUID_DECL
19443__CRT_UUID_DECL(SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
19444#endif
19445#endif
19446
19447/*****************************************************************************
19448 * SpObjectTokenCategory coclass
19449 */
19450
19451DEFINE_GUID(CLSID_SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53);
19452
19453#ifdef __cplusplus
19454class DECLSPEC_UUID("a910187f-0c7a-45ac-92cc-59edafb77b53") SpObjectTokenCategory;
19455#ifdef __CRT_UUID_DECL
19456__CRT_UUID_DECL(SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53)
19457#endif
19458#endif
19459
19460/*****************************************************************************
19461 * SpObjectToken coclass
19462 */
19463
19464DEFINE_GUID(CLSID_SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe);
19465
19466#ifdef __cplusplus
19467class DECLSPEC_UUID("ef411752-3736-4cb4-9c8c-8ef4ccb58efe") SpObjectToken;
19468#ifdef __CRT_UUID_DECL
19469__CRT_UUID_DECL(SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe)
19470#endif
19471#endif
19472
19473/*****************************************************************************
19474 * SpResourceManager coclass
19475 */
19476
19477DEFINE_GUID(CLSID_SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
19478
19479#ifdef __cplusplus
19480class DECLSPEC_UUID("96749373-3391-11d2-9ee3-00c04f797396") SpResourceManager;
19481#ifdef __CRT_UUID_DECL
19482__CRT_UUID_DECL(SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
19483#endif
19484#endif
19485
19486/*****************************************************************************
19487 * SpStreamFormatConverter coclass
19488 */
19489
19490DEFINE_GUID(CLSID_SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
19491
19492#ifdef __cplusplus
19493class DECLSPEC_UUID("7013943a-e2ec-11d2-a086-00c04f8ef9b5") SpStreamFormatConverter;
19494#ifdef __CRT_UUID_DECL
19495__CRT_UUID_DECL(SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
19496#endif
19497#endif
19498
19499/*****************************************************************************
19500 * SpMMAudioEnum coclass
19501 */
19502
19503DEFINE_GUID(CLSID_SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
19504
19505#ifdef __cplusplus
19506class DECLSPEC_UUID("ab1890a0-e91f-11d2-bb91-00c04f8ee6c0") SpMMAudioEnum;
19507#ifdef __CRT_UUID_DECL
19508__CRT_UUID_DECL(SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
19509#endif
19510#endif
19511
19512/*****************************************************************************
19513 * SpMMAudioIn coclass
19514 */
19515
19516DEFINE_GUID(CLSID_SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
19517
19518#ifdef __cplusplus
19519class DECLSPEC_UUID("cf3d2e50-53f2-11d2-960c-00c04f8ee628") SpMMAudioIn;
19520#ifdef __CRT_UUID_DECL
19521__CRT_UUID_DECL(SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
19522#endif
19523#endif
19524
19525/*****************************************************************************
19526 * SpMMAudioOut coclass
19527 */
19528
19529DEFINE_GUID(CLSID_SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96);
19530
19531#ifdef __cplusplus
19532class DECLSPEC_UUID("a8c680eb-3d32-11d2-9ee7-00c04f797396") SpMMAudioOut;
19533#ifdef __CRT_UUID_DECL
19534__CRT_UUID_DECL(SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96)
19535#endif
19536#endif
19537
19538/*****************************************************************************
19539 * SpStream coclass
19540 */
19541
19542DEFINE_GUID(CLSID_SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
19543
19544#ifdef __cplusplus
19545class DECLSPEC_UUID("715d9c59-4442-11d2-9605-00c04f8ee628") SpStream;
19546#ifdef __CRT_UUID_DECL
19547__CRT_UUID_DECL(SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
19548#endif
19549#endif
19550
19551/*****************************************************************************
19552 * SpVoice coclass
19553 */
19554
19555DEFINE_GUID(CLSID_SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
19556
19557#ifdef __cplusplus
19558class DECLSPEC_UUID("96749377-3391-11d2-9ee3-00c04f797396") SpVoice;
19559#ifdef __CRT_UUID_DECL
19560__CRT_UUID_DECL(SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
19561#endif
19562#endif
19563
19564/*****************************************************************************
19565 * SpSharedRecoContext coclass
19566 */
19567
19568DEFINE_GUID(CLSID_SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
19569
19570#ifdef __cplusplus
19571class DECLSPEC_UUID("47206204-5eca-11d2-960f-00c04f8ee628") SpSharedRecoContext;
19572#ifdef __CRT_UUID_DECL
19573__CRT_UUID_DECL(SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
19574#endif
19575#endif
19576
19577/*****************************************************************************
19578 * SpInprocRecognizer coclass
19579 */
19580
19581DEFINE_GUID(CLSID_SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
19582
19583#ifdef __cplusplus
19584class DECLSPEC_UUID("41b89b6b-9399-11d2-9623-00c04f8ee628") SpInprocRecognizer;
19585#ifdef __CRT_UUID_DECL
19586__CRT_UUID_DECL(SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
19587#endif
19588#endif
19589
19590/*****************************************************************************
19591 * SpSharedRecognizer coclass
19592 */
19593
19594DEFINE_GUID(CLSID_SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f);
19595
19596#ifdef __cplusplus
19597class DECLSPEC_UUID("3bee4890-4fe9-4a37-8c1e-5e7e12791c1f") SpSharedRecognizer;
19598#ifdef __CRT_UUID_DECL
19599__CRT_UUID_DECL(SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f)
19600#endif
19601#endif
19602
19603/*****************************************************************************
19604 * SpLexicon coclass
19605 */
19606
19607DEFINE_GUID(CLSID_SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
19608
19609#ifdef __cplusplus
19610class DECLSPEC_UUID("0655e396-25d0-11d3-9c26-00c04f8ef87c") SpLexicon;
19611#ifdef __CRT_UUID_DECL
19612__CRT_UUID_DECL(SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
19613#endif
19614#endif
19615
19616/*****************************************************************************
19617 * SpUnCompressedLexicon coclass
19618 */
19619
19620DEFINE_GUID(CLSID_SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a);
19621
19622#ifdef __cplusplus
19623class DECLSPEC_UUID("c9e37c15-df92-4727-85d6-72e5eeb6995a") SpUnCompressedLexicon;
19624#ifdef __CRT_UUID_DECL
19625__CRT_UUID_DECL(SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a)
19626#endif
19627#endif
19628
19629/*****************************************************************************
19630 * SpCompressedLexicon coclass
19631 */
19632
19633DEFINE_GUID(CLSID_SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
19634
19635#ifdef __cplusplus
19636class DECLSPEC_UUID("90903716-2f42-11d3-9c26-00c04f8ef87c") SpCompressedLexicon;
19637#ifdef __CRT_UUID_DECL
19638__CRT_UUID_DECL(SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
19639#endif
19640#endif
19641
19642/*****************************************************************************
19643 * SpPhoneConverter coclass
19644 */
19645
19646DEFINE_GUID(CLSID_SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8);
19647
19648#ifdef __cplusplus
19649class DECLSPEC_UUID("9185f743-1143-4c28-86b5-bff14f20e5c8") SpPhoneConverter;
19650#ifdef __CRT_UUID_DECL
19651__CRT_UUID_DECL(SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8)
19652#endif
19653#endif
19654
19655/*****************************************************************************
19656 * SpNullPhoneConverter coclass
19657 */
19658
19659DEFINE_GUID(CLSID_SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3);
19660
19661#ifdef __cplusplus
19662class DECLSPEC_UUID("455f24e9-7396-4a16-9715-7c0fdbe3efe3") SpNullPhoneConverter;
19663#ifdef __CRT_UUID_DECL
19664__CRT_UUID_DECL(SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3)
19665#endif
19666#endif
19667
19668/*****************************************************************************
19669 * SpTextSelectionInformation coclass
19670 */
19671
19672DEFINE_GUID(CLSID_SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6);
19673
19674#ifdef __cplusplus
19675class DECLSPEC_UUID("0f92030a-cbfd-4ab8-a164-ff5985547ff6") SpTextSelectionInformation;
19676#ifdef __CRT_UUID_DECL
19677__CRT_UUID_DECL(SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6)
19678#endif
19679#endif
19680
19681/*****************************************************************************
19682 * SpPhraseInfoBuilder coclass
19683 */
19684
19685DEFINE_GUID(CLSID_SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1);
19686
19687#ifdef __cplusplus
19688class DECLSPEC_UUID("c23fc28d-c55f-4720-8b32-91f73c2bd5d1") SpPhraseInfoBuilder;
19689#ifdef __CRT_UUID_DECL
19690__CRT_UUID_DECL(SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1)
19691#endif
19692#endif
19693
19694/*****************************************************************************
19695 * SpAudioFormat coclass
19696 */
19697
19698DEFINE_GUID(CLSID_SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec);
19699
19700#ifdef __cplusplus
19701class DECLSPEC_UUID("9ef96870-e160-4792-820d-48cf0649e4ec") SpAudioFormat;
19702#ifdef __CRT_UUID_DECL
19703__CRT_UUID_DECL(SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec)
19704#endif
19705#endif
19706
19707/*****************************************************************************
19708 * SpWaveFormatEx coclass
19709 */
19710
19711DEFINE_GUID(CLSID_SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe);
19712
19713#ifdef __cplusplus
19714class DECLSPEC_UUID("c79a574c-63be-44b9-801f-283f87f898be") SpWaveFormatEx;
19715#ifdef __CRT_UUID_DECL
19716__CRT_UUID_DECL(SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe)
19717#endif
19718#endif
19719
19720/*****************************************************************************
19721 * SpInProcRecoContext coclass
19722 */
19723
19724DEFINE_GUID(CLSID_SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a);
19725
19726#ifdef __cplusplus
19727class DECLSPEC_UUID("73ad6842-ace0-45e8-a4dd-8795881a2c2a") SpInProcRecoContext;
19728#ifdef __CRT_UUID_DECL
19729__CRT_UUID_DECL(SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a)
19730#endif
19731#endif
19732
19733/*****************************************************************************
19734 * SpCustomStream coclass
19735 */
19736
19737DEFINE_GUID(CLSID_SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8);
19738
19739#ifdef __cplusplus
19740class DECLSPEC_UUID("8dbef13f-1948-4aa8-8cf0-048eebed95d8") SpCustomStream;
19741#ifdef __CRT_UUID_DECL
19742__CRT_UUID_DECL(SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8)
19743#endif
19744#endif
19745
19746/*****************************************************************************
19747 * SpFileStream coclass
19748 */
19749
19750DEFINE_GUID(CLSID_SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91);
19751
19752#ifdef __cplusplus
19753class DECLSPEC_UUID("947812b3-2ae1-4644-ba86-9e90ded7ec91") SpFileStream;
19754#ifdef __CRT_UUID_DECL
19755__CRT_UUID_DECL(SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91)
19756#endif
19757#endif
19758
19759/*****************************************************************************
19760 * SpMemoryStream coclass
19761 */
19762
19763DEFINE_GUID(CLSID_SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94);
19764
19765#ifdef __cplusplus
19766class DECLSPEC_UUID("5fb7ef7d-dff4-468a-b6b7-2fcbd188f994") SpMemoryStream;
19767#ifdef __CRT_UUID_DECL
19768__CRT_UUID_DECL(SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94)
19769#endif
19770#endif
19771
19772#endif /* __SpeechLib_LIBRARY_DEFINED__ */
19773/* Begin additional prototypes for all interfaces */
19774
19775ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
19776unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
19777unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
19778void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
19779ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
19780unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
19781unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
19782void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
19783ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
19784unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
19785unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
19786void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
19787
19788/* End additional prototypes */
19789
19790#ifdef __cplusplus
19791}
19792#endif
19793
19794#endif /* __sapi51_h__ */