sapiddk.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:136k
源码类别:

模拟服务器

开发平台:

C/C++

  1.     };
  2.     
  3. #else  /* C style interface */
  4.     typedef struct ISpTTSEngineVtbl
  5.     {
  6.         BEGIN_INTERFACE
  7.         
  8.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  9.             ISpTTSEngine * This,
  10.             /* [in] */ REFIID riid,
  11.             /* [iid_is][out] */ void **ppvObject);
  12.         
  13.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  14.             ISpTTSEngine * This);
  15.         
  16.         ULONG ( STDMETHODCALLTYPE *Release )( 
  17.             ISpTTSEngine * This);
  18.         
  19.         HRESULT ( STDMETHODCALLTYPE *Speak )( 
  20.             ISpTTSEngine * This,
  21.             /* [in] */ DWORD dwSpeakFlags,
  22.             /* [in] */ REFGUID rguidFormatId,
  23.             /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
  24.             /* [in] */ const SPVTEXTFRAG *pTextFragList,
  25.             /* [in] */ ISpTTSEngineSite *pOutputSite);
  26.         
  27.         HRESULT ( STDMETHODCALLTYPE *GetOutputFormat )( 
  28.             ISpTTSEngine * This,
  29.             /* [in] */ const GUID *pTargetFmtId,
  30.             /* [in] */ const WAVEFORMATEX *pTargetWaveFormatEx,
  31.             /* [out] */ GUID *pOutputFormatId,
  32.             /* [out] */ WAVEFORMATEX **ppCoMemOutputWaveFormatEx);
  33.         
  34.         END_INTERFACE
  35.     } ISpTTSEngineVtbl;
  36.     interface ISpTTSEngine
  37.     {
  38.         CONST_VTBL struct ISpTTSEngineVtbl *lpVtbl;
  39.     };
  40.     
  41. #ifdef COBJMACROS
  42. #define ISpTTSEngine_QueryInterface(This,riid,ppvObject)
  43.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  44. #define ISpTTSEngine_AddRef(This)
  45.     (This)->lpVtbl -> AddRef(This)
  46. #define ISpTTSEngine_Release(This)
  47.     (This)->lpVtbl -> Release(This)
  48. #define ISpTTSEngine_Speak(This,dwSpeakFlags,rguidFormatId,pWaveFormatEx,pTextFragList,pOutputSite)
  49.     (This)->lpVtbl -> Speak(This,dwSpeakFlags,rguidFormatId,pWaveFormatEx,pTextFragList,pOutputSite)
  50. #define ISpTTSEngine_GetOutputFormat(This,pTargetFmtId,pTargetWaveFormatEx,pOutputFormatId,ppCoMemOutputWaveFormatEx)
  51.     (This)->lpVtbl -> GetOutputFormat(This,pTargetFmtId,pTargetWaveFormatEx,pOutputFormatId,ppCoMemOutputWaveFormatEx)
  52. #endif /* COBJMACROS */
  53. #endif  /* C style interface */
  54. HRESULT STDMETHODCALLTYPE ISpTTSEngine_Speak_Proxy( 
  55.     ISpTTSEngine * This,
  56.     /* [in] */ DWORD dwSpeakFlags,
  57.     /* [in] */ REFGUID rguidFormatId,
  58.     /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
  59.     /* [in] */ const SPVTEXTFRAG *pTextFragList,
  60.     /* [in] */ ISpTTSEngineSite *pOutputSite);
  61. void __RPC_STUB ISpTTSEngine_Speak_Stub(
  62.     IRpcStubBuffer *This,
  63.     IRpcChannelBuffer *_pRpcChannelBuffer,
  64.     PRPC_MESSAGE _pRpcMessage,
  65.     DWORD *_pdwStubPhase);
  66. HRESULT STDMETHODCALLTYPE ISpTTSEngine_GetOutputFormat_Proxy( 
  67.     ISpTTSEngine * This,
  68.     /* [in] */ const GUID *pTargetFmtId,
  69.     /* [in] */ const WAVEFORMATEX *pTargetWaveFormatEx,
  70.     /* [out] */ GUID *pOutputFormatId,
  71.     /* [out] */ WAVEFORMATEX **ppCoMemOutputWaveFormatEx);
  72. void __RPC_STUB ISpTTSEngine_GetOutputFormat_Stub(
  73.     IRpcStubBuffer *This,
  74.     IRpcChannelBuffer *_pRpcChannelBuffer,
  75.     PRPC_MESSAGE _pRpcMessage,
  76.     DWORD *_pdwStubPhase);
  77. #endif  /* __ISpTTSEngine_INTERFACE_DEFINED__ */
  78. /* interface __MIDL_itf_sapiddk_0348 */
  79. /* [local] */ 
  80. typedef /* [restricted] */ struct SPWORDENTRY
  81.     {
  82.     SPWORDHANDLE hWord;
  83.     WORD LangID;
  84.     WCHAR *pszDisplayText;
  85.     WCHAR *pszLexicalForm;
  86.     SPPHONEID *aPhoneId;
  87.     void *pvClientContext;
  88.     }  SPWORDENTRY;
  89. typedef /* [restricted] */ struct SPRULEENTRY
  90.     {
  91.     SPRULEHANDLE hRule;
  92.     SPSTATEHANDLE hInitialState;
  93.     DWORD Attributes;
  94.     void *pvClientRuleContext;
  95.     void *pvClientGrammarContext;
  96.     }  SPRULEENTRY;
  97. typedef 
  98. enum SPTRANSITIONTYPE
  99.     { SPTRANSEPSILON = 0,
  100. SPTRANSWORD = SPTRANSEPSILON + 1,
  101. SPTRANSRULE = SPTRANSWORD + 1,
  102. SPTRANSTEXTBUF = SPTRANSRULE + 1,
  103. SPTRANSWILDCARD = SPTRANSTEXTBUF + 1,
  104. SPTRANSDICTATION = SPTRANSWILDCARD + 1
  105.     }  SPTRANSITIONTYPE;
  106. typedef /* [restricted] */ struct SPTRANSITIONENTRY
  107.     {
  108.     SPTRANSITIONID ID;
  109.     SPSTATEHANDLE hNextState;
  110.     BYTE Type;
  111.     char RequiredConfidence;
  112.     struct 
  113.         {
  114.         DWORD fHasProperty;
  115.         }  ;
  116.     float Weight;
  117.     union 
  118.         {
  119.         struct 
  120.             {
  121.             SPSTATEHANDLE hRuleInitialState;
  122.             SPRULEHANDLE hRule;
  123.             void *pvClientRuleContext;
  124.             }  ;
  125.         struct 
  126.             {
  127.             SPWORDHANDLE hWord;
  128.             void *pvClientWordContext;
  129.             }  ;
  130.         struct 
  131.             {
  132.             void *pvGrammarCookie;
  133.             }  ;
  134.         }  ;
  135.     }  SPTRANSITIONENTRY;
  136. typedef /* [restricted] */ struct SPTRANSITIONPROPERTY
  137.     {
  138.     const WCHAR *pszName;
  139.     ULONG ulId;
  140.     const WCHAR *pszValue;
  141.     VARIANT vValue;
  142.     }  SPTRANSITIONPROPERTY;
  143. typedef /* [restricted] */ struct SPSTATEINFO
  144.     {
  145.     ULONG cAllocatedEntries;
  146.     SPTRANSITIONENTRY *pTransitions;
  147.     ULONG cEpsilons;
  148.     ULONG cRules;
  149.     ULONG cWords;
  150.     ULONG cSpecialTransitions;
  151.     }  SPSTATEINFO;
  152. typedef /* [restricted] */ struct SPPATHENTRY
  153.     {
  154.     SPTRANSITIONID hTransition;
  155.     SPPHRASEELEMENT elem;
  156.     }  SPPATHENTRY;
  157. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0348_v0_0_c_ifspec;
  158. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0348_v0_0_s_ifspec;
  159. #ifndef __ISpCFGInterpreterSite_INTERFACE_DEFINED__
  160. #define __ISpCFGInterpreterSite_INTERFACE_DEFINED__
  161. /* interface ISpCFGInterpreterSite */
  162. /* [restricted][local][unique][helpstring][uuid][object] */ 
  163. EXTERN_C const IID IID_ISpCFGInterpreterSite;
  164. #if defined(__cplusplus) && !defined(CINTERFACE)
  165.     
  166.     MIDL_INTERFACE("6A6FFAD8-78B6-473d-B844-98152E4FB16B")
  167.     ISpCFGInterpreterSite : public IUnknown
  168.     {
  169.     public:
  170.         virtual HRESULT STDMETHODCALLTYPE AddTextReplacement( 
  171.             /* [in] */ SPPHRASEREPLACEMENT *pReplace) = 0;
  172.         
  173.         virtual HRESULT STDMETHODCALLTYPE AddProperty( 
  174.             /* [in] */ const SPPHRASEPROPERTY *pProperty) = 0;
  175.         
  176.         virtual HRESULT STDMETHODCALLTYPE GetResourceValue( 
  177.             /* [in] */ const WCHAR *pszResourceName,
  178.             /* [out] */ WCHAR **ppCoMemResource) = 0;
  179.         
  180.     };
  181.     
  182. #else  /* C style interface */
  183.     typedef struct ISpCFGInterpreterSiteVtbl
  184.     {
  185.         BEGIN_INTERFACE
  186.         
  187.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  188.             ISpCFGInterpreterSite * This,
  189.             /* [in] */ REFIID riid,
  190.             /* [iid_is][out] */ void **ppvObject);
  191.         
  192.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  193.             ISpCFGInterpreterSite * This);
  194.         
  195.         ULONG ( STDMETHODCALLTYPE *Release )( 
  196.             ISpCFGInterpreterSite * This);
  197.         
  198.         HRESULT ( STDMETHODCALLTYPE *AddTextReplacement )( 
  199.             ISpCFGInterpreterSite * This,
  200.             /* [in] */ SPPHRASEREPLACEMENT *pReplace);
  201.         
  202.         HRESULT ( STDMETHODCALLTYPE *AddProperty )( 
  203.             ISpCFGInterpreterSite * This,
  204.             /* [in] */ const SPPHRASEPROPERTY *pProperty);
  205.         
  206.         HRESULT ( STDMETHODCALLTYPE *GetResourceValue )( 
  207.             ISpCFGInterpreterSite * This,
  208.             /* [in] */ const WCHAR *pszResourceName,
  209.             /* [out] */ WCHAR **ppCoMemResource);
  210.         
  211.         END_INTERFACE
  212.     } ISpCFGInterpreterSiteVtbl;
  213.     interface ISpCFGInterpreterSite
  214.     {
  215.         CONST_VTBL struct ISpCFGInterpreterSiteVtbl *lpVtbl;
  216.     };
  217.     
  218. #ifdef COBJMACROS
  219. #define ISpCFGInterpreterSite_QueryInterface(This,riid,ppvObject)
  220.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  221. #define ISpCFGInterpreterSite_AddRef(This)
  222.     (This)->lpVtbl -> AddRef(This)
  223. #define ISpCFGInterpreterSite_Release(This)
  224.     (This)->lpVtbl -> Release(This)
  225. #define ISpCFGInterpreterSite_AddTextReplacement(This,pReplace)
  226.     (This)->lpVtbl -> AddTextReplacement(This,pReplace)
  227. #define ISpCFGInterpreterSite_AddProperty(This,pProperty)
  228.     (This)->lpVtbl -> AddProperty(This,pProperty)
  229. #define ISpCFGInterpreterSite_GetResourceValue(This,pszResourceName,ppCoMemResource)
  230.     (This)->lpVtbl -> GetResourceValue(This,pszResourceName,ppCoMemResource)
  231. #endif /* COBJMACROS */
  232. #endif  /* C style interface */
  233. HRESULT STDMETHODCALLTYPE ISpCFGInterpreterSite_AddTextReplacement_Proxy( 
  234.     ISpCFGInterpreterSite * This,
  235.     /* [in] */ SPPHRASEREPLACEMENT *pReplace);
  236. void __RPC_STUB ISpCFGInterpreterSite_AddTextReplacement_Stub(
  237.     IRpcStubBuffer *This,
  238.     IRpcChannelBuffer *_pRpcChannelBuffer,
  239.     PRPC_MESSAGE _pRpcMessage,
  240.     DWORD *_pdwStubPhase);
  241. HRESULT STDMETHODCALLTYPE ISpCFGInterpreterSite_AddProperty_Proxy( 
  242.     ISpCFGInterpreterSite * This,
  243.     /* [in] */ const SPPHRASEPROPERTY *pProperty);
  244. void __RPC_STUB ISpCFGInterpreterSite_AddProperty_Stub(
  245.     IRpcStubBuffer *This,
  246.     IRpcChannelBuffer *_pRpcChannelBuffer,
  247.     PRPC_MESSAGE _pRpcMessage,
  248.     DWORD *_pdwStubPhase);
  249. HRESULT STDMETHODCALLTYPE ISpCFGInterpreterSite_GetResourceValue_Proxy( 
  250.     ISpCFGInterpreterSite * This,
  251.     /* [in] */ const WCHAR *pszResourceName,
  252.     /* [out] */ WCHAR **ppCoMemResource);
  253. void __RPC_STUB ISpCFGInterpreterSite_GetResourceValue_Stub(
  254.     IRpcStubBuffer *This,
  255.     IRpcChannelBuffer *_pRpcChannelBuffer,
  256.     PRPC_MESSAGE _pRpcMessage,
  257.     DWORD *_pdwStubPhase);
  258. #endif  /* __ISpCFGInterpreterSite_INTERFACE_DEFINED__ */
  259. #ifndef __ISpCFGInterpreter_INTERFACE_DEFINED__
  260. #define __ISpCFGInterpreter_INTERFACE_DEFINED__
  261. /* interface ISpCFGInterpreter */
  262. /* [restricted][local][unique][helpstring][uuid][object] */ 
  263. EXTERN_C const IID IID_ISpCFGInterpreter;
  264. #if defined(__cplusplus) && !defined(CINTERFACE)
  265.     
  266.     MIDL_INTERFACE("F3D3F926-11FC-11d3-BB97-00C04F8EE6C0")
  267.     ISpCFGInterpreter : public IUnknown
  268.     {
  269.     public:
  270.         virtual HRESULT STDMETHODCALLTYPE InitGrammar( 
  271.             /* [in] */ const WCHAR *pszGrammarName,
  272.             /* [in] */ const void **pvGrammarData) = 0;
  273.         
  274.         virtual HRESULT STDMETHODCALLTYPE Interpret( 
  275.             /* [in] */ ISpPhraseBuilder *pPhrase,
  276.             /* [in] */ const ULONG ulFirstElement,
  277.             /* [in] */ const ULONG ulCountOfElements,
  278.             /* [in] */ ISpCFGInterpreterSite *pSite) = 0;
  279.         
  280.     };
  281.     
  282. #else  /* C style interface */
  283.     typedef struct ISpCFGInterpreterVtbl
  284.     {
  285.         BEGIN_INTERFACE
  286.         
  287.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  288.             ISpCFGInterpreter * This,
  289.             /* [in] */ REFIID riid,
  290.             /* [iid_is][out] */ void **ppvObject);
  291.         
  292.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  293.             ISpCFGInterpreter * This);
  294.         
  295.         ULONG ( STDMETHODCALLTYPE *Release )( 
  296.             ISpCFGInterpreter * This);
  297.         
  298.         HRESULT ( STDMETHODCALLTYPE *InitGrammar )( 
  299.             ISpCFGInterpreter * This,
  300.             /* [in] */ const WCHAR *pszGrammarName,
  301.             /* [in] */ const void **pvGrammarData);
  302.         
  303.         HRESULT ( STDMETHODCALLTYPE *Interpret )( 
  304.             ISpCFGInterpreter * This,
  305.             /* [in] */ ISpPhraseBuilder *pPhrase,
  306.             /* [in] */ const ULONG ulFirstElement,
  307.             /* [in] */ const ULONG ulCountOfElements,
  308.             /* [in] */ ISpCFGInterpreterSite *pSite);
  309.         
  310.         END_INTERFACE
  311.     } ISpCFGInterpreterVtbl;
  312.     interface ISpCFGInterpreter
  313.     {
  314.         CONST_VTBL struct ISpCFGInterpreterVtbl *lpVtbl;
  315.     };
  316.     
  317. #ifdef COBJMACROS
  318. #define ISpCFGInterpreter_QueryInterface(This,riid,ppvObject)
  319.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  320. #define ISpCFGInterpreter_AddRef(This)
  321.     (This)->lpVtbl -> AddRef(This)
  322. #define ISpCFGInterpreter_Release(This)
  323.     (This)->lpVtbl -> Release(This)
  324. #define ISpCFGInterpreter_InitGrammar(This,pszGrammarName,pvGrammarData)
  325.     (This)->lpVtbl -> InitGrammar(This,pszGrammarName,pvGrammarData)
  326. #define ISpCFGInterpreter_Interpret(This,pPhrase,ulFirstElement,ulCountOfElements,pSite)
  327.     (This)->lpVtbl -> Interpret(This,pPhrase,ulFirstElement,ulCountOfElements,pSite)
  328. #endif /* COBJMACROS */
  329. #endif  /* C style interface */
  330. HRESULT STDMETHODCALLTYPE ISpCFGInterpreter_InitGrammar_Proxy( 
  331.     ISpCFGInterpreter * This,
  332.     /* [in] */ const WCHAR *pszGrammarName,
  333.     /* [in] */ const void **pvGrammarData);
  334. void __RPC_STUB ISpCFGInterpreter_InitGrammar_Stub(
  335.     IRpcStubBuffer *This,
  336.     IRpcChannelBuffer *_pRpcChannelBuffer,
  337.     PRPC_MESSAGE _pRpcMessage,
  338.     DWORD *_pdwStubPhase);
  339. HRESULT STDMETHODCALLTYPE ISpCFGInterpreter_Interpret_Proxy( 
  340.     ISpCFGInterpreter * This,
  341.     /* [in] */ ISpPhraseBuilder *pPhrase,
  342.     /* [in] */ const ULONG ulFirstElement,
  343.     /* [in] */ const ULONG ulCountOfElements,
  344.     /* [in] */ ISpCFGInterpreterSite *pSite);
  345. void __RPC_STUB ISpCFGInterpreter_Interpret_Stub(
  346.     IRpcStubBuffer *This,
  347.     IRpcChannelBuffer *_pRpcChannelBuffer,
  348.     PRPC_MESSAGE _pRpcMessage,
  349.     DWORD *_pdwStubPhase);
  350. #endif  /* __ISpCFGInterpreter_INTERFACE_DEFINED__ */
  351. /* interface __MIDL_itf_sapiddk_0350 */
  352. /* [local] */ 
  353. typedef 
  354. enum SPCFGNOTIFY
  355.     { SPCFGN_ADD = 0,
  356. SPCFGN_REMOVE = SPCFGN_ADD + 1,
  357. SPCFGN_INVALIDATE = SPCFGN_REMOVE + 1,
  358. SPCFGN_ACTIVATE = SPCFGN_INVALIDATE + 1,
  359. SPCFGN_DEACTIVATE = SPCFGN_ACTIVATE + 1
  360.     }  SPCFGNOTIFY;
  361. typedef 
  362. enum SPRESULTTYPE
  363.     { SPRT_CFG = 0,
  364. SPRT_SLM = 1,
  365. SPRT_PROPRIETARY = 2,
  366. SPRT_FALSE_RECOGNITION = 1L << 2
  367.     }  SPRESULTTYPE;
  368. typedef struct tagSPPHRASEALT
  369.     {
  370.     ISpPhraseBuilder *pPhrase;
  371.     ULONG ulStartElementInParent;
  372.     ULONG cElementsInParent;
  373.     ULONG cElementsInAlternate;
  374.     void *pvAltExtra;
  375.     ULONG cbAltExtra;
  376.     }  SPPHRASEALT;
  377. typedef struct SPRECORESULTINFO
  378.     {
  379.     ULONG cbSize;
  380.     SPRESULTTYPE eResultType;
  381.     BOOL fHypothesis;
  382.     BOOL fProprietaryAutoPause;
  383.     ULONGLONG ullStreamPosStart;
  384.     ULONGLONG ullStreamPosEnd;
  385.     SPGRAMMARHANDLE hGrammar;
  386.     ULONG ulSizeEngineData;
  387.     void *pvEngineData;
  388.     ISpPhraseBuilder *pPhrase;
  389.     SPPHRASEALT *aPhraseAlts;
  390.     ULONG ulNumAlts;
  391.     }  SPRECORESULTINFO;
  392. typedef 
  393. enum SPWORDINFOOPT
  394.     { SPWIO_NONE = 0,
  395. SPWIO_WANT_TEXT = 1
  396.     }  SPWORDINFOOPT;
  397. typedef 
  398. enum SPRULEINFOOPT
  399.     { SPRIO_NONE = 0
  400.     }  SPRULEINFOOPT;
  401. typedef struct SPPARSEINFO
  402.     {
  403.     ULONG cbSize;
  404.     SPRULEHANDLE hRule;
  405.     ULONGLONG ullAudioStreamPosition;
  406.     ULONG ulAudioSize;
  407.     ULONG cTransitions;
  408.     SPPATHENTRY *pPath;
  409.     GUID SREngineID;
  410.     ULONG ulSREnginePrivateDataSize;
  411.     const BYTE *pSREnginePrivateData;
  412.     BOOL fHypothesis;
  413.     }  SPPARSEINFO;
  414. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0350_v0_0_c_ifspec;
  415. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0350_v0_0_s_ifspec;
  416. #ifndef __ISpSREngineSite_INTERFACE_DEFINED__
  417. #define __ISpSREngineSite_INTERFACE_DEFINED__
  418. /* interface ISpSREngineSite */
  419. /* [local][unique][helpstring][uuid][object] */ 
  420. EXTERN_C const IID IID_ISpSREngineSite;
  421. #if defined(__cplusplus) && !defined(CINTERFACE)
  422.     
  423.     MIDL_INTERFACE("3B414AEC-720C-4883-B9EF-178CD394FB3A")
  424.     ISpSREngineSite : public IUnknown
  425.     {
  426.     public:
  427.         virtual HRESULT STDMETHODCALLTYPE Read( 
  428.             /* [in] */ void *pv,
  429.             /* [in] */ ULONG cb,
  430.             /* [out] */ ULONG *pcbRead) = 0;
  431.         
  432.         virtual HRESULT STDMETHODCALLTYPE DataAvailable( 
  433.             ULONG *pcb) = 0;
  434.         
  435.         virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize( 
  436.             /* [in] */ ULONG cbSize) = 0;
  437.         
  438.         virtual HRESULT STDMETHODCALLTYPE ParseFromTransitions( 
  439.             /* [in] */ const SPPARSEINFO *pParseInfo,
  440.             /* [out] */ ISpPhraseBuilder **ppNewPhrase) = 0;
  441.         
  442.         virtual HRESULT STDMETHODCALLTYPE Recognition( 
  443.             /* [in] */ const SPRECORESULTINFO *pResultInfo) = 0;
  444.         
  445.         virtual HRESULT STDMETHODCALLTYPE AddEvent( 
  446.             /* [in] */ const SPEVENT *pEvent,
  447.             /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext) = 0;
  448.         
  449.         virtual HRESULT STDMETHODCALLTYPE Synchronize( 
  450.             /* [in] */ ULONGLONG ullProcessedThruPos) = 0;
  451.         
  452.         virtual HRESULT STDMETHODCALLTYPE GetWordInfo( 
  453.             /* [out][in] */ SPWORDENTRY *pWordEntry,
  454.             /* [in] */ SPWORDINFOOPT Options) = 0;
  455.         
  456.         virtual HRESULT STDMETHODCALLTYPE SetWordClientContext( 
  457.             SPWORDHANDLE hWord,
  458.             void *pvClientContext) = 0;
  459.         
  460.         virtual HRESULT STDMETHODCALLTYPE GetRuleInfo( 
  461.             /* [out][in] */ SPRULEENTRY *pRuleEntry,
  462.             /* [in] */ SPRULEINFOOPT Options) = 0;
  463.         
  464.         virtual HRESULT STDMETHODCALLTYPE SetRuleClientContext( 
  465.             SPRULEHANDLE hRule,
  466.             void *pvClientContext) = 0;
  467.         
  468.         virtual HRESULT STDMETHODCALLTYPE GetStateInfo( 
  469.             SPSTATEHANDLE hState,
  470.             SPSTATEINFO *pStateInfo) = 0;
  471.         
  472.         virtual HRESULT STDMETHODCALLTYPE GetResource( 
  473.             /* [in] */ SPRULEHANDLE hRule,
  474.             /* [in] */ const WCHAR *pszResourceName,
  475.             /* [out] */ WCHAR **ppCoMemResource) = 0;
  476.         
  477.         virtual HRESULT STDMETHODCALLTYPE GetTransitionProperty( 
  478.             /* [in] */ SPTRANSITIONID ID,
  479.             /* [out] */ SPTRANSITIONPROPERTY **ppCoMemProperty) = 0;
  480.         
  481.         virtual HRESULT STDMETHODCALLTYPE IsAlternate( 
  482.             /* [in] */ SPRULEHANDLE hRule,
  483.             /* [in] */ SPRULEHANDLE hAltRule) = 0;
  484.         
  485.         virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates( 
  486.             /* [in] */ SPRULEHANDLE hRule,
  487.             /* [out] */ ULONG *pulNumAlts) = 0;
  488.         
  489.         virtual HRESULT STDMETHODCALLTYPE GetContextMaxAlternates( 
  490.             /* [in] */ SPRECOCONTEXTHANDLE hContext,
  491.             /* [out] */ ULONG *pulNumAlts) = 0;
  492.         
  493.         virtual HRESULT STDMETHODCALLTYPE UpdateRecoPos( 
  494.             /* [in] */ ULONGLONG ullCurrentRecoPos) = 0;
  495.         
  496.     };
  497.     
  498. #else  /* C style interface */
  499.     typedef struct ISpSREngineSiteVtbl
  500.     {
  501.         BEGIN_INTERFACE
  502.         
  503.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  504.             ISpSREngineSite * This,
  505.             /* [in] */ REFIID riid,
  506.             /* [iid_is][out] */ void **ppvObject);
  507.         
  508.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  509.             ISpSREngineSite * This);
  510.         
  511.         ULONG ( STDMETHODCALLTYPE *Release )( 
  512.             ISpSREngineSite * This);
  513.         
  514.         HRESULT ( STDMETHODCALLTYPE *Read )( 
  515.             ISpSREngineSite * This,
  516.             /* [in] */ void *pv,
  517.             /* [in] */ ULONG cb,
  518.             /* [out] */ ULONG *pcbRead);
  519.         
  520.         HRESULT ( STDMETHODCALLTYPE *DataAvailable )( 
  521.             ISpSREngineSite * This,
  522.             ULONG *pcb);
  523.         
  524.         HRESULT ( STDMETHODCALLTYPE *SetBufferNotifySize )( 
  525.             ISpSREngineSite * This,
  526.             /* [in] */ ULONG cbSize);
  527.         
  528.         HRESULT ( STDMETHODCALLTYPE *ParseFromTransitions )( 
  529.             ISpSREngineSite * This,
  530.             /* [in] */ const SPPARSEINFO *pParseInfo,
  531.             /* [out] */ ISpPhraseBuilder **ppNewPhrase);
  532.         
  533.         HRESULT ( STDMETHODCALLTYPE *Recognition )( 
  534.             ISpSREngineSite * This,
  535.             /* [in] */ const SPRECORESULTINFO *pResultInfo);
  536.         
  537.         HRESULT ( STDMETHODCALLTYPE *AddEvent )( 
  538.             ISpSREngineSite * This,
  539.             /* [in] */ const SPEVENT *pEvent,
  540.             /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext);
  541.         
  542.         HRESULT ( STDMETHODCALLTYPE *Synchronize )( 
  543.             ISpSREngineSite * This,
  544.             /* [in] */ ULONGLONG ullProcessedThruPos);
  545.         
  546.         HRESULT ( STDMETHODCALLTYPE *GetWordInfo )( 
  547.             ISpSREngineSite * This,
  548.             /* [out][in] */ SPWORDENTRY *pWordEntry,
  549.             /* [in] */ SPWORDINFOOPT Options);
  550.         
  551.         HRESULT ( STDMETHODCALLTYPE *SetWordClientContext )( 
  552.             ISpSREngineSite * This,
  553.             SPWORDHANDLE hWord,
  554.             void *pvClientContext);
  555.         
  556.         HRESULT ( STDMETHODCALLTYPE *GetRuleInfo )( 
  557.             ISpSREngineSite * This,
  558.             /* [out][in] */ SPRULEENTRY *pRuleEntry,
  559.             /* [in] */ SPRULEINFOOPT Options);
  560.         
  561.         HRESULT ( STDMETHODCALLTYPE *SetRuleClientContext )( 
  562.             ISpSREngineSite * This,
  563.             SPRULEHANDLE hRule,
  564.             void *pvClientContext);
  565.         
  566.         HRESULT ( STDMETHODCALLTYPE *GetStateInfo )( 
  567.             ISpSREngineSite * This,
  568.             SPSTATEHANDLE hState,
  569.             SPSTATEINFO *pStateInfo);
  570.         
  571.         HRESULT ( STDMETHODCALLTYPE *GetResource )( 
  572.             ISpSREngineSite * This,
  573.             /* [in] */ SPRULEHANDLE hRule,
  574.             /* [in] */ const WCHAR *pszResourceName,
  575.             /* [out] */ WCHAR **ppCoMemResource);
  576.         
  577.         HRESULT ( STDMETHODCALLTYPE *GetTransitionProperty )( 
  578.             ISpSREngineSite * This,
  579.             /* [in] */ SPTRANSITIONID ID,
  580.             /* [out] */ SPTRANSITIONPROPERTY **ppCoMemProperty);
  581.         
  582.         HRESULT ( STDMETHODCALLTYPE *IsAlternate )( 
  583.             ISpSREngineSite * This,
  584.             /* [in] */ SPRULEHANDLE hRule,
  585.             /* [in] */ SPRULEHANDLE hAltRule);
  586.         
  587.         HRESULT ( STDMETHODCALLTYPE *GetMaxAlternates )( 
  588.             ISpSREngineSite * This,
  589.             /* [in] */ SPRULEHANDLE hRule,
  590.             /* [out] */ ULONG *pulNumAlts);
  591.         
  592.         HRESULT ( STDMETHODCALLTYPE *GetContextMaxAlternates )( 
  593.             ISpSREngineSite * This,
  594.             /* [in] */ SPRECOCONTEXTHANDLE hContext,
  595.             /* [out] */ ULONG *pulNumAlts);
  596.         
  597.         HRESULT ( STDMETHODCALLTYPE *UpdateRecoPos )( 
  598.             ISpSREngineSite * This,
  599.             /* [in] */ ULONGLONG ullCurrentRecoPos);
  600.         
  601.         END_INTERFACE
  602.     } ISpSREngineSiteVtbl;
  603.     interface ISpSREngineSite
  604.     {
  605.         CONST_VTBL struct ISpSREngineSiteVtbl *lpVtbl;
  606.     };
  607.     
  608. #ifdef COBJMACROS
  609. #define ISpSREngineSite_QueryInterface(This,riid,ppvObject)
  610.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  611. #define ISpSREngineSite_AddRef(This)
  612.     (This)->lpVtbl -> AddRef(This)
  613. #define ISpSREngineSite_Release(This)
  614.     (This)->lpVtbl -> Release(This)
  615. #define ISpSREngineSite_Read(This,pv,cb,pcbRead)
  616.     (This)->lpVtbl -> Read(This,pv,cb,pcbRead)
  617. #define ISpSREngineSite_DataAvailable(This,pcb)
  618.     (This)->lpVtbl -> DataAvailable(This,pcb)
  619. #define ISpSREngineSite_SetBufferNotifySize(This,cbSize)
  620.     (This)->lpVtbl -> SetBufferNotifySize(This,cbSize)
  621. #define ISpSREngineSite_ParseFromTransitions(This,pParseInfo,ppNewPhrase)
  622.     (This)->lpVtbl -> ParseFromTransitions(This,pParseInfo,ppNewPhrase)
  623. #define ISpSREngineSite_Recognition(This,pResultInfo)
  624.     (This)->lpVtbl -> Recognition(This,pResultInfo)
  625. #define ISpSREngineSite_AddEvent(This,pEvent,hSAPIRecoContext)
  626.     (This)->lpVtbl -> AddEvent(This,pEvent,hSAPIRecoContext)
  627. #define ISpSREngineSite_Synchronize(This,ullProcessedThruPos)
  628.     (This)->lpVtbl -> Synchronize(This,ullProcessedThruPos)
  629. #define ISpSREngineSite_GetWordInfo(This,pWordEntry,Options)
  630.     (This)->lpVtbl -> GetWordInfo(This,pWordEntry,Options)
  631. #define ISpSREngineSite_SetWordClientContext(This,hWord,pvClientContext)
  632.     (This)->lpVtbl -> SetWordClientContext(This,hWord,pvClientContext)
  633. #define ISpSREngineSite_GetRuleInfo(This,pRuleEntry,Options)
  634.     (This)->lpVtbl -> GetRuleInfo(This,pRuleEntry,Options)
  635. #define ISpSREngineSite_SetRuleClientContext(This,hRule,pvClientContext)
  636.     (This)->lpVtbl -> SetRuleClientContext(This,hRule,pvClientContext)
  637. #define ISpSREngineSite_GetStateInfo(This,hState,pStateInfo)
  638.     (This)->lpVtbl -> GetStateInfo(This,hState,pStateInfo)
  639. #define ISpSREngineSite_GetResource(This,hRule,pszResourceName,ppCoMemResource)
  640.     (This)->lpVtbl -> GetResource(This,hRule,pszResourceName,ppCoMemResource)
  641. #define ISpSREngineSite_GetTransitionProperty(This,ID,ppCoMemProperty)
  642.     (This)->lpVtbl -> GetTransitionProperty(This,ID,ppCoMemProperty)
  643. #define ISpSREngineSite_IsAlternate(This,hRule,hAltRule)
  644.     (This)->lpVtbl -> IsAlternate(This,hRule,hAltRule)
  645. #define ISpSREngineSite_GetMaxAlternates(This,hRule,pulNumAlts)
  646.     (This)->lpVtbl -> GetMaxAlternates(This,hRule,pulNumAlts)
  647. #define ISpSREngineSite_GetContextMaxAlternates(This,hContext,pulNumAlts)
  648.     (This)->lpVtbl -> GetContextMaxAlternates(This,hContext,pulNumAlts)
  649. #define ISpSREngineSite_UpdateRecoPos(This,ullCurrentRecoPos)
  650.     (This)->lpVtbl -> UpdateRecoPos(This,ullCurrentRecoPos)
  651. #endif /* COBJMACROS */
  652. #endif  /* C style interface */
  653. HRESULT STDMETHODCALLTYPE ISpSREngineSite_Read_Proxy( 
  654.     ISpSREngineSite * This,
  655.     /* [in] */ void *pv,
  656.     /* [in] */ ULONG cb,
  657.     /* [out] */ ULONG *pcbRead);
  658. void __RPC_STUB ISpSREngineSite_Read_Stub(
  659.     IRpcStubBuffer *This,
  660.     IRpcChannelBuffer *_pRpcChannelBuffer,
  661.     PRPC_MESSAGE _pRpcMessage,
  662.     DWORD *_pdwStubPhase);
  663. HRESULT STDMETHODCALLTYPE ISpSREngineSite_DataAvailable_Proxy( 
  664.     ISpSREngineSite * This,
  665.     ULONG *pcb);
  666. void __RPC_STUB ISpSREngineSite_DataAvailable_Stub(
  667.     IRpcStubBuffer *This,
  668.     IRpcChannelBuffer *_pRpcChannelBuffer,
  669.     PRPC_MESSAGE _pRpcMessage,
  670.     DWORD *_pdwStubPhase);
  671. HRESULT STDMETHODCALLTYPE ISpSREngineSite_SetBufferNotifySize_Proxy( 
  672.     ISpSREngineSite * This,
  673.     /* [in] */ ULONG cbSize);
  674. void __RPC_STUB ISpSREngineSite_SetBufferNotifySize_Stub(
  675.     IRpcStubBuffer *This,
  676.     IRpcChannelBuffer *_pRpcChannelBuffer,
  677.     PRPC_MESSAGE _pRpcMessage,
  678.     DWORD *_pdwStubPhase);
  679. HRESULT STDMETHODCALLTYPE ISpSREngineSite_ParseFromTransitions_Proxy( 
  680.     ISpSREngineSite * This,
  681.     /* [in] */ const SPPARSEINFO *pParseInfo,
  682.     /* [out] */ ISpPhraseBuilder **ppNewPhrase);
  683. void __RPC_STUB ISpSREngineSite_ParseFromTransitions_Stub(
  684.     IRpcStubBuffer *This,
  685.     IRpcChannelBuffer *_pRpcChannelBuffer,
  686.     PRPC_MESSAGE _pRpcMessage,
  687.     DWORD *_pdwStubPhase);
  688. HRESULT STDMETHODCALLTYPE ISpSREngineSite_Recognition_Proxy( 
  689.     ISpSREngineSite * This,
  690.     /* [in] */ const SPRECORESULTINFO *pResultInfo);
  691. void __RPC_STUB ISpSREngineSite_Recognition_Stub(
  692.     IRpcStubBuffer *This,
  693.     IRpcChannelBuffer *_pRpcChannelBuffer,
  694.     PRPC_MESSAGE _pRpcMessage,
  695.     DWORD *_pdwStubPhase);
  696. HRESULT STDMETHODCALLTYPE ISpSREngineSite_AddEvent_Proxy( 
  697.     ISpSREngineSite * This,
  698.     /* [in] */ const SPEVENT *pEvent,
  699.     /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext);
  700. void __RPC_STUB ISpSREngineSite_AddEvent_Stub(
  701.     IRpcStubBuffer *This,
  702.     IRpcChannelBuffer *_pRpcChannelBuffer,
  703.     PRPC_MESSAGE _pRpcMessage,
  704.     DWORD *_pdwStubPhase);
  705. HRESULT STDMETHODCALLTYPE ISpSREngineSite_Synchronize_Proxy( 
  706.     ISpSREngineSite * This,
  707.     /* [in] */ ULONGLONG ullProcessedThruPos);
  708. void __RPC_STUB ISpSREngineSite_Synchronize_Stub(
  709.     IRpcStubBuffer *This,
  710.     IRpcChannelBuffer *_pRpcChannelBuffer,
  711.     PRPC_MESSAGE _pRpcMessage,
  712.     DWORD *_pdwStubPhase);
  713. HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetWordInfo_Proxy( 
  714.     ISpSREngineSite * This,
  715.     /* [out][in] */ SPWORDENTRY *pWordEntry,
  716.     /* [in] */ SPWORDINFOOPT Options);
  717. void __RPC_STUB ISpSREngineSite_GetWordInfo_Stub(
  718.     IRpcStubBuffer *This,
  719.     IRpcChannelBuffer *_pRpcChannelBuffer,
  720.     PRPC_MESSAGE _pRpcMessage,
  721.     DWORD *_pdwStubPhase);
  722. HRESULT STDMETHODCALLTYPE ISpSREngineSite_SetWordClientContext_Proxy( 
  723.     ISpSREngineSite * This,
  724.     SPWORDHANDLE hWord,
  725.     void *pvClientContext);
  726. void __RPC_STUB ISpSREngineSite_SetWordClientContext_Stub(
  727.     IRpcStubBuffer *This,
  728.     IRpcChannelBuffer *_pRpcChannelBuffer,
  729.     PRPC_MESSAGE _pRpcMessage,
  730.     DWORD *_pdwStubPhase);
  731. HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetRuleInfo_Proxy( 
  732.     ISpSREngineSite * This,
  733.     /* [out][in] */ SPRULEENTRY *pRuleEntry,
  734.     /* [in] */ SPRULEINFOOPT Options);
  735. void __RPC_STUB ISpSREngineSite_GetRuleInfo_Stub(
  736.     IRpcStubBuffer *This,
  737.     IRpcChannelBuffer *_pRpcChannelBuffer,
  738.     PRPC_MESSAGE _pRpcMessage,
  739.     DWORD *_pdwStubPhase);
  740. HRESULT STDMETHODCALLTYPE ISpSREngineSite_SetRuleClientContext_Proxy( 
  741.     ISpSREngineSite * This,
  742.     SPRULEHANDLE hRule,
  743.     void *pvClientContext);
  744. void __RPC_STUB ISpSREngineSite_SetRuleClientContext_Stub(
  745.     IRpcStubBuffer *This,
  746.     IRpcChannelBuffer *_pRpcChannelBuffer,
  747.     PRPC_MESSAGE _pRpcMessage,
  748.     DWORD *_pdwStubPhase);
  749. HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetStateInfo_Proxy( 
  750.     ISpSREngineSite * This,
  751.     SPSTATEHANDLE hState,
  752.     SPSTATEINFO *pStateInfo);
  753. void __RPC_STUB ISpSREngineSite_GetStateInfo_Stub(
  754.     IRpcStubBuffer *This,
  755.     IRpcChannelBuffer *_pRpcChannelBuffer,
  756.     PRPC_MESSAGE _pRpcMessage,
  757.     DWORD *_pdwStubPhase);
  758. HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetResource_Proxy( 
  759.     ISpSREngineSite * This,
  760.     /* [in] */ SPRULEHANDLE hRule,
  761.     /* [in] */ const WCHAR *pszResourceName,
  762.     /* [out] */ WCHAR **ppCoMemResource);
  763. void __RPC_STUB ISpSREngineSite_GetResource_Stub(
  764.     IRpcStubBuffer *This,
  765.     IRpcChannelBuffer *_pRpcChannelBuffer,
  766.     PRPC_MESSAGE _pRpcMessage,
  767.     DWORD *_pdwStubPhase);
  768. HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetTransitionProperty_Proxy( 
  769.     ISpSREngineSite * This,
  770.     /* [in] */ SPTRANSITIONID ID,
  771.     /* [out] */ SPTRANSITIONPROPERTY **ppCoMemProperty);
  772. void __RPC_STUB ISpSREngineSite_GetTransitionProperty_Stub(
  773.     IRpcStubBuffer *This,
  774.     IRpcChannelBuffer *_pRpcChannelBuffer,
  775.     PRPC_MESSAGE _pRpcMessage,
  776.     DWORD *_pdwStubPhase);
  777. HRESULT STDMETHODCALLTYPE ISpSREngineSite_IsAlternate_Proxy( 
  778.     ISpSREngineSite * This,
  779.     /* [in] */ SPRULEHANDLE hRule,
  780.     /* [in] */ SPRULEHANDLE hAltRule);
  781. void __RPC_STUB ISpSREngineSite_IsAlternate_Stub(
  782.     IRpcStubBuffer *This,
  783.     IRpcChannelBuffer *_pRpcChannelBuffer,
  784.     PRPC_MESSAGE _pRpcMessage,
  785.     DWORD *_pdwStubPhase);
  786. HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetMaxAlternates_Proxy( 
  787.     ISpSREngineSite * This,
  788.     /* [in] */ SPRULEHANDLE hRule,
  789.     /* [out] */ ULONG *pulNumAlts);
  790. void __RPC_STUB ISpSREngineSite_GetMaxAlternates_Stub(
  791.     IRpcStubBuffer *This,
  792.     IRpcChannelBuffer *_pRpcChannelBuffer,
  793.     PRPC_MESSAGE _pRpcMessage,
  794.     DWORD *_pdwStubPhase);
  795. HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetContextMaxAlternates_Proxy( 
  796.     ISpSREngineSite * This,
  797.     /* [in] */ SPRECOCONTEXTHANDLE hContext,
  798.     /* [out] */ ULONG *pulNumAlts);
  799. void __RPC_STUB ISpSREngineSite_GetContextMaxAlternates_Stub(
  800.     IRpcStubBuffer *This,
  801.     IRpcChannelBuffer *_pRpcChannelBuffer,
  802.     PRPC_MESSAGE _pRpcMessage,
  803.     DWORD *_pdwStubPhase);
  804. HRESULT STDMETHODCALLTYPE ISpSREngineSite_UpdateRecoPos_Proxy( 
  805.     ISpSREngineSite * This,
  806.     /* [in] */ ULONGLONG ullCurrentRecoPos);
  807. void __RPC_STUB ISpSREngineSite_UpdateRecoPos_Stub(
  808.     IRpcStubBuffer *This,
  809.     IRpcChannelBuffer *_pRpcChannelBuffer,
  810.     PRPC_MESSAGE _pRpcMessage,
  811.     DWORD *_pdwStubPhase);
  812. #endif  /* __ISpSREngineSite_INTERFACE_DEFINED__ */
  813. /* interface __MIDL_itf_sapiddk_0351 */
  814. /* [local] */ 
  815. typedef 
  816. enum SPPROPSRC
  817.     { SPPROPSRC_RECO_INST = 0,
  818. SPPROPSRC_RECO_CTX = SPPROPSRC_RECO_INST + 1,
  819. SPPROPSRC_RECO_GRAMMAR = SPPROPSRC_RECO_CTX + 1
  820.     }  SPPROPSRC;
  821. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0351_v0_0_c_ifspec;
  822. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0351_v0_0_s_ifspec;
  823. #ifndef __ISpSREngine_INTERFACE_DEFINED__
  824. #define __ISpSREngine_INTERFACE_DEFINED__
  825. /* interface ISpSREngine */
  826. /* [local][unique][helpstring][uuid][object] */ 
  827. EXTERN_C const IID IID_ISpSREngine;
  828. #if defined(__cplusplus) && !defined(CINTERFACE)
  829.     
  830.     MIDL_INTERFACE("2F472991-854B-4465-B613-FBAFB3AD8ED8")
  831.     ISpSREngine : public IUnknown
  832.     {
  833.     public:
  834.         virtual HRESULT STDMETHODCALLTYPE SetSite( 
  835.             /* [in] */ ISpSREngineSite *pSite) = 0;
  836.         
  837.         virtual HRESULT STDMETHODCALLTYPE GetInputAudioFormat( 
  838.             /* [in] */ const GUID *pguidSourceFormatId,
  839.             /* [in] */ const WAVEFORMATEX *pSourceWaveFormatEx,
  840.             /* [out] */ GUID *pguidDesiredFormatId,
  841.             /* [out] */ WAVEFORMATEX **ppCoMemDesiredWaveFormatEx) = 0;
  842.         
  843.         virtual HRESULT STDMETHODCALLTYPE RecognizeStream( 
  844.             /* [in] */ REFGUID rguidFmtId,
  845.             /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
  846.             /* [in] */ HANDLE hRequestSync,
  847.             /* [in] */ HANDLE hDataAvailable,
  848.             /* [in] */ HANDLE hExit,
  849.             /* [in] */ BOOL fNewAudioStream,
  850.             /* [in] */ BOOL fRealTimeAudio,
  851.             /* [in] */ ISpObjectToken *pAudioObjectToken) = 0;
  852.         
  853.         virtual HRESULT STDMETHODCALLTYPE SetRecoProfile( 
  854.             ISpObjectToken *pProfile) = 0;
  855.         
  856.         virtual HRESULT STDMETHODCALLTYPE OnCreateGrammar( 
  857.             /* [in] */ void *pvEngineRecoContext,
  858.             /* [in] */ SPGRAMMARHANDLE hSAPIGrammar,
  859.             /* [out] */ void **ppvEngineGrammarContext) = 0;
  860.         
  861.         virtual HRESULT STDMETHODCALLTYPE OnDeleteGrammar( 
  862.             /* [in] */ void *pvEngineGrammar) = 0;
  863.         
  864.         virtual HRESULT STDMETHODCALLTYPE LoadProprietaryGrammar( 
  865.             /* [in] */ void *pvEngineGrammar,
  866.             /* [in] */ REFGUID rguidParam,
  867.             /* [string][in] */ const WCHAR *pszStringParam,
  868.             /* [in] */ const void *pvDataParam,
  869.             /* [in] */ ULONG ulDataSize,
  870.             /* [in] */ SPLOADOPTIONS Options) = 0;
  871.         
  872.         virtual HRESULT STDMETHODCALLTYPE UnloadProprietaryGrammar( 
  873.             /* [in] */ void *pvEngineGrammar) = 0;
  874.         
  875.         virtual HRESULT STDMETHODCALLTYPE SetProprietaryRuleState( 
  876.             /* [in] */ void *pvEngineGrammar,
  877.             /* [string][in] */ const WCHAR *pszName,
  878.             /* [in] */ void *pReserved,
  879.             /* [in] */ SPRULESTATE NewState,
  880.             /* [out] */ ULONG *pcRulesChanged) = 0;
  881.         
  882.         virtual HRESULT STDMETHODCALLTYPE SetProprietaryRuleIdState( 
  883.             /* [in] */ void *pvEngineGrammar,
  884.             /* [in] */ DWORD dwRuleId,
  885.             /* [in] */ SPRULESTATE NewState) = 0;
  886.         
  887.         virtual HRESULT STDMETHODCALLTYPE LoadSLM( 
  888.             /* [in] */ void *pvEngineGrammar,
  889.             /* [string][in] */ const WCHAR *pszTopicName) = 0;
  890.         
  891.         virtual HRESULT STDMETHODCALLTYPE UnloadSLM( 
  892.             /* [in] */ void *pvEngineGrammar) = 0;
  893.         
  894.         virtual HRESULT STDMETHODCALLTYPE SetSLMState( 
  895.             /* [in] */ void *pvEngineGrammar,
  896.             /* [in] */ SPRULESTATE NewState) = 0;
  897.         
  898.         virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData( 
  899.             /* [in] */ void *pvEngineGrammar,
  900.             /* [in] */ const WCHAR *pText,
  901.             /* [in] */ ULONG cchText,
  902.             /* [in] */ const SPTEXTSELECTIONINFO *pInfo) = 0;
  903.         
  904.         virtual HRESULT STDMETHODCALLTYPE SetTextSelection( 
  905.             /* [in] */ void *pvEngineGrammar,
  906.             /* [in] */ const SPTEXTSELECTIONINFO *pInfo) = 0;
  907.         
  908.         virtual HRESULT STDMETHODCALLTYPE IsPronounceable( 
  909.             /* [in] */ void *pvEngineGrammar,
  910.             /* [string][in] */ const WCHAR *pszWord,
  911.             /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
  912.         
  913.         virtual HRESULT STDMETHODCALLTYPE OnCreateRecoContext( 
  914.             /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext,
  915.             /* [out] */ void **ppvEngineContext) = 0;
  916.         
  917.         virtual HRESULT STDMETHODCALLTYPE OnDeleteRecoContext( 
  918.             /* [in] */ void *pvEngineContext) = 0;
  919.         
  920.         virtual HRESULT STDMETHODCALLTYPE PrivateCall( 
  921.             /* [in] */ void *pvEngineContext,
  922.             /* [out][in] */ PVOID pCallFrame,
  923.             /* [in] */ ULONG ulCallFrameSize) = 0;
  924.         
  925.         virtual HRESULT STDMETHODCALLTYPE SetAdaptationData( 
  926.             /* [in] */ void *pvEngineContext,
  927.             const WCHAR *pAdaptationData,
  928.             const ULONG cch) = 0;
  929.         
  930.         virtual HRESULT STDMETHODCALLTYPE SetPropertyNum( 
  931.             /* [in] */ SPPROPSRC eSrc,
  932.             /* [in] */ void *pvSrcObj,
  933.             /* [in] */ const WCHAR *pName,
  934.             /* [in] */ LONG lValue) = 0;
  935.         
  936.         virtual HRESULT STDMETHODCALLTYPE GetPropertyNum( 
  937.             /* [in] */ SPPROPSRC eSrc,
  938.             /* [in] */ void *pvSrcObj,
  939.             /* [in] */ const WCHAR *pName,
  940.             /* [out] */ LONG *lValue) = 0;
  941.         
  942.         virtual HRESULT STDMETHODCALLTYPE SetPropertyString( 
  943.             /* [in] */ SPPROPSRC eSrc,
  944.             /* [in] */ void *pvSrcObj,
  945.             /* [in] */ const WCHAR *pName,
  946.             /* [in] */ const WCHAR *pValue) = 0;
  947.         
  948.         virtual HRESULT STDMETHODCALLTYPE GetPropertyString( 
  949.             /* [in] */ SPPROPSRC eSrc,
  950.             /* [in] */ void *pvSrcObj,
  951.             /* [in] */ const WCHAR *pName,
  952.             /* [out] */ WCHAR **ppCoMemValue) = 0;
  953.         
  954.         virtual HRESULT STDMETHODCALLTYPE SetGrammarState( 
  955.             /* [in] */ void *pvEngineGrammar,
  956.             /* [in] */ SPGRAMMARSTATE eGrammarState) = 0;
  957.         
  958.         virtual HRESULT STDMETHODCALLTYPE WordNotify( 
  959.             SPCFGNOTIFY Action,
  960.             ULONG cWords,
  961.             const SPWORDENTRY *pWords) = 0;
  962.         
  963.         virtual HRESULT STDMETHODCALLTYPE RuleNotify( 
  964.             SPCFGNOTIFY Action,
  965.             ULONG cRules,
  966.             const SPRULEENTRY *pRules) = 0;
  967.         
  968.         virtual HRESULT STDMETHODCALLTYPE PrivateCallEx( 
  969.             /* [in] */ void *pvEngineContext,
  970.             /* [in] */ const void *pInCallFrame,
  971.             /* [in] */ ULONG ulInCallFrameSize,
  972.             /* [out] */ void **ppvCoMemResponse,
  973.             /* [out] */ ULONG *pulResponseSize) = 0;
  974.         
  975.         virtual HRESULT STDMETHODCALLTYPE SetContextState( 
  976.             /* [in] */ void *pvEngineContext,
  977.             /* [in] */ SPCONTEXTSTATE eContextState) = 0;
  978.         
  979.     };
  980.     
  981. #else  /* C style interface */
  982.     typedef struct ISpSREngineVtbl
  983.     {
  984.         BEGIN_INTERFACE
  985.         
  986.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  987.             ISpSREngine * This,
  988.             /* [in] */ REFIID riid,
  989.             /* [iid_is][out] */ void **ppvObject);
  990.         
  991.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  992.             ISpSREngine * This);
  993.         
  994.         ULONG ( STDMETHODCALLTYPE *Release )( 
  995.             ISpSREngine * This);
  996.         
  997.         HRESULT ( STDMETHODCALLTYPE *SetSite )( 
  998.             ISpSREngine * This,
  999.             /* [in] */ ISpSREngineSite *pSite);
  1000.         
  1001.         HRESULT ( STDMETHODCALLTYPE *GetInputAudioFormat )( 
  1002.             ISpSREngine * This,
  1003.             /* [in] */ const GUID *pguidSourceFormatId,
  1004.             /* [in] */ const WAVEFORMATEX *pSourceWaveFormatEx,
  1005.             /* [out] */ GUID *pguidDesiredFormatId,
  1006.             /* [out] */ WAVEFORMATEX **ppCoMemDesiredWaveFormatEx);
  1007.         
  1008.         HRESULT ( STDMETHODCALLTYPE *RecognizeStream )( 
  1009.             ISpSREngine * This,
  1010.             /* [in] */ REFGUID rguidFmtId,
  1011.             /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
  1012.             /* [in] */ HANDLE hRequestSync,
  1013.             /* [in] */ HANDLE hDataAvailable,
  1014.             /* [in] */ HANDLE hExit,
  1015.             /* [in] */ BOOL fNewAudioStream,
  1016.             /* [in] */ BOOL fRealTimeAudio,
  1017.             /* [in] */ ISpObjectToken *pAudioObjectToken);
  1018.         
  1019.         HRESULT ( STDMETHODCALLTYPE *SetRecoProfile )( 
  1020.             ISpSREngine * This,
  1021.             ISpObjectToken *pProfile);
  1022.         
  1023.         HRESULT ( STDMETHODCALLTYPE *OnCreateGrammar )( 
  1024.             ISpSREngine * This,
  1025.             /* [in] */ void *pvEngineRecoContext,
  1026.             /* [in] */ SPGRAMMARHANDLE hSAPIGrammar,
  1027.             /* [out] */ void **ppvEngineGrammarContext);
  1028.         
  1029.         HRESULT ( STDMETHODCALLTYPE *OnDeleteGrammar )( 
  1030.             ISpSREngine * This,
  1031.             /* [in] */ void *pvEngineGrammar);
  1032.         
  1033.         HRESULT ( STDMETHODCALLTYPE *LoadProprietaryGrammar )( 
  1034.             ISpSREngine * This,
  1035.             /* [in] */ void *pvEngineGrammar,
  1036.             /* [in] */ REFGUID rguidParam,
  1037.             /* [string][in] */ const WCHAR *pszStringParam,
  1038.             /* [in] */ const void *pvDataParam,
  1039.             /* [in] */ ULONG ulDataSize,
  1040.             /* [in] */ SPLOADOPTIONS Options);
  1041.         
  1042.         HRESULT ( STDMETHODCALLTYPE *UnloadProprietaryGrammar )( 
  1043.             ISpSREngine * This,
  1044.             /* [in] */ void *pvEngineGrammar);
  1045.         
  1046.         HRESULT ( STDMETHODCALLTYPE *SetProprietaryRuleState )( 
  1047.             ISpSREngine * This,
  1048.             /* [in] */ void *pvEngineGrammar,
  1049.             /* [string][in] */ const WCHAR *pszName,
  1050.             /* [in] */ void *pReserved,
  1051.             /* [in] */ SPRULESTATE NewState,
  1052.             /* [out] */ ULONG *pcRulesChanged);
  1053.         
  1054.         HRESULT ( STDMETHODCALLTYPE *SetProprietaryRuleIdState )( 
  1055.             ISpSREngine * This,
  1056.             /* [in] */ void *pvEngineGrammar,
  1057.             /* [in] */ DWORD dwRuleId,
  1058.             /* [in] */ SPRULESTATE NewState);
  1059.         
  1060.         HRESULT ( STDMETHODCALLTYPE *LoadSLM )( 
  1061.             ISpSREngine * This,
  1062.             /* [in] */ void *pvEngineGrammar,
  1063.             /* [string][in] */ const WCHAR *pszTopicName);
  1064.         
  1065.         HRESULT ( STDMETHODCALLTYPE *UnloadSLM )( 
  1066.             ISpSREngine * This,
  1067.             /* [in] */ void *pvEngineGrammar);
  1068.         
  1069.         HRESULT ( STDMETHODCALLTYPE *SetSLMState )( 
  1070.             ISpSREngine * This,
  1071.             /* [in] */ void *pvEngineGrammar,
  1072.             /* [in] */ SPRULESTATE NewState);
  1073.         
  1074.         HRESULT ( STDMETHODCALLTYPE *SetWordSequenceData )( 
  1075.             ISpSREngine * This,
  1076.             /* [in] */ void *pvEngineGrammar,
  1077.             /* [in] */ const WCHAR *pText,
  1078.             /* [in] */ ULONG cchText,
  1079.             /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
  1080.         
  1081.         HRESULT ( STDMETHODCALLTYPE *SetTextSelection )( 
  1082.             ISpSREngine * This,
  1083.             /* [in] */ void *pvEngineGrammar,
  1084.             /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
  1085.         
  1086.         HRESULT ( STDMETHODCALLTYPE *IsPronounceable )( 
  1087.             ISpSREngine * This,
  1088.             /* [in] */ void *pvEngineGrammar,
  1089.             /* [string][in] */ const WCHAR *pszWord,
  1090.             /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable);
  1091.         
  1092.         HRESULT ( STDMETHODCALLTYPE *OnCreateRecoContext )( 
  1093.             ISpSREngine * This,
  1094.             /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext,
  1095.             /* [out] */ void **ppvEngineContext);
  1096.         
  1097.         HRESULT ( STDMETHODCALLTYPE *OnDeleteRecoContext )( 
  1098.             ISpSREngine * This,
  1099.             /* [in] */ void *pvEngineContext);
  1100.         
  1101.         HRESULT ( STDMETHODCALLTYPE *PrivateCall )( 
  1102.             ISpSREngine * This,
  1103.             /* [in] */ void *pvEngineContext,
  1104.             /* [out][in] */ PVOID pCallFrame,
  1105.             /* [in] */ ULONG ulCallFrameSize);
  1106.         
  1107.         HRESULT ( STDMETHODCALLTYPE *SetAdaptationData )( 
  1108.             ISpSREngine * This,
  1109.             /* [in] */ void *pvEngineContext,
  1110.             const WCHAR *pAdaptationData,
  1111.             const ULONG cch);
  1112.         
  1113.         HRESULT ( STDMETHODCALLTYPE *SetPropertyNum )( 
  1114.             ISpSREngine * This,
  1115.             /* [in] */ SPPROPSRC eSrc,
  1116.             /* [in] */ void *pvSrcObj,
  1117.             /* [in] */ const WCHAR *pName,
  1118.             /* [in] */ LONG lValue);
  1119.         
  1120.         HRESULT ( STDMETHODCALLTYPE *GetPropertyNum )( 
  1121.             ISpSREngine * This,
  1122.             /* [in] */ SPPROPSRC eSrc,
  1123.             /* [in] */ void *pvSrcObj,
  1124.             /* [in] */ const WCHAR *pName,
  1125.             /* [out] */ LONG *lValue);
  1126.         
  1127.         HRESULT ( STDMETHODCALLTYPE *SetPropertyString )( 
  1128.             ISpSREngine * This,
  1129.             /* [in] */ SPPROPSRC eSrc,
  1130.             /* [in] */ void *pvSrcObj,
  1131.             /* [in] */ const WCHAR *pName,
  1132.             /* [in] */ const WCHAR *pValue);
  1133.         
  1134.         HRESULT ( STDMETHODCALLTYPE *GetPropertyString )( 
  1135.             ISpSREngine * This,
  1136.             /* [in] */ SPPROPSRC eSrc,
  1137.             /* [in] */ void *pvSrcObj,
  1138.             /* [in] */ const WCHAR *pName,
  1139.             /* [out] */ WCHAR **ppCoMemValue);
  1140.         
  1141.         HRESULT ( STDMETHODCALLTYPE *SetGrammarState )( 
  1142.             ISpSREngine * This,
  1143.             /* [in] */ void *pvEngineGrammar,
  1144.             /* [in] */ SPGRAMMARSTATE eGrammarState);
  1145.         
  1146.         HRESULT ( STDMETHODCALLTYPE *WordNotify )( 
  1147.             ISpSREngine * This,
  1148.             SPCFGNOTIFY Action,
  1149.             ULONG cWords,
  1150.             const SPWORDENTRY *pWords);
  1151.         
  1152.         HRESULT ( STDMETHODCALLTYPE *RuleNotify )( 
  1153.             ISpSREngine * This,
  1154.             SPCFGNOTIFY Action,
  1155.             ULONG cRules,
  1156.             const SPRULEENTRY *pRules);
  1157.         
  1158.         HRESULT ( STDMETHODCALLTYPE *PrivateCallEx )( 
  1159.             ISpSREngine * This,
  1160.             /* [in] */ void *pvEngineContext,
  1161.             /* [in] */ const void *pInCallFrame,
  1162.             /* [in] */ ULONG ulInCallFrameSize,
  1163.             /* [out] */ void **ppvCoMemResponse,
  1164.             /* [out] */ ULONG *pulResponseSize);
  1165.         
  1166.         HRESULT ( STDMETHODCALLTYPE *SetContextState )( 
  1167.             ISpSREngine * This,
  1168.             /* [in] */ void *pvEngineContext,
  1169.             /* [in] */ SPCONTEXTSTATE eContextState);
  1170.         
  1171.         END_INTERFACE
  1172.     } ISpSREngineVtbl;
  1173.     interface ISpSREngine
  1174.     {
  1175.         CONST_VTBL struct ISpSREngineVtbl *lpVtbl;
  1176.     };
  1177.     
  1178. #ifdef COBJMACROS
  1179. #define ISpSREngine_QueryInterface(This,riid,ppvObject)
  1180.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1181. #define ISpSREngine_AddRef(This)
  1182.     (This)->lpVtbl -> AddRef(This)
  1183. #define ISpSREngine_Release(This)
  1184.     (This)->lpVtbl -> Release(This)
  1185. #define ISpSREngine_SetSite(This,pSite)
  1186.     (This)->lpVtbl -> SetSite(This,pSite)
  1187. #define ISpSREngine_GetInputAudioFormat(This,pguidSourceFormatId,pSourceWaveFormatEx,pguidDesiredFormatId,ppCoMemDesiredWaveFormatEx)
  1188.     (This)->lpVtbl -> GetInputAudioFormat(This,pguidSourceFormatId,pSourceWaveFormatEx,pguidDesiredFormatId,ppCoMemDesiredWaveFormatEx)
  1189. #define ISpSREngine_RecognizeStream(This,rguidFmtId,pWaveFormatEx,hRequestSync,hDataAvailable,hExit,fNewAudioStream,fRealTimeAudio,pAudioObjectToken)
  1190.     (This)->lpVtbl -> RecognizeStream(This,rguidFmtId,pWaveFormatEx,hRequestSync,hDataAvailable,hExit,fNewAudioStream,fRealTimeAudio,pAudioObjectToken)
  1191. #define ISpSREngine_SetRecoProfile(This,pProfile)
  1192.     (This)->lpVtbl -> SetRecoProfile(This,pProfile)
  1193. #define ISpSREngine_OnCreateGrammar(This,pvEngineRecoContext,hSAPIGrammar,ppvEngineGrammarContext)
  1194.     (This)->lpVtbl -> OnCreateGrammar(This,pvEngineRecoContext,hSAPIGrammar,ppvEngineGrammarContext)
  1195. #define ISpSREngine_OnDeleteGrammar(This,pvEngineGrammar)
  1196.     (This)->lpVtbl -> OnDeleteGrammar(This,pvEngineGrammar)
  1197. #define ISpSREngine_LoadProprietaryGrammar(This,pvEngineGrammar,rguidParam,pszStringParam,pvDataParam,ulDataSize,Options)
  1198.     (This)->lpVtbl -> LoadProprietaryGrammar(This,pvEngineGrammar,rguidParam,pszStringParam,pvDataParam,ulDataSize,Options)
  1199. #define ISpSREngine_UnloadProprietaryGrammar(This,pvEngineGrammar)
  1200.     (This)->lpVtbl -> UnloadProprietaryGrammar(This,pvEngineGrammar)
  1201. #define ISpSREngine_SetProprietaryRuleState(This,pvEngineGrammar,pszName,pReserved,NewState,pcRulesChanged)
  1202.     (This)->lpVtbl -> SetProprietaryRuleState(This,pvEngineGrammar,pszName,pReserved,NewState,pcRulesChanged)
  1203. #define ISpSREngine_SetProprietaryRuleIdState(This,pvEngineGrammar,dwRuleId,NewState)
  1204.     (This)->lpVtbl -> SetProprietaryRuleIdState(This,pvEngineGrammar,dwRuleId,NewState)
  1205. #define ISpSREngine_LoadSLM(This,pvEngineGrammar,pszTopicName)
  1206.     (This)->lpVtbl -> LoadSLM(This,pvEngineGrammar,pszTopicName)
  1207. #define ISpSREngine_UnloadSLM(This,pvEngineGrammar)
  1208.     (This)->lpVtbl -> UnloadSLM(This,pvEngineGrammar)
  1209. #define ISpSREngine_SetSLMState(This,pvEngineGrammar,NewState)
  1210.     (This)->lpVtbl -> SetSLMState(This,pvEngineGrammar,NewState)
  1211. #define ISpSREngine_SetWordSequenceData(This,pvEngineGrammar,pText,cchText,pInfo)
  1212.     (This)->lpVtbl -> SetWordSequenceData(This,pvEngineGrammar,pText,cchText,pInfo)
  1213. #define ISpSREngine_SetTextSelection(This,pvEngineGrammar,pInfo)
  1214.     (This)->lpVtbl -> SetTextSelection(This,pvEngineGrammar,pInfo)
  1215. #define ISpSREngine_IsPronounceable(This,pvEngineGrammar,pszWord,pWordPronounceable)
  1216.     (This)->lpVtbl -> IsPronounceable(This,pvEngineGrammar,pszWord,pWordPronounceable)
  1217. #define ISpSREngine_OnCreateRecoContext(This,hSAPIRecoContext,ppvEngineContext)
  1218.     (This)->lpVtbl -> OnCreateRecoContext(This,hSAPIRecoContext,ppvEngineContext)
  1219. #define ISpSREngine_OnDeleteRecoContext(This,pvEngineContext)
  1220.     (This)->lpVtbl -> OnDeleteRecoContext(This,pvEngineContext)
  1221. #define ISpSREngine_PrivateCall(This,pvEngineContext,pCallFrame,ulCallFrameSize)
  1222.     (This)->lpVtbl -> PrivateCall(This,pvEngineContext,pCallFrame,ulCallFrameSize)
  1223. #define ISpSREngine_SetAdaptationData(This,pvEngineContext,pAdaptationData,cch)
  1224.     (This)->lpVtbl -> SetAdaptationData(This,pvEngineContext,pAdaptationData,cch)
  1225. #define ISpSREngine_SetPropertyNum(This,eSrc,pvSrcObj,pName,lValue)
  1226.     (This)->lpVtbl -> SetPropertyNum(This,eSrc,pvSrcObj,pName,lValue)
  1227. #define ISpSREngine_GetPropertyNum(This,eSrc,pvSrcObj,pName,lValue)
  1228.     (This)->lpVtbl -> GetPropertyNum(This,eSrc,pvSrcObj,pName,lValue)
  1229. #define ISpSREngine_SetPropertyString(This,eSrc,pvSrcObj,pName,pValue)
  1230.     (This)->lpVtbl -> SetPropertyString(This,eSrc,pvSrcObj,pName,pValue)
  1231. #define ISpSREngine_GetPropertyString(This,eSrc,pvSrcObj,pName,ppCoMemValue)
  1232.     (This)->lpVtbl -> GetPropertyString(This,eSrc,pvSrcObj,pName,ppCoMemValue)
  1233. #define ISpSREngine_SetGrammarState(This,pvEngineGrammar,eGrammarState)
  1234.     (This)->lpVtbl -> SetGrammarState(This,pvEngineGrammar,eGrammarState)
  1235. #define ISpSREngine_WordNotify(This,Action,cWords,pWords)
  1236.     (This)->lpVtbl -> WordNotify(This,Action,cWords,pWords)
  1237. #define ISpSREngine_RuleNotify(This,Action,cRules,pRules)
  1238.     (This)->lpVtbl -> RuleNotify(This,Action,cRules,pRules)
  1239. #define ISpSREngine_PrivateCallEx(This,pvEngineContext,pInCallFrame,ulInCallFrameSize,ppvCoMemResponse,pulResponseSize)
  1240.     (This)->lpVtbl -> PrivateCallEx(This,pvEngineContext,pInCallFrame,ulInCallFrameSize,ppvCoMemResponse,pulResponseSize)
  1241. #define ISpSREngine_SetContextState(This,pvEngineContext,eContextState)
  1242.     (This)->lpVtbl -> SetContextState(This,pvEngineContext,eContextState)
  1243. #endif /* COBJMACROS */
  1244. #endif  /* C style interface */
  1245. HRESULT STDMETHODCALLTYPE ISpSREngine_SetSite_Proxy( 
  1246.     ISpSREngine * This,
  1247.     /* [in] */ ISpSREngineSite *pSite);
  1248. void __RPC_STUB ISpSREngine_SetSite_Stub(
  1249.     IRpcStubBuffer *This,
  1250.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1251.     PRPC_MESSAGE _pRpcMessage,
  1252.     DWORD *_pdwStubPhase);
  1253. HRESULT STDMETHODCALLTYPE ISpSREngine_GetInputAudioFormat_Proxy( 
  1254.     ISpSREngine * This,
  1255.     /* [in] */ const GUID *pguidSourceFormatId,
  1256.     /* [in] */ const WAVEFORMATEX *pSourceWaveFormatEx,
  1257.     /* [out] */ GUID *pguidDesiredFormatId,
  1258.     /* [out] */ WAVEFORMATEX **ppCoMemDesiredWaveFormatEx);
  1259. void __RPC_STUB ISpSREngine_GetInputAudioFormat_Stub(
  1260.     IRpcStubBuffer *This,
  1261.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1262.     PRPC_MESSAGE _pRpcMessage,
  1263.     DWORD *_pdwStubPhase);
  1264. HRESULT STDMETHODCALLTYPE ISpSREngine_RecognizeStream_Proxy( 
  1265.     ISpSREngine * This,
  1266.     /* [in] */ REFGUID rguidFmtId,
  1267.     /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
  1268.     /* [in] */ HANDLE hRequestSync,
  1269.     /* [in] */ HANDLE hDataAvailable,
  1270.     /* [in] */ HANDLE hExit,
  1271.     /* [in] */ BOOL fNewAudioStream,
  1272.     /* [in] */ BOOL fRealTimeAudio,
  1273.     /* [in] */ ISpObjectToken *pAudioObjectToken);
  1274. void __RPC_STUB ISpSREngine_RecognizeStream_Stub(
  1275.     IRpcStubBuffer *This,
  1276.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1277.     PRPC_MESSAGE _pRpcMessage,
  1278.     DWORD *_pdwStubPhase);
  1279. HRESULT STDMETHODCALLTYPE ISpSREngine_SetRecoProfile_Proxy( 
  1280.     ISpSREngine * This,
  1281.     ISpObjectToken *pProfile);
  1282. void __RPC_STUB ISpSREngine_SetRecoProfile_Stub(
  1283.     IRpcStubBuffer *This,
  1284.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1285.     PRPC_MESSAGE _pRpcMessage,
  1286.     DWORD *_pdwStubPhase);
  1287. HRESULT STDMETHODCALLTYPE ISpSREngine_OnCreateGrammar_Proxy( 
  1288.     ISpSREngine * This,
  1289.     /* [in] */ void *pvEngineRecoContext,
  1290.     /* [in] */ SPGRAMMARHANDLE hSAPIGrammar,
  1291.     /* [out] */ void **ppvEngineGrammarContext);
  1292. void __RPC_STUB ISpSREngine_OnCreateGrammar_Stub(
  1293.     IRpcStubBuffer *This,
  1294.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1295.     PRPC_MESSAGE _pRpcMessage,
  1296.     DWORD *_pdwStubPhase);
  1297. HRESULT STDMETHODCALLTYPE ISpSREngine_OnDeleteGrammar_Proxy( 
  1298.     ISpSREngine * This,
  1299.     /* [in] */ void *pvEngineGrammar);
  1300. void __RPC_STUB ISpSREngine_OnDeleteGrammar_Stub(
  1301.     IRpcStubBuffer *This,
  1302.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1303.     PRPC_MESSAGE _pRpcMessage,
  1304.     DWORD *_pdwStubPhase);
  1305. HRESULT STDMETHODCALLTYPE ISpSREngine_LoadProprietaryGrammar_Proxy( 
  1306.     ISpSREngine * This,
  1307.     /* [in] */ void *pvEngineGrammar,
  1308.     /* [in] */ REFGUID rguidParam,
  1309.     /* [string][in] */ const WCHAR *pszStringParam,
  1310.     /* [in] */ const void *pvDataParam,
  1311.     /* [in] */ ULONG ulDataSize,
  1312.     /* [in] */ SPLOADOPTIONS Options);
  1313. void __RPC_STUB ISpSREngine_LoadProprietaryGrammar_Stub(
  1314.     IRpcStubBuffer *This,
  1315.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1316.     PRPC_MESSAGE _pRpcMessage,
  1317.     DWORD *_pdwStubPhase);
  1318. HRESULT STDMETHODCALLTYPE ISpSREngine_UnloadProprietaryGrammar_Proxy( 
  1319.     ISpSREngine * This,
  1320.     /* [in] */ void *pvEngineGrammar);
  1321. void __RPC_STUB ISpSREngine_UnloadProprietaryGrammar_Stub(
  1322.     IRpcStubBuffer *This,
  1323.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1324.     PRPC_MESSAGE _pRpcMessage,
  1325.     DWORD *_pdwStubPhase);
  1326. HRESULT STDMETHODCALLTYPE ISpSREngine_SetProprietaryRuleState_Proxy( 
  1327.     ISpSREngine * This,
  1328.     /* [in] */ void *pvEngineGrammar,
  1329.     /* [string][in] */ const WCHAR *pszName,
  1330.     /* [in] */ void *pReserved,
  1331.     /* [in] */ SPRULESTATE NewState,
  1332.     /* [out] */ ULONG *pcRulesChanged);
  1333. void __RPC_STUB ISpSREngine_SetProprietaryRuleState_Stub(
  1334.     IRpcStubBuffer *This,
  1335.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1336.     PRPC_MESSAGE _pRpcMessage,
  1337.     DWORD *_pdwStubPhase);
  1338. HRESULT STDMETHODCALLTYPE ISpSREngine_SetProprietaryRuleIdState_Proxy( 
  1339.     ISpSREngine * This,
  1340.     /* [in] */ void *pvEngineGrammar,
  1341.     /* [in] */ DWORD dwRuleId,
  1342.     /* [in] */ SPRULESTATE NewState);
  1343. void __RPC_STUB ISpSREngine_SetProprietaryRuleIdState_Stub(
  1344.     IRpcStubBuffer *This,
  1345.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1346.     PRPC_MESSAGE _pRpcMessage,
  1347.     DWORD *_pdwStubPhase);
  1348. HRESULT STDMETHODCALLTYPE ISpSREngine_LoadSLM_Proxy( 
  1349.     ISpSREngine * This,
  1350.     /* [in] */ void *pvEngineGrammar,
  1351.     /* [string][in] */ const WCHAR *pszTopicName);
  1352. void __RPC_STUB ISpSREngine_LoadSLM_Stub(
  1353.     IRpcStubBuffer *This,
  1354.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1355.     PRPC_MESSAGE _pRpcMessage,
  1356.     DWORD *_pdwStubPhase);
  1357. HRESULT STDMETHODCALLTYPE ISpSREngine_UnloadSLM_Proxy( 
  1358.     ISpSREngine * This,
  1359.     /* [in] */ void *pvEngineGrammar);
  1360. void __RPC_STUB ISpSREngine_UnloadSLM_Stub(
  1361.     IRpcStubBuffer *This,
  1362.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1363.     PRPC_MESSAGE _pRpcMessage,
  1364.     DWORD *_pdwStubPhase);
  1365. HRESULT STDMETHODCALLTYPE ISpSREngine_SetSLMState_Proxy( 
  1366.     ISpSREngine * This,
  1367.     /* [in] */ void *pvEngineGrammar,
  1368.     /* [in] */ SPRULESTATE NewState);
  1369. void __RPC_STUB ISpSREngine_SetSLMState_Stub(
  1370.     IRpcStubBuffer *This,
  1371.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1372.     PRPC_MESSAGE _pRpcMessage,
  1373.     DWORD *_pdwStubPhase);
  1374. HRESULT STDMETHODCALLTYPE ISpSREngine_SetWordSequenceData_Proxy( 
  1375.     ISpSREngine * This,
  1376.     /* [in] */ void *pvEngineGrammar,
  1377.     /* [in] */ const WCHAR *pText,
  1378.     /* [in] */ ULONG cchText,
  1379.     /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
  1380. void __RPC_STUB ISpSREngine_SetWordSequenceData_Stub(
  1381.     IRpcStubBuffer *This,
  1382.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1383.     PRPC_MESSAGE _pRpcMessage,
  1384.     DWORD *_pdwStubPhase);
  1385. HRESULT STDMETHODCALLTYPE ISpSREngine_SetTextSelection_Proxy( 
  1386.     ISpSREngine * This,
  1387.     /* [in] */ void *pvEngineGrammar,
  1388.     /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
  1389. void __RPC_STUB ISpSREngine_SetTextSelection_Stub(
  1390.     IRpcStubBuffer *This,
  1391.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1392.     PRPC_MESSAGE _pRpcMessage,
  1393.     DWORD *_pdwStubPhase);
  1394. HRESULT STDMETHODCALLTYPE ISpSREngine_IsPronounceable_Proxy( 
  1395.     ISpSREngine * This,
  1396.     /* [in] */ void *pvEngineGrammar,
  1397.     /* [string][in] */ const WCHAR *pszWord,
  1398.     /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable);
  1399. void __RPC_STUB ISpSREngine_IsPronounceable_Stub(
  1400.     IRpcStubBuffer *This,
  1401.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1402.     PRPC_MESSAGE _pRpcMessage,
  1403.     DWORD *_pdwStubPhase);
  1404. HRESULT STDMETHODCALLTYPE ISpSREngine_OnCreateRecoContext_Proxy( 
  1405.     ISpSREngine * This,
  1406.     /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext,
  1407.     /* [out] */ void **ppvEngineContext);
  1408. void __RPC_STUB ISpSREngine_OnCreateRecoContext_Stub(
  1409.     IRpcStubBuffer *This,
  1410.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1411.     PRPC_MESSAGE _pRpcMessage,
  1412.     DWORD *_pdwStubPhase);
  1413. HRESULT STDMETHODCALLTYPE ISpSREngine_OnDeleteRecoContext_Proxy( 
  1414.     ISpSREngine * This,
  1415.     /* [in] */ void *pvEngineContext);
  1416. void __RPC_STUB ISpSREngine_OnDeleteRecoContext_Stub(
  1417.     IRpcStubBuffer *This,
  1418.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1419.     PRPC_MESSAGE _pRpcMessage,
  1420.     DWORD *_pdwStubPhase);
  1421. HRESULT STDMETHODCALLTYPE ISpSREngine_PrivateCall_Proxy( 
  1422.     ISpSREngine * This,
  1423.     /* [in] */ void *pvEngineContext,
  1424.     /* [out][in] */ PVOID pCallFrame,
  1425.     /* [in] */ ULONG ulCallFrameSize);
  1426. void __RPC_STUB ISpSREngine_PrivateCall_Stub(
  1427.     IRpcStubBuffer *This,
  1428.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1429.     PRPC_MESSAGE _pRpcMessage,
  1430.     DWORD *_pdwStubPhase);
  1431. HRESULT STDMETHODCALLTYPE ISpSREngine_SetAdaptationData_Proxy( 
  1432.     ISpSREngine * This,
  1433.     /* [in] */ void *pvEngineContext,
  1434.     const WCHAR *pAdaptationData,
  1435.     const ULONG cch);
  1436. void __RPC_STUB ISpSREngine_SetAdaptationData_Stub(
  1437.     IRpcStubBuffer *This,
  1438.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1439.     PRPC_MESSAGE _pRpcMessage,
  1440.     DWORD *_pdwStubPhase);
  1441. HRESULT STDMETHODCALLTYPE ISpSREngine_SetPropertyNum_Proxy( 
  1442.     ISpSREngine * This,
  1443.     /* [in] */ SPPROPSRC eSrc,
  1444.     /* [in] */ void *pvSrcObj,
  1445.     /* [in] */ const WCHAR *pName,
  1446.     /* [in] */ LONG lValue);
  1447. void __RPC_STUB ISpSREngine_SetPropertyNum_Stub(
  1448.     IRpcStubBuffer *This,
  1449.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1450.     PRPC_MESSAGE _pRpcMessage,
  1451.     DWORD *_pdwStubPhase);
  1452. HRESULT STDMETHODCALLTYPE ISpSREngine_GetPropertyNum_Proxy( 
  1453.     ISpSREngine * This,
  1454.     /* [in] */ SPPROPSRC eSrc,
  1455.     /* [in] */ void *pvSrcObj,
  1456.     /* [in] */ const WCHAR *pName,
  1457.     /* [out] */ LONG *lValue);
  1458. void __RPC_STUB ISpSREngine_GetPropertyNum_Stub(
  1459.     IRpcStubBuffer *This,
  1460.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1461.     PRPC_MESSAGE _pRpcMessage,
  1462.     DWORD *_pdwStubPhase);
  1463. HRESULT STDMETHODCALLTYPE ISpSREngine_SetPropertyString_Proxy( 
  1464.     ISpSREngine * This,
  1465.     /* [in] */ SPPROPSRC eSrc,
  1466.     /* [in] */ void *pvSrcObj,
  1467.     /* [in] */ const WCHAR *pName,
  1468.     /* [in] */ const WCHAR *pValue);
  1469. void __RPC_STUB ISpSREngine_SetPropertyString_Stub(
  1470.     IRpcStubBuffer *This,
  1471.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1472.     PRPC_MESSAGE _pRpcMessage,
  1473.     DWORD *_pdwStubPhase);
  1474. HRESULT STDMETHODCALLTYPE ISpSREngine_GetPropertyString_Proxy( 
  1475.     ISpSREngine * This,
  1476.     /* [in] */ SPPROPSRC eSrc,
  1477.     /* [in] */ void *pvSrcObj,
  1478.     /* [in] */ const WCHAR *pName,
  1479.     /* [out] */ WCHAR **ppCoMemValue);
  1480. void __RPC_STUB ISpSREngine_GetPropertyString_Stub(
  1481.     IRpcStubBuffer *This,
  1482.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1483.     PRPC_MESSAGE _pRpcMessage,
  1484.     DWORD *_pdwStubPhase);
  1485. HRESULT STDMETHODCALLTYPE ISpSREngine_SetGrammarState_Proxy( 
  1486.     ISpSREngine * This,
  1487.     /* [in] */ void *pvEngineGrammar,
  1488.     /* [in] */ SPGRAMMARSTATE eGrammarState);
  1489. void __RPC_STUB ISpSREngine_SetGrammarState_Stub(
  1490.     IRpcStubBuffer *This,
  1491.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1492.     PRPC_MESSAGE _pRpcMessage,
  1493.     DWORD *_pdwStubPhase);
  1494. HRESULT STDMETHODCALLTYPE ISpSREngine_WordNotify_Proxy( 
  1495.     ISpSREngine * This,
  1496.     SPCFGNOTIFY Action,
  1497.     ULONG cWords,
  1498.     const SPWORDENTRY *pWords);
  1499. void __RPC_STUB ISpSREngine_WordNotify_Stub(
  1500.     IRpcStubBuffer *This,
  1501.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1502.     PRPC_MESSAGE _pRpcMessage,
  1503.     DWORD *_pdwStubPhase);
  1504. HRESULT STDMETHODCALLTYPE ISpSREngine_RuleNotify_Proxy( 
  1505.     ISpSREngine * This,
  1506.     SPCFGNOTIFY Action,
  1507.     ULONG cRules,
  1508.     const SPRULEENTRY *pRules);
  1509. void __RPC_STUB ISpSREngine_RuleNotify_Stub(
  1510.     IRpcStubBuffer *This,
  1511.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1512.     PRPC_MESSAGE _pRpcMessage,
  1513.     DWORD *_pdwStubPhase);
  1514. HRESULT STDMETHODCALLTYPE ISpSREngine_PrivateCallEx_Proxy( 
  1515.     ISpSREngine * This,
  1516.     /* [in] */ void *pvEngineContext,
  1517.     /* [in] */ const void *pInCallFrame,
  1518.     /* [in] */ ULONG ulInCallFrameSize,
  1519.     /* [out] */ void **ppvCoMemResponse,
  1520.     /* [out] */ ULONG *pulResponseSize);
  1521. void __RPC_STUB ISpSREngine_PrivateCallEx_Stub(
  1522.     IRpcStubBuffer *This,
  1523.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1524.     PRPC_MESSAGE _pRpcMessage,
  1525.     DWORD *_pdwStubPhase);
  1526. HRESULT STDMETHODCALLTYPE ISpSREngine_SetContextState_Proxy( 
  1527.     ISpSREngine * This,
  1528.     /* [in] */ void *pvEngineContext,
  1529.     /* [in] */ SPCONTEXTSTATE eContextState);
  1530. void __RPC_STUB ISpSREngine_SetContextState_Stub(
  1531.     IRpcStubBuffer *This,
  1532.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1533.     PRPC_MESSAGE _pRpcMessage,
  1534.     DWORD *_pdwStubPhase);
  1535. #endif  /* __ISpSREngine_INTERFACE_DEFINED__ */
  1536. /* interface __MIDL_itf_sapiddk_0352 */
  1537. /* [local] */ 
  1538. typedef struct tagSPPHRASEALTREQUEST
  1539.     {
  1540.     ULONG ulStartElement;
  1541.     ULONG cElements;
  1542.     ULONG ulRequestAltCount;
  1543.     void *pvResultExtra;
  1544.     ULONG cbResultExtra;
  1545.     ISpPhrase *pPhrase;
  1546.     ISpRecoContext *pRecoContext;
  1547.     }  SPPHRASEALTREQUEST;
  1548. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0352_v0_0_c_ifspec;
  1549. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0352_v0_0_s_ifspec;
  1550. #ifndef __ISpSRAlternates_INTERFACE_DEFINED__
  1551. #define __ISpSRAlternates_INTERFACE_DEFINED__
  1552. /* interface ISpSRAlternates */
  1553. /* [local][unique][helpstring][uuid][object] */ 
  1554. EXTERN_C const IID IID_ISpSRAlternates;
  1555. #if defined(__cplusplus) && !defined(CINTERFACE)
  1556.     
  1557.     MIDL_INTERFACE("FECE8294-2BE1-408f-8E68-2DE377092F0E")
  1558.     ISpSRAlternates : public IUnknown
  1559.     {
  1560.     public:
  1561.         virtual HRESULT STDMETHODCALLTYPE GetAlternates( 
  1562.             /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
  1563.             /* [out] */ SPPHRASEALT **ppAlts,
  1564.             /* [out] */ ULONG *pcAlts) = 0;
  1565.         
  1566.         virtual HRESULT STDMETHODCALLTYPE Commit( 
  1567.             /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
  1568.             /* [in] */ SPPHRASEALT *pAlt,
  1569.             /* [out] */ void **ppvResultExtra,
  1570.             /* [out] */ ULONG *pcbResultExtra) = 0;
  1571.         
  1572.     };
  1573.     
  1574. #else  /* C style interface */
  1575.     typedef struct ISpSRAlternatesVtbl
  1576.     {
  1577.         BEGIN_INTERFACE
  1578.         
  1579.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1580.             ISpSRAlternates * This,
  1581.             /* [in] */ REFIID riid,
  1582.             /* [iid_is][out] */ void **ppvObject);
  1583.         
  1584.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1585.             ISpSRAlternates * This);
  1586.         
  1587.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1588.             ISpSRAlternates * This);
  1589.         
  1590.         HRESULT ( STDMETHODCALLTYPE *GetAlternates )( 
  1591.             ISpSRAlternates * This,
  1592.             /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
  1593.             /* [out] */ SPPHRASEALT **ppAlts,
  1594.             /* [out] */ ULONG *pcAlts);
  1595.         
  1596.         HRESULT ( STDMETHODCALLTYPE *Commit )( 
  1597.             ISpSRAlternates * This,
  1598.             /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
  1599.             /* [in] */ SPPHRASEALT *pAlt,
  1600.             /* [out] */ void **ppvResultExtra,
  1601.             /* [out] */ ULONG *pcbResultExtra);
  1602.         
  1603.         END_INTERFACE
  1604.     } ISpSRAlternatesVtbl;
  1605.     interface ISpSRAlternates
  1606.     {
  1607.         CONST_VTBL struct ISpSRAlternatesVtbl *lpVtbl;
  1608.     };
  1609.     
  1610. #ifdef COBJMACROS
  1611. #define ISpSRAlternates_QueryInterface(This,riid,ppvObject)
  1612.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1613. #define ISpSRAlternates_AddRef(This)
  1614.     (This)->lpVtbl -> AddRef(This)
  1615. #define ISpSRAlternates_Release(This)
  1616.     (This)->lpVtbl -> Release(This)
  1617. #define ISpSRAlternates_GetAlternates(This,pAltRequest,ppAlts,pcAlts)
  1618.     (This)->lpVtbl -> GetAlternates(This,pAltRequest,ppAlts,pcAlts)
  1619. #define ISpSRAlternates_Commit(This,pAltRequest,pAlt,ppvResultExtra,pcbResultExtra)
  1620.     (This)->lpVtbl -> Commit(This,pAltRequest,pAlt,ppvResultExtra,pcbResultExtra)
  1621. #endif /* COBJMACROS */
  1622. #endif  /* C style interface */
  1623. HRESULT STDMETHODCALLTYPE ISpSRAlternates_GetAlternates_Proxy( 
  1624.     ISpSRAlternates * This,
  1625.     /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
  1626.     /* [out] */ SPPHRASEALT **ppAlts,
  1627.     /* [out] */ ULONG *pcAlts);
  1628. void __RPC_STUB ISpSRAlternates_GetAlternates_Stub(
  1629.     IRpcStubBuffer *This,
  1630.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1631.     PRPC_MESSAGE _pRpcMessage,
  1632.     DWORD *_pdwStubPhase);
  1633. HRESULT STDMETHODCALLTYPE ISpSRAlternates_Commit_Proxy( 
  1634.     ISpSRAlternates * This,
  1635.     /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
  1636.     /* [in] */ SPPHRASEALT *pAlt,
  1637.     /* [out] */ void **ppvResultExtra,
  1638.     /* [out] */ ULONG *pcbResultExtra);
  1639. void __RPC_STUB ISpSRAlternates_Commit_Stub(
  1640.     IRpcStubBuffer *This,
  1641.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1642.     PRPC_MESSAGE _pRpcMessage,
  1643.     DWORD *_pdwStubPhase);
  1644. #endif  /* __ISpSRAlternates_INTERFACE_DEFINED__ */
  1645. #ifndef ___ISpPrivateEngineCall_INTERFACE_DEFINED__
  1646. #define ___ISpPrivateEngineCall_INTERFACE_DEFINED__
  1647. /* interface _ISpPrivateEngineCall */
  1648. /* [local][unique][helpstring][uuid][object] */ 
  1649. EXTERN_C const IID IID__ISpPrivateEngineCall;
  1650. #if defined(__cplusplus) && !defined(CINTERFACE)
  1651.     
  1652.     MIDL_INTERFACE("8E7C791E-4467-11d3-9723-00C04F72DB08")
  1653.     _ISpPrivateEngineCall : public IUnknown
  1654.     {
  1655.     public:
  1656.         virtual HRESULT STDMETHODCALLTYPE CallEngine( 
  1657.             /* [out][in] */ void *pCallFrame,
  1658.             /* [in] */ ULONG ulCallFrameSize) = 0;
  1659.         
  1660.         virtual HRESULT STDMETHODCALLTYPE CallEngineEx( 
  1661.             /* [in] */ const void *pInFrame,
  1662.             /* [in] */ ULONG ulInFrameSize,
  1663.             /* [out] */ void **ppCoMemOutFrame,
  1664.             /* [out] */ ULONG *pulOutFrameSize) = 0;
  1665.         
  1666.     };
  1667.     
  1668. #else  /* C style interface */
  1669.     typedef struct _ISpPrivateEngineCallVtbl
  1670.     {
  1671.         BEGIN_INTERFACE
  1672.         
  1673.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1674.             _ISpPrivateEngineCall * This,
  1675.             /* [in] */ REFIID riid,
  1676.             /* [iid_is][out] */ void **ppvObject);
  1677.         
  1678.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1679.             _ISpPrivateEngineCall * This);
  1680.         
  1681.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1682.             _ISpPrivateEngineCall * This);
  1683.         
  1684.         HRESULT ( STDMETHODCALLTYPE *CallEngine )( 
  1685.             _ISpPrivateEngineCall * This,
  1686.             /* [out][in] */ void *pCallFrame,
  1687.             /* [in] */ ULONG ulCallFrameSize);
  1688.         
  1689.         HRESULT ( STDMETHODCALLTYPE *CallEngineEx )( 
  1690.             _ISpPrivateEngineCall * This,
  1691.             /* [in] */ const void *pInFrame,
  1692.             /* [in] */ ULONG ulInFrameSize,
  1693.             /* [out] */ void **ppCoMemOutFrame,
  1694.             /* [out] */ ULONG *pulOutFrameSize);
  1695.         
  1696.         END_INTERFACE
  1697.     } _ISpPrivateEngineCallVtbl;
  1698.     interface _ISpPrivateEngineCall
  1699.     {
  1700.         CONST_VTBL struct _ISpPrivateEngineCallVtbl *lpVtbl;
  1701.     };
  1702.     
  1703. #ifdef COBJMACROS
  1704. #define _ISpPrivateEngineCall_QueryInterface(This,riid,ppvObject)
  1705.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1706. #define _ISpPrivateEngineCall_AddRef(This)
  1707.     (This)->lpVtbl -> AddRef(This)
  1708. #define _ISpPrivateEngineCall_Release(This)
  1709.     (This)->lpVtbl -> Release(This)
  1710. #define _ISpPrivateEngineCall_CallEngine(This,pCallFrame,ulCallFrameSize)
  1711.     (This)->lpVtbl -> CallEngine(This,pCallFrame,ulCallFrameSize)
  1712. #define _ISpPrivateEngineCall_CallEngineEx(This,pInFrame,ulInFrameSize,ppCoMemOutFrame,pulOutFrameSize)
  1713.     (This)->lpVtbl -> CallEngineEx(This,pInFrame,ulInFrameSize,ppCoMemOutFrame,pulOutFrameSize)
  1714. #endif /* COBJMACROS */
  1715. #endif  /* C style interface */
  1716. HRESULT STDMETHODCALLTYPE _ISpPrivateEngineCall_CallEngine_Proxy( 
  1717.     _ISpPrivateEngineCall * This,
  1718.     /* [out][in] */ void *pCallFrame,
  1719.     /* [in] */ ULONG ulCallFrameSize);
  1720. void __RPC_STUB _ISpPrivateEngineCall_CallEngine_Stub(
  1721.     IRpcStubBuffer *This,
  1722.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1723.     PRPC_MESSAGE _pRpcMessage,
  1724.     DWORD *_pdwStubPhase);
  1725. HRESULT STDMETHODCALLTYPE _ISpPrivateEngineCall_CallEngineEx_Proxy( 
  1726.     _ISpPrivateEngineCall * This,
  1727.     /* [in] */ const void *pInFrame,
  1728.     /* [in] */ ULONG ulInFrameSize,
  1729.     /* [out] */ void **ppCoMemOutFrame,
  1730.     /* [out] */ ULONG *pulOutFrameSize);
  1731. void __RPC_STUB _ISpPrivateEngineCall_CallEngineEx_Stub(
  1732.     IRpcStubBuffer *This,
  1733.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1734.     PRPC_MESSAGE _pRpcMessage,
  1735.     DWORD *_pdwStubPhase);
  1736. #endif  /* ___ISpPrivateEngineCall_INTERFACE_DEFINED__ */
  1737. #ifndef __SpeechDDKLib_LIBRARY_DEFINED__
  1738. #define __SpeechDDKLib_LIBRARY_DEFINED__
  1739. /* library SpeechDDKLib */
  1740. /* [version][uuid][helpstring] */ 
  1741. EXTERN_C const IID LIBID_SpeechDDKLib;
  1742. EXTERN_C const CLSID CLSID_SpDataKey;
  1743. #ifdef __cplusplus
  1744. class DECLSPEC_UUID("D9F6EE60-58C9-458b-88E1-2F908FD7F87C")
  1745. SpDataKey;
  1746. #endif
  1747. EXTERN_C const CLSID CLSID_SpObjectTokenEnum;
  1748. #ifdef __cplusplus
  1749. class DECLSPEC_UUID("3918D75F-0ACB-41f2-B733-92AA15BCECF6")
  1750. SpObjectTokenEnum;
  1751. #endif
  1752. EXTERN_C const CLSID CLSID_SpPhraseBuilder;
  1753. #ifdef __cplusplus
  1754. class DECLSPEC_UUID("777B6BBD-2FF2-11d3-88FE-00C04F8EF9B5")
  1755. SpPhraseBuilder;
  1756. #endif
  1757. EXTERN_C const CLSID CLSID_SpITNProcessor;
  1758. #ifdef __cplusplus
  1759. class DECLSPEC_UUID("12D73610-A1C9-11d3-BC90-00C04F72DF9F")
  1760. SpITNProcessor;
  1761. #endif
  1762. EXTERN_C const CLSID CLSID_SpGrammarCompiler;
  1763. #ifdef __cplusplus
  1764. class DECLSPEC_UUID("B1E29D59-A675-11D2-8302-00C04F8EE6C0")
  1765. SpGrammarCompiler;
  1766. #endif
  1767. EXTERN_C const CLSID CLSID_SpGramCompBackend;
  1768. #ifdef __cplusplus
  1769. class DECLSPEC_UUID("DA93E903-C843-11D2-A084-00C04F8EF9B5")
  1770. SpGramCompBackend;
  1771. #endif
  1772. #endif /* __SpeechDDKLib_LIBRARY_DEFINED__ */
  1773. /* Additional Prototypes for ALL interfaces */
  1774. /* end of Additional Prototypes */
  1775. #ifdef __cplusplus
  1776. }
  1777. #endif
  1778. #endif