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

模拟服务器

开发平台:

C/C++

  1.     IRpcStubBuffer *This,
  2.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3.     PRPC_MESSAGE _pRpcMessage,
  4.     DWORD *_pdwStubPhase);
  5. HRESULT STDMETHODCALLTYPE ISpVoice_GetRate_Proxy( 
  6.     ISpVoice * This,
  7.     /* [out] */ long *pRateAdjust);
  8. void __RPC_STUB ISpVoice_GetRate_Stub(
  9.     IRpcStubBuffer *This,
  10.     IRpcChannelBuffer *_pRpcChannelBuffer,
  11.     PRPC_MESSAGE _pRpcMessage,
  12.     DWORD *_pdwStubPhase);
  13. HRESULT STDMETHODCALLTYPE ISpVoice_SetVolume_Proxy( 
  14.     ISpVoice * This,
  15.     /* [in] */ USHORT usVolume);
  16. void __RPC_STUB ISpVoice_SetVolume_Stub(
  17.     IRpcStubBuffer *This,
  18.     IRpcChannelBuffer *_pRpcChannelBuffer,
  19.     PRPC_MESSAGE _pRpcMessage,
  20.     DWORD *_pdwStubPhase);
  21. HRESULT STDMETHODCALLTYPE ISpVoice_GetVolume_Proxy( 
  22.     ISpVoice * This,
  23.     /* [out] */ USHORT *pusVolume);
  24. void __RPC_STUB ISpVoice_GetVolume_Stub(
  25.     IRpcStubBuffer *This,
  26.     IRpcChannelBuffer *_pRpcChannelBuffer,
  27.     PRPC_MESSAGE _pRpcMessage,
  28.     DWORD *_pdwStubPhase);
  29. HRESULT STDMETHODCALLTYPE ISpVoice_WaitUntilDone_Proxy( 
  30.     ISpVoice * This,
  31.     /* [in] */ ULONG msTimeout);
  32. void __RPC_STUB ISpVoice_WaitUntilDone_Stub(
  33.     IRpcStubBuffer *This,
  34.     IRpcChannelBuffer *_pRpcChannelBuffer,
  35.     PRPC_MESSAGE _pRpcMessage,
  36.     DWORD *_pdwStubPhase);
  37. HRESULT STDMETHODCALLTYPE ISpVoice_SetSyncSpeakTimeout_Proxy( 
  38.     ISpVoice * This,
  39.     /* [in] */ ULONG msTimeout);
  40. void __RPC_STUB ISpVoice_SetSyncSpeakTimeout_Stub(
  41.     IRpcStubBuffer *This,
  42.     IRpcChannelBuffer *_pRpcChannelBuffer,
  43.     PRPC_MESSAGE _pRpcMessage,
  44.     DWORD *_pdwStubPhase);
  45. HRESULT STDMETHODCALLTYPE ISpVoice_GetSyncSpeakTimeout_Proxy( 
  46.     ISpVoice * This,
  47.     /* [out] */ ULONG *pmsTimeout);
  48. void __RPC_STUB ISpVoice_GetSyncSpeakTimeout_Stub(
  49.     IRpcStubBuffer *This,
  50.     IRpcChannelBuffer *_pRpcChannelBuffer,
  51.     PRPC_MESSAGE _pRpcMessage,
  52.     DWORD *_pdwStubPhase);
  53. /* [local] */ HANDLE STDMETHODCALLTYPE ISpVoice_SpeakCompleteEvent_Proxy( 
  54.     ISpVoice * This);
  55. void __RPC_STUB ISpVoice_SpeakCompleteEvent_Stub(
  56.     IRpcStubBuffer *This,
  57.     IRpcChannelBuffer *_pRpcChannelBuffer,
  58.     PRPC_MESSAGE _pRpcMessage,
  59.     DWORD *_pdwStubPhase);
  60. /* [local] */ HRESULT STDMETHODCALLTYPE ISpVoice_IsUISupported_Proxy( 
  61.     ISpVoice * This,
  62.     /* [in] */ const WCHAR *pszTypeOfUI,
  63.     /* [in] */ void *pvExtraData,
  64.     /* [in] */ ULONG cbExtraData,
  65.     /* [out] */ BOOL *pfSupported);
  66. void __RPC_STUB ISpVoice_IsUISupported_Stub(
  67.     IRpcStubBuffer *This,
  68.     IRpcChannelBuffer *_pRpcChannelBuffer,
  69.     PRPC_MESSAGE _pRpcMessage,
  70.     DWORD *_pdwStubPhase);
  71. /* [local] */ HRESULT STDMETHODCALLTYPE ISpVoice_DisplayUI_Proxy( 
  72.     ISpVoice * This,
  73.     /* [in] */ HWND hwndParent,
  74.     /* [in] */ const WCHAR *pszTitle,
  75.     /* [in] */ const WCHAR *pszTypeOfUI,
  76.     /* [in] */ void *pvExtraData,
  77.     /* [in] */ ULONG cbExtraData);
  78. void __RPC_STUB ISpVoice_DisplayUI_Stub(
  79.     IRpcStubBuffer *This,
  80.     IRpcChannelBuffer *_pRpcChannelBuffer,
  81.     PRPC_MESSAGE _pRpcMessage,
  82.     DWORD *_pdwStubPhase);
  83. #endif  /* __ISpVoice_INTERFACE_DEFINED__ */
  84. #ifndef __ISpPhrase_INTERFACE_DEFINED__
  85. #define __ISpPhrase_INTERFACE_DEFINED__
  86. /* interface ISpPhrase */
  87. /* [restricted][unique][helpstring][local][uuid][object] */ 
  88. EXTERN_C const IID IID_ISpPhrase;
  89. #if defined(__cplusplus) && !defined(CINTERFACE)
  90.     
  91.     MIDL_INTERFACE("1A5C0354-B621-4b5a-8791-D306ED379E53")
  92.     ISpPhrase : public IUnknown
  93.     {
  94.     public:
  95.         virtual HRESULT STDMETHODCALLTYPE GetPhrase( 
  96.             /* [out] */ SPPHRASE **ppCoMemPhrase) = 0;
  97.         
  98.         virtual HRESULT STDMETHODCALLTYPE GetSerializedPhrase( 
  99.             /* [out] */ SPSERIALIZEDPHRASE **ppCoMemPhrase) = 0;
  100.         
  101.         virtual HRESULT STDMETHODCALLTYPE GetText( 
  102.             /* [in] */ ULONG ulStart,
  103.             /* [in] */ ULONG ulCount,
  104.             /* [in] */ BOOL fUseTextReplacements,
  105.             /* [out] */ WCHAR **ppszCoMemText,
  106.             /* [out] */ BYTE *pbDisplayAttributes) = 0;
  107.         
  108.         virtual HRESULT STDMETHODCALLTYPE Discard( 
  109.             /* [in] */ DWORD dwValueTypes) = 0;
  110.         
  111.     };
  112.     
  113. #else  /* C style interface */
  114.     typedef struct ISpPhraseVtbl
  115.     {
  116.         BEGIN_INTERFACE
  117.         
  118.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  119.             ISpPhrase * This,
  120.             /* [in] */ REFIID riid,
  121.             /* [iid_is][out] */ void **ppvObject);
  122.         
  123.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  124.             ISpPhrase * This);
  125.         
  126.         ULONG ( STDMETHODCALLTYPE *Release )( 
  127.             ISpPhrase * This);
  128.         
  129.         HRESULT ( STDMETHODCALLTYPE *GetPhrase )( 
  130.             ISpPhrase * This,
  131.             /* [out] */ SPPHRASE **ppCoMemPhrase);
  132.         
  133.         HRESULT ( STDMETHODCALLTYPE *GetSerializedPhrase )( 
  134.             ISpPhrase * This,
  135.             /* [out] */ SPSERIALIZEDPHRASE **ppCoMemPhrase);
  136.         
  137.         HRESULT ( STDMETHODCALLTYPE *GetText )( 
  138.             ISpPhrase * This,
  139.             /* [in] */ ULONG ulStart,
  140.             /* [in] */ ULONG ulCount,
  141.             /* [in] */ BOOL fUseTextReplacements,
  142.             /* [out] */ WCHAR **ppszCoMemText,
  143.             /* [out] */ BYTE *pbDisplayAttributes);
  144.         
  145.         HRESULT ( STDMETHODCALLTYPE *Discard )( 
  146.             ISpPhrase * This,
  147.             /* [in] */ DWORD dwValueTypes);
  148.         
  149.         END_INTERFACE
  150.     } ISpPhraseVtbl;
  151.     interface ISpPhrase
  152.     {
  153.         CONST_VTBL struct ISpPhraseVtbl *lpVtbl;
  154.     };
  155.     
  156. #ifdef COBJMACROS
  157. #define ISpPhrase_QueryInterface(This,riid,ppvObject)
  158.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  159. #define ISpPhrase_AddRef(This)
  160.     (This)->lpVtbl -> AddRef(This)
  161. #define ISpPhrase_Release(This)
  162.     (This)->lpVtbl -> Release(This)
  163. #define ISpPhrase_GetPhrase(This,ppCoMemPhrase)
  164.     (This)->lpVtbl -> GetPhrase(This,ppCoMemPhrase)
  165. #define ISpPhrase_GetSerializedPhrase(This,ppCoMemPhrase)
  166.     (This)->lpVtbl -> GetSerializedPhrase(This,ppCoMemPhrase)
  167. #define ISpPhrase_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
  168.     (This)->lpVtbl -> GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
  169. #define ISpPhrase_Discard(This,dwValueTypes)
  170.     (This)->lpVtbl -> Discard(This,dwValueTypes)
  171. #endif /* COBJMACROS */
  172. #endif  /* C style interface */
  173. HRESULT STDMETHODCALLTYPE ISpPhrase_GetPhrase_Proxy( 
  174.     ISpPhrase * This,
  175.     /* [out] */ SPPHRASE **ppCoMemPhrase);
  176. void __RPC_STUB ISpPhrase_GetPhrase_Stub(
  177.     IRpcStubBuffer *This,
  178.     IRpcChannelBuffer *_pRpcChannelBuffer,
  179.     PRPC_MESSAGE _pRpcMessage,
  180.     DWORD *_pdwStubPhase);
  181. HRESULT STDMETHODCALLTYPE ISpPhrase_GetSerializedPhrase_Proxy( 
  182.     ISpPhrase * This,
  183.     /* [out] */ SPSERIALIZEDPHRASE **ppCoMemPhrase);
  184. void __RPC_STUB ISpPhrase_GetSerializedPhrase_Stub(
  185.     IRpcStubBuffer *This,
  186.     IRpcChannelBuffer *_pRpcChannelBuffer,
  187.     PRPC_MESSAGE _pRpcMessage,
  188.     DWORD *_pdwStubPhase);
  189. HRESULT STDMETHODCALLTYPE ISpPhrase_GetText_Proxy( 
  190.     ISpPhrase * This,
  191.     /* [in] */ ULONG ulStart,
  192.     /* [in] */ ULONG ulCount,
  193.     /* [in] */ BOOL fUseTextReplacements,
  194.     /* [out] */ WCHAR **ppszCoMemText,
  195.     /* [out] */ BYTE *pbDisplayAttributes);
  196. void __RPC_STUB ISpPhrase_GetText_Stub(
  197.     IRpcStubBuffer *This,
  198.     IRpcChannelBuffer *_pRpcChannelBuffer,
  199.     PRPC_MESSAGE _pRpcMessage,
  200.     DWORD *_pdwStubPhase);
  201. HRESULT STDMETHODCALLTYPE ISpPhrase_Discard_Proxy( 
  202.     ISpPhrase * This,
  203.     /* [in] */ DWORD dwValueTypes);
  204. void __RPC_STUB ISpPhrase_Discard_Stub(
  205.     IRpcStubBuffer *This,
  206.     IRpcChannelBuffer *_pRpcChannelBuffer,
  207.     PRPC_MESSAGE _pRpcMessage,
  208.     DWORD *_pdwStubPhase);
  209. #endif  /* __ISpPhrase_INTERFACE_DEFINED__ */
  210. #ifndef __ISpPhraseAlt_INTERFACE_DEFINED__
  211. #define __ISpPhraseAlt_INTERFACE_DEFINED__
  212. /* interface ISpPhraseAlt */
  213. /* [restricted][unique][helpstring][local][uuid][object] */ 
  214. EXTERN_C const IID IID_ISpPhraseAlt;
  215. #if defined(__cplusplus) && !defined(CINTERFACE)
  216.     
  217.     MIDL_INTERFACE("8FCEBC98-4E49-4067-9C6C-D86A0E092E3D")
  218.     ISpPhraseAlt : public ISpPhrase
  219.     {
  220.     public:
  221.         virtual HRESULT STDMETHODCALLTYPE GetAltInfo( 
  222.             ISpPhrase **ppParent,
  223.             ULONG *pulStartElementInParent,
  224.             ULONG *pcElementsInParent,
  225.             ULONG *pcElementsInAlt) = 0;
  226.         
  227.         virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0;
  228.         
  229.     };
  230.     
  231. #else  /* C style interface */
  232.     typedef struct ISpPhraseAltVtbl
  233.     {
  234.         BEGIN_INTERFACE
  235.         
  236.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  237.             ISpPhraseAlt * This,
  238.             /* [in] */ REFIID riid,
  239.             /* [iid_is][out] */ void **ppvObject);
  240.         
  241.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  242.             ISpPhraseAlt * This);
  243.         
  244.         ULONG ( STDMETHODCALLTYPE *Release )( 
  245.             ISpPhraseAlt * This);
  246.         
  247.         HRESULT ( STDMETHODCALLTYPE *GetPhrase )( 
  248.             ISpPhraseAlt * This,
  249.             /* [out] */ SPPHRASE **ppCoMemPhrase);
  250.         
  251.         HRESULT ( STDMETHODCALLTYPE *GetSerializedPhrase )( 
  252.             ISpPhraseAlt * This,
  253.             /* [out] */ SPSERIALIZEDPHRASE **ppCoMemPhrase);
  254.         
  255.         HRESULT ( STDMETHODCALLTYPE *GetText )( 
  256.             ISpPhraseAlt * This,
  257.             /* [in] */ ULONG ulStart,
  258.             /* [in] */ ULONG ulCount,
  259.             /* [in] */ BOOL fUseTextReplacements,
  260.             /* [out] */ WCHAR **ppszCoMemText,
  261.             /* [out] */ BYTE *pbDisplayAttributes);
  262.         
  263.         HRESULT ( STDMETHODCALLTYPE *Discard )( 
  264.             ISpPhraseAlt * This,
  265.             /* [in] */ DWORD dwValueTypes);
  266.         
  267.         HRESULT ( STDMETHODCALLTYPE *GetAltInfo )( 
  268.             ISpPhraseAlt * This,
  269.             ISpPhrase **ppParent,
  270.             ULONG *pulStartElementInParent,
  271.             ULONG *pcElementsInParent,
  272.             ULONG *pcElementsInAlt);
  273.         
  274.         HRESULT ( STDMETHODCALLTYPE *Commit )( 
  275.             ISpPhraseAlt * This);
  276.         
  277.         END_INTERFACE
  278.     } ISpPhraseAltVtbl;
  279.     interface ISpPhraseAlt
  280.     {
  281.         CONST_VTBL struct ISpPhraseAltVtbl *lpVtbl;
  282.     };
  283.     
  284. #ifdef COBJMACROS
  285. #define ISpPhraseAlt_QueryInterface(This,riid,ppvObject)
  286.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  287. #define ISpPhraseAlt_AddRef(This)
  288.     (This)->lpVtbl -> AddRef(This)
  289. #define ISpPhraseAlt_Release(This)
  290.     (This)->lpVtbl -> Release(This)
  291. #define ISpPhraseAlt_GetPhrase(This,ppCoMemPhrase)
  292.     (This)->lpVtbl -> GetPhrase(This,ppCoMemPhrase)
  293. #define ISpPhraseAlt_GetSerializedPhrase(This,ppCoMemPhrase)
  294.     (This)->lpVtbl -> GetSerializedPhrase(This,ppCoMemPhrase)
  295. #define ISpPhraseAlt_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
  296.     (This)->lpVtbl -> GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
  297. #define ISpPhraseAlt_Discard(This,dwValueTypes)
  298.     (This)->lpVtbl -> Discard(This,dwValueTypes)
  299. #define ISpPhraseAlt_GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
  300.     (This)->lpVtbl -> GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
  301. #define ISpPhraseAlt_Commit(This)
  302.     (This)->lpVtbl -> Commit(This)
  303. #endif /* COBJMACROS */
  304. #endif  /* C style interface */
  305. HRESULT STDMETHODCALLTYPE ISpPhraseAlt_GetAltInfo_Proxy( 
  306.     ISpPhraseAlt * This,
  307.     ISpPhrase **ppParent,
  308.     ULONG *pulStartElementInParent,
  309.     ULONG *pcElementsInParent,
  310.     ULONG *pcElementsInAlt);
  311. void __RPC_STUB ISpPhraseAlt_GetAltInfo_Stub(
  312.     IRpcStubBuffer *This,
  313.     IRpcChannelBuffer *_pRpcChannelBuffer,
  314.     PRPC_MESSAGE _pRpcMessage,
  315.     DWORD *_pdwStubPhase);
  316. HRESULT STDMETHODCALLTYPE ISpPhraseAlt_Commit_Proxy( 
  317.     ISpPhraseAlt * This);
  318. void __RPC_STUB ISpPhraseAlt_Commit_Stub(
  319.     IRpcStubBuffer *This,
  320.     IRpcChannelBuffer *_pRpcChannelBuffer,
  321.     PRPC_MESSAGE _pRpcMessage,
  322.     DWORD *_pdwStubPhase);
  323. #endif  /* __ISpPhraseAlt_INTERFACE_DEFINED__ */
  324. /* interface __MIDL_itf_sapi_0276 */
  325. /* [local] */ 
  326. typedef /* [hidden][restricted] */ struct SPRECORESULTTIMES
  327.     {
  328.     FILETIME ftStreamTime;
  329.     ULONGLONG ullLength;
  330.     DWORD dwTickCount;
  331.     ULONGLONG ullStart;
  332.     }  SPRECORESULTTIMES;
  333. typedef /* [hidden] */ struct SPSERIALIZEDRESULT
  334.     {
  335.     ULONG ulSerializedSize;
  336.     }  SPSERIALIZEDRESULT;
  337. extern RPC_IF_HANDLE __MIDL_itf_sapi_0276_v0_0_c_ifspec;
  338. extern RPC_IF_HANDLE __MIDL_itf_sapi_0276_v0_0_s_ifspec;
  339. #ifndef __ISpRecoResult_INTERFACE_DEFINED__
  340. #define __ISpRecoResult_INTERFACE_DEFINED__
  341. /* interface ISpRecoResult */
  342. /* [restricted][local][unique][helpstring][uuid][object] */ 
  343. EXTERN_C const IID IID_ISpRecoResult;
  344. #if defined(__cplusplus) && !defined(CINTERFACE)
  345.     
  346.     MIDL_INTERFACE("20B053BE-E235-43cd-9A2A-8D17A48B7842")
  347.     ISpRecoResult : public ISpPhrase
  348.     {
  349.     public:
  350.         virtual HRESULT STDMETHODCALLTYPE GetResultTimes( 
  351.             /* [out] */ SPRECORESULTTIMES *pTimes) = 0;
  352.         
  353.         virtual HRESULT STDMETHODCALLTYPE GetAlternates( 
  354.             /* [in] */ ULONG ulStartElement,
  355.             /* [in] */ ULONG cElements,
  356.             /* [in] */ ULONG ulRequestCount,
  357.             /* [out] */ ISpPhraseAlt **ppPhrases,
  358.             /* [out] */ ULONG *pcPhrasesReturned) = 0;
  359.         
  360.         virtual HRESULT STDMETHODCALLTYPE GetAudio( 
  361.             /* [in] */ ULONG ulStartElement,
  362.             /* [in] */ ULONG cElements,
  363.             /* [out] */ ISpStreamFormat **ppStream) = 0;
  364.         
  365.         virtual HRESULT STDMETHODCALLTYPE SpeakAudio( 
  366.             /* [in] */ ULONG ulStartElement,
  367.             /* [in] */ ULONG cElements,
  368.             /* [in] */ DWORD dwFlags,
  369.             /* [out] */ ULONG *pulStreamNumber) = 0;
  370.         
  371.         virtual HRESULT STDMETHODCALLTYPE Serialize( 
  372.             /* [out] */ SPSERIALIZEDRESULT **ppCoMemSerializedResult) = 0;
  373.         
  374.         virtual HRESULT STDMETHODCALLTYPE ScaleAudio( 
  375.             /* [in] */ const GUID *pAudioFormatId,
  376.             /* [in] */ const WAVEFORMATEX *pWaveFormatEx) = 0;
  377.         
  378.         virtual HRESULT STDMETHODCALLTYPE GetRecoContext( 
  379.             /* [out] */ ISpRecoContext **ppRecoContext) = 0;
  380.         
  381.     };
  382.     
  383. #else  /* C style interface */
  384.     typedef struct ISpRecoResultVtbl
  385.     {
  386.         BEGIN_INTERFACE
  387.         
  388.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  389.             ISpRecoResult * This,
  390.             /* [in] */ REFIID riid,
  391.             /* [iid_is][out] */ void **ppvObject);
  392.         
  393.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  394.             ISpRecoResult * This);
  395.         
  396.         ULONG ( STDMETHODCALLTYPE *Release )( 
  397.             ISpRecoResult * This);
  398.         
  399.         HRESULT ( STDMETHODCALLTYPE *GetPhrase )( 
  400.             ISpRecoResult * This,
  401.             /* [out] */ SPPHRASE **ppCoMemPhrase);
  402.         
  403.         HRESULT ( STDMETHODCALLTYPE *GetSerializedPhrase )( 
  404.             ISpRecoResult * This,
  405.             /* [out] */ SPSERIALIZEDPHRASE **ppCoMemPhrase);
  406.         
  407.         HRESULT ( STDMETHODCALLTYPE *GetText )( 
  408.             ISpRecoResult * This,
  409.             /* [in] */ ULONG ulStart,
  410.             /* [in] */ ULONG ulCount,
  411.             /* [in] */ BOOL fUseTextReplacements,
  412.             /* [out] */ WCHAR **ppszCoMemText,
  413.             /* [out] */ BYTE *pbDisplayAttributes);
  414.         
  415.         HRESULT ( STDMETHODCALLTYPE *Discard )( 
  416.             ISpRecoResult * This,
  417.             /* [in] */ DWORD dwValueTypes);
  418.         
  419.         HRESULT ( STDMETHODCALLTYPE *GetResultTimes )( 
  420.             ISpRecoResult * This,
  421.             /* [out] */ SPRECORESULTTIMES *pTimes);
  422.         
  423.         HRESULT ( STDMETHODCALLTYPE *GetAlternates )( 
  424.             ISpRecoResult * This,
  425.             /* [in] */ ULONG ulStartElement,
  426.             /* [in] */ ULONG cElements,
  427.             /* [in] */ ULONG ulRequestCount,
  428.             /* [out] */ ISpPhraseAlt **ppPhrases,
  429.             /* [out] */ ULONG *pcPhrasesReturned);
  430.         
  431.         HRESULT ( STDMETHODCALLTYPE *GetAudio )( 
  432.             ISpRecoResult * This,
  433.             /* [in] */ ULONG ulStartElement,
  434.             /* [in] */ ULONG cElements,
  435.             /* [out] */ ISpStreamFormat **ppStream);
  436.         
  437.         HRESULT ( STDMETHODCALLTYPE *SpeakAudio )( 
  438.             ISpRecoResult * This,
  439.             /* [in] */ ULONG ulStartElement,
  440.             /* [in] */ ULONG cElements,
  441.             /* [in] */ DWORD dwFlags,
  442.             /* [out] */ ULONG *pulStreamNumber);
  443.         
  444.         HRESULT ( STDMETHODCALLTYPE *Serialize )( 
  445.             ISpRecoResult * This,
  446.             /* [out] */ SPSERIALIZEDRESULT **ppCoMemSerializedResult);
  447.         
  448.         HRESULT ( STDMETHODCALLTYPE *ScaleAudio )( 
  449.             ISpRecoResult * This,
  450.             /* [in] */ const GUID *pAudioFormatId,
  451.             /* [in] */ const WAVEFORMATEX *pWaveFormatEx);
  452.         
  453.         HRESULT ( STDMETHODCALLTYPE *GetRecoContext )( 
  454.             ISpRecoResult * This,
  455.             /* [out] */ ISpRecoContext **ppRecoContext);
  456.         
  457.         END_INTERFACE
  458.     } ISpRecoResultVtbl;
  459.     interface ISpRecoResult
  460.     {
  461.         CONST_VTBL struct ISpRecoResultVtbl *lpVtbl;
  462.     };
  463.     
  464. #ifdef COBJMACROS
  465. #define ISpRecoResult_QueryInterface(This,riid,ppvObject)
  466.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  467. #define ISpRecoResult_AddRef(This)
  468.     (This)->lpVtbl -> AddRef(This)
  469. #define ISpRecoResult_Release(This)
  470.     (This)->lpVtbl -> Release(This)
  471. #define ISpRecoResult_GetPhrase(This,ppCoMemPhrase)
  472.     (This)->lpVtbl -> GetPhrase(This,ppCoMemPhrase)
  473. #define ISpRecoResult_GetSerializedPhrase(This,ppCoMemPhrase)
  474.     (This)->lpVtbl -> GetSerializedPhrase(This,ppCoMemPhrase)
  475. #define ISpRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
  476.     (This)->lpVtbl -> GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
  477. #define ISpRecoResult_Discard(This,dwValueTypes)
  478.     (This)->lpVtbl -> Discard(This,dwValueTypes)
  479. #define ISpRecoResult_GetResultTimes(This,pTimes)
  480.     (This)->lpVtbl -> GetResultTimes(This,pTimes)
  481. #define ISpRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
  482.     (This)->lpVtbl -> GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
  483. #define ISpRecoResult_GetAudio(This,ulStartElement,cElements,ppStream)
  484.     (This)->lpVtbl -> GetAudio(This,ulStartElement,cElements,ppStream)
  485. #define ISpRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
  486.     (This)->lpVtbl -> SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
  487. #define ISpRecoResult_Serialize(This,ppCoMemSerializedResult)
  488.     (This)->lpVtbl -> Serialize(This,ppCoMemSerializedResult)
  489. #define ISpRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
  490.     (This)->lpVtbl -> ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
  491. #define ISpRecoResult_GetRecoContext(This,ppRecoContext)
  492.     (This)->lpVtbl -> GetRecoContext(This,ppRecoContext)
  493. #endif /* COBJMACROS */
  494. #endif  /* C style interface */
  495. HRESULT STDMETHODCALLTYPE ISpRecoResult_GetResultTimes_Proxy( 
  496.     ISpRecoResult * This,
  497.     /* [out] */ SPRECORESULTTIMES *pTimes);
  498. void __RPC_STUB ISpRecoResult_GetResultTimes_Stub(
  499.     IRpcStubBuffer *This,
  500.     IRpcChannelBuffer *_pRpcChannelBuffer,
  501.     PRPC_MESSAGE _pRpcMessage,
  502.     DWORD *_pdwStubPhase);
  503. HRESULT STDMETHODCALLTYPE ISpRecoResult_GetAlternates_Proxy( 
  504.     ISpRecoResult * This,
  505.     /* [in] */ ULONG ulStartElement,
  506.     /* [in] */ ULONG cElements,
  507.     /* [in] */ ULONG ulRequestCount,
  508.     /* [out] */ ISpPhraseAlt **ppPhrases,
  509.     /* [out] */ ULONG *pcPhrasesReturned);
  510. void __RPC_STUB ISpRecoResult_GetAlternates_Stub(
  511.     IRpcStubBuffer *This,
  512.     IRpcChannelBuffer *_pRpcChannelBuffer,
  513.     PRPC_MESSAGE _pRpcMessage,
  514.     DWORD *_pdwStubPhase);
  515. HRESULT STDMETHODCALLTYPE ISpRecoResult_GetAudio_Proxy( 
  516.     ISpRecoResult * This,
  517.     /* [in] */ ULONG ulStartElement,
  518.     /* [in] */ ULONG cElements,
  519.     /* [out] */ ISpStreamFormat **ppStream);
  520. void __RPC_STUB ISpRecoResult_GetAudio_Stub(
  521.     IRpcStubBuffer *This,
  522.     IRpcChannelBuffer *_pRpcChannelBuffer,
  523.     PRPC_MESSAGE _pRpcMessage,
  524.     DWORD *_pdwStubPhase);
  525. HRESULT STDMETHODCALLTYPE ISpRecoResult_SpeakAudio_Proxy( 
  526.     ISpRecoResult * This,
  527.     /* [in] */ ULONG ulStartElement,
  528.     /* [in] */ ULONG cElements,
  529.     /* [in] */ DWORD dwFlags,
  530.     /* [out] */ ULONG *pulStreamNumber);
  531. void __RPC_STUB ISpRecoResult_SpeakAudio_Stub(
  532.     IRpcStubBuffer *This,
  533.     IRpcChannelBuffer *_pRpcChannelBuffer,
  534.     PRPC_MESSAGE _pRpcMessage,
  535.     DWORD *_pdwStubPhase);
  536. HRESULT STDMETHODCALLTYPE ISpRecoResult_Serialize_Proxy( 
  537.     ISpRecoResult * This,
  538.     /* [out] */ SPSERIALIZEDRESULT **ppCoMemSerializedResult);
  539. void __RPC_STUB ISpRecoResult_Serialize_Stub(
  540.     IRpcStubBuffer *This,
  541.     IRpcChannelBuffer *_pRpcChannelBuffer,
  542.     PRPC_MESSAGE _pRpcMessage,
  543.     DWORD *_pdwStubPhase);
  544. HRESULT STDMETHODCALLTYPE ISpRecoResult_ScaleAudio_Proxy( 
  545.     ISpRecoResult * This,
  546.     /* [in] */ const GUID *pAudioFormatId,
  547.     /* [in] */ const WAVEFORMATEX *pWaveFormatEx);
  548. void __RPC_STUB ISpRecoResult_ScaleAudio_Stub(
  549.     IRpcStubBuffer *This,
  550.     IRpcChannelBuffer *_pRpcChannelBuffer,
  551.     PRPC_MESSAGE _pRpcMessage,
  552.     DWORD *_pdwStubPhase);
  553. HRESULT STDMETHODCALLTYPE ISpRecoResult_GetRecoContext_Proxy( 
  554.     ISpRecoResult * This,
  555.     /* [out] */ ISpRecoContext **ppRecoContext);
  556. void __RPC_STUB ISpRecoResult_GetRecoContext_Stub(
  557.     IRpcStubBuffer *This,
  558.     IRpcChannelBuffer *_pRpcChannelBuffer,
  559.     PRPC_MESSAGE _pRpcMessage,
  560.     DWORD *_pdwStubPhase);
  561. #endif  /* __ISpRecoResult_INTERFACE_DEFINED__ */
  562. /* interface __MIDL_itf_sapi_0277 */
  563. /* [local] */ 
  564. typedef /* [hidden] */ struct tagSPTEXTSELECTIONINFO
  565.     {
  566.     ULONG ulStartActiveOffset;
  567.     ULONG cchActiveChars;
  568.     ULONG ulStartSelection;
  569.     ULONG cchSelection;
  570.     }  SPTEXTSELECTIONINFO;
  571. typedef /* [hidden] */ 
  572. enum SPWORDPRONOUNCEABLE
  573.     { SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0,
  574. SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1,
  575. SPWP_KNOWN_WORD_PRONOUNCEABLE = 2
  576.     }  SPWORDPRONOUNCEABLE;
  577. typedef /* [hidden] */ 
  578. enum SPGRAMMARSTATE
  579.     { SPGS_DISABLED = 0,
  580. SPGS_ENABLED = 1,
  581. SPGS_EXCLUSIVE = 3
  582.     }  SPGRAMMARSTATE;
  583. typedef /* [hidden] */ 
  584. enum SPCONTEXTSTATE
  585.     { SPCS_DISABLED = 0,
  586. SPCS_ENABLED = 1
  587.     }  SPCONTEXTSTATE;
  588. typedef /* [hidden] */ 
  589. enum SPRULESTATE
  590.     { SPRS_INACTIVE = 0,
  591. SPRS_ACTIVE = 1,
  592. SPRS_ACTIVE_WITH_AUTO_PAUSE = 3
  593.     }  SPRULESTATE;
  594. #define SP_STREAMPOS_ASAP ( 0 )
  595. #define SP_STREAMPOS_REALTIME ( -1 )
  596. #define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE)(-1)
  597. #define SPRULETRANS_WILDCARD   (SPSTATEHANDLE)(-2)
  598. #define SPRULETRANS_DICTATION  (SPSTATEHANDLE)(-3)
  599. typedef /* [hidden] */ 
  600. enum SPGRAMMARWORDTYPE
  601.     { SPWT_DISPLAY = 0,
  602. SPWT_LEXICAL = SPWT_DISPLAY + 1,
  603. SPWT_PRONUNCIATION = SPWT_LEXICAL + 1
  604.     }  SPGRAMMARWORDTYPE;
  605. typedef /* [hidden] */ struct tagSPPROPERTYINFO
  606.     {
  607.     const WCHAR *pszName;
  608.     ULONG ulId;
  609.     const WCHAR *pszValue;
  610.     VARIANT vValue;
  611.     }  SPPROPERTYINFO;
  612. typedef /* [hidden] */ 
  613. enum SPCFGRULEATTRIBUTES
  614.     { SPRAF_TopLevel = 1 << 0,
  615. SPRAF_Active = 1 << 1,
  616. SPRAF_Export = 1 << 2,
  617. SPRAF_Import = 1 << 3,
  618. SPRAF_Interpreter = 1 << 4,
  619. SPRAF_Dynamic = 1 << 5,
  620. SPRAF_AutoPause = 1 << 16
  621.     }  SPCFGRULEATTRIBUTES;
  622. extern RPC_IF_HANDLE __MIDL_itf_sapi_0277_v0_0_c_ifspec;
  623. extern RPC_IF_HANDLE __MIDL_itf_sapi_0277_v0_0_s_ifspec;
  624. #ifndef __ISpGrammarBuilder_INTERFACE_DEFINED__
  625. #define __ISpGrammarBuilder_INTERFACE_DEFINED__
  626. /* interface ISpGrammarBuilder */
  627. /* [local][restricted][unique][helpstring][uuid][object] */ 
  628. EXTERN_C const IID IID_ISpGrammarBuilder;
  629. #if defined(__cplusplus) && !defined(CINTERFACE)
  630.     
  631.     MIDL_INTERFACE("8137828F-591A-4A42-BE58-49EA7EBAAC68")
  632.     ISpGrammarBuilder : public IUnknown
  633.     {
  634.     public:
  635.         virtual HRESULT STDMETHODCALLTYPE ResetGrammar( 
  636.             /* [in] */ WORD NewLanguage) = 0;
  637.         
  638.         virtual HRESULT STDMETHODCALLTYPE GetRule( 
  639.             /* [in] */ const WCHAR *pszRuleName,
  640.             /* [in] */ DWORD dwRuleId,
  641.             /* [in] */ DWORD dwAttributes,
  642.             /* [in] */ BOOL fCreateIfNotExist,
  643.             /* [out] */ SPSTATEHANDLE *phInitialState) = 0;
  644.         
  645.         virtual HRESULT STDMETHODCALLTYPE ClearRule( 
  646.             SPSTATEHANDLE hState) = 0;
  647.         
  648.         virtual HRESULT STDMETHODCALLTYPE CreateNewState( 
  649.             SPSTATEHANDLE hState,
  650.             SPSTATEHANDLE *phState) = 0;
  651.         
  652.         virtual HRESULT STDMETHODCALLTYPE AddWordTransition( 
  653.             SPSTATEHANDLE hFromState,
  654.             SPSTATEHANDLE hToState,
  655.             const WCHAR *psz,
  656.             const WCHAR *pszSeparators,
  657.             SPGRAMMARWORDTYPE eWordType,
  658.             float Weight,
  659.             const SPPROPERTYINFO *pPropInfo) = 0;
  660.         
  661.         virtual HRESULT STDMETHODCALLTYPE AddRuleTransition( 
  662.             SPSTATEHANDLE hFromState,
  663.             SPSTATEHANDLE hToState,
  664.             SPSTATEHANDLE hRule,
  665.             float Weight,
  666.             const SPPROPERTYINFO *pPropInfo) = 0;
  667.         
  668.         virtual HRESULT STDMETHODCALLTYPE AddResource( 
  669.             /* [in] */ SPSTATEHANDLE hRuleState,
  670.             /* [in] */ const WCHAR *pszResourceName,
  671.             /* [in] */ const WCHAR *pszResourceValue) = 0;
  672.         
  673.         virtual HRESULT STDMETHODCALLTYPE Commit( 
  674.             DWORD dwReserved) = 0;
  675.         
  676.     };
  677.     
  678. #else  /* C style interface */
  679.     typedef struct ISpGrammarBuilderVtbl
  680.     {
  681.         BEGIN_INTERFACE
  682.         
  683.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  684.             ISpGrammarBuilder * This,
  685.             /* [in] */ REFIID riid,
  686.             /* [iid_is][out] */ void **ppvObject);
  687.         
  688.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  689.             ISpGrammarBuilder * This);
  690.         
  691.         ULONG ( STDMETHODCALLTYPE *Release )( 
  692.             ISpGrammarBuilder * This);
  693.         
  694.         HRESULT ( STDMETHODCALLTYPE *ResetGrammar )( 
  695.             ISpGrammarBuilder * This,
  696.             /* [in] */ WORD NewLanguage);
  697.         
  698.         HRESULT ( STDMETHODCALLTYPE *GetRule )( 
  699.             ISpGrammarBuilder * This,
  700.             /* [in] */ const WCHAR *pszRuleName,
  701.             /* [in] */ DWORD dwRuleId,
  702.             /* [in] */ DWORD dwAttributes,
  703.             /* [in] */ BOOL fCreateIfNotExist,
  704.             /* [out] */ SPSTATEHANDLE *phInitialState);
  705.         
  706.         HRESULT ( STDMETHODCALLTYPE *ClearRule )( 
  707.             ISpGrammarBuilder * This,
  708.             SPSTATEHANDLE hState);
  709.         
  710.         HRESULT ( STDMETHODCALLTYPE *CreateNewState )( 
  711.             ISpGrammarBuilder * This,
  712.             SPSTATEHANDLE hState,
  713.             SPSTATEHANDLE *phState);
  714.         
  715.         HRESULT ( STDMETHODCALLTYPE *AddWordTransition )( 
  716.             ISpGrammarBuilder * This,
  717.             SPSTATEHANDLE hFromState,
  718.             SPSTATEHANDLE hToState,
  719.             const WCHAR *psz,
  720.             const WCHAR *pszSeparators,
  721.             SPGRAMMARWORDTYPE eWordType,
  722.             float Weight,
  723.             const SPPROPERTYINFO *pPropInfo);
  724.         
  725.         HRESULT ( STDMETHODCALLTYPE *AddRuleTransition )( 
  726.             ISpGrammarBuilder * This,
  727.             SPSTATEHANDLE hFromState,
  728.             SPSTATEHANDLE hToState,
  729.             SPSTATEHANDLE hRule,
  730.             float Weight,
  731.             const SPPROPERTYINFO *pPropInfo);
  732.         
  733.         HRESULT ( STDMETHODCALLTYPE *AddResource )( 
  734.             ISpGrammarBuilder * This,
  735.             /* [in] */ SPSTATEHANDLE hRuleState,
  736.             /* [in] */ const WCHAR *pszResourceName,
  737.             /* [in] */ const WCHAR *pszResourceValue);
  738.         
  739.         HRESULT ( STDMETHODCALLTYPE *Commit )( 
  740.             ISpGrammarBuilder * This,
  741.             DWORD dwReserved);
  742.         
  743.         END_INTERFACE
  744.     } ISpGrammarBuilderVtbl;
  745.     interface ISpGrammarBuilder
  746.     {
  747.         CONST_VTBL struct ISpGrammarBuilderVtbl *lpVtbl;
  748.     };
  749.     
  750. #ifdef COBJMACROS
  751. #define ISpGrammarBuilder_QueryInterface(This,riid,ppvObject)
  752.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  753. #define ISpGrammarBuilder_AddRef(This)
  754.     (This)->lpVtbl -> AddRef(This)
  755. #define ISpGrammarBuilder_Release(This)
  756.     (This)->lpVtbl -> Release(This)
  757. #define ISpGrammarBuilder_ResetGrammar(This,NewLanguage)
  758.     (This)->lpVtbl -> ResetGrammar(This,NewLanguage)
  759. #define ISpGrammarBuilder_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
  760.     (This)->lpVtbl -> GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
  761. #define ISpGrammarBuilder_ClearRule(This,hState)
  762.     (This)->lpVtbl -> ClearRule(This,hState)
  763. #define ISpGrammarBuilder_CreateNewState(This,hState,phState)
  764.     (This)->lpVtbl -> CreateNewState(This,hState,phState)
  765. #define ISpGrammarBuilder_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
  766.     (This)->lpVtbl -> AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
  767. #define ISpGrammarBuilder_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
  768.     (This)->lpVtbl -> AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
  769. #define ISpGrammarBuilder_AddResource(This,hRuleState,pszResourceName,pszResourceValue)
  770.     (This)->lpVtbl -> AddResource(This,hRuleState,pszResourceName,pszResourceValue)
  771. #define ISpGrammarBuilder_Commit(This,dwReserved)
  772.     (This)->lpVtbl -> Commit(This,dwReserved)
  773. #endif /* COBJMACROS */
  774. #endif  /* C style interface */
  775. HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_ResetGrammar_Proxy( 
  776.     ISpGrammarBuilder * This,
  777.     /* [in] */ WORD NewLanguage);
  778. void __RPC_STUB ISpGrammarBuilder_ResetGrammar_Stub(
  779.     IRpcStubBuffer *This,
  780.     IRpcChannelBuffer *_pRpcChannelBuffer,
  781.     PRPC_MESSAGE _pRpcMessage,
  782.     DWORD *_pdwStubPhase);
  783. HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_GetRule_Proxy( 
  784.     ISpGrammarBuilder * This,
  785.     /* [in] */ const WCHAR *pszRuleName,
  786.     /* [in] */ DWORD dwRuleId,
  787.     /* [in] */ DWORD dwAttributes,
  788.     /* [in] */ BOOL fCreateIfNotExist,
  789.     /* [out] */ SPSTATEHANDLE *phInitialState);
  790. void __RPC_STUB ISpGrammarBuilder_GetRule_Stub(
  791.     IRpcStubBuffer *This,
  792.     IRpcChannelBuffer *_pRpcChannelBuffer,
  793.     PRPC_MESSAGE _pRpcMessage,
  794.     DWORD *_pdwStubPhase);
  795. HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_ClearRule_Proxy( 
  796.     ISpGrammarBuilder * This,
  797.     SPSTATEHANDLE hState);
  798. void __RPC_STUB ISpGrammarBuilder_ClearRule_Stub(
  799.     IRpcStubBuffer *This,
  800.     IRpcChannelBuffer *_pRpcChannelBuffer,
  801.     PRPC_MESSAGE _pRpcMessage,
  802.     DWORD *_pdwStubPhase);
  803. HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_CreateNewState_Proxy( 
  804.     ISpGrammarBuilder * This,
  805.     SPSTATEHANDLE hState,
  806.     SPSTATEHANDLE *phState);
  807. void __RPC_STUB ISpGrammarBuilder_CreateNewState_Stub(
  808.     IRpcStubBuffer *This,
  809.     IRpcChannelBuffer *_pRpcChannelBuffer,
  810.     PRPC_MESSAGE _pRpcMessage,
  811.     DWORD *_pdwStubPhase);
  812. HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddWordTransition_Proxy( 
  813.     ISpGrammarBuilder * This,
  814.     SPSTATEHANDLE hFromState,
  815.     SPSTATEHANDLE hToState,
  816.     const WCHAR *psz,
  817.     const WCHAR *pszSeparators,
  818.     SPGRAMMARWORDTYPE eWordType,
  819.     float Weight,
  820.     const SPPROPERTYINFO *pPropInfo);
  821. void __RPC_STUB ISpGrammarBuilder_AddWordTransition_Stub(
  822.     IRpcStubBuffer *This,
  823.     IRpcChannelBuffer *_pRpcChannelBuffer,
  824.     PRPC_MESSAGE _pRpcMessage,
  825.     DWORD *_pdwStubPhase);
  826. HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddRuleTransition_Proxy( 
  827.     ISpGrammarBuilder * This,
  828.     SPSTATEHANDLE hFromState,
  829.     SPSTATEHANDLE hToState,
  830.     SPSTATEHANDLE hRule,
  831.     float Weight,
  832.     const SPPROPERTYINFO *pPropInfo);
  833. void __RPC_STUB ISpGrammarBuilder_AddRuleTransition_Stub(
  834.     IRpcStubBuffer *This,
  835.     IRpcChannelBuffer *_pRpcChannelBuffer,
  836.     PRPC_MESSAGE _pRpcMessage,
  837.     DWORD *_pdwStubPhase);
  838. HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddResource_Proxy( 
  839.     ISpGrammarBuilder * This,
  840.     /* [in] */ SPSTATEHANDLE hRuleState,
  841.     /* [in] */ const WCHAR *pszResourceName,
  842.     /* [in] */ const WCHAR *pszResourceValue);
  843. void __RPC_STUB ISpGrammarBuilder_AddResource_Stub(
  844.     IRpcStubBuffer *This,
  845.     IRpcChannelBuffer *_pRpcChannelBuffer,
  846.     PRPC_MESSAGE _pRpcMessage,
  847.     DWORD *_pdwStubPhase);
  848. HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_Commit_Proxy( 
  849.     ISpGrammarBuilder * This,
  850.     DWORD dwReserved);
  851. void __RPC_STUB ISpGrammarBuilder_Commit_Stub(
  852.     IRpcStubBuffer *This,
  853.     IRpcChannelBuffer *_pRpcChannelBuffer,
  854.     PRPC_MESSAGE _pRpcMessage,
  855.     DWORD *_pdwStubPhase);
  856. #endif  /* __ISpGrammarBuilder_INTERFACE_DEFINED__ */
  857. /* interface __MIDL_itf_sapi_0278 */
  858. /* [local] */ 
  859. typedef /* [hidden] */ 
  860. enum SPLOADOPTIONS
  861.     { SPLO_STATIC = 0,
  862. SPLO_DYNAMIC = 1
  863.     }  SPLOADOPTIONS;
  864. extern RPC_IF_HANDLE __MIDL_itf_sapi_0278_v0_0_c_ifspec;
  865. extern RPC_IF_HANDLE __MIDL_itf_sapi_0278_v0_0_s_ifspec;
  866. #ifndef __ISpRecoGrammar_INTERFACE_DEFINED__
  867. #define __ISpRecoGrammar_INTERFACE_DEFINED__
  868. /* interface ISpRecoGrammar */
  869. /* [local][restricted][unique][helpstring][uuid][object] */ 
  870. EXTERN_C const IID IID_ISpRecoGrammar;
  871. #if defined(__cplusplus) && !defined(CINTERFACE)
  872.     
  873.     MIDL_INTERFACE("2177DB29-7F45-47D0-8554-067E91C80502")
  874.     ISpRecoGrammar : public ISpGrammarBuilder
  875.     {
  876.     public:
  877.         virtual HRESULT STDMETHODCALLTYPE GetGrammarId( 
  878.             /* [out] */ ULONGLONG *pullGrammarId) = 0;
  879.         
  880.         virtual HRESULT STDMETHODCALLTYPE GetRecoContext( 
  881.             /* [out] */ ISpRecoContext **ppRecoCtxt) = 0;
  882.         
  883.         virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile( 
  884.             /* [string][in] */ const WCHAR *pszFileName,
  885.             /* [in] */ SPLOADOPTIONS Options) = 0;
  886.         
  887.         virtual HRESULT STDMETHODCALLTYPE LoadCmdFromObject( 
  888.             /* [in] */ REFCLSID rcid,
  889.             /* [string][in] */ const WCHAR *pszGrammarName,
  890.             /* [in] */ SPLOADOPTIONS Options) = 0;
  891.         
  892.         virtual HRESULT STDMETHODCALLTYPE LoadCmdFromResource( 
  893.             /* [in] */ HMODULE hModule,
  894.             /* [string][in] */ const WCHAR *pszResourceName,
  895.             /* [string][in] */ const WCHAR *pszResourceType,
  896.             /* [in] */ WORD wLanguage,
  897.             /* [in] */ SPLOADOPTIONS Options) = 0;
  898.         
  899.         virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory( 
  900.             /* [in] */ const SPBINARYGRAMMAR *pGrammar,
  901.             /* [in] */ SPLOADOPTIONS Options) = 0;
  902.         
  903.         virtual HRESULT STDMETHODCALLTYPE LoadCmdFromProprietaryGrammar( 
  904.             /* [in] */ REFGUID rguidParam,
  905.             /* [string][in] */ const WCHAR *pszStringParam,
  906.             /* [in] */ const void *pvDataPrarm,
  907.             /* [in] */ ULONG cbDataSize,
  908.             /* [in] */ SPLOADOPTIONS Options) = 0;
  909.         
  910.         virtual HRESULT STDMETHODCALLTYPE SetRuleState( 
  911.             /* [string][in] */ const WCHAR *pszName,
  912.             void *pReserved,
  913.             /* [in] */ SPRULESTATE NewState) = 0;
  914.         
  915.         virtual HRESULT STDMETHODCALLTYPE SetRuleIdState( 
  916.             /* [in] */ ULONG ulRuleId,
  917.             /* [in] */ SPRULESTATE NewState) = 0;
  918.         
  919.         virtual HRESULT STDMETHODCALLTYPE LoadDictation( 
  920.             /* [string][in] */ const WCHAR *pszTopicName,
  921.             /* [in] */ SPLOADOPTIONS Options) = 0;
  922.         
  923.         virtual HRESULT STDMETHODCALLTYPE UnloadDictation( void) = 0;
  924.         
  925.         virtual HRESULT STDMETHODCALLTYPE SetDictationState( 
  926.             /* [in] */ SPRULESTATE NewState) = 0;
  927.         
  928.         virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData( 
  929.             /* [in] */ const WCHAR *pText,
  930.             /* [in] */ ULONG cchText,
  931.             /* [in] */ const SPTEXTSELECTIONINFO *pInfo) = 0;
  932.         
  933.         virtual HRESULT STDMETHODCALLTYPE SetTextSelection( 
  934.             /* [in] */ const SPTEXTSELECTIONINFO *pInfo) = 0;
  935.         
  936.         virtual HRESULT STDMETHODCALLTYPE IsPronounceable( 
  937.             /* [string][in] */ const WCHAR *pszWord,
  938.             /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
  939.         
  940.         virtual HRESULT STDMETHODCALLTYPE SetGrammarState( 
  941.             /* [in] */ SPGRAMMARSTATE eGrammarState) = 0;
  942.         
  943.         virtual HRESULT STDMETHODCALLTYPE SaveCmd( 
  944.             /* [in] */ IStream *pStream,
  945.             /* [optional][out] */ WCHAR **ppszCoMemErrorText) = 0;
  946.         
  947.         virtual HRESULT STDMETHODCALLTYPE GetGrammarState( 
  948.             /* [out] */ SPGRAMMARSTATE *peGrammarState) = 0;
  949.         
  950.     };
  951.     
  952. #else  /* C style interface */
  953.     typedef struct ISpRecoGrammarVtbl
  954.     {
  955.         BEGIN_INTERFACE
  956.         
  957.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  958.             ISpRecoGrammar * This,
  959.             /* [in] */ REFIID riid,
  960.             /* [iid_is][out] */ void **ppvObject);
  961.         
  962.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  963.             ISpRecoGrammar * This);
  964.         
  965.         ULONG ( STDMETHODCALLTYPE *Release )( 
  966.             ISpRecoGrammar * This);
  967.         
  968.         HRESULT ( STDMETHODCALLTYPE *ResetGrammar )( 
  969.             ISpRecoGrammar * This,
  970.             /* [in] */ WORD NewLanguage);
  971.         
  972.         HRESULT ( STDMETHODCALLTYPE *GetRule )( 
  973.             ISpRecoGrammar * This,
  974.             /* [in] */ const WCHAR *pszRuleName,
  975.             /* [in] */ DWORD dwRuleId,
  976.             /* [in] */ DWORD dwAttributes,
  977.             /* [in] */ BOOL fCreateIfNotExist,
  978.             /* [out] */ SPSTATEHANDLE *phInitialState);
  979.         
  980.         HRESULT ( STDMETHODCALLTYPE *ClearRule )( 
  981.             ISpRecoGrammar * This,
  982.             SPSTATEHANDLE hState);
  983.         
  984.         HRESULT ( STDMETHODCALLTYPE *CreateNewState )( 
  985.             ISpRecoGrammar * This,
  986.             SPSTATEHANDLE hState,
  987.             SPSTATEHANDLE *phState);
  988.         
  989.         HRESULT ( STDMETHODCALLTYPE *AddWordTransition )( 
  990.             ISpRecoGrammar * This,
  991.             SPSTATEHANDLE hFromState,
  992.             SPSTATEHANDLE hToState,
  993.             const WCHAR *psz,
  994.             const WCHAR *pszSeparators,
  995.             SPGRAMMARWORDTYPE eWordType,
  996.             float Weight,
  997.             const SPPROPERTYINFO *pPropInfo);
  998.         
  999.         HRESULT ( STDMETHODCALLTYPE *AddRuleTransition )( 
  1000.             ISpRecoGrammar * This,
  1001.             SPSTATEHANDLE hFromState,
  1002.             SPSTATEHANDLE hToState,
  1003.             SPSTATEHANDLE hRule,
  1004.             float Weight,
  1005.             const SPPROPERTYINFO *pPropInfo);
  1006.         
  1007.         HRESULT ( STDMETHODCALLTYPE *AddResource )( 
  1008.             ISpRecoGrammar * This,
  1009.             /* [in] */ SPSTATEHANDLE hRuleState,
  1010.             /* [in] */ const WCHAR *pszResourceName,
  1011.             /* [in] */ const WCHAR *pszResourceValue);
  1012.         
  1013.         HRESULT ( STDMETHODCALLTYPE *Commit )( 
  1014.             ISpRecoGrammar * This,
  1015.             DWORD dwReserved);
  1016.         
  1017.         HRESULT ( STDMETHODCALLTYPE *GetGrammarId )( 
  1018.             ISpRecoGrammar * This,
  1019.             /* [out] */ ULONGLONG *pullGrammarId);
  1020.         
  1021.         HRESULT ( STDMETHODCALLTYPE *GetRecoContext )( 
  1022.             ISpRecoGrammar * This,
  1023.             /* [out] */ ISpRecoContext **ppRecoCtxt);
  1024.         
  1025.         HRESULT ( STDMETHODCALLTYPE *LoadCmdFromFile )( 
  1026.             ISpRecoGrammar * This,
  1027.             /* [string][in] */ const WCHAR *pszFileName,
  1028.             /* [in] */ SPLOADOPTIONS Options);
  1029.         
  1030.         HRESULT ( STDMETHODCALLTYPE *LoadCmdFromObject )( 
  1031.             ISpRecoGrammar * This,
  1032.             /* [in] */ REFCLSID rcid,
  1033.             /* [string][in] */ const WCHAR *pszGrammarName,
  1034.             /* [in] */ SPLOADOPTIONS Options);
  1035.         
  1036.         HRESULT ( STDMETHODCALLTYPE *LoadCmdFromResource )( 
  1037.             ISpRecoGrammar * This,
  1038.             /* [in] */ HMODULE hModule,
  1039.             /* [string][in] */ const WCHAR *pszResourceName,
  1040.             /* [string][in] */ const WCHAR *pszResourceType,
  1041.             /* [in] */ WORD wLanguage,
  1042.             /* [in] */ SPLOADOPTIONS Options);
  1043.         
  1044.         HRESULT ( STDMETHODCALLTYPE *LoadCmdFromMemory )( 
  1045.             ISpRecoGrammar * This,
  1046.             /* [in] */ const SPBINARYGRAMMAR *pGrammar,
  1047.             /* [in] */ SPLOADOPTIONS Options);
  1048.         
  1049.         HRESULT ( STDMETHODCALLTYPE *LoadCmdFromProprietaryGrammar )( 
  1050.             ISpRecoGrammar * This,
  1051.             /* [in] */ REFGUID rguidParam,
  1052.             /* [string][in] */ const WCHAR *pszStringParam,
  1053.             /* [in] */ const void *pvDataPrarm,
  1054.             /* [in] */ ULONG cbDataSize,
  1055.             /* [in] */ SPLOADOPTIONS Options);
  1056.         
  1057.         HRESULT ( STDMETHODCALLTYPE *SetRuleState )( 
  1058.             ISpRecoGrammar * This,
  1059.             /* [string][in] */ const WCHAR *pszName,
  1060.             void *pReserved,
  1061.             /* [in] */ SPRULESTATE NewState);
  1062.         
  1063.         HRESULT ( STDMETHODCALLTYPE *SetRuleIdState )( 
  1064.             ISpRecoGrammar * This,
  1065.             /* [in] */ ULONG ulRuleId,
  1066.             /* [in] */ SPRULESTATE NewState);
  1067.         
  1068.         HRESULT ( STDMETHODCALLTYPE *LoadDictation )( 
  1069.             ISpRecoGrammar * This,
  1070.             /* [string][in] */ const WCHAR *pszTopicName,
  1071.             /* [in] */ SPLOADOPTIONS Options);
  1072.         
  1073.         HRESULT ( STDMETHODCALLTYPE *UnloadDictation )( 
  1074.             ISpRecoGrammar * This);
  1075.         
  1076.         HRESULT ( STDMETHODCALLTYPE *SetDictationState )( 
  1077.             ISpRecoGrammar * This,
  1078.             /* [in] */ SPRULESTATE NewState);
  1079.         
  1080.         HRESULT ( STDMETHODCALLTYPE *SetWordSequenceData )( 
  1081.             ISpRecoGrammar * This,
  1082.             /* [in] */ const WCHAR *pText,
  1083.             /* [in] */ ULONG cchText,
  1084.             /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
  1085.         
  1086.         HRESULT ( STDMETHODCALLTYPE *SetTextSelection )( 
  1087.             ISpRecoGrammar * This,
  1088.             /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
  1089.         
  1090.         HRESULT ( STDMETHODCALLTYPE *IsPronounceable )( 
  1091.             ISpRecoGrammar * This,
  1092.             /* [string][in] */ const WCHAR *pszWord,
  1093.             /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable);
  1094.         
  1095.         HRESULT ( STDMETHODCALLTYPE *SetGrammarState )( 
  1096.             ISpRecoGrammar * This,
  1097.             /* [in] */ SPGRAMMARSTATE eGrammarState);
  1098.         
  1099.         HRESULT ( STDMETHODCALLTYPE *SaveCmd )( 
  1100.             ISpRecoGrammar * This,
  1101.             /* [in] */ IStream *pStream,
  1102.             /* [optional][out] */ WCHAR **ppszCoMemErrorText);
  1103.         
  1104.         HRESULT ( STDMETHODCALLTYPE *GetGrammarState )( 
  1105.             ISpRecoGrammar * This,
  1106.             /* [out] */ SPGRAMMARSTATE *peGrammarState);
  1107.         
  1108.         END_INTERFACE
  1109.     } ISpRecoGrammarVtbl;
  1110.     interface ISpRecoGrammar
  1111.     {
  1112.         CONST_VTBL struct ISpRecoGrammarVtbl *lpVtbl;
  1113.     };
  1114.     
  1115. #ifdef COBJMACROS
  1116. #define ISpRecoGrammar_QueryInterface(This,riid,ppvObject)
  1117.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1118. #define ISpRecoGrammar_AddRef(This)
  1119.     (This)->lpVtbl -> AddRef(This)
  1120. #define ISpRecoGrammar_Release(This)
  1121.     (This)->lpVtbl -> Release(This)
  1122. #define ISpRecoGrammar_ResetGrammar(This,NewLanguage)
  1123.     (This)->lpVtbl -> ResetGrammar(This,NewLanguage)
  1124. #define ISpRecoGrammar_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
  1125.     (This)->lpVtbl -> GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
  1126. #define ISpRecoGrammar_ClearRule(This,hState)
  1127.     (This)->lpVtbl -> ClearRule(This,hState)
  1128. #define ISpRecoGrammar_CreateNewState(This,hState,phState)
  1129.     (This)->lpVtbl -> CreateNewState(This,hState,phState)
  1130. #define ISpRecoGrammar_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
  1131.     (This)->lpVtbl -> AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
  1132. #define ISpRecoGrammar_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
  1133.     (This)->lpVtbl -> AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
  1134. #define ISpRecoGrammar_AddResource(This,hRuleState,pszResourceName,pszResourceValue)
  1135.     (This)->lpVtbl -> AddResource(This,hRuleState,pszResourceName,pszResourceValue)
  1136. #define ISpRecoGrammar_Commit(This,dwReserved)
  1137.     (This)->lpVtbl -> Commit(This,dwReserved)
  1138. #define ISpRecoGrammar_GetGrammarId(This,pullGrammarId)
  1139.     (This)->lpVtbl -> GetGrammarId(This,pullGrammarId)
  1140. #define ISpRecoGrammar_GetRecoContext(This,ppRecoCtxt)
  1141.     (This)->lpVtbl -> GetRecoContext(This,ppRecoCtxt)
  1142. #define ISpRecoGrammar_LoadCmdFromFile(This,pszFileName,Options)
  1143.     (This)->lpVtbl -> LoadCmdFromFile(This,pszFileName,Options)
  1144. #define ISpRecoGrammar_LoadCmdFromObject(This,rcid,pszGrammarName,Options)
  1145.     (This)->lpVtbl -> LoadCmdFromObject(This,rcid,pszGrammarName,Options)
  1146. #define ISpRecoGrammar_LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
  1147.     (This)->lpVtbl -> LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
  1148. #define ISpRecoGrammar_LoadCmdFromMemory(This,pGrammar,Options)
  1149.     (This)->lpVtbl -> LoadCmdFromMemory(This,pGrammar,Options)
  1150. #define ISpRecoGrammar_LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
  1151.     (This)->lpVtbl -> LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
  1152. #define ISpRecoGrammar_SetRuleState(This,pszName,pReserved,NewState)
  1153.     (This)->lpVtbl -> SetRuleState(This,pszName,pReserved,NewState)
  1154. #define ISpRecoGrammar_SetRuleIdState(This,ulRuleId,NewState)
  1155.     (This)->lpVtbl -> SetRuleIdState(This,ulRuleId,NewState)
  1156. #define ISpRecoGrammar_LoadDictation(This,pszTopicName,Options)
  1157.     (This)->lpVtbl -> LoadDictation(This,pszTopicName,Options)
  1158. #define ISpRecoGrammar_UnloadDictation(This)
  1159.     (This)->lpVtbl -> UnloadDictation(This)
  1160. #define ISpRecoGrammar_SetDictationState(This,NewState)
  1161.     (This)->lpVtbl -> SetDictationState(This,NewState)
  1162. #define ISpRecoGrammar_SetWordSequenceData(This,pText,cchText,pInfo)
  1163.     (This)->lpVtbl -> SetWordSequenceData(This,pText,cchText,pInfo)
  1164. #define ISpRecoGrammar_SetTextSelection(This,pInfo)
  1165.     (This)->lpVtbl -> SetTextSelection(This,pInfo)
  1166. #define ISpRecoGrammar_IsPronounceable(This,pszWord,pWordPronounceable)
  1167.     (This)->lpVtbl -> IsPronounceable(This,pszWord,pWordPronounceable)
  1168. #define ISpRecoGrammar_SetGrammarState(This,eGrammarState)
  1169.     (This)->lpVtbl -> SetGrammarState(This,eGrammarState)
  1170. #define ISpRecoGrammar_SaveCmd(This,pStream,ppszCoMemErrorText)
  1171.     (This)->lpVtbl -> SaveCmd(This,pStream,ppszCoMemErrorText)
  1172. #define ISpRecoGrammar_GetGrammarState(This,peGrammarState)
  1173.     (This)->lpVtbl -> GetGrammarState(This,peGrammarState)
  1174. #endif /* COBJMACROS */
  1175. #endif  /* C style interface */
  1176. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetGrammarId_Proxy( 
  1177.     ISpRecoGrammar * This,
  1178.     /* [out] */ ULONGLONG *pullGrammarId);
  1179. void __RPC_STUB ISpRecoGrammar_GetGrammarId_Stub(
  1180.     IRpcStubBuffer *This,
  1181.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1182.     PRPC_MESSAGE _pRpcMessage,
  1183.     DWORD *_pdwStubPhase);
  1184. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetRecoContext_Proxy( 
  1185.     ISpRecoGrammar * This,
  1186.     /* [out] */ ISpRecoContext **ppRecoCtxt);
  1187. void __RPC_STUB ISpRecoGrammar_GetRecoContext_Stub(
  1188.     IRpcStubBuffer *This,
  1189.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1190.     PRPC_MESSAGE _pRpcMessage,
  1191.     DWORD *_pdwStubPhase);
  1192. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromFile_Proxy( 
  1193.     ISpRecoGrammar * This,
  1194.     /* [string][in] */ const WCHAR *pszFileName,
  1195.     /* [in] */ SPLOADOPTIONS Options);
  1196. void __RPC_STUB ISpRecoGrammar_LoadCmdFromFile_Stub(
  1197.     IRpcStubBuffer *This,
  1198.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1199.     PRPC_MESSAGE _pRpcMessage,
  1200.     DWORD *_pdwStubPhase);
  1201. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromObject_Proxy( 
  1202.     ISpRecoGrammar * This,
  1203.     /* [in] */ REFCLSID rcid,
  1204.     /* [string][in] */ const WCHAR *pszGrammarName,
  1205.     /* [in] */ SPLOADOPTIONS Options);
  1206. void __RPC_STUB ISpRecoGrammar_LoadCmdFromObject_Stub(
  1207.     IRpcStubBuffer *This,
  1208.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1209.     PRPC_MESSAGE _pRpcMessage,
  1210.     DWORD *_pdwStubPhase);
  1211. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromResource_Proxy( 
  1212.     ISpRecoGrammar * This,
  1213.     /* [in] */ HMODULE hModule,
  1214.     /* [string][in] */ const WCHAR *pszResourceName,
  1215.     /* [string][in] */ const WCHAR *pszResourceType,
  1216.     /* [in] */ WORD wLanguage,
  1217.     /* [in] */ SPLOADOPTIONS Options);
  1218. void __RPC_STUB ISpRecoGrammar_LoadCmdFromResource_Stub(
  1219.     IRpcStubBuffer *This,
  1220.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1221.     PRPC_MESSAGE _pRpcMessage,
  1222.     DWORD *_pdwStubPhase);
  1223. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromMemory_Proxy( 
  1224.     ISpRecoGrammar * This,
  1225.     /* [in] */ const SPBINARYGRAMMAR *pGrammar,
  1226.     /* [in] */ SPLOADOPTIONS Options);
  1227. void __RPC_STUB ISpRecoGrammar_LoadCmdFromMemory_Stub(
  1228.     IRpcStubBuffer *This,
  1229.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1230.     PRPC_MESSAGE _pRpcMessage,
  1231.     DWORD *_pdwStubPhase);
  1232. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromProprietaryGrammar_Proxy( 
  1233.     ISpRecoGrammar * This,
  1234.     /* [in] */ REFGUID rguidParam,
  1235.     /* [string][in] */ const WCHAR *pszStringParam,
  1236.     /* [in] */ const void *pvDataPrarm,
  1237.     /* [in] */ ULONG cbDataSize,
  1238.     /* [in] */ SPLOADOPTIONS Options);
  1239. void __RPC_STUB ISpRecoGrammar_LoadCmdFromProprietaryGrammar_Stub(
  1240.     IRpcStubBuffer *This,
  1241.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1242.     PRPC_MESSAGE _pRpcMessage,
  1243.     DWORD *_pdwStubPhase);
  1244. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetRuleState_Proxy( 
  1245.     ISpRecoGrammar * This,
  1246.     /* [string][in] */ const WCHAR *pszName,
  1247.     void *pReserved,
  1248.     /* [in] */ SPRULESTATE NewState);
  1249. void __RPC_STUB ISpRecoGrammar_SetRuleState_Stub(
  1250.     IRpcStubBuffer *This,
  1251.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1252.     PRPC_MESSAGE _pRpcMessage,
  1253.     DWORD *_pdwStubPhase);
  1254. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetRuleIdState_Proxy( 
  1255.     ISpRecoGrammar * This,
  1256.     /* [in] */ ULONG ulRuleId,
  1257.     /* [in] */ SPRULESTATE NewState);
  1258. void __RPC_STUB ISpRecoGrammar_SetRuleIdState_Stub(
  1259.     IRpcStubBuffer *This,
  1260.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1261.     PRPC_MESSAGE _pRpcMessage,
  1262.     DWORD *_pdwStubPhase);
  1263. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadDictation_Proxy( 
  1264.     ISpRecoGrammar * This,
  1265.     /* [string][in] */ const WCHAR *pszTopicName,
  1266.     /* [in] */ SPLOADOPTIONS Options);
  1267. void __RPC_STUB ISpRecoGrammar_LoadDictation_Stub(
  1268.     IRpcStubBuffer *This,
  1269.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1270.     PRPC_MESSAGE _pRpcMessage,
  1271.     DWORD *_pdwStubPhase);
  1272. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_UnloadDictation_Proxy( 
  1273.     ISpRecoGrammar * This);
  1274. void __RPC_STUB ISpRecoGrammar_UnloadDictation_Stub(
  1275.     IRpcStubBuffer *This,
  1276.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1277.     PRPC_MESSAGE _pRpcMessage,
  1278.     DWORD *_pdwStubPhase);
  1279. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetDictationState_Proxy( 
  1280.     ISpRecoGrammar * This,
  1281.     /* [in] */ SPRULESTATE NewState);
  1282. void __RPC_STUB ISpRecoGrammar_SetDictationState_Stub(
  1283.     IRpcStubBuffer *This,
  1284.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1285.     PRPC_MESSAGE _pRpcMessage,
  1286.     DWORD *_pdwStubPhase);
  1287. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetWordSequenceData_Proxy( 
  1288.     ISpRecoGrammar * This,
  1289.     /* [in] */ const WCHAR *pText,
  1290.     /* [in] */ ULONG cchText,
  1291.     /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
  1292. void __RPC_STUB ISpRecoGrammar_SetWordSequenceData_Stub(
  1293.     IRpcStubBuffer *This,
  1294.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1295.     PRPC_MESSAGE _pRpcMessage,
  1296.     DWORD *_pdwStubPhase);
  1297. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetTextSelection_Proxy( 
  1298.     ISpRecoGrammar * This,
  1299.     /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
  1300. void __RPC_STUB ISpRecoGrammar_SetTextSelection_Stub(
  1301.     IRpcStubBuffer *This,
  1302.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1303.     PRPC_MESSAGE _pRpcMessage,
  1304.     DWORD *_pdwStubPhase);
  1305. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_IsPronounceable_Proxy( 
  1306.     ISpRecoGrammar * This,
  1307.     /* [string][in] */ const WCHAR *pszWord,
  1308.     /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable);
  1309. void __RPC_STUB ISpRecoGrammar_IsPronounceable_Stub(
  1310.     IRpcStubBuffer *This,
  1311.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1312.     PRPC_MESSAGE _pRpcMessage,
  1313.     DWORD *_pdwStubPhase);
  1314. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetGrammarState_Proxy( 
  1315.     ISpRecoGrammar * This,
  1316.     /* [in] */ SPGRAMMARSTATE eGrammarState);
  1317. void __RPC_STUB ISpRecoGrammar_SetGrammarState_Stub(
  1318.     IRpcStubBuffer *This,
  1319.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1320.     PRPC_MESSAGE _pRpcMessage,
  1321.     DWORD *_pdwStubPhase);
  1322. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SaveCmd_Proxy( 
  1323.     ISpRecoGrammar * This,
  1324.     /* [in] */ IStream *pStream,
  1325.     /* [optional][out] */ WCHAR **ppszCoMemErrorText);
  1326. void __RPC_STUB ISpRecoGrammar_SaveCmd_Stub(
  1327.     IRpcStubBuffer *This,
  1328.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1329.     PRPC_MESSAGE _pRpcMessage,
  1330.     DWORD *_pdwStubPhase);
  1331. HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetGrammarState_Proxy( 
  1332.     ISpRecoGrammar * This,
  1333.     /* [out] */ SPGRAMMARSTATE *peGrammarState);
  1334. void __RPC_STUB ISpRecoGrammar_GetGrammarState_Stub(
  1335.     IRpcStubBuffer *This,
  1336.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1337.     PRPC_MESSAGE _pRpcMessage,
  1338.     DWORD *_pdwStubPhase);
  1339. #endif  /* __ISpRecoGrammar_INTERFACE_DEFINED__ */
  1340. /* interface __MIDL_itf_sapi_0279 */
  1341. /* [local] */ 
  1342. typedef /* [hidden][restricted] */ struct SPRECOCONTEXTSTATUS
  1343.     {
  1344.     SPINTERFERENCE eInterference;
  1345.     WCHAR szRequestTypeOfUI[ 255 ];
  1346.     DWORD dwReserved1;
  1347.     DWORD dwReserved2;
  1348.     }  SPRECOCONTEXTSTATUS;
  1349. typedef /* [hidden] */ 
  1350. enum SPBOOKMARKOPTIONS
  1351.     { SPBO_NONE = 0,
  1352. SPBO_PAUSE = 1
  1353.     }  SPBOOKMARKOPTIONS;
  1354. typedef /* [hidden] */ 
  1355. enum SPAUDIOOPTIONS
  1356.     { SPAO_NONE = 0,
  1357. SPAO_RETAIN_AUDIO = 1 << 0
  1358.     }  SPAUDIOOPTIONS;
  1359. extern RPC_IF_HANDLE __MIDL_itf_sapi_0279_v0_0_c_ifspec;
  1360. extern RPC_IF_HANDLE __MIDL_itf_sapi_0279_v0_0_s_ifspec;
  1361. #ifndef __ISpRecoContext_INTERFACE_DEFINED__
  1362. #define __ISpRecoContext_INTERFACE_DEFINED__
  1363. /* interface ISpRecoContext */
  1364. /* [restricted][local][unique][helpstring][uuid][object] */ 
  1365. EXTERN_C const IID IID_ISpRecoContext;
  1366. #if defined(__cplusplus) && !defined(CINTERFACE)
  1367.     
  1368.     MIDL_INTERFACE("F740A62F-7C15-489E-8234-940A33D9272D")
  1369.     ISpRecoContext : public ISpEventSource
  1370.     {
  1371.     public:
  1372.         virtual HRESULT STDMETHODCALLTYPE GetRecognizer( 
  1373.             /* [out] */ ISpRecognizer **ppRecognizer) = 0;
  1374.         
  1375.         virtual HRESULT STDMETHODCALLTYPE CreateGrammar( 
  1376.             /* [in] */ ULONGLONG ullGrammarId,
  1377.             /* [out] */ ISpRecoGrammar **ppGrammar) = 0;
  1378.         
  1379.         virtual HRESULT STDMETHODCALLTYPE GetStatus( 
  1380.             /* [out] */ SPRECOCONTEXTSTATUS *pStatus) = 0;
  1381.         
  1382.         virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates( 
  1383.             /* [in] */ ULONG *pcAlternates) = 0;
  1384.         
  1385.         virtual HRESULT STDMETHODCALLTYPE SetMaxAlternates( 
  1386.             /* [in] */ ULONG cAlternates) = 0;
  1387.         
  1388.         virtual HRESULT STDMETHODCALLTYPE SetAudioOptions( 
  1389.             /* [in] */ SPAUDIOOPTIONS Options,
  1390.             /* [in] */ const GUID *pAudioFormatId,
  1391.             /* [in] */ const WAVEFORMATEX *pWaveFormatEx) = 0;
  1392.         
  1393.         virtual HRESULT STDMETHODCALLTYPE GetAudioOptions( 
  1394.             /* [in] */ SPAUDIOOPTIONS *pOptions,
  1395.             /* [out] */ GUID *pAudioFormatId,
  1396.             /* [out] */ WAVEFORMATEX **ppCoMemWFEX) = 0;
  1397.         
  1398.         virtual HRESULT STDMETHODCALLTYPE DeserializeResult( 
  1399.             /* [in] */ const SPSERIALIZEDRESULT *pSerializedResult,
  1400.             /* [out] */ ISpRecoResult **ppResult) = 0;
  1401.         
  1402.         virtual HRESULT STDMETHODCALLTYPE Bookmark( 
  1403.             /* [in] */ SPBOOKMARKOPTIONS Options,
  1404.             /* [in] */ ULONGLONG ullStreamPosition,
  1405.             /* [in] */ LPARAM lparamEvent) = 0;
  1406.         
  1407.         virtual HRESULT STDMETHODCALLTYPE SetAdaptationData( 
  1408.             /* [string][in] */ const WCHAR *pAdaptationData,
  1409.             /* [in] */ const ULONG cch) = 0;
  1410.         
  1411.         virtual HRESULT STDMETHODCALLTYPE Pause( 
  1412.             DWORD dwReserved) = 0;
  1413.         
  1414.         virtual HRESULT STDMETHODCALLTYPE Resume( 
  1415.             DWORD dwReserved) = 0;
  1416.         
  1417.         virtual HRESULT STDMETHODCALLTYPE SetVoice( 
  1418.             /* [in] */ ISpVoice *pVoice,
  1419.             /* [in] */ BOOL fAllowFormatChanges) = 0;
  1420.         
  1421.         virtual HRESULT STDMETHODCALLTYPE GetVoice( 
  1422.             /* [out] */ ISpVoice **ppVoice) = 0;
  1423.         
  1424.         virtual HRESULT STDMETHODCALLTYPE SetVoicePurgeEvent( 
  1425.             /* [in] */ ULONGLONG ullEventInterest) = 0;
  1426.         
  1427.         virtual HRESULT STDMETHODCALLTYPE GetVoicePurgeEvent( 
  1428.             /* [out] */ ULONGLONG *pullEventInterest) = 0;
  1429.         
  1430.         virtual HRESULT STDMETHODCALLTYPE SetContextState( 
  1431.             /* [in] */ SPCONTEXTSTATE eContextState) = 0;
  1432.         
  1433.         virtual HRESULT STDMETHODCALLTYPE GetContextState( 
  1434.             /* [in] */ SPCONTEXTSTATE *peContextState) = 0;
  1435.         
  1436.     };
  1437.     
  1438. #else  /* C style interface */
  1439.     typedef struct ISpRecoContextVtbl
  1440.     {
  1441.         BEGIN_INTERFACE
  1442.         
  1443.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1444.             ISpRecoContext * This,
  1445.             /* [in] */ REFIID riid,
  1446.             /* [iid_is][out] */ void **ppvObject);
  1447.         
  1448.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1449.             ISpRecoContext * This);
  1450.         
  1451.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1452.             ISpRecoContext * This);
  1453.         
  1454.         HRESULT ( STDMETHODCALLTYPE *SetNotifySink )( 
  1455.             ISpRecoContext * This,
  1456.             /* [in] */ ISpNotifySink *pNotifySink);
  1457.         
  1458.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyWindowMessage )( 
  1459.             ISpRecoContext * This,
  1460.             /* [in] */ HWND hWnd,
  1461.             /* [in] */ UINT Msg,
  1462.             /* [in] */ WPARAM wParam,
  1463.             /* [in] */ LPARAM lParam);
  1464.         
  1465.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyCallbackFunction )( 
  1466.             ISpRecoContext * This,
  1467.             /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
  1468.             /* [in] */ WPARAM wParam,
  1469.             /* [in] */ LPARAM lParam);
  1470.         
  1471.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyCallbackInterface )( 
  1472.             ISpRecoContext * This,
  1473.             /* [in] */ ISpNotifyCallback *pSpCallback,
  1474.             /* [in] */ WPARAM wParam,
  1475.             /* [in] */ LPARAM lParam);
  1476.         
  1477.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyWin32Event )( 
  1478.             ISpRecoContext * This);
  1479.         
  1480.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *WaitForNotifyEvent )( 
  1481.             ISpRecoContext * This,
  1482.             /* [in] */ DWORD dwMilliseconds);
  1483.         
  1484.         /* [local] */ HANDLE ( STDMETHODCALLTYPE *GetNotifyEventHandle )( 
  1485.             ISpRecoContext * This);
  1486.         
  1487.         HRESULT ( STDMETHODCALLTYPE *SetInterest )( 
  1488.             ISpRecoContext * This,
  1489.             /* [in] */ ULONGLONG ullEventInterest,
  1490.             /* [in] */ ULONGLONG ullQueuedInterest);
  1491.         
  1492.         HRESULT ( STDMETHODCALLTYPE *GetEvents )( 
  1493.             ISpRecoContext * This,
  1494.             /* [in] */ ULONG ulCount,
  1495.             /* [size_is][out] */ SPEVENT *pEventArray,
  1496.             /* [out] */ ULONG *pulFetched);
  1497.         
  1498.         HRESULT ( STDMETHODCALLTYPE *GetInfo )( 
  1499.             ISpRecoContext * This,
  1500.             /* [out] */ SPEVENTSOURCEINFO *pInfo);
  1501.         
  1502.         HRESULT ( STDMETHODCALLTYPE *GetRecognizer )( 
  1503.             ISpRecoContext * This,
  1504.             /* [out] */ ISpRecognizer **ppRecognizer);
  1505.         
  1506.         HRESULT ( STDMETHODCALLTYPE *CreateGrammar )( 
  1507.             ISpRecoContext * This,
  1508.             /* [in] */ ULONGLONG ullGrammarId,
  1509.             /* [out] */ ISpRecoGrammar **ppGrammar);
  1510.         
  1511.         HRESULT ( STDMETHODCALLTYPE *GetStatus )( 
  1512.             ISpRecoContext * This,
  1513.             /* [out] */ SPRECOCONTEXTSTATUS *pStatus);
  1514.         
  1515.         HRESULT ( STDMETHODCALLTYPE *GetMaxAlternates )( 
  1516.             ISpRecoContext * This,
  1517.             /* [in] */ ULONG *pcAlternates);
  1518.         
  1519.         HRESULT ( STDMETHODCALLTYPE *SetMaxAlternates )( 
  1520.             ISpRecoContext * This,
  1521.             /* [in] */ ULONG cAlternates);
  1522.         
  1523.         HRESULT ( STDMETHODCALLTYPE *SetAudioOptions )( 
  1524.             ISpRecoContext * This,
  1525.             /* [in] */ SPAUDIOOPTIONS Options,
  1526.             /* [in] */ const GUID *pAudioFormatId,
  1527.             /* [in] */ const WAVEFORMATEX *pWaveFormatEx);
  1528.         
  1529.         HRESULT ( STDMETHODCALLTYPE *GetAudioOptions )( 
  1530.             ISpRecoContext * This,
  1531.             /* [in] */ SPAUDIOOPTIONS *pOptions,
  1532.             /* [out] */ GUID *pAudioFormatId,
  1533.             /* [out] */ WAVEFORMATEX **ppCoMemWFEX);
  1534.         
  1535.         HRESULT ( STDMETHODCALLTYPE *DeserializeResult )( 
  1536.             ISpRecoContext * This,
  1537.             /* [in] */ const SPSERIALIZEDRESULT *pSerializedResult,
  1538.             /* [out] */ ISpRecoResult **ppResult);
  1539.         
  1540.         HRESULT ( STDMETHODCALLTYPE *Bookmark )( 
  1541.             ISpRecoContext * This,
  1542.             /* [in] */ SPBOOKMARKOPTIONS Options,
  1543.             /* [in] */ ULONGLONG ullStreamPosition,
  1544.             /* [in] */ LPARAM lparamEvent);
  1545.         
  1546.         HRESULT ( STDMETHODCALLTYPE *SetAdaptationData )( 
  1547.             ISpRecoContext * This,
  1548.             /* [string][in] */ const WCHAR *pAdaptationData,
  1549.             /* [in] */ const ULONG cch);
  1550.         
  1551.         HRESULT ( STDMETHODCALLTYPE *Pause )( 
  1552.             ISpRecoContext * This,
  1553.             DWORD dwReserved);
  1554.         
  1555.         HRESULT ( STDMETHODCALLTYPE *Resume )( 
  1556.             ISpRecoContext * This,
  1557.             DWORD dwReserved);
  1558.         
  1559.         HRESULT ( STDMETHODCALLTYPE *SetVoice )( 
  1560.             ISpRecoContext * This,
  1561.             /* [in] */ ISpVoice *pVoice,
  1562.             /* [in] */ BOOL fAllowFormatChanges);
  1563.         
  1564.         HRESULT ( STDMETHODCALLTYPE *GetVoice )( 
  1565.             ISpRecoContext * This,
  1566.             /* [out] */ ISpVoice **ppVoice);
  1567.         
  1568.         HRESULT ( STDMETHODCALLTYPE *SetVoicePurgeEvent )( 
  1569.             ISpRecoContext * This,
  1570.             /* [in] */ ULONGLONG ullEventInterest);
  1571.         
  1572.         HRESULT ( STDMETHODCALLTYPE *GetVoicePurgeEvent )( 
  1573.             ISpRecoContext * This,
  1574.             /* [out] */ ULONGLONG *pullEventInterest);
  1575.         
  1576.         HRESULT ( STDMETHODCALLTYPE *SetContextState )( 
  1577.             ISpRecoContext * This,
  1578.             /* [in] */ SPCONTEXTSTATE eContextState);
  1579.         
  1580.         HRESULT ( STDMETHODCALLTYPE *GetContextState )( 
  1581.             ISpRecoContext * This,
  1582.             /* [in] */ SPCONTEXTSTATE *peContextState);
  1583.         
  1584.         END_INTERFACE
  1585.     } ISpRecoContextVtbl;
  1586.     interface ISpRecoContext
  1587.     {
  1588.         CONST_VTBL struct ISpRecoContextVtbl *lpVtbl;
  1589.     };
  1590.     
  1591. #ifdef COBJMACROS
  1592. #define ISpRecoContext_QueryInterface(This,riid,ppvObject)
  1593.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1594. #define ISpRecoContext_AddRef(This)
  1595.     (This)->lpVtbl -> AddRef(This)
  1596. #define ISpRecoContext_Release(This)
  1597.     (This)->lpVtbl -> Release(This)
  1598. #define ISpRecoContext_SetNotifySink(This,pNotifySink)
  1599.     (This)->lpVtbl -> SetNotifySink(This,pNotifySink)
  1600. #define ISpRecoContext_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
  1601.     (This)->lpVtbl -> SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
  1602. #define ISpRecoContext_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
  1603.     (This)->lpVtbl -> SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
  1604. #define ISpRecoContext_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
  1605.     (This)->lpVtbl -> SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
  1606. #define ISpRecoContext_SetNotifyWin32Event(This)
  1607.     (This)->lpVtbl -> SetNotifyWin32Event(This)
  1608. #define ISpRecoContext_WaitForNotifyEvent(This,dwMilliseconds)
  1609.     (This)->lpVtbl -> WaitForNotifyEvent(This,dwMilliseconds)
  1610. #define ISpRecoContext_GetNotifyEventHandle(This)
  1611.     (This)->lpVtbl -> GetNotifyEventHandle(This)
  1612. #define ISpRecoContext_SetInterest(This,ullEventInterest,ullQueuedInterest)
  1613.     (This)->lpVtbl -> SetInterest(This,ullEventInterest,ullQueuedInterest)
  1614. #define ISpRecoContext_GetEvents(This,ulCount,pEventArray,pulFetched)
  1615.     (This)->lpVtbl -> GetEvents(This,ulCount,pEventArray,pulFetched)
  1616. #define ISpRecoContext_GetInfo(This,pInfo)
  1617.     (This)->lpVtbl -> GetInfo(This,pInfo)
  1618. #define ISpRecoContext_GetRecognizer(This,ppRecognizer)
  1619.     (This)->lpVtbl -> GetRecognizer(This,ppRecognizer)
  1620. #define ISpRecoContext_CreateGrammar(This,ullGrammarId,ppGrammar)
  1621.     (This)->lpVtbl -> CreateGrammar(This,ullGrammarId,ppGrammar)
  1622. #define ISpRecoContext_GetStatus(This,pStatus)
  1623.     (This)->lpVtbl -> GetStatus(This,pStatus)
  1624. #define ISpRecoContext_GetMaxAlternates(This,pcAlternates)
  1625.     (This)->lpVtbl -> GetMaxAlternates(This,pcAlternates)
  1626. #define ISpRecoContext_SetMaxAlternates(This,cAlternates)
  1627.     (This)->lpVtbl -> SetMaxAlternates(This,cAlternates)
  1628. #define ISpRecoContext_SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
  1629.     (This)->lpVtbl -> SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
  1630. #define ISpRecoContext_GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
  1631.     (This)->lpVtbl -> GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
  1632. #define ISpRecoContext_DeserializeResult(This,pSerializedResult,ppResult)
  1633.     (This)->lpVtbl -> DeserializeResult(This,pSerializedResult,ppResult)
  1634. #define ISpRecoContext_Bookmark(This,Options,ullStreamPosition,lparamEvent)
  1635.     (This)->lpVtbl -> Bookmark(This,Options,ullStreamPosition,lparamEvent)
  1636. #define ISpRecoContext_SetAdaptationData(This,pAdaptationData,cch)
  1637.     (This)->lpVtbl -> SetAdaptationData(This,pAdaptationData,cch)
  1638. #define ISpRecoContext_Pause(This,dwReserved)
  1639.     (This)->lpVtbl -> Pause(This,dwReserved)
  1640. #define ISpRecoContext_Resume(This,dwReserved)
  1641.     (This)->lpVtbl -> Resume(This,dwReserved)
  1642. #define ISpRecoContext_SetVoice(This,pVoice,fAllowFormatChanges)
  1643.     (This)->lpVtbl -> SetVoice(This,pVoice,fAllowFormatChanges)
  1644. #define ISpRecoContext_GetVoice(This,ppVoice)
  1645.     (This)->lpVtbl -> GetVoice(This,ppVoice)
  1646. #define ISpRecoContext_SetVoicePurgeEvent(This,ullEventInterest)
  1647.     (This)->lpVtbl -> SetVoicePurgeEvent(This,ullEventInterest)
  1648. #define ISpRecoContext_GetVoicePurgeEvent(This,pullEventInterest)
  1649.     (This)->lpVtbl -> GetVoicePurgeEvent(This,pullEventInterest)
  1650. #define ISpRecoContext_SetContextState(This,eContextState)
  1651.     (This)->lpVtbl -> SetContextState(This,eContextState)
  1652. #define ISpRecoContext_GetContextState(This,peContextState)
  1653.     (This)->lpVtbl -> GetContextState(This,peContextState)
  1654. #endif /* COBJMACROS */
  1655. #endif  /* C style interface */
  1656. HRESULT STDMETHODCALLTYPE ISpRecoContext_GetRecognizer_Proxy( 
  1657.     ISpRecoContext * This,
  1658.     /* [out] */ ISpRecognizer **ppRecognizer);
  1659. void __RPC_STUB ISpRecoContext_GetRecognizer_Stub(
  1660.     IRpcStubBuffer *This,
  1661.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1662.     PRPC_MESSAGE _pRpcMessage,
  1663.     DWORD *_pdwStubPhase);
  1664. HRESULT STDMETHODCALLTYPE ISpRecoContext_CreateGrammar_Proxy( 
  1665.     ISpRecoContext * This,
  1666.     /* [in] */ ULONGLONG ullGrammarId,
  1667.     /* [out] */ ISpRecoGrammar **ppGrammar);
  1668. void __RPC_STUB ISpRecoContext_CreateGrammar_Stub(
  1669.     IRpcStubBuffer *This,
  1670.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1671.     PRPC_MESSAGE _pRpcMessage,
  1672.     DWORD *_pdwStubPhase);
  1673. HRESULT STDMETHODCALLTYPE ISpRecoContext_GetStatus_Proxy( 
  1674.     ISpRecoContext * This,
  1675.     /* [out] */ SPRECOCONTEXTSTATUS *pStatus);
  1676. void __RPC_STUB ISpRecoContext_GetStatus_Stub(
  1677.     IRpcStubBuffer *This,
  1678.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1679.     PRPC_MESSAGE _pRpcMessage,
  1680.     DWORD *_pdwStubPhase);
  1681. HRESULT STDMETHODCALLTYPE ISpRecoContext_GetMaxAlternates_Proxy( 
  1682.     ISpRecoContext * This,
  1683.     /* [in] */ ULONG *pcAlternates);
  1684. void __RPC_STUB ISpRecoContext_GetMaxAlternates_Stub(
  1685.     IRpcStubBuffer *This,
  1686.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1687.     PRPC_MESSAGE _pRpcMessage,
  1688.     DWORD *_pdwStubPhase);
  1689. HRESULT STDMETHODCALLTYPE ISpRecoContext_SetMaxAlternates_Proxy( 
  1690.     ISpRecoContext * This,
  1691.     /* [in] */ ULONG cAlternates);
  1692. void __RPC_STUB ISpRecoContext_SetMaxAlternates_Stub(
  1693.     IRpcStubBuffer *This,
  1694.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1695.     PRPC_MESSAGE _pRpcMessage,
  1696.     DWORD *_pdwStubPhase);
  1697. HRESULT STDMETHODCALLTYPE ISpRecoContext_SetAudioOptions_Proxy( 
  1698.     ISpRecoContext * This,
  1699.     /* [in] */ SPAUDIOOPTIONS Options,
  1700.     /* [in] */ const GUID *pAudioFormatId,
  1701.     /* [in] */ const WAVEFORMATEX *pWaveFormatEx);
  1702. void __RPC_STUB ISpRecoContext_SetAudioOptions_Stub(
  1703.     IRpcStubBuffer *This,
  1704.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1705.     PRPC_MESSAGE _pRpcMessage,
  1706.     DWORD *_pdwStubPhase);
  1707. HRESULT STDMETHODCALLTYPE ISpRecoContext_GetAudioOptions_Proxy( 
  1708.     ISpRecoContext * This,
  1709.     /* [in] */ SPAUDIOOPTIONS *pOptions,
  1710.     /* [out] */ GUID *pAudioFormatId,
  1711.     /* [out] */ WAVEFORMATEX **ppCoMemWFEX);
  1712. void __RPC_STUB ISpRecoContext_GetAudioOptions_Stub(
  1713.     IRpcStubBuffer *This,
  1714.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1715.     PRPC_MESSAGE _pRpcMessage,
  1716.     DWORD *_pdwStubPhase);
  1717. HRESULT STDMETHODCALLTYPE ISpRecoContext_DeserializeResult_Proxy( 
  1718.     ISpRecoContext * This,
  1719.     /* [in] */ const SPSERIALIZEDRESULT *pSerializedResult,
  1720.     /* [out] */ ISpRecoResult **ppResult);
  1721. void __RPC_STUB ISpRecoContext_DeserializeResult_Stub(
  1722.     IRpcStubBuffer *This,
  1723.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1724.     PRPC_MESSAGE _pRpcMessage,
  1725.     DWORD *_pdwStubPhase);
  1726. HRESULT STDMETHODCALLTYPE ISpRecoContext_Bookmark_Proxy( 
  1727.     ISpRecoContext * This,
  1728.     /* [in] */ SPBOOKMARKOPTIONS Options,
  1729.     /* [in] */ ULONGLONG ullStreamPosition,
  1730.     /* [in] */ LPARAM lparamEvent);
  1731. void __RPC_STUB ISpRecoContext_Bookmark_Stub(
  1732.     IRpcStubBuffer *This,
  1733.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1734.     PRPC_MESSAGE _pRpcMessage,
  1735.     DWORD *_pdwStubPhase);
  1736. HRESULT STDMETHODCALLTYPE ISpRecoContext_SetAdaptationData_Proxy( 
  1737.     ISpRecoContext * This,
  1738.     /* [string][in] */ const WCHAR *pAdaptationData,
  1739.     /* [in] */ const ULONG cch);
  1740. void __RPC_STUB ISpRecoContext_SetAdaptationData_Stub(
  1741.     IRpcStubBuffer *This,
  1742.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1743.     PRPC_MESSAGE _pRpcMessage,
  1744.     DWORD *_pdwStubPhase);
  1745. HRESULT STDMETHODCALLTYPE ISpRecoContext_Pause_Proxy( 
  1746.     ISpRecoContext * This,
  1747.     DWORD dwReserved);
  1748. void __RPC_STUB ISpRecoContext_Pause_Stub(
  1749.     IRpcStubBuffer *This,
  1750.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1751.     PRPC_MESSAGE _pRpcMessage,
  1752.     DWORD *_pdwStubPhase);
  1753. HRESULT STDMETHODCALLTYPE ISpRecoContext_Resume_Proxy( 
  1754.     ISpRecoContext * This,
  1755.     DWORD dwReserved);
  1756. void __RPC_STUB ISpRecoContext_Resume_Stub(
  1757.     IRpcStubBuffer *This,
  1758.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1759.     PRPC_MESSAGE _pRpcMessage,
  1760.     DWORD *_pdwStubPhase);
  1761. HRESULT STDMETHODCALLTYPE ISpRecoContext_SetVoice_Proxy( 
  1762.     ISpRecoContext * This,
  1763.     /* [in] */ ISpVoice *pVoice,
  1764.     /* [in] */ BOOL fAllowFormatChanges);
  1765. void __RPC_STUB ISpRecoContext_SetVoice_Stub(
  1766.     IRpcStubBuffer *This,
  1767.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1768.     PRPC_MESSAGE _pRpcMessage,
  1769.     DWORD *_pdwStubPhase);
  1770. HRESULT STDMETHODCALLTYPE ISpRecoContext_GetVoice_Proxy( 
  1771.     ISpRecoContext * This,
  1772.     /* [out] */ ISpVoice **ppVoice);
  1773. void __RPC_STUB ISpRecoContext_GetVoice_Stub(
  1774.     IRpcStubBuffer *This,
  1775.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1776.     PRPC_MESSAGE _pRpcMessage,
  1777.     DWORD *_pdwStubPhase);
  1778. HRESULT STDMETHODCALLTYPE ISpRecoContext_SetVoicePurgeEvent_Proxy( 
  1779.     ISpRecoContext * This,
  1780.     /* [in] */ ULONGLONG ullEventInterest);
  1781. void __RPC_STUB ISpRecoContext_SetVoicePurgeEvent_Stub(
  1782.     IRpcStubBuffer *This,
  1783.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1784.     PRPC_MESSAGE _pRpcMessage,
  1785.     DWORD *_pdwStubPhase);
  1786. HRESULT STDMETHODCALLTYPE ISpRecoContext_GetVoicePurgeEvent_Proxy( 
  1787.     ISpRecoContext * This,
  1788.     /* [out] */ ULONGLONG *pullEventInterest);
  1789. void __RPC_STUB ISpRecoContext_GetVoicePurgeEvent_Stub(
  1790.     IRpcStubBuffer *This,
  1791.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1792.     PRPC_MESSAGE _pRpcMessage,
  1793.     DWORD *_pdwStubPhase);
  1794. HRESULT STDMETHODCALLTYPE ISpRecoContext_SetContextState_Proxy( 
  1795.     ISpRecoContext * This,
  1796.     /* [in] */ SPCONTEXTSTATE eContextState);
  1797. void __RPC_STUB ISpRecoContext_SetContextState_Stub(
  1798.     IRpcStubBuffer *This,
  1799.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1800.     PRPC_MESSAGE _pRpcMessage,
  1801.     DWORD *_pdwStubPhase);
  1802. HRESULT STDMETHODCALLTYPE ISpRecoContext_GetContextState_Proxy( 
  1803.     ISpRecoContext * This,
  1804.     /* [in] */ SPCONTEXTSTATE *peContextState);
  1805. void __RPC_STUB ISpRecoContext_GetContextState_Stub(
  1806.     IRpcStubBuffer *This,
  1807.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1808.     PRPC_MESSAGE _pRpcMessage,
  1809.     DWORD *_pdwStubPhase);
  1810. #endif  /* __ISpRecoContext_INTERFACE_DEFINED__ */
  1811. #ifndef __ISpProperties_INTERFACE_DEFINED__
  1812. #define __ISpProperties_INTERFACE_DEFINED__
  1813. /* interface ISpProperties */
  1814. /* [restricted][local][unique][helpstring][uuid][object] */ 
  1815. EXTERN_C const IID IID_ISpProperties;
  1816. #if defined(__cplusplus) && !defined(CINTERFACE)
  1817.     
  1818.     MIDL_INTERFACE("5B4FB971-B115-4DE1-AD97-E482E3BF6EE4")
  1819.     ISpProperties : public IUnknown
  1820.     {
  1821.     public:
  1822.         virtual HRESULT STDMETHODCALLTYPE SetPropertyNum( 
  1823.             /* [in] */ const WCHAR *pName,
  1824.             /* [in] */ LONG lValue) = 0;
  1825.         
  1826.         virtual HRESULT STDMETHODCALLTYPE GetPropertyNum( 
  1827.             /* [in] */ const WCHAR *pName,
  1828.             /* [out] */ LONG *plValue) = 0;
  1829.         
  1830.         virtual HRESULT STDMETHODCALLTYPE SetPropertyString( 
  1831.             /* [in] */ const WCHAR *pName,
  1832.             /* [in] */ const WCHAR *pValue) = 0;
  1833.         
  1834.         virtual HRESULT STDMETHODCALLTYPE GetPropertyString( 
  1835.             /* [in] */ const WCHAR *pName,
  1836.             /* [out] */ WCHAR **ppCoMemValue) = 0;
  1837.         
  1838.     };
  1839.     
  1840. #else  /* C style interface */
  1841.     typedef struct ISpPropertiesVtbl
  1842.     {
  1843.         BEGIN_INTERFACE
  1844.         
  1845.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1846.             ISpProperties * This,
  1847.             /* [in] */ REFIID riid,
  1848.             /* [iid_is][out] */ void **ppvObject);
  1849.         
  1850.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1851.             ISpProperties * This);
  1852.         
  1853.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1854.             ISpProperties * This);
  1855.         
  1856.         HRESULT ( STDMETHODCALLTYPE *SetPropertyNum )( 
  1857.             ISpProperties * This,
  1858.             /* [in] */ const WCHAR *pName,
  1859.             /* [in] */ LONG lValue);
  1860.         
  1861.         HRESULT ( STDMETHODCALLTYPE *GetPropertyNum )( 
  1862.             ISpProperties * This,
  1863.             /* [in] */ const WCHAR *pName,
  1864.             /* [out] */ LONG *plValue);
  1865.         
  1866.         HRESULT ( STDMETHODCALLTYPE *SetPropertyString )( 
  1867.             ISpProperties * This,
  1868.             /* [in] */ const WCHAR *pName,
  1869.             /* [in] */ const WCHAR *pValue);
  1870.         
  1871.         HRESULT ( STDMETHODCALLTYPE *GetPropertyString )( 
  1872.             ISpProperties * This,
  1873.             /* [in] */ const WCHAR *pName,
  1874.             /* [out] */ WCHAR **ppCoMemValue);
  1875.         
  1876.         END_INTERFACE
  1877.     } ISpPropertiesVtbl;
  1878.     interface ISpProperties
  1879.     {
  1880.         CONST_VTBL struct ISpPropertiesVtbl *lpVtbl;
  1881.     };
  1882.     
  1883. #ifdef COBJMACROS
  1884. #define ISpProperties_QueryInterface(This,riid,ppvObject)
  1885.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1886. #define ISpProperties_AddRef(This)
  1887.     (This)->lpVtbl -> AddRef(This)
  1888. #define ISpProperties_Release(This)
  1889.     (This)->lpVtbl -> Release(This)
  1890. #define ISpProperties_SetPropertyNum(This,pName,lValue)
  1891.     (This)->lpVtbl -> SetPropertyNum(This,pName,lValue)
  1892. #define ISpProperties_GetPropertyNum(This,pName,plValue)
  1893.     (This)->lpVtbl -> GetPropertyNum(This,pName,plValue)
  1894. #define ISpProperties_SetPropertyString(This,pName,pValue)
  1895.     (This)->lpVtbl -> SetPropertyString(This,pName,pValue)
  1896. #define ISpProperties_GetPropertyString(This,pName,ppCoMemValue)
  1897.     (This)->lpVtbl -> GetPropertyString(This,pName,ppCoMemValue)
  1898. #endif /* COBJMACROS */
  1899. #endif  /* C style interface */
  1900. HRESULT STDMETHODCALLTYPE ISpProperties_SetPropertyNum_Proxy( 
  1901.     ISpProperties * This,
  1902.     /* [in] */ const WCHAR *pName,
  1903.     /* [in] */ LONG lValue);
  1904. void __RPC_STUB ISpProperties_SetPropertyNum_Stub(
  1905.     IRpcStubBuffer *This,
  1906.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1907.     PRPC_MESSAGE _pRpcMessage,
  1908.     DWORD *_pdwStubPhase);
  1909. HRESULT STDMETHODCALLTYPE ISpProperties_GetPropertyNum_Proxy( 
  1910.     ISpProperties * This,
  1911.     /* [in] */ const WCHAR *pName,
  1912.     /* [out] */ LONG *plValue);
  1913. void __RPC_STUB ISpProperties_GetPropertyNum_Stub(
  1914.     IRpcStubBuffer *This,
  1915.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1916.     PRPC_MESSAGE _pRpcMessage,
  1917.     DWORD *_pdwStubPhase);
  1918. HRESULT STDMETHODCALLTYPE ISpProperties_SetPropertyString_Proxy( 
  1919.     ISpProperties * This,
  1920.     /* [in] */ const WCHAR *pName,
  1921.     /* [in] */ const WCHAR *pValue);
  1922. void __RPC_STUB ISpProperties_SetPropertyString_Stub(
  1923.     IRpcStubBuffer *This,
  1924.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1925.     PRPC_MESSAGE _pRpcMessage,
  1926.     DWORD *_pdwStubPhase);
  1927. HRESULT STDMETHODCALLTYPE ISpProperties_GetPropertyString_Proxy( 
  1928.     ISpProperties * This,
  1929.     /* [in] */ const WCHAR *pName,
  1930.     /* [out] */ WCHAR **ppCoMemValue);
  1931. void __RPC_STUB ISpProperties_GetPropertyString_Stub(
  1932.     IRpcStubBuffer *This,
  1933.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1934.     PRPC_MESSAGE _pRpcMessage,
  1935.     DWORD *_pdwStubPhase);
  1936. #endif  /* __ISpProperties_INTERFACE_DEFINED__ */
  1937. /* interface __MIDL_itf_sapi_0281 */
  1938. /* [local] */ 
  1939. #define SP_MAX_LANGIDS ( 20 )
  1940. typedef /* [hidden][restricted] */ struct SPRECOGNIZERSTATUS
  1941.     {
  1942.     SPAUDIOSTATUS AudioStatus;
  1943.     ULONGLONG ullRecognitionStreamPos;
  1944.     ULONG ulStreamNumber;
  1945.     ULONG ulNumActive;
  1946.     CLSID clsidEngine;
  1947.     ULONG cLangIDs;
  1948.     WORD aLangID[ 20 ];
  1949.     DWORD dwReserved1;
  1950.     DWORD dwReserved2;
  1951.     }  SPRECOGNIZERSTATUS;
  1952. typedef /* [hidden] */ 
  1953. enum SPWAVEFORMATTYPE
  1954.     { SPWF_INPUT = 0,
  1955. SPWF_SRENGINE = SPWF_INPUT + 1
  1956.     }  SPSTREAMFORMATTYPE;
  1957. typedef /* [hidden] */ 
  1958. enum SPRECOSTATE
  1959.     { SPRST_INACTIVE = 0,
  1960. SPRST_ACTIVE = SPRST_INACTIVE + 1,
  1961. SPRST_ACTIVE_ALWAYS = SPRST_ACTIVE + 1,
  1962. SPRST_INACTIVE_WITH_PURGE = SPRST_ACTIVE_ALWAYS + 1,
  1963. SPRST_NUM_STATES = SPRST_INACTIVE_WITH_PURGE + 1
  1964.     }  SPRECOSTATE;
  1965. extern RPC_IF_HANDLE __MIDL_itf_sapi_0281_v0_0_c_ifspec;
  1966. extern RPC_IF_HANDLE __MIDL_itf_sapi_0281_v0_0_s_ifspec;
  1967. #ifndef __ISpRecognizer_INTERFACE_DEFINED__
  1968. #define __ISpRecognizer_INTERFACE_DEFINED__
  1969. /* interface ISpRecognizer */
  1970. /* [restricted][unique][helpstring][uuid][object] */ 
  1971. EXTERN_C const IID IID_ISpRecognizer;
  1972. #if defined(__cplusplus) && !defined(CINTERFACE)
  1973.     
  1974.     MIDL_INTERFACE("C2B5F241-DAA0-4507-9E16-5A1EAA2B7A5C")
  1975.     ISpRecognizer : public ISpProperties
  1976.     {
  1977.     public:
  1978.         virtual HRESULT STDMETHODCALLTYPE SetRecognizer( 
  1979.             /* [in] */ ISpObjectToken *pRecognizer) = 0;
  1980.         
  1981.         virtual HRESULT STDMETHODCALLTYPE GetRecognizer( 
  1982.             /* [out] */ ISpObjectToken **ppRecognizer) = 0;
  1983.         
  1984.         virtual HRESULT STDMETHODCALLTYPE SetInput( 
  1985.             /* [in] */ IUnknown *pUnkInput,
  1986.             /* [in] */ BOOL fAllowFormatChanges) = 0;
  1987.         
  1988.         virtual HRESULT STDMETHODCALLTYPE GetInputObjectToken( 
  1989.             /* [out] */ ISpObjectToken **ppToken) = 0;
  1990.         
  1991.         virtual HRESULT STDMETHODCALLTYPE GetInputStream( 
  1992.             /* [out] */ ISpStreamFormat **ppStream) = 0;
  1993.         
  1994.         virtual HRESULT STDMETHODCALLTYPE CreateRecoContext( 
  1995.             /* [out] */ ISpRecoContext **ppNewCtxt) = 0;
  1996.         
  1997.         virtual HRESULT STDMETHODCALLTYPE GetRecoProfile( 
  1998.             /* [out] */ ISpObjectToken **ppToken) = 0;
  1999.         
  2000.         virtual HRESULT STDMETHODCALLTYPE SetRecoProfile( 
  2001.             /* [in] */ ISpObjectToken *pToken) = 0;
  2002.         
  2003.         virtual HRESULT STDMETHODCALLTYPE IsSharedInstance( void) = 0;
  2004.         
  2005.         virtual HRESULT STDMETHODCALLTYPE GetRecoState( 
  2006.             /* [out] */ SPRECOSTATE *pState) = 0;
  2007.         
  2008.         virtual HRESULT STDMETHODCALLTYPE SetRecoState( 
  2009.             /* [in] */ SPRECOSTATE NewState) = 0;
  2010.         
  2011.         virtual HRESULT STDMETHODCALLTYPE GetStatus( 
  2012.             /* [out] */ SPRECOGNIZERSTATUS *pStatus) = 0;
  2013.         
  2014.         virtual HRESULT STDMETHODCALLTYPE GetFormat( 
  2015.             /* [in] */ SPSTREAMFORMATTYPE WaveFormatType,
  2016.             /* [out] */ GUID *pFormatId,
  2017.             /* [out] */ WAVEFORMATEX **ppCoMemWFEX) = 0;
  2018.         
  2019.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE IsUISupported( 
  2020.             /* [in] */ const WCHAR *pszTypeOfUI,
  2021.             /* [in] */ void *pvExtraData,
  2022.             /* [in] */ ULONG cbExtraData,
  2023.             /* [out] */ BOOL *pfSupported) = 0;
  2024.         
  2025.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE DisplayUI( 
  2026.             /* [in] */ HWND hwndParent,
  2027.             /* [in] */ const WCHAR *pszTitle,
  2028.             /* [in] */ const WCHAR *pszTypeOfUI,
  2029.             /* [in] */ void *pvExtraData,
  2030.             /* [in] */ ULONG cbExtraData) = 0;
  2031.         
  2032.         virtual HRESULT STDMETHODCALLTYPE EmulateRecognition( 
  2033.             /* [in] */ ISpPhrase *pPhrase) = 0;
  2034.         
  2035.     };
  2036.     
  2037. #else  /* C style interface */
  2038.     typedef struct ISpRecognizerVtbl
  2039.     {
  2040.         BEGIN_INTERFACE
  2041.         
  2042.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2043.             ISpRecognizer * This,
  2044.             /* [in] */ REFIID riid,
  2045.             /* [iid_is][out] */ void **ppvObject);
  2046.         
  2047.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2048.             ISpRecognizer * This);
  2049.         
  2050.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2051.             ISpRecognizer * This);
  2052.         
  2053.         HRESULT ( STDMETHODCALLTYPE *SetPropertyNum )( 
  2054.             ISpRecognizer * This,
  2055.             /* [in] */ const WCHAR *pName,
  2056.             /* [in] */ LONG lValue);
  2057.         
  2058.         HRESULT ( STDMETHODCALLTYPE *GetPropertyNum )( 
  2059.             ISpRecognizer * This,
  2060.             /* [in] */ const WCHAR *pName,
  2061.             /* [out] */ LONG *plValue);
  2062.         
  2063.         HRESULT ( STDMETHODCALLTYPE *SetPropertyString )( 
  2064.             ISpRecognizer * This,
  2065.             /* [in] */ const WCHAR *pName,
  2066.             /* [in] */ const WCHAR *pValue);
  2067.         
  2068.         HRESULT ( STDMETHODCALLTYPE *GetPropertyString )( 
  2069.             ISpRecognizer * This,
  2070.             /* [in] */ const WCHAR *pName,
  2071.             /* [out] */ WCHAR **ppCoMemValue);
  2072.         
  2073.         HRESULT ( STDMETHODCALLTYPE *SetRecognizer )( 
  2074.             ISpRecognizer * This,
  2075.             /* [in] */ ISpObjectToken *pRecognizer);
  2076.         
  2077.         HRESULT ( STDMETHODCALLTYPE *GetRecognizer )( 
  2078.             ISpRecognizer * This,
  2079.             /* [out] */ ISpObjectToken **ppRecognizer);
  2080.         
  2081.         HRESULT ( STDMETHODCALLTYPE *SetInput )( 
  2082.             ISpRecognizer * This,
  2083.             /* [in] */ IUnknown *pUnkInput,
  2084.             /* [in] */ BOOL fAllowFormatChanges);
  2085.         
  2086.         HRESULT ( STDMETHODCALLTYPE *GetInputObjectToken )( 
  2087.             ISpRecognizer * This,
  2088.             /* [out] */ ISpObjectToken **ppToken);
  2089.         
  2090.         HRESULT ( STDMETHODCALLTYPE *GetInputStream )( 
  2091.             ISpRecognizer * This,
  2092.             /* [out] */ ISpStreamFormat **ppStream);
  2093.         
  2094.         HRESULT ( STDMETHODCALLTYPE *CreateRecoContext )( 
  2095.             ISpRecognizer * This,
  2096.             /* [out] */ ISpRecoContext **ppNewCtxt);
  2097.         
  2098.         HRESULT ( STDMETHODCALLTYPE *GetRecoProfile )( 
  2099.             ISpRecognizer * This,
  2100.             /* [out] */ ISpObjectToken **ppToken);
  2101.         
  2102.         HRESULT ( STDMETHODCALLTYPE *SetRecoProfile )( 
  2103.             ISpRecognizer * This,
  2104.             /* [in] */ ISpObjectToken *pToken);
  2105.         
  2106.         HRESULT ( STDMETHODCALLTYPE *IsSharedInstance )( 
  2107.             ISpRecognizer * This);
  2108.         
  2109.         HRESULT ( STDMETHODCALLTYPE *GetRecoState )( 
  2110.             ISpRecognizer * This,
  2111.             /* [out] */ SPRECOSTATE *pState);
  2112.         
  2113.         HRESULT ( STDMETHODCALLTYPE *SetRecoState )( 
  2114.             ISpRecognizer * This,
  2115.             /* [in] */ SPRECOSTATE NewState);
  2116.         
  2117.         HRESULT ( STDMETHODCALLTYPE *GetStatus )( 
  2118.             ISpRecognizer * This,
  2119.             /* [out] */ SPRECOGNIZERSTATUS *pStatus);
  2120.         
  2121.         HRESULT ( STDMETHODCALLTYPE *GetFormat )( 
  2122.             ISpRecognizer * This,
  2123.             /* [in] */ SPSTREAMFORMATTYPE WaveFormatType,
  2124.             /* [out] */ GUID *pFormatId,
  2125.             /* [out] */ WAVEFORMATEX **ppCoMemWFEX);
  2126.         
  2127.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *IsUISupported )( 
  2128.             ISpRecognizer * This,
  2129.             /* [in] */ const WCHAR *pszTypeOfUI,
  2130.             /* [in] */ void *pvExtraData,
  2131.             /* [in] */ ULONG cbExtraData,
  2132.             /* [out] */ BOOL *pfSupported);
  2133.         
  2134.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *DisplayUI )( 
  2135.             ISpRecognizer * This,
  2136.             /* [in] */ HWND hwndParent,
  2137.             /* [in] */ const WCHAR *pszTitle,
  2138.             /* [in] */ const WCHAR *pszTypeOfUI,
  2139.             /* [in] */ void *pvExtraData,
  2140.             /* [in] */ ULONG cbExtraData);
  2141.         
  2142.         HRESULT ( STDMETHODCALLTYPE *EmulateRecognition )( 
  2143.             ISpRecognizer * This,
  2144.             /* [in] */ ISpPhrase *pPhrase);
  2145.         
  2146.         END_INTERFACE
  2147.     } ISpRecognizerVtbl;
  2148.     interface ISpRecognizer
  2149.     {
  2150.         CONST_VTBL struct ISpRecognizerVtbl *lpVtbl;
  2151.     };
  2152.     
  2153. #ifdef COBJMACROS
  2154. #define ISpRecognizer_QueryInterface(This,riid,ppvObject)
  2155.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2156. #define ISpRecognizer_AddRef(This)
  2157.     (This)->lpVtbl -> AddRef(This)
  2158. #define ISpRecognizer_Release(This)
  2159.     (This)->lpVtbl -> Release(This)
  2160. #define ISpRecognizer_SetPropertyNum(This,pName,lValue)
  2161.     (This)->lpVtbl -> SetPropertyNum(This,pName,lValue)
  2162. #define ISpRecognizer_GetPropertyNum(This,pName,plValue)
  2163.     (This)->lpVtbl -> GetPropertyNum(This,pName,plValue)
  2164. #define ISpRecognizer_SetPropertyString(This,pName,pValue)
  2165.     (This)->lpVtbl -> SetPropertyString(This,pName,pValue)
  2166. #define ISpRecognizer_GetPropertyString(This,pName,ppCoMemValue)
  2167.     (This)->lpVtbl -> GetPropertyString(This,pName,ppCoMemValue)
  2168. #define ISpRecognizer_SetRecognizer(This,pRecognizer)
  2169.     (This)->lpVtbl -> SetRecognizer(This,pRecognizer)
  2170. #define ISpRecognizer_GetRecognizer(This,ppRecognizer)
  2171.     (This)->lpVtbl -> GetRecognizer(This,ppRecognizer)
  2172. #define ISpRecognizer_SetInput(This,pUnkInput,fAllowFormatChanges)
  2173.     (This)->lpVtbl -> SetInput(This,pUnkInput,fAllowFormatChanges)
  2174. #define ISpRecognizer_GetInputObjectToken(This,ppToken)
  2175.     (This)->lpVtbl -> GetInputObjectToken(This,ppToken)
  2176. #define ISpRecognizer_GetInputStream(This,ppStream)
  2177.     (This)->lpVtbl -> GetInputStream(This,ppStream)
  2178. #define ISpRecognizer_CreateRecoContext(This,ppNewCtxt)
  2179.     (This)->lpVtbl -> CreateRecoContext(This,ppNewCtxt)
  2180. #define ISpRecognizer_GetRecoProfile(This,ppToken)
  2181.     (This)->lpVtbl -> GetRecoProfile(This,ppToken)
  2182. #define ISpRecognizer_SetRecoProfile(This,pToken)
  2183.     (This)->lpVtbl -> SetRecoProfile(This,pToken)
  2184. #define ISpRecognizer_IsSharedInstance(This)
  2185.     (This)->lpVtbl -> IsSharedInstance(This)
  2186. #define ISpRecognizer_GetRecoState(This,pState)
  2187.     (This)->lpVtbl -> GetRecoState(This,pState)
  2188. #define ISpRecognizer_SetRecoState(This,NewState)
  2189.     (This)->lpVtbl -> SetRecoState(This,NewState)
  2190. #define ISpRecognizer_GetStatus(This,pStatus)
  2191.     (This)->lpVtbl -> GetStatus(This,pStatus)
  2192. #define ISpRecognizer_GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
  2193.     (This)->lpVtbl -> GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
  2194. #define ISpRecognizer_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
  2195.     (This)->lpVtbl -> IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
  2196. #define ISpRecognizer_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
  2197.     (This)->lpVtbl -> DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
  2198. #define ISpRecognizer_EmulateRecognition(This,pPhrase)
  2199.     (This)->lpVtbl -> EmulateRecognition(This,pPhrase)
  2200. #endif /* COBJMACROS */
  2201. #endif  /* C style interface */
  2202. HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecognizer_Proxy( 
  2203.     ISpRecognizer * This,
  2204.     /* [in] */ ISpObjectToken *pRecognizer);
  2205. void __RPC_STUB ISpRecognizer_SetRecognizer_Stub(
  2206.     IRpcStubBuffer *This,
  2207.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2208.     PRPC_MESSAGE _pRpcMessage,
  2209.     DWORD *_pdwStubPhase);
  2210. HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecognizer_Proxy( 
  2211.     ISpRecognizer * This,
  2212.     /* [out] */ ISpObjectToken **ppRecognizer);
  2213. void __RPC_STUB ISpRecognizer_GetRecognizer_Stub(
  2214.     IRpcStubBuffer *This,
  2215.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2216.     PRPC_MESSAGE _pRpcMessage,
  2217.     DWORD *_pdwStubPhase);
  2218. HRESULT STDMETHODCALLTYPE ISpRecognizer_SetInput_Proxy( 
  2219.     ISpRecognizer * This,
  2220.     /* [in] */ IUnknown *pUnkInput,
  2221.     /* [in] */ BOOL fAllowFormatChanges);
  2222. void __RPC_STUB ISpRecognizer_SetInput_Stub(
  2223.     IRpcStubBuffer *This,
  2224.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2225.     PRPC_MESSAGE _pRpcMessage,
  2226.     DWORD *_pdwStubPhase);
  2227. HRESULT STDMETHODCALLTYPE ISpRecognizer_GetInputObjectToken_Proxy( 
  2228.     ISpRecognizer * This,
  2229.     /* [out] */ ISpObjectToken **ppToken);
  2230. void __RPC_STUB ISpRecognizer_GetInputObjectToken_Stub(
  2231.     IRpcStubBuffer *This,
  2232.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2233.     PRPC_MESSAGE _pRpcMessage,
  2234.     DWORD *_pdwStubPhase);
  2235. HRESULT STDMETHODCALLTYPE ISpRecognizer_GetInputStream_Proxy( 
  2236.     ISpRecognizer * This,
  2237.     /* [out] */ ISpStreamFormat **ppStream);
  2238. void __RPC_STUB ISpRecognizer_GetInputStream_Stub(
  2239.     IRpcStubBuffer *This,
  2240.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2241.     PRPC_MESSAGE _pRpcMessage,
  2242.     DWORD *_pdwStubPhase);
  2243. HRESULT STDMETHODCALLTYPE ISpRecognizer_CreateRecoContext_Proxy( 
  2244.     ISpRecognizer * This,
  2245.     /* [out] */ ISpRecoContext **ppNewCtxt);
  2246. void __RPC_STUB ISpRecognizer_CreateRecoContext_Stub(
  2247.     IRpcStubBuffer *This,
  2248.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2249.     PRPC_MESSAGE _pRpcMessage,
  2250.     DWORD *_pdwStubPhase);
  2251. HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecoProfile_Proxy( 
  2252.     ISpRecognizer * This,
  2253.     /* [out] */ ISpObjectToken **ppToken);
  2254. void __RPC_STUB ISpRecognizer_GetRecoProfile_Stub(
  2255.     IRpcStubBuffer *This,
  2256.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2257.     PRPC_MESSAGE _pRpcMessage,
  2258.     DWORD *_pdwStubPhase);
  2259. HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecoProfile_Proxy( 
  2260.     ISpRecognizer * This,
  2261.     /* [in] */ ISpObjectToken *pToken);
  2262. void __RPC_STUB ISpRecognizer_SetRecoProfile_Stub(
  2263.     IRpcStubBuffer *This,
  2264.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2265.     PRPC_MESSAGE _pRpcMessage,
  2266.     DWORD *_pdwStubPhase);
  2267. HRESULT STDMETHODCALLTYPE ISpRecognizer_IsSharedInstance_Proxy( 
  2268.     ISpRecognizer * This);
  2269. void __RPC_STUB ISpRecognizer_IsSharedInstance_Stub(
  2270.     IRpcStubBuffer *This,
  2271.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2272.     PRPC_MESSAGE _pRpcMessage,
  2273.     DWORD *_pdwStubPhase);
  2274. HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecoState_Proxy( 
  2275.     ISpRecognizer * This,
  2276.     /* [out] */ SPRECOSTATE *pState);
  2277. void __RPC_STUB ISpRecognizer_GetRecoState_Stub(
  2278.     IRpcStubBuffer *This,
  2279.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2280.     PRPC_MESSAGE _pRpcMessage,
  2281.     DWORD *_pdwStubPhase);
  2282. HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecoState_Proxy( 
  2283.     ISpRecognizer * This,
  2284.     /* [in] */ SPRECOSTATE NewState);
  2285. void __RPC_STUB ISpRecognizer_SetRecoState_Stub(
  2286.     IRpcStubBuffer *This,
  2287.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2288.     PRPC_MESSAGE _pRpcMessage,
  2289.     DWORD *_pdwStubPhase);
  2290. HRESULT STDMETHODCALLTYPE ISpRecognizer_GetStatus_Proxy( 
  2291.     ISpRecognizer * This,
  2292.     /* [out] */ SPRECOGNIZERSTATUS *pStatus);
  2293. void __RPC_STUB ISpRecognizer_GetStatus_Stub(
  2294.     IRpcStubBuffer *This,
  2295.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2296.     PRPC_MESSAGE _pRpcMessage,
  2297.     DWORD *_pdwStubPhase);
  2298. HRESULT STDMETHODCALLTYPE ISpRecognizer_GetFormat_Proxy( 
  2299.     ISpRecognizer * This,
  2300.     /* [in] */ SPSTREAMFORMATTYPE WaveFormatType,
  2301.     /* [out] */ GUID *pFormatId,
  2302.     /* [out] */ WAVEFORMATEX **ppCoMemWFEX);
  2303. void __RPC_STUB ISpRecognizer_GetFormat_Stub(
  2304.     IRpcStubBuffer *This,
  2305.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2306.     PRPC_MESSAGE _pRpcMessage,
  2307.     DWORD *_pdwStubPhase);
  2308. /* [local] */ HRESULT STDMETHODCALLTYPE ISpRecognizer_IsUISupported_Proxy( 
  2309.     ISpRecognizer * This,
  2310.     /* [in] */ const WCHAR *pszTypeOfUI,
  2311.     /* [in] */ void *pvExtraData,
  2312.     /* [in] */ ULONG cbExtraData,
  2313.     /* [out] */ BOOL *pfSupported);
  2314. void __RPC_STUB ISpRecognizer_IsUISupported_Stub(
  2315.     IRpcStubBuffer *This,
  2316.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2317.     PRPC_MESSAGE _pRpcMessage,
  2318.     DWORD *_pdwStubPhase);
  2319. /* [local] */ HRESULT STDMETHODCALLTYPE ISpRecognizer_DisplayUI_Proxy( 
  2320.     ISpRecognizer * This,
  2321.     /* [in] */ HWND hwndParent,
  2322.     /* [in] */ const WCHAR *pszTitle,
  2323.     /* [in] */ const WCHAR *pszTypeOfUI,
  2324.     /* [in] */ void *pvExtraData,
  2325.     /* [in] */ ULONG cbExtraData);
  2326. void __RPC_STUB ISpRecognizer_DisplayUI_Stub(
  2327.     IRpcStubBuffer *This,
  2328.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2329.     PRPC_MESSAGE _pRpcMessage,
  2330.     DWORD *_pdwStubPhase);
  2331. HRESULT STDMETHODCALLTYPE ISpRecognizer_EmulateRecognition_Proxy( 
  2332.     ISpRecognizer * This,
  2333.     /* [in] */ ISpPhrase *pPhrase);
  2334. void __RPC_STUB ISpRecognizer_EmulateRecognition_Stub(
  2335.     IRpcStubBuffer *This,
  2336.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2337.     PRPC_MESSAGE _pRpcMessage,
  2338.     DWORD *_pdwStubPhase);
  2339. #endif  /* __ISpRecognizer_INTERFACE_DEFINED__ */
  2340. #ifndef __SpeechLib_LIBRARY_DEFINED__
  2341. #define __SpeechLib_LIBRARY_DEFINED__
  2342. /* library SpeechLib */
  2343. /* [version][uuid][helpstring] */ 
  2344. typedef long SpeechLanguageId;
  2345. #define __SpeechStringConstants_MODULE_DEFINED__
  2346. typedef /* [hidden] */ 
  2347. enum DISPID_SpeechDataKey
  2348.     { DISPID_SDKSetBinaryValue = 1,
  2349. DISPID_SDKGetBinaryValue = DISPID_SDKSetBinaryValue + 1,
  2350. DISPID_SDKSetStringValue = DISPID_SDKGetBinaryValue + 1,
  2351. DISPID_SDKGetStringValue = DISPID_SDKSetStringValue + 1,
  2352. DISPID_SDKSetLongValue = DISPID_SDKGetStringValue + 1,
  2353. DISPID_SDKGetlongValue = DISPID_SDKSetLongValue + 1,
  2354. DISPID_SDKOpenKey = DISPID_SDKGetlongValue + 1,
  2355. DISPID_SDKCreateKey = DISPID_SDKOpenKey + 1,
  2356. DISPID_SDKDeleteKey = DISPID_SDKCreateKey + 1,
  2357. DISPID_SDKDeleteValue = DISPID_SDKDeleteKey + 1,
  2358. DISPID_SDKEnumKeys = DISPID_SDKDeleteValue + 1,
  2359. DISPID_SDKEnumValues = DISPID_SDKEnumKeys + 1
  2360.     }  DISPID_SpeechDataKey;
  2361. typedef /* [hidden] */ 
  2362. enum DISPID_SpeechObjectToken
  2363.     { DISPID_SOTId = 1,
  2364. DISPID_SOTDataKey = DISPID_SOTId + 1,
  2365. DISPID_SOTCategory = DISPID_SOTDataKey + 1,
  2366. DISPID_SOTGetDescription = DISPID_SOTCategory + 1,
  2367. DISPID_SOTSetId = DISPID_SOTGetDescription + 1,
  2368. DISPID_SOTGetAttribute = DISPID_SOTSetId + 1,
  2369. DISPID_SOTCreateInstance = DISPID_SOTGetAttribute + 1,
  2370. DISPID_SOTRemove = DISPID_SOTCreateInstance + 1,
  2371. DISPID_SOTGetStorageFileName = DISPID_SOTRemove + 1,
  2372. DISPID_SOTRemoveStorageFileName = DISPID_SOTGetStorageFileName + 1,
  2373. DISPID_SOTIsUISupported = DISPID_SOTRemoveStorageFileName + 1,
  2374. DISPID_SOTDisplayUI = DISPID_SOTIsUISupported + 1,
  2375. DISPID_SOTMatchesAttributes = DISPID_SOTDisplayUI + 1
  2376.     }  DISPID_SpeechObjectToken;
  2377. typedef 
  2378. enum SpeechDataKeyLocation
  2379.     { SDKLDefaultLocation = SPDKL_DefaultLocation,
  2380. SDKLCurrentUser = SPDKL_CurrentUser,
  2381. SDKLLocalMachine = SPDKL_LocalMachine,
  2382. SDKLCurrentConfig = SPDKL_CurrentConfig
  2383.     }  SpeechDataKeyLocation;
  2384. typedef 
  2385. enum SpeechTokenContext
  2386.     { STCInprocServer = CLSCTX_INPROC_SERVER,
  2387. STCInprocHandler = CLSCTX_INPROC_HANDLER,
  2388. STCLocalServer = CLSCTX_LOCAL_SERVER,
  2389. STCRemoteServer = CLSCTX_REMOTE_SERVER,
  2390. STCAll = CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER
  2391.     }  SpeechTokenContext;
  2392. typedef 
  2393. enum SpeechTokenShellFolder
  2394.     { STSF_AppData = 0x1a,
  2395. STSF_LocalAppData = 0x1c,
  2396. STSF_CommonAppData = 0x23,
  2397. STSF_FlagCreate = 0x8000
  2398.     }  SpeechTokenShellFolder;
  2399. typedef /* [hidden] */ 
  2400. enum DISPID_SpeechObjectTokens
  2401.     { DISPID_SOTsCount = 1,
  2402. DISPID_SOTsItem = DISPID_VALUE,
  2403. DISPID_SOTs_NewEnum = DISPID_NEWENUM
  2404.     }  DISPID_SpeechObjectTokens;
  2405. typedef /* [hidden] */ 
  2406. enum DISPID_SpeechObjectTokenCategory
  2407.     { DISPID_SOTCId = 1,
  2408. DISPID_SOTCDefault = DISPID_SOTCId + 1,
  2409. DISPID_SOTCSetId = DISPID_SOTCDefault + 1,
  2410. DISPID_SOTCGetDataKey = DISPID_SOTCSetId + 1,
  2411. DISPID_SOTCEnumerateTokens = DISPID_SOTCGetDataKey + 1
  2412.     }  DISPID_SpeechObjectTokenCategory;
  2413. typedef 
  2414. enum SpeechAudioFormatType
  2415.     { SAFTDefault = -1,
  2416. SAFTNoAssignedFormat = 0,
  2417. SAFTText = SAFTNoAssignedFormat + 1,
  2418. SAFTNonStandardFormat = SAFTText + 1,
  2419. SAFTExtendedAudioFormat = SAFTNonStandardFormat + 1,
  2420. SAFT8kHz8BitMono = SAFTExtendedAudioFormat + 1,
  2421. SAFT8kHz8BitStereo = SAFT8kHz8BitMono + 1,
  2422. SAFT8kHz16BitMono = SAFT8kHz8BitStereo + 1,
  2423. SAFT8kHz16BitStereo = SAFT8kHz16BitMono + 1,
  2424. SAFT11kHz8BitMono = SAFT8kHz16BitStereo + 1,
  2425. SAFT11kHz8BitStereo = SAFT11kHz8BitMono + 1,
  2426. SAFT11kHz16BitMono = SAFT11kHz8BitStereo + 1,
  2427. SAFT11kHz16BitStereo = SAFT11kHz16BitMono + 1,
  2428. SAFT12kHz8BitMono = SAFT11kHz16BitStereo + 1,
  2429. SAFT12kHz8BitStereo = SAFT12kHz8BitMono + 1,
  2430. SAFT12kHz16BitMono = SAFT12kHz8BitStereo + 1,
  2431. SAFT12kHz16BitStereo = SAFT12kHz16BitMono + 1,
  2432. SAFT16kHz8BitMono = SAFT12kHz16BitStereo + 1,
  2433. SAFT16kHz8BitStereo = SAFT16kHz8BitMono + 1,
  2434. SAFT16kHz16BitMono = SAFT16kHz8BitStereo + 1,
  2435. SAFT16kHz16BitStereo = SAFT16kHz16BitMono + 1,
  2436. SAFT22kHz8BitMono = SAFT16kHz16BitStereo + 1,
  2437. SAFT22kHz8BitStereo = SAFT22kHz8BitMono + 1,
  2438. SAFT22kHz16BitMono = SAFT22kHz8BitStereo + 1,
  2439. SAFT22kHz16BitStereo = SAFT22kHz16BitMono + 1,
  2440. SAFT24kHz8BitMono = SAFT22kHz16BitStereo + 1,
  2441. SAFT24kHz8BitStereo = SAFT24kHz8BitMono + 1,
  2442. SAFT24kHz16BitMono = SAFT24kHz8BitStereo + 1,
  2443. SAFT24kHz16BitStereo = SAFT24kHz16BitMono + 1,
  2444. SAFT32kHz8BitMono = SAFT24kHz16BitStereo + 1,
  2445. SAFT32kHz8BitStereo = SAFT32kHz8BitMono + 1,
  2446. SAFT32kHz16BitMono = SAFT32kHz8BitStereo + 1,
  2447. SAFT32kHz16BitStereo = SAFT32kHz16BitMono + 1,
  2448. SAFT44kHz8BitMono = SAFT32kHz16BitStereo + 1,
  2449. SAFT44kHz8BitStereo = SAFT44kHz8BitMono + 1,
  2450. SAFT44kHz16BitMono = SAFT44kHz8BitStereo + 1,
  2451. SAFT44kHz16BitStereo = SAFT44kHz16BitMono + 1,
  2452. SAFT48kHz8BitMono = SAFT44kHz16BitStereo + 1,
  2453. SAFT48kHz8BitStereo = SAFT48kHz8BitMono + 1,
  2454. SAFT48kHz16BitMono = SAFT48kHz8BitStereo + 1,
  2455. SAFT48kHz16BitStereo = SAFT48kHz16BitMono + 1,
  2456. SAFTTrueSpeech_8kHz1BitMono = SAFT48kHz16BitStereo + 1,
  2457. SAFTCCITT_ALaw_8kHzMono = SAFTTrueSpeech_8kHz1BitMono + 1,
  2458. SAFTCCITT_ALaw_8kHzStereo = SAFTCCITT_ALaw_8kHzMono + 1,
  2459. SAFTCCITT_ALaw_11kHzMono = SAFTCCITT_ALaw_8kHzStereo + 1,
  2460. SAFTCCITT_ALaw_11kHzStereo = SAFTCCITT_ALaw_11kHzMono + 1,
  2461. SAFTCCITT_ALaw_22kHzMono = SAFTCCITT_ALaw_11kHzStereo + 1,
  2462. SAFTCCITT_ALaw_22kHzStereo = SAFTCCITT_ALaw_22kHzMono + 1,
  2463. SAFTCCITT_ALaw_44kHzMono = SAFTCCITT_ALaw_22kHzStereo + 1,
  2464. SAFTCCITT_ALaw_44kHzStereo = SAFTCCITT_ALaw_44kHzMono + 1,
  2465. SAFTCCITT_uLaw_8kHzMono = SAFTCCITT_ALaw_44kHzStereo + 1,
  2466. SAFTCCITT_uLaw_8kHzStereo = SAFTCCITT_uLaw_8kHzMono + 1,
  2467. SAFTCCITT_uLaw_11kHzMono = SAFTCCITT_uLaw_8kHzStereo + 1,
  2468. SAFTCCITT_uLaw_11kHzStereo = SAFTCCITT_uLaw_11kHzMono + 1,
  2469. SAFTCCITT_uLaw_22kHzMono = SAFTCCITT_uLaw_11kHzStereo + 1,
  2470. SAFTCCITT_uLaw_22kHzStereo = SAFTCCITT_uLaw_22kHzMono + 1,
  2471. SAFTCCITT_uLaw_44kHzMono = SAFTCCITT_uLaw_22kHzStereo + 1,
  2472. SAFTCCITT_uLaw_44kHzStereo = SAFTCCITT_uLaw_44kHzMono + 1,
  2473. SAFTADPCM_8kHzMono = SAFTCCITT_uLaw_44kHzStereo + 1,
  2474. SAFTADPCM_8kHzStereo = SAFTADPCM_8kHzMono + 1,
  2475. SAFTADPCM_11kHzMono = SAFTADPCM_8kHzStereo + 1,
  2476. SAFTADPCM_11kHzStereo = SAFTADPCM_11kHzMono + 1,
  2477. SAFTADPCM_22kHzMono = SAFTADPCM_11kHzStereo + 1,
  2478. SAFTADPCM_22kHzStereo = SAFTADPCM_22kHzMono + 1,
  2479. SAFTADPCM_44kHzMono = SAFTADPCM_22kHzStereo + 1,
  2480. SAFTADPCM_44kHzStereo = SAFTADPCM_44kHzMono + 1,
  2481. SAFTGSM610_8kHzMono = SAFTADPCM_44kHzStereo + 1,
  2482. SAFTGSM610_11kHzMono = SAFTGSM610_8kHzMono + 1,
  2483. SAFTGSM610_22kHzMono = SAFTGSM610_11kHzMono + 1,
  2484. SAFTGSM610_44kHzMono = SAFTGSM610_22kHzMono + 1
  2485.     }  SpeechAudioFormatType;
  2486. typedef /* [hidden] */ 
  2487. enum DISPID_SpeechAudioFormat
  2488.     { DISPID_SAFType = 1,
  2489. DISPID_SAFGuid = DISPID_SAFType + 1,
  2490. DISPID_SAFGetWaveFormatEx = DISPID_SAFGuid + 1,
  2491. DISPID_SAFSetWaveFormatEx = DISPID_SAFGetWaveFormatEx + 1
  2492.     }  DISPID_SpeechAudioFormat;
  2493. typedef /* [hidden] */ 
  2494. enum DISPID_SpeechBaseStream
  2495.     { DISPID_SBSFormat = 1,
  2496. DISPID_SBSRead = DISPID_SBSFormat + 1,
  2497. DISPID_SBSWrite = DISPID_SBSRead + 1,
  2498. DISPID_SBSSeek = DISPID_SBSWrite + 1
  2499.     }  DISPID_SpeechBaseStream;
  2500. typedef 
  2501. enum SpeechStreamSeekPositionType
  2502.     { SSSPTRelativeToStart = STREAM_SEEK_SET,
  2503. SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR,
  2504. SSSPTRelativeToEnd = STREAM_SEEK_END
  2505.     }  SpeechStreamSeekPositionType;
  2506. typedef /* [hidden] */ 
  2507. enum DISPID_SpeechAudio
  2508.     { DISPID_SAStatus = 200,
  2509. DISPID_SABufferInfo = DISPID_SAStatus + 1,
  2510. DISPID_SADefaultFormat = DISPID_SABufferInfo + 1,
  2511. DISPID_SAVolume = DISPID_SADefaultFormat + 1,
  2512. DISPID_SABufferNotifySize = DISPID_SAVolume + 1,
  2513. DISPID_SAEventHandle = DISPID_SABufferNotifySize + 1,
  2514. DISPID_SASetState = DISPID_SAEventHandle + 1
  2515.     }  DISPID_SpeechAudio;
  2516. typedef 
  2517. enum SpeechAudioState
  2518.     { SASClosed = SPAS_CLOSED,
  2519. SASStop = SPAS_STOP,
  2520. SASPause = SPAS_PAUSE,
  2521. SASRun = SPAS_RUN
  2522.     }  SpeechAudioState;
  2523. typedef /* [hidden] */ 
  2524. enum DISPID_SpeechMMSysAudio
  2525.     { DISPID_SMSADeviceId = 300,
  2526. DISPID_SMSALineId = DISPID_SMSADeviceId + 1,
  2527. DISPID_SMSAMMHandle = DISPID_SMSALineId + 1
  2528.     }  DISPID_SpeechMMSysAudio;
  2529. typedef /* [hidden] */ 
  2530. enum DISPID_SpeechFileStream
  2531.     { DISPID_SFSOpen = 100,
  2532. DISPID_SFSClose = DISPID_SFSOpen + 1
  2533.     }  DISPID_SpeechFileStream;
  2534. typedef 
  2535. enum SpeechStreamFileMode
  2536.     { SSFMOpenForRead = SPFM_OPEN_READONLY,
  2537. SSFMOpenReadWrite = SPFM_OPEN_READWRITE,
  2538. SSFMCreate = SPFM_CREATE,
  2539. SSFMCreateForWrite = SPFM_CREATE_ALWAYS
  2540.     }  SpeechStreamFileMode;
  2541. typedef /* [hidden] */ 
  2542. enum DISPID_SpeechCustomStream
  2543.     { DISPID_SCSBaseStream = 100
  2544.     }  DISPID_SpeechCustomStream;
  2545. typedef /* [hidden] */ 
  2546. enum DISPID_SpeechMemoryStream
  2547.     { DISPID_SMSSetData = 100,
  2548. DISPID_SMSGetData = DISPID_SMSSetData + 1
  2549.     }  DISPID_SpeechMemoryStream;
  2550. typedef /* [hidden] */ 
  2551. enum DISPID_SpeechAudioStatus
  2552.     { DISPID_SASFreeBufferSpace = 1,
  2553. DISPID_SASNonBlockingIO = DISPID_SASFreeBufferSpace + 1,
  2554. DISPID_SASState = DISPID_SASNonBlockingIO + 1,
  2555. DISPID_SASCurrentSeekPosition = DISPID_SASState + 1,
  2556. DISPID_SASCurrentDevicePosition = DISPID_SASCurrentSeekPosition + 1
  2557.     }  DISPID_SpeechAudioStatus;
  2558. typedef /* [hidden] */ 
  2559. enum DISPID_SpeechAudioBufferInfo
  2560.     { DISPID_SABIMinNotification = 1,
  2561. DISPID_SABIBufferSize = DISPID_SABIMinNotification + 1,
  2562. DISPID_SABIEventBias = DISPID_SABIBufferSize + 1
  2563.     }  DISPID_SpeechAudioBufferInfo;
  2564. typedef /* [hidden] */ 
  2565. enum DISPID_SpeechWaveFormatEx
  2566.     { DISPID_SWFEFormatTag = 1,
  2567. DISPID_SWFEChannels = DISPID_SWFEFormatTag + 1,
  2568. DISPID_SWFESamplesPerSec = DISPID_SWFEChannels + 1,
  2569. DISPID_SWFEAvgBytesPerSec = DISPID_SWFESamplesPerSec + 1,
  2570. DISPID_SWFEBlockAlign = DISPID_SWFEAvgBytesPerSec + 1,
  2571. DISPID_SWFEBitsPerSample = DISPID_SWFEBlockAlign + 1,
  2572. DISPID_SWFEExtraData = DISPID_SWFEBitsPerSample + 1
  2573.     }  DISPID_SpeechWaveFormatEx;
  2574. typedef /* [hidden] */ 
  2575. enum DISPID_SpeechVoice
  2576.     { DISPID_SVStatus = 1,
  2577. DISPID_SVVoice = DISPID_SVStatus + 1,
  2578. DISPID_SVAudioOutput = DISPID_SVVoice + 1,
  2579. DISPID_SVAudioOutputStream = DISPID_SVAudioOutput + 1,
  2580. DISPID_SVRate = DISPID_SVAudioOutputStream + 1,
  2581. DISPID_SVVolume = DISPID_SVRate + 1,
  2582. DISPID_SVAllowAudioOuputFormatChangesOnNextSet = DISPID_SVVolume + 1,
  2583. DISPID_SVEventInterests = DISPID_SVAllowAudioOuputFormatChangesOnNextSet + 1,
  2584. DISPID_SVPriority = DISPID_SVEventInterests + 1,
  2585. DISPID_SVAlertBoundary = DISPID_SVPriority + 1,
  2586. DISPID_SVSyncronousSpeakTimeout = DISPID_SVAlertBoundary + 1,
  2587. DISPID_SVSpeak = DISPID_SVSyncronousSpeakTimeout + 1,
  2588. DISPID_SVSpeakStream = DISPID_SVSpeak + 1,
  2589. DISPID_SVPause = DISPID_SVSpeakStream + 1,
  2590. DISPID_SVResume = DISPID_SVPause + 1,
  2591. DISPID_SVSkip = DISPID_SVResume + 1,
  2592. DISPID_SVGetVoices = DISPID_SVSkip + 1,
  2593. DISPID_SVGetAudioOutputs = DISPID_SVGetVoices + 1,
  2594. DISPID_SVWaitUntilDone = DISPID_SVGetAudioOutputs + 1,
  2595. DISPID_SVSpeakCompleteEvent = DISPID_SVWaitUntilDone + 1,
  2596. DISPID_SVIsUISupported = DISPID_SVSpeakCompleteEvent + 1,
  2597. DISPID_SVDisplayUI = DISPID_SVIsUISupported + 1
  2598.     }  DISPID_SpeechVoice;
  2599. typedef 
  2600. enum SpeechVoicePriority
  2601.     { SVPNormal = SPVPRI_NORMAL,
  2602. SVPAlert = SPVPRI_ALERT,
  2603. SVPOver = SPVPRI_OVER
  2604.     }  SpeechVoicePriority;
  2605. typedef 
  2606. enum SpeechVoiceSpeakFlags
  2607.     { SVSFDefault = SPF_DEFAULT,
  2608. SVSFlagsAsync = SPF_ASYNC,
  2609. SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK,
  2610. SVSFIsFilename = SPF_IS_FILENAME,
  2611. SVSFIsXML = SPF_IS_XML,
  2612. SVSFIsNotXML = SPF_IS_NOT_XML,
  2613. SVSFPersistXML = SPF_PERSIST_XML,
  2614. SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC,
  2615. SVSFNLPMask = SPF_NLP_MASK,
  2616. SVSFVoiceMask = SPF_VOICE_MASK,
  2617. SVSFUnusedFlags = SPF_UNUSED_FLAGS
  2618.     }  SpeechVoiceSpeakFlags;
  2619. typedef 
  2620. enum SpeechVoiceEvents
  2621.     { SVEStartInputStream = 1L << 1,
  2622. SVEEndInputStream = 1L << 2,
  2623. SVEVoiceChange = 1L << 3,
  2624. SVEBookmark = 1L << 4,
  2625. SVEWordBoundary = 1L << 5,
  2626. SVEPhoneme = 1L << 6,
  2627. SVESentenceBoundary = 1L << 7,
  2628. SVEViseme = 1L << 8,
  2629. SVEAudioLevel = 1L << 9,
  2630. SVEPrivate = 1L << 15,
  2631. SVEAllEvents = 0x83fe
  2632.     }  SpeechVoiceEvents;
  2633. typedef /* [hidden] */ 
  2634. enum DISPID_SpeechVoiceStatus
  2635.     { DISPID_SVSCurrentStreamNumber = 1,
  2636. DISPID_SVSLastStreamNumberQueued = DISPID_SVSCurrentStreamNumber + 1,
  2637. DISPID_SVSLastResult = DISPID_SVSLastStreamNumberQueued + 1,
  2638. DISPID_SVSRunningState = DISPID_SVSLastResult + 1,
  2639. DISPID_SVSInputWordPosition = DISPID_SVSRunningState + 1,
  2640. DISPID_SVSInputWordLength = DISPID_SVSInputWordPosition + 1,
  2641. DISPID_SVSInputSentencePosition = DISPID_SVSInputWordLength + 1,
  2642. DISPID_SVSInputSentenceLength = DISPID_SVSInputSentencePosition + 1,
  2643. DISPID_SVSLastBookmark = DISPID_SVSInputSentenceLength + 1,
  2644. DISPID_SVSLastBookmarkId = DISPID_SVSLastBookmark + 1,
  2645. DISPID_SVSPhonemeId = DISPID_SVSLastBookmarkId + 1,
  2646. DISPID_SVSVisemeId = DISPID_SVSPhonemeId + 1
  2647.     }  DISPID_SpeechVoiceStatus;
  2648. typedef 
  2649. enum SpeechRunState
  2650.     { SRSEDone = SPRS_DONE,
  2651. SRSEIsSpeaking = SPRS_IS_SPEAKING
  2652.     }  SpeechRunState;
  2653. typedef 
  2654. enum SpeechVisemeType
  2655.     { SVP_0 = 0,
  2656. SVP_1 = SVP_0 + 1,
  2657. SVP_2 = SVP_1 + 1,
  2658. SVP_3 = SVP_2 + 1,
  2659. SVP_4 = SVP_3 + 1,
  2660. SVP_5 = SVP_4 + 1,
  2661. SVP_6 = SVP_5 + 1,
  2662. SVP_7 = SVP_6 + 1,
  2663. SVP_8 = SVP_7 + 1,
  2664. SVP_9 = SVP_8 + 1,
  2665. SVP_10 = SVP_9 + 1,
  2666. SVP_11 = SVP_10 + 1,
  2667. SVP_12 = SVP_11 + 1,
  2668. SVP_13 = SVP_12 + 1,
  2669. SVP_14 = SVP_13 + 1,
  2670. SVP_15 = SVP_14 + 1,
  2671. SVP_16 = SVP_15 + 1,
  2672. SVP_17 = SVP_16 + 1,
  2673. SVP_18 = SVP_17 + 1,
  2674. SVP_19 = SVP_18 + 1,
  2675. SVP_20 = SVP_19 + 1,
  2676. SVP_21 = SVP_20 + 1
  2677.     }  SpeechVisemeType;
  2678. typedef 
  2679. enum SpeechVisemeFeature
  2680.     { SVF_None = 0,
  2681. SVF_Stressed = SPVFEATURE_STRESSED,
  2682. SVF_Emphasis = SPVFEATURE_EMPHASIS
  2683.     }  SpeechVisemeFeature;
  2684. typedef /* [hidden] */ 
  2685. enum DISPID_SpeechVoiceEvent
  2686.     { DISPID_SVEStreamStart = 1,
  2687. DISPID_SVEStreamEnd = DISPID_SVEStreamStart + 1,
  2688. DISPID_SVEVoiceChange = DISPID_SVEStreamEnd + 1,
  2689. DISPID_SVEBookmark = DISPID_SVEVoiceChange + 1,
  2690. DISPID_SVEWord = DISPID_SVEBookmark + 1,
  2691. DISPID_SVEPhoneme = DISPID_SVEWord + 1,
  2692. DISPID_SVESentenceBoundary = DISPID_SVEPhoneme + 1,
  2693. DISPID_SVEViseme = DISPID_SVESentenceBoundary + 1,
  2694. DISPID_SVEAudioLevel = DISPID_SVEViseme + 1,
  2695. DISPID_SVEEnginePrivate = DISPID_SVEAudioLevel + 1
  2696.     }  DISPID_SpeechVoiceEvent;
  2697. typedef /* [hidden] */ 
  2698. enum DISPID_SpeechRecognizer
  2699.     { DISPID_SRRecognizer = 1,
  2700. DISPID_SRAllowAudioInputFormatChangesOnNextSet = DISPID_SRRecognizer + 1,
  2701. DISPID_SRAudioInput = DISPID_SRAllowAudioInputFormatChangesOnNextSet + 1,
  2702. DISPID_SRAudioInputStream = DISPID_SRAudioInput + 1,
  2703. DISPID_SRIsShared = DISPID_SRAudioInputStream + 1,
  2704. DISPID_SRState = DISPID_SRIsShared + 1,
  2705. DISPID_SRStatus = DISPID_SRState + 1,
  2706. DISPID_SRProfile = DISPID_SRStatus + 1,
  2707. DISPID_SREmulateRecognition = DISPID_SRProfile + 1,
  2708. DISPID_SRCreateRecoContext = DISPID_SREmulateRecognition + 1,
  2709. DISPID_SRGetFormat = DISPID_SRCreateRecoContext + 1,
  2710. DISPID_SRSetPropertyNumber = DISPID_SRGetFormat + 1,
  2711. DISPID_SRGetPropertyNumber = DISPID_SRSetPropertyNumber + 1,
  2712. DISPID_SRSetPropertyString = DISPID_SRGetPropertyNumber + 1,
  2713. DISPID_SRGetPropertyString = DISPID_SRSetPropertyString + 1,
  2714. DISPID_SRIsUISupported = DISPID_SRGetPropertyString + 1,
  2715. DISPID_SRDisplayUI = DISPID_SRIsUISupported + 1,
  2716. DISPID_SRGetRecognizers = DISPID_SRDisplayUI + 1,
  2717. DISPID_SVGetAudioInputs = DISPID_SRGetRecognizers + 1,
  2718. DISPID_SVGetProfiles = DISPID_SVGetAudioInputs + 1
  2719.     }  DISPID_SpeechRecognizer;
  2720. typedef 
  2721. enum SpeechRecognizerState
  2722.     { SRSInactive = SPRST_INACTIVE,
  2723. SRSActive = SPRST_ACTIVE,
  2724. SRSActiveAlways = SPRST_ACTIVE_ALWAYS,
  2725. SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE
  2726.     }  SpeechRecognizerState;
  2727. typedef 
  2728. enum SpeechDisplayAttributes
  2729.     { SDA_No_Trailing_Space = 0,
  2730. SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE,
  2731. SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES,
  2732. SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES
  2733.     }  SpeechDisplayAttributes;
  2734. typedef 
  2735. enum SpeechFormatType
  2736.     { SFTInput = SPWF_INPUT,
  2737. SFTSREngine = SPWF_SRENGINE
  2738.     }  SpeechFormatType;
  2739. typedef /* [hidden] */ 
  2740. enum DISPID_SpeechRecognizerStatus
  2741.     { DISPID_SRSAudioStatus = 1,
  2742. DISPID_SRSCurrentStreamPosition = DISPID_SRSAudioStatus + 1,
  2743. DISPID_SRSCurrentStreamNumber = DISPID_SRSCurrentStreamPosition + 1,
  2744. DISPID_SRSNumberOfActiveRules = DISPID_SRSCurrentStreamNumber + 1,
  2745. DISPID_SRSClsidEngine = DISPID_SRSNumberOfActiveRules + 1,
  2746. DISPID_SRSSupportedLanguages = DISPID_SRSClsidEngine + 1
  2747.     }  DISPID_SpeechRecognizerStatus;
  2748. typedef /* [hidden] */ 
  2749. enum DISPID_SpeechRecoContext
  2750.     { DISPID_SRCRecognizer = 1,
  2751. DISPID_SRCAudioInInterferenceStatus = DISPID_SRCRecognizer + 1,
  2752. DISPID_SRCRequestedUIType = DISPID_SRCAudioInInterferenceStatus + 1,
  2753. DISPID_SRCVoice = DISPID_SRCRequestedUIType + 1,
  2754. DISPID_SRAllowVoiceFormatMatchingOnNextSet = DISPID_SRCVoice + 1,
  2755. DISPID_SRCVoicePurgeEvent = DISPID_SRAllowVoiceFormatMatchingOnNextSet + 1,
  2756. DISPID_SRCEventInterests = DISPID_SRCVoicePurgeEvent + 1,
  2757. DISPID_SRCCmdMaxAlternates = DISPID_SRCEventInterests + 1,
  2758. DISPID_SRCState = DISPID_SRCCmdMaxAlternates + 1,
  2759. DISPID_SRCRetainedAudio = DISPID_SRCState + 1,
  2760. DISPID_SRCRetainedAudioFormat = DISPID_SRCRetainedAudio + 1,
  2761. DISPID_SRCPause = DISPID_SRCRetainedAudioFormat + 1,
  2762. DISPID_SRCResume = DISPID_SRCPause + 1,
  2763. DISPID_SRCCreateGrammar = DISPID_SRCResume + 1,
  2764. DISPID_SRCCreateResultFromMemory = DISPID_SRCCreateGrammar + 1,
  2765. DISPID_SRCBookmark = DISPID_SRCCreateResultFromMemory + 1,
  2766. DISPID_SRCSetAdaptationData = DISPID_SRCBookmark + 1
  2767.     }  DISPID_SpeechRecoContext;
  2768. typedef 
  2769. enum SpeechRetainedAudioOptions
  2770.     { SRAONone = SPAO_NONE,
  2771. SRAORetainAudio = SPAO_RETAIN_AUDIO
  2772.     }  SpeechRetainedAudioOptions;
  2773. typedef 
  2774. enum SpeechBookmarkOptions
  2775.     { SBONone = SPBO_NONE,
  2776. SBOPause = SPBO_PAUSE
  2777.     }  SpeechBookmarkOptions;
  2778. typedef 
  2779. enum SpeechInterference
  2780.     { SINone = SPINTERFERENCE_NONE,
  2781. SINoise = SPINTERFERENCE_NOISE,
  2782. SINoSignal = SPINTERFERENCE_NOSIGNAL,
  2783. SITooLoud = SPINTERFERENCE_TOOLOUD,
  2784. SITooQuiet = SPINTERFERENCE_TOOQUIET,
  2785. SITooFast = SPINTERFERENCE_TOOFAST,
  2786. SITooSlow = SPINTERFERENCE_TOOSLOW
  2787.     }  SpeechInterference;
  2788. typedef 
  2789. enum SpeechRecoEvents
  2790.     { SREStreamEnd = 1L << 0,
  2791. SRESoundStart = 1L << 1,
  2792. SRESoundEnd = 1L << 2,
  2793. SREPhraseStart = 1L << 3,
  2794. SRERecognition = 1L << 4,
  2795. SREHypothesis = 1L << 5,
  2796. SREBookmark = 1L << 6,
  2797. SREPropertyNumChange = 1L << 7,
  2798. SREPropertyStringChange = 1L << 8,
  2799. SREFalseRecognition = 1L << 9,
  2800. SREInterference = 1L << 10,
  2801. SRERequestUI = 1L << 11,
  2802. SREStateChange = 1L << 12,
  2803. SREAdaptation = 1L << 13,
  2804. SREStreamStart = 1L << 14,
  2805. SRERecoOtherContext = 1L << 15,
  2806. SREAudioLevel = 1L << 16,
  2807. SREPrivate = 1L << 18,
  2808. SREAllEvents = 0x5ffff
  2809.     }  SpeechRecoEvents;
  2810. typedef 
  2811. enum SpeechRecoContextState
  2812.     { SRCS_Disabled = SPCS_DISABLED,
  2813. SRCS_Enabled = SPCS_ENABLED
  2814.     }  SpeechRecoContextState;
  2815. typedef /* [hidden] */ 
  2816. enum DISPIDSPRG
  2817.     { DISPID_SRGId = 1,
  2818. DISPID_SRGRecoContext = DISPID_SRGId + 1,
  2819. DISPID_SRGState = DISPID_SRGRecoContext + 1,
  2820. DISPID_SRGRules = DISPID_SRGState + 1,
  2821. DISPID_SRGReset = DISPID_SRGRules + 1,
  2822. DISPID_SRGCommit = DISPID_SRGReset + 1,
  2823. DISPID_SRGCmdLoadFromFile = DISPID_SRGCommit + 1,
  2824. DISPID_SRGCmdLoadFromObject = DISPID_SRGCmdLoadFromFile + 1,
  2825. DISPID_SRGCmdLoadFromResource = DISPID_SRGCmdLoadFromObject + 1,
  2826. DISPID_SRGCmdLoadFromMemory = DISPID_SRGCmdLoadFromResource + 1,
  2827. DISPID_SRGCmdLoadFromProprietaryGrammar = DISPID_SRGCmdLoadFromMemory + 1,
  2828. DISPID_SRGCmdSetRuleState = DISPID_SRGCmdLoadFromProprietaryGrammar + 1,
  2829. DISPID_SRGCmdSetRuleIdState = DISPID_SRGCmdSetRuleState + 1,
  2830. DISPID_SRGDictationLoad = DISPID_SRGCmdSetRuleIdState + 1,
  2831. DISPID_SRGDictationUnload = DISPID_SRGDictationLoad + 1,
  2832. DISPID_SRGDictationSetState = DISPID_SRGDictationUnload + 1,
  2833. DISPID_SRGSetWordSequenceData = DISPID_SRGDictationSetState + 1,
  2834. DISPID_SRGSetTextSelection = DISPID_SRGSetWordSequenceData + 1,
  2835. DISPID_SRGIsPronounceable = DISPID_SRGSetTextSelection + 1
  2836.     }  DISPIDSPRG;
  2837. typedef 
  2838. enum SpeechLoadOption
  2839.     { SLOStatic = SPLO_STATIC,
  2840. SLODynamic = SPLO_DYNAMIC
  2841.     }  SpeechLoadOption;
  2842. typedef 
  2843. enum SpeechWordPronounceable
  2844.     { SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
  2845. SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
  2846. SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE
  2847.     }  SpeechWordPronounceable;
  2848. typedef 
  2849. enum SpeechGrammarState
  2850.     { SGSEnabled = SPGS_ENABLED,
  2851. SGSDisabled = SPGS_DISABLED,
  2852. SGSExclusive = SPGS_EXCLUSIVE
  2853.     }  SpeechGrammarState;
  2854. typedef 
  2855. enum SpeechRuleState
  2856.     { SGDSInactive = SPRS_INACTIVE,
  2857. SGDSActive = SPRS_ACTIVE,
  2858. SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE
  2859.     }  SpeechRuleState;
  2860. typedef 
  2861. enum SpeechRuleAttributes
  2862.     { SRATopLevel = SPRAF_TopLevel,
  2863. SRADefaultToActive = SPRAF_Active,
  2864. SRAExport = SPRAF_Export,
  2865. SRAImport = SPRAF_Import,
  2866. SRAInterpreter = SPRAF_Interpreter,
  2867. SRADynamic = SPRAF_Dynamic
  2868.     }  SpeechRuleAttributes;
  2869. typedef 
  2870. enum SpeechGrammarWordType
  2871.     { SGDisplay = SPWT_DISPLAY,
  2872. SGLexical = SPWT_LEXICAL,
  2873. SGPronounciation = SPWT_PRONUNCIATION
  2874.     }  SpeechGrammarWordType;
  2875. typedef /* [hidden] */ 
  2876. enum DISPID_SpeechRecoContextEvents
  2877.     { DISPID_SRCEStartStream = 1,
  2878. DISPID_SRCEEndStream = DISPID_SRCEStartStream + 1,
  2879. DISPID_SRCEBookmark = DISPID_SRCEEndStream + 1,
  2880. DISPID_SRCESoundStart = DISPID_SRCEBookmark + 1,
  2881. DISPID_SRCESoundEnd = DISPID_SRCESoundStart + 1,
  2882. DISPID_SRCEPhraseStart = DISPID_SRCESoundEnd + 1,