Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4558 lines
136 KiB

  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2. /* File created by MIDL compiler version 6.00.0361 */
  3. /* Compiler settings for sapiddk.idl:
  4. Oicf, W1, Zp8, env=Win32 (32b run)
  5. protocol : dce , ms_ext, c_ext
  6. error checks: allocation ref bounds_check enum stub_data
  7. VC __declspec() decoration level:
  8. __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  9. DECLSPEC_UUID(), MIDL_INTERFACE()
  10. */
  11. //@@MIDL_FILE_HEADING( )
  12. #pragma warning( disable: 4049 ) /* more than 64k source lines */
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 440
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __sapiddk_h__
  27. #define __sapiddk_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */
  32. #ifndef __ISpTokenUI_FWD_DEFINED__
  33. #define __ISpTokenUI_FWD_DEFINED__
  34. typedef interface ISpTokenUI ISpTokenUI;
  35. #endif /* __ISpTokenUI_FWD_DEFINED__ */
  36. #ifndef __ISpObjectTokenEnumBuilder_FWD_DEFINED__
  37. #define __ISpObjectTokenEnumBuilder_FWD_DEFINED__
  38. typedef interface ISpObjectTokenEnumBuilder ISpObjectTokenEnumBuilder;
  39. #endif /* __ISpObjectTokenEnumBuilder_FWD_DEFINED__ */
  40. #ifndef __ISpErrorLog_FWD_DEFINED__
  41. #define __ISpErrorLog_FWD_DEFINED__
  42. typedef interface ISpErrorLog ISpErrorLog;
  43. #endif /* __ISpErrorLog_FWD_DEFINED__ */
  44. #ifndef __ISpGrammarCompiler_FWD_DEFINED__
  45. #define __ISpGrammarCompiler_FWD_DEFINED__
  46. typedef interface ISpGrammarCompiler ISpGrammarCompiler;
  47. #endif /* __ISpGrammarCompiler_FWD_DEFINED__ */
  48. #ifndef __ISpGramCompBackend_FWD_DEFINED__
  49. #define __ISpGramCompBackend_FWD_DEFINED__
  50. typedef interface ISpGramCompBackend ISpGramCompBackend;
  51. #endif /* __ISpGramCompBackend_FWD_DEFINED__ */
  52. #ifndef __ISpITNProcessor_FWD_DEFINED__
  53. #define __ISpITNProcessor_FWD_DEFINED__
  54. typedef interface ISpITNProcessor ISpITNProcessor;
  55. #endif /* __ISpITNProcessor_FWD_DEFINED__ */
  56. #ifndef __ISpPhraseBuilder_FWD_DEFINED__
  57. #define __ISpPhraseBuilder_FWD_DEFINED__
  58. typedef interface ISpPhraseBuilder ISpPhraseBuilder;
  59. #endif /* __ISpPhraseBuilder_FWD_DEFINED__ */
  60. #ifndef __ISpThreadControl_FWD_DEFINED__
  61. #define __ISpThreadControl_FWD_DEFINED__
  62. typedef interface ISpThreadControl ISpThreadControl;
  63. #endif /* __ISpThreadControl_FWD_DEFINED__ */
  64. #ifndef __ISpTaskManager_FWD_DEFINED__
  65. #define __ISpTaskManager_FWD_DEFINED__
  66. typedef interface ISpTaskManager ISpTaskManager;
  67. #endif /* __ISpTaskManager_FWD_DEFINED__ */
  68. #ifndef __ISpTTSEngineSite_FWD_DEFINED__
  69. #define __ISpTTSEngineSite_FWD_DEFINED__
  70. typedef interface ISpTTSEngineSite ISpTTSEngineSite;
  71. #endif /* __ISpTTSEngineSite_FWD_DEFINED__ */
  72. #ifndef __ISpTTSEngine_FWD_DEFINED__
  73. #define __ISpTTSEngine_FWD_DEFINED__
  74. typedef interface ISpTTSEngine ISpTTSEngine;
  75. #endif /* __ISpTTSEngine_FWD_DEFINED__ */
  76. #ifndef __ISpCFGInterpreterSite_FWD_DEFINED__
  77. #define __ISpCFGInterpreterSite_FWD_DEFINED__
  78. typedef interface ISpCFGInterpreterSite ISpCFGInterpreterSite;
  79. #endif /* __ISpCFGInterpreterSite_FWD_DEFINED__ */
  80. #ifndef __ISpCFGInterpreter_FWD_DEFINED__
  81. #define __ISpCFGInterpreter_FWD_DEFINED__
  82. typedef interface ISpCFGInterpreter ISpCFGInterpreter;
  83. #endif /* __ISpCFGInterpreter_FWD_DEFINED__ */
  84. #ifndef __ISpSREngineSite_FWD_DEFINED__
  85. #define __ISpSREngineSite_FWD_DEFINED__
  86. typedef interface ISpSREngineSite ISpSREngineSite;
  87. #endif /* __ISpSREngineSite_FWD_DEFINED__ */
  88. #ifndef __ISpSREngine_FWD_DEFINED__
  89. #define __ISpSREngine_FWD_DEFINED__
  90. typedef interface ISpSREngine ISpSREngine;
  91. #endif /* __ISpSREngine_FWD_DEFINED__ */
  92. #ifndef __ISpSRAlternates_FWD_DEFINED__
  93. #define __ISpSRAlternates_FWD_DEFINED__
  94. typedef interface ISpSRAlternates ISpSRAlternates;
  95. #endif /* __ISpSRAlternates_FWD_DEFINED__ */
  96. #ifndef ___ISpPrivateEngineCall_FWD_DEFINED__
  97. #define ___ISpPrivateEngineCall_FWD_DEFINED__
  98. typedef interface _ISpPrivateEngineCall _ISpPrivateEngineCall;
  99. #endif /* ___ISpPrivateEngineCall_FWD_DEFINED__ */
  100. #ifndef __SpDataKey_FWD_DEFINED__
  101. #define __SpDataKey_FWD_DEFINED__
  102. #ifdef __cplusplus
  103. typedef class SpDataKey SpDataKey;
  104. #else
  105. typedef struct SpDataKey SpDataKey;
  106. #endif /* __cplusplus */
  107. #endif /* __SpDataKey_FWD_DEFINED__ */
  108. #ifndef __SpObjectTokenEnum_FWD_DEFINED__
  109. #define __SpObjectTokenEnum_FWD_DEFINED__
  110. #ifdef __cplusplus
  111. typedef class SpObjectTokenEnum SpObjectTokenEnum;
  112. #else
  113. typedef struct SpObjectTokenEnum SpObjectTokenEnum;
  114. #endif /* __cplusplus */
  115. #endif /* __SpObjectTokenEnum_FWD_DEFINED__ */
  116. #ifndef __SpPhraseBuilder_FWD_DEFINED__
  117. #define __SpPhraseBuilder_FWD_DEFINED__
  118. #ifdef __cplusplus
  119. typedef class SpPhraseBuilder SpPhraseBuilder;
  120. #else
  121. typedef struct SpPhraseBuilder SpPhraseBuilder;
  122. #endif /* __cplusplus */
  123. #endif /* __SpPhraseBuilder_FWD_DEFINED__ */
  124. #ifndef __SpITNProcessor_FWD_DEFINED__
  125. #define __SpITNProcessor_FWD_DEFINED__
  126. #ifdef __cplusplus
  127. typedef class SpITNProcessor SpITNProcessor;
  128. #else
  129. typedef struct SpITNProcessor SpITNProcessor;
  130. #endif /* __cplusplus */
  131. #endif /* __SpITNProcessor_FWD_DEFINED__ */
  132. #ifndef __SpGrammarCompiler_FWD_DEFINED__
  133. #define __SpGrammarCompiler_FWD_DEFINED__
  134. #ifdef __cplusplus
  135. typedef class SpGrammarCompiler SpGrammarCompiler;
  136. #else
  137. typedef struct SpGrammarCompiler SpGrammarCompiler;
  138. #endif /* __cplusplus */
  139. #endif /* __SpGrammarCompiler_FWD_DEFINED__ */
  140. #ifndef __SpGramCompBackend_FWD_DEFINED__
  141. #define __SpGramCompBackend_FWD_DEFINED__
  142. #ifdef __cplusplus
  143. typedef class SpGramCompBackend SpGramCompBackend;
  144. #else
  145. typedef struct SpGramCompBackend SpGramCompBackend;
  146. #endif /* __cplusplus */
  147. #endif /* __SpGramCompBackend_FWD_DEFINED__ */
  148. /* header files for imported files */
  149. #include "oaidl.h"
  150. #include "ocidl.h"
  151. #include "sapi.h"
  152. #ifdef __cplusplus
  153. extern "C"{
  154. #endif
  155. void * __RPC_USER MIDL_user_allocate(size_t);
  156. void __RPC_USER MIDL_user_free( void * );
  157. /* interface __MIDL_itf_sapiddk_0000 */
  158. /* [local] */
  159. #define SPRECOEXTENSION L"RecoExtension"
  160. #define SPALTERNATESCLSID L"AlternatesCLSID"
  161. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0000_v0_0_c_ifspec;
  162. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0000_v0_0_s_ifspec;
  163. #ifndef __ISpTokenUI_INTERFACE_DEFINED__
  164. #define __ISpTokenUI_INTERFACE_DEFINED__
  165. /* interface ISpTokenUI */
  166. /* [restricted][unique][helpstring][uuid][object] */
  167. EXTERN_C const IID IID_ISpTokenUI;
  168. #if defined(__cplusplus) && !defined(CINTERFACE)
  169. MIDL_INTERFACE("F8E690F0-39CB-4843-B8D7-C84696E1119D")
  170. ISpTokenUI : public IUnknown
  171. {
  172. public:
  173. virtual /* [local] */ HRESULT STDMETHODCALLTYPE IsUISupported(
  174. /* [in] */ const WCHAR *pszTypeOfUI,
  175. /* [in] */ void *pvExtraData,
  176. /* [in] */ ULONG cbExtraData,
  177. /* [in] */ IUnknown *punkObject,
  178. /* [out] */ BOOL *pfSupported) = 0;
  179. virtual /* [local] */ HRESULT STDMETHODCALLTYPE DisplayUI(
  180. /* [in] */ HWND hwndParent,
  181. /* [in] */ const WCHAR *pszTitle,
  182. /* [in] */ const WCHAR *pszTypeOfUI,
  183. /* [in] */ void *pvExtraData,
  184. /* [in] */ ULONG cbExtraData,
  185. /* [in] */ ISpObjectToken *pToken,
  186. /* [in] */ IUnknown *punkObject) = 0;
  187. };
  188. #else /* C style interface */
  189. typedef struct ISpTokenUIVtbl
  190. {
  191. BEGIN_INTERFACE
  192. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  193. ISpTokenUI * This,
  194. /* [in] */ REFIID riid,
  195. /* [iid_is][out] */ void **ppvObject);
  196. ULONG ( STDMETHODCALLTYPE *AddRef )(
  197. ISpTokenUI * This);
  198. ULONG ( STDMETHODCALLTYPE *Release )(
  199. ISpTokenUI * This);
  200. /* [local] */ HRESULT ( STDMETHODCALLTYPE *IsUISupported )(
  201. ISpTokenUI * This,
  202. /* [in] */ const WCHAR *pszTypeOfUI,
  203. /* [in] */ void *pvExtraData,
  204. /* [in] */ ULONG cbExtraData,
  205. /* [in] */ IUnknown *punkObject,
  206. /* [out] */ BOOL *pfSupported);
  207. /* [local] */ HRESULT ( STDMETHODCALLTYPE *DisplayUI )(
  208. ISpTokenUI * This,
  209. /* [in] */ HWND hwndParent,
  210. /* [in] */ const WCHAR *pszTitle,
  211. /* [in] */ const WCHAR *pszTypeOfUI,
  212. /* [in] */ void *pvExtraData,
  213. /* [in] */ ULONG cbExtraData,
  214. /* [in] */ ISpObjectToken *pToken,
  215. /* [in] */ IUnknown *punkObject);
  216. END_INTERFACE
  217. } ISpTokenUIVtbl;
  218. interface ISpTokenUI
  219. {
  220. CONST_VTBL struct ISpTokenUIVtbl *lpVtbl;
  221. };
  222. #ifdef COBJMACROS
  223. #define ISpTokenUI_QueryInterface(This,riid,ppvObject) \
  224. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  225. #define ISpTokenUI_AddRef(This) \
  226. (This)->lpVtbl -> AddRef(This)
  227. #define ISpTokenUI_Release(This) \
  228. (This)->lpVtbl -> Release(This)
  229. #define ISpTokenUI_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) \
  230. (This)->lpVtbl -> IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
  231. #define ISpTokenUI_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,pToken,punkObject) \
  232. (This)->lpVtbl -> DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,pToken,punkObject)
  233. #endif /* COBJMACROS */
  234. #endif /* C style interface */
  235. /* [local] */ HRESULT STDMETHODCALLTYPE ISpTokenUI_IsUISupported_Proxy(
  236. ISpTokenUI * This,
  237. /* [in] */ const WCHAR *pszTypeOfUI,
  238. /* [in] */ void *pvExtraData,
  239. /* [in] */ ULONG cbExtraData,
  240. /* [in] */ IUnknown *punkObject,
  241. /* [out] */ BOOL *pfSupported);
  242. void __RPC_STUB ISpTokenUI_IsUISupported_Stub(
  243. IRpcStubBuffer *This,
  244. IRpcChannelBuffer *_pRpcChannelBuffer,
  245. PRPC_MESSAGE _pRpcMessage,
  246. DWORD *_pdwStubPhase);
  247. /* [local] */ HRESULT STDMETHODCALLTYPE ISpTokenUI_DisplayUI_Proxy(
  248. ISpTokenUI * This,
  249. /* [in] */ HWND hwndParent,
  250. /* [in] */ const WCHAR *pszTitle,
  251. /* [in] */ const WCHAR *pszTypeOfUI,
  252. /* [in] */ void *pvExtraData,
  253. /* [in] */ ULONG cbExtraData,
  254. /* [in] */ ISpObjectToken *pToken,
  255. /* [in] */ IUnknown *punkObject);
  256. void __RPC_STUB ISpTokenUI_DisplayUI_Stub(
  257. IRpcStubBuffer *This,
  258. IRpcChannelBuffer *_pRpcChannelBuffer,
  259. PRPC_MESSAGE _pRpcMessage,
  260. DWORD *_pdwStubPhase);
  261. #endif /* __ISpTokenUI_INTERFACE_DEFINED__ */
  262. #ifndef __ISpObjectTokenEnumBuilder_INTERFACE_DEFINED__
  263. #define __ISpObjectTokenEnumBuilder_INTERFACE_DEFINED__
  264. /* interface ISpObjectTokenEnumBuilder */
  265. /* [restricted][unique][helpstring][uuid][object] */
  266. EXTERN_C const IID IID_ISpObjectTokenEnumBuilder;
  267. #if defined(__cplusplus) && !defined(CINTERFACE)
  268. MIDL_INTERFACE("06B64F9F-7FDA-11d2-B4F2-00C04F797396")
  269. ISpObjectTokenEnumBuilder : public IEnumSpObjectTokens
  270. {
  271. public:
  272. virtual HRESULT STDMETHODCALLTYPE SetAttribs(
  273. const WCHAR *pszReqAttribs,
  274. const WCHAR *pszOptAttribs) = 0;
  275. virtual HRESULT STDMETHODCALLTYPE AddTokens(
  276. ULONG cTokens,
  277. ISpObjectToken **pToken) = 0;
  278. virtual HRESULT STDMETHODCALLTYPE AddTokensFromDataKey(
  279. ISpDataKey *pDataKey,
  280. const WCHAR *pszSubKey,
  281. const WCHAR *pszCategoryId) = 0;
  282. virtual HRESULT STDMETHODCALLTYPE AddTokensFromTokenEnum(
  283. IEnumSpObjectTokens *pTokenEnum) = 0;
  284. virtual HRESULT STDMETHODCALLTYPE Sort(
  285. const WCHAR *pszTokenIdToListFirst) = 0;
  286. };
  287. #else /* C style interface */
  288. typedef struct ISpObjectTokenEnumBuilderVtbl
  289. {
  290. BEGIN_INTERFACE
  291. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  292. ISpObjectTokenEnumBuilder * This,
  293. /* [in] */ REFIID riid,
  294. /* [iid_is][out] */ void **ppvObject);
  295. ULONG ( STDMETHODCALLTYPE *AddRef )(
  296. ISpObjectTokenEnumBuilder * This);
  297. ULONG ( STDMETHODCALLTYPE *Release )(
  298. ISpObjectTokenEnumBuilder * This);
  299. HRESULT ( STDMETHODCALLTYPE *Next )(
  300. ISpObjectTokenEnumBuilder * This,
  301. /* [in] */ ULONG celt,
  302. /* [length_is][size_is][out] */ ISpObjectToken **pelt,
  303. /* [out] */ ULONG *pceltFetched);
  304. HRESULT ( STDMETHODCALLTYPE *Skip )(
  305. ISpObjectTokenEnumBuilder * This,
  306. /* [in] */ ULONG celt);
  307. HRESULT ( STDMETHODCALLTYPE *Reset )(
  308. ISpObjectTokenEnumBuilder * This);
  309. HRESULT ( STDMETHODCALLTYPE *Clone )(
  310. ISpObjectTokenEnumBuilder * This,
  311. /* [out] */ IEnumSpObjectTokens **ppEnum);
  312. HRESULT ( STDMETHODCALLTYPE *Item )(
  313. ISpObjectTokenEnumBuilder * This,
  314. /* [in] */ ULONG Index,
  315. /* [out] */ ISpObjectToken **ppToken);
  316. HRESULT ( STDMETHODCALLTYPE *GetCount )(
  317. ISpObjectTokenEnumBuilder * This,
  318. /* [out] */ ULONG *pCount);
  319. HRESULT ( STDMETHODCALLTYPE *SetAttribs )(
  320. ISpObjectTokenEnumBuilder * This,
  321. const WCHAR *pszReqAttribs,
  322. const WCHAR *pszOptAttribs);
  323. HRESULT ( STDMETHODCALLTYPE *AddTokens )(
  324. ISpObjectTokenEnumBuilder * This,
  325. ULONG cTokens,
  326. ISpObjectToken **pToken);
  327. HRESULT ( STDMETHODCALLTYPE *AddTokensFromDataKey )(
  328. ISpObjectTokenEnumBuilder * This,
  329. ISpDataKey *pDataKey,
  330. const WCHAR *pszSubKey,
  331. const WCHAR *pszCategoryId);
  332. HRESULT ( STDMETHODCALLTYPE *AddTokensFromTokenEnum )(
  333. ISpObjectTokenEnumBuilder * This,
  334. IEnumSpObjectTokens *pTokenEnum);
  335. HRESULT ( STDMETHODCALLTYPE *Sort )(
  336. ISpObjectTokenEnumBuilder * This,
  337. const WCHAR *pszTokenIdToListFirst);
  338. END_INTERFACE
  339. } ISpObjectTokenEnumBuilderVtbl;
  340. interface ISpObjectTokenEnumBuilder
  341. {
  342. CONST_VTBL struct ISpObjectTokenEnumBuilderVtbl *lpVtbl;
  343. };
  344. #ifdef COBJMACROS
  345. #define ISpObjectTokenEnumBuilder_QueryInterface(This,riid,ppvObject) \
  346. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  347. #define ISpObjectTokenEnumBuilder_AddRef(This) \
  348. (This)->lpVtbl -> AddRef(This)
  349. #define ISpObjectTokenEnumBuilder_Release(This) \
  350. (This)->lpVtbl -> Release(This)
  351. #define ISpObjectTokenEnumBuilder_Next(This,celt,pelt,pceltFetched) \
  352. (This)->lpVtbl -> Next(This,celt,pelt,pceltFetched)
  353. #define ISpObjectTokenEnumBuilder_Skip(This,celt) \
  354. (This)->lpVtbl -> Skip(This,celt)
  355. #define ISpObjectTokenEnumBuilder_Reset(This) \
  356. (This)->lpVtbl -> Reset(This)
  357. #define ISpObjectTokenEnumBuilder_Clone(This,ppEnum) \
  358. (This)->lpVtbl -> Clone(This,ppEnum)
  359. #define ISpObjectTokenEnumBuilder_Item(This,Index,ppToken) \
  360. (This)->lpVtbl -> Item(This,Index,ppToken)
  361. #define ISpObjectTokenEnumBuilder_GetCount(This,pCount) \
  362. (This)->lpVtbl -> GetCount(This,pCount)
  363. #define ISpObjectTokenEnumBuilder_SetAttribs(This,pszReqAttribs,pszOptAttribs) \
  364. (This)->lpVtbl -> SetAttribs(This,pszReqAttribs,pszOptAttribs)
  365. #define ISpObjectTokenEnumBuilder_AddTokens(This,cTokens,pToken) \
  366. (This)->lpVtbl -> AddTokens(This,cTokens,pToken)
  367. #define ISpObjectTokenEnumBuilder_AddTokensFromDataKey(This,pDataKey,pszSubKey,pszCategoryId) \
  368. (This)->lpVtbl -> AddTokensFromDataKey(This,pDataKey,pszSubKey,pszCategoryId)
  369. #define ISpObjectTokenEnumBuilder_AddTokensFromTokenEnum(This,pTokenEnum) \
  370. (This)->lpVtbl -> AddTokensFromTokenEnum(This,pTokenEnum)
  371. #define ISpObjectTokenEnumBuilder_Sort(This,pszTokenIdToListFirst) \
  372. (This)->lpVtbl -> Sort(This,pszTokenIdToListFirst)
  373. #endif /* COBJMACROS */
  374. #endif /* C style interface */
  375. HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_SetAttribs_Proxy(
  376. ISpObjectTokenEnumBuilder * This,
  377. const WCHAR *pszReqAttribs,
  378. const WCHAR *pszOptAttribs);
  379. void __RPC_STUB ISpObjectTokenEnumBuilder_SetAttribs_Stub(
  380. IRpcStubBuffer *This,
  381. IRpcChannelBuffer *_pRpcChannelBuffer,
  382. PRPC_MESSAGE _pRpcMessage,
  383. DWORD *_pdwStubPhase);
  384. HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_AddTokens_Proxy(
  385. ISpObjectTokenEnumBuilder * This,
  386. ULONG cTokens,
  387. ISpObjectToken **pToken);
  388. void __RPC_STUB ISpObjectTokenEnumBuilder_AddTokens_Stub(
  389. IRpcStubBuffer *This,
  390. IRpcChannelBuffer *_pRpcChannelBuffer,
  391. PRPC_MESSAGE _pRpcMessage,
  392. DWORD *_pdwStubPhase);
  393. HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_AddTokensFromDataKey_Proxy(
  394. ISpObjectTokenEnumBuilder * This,
  395. ISpDataKey *pDataKey,
  396. const WCHAR *pszSubKey,
  397. const WCHAR *pszCategoryId);
  398. void __RPC_STUB ISpObjectTokenEnumBuilder_AddTokensFromDataKey_Stub(
  399. IRpcStubBuffer *This,
  400. IRpcChannelBuffer *_pRpcChannelBuffer,
  401. PRPC_MESSAGE _pRpcMessage,
  402. DWORD *_pdwStubPhase);
  403. HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_AddTokensFromTokenEnum_Proxy(
  404. ISpObjectTokenEnumBuilder * This,
  405. IEnumSpObjectTokens *pTokenEnum);
  406. void __RPC_STUB ISpObjectTokenEnumBuilder_AddTokensFromTokenEnum_Stub(
  407. IRpcStubBuffer *This,
  408. IRpcChannelBuffer *_pRpcChannelBuffer,
  409. PRPC_MESSAGE _pRpcMessage,
  410. DWORD *_pdwStubPhase);
  411. HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_Sort_Proxy(
  412. ISpObjectTokenEnumBuilder * This,
  413. const WCHAR *pszTokenIdToListFirst);
  414. void __RPC_STUB ISpObjectTokenEnumBuilder_Sort_Stub(
  415. IRpcStubBuffer *This,
  416. IRpcChannelBuffer *_pRpcChannelBuffer,
  417. PRPC_MESSAGE _pRpcMessage,
  418. DWORD *_pdwStubPhase);
  419. #endif /* __ISpObjectTokenEnumBuilder_INTERFACE_DEFINED__ */
  420. /* interface __MIDL_itf_sapiddk_0345 */
  421. /* [local] */
  422. #if 0
  423. typedef void *SPWORDHANDLE;
  424. typedef void *SPRULEHANDLE;
  425. typedef void *SPGRAMMARHANDLE;
  426. typedef void *SPRECOCONTEXTHANDLE;
  427. typedef void *SPPHRASERULEHANDLE;
  428. typedef void *SPPHRASEPROPERTYHANDLE;
  429. typedef void *SPTRANSITIONID;
  430. #else
  431. DECLARE_HANDLE(SPWORDHANDLE);
  432. DECLARE_HANDLE(SPRULEHANDLE);
  433. DECLARE_HANDLE(SPGRAMMARHANDLE);
  434. DECLARE_HANDLE(SPRECOCONTEXTHANDLE);
  435. DECLARE_HANDLE(SPPHRASERULEHANDLE);
  436. DECLARE_HANDLE(SPPHRASEPROPERTYHANDLE);
  437. DECLARE_HANDLE(SPTRANSITIONID);
  438. #endif
  439. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0345_v0_0_c_ifspec;
  440. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0345_v0_0_s_ifspec;
  441. #ifndef __ISpErrorLog_INTERFACE_DEFINED__
  442. #define __ISpErrorLog_INTERFACE_DEFINED__
  443. /* interface ISpErrorLog */
  444. /* [restricted][unique][helpstring][uuid][object] */
  445. EXTERN_C const IID IID_ISpErrorLog;
  446. #if defined(__cplusplus) && !defined(CINTERFACE)
  447. MIDL_INTERFACE("F4711347-E608-11d2-A086-00C04F8EF9B5")
  448. ISpErrorLog : public IUnknown
  449. {
  450. public:
  451. virtual HRESULT STDMETHODCALLTYPE AddError(
  452. const long lLineNumber,
  453. HRESULT hr,
  454. const WCHAR *pszDescription,
  455. const WCHAR *pszHelpFile,
  456. DWORD dwHelpContext) = 0;
  457. };
  458. #else /* C style interface */
  459. typedef struct ISpErrorLogVtbl
  460. {
  461. BEGIN_INTERFACE
  462. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  463. ISpErrorLog * This,
  464. /* [in] */ REFIID riid,
  465. /* [iid_is][out] */ void **ppvObject);
  466. ULONG ( STDMETHODCALLTYPE *AddRef )(
  467. ISpErrorLog * This);
  468. ULONG ( STDMETHODCALLTYPE *Release )(
  469. ISpErrorLog * This);
  470. HRESULT ( STDMETHODCALLTYPE *AddError )(
  471. ISpErrorLog * This,
  472. const long lLineNumber,
  473. HRESULT hr,
  474. const WCHAR *pszDescription,
  475. const WCHAR *pszHelpFile,
  476. DWORD dwHelpContext);
  477. END_INTERFACE
  478. } ISpErrorLogVtbl;
  479. interface ISpErrorLog
  480. {
  481. CONST_VTBL struct ISpErrorLogVtbl *lpVtbl;
  482. };
  483. #ifdef COBJMACROS
  484. #define ISpErrorLog_QueryInterface(This,riid,ppvObject) \
  485. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  486. #define ISpErrorLog_AddRef(This) \
  487. (This)->lpVtbl -> AddRef(This)
  488. #define ISpErrorLog_Release(This) \
  489. (This)->lpVtbl -> Release(This)
  490. #define ISpErrorLog_AddError(This,lLineNumber,hr,pszDescription,pszHelpFile,dwHelpContext) \
  491. (This)->lpVtbl -> AddError(This,lLineNumber,hr,pszDescription,pszHelpFile,dwHelpContext)
  492. #endif /* COBJMACROS */
  493. #endif /* C style interface */
  494. HRESULT STDMETHODCALLTYPE ISpErrorLog_AddError_Proxy(
  495. ISpErrorLog * This,
  496. const long lLineNumber,
  497. HRESULT hr,
  498. const WCHAR *pszDescription,
  499. const WCHAR *pszHelpFile,
  500. DWORD dwHelpContext);
  501. void __RPC_STUB ISpErrorLog_AddError_Stub(
  502. IRpcStubBuffer *This,
  503. IRpcChannelBuffer *_pRpcChannelBuffer,
  504. PRPC_MESSAGE _pRpcMessage,
  505. DWORD *_pdwStubPhase);
  506. #endif /* __ISpErrorLog_INTERFACE_DEFINED__ */
  507. #ifndef __ISpGrammarCompiler_INTERFACE_DEFINED__
  508. #define __ISpGrammarCompiler_INTERFACE_DEFINED__
  509. /* interface ISpGrammarCompiler */
  510. /* [restricted][unique][helpstring][uuid][object] */
  511. EXTERN_C const IID IID_ISpGrammarCompiler;
  512. #if defined(__cplusplus) && !defined(CINTERFACE)
  513. MIDL_INTERFACE("B1E29D58-A675-11D2-8302-00C04F8EE6C0")
  514. ISpGrammarCompiler : public IUnknown
  515. {
  516. public:
  517. virtual HRESULT STDMETHODCALLTYPE CompileStream(
  518. IStream *pSource,
  519. IStream *pDest,
  520. IStream *pHeader,
  521. IUnknown *pReserved,
  522. ISpErrorLog *pErrorLog,
  523. /* [in] */ DWORD dwFlags) = 0;
  524. };
  525. #else /* C style interface */
  526. typedef struct ISpGrammarCompilerVtbl
  527. {
  528. BEGIN_INTERFACE
  529. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  530. ISpGrammarCompiler * This,
  531. /* [in] */ REFIID riid,
  532. /* [iid_is][out] */ void **ppvObject);
  533. ULONG ( STDMETHODCALLTYPE *AddRef )(
  534. ISpGrammarCompiler * This);
  535. ULONG ( STDMETHODCALLTYPE *Release )(
  536. ISpGrammarCompiler * This);
  537. HRESULT ( STDMETHODCALLTYPE *CompileStream )(
  538. ISpGrammarCompiler * This,
  539. IStream *pSource,
  540. IStream *pDest,
  541. IStream *pHeader,
  542. IUnknown *pReserved,
  543. ISpErrorLog *pErrorLog,
  544. /* [in] */ DWORD dwFlags);
  545. END_INTERFACE
  546. } ISpGrammarCompilerVtbl;
  547. interface ISpGrammarCompiler
  548. {
  549. CONST_VTBL struct ISpGrammarCompilerVtbl *lpVtbl;
  550. };
  551. #ifdef COBJMACROS
  552. #define ISpGrammarCompiler_QueryInterface(This,riid,ppvObject) \
  553. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  554. #define ISpGrammarCompiler_AddRef(This) \
  555. (This)->lpVtbl -> AddRef(This)
  556. #define ISpGrammarCompiler_Release(This) \
  557. (This)->lpVtbl -> Release(This)
  558. #define ISpGrammarCompiler_CompileStream(This,pSource,pDest,pHeader,pReserved,pErrorLog,dwFlags) \
  559. (This)->lpVtbl -> CompileStream(This,pSource,pDest,pHeader,pReserved,pErrorLog,dwFlags)
  560. #endif /* COBJMACROS */
  561. #endif /* C style interface */
  562. HRESULT STDMETHODCALLTYPE ISpGrammarCompiler_CompileStream_Proxy(
  563. ISpGrammarCompiler * This,
  564. IStream *pSource,
  565. IStream *pDest,
  566. IStream *pHeader,
  567. IUnknown *pReserved,
  568. ISpErrorLog *pErrorLog,
  569. /* [in] */ DWORD dwFlags);
  570. void __RPC_STUB ISpGrammarCompiler_CompileStream_Stub(
  571. IRpcStubBuffer *This,
  572. IRpcChannelBuffer *_pRpcChannelBuffer,
  573. PRPC_MESSAGE _pRpcMessage,
  574. DWORD *_pdwStubPhase);
  575. #endif /* __ISpGrammarCompiler_INTERFACE_DEFINED__ */
  576. #ifndef __ISpGramCompBackend_INTERFACE_DEFINED__
  577. #define __ISpGramCompBackend_INTERFACE_DEFINED__
  578. /* interface ISpGramCompBackend */
  579. /* [restricted][unique][helpstring][uuid][object] */
  580. EXTERN_C const IID IID_ISpGramCompBackend;
  581. #if defined(__cplusplus) && !defined(CINTERFACE)
  582. MIDL_INTERFACE("3DDCA27C-665C-4786-9F97-8C90C3488B61")
  583. ISpGramCompBackend : public ISpGrammarBuilder
  584. {
  585. public:
  586. virtual HRESULT STDMETHODCALLTYPE SetSaveObjects(
  587. IStream *pStream,
  588. ISpErrorLog *pErrorLog) = 0;
  589. virtual HRESULT STDMETHODCALLTYPE InitFromBinaryGrammar(
  590. const SPBINARYGRAMMAR *pBinaryData) = 0;
  591. };
  592. #else /* C style interface */
  593. typedef struct ISpGramCompBackendVtbl
  594. {
  595. BEGIN_INTERFACE
  596. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  597. ISpGramCompBackend * This,
  598. /* [in] */ REFIID riid,
  599. /* [iid_is][out] */ void **ppvObject);
  600. ULONG ( STDMETHODCALLTYPE *AddRef )(
  601. ISpGramCompBackend * This);
  602. ULONG ( STDMETHODCALLTYPE *Release )(
  603. ISpGramCompBackend * This);
  604. HRESULT ( STDMETHODCALLTYPE *ResetGrammar )(
  605. ISpGramCompBackend * This,
  606. /* [in] */ WORD NewLanguage);
  607. HRESULT ( STDMETHODCALLTYPE *GetRule )(
  608. ISpGramCompBackend * This,
  609. /* [in] */ const WCHAR *pszRuleName,
  610. /* [in] */ DWORD dwRuleId,
  611. /* [in] */ DWORD dwAttributes,
  612. /* [in] */ BOOL fCreateIfNotExist,
  613. /* [out] */ SPSTATEHANDLE *phInitialState);
  614. HRESULT ( STDMETHODCALLTYPE *ClearRule )(
  615. ISpGramCompBackend * This,
  616. SPSTATEHANDLE hState);
  617. HRESULT ( STDMETHODCALLTYPE *CreateNewState )(
  618. ISpGramCompBackend * This,
  619. SPSTATEHANDLE hState,
  620. SPSTATEHANDLE *phState);
  621. HRESULT ( STDMETHODCALLTYPE *AddWordTransition )(
  622. ISpGramCompBackend * This,
  623. SPSTATEHANDLE hFromState,
  624. SPSTATEHANDLE hToState,
  625. const WCHAR *psz,
  626. const WCHAR *pszSeparators,
  627. SPGRAMMARWORDTYPE eWordType,
  628. float Weight,
  629. const SPPROPERTYINFO *pPropInfo);
  630. HRESULT ( STDMETHODCALLTYPE *AddRuleTransition )(
  631. ISpGramCompBackend * This,
  632. SPSTATEHANDLE hFromState,
  633. SPSTATEHANDLE hToState,
  634. SPSTATEHANDLE hRule,
  635. float Weight,
  636. const SPPROPERTYINFO *pPropInfo);
  637. HRESULT ( STDMETHODCALLTYPE *AddResource )(
  638. ISpGramCompBackend * This,
  639. /* [in] */ SPSTATEHANDLE hRuleState,
  640. /* [in] */ const WCHAR *pszResourceName,
  641. /* [in] */ const WCHAR *pszResourceValue);
  642. HRESULT ( STDMETHODCALLTYPE *Commit )(
  643. ISpGramCompBackend * This,
  644. DWORD dwReserved);
  645. HRESULT ( STDMETHODCALLTYPE *SetSaveObjects )(
  646. ISpGramCompBackend * This,
  647. IStream *pStream,
  648. ISpErrorLog *pErrorLog);
  649. HRESULT ( STDMETHODCALLTYPE *InitFromBinaryGrammar )(
  650. ISpGramCompBackend * This,
  651. const SPBINARYGRAMMAR *pBinaryData);
  652. END_INTERFACE
  653. } ISpGramCompBackendVtbl;
  654. interface ISpGramCompBackend
  655. {
  656. CONST_VTBL struct ISpGramCompBackendVtbl *lpVtbl;
  657. };
  658. #ifdef COBJMACROS
  659. #define ISpGramCompBackend_QueryInterface(This,riid,ppvObject) \
  660. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  661. #define ISpGramCompBackend_AddRef(This) \
  662. (This)->lpVtbl -> AddRef(This)
  663. #define ISpGramCompBackend_Release(This) \
  664. (This)->lpVtbl -> Release(This)
  665. #define ISpGramCompBackend_ResetGrammar(This,NewLanguage) \
  666. (This)->lpVtbl -> ResetGrammar(This,NewLanguage)
  667. #define ISpGramCompBackend_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) \
  668. (This)->lpVtbl -> GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
  669. #define ISpGramCompBackend_ClearRule(This,hState) \
  670. (This)->lpVtbl -> ClearRule(This,hState)
  671. #define ISpGramCompBackend_CreateNewState(This,hState,phState) \
  672. (This)->lpVtbl -> CreateNewState(This,hState,phState)
  673. #define ISpGramCompBackend_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) \
  674. (This)->lpVtbl -> AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
  675. #define ISpGramCompBackend_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) \
  676. (This)->lpVtbl -> AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
  677. #define ISpGramCompBackend_AddResource(This,hRuleState,pszResourceName,pszResourceValue) \
  678. (This)->lpVtbl -> AddResource(This,hRuleState,pszResourceName,pszResourceValue)
  679. #define ISpGramCompBackend_Commit(This,dwReserved) \
  680. (This)->lpVtbl -> Commit(This,dwReserved)
  681. #define ISpGramCompBackend_SetSaveObjects(This,pStream,pErrorLog) \
  682. (This)->lpVtbl -> SetSaveObjects(This,pStream,pErrorLog)
  683. #define ISpGramCompBackend_InitFromBinaryGrammar(This,pBinaryData) \
  684. (This)->lpVtbl -> InitFromBinaryGrammar(This,pBinaryData)
  685. #endif /* COBJMACROS */
  686. #endif /* C style interface */
  687. HRESULT STDMETHODCALLTYPE ISpGramCompBackend_SetSaveObjects_Proxy(
  688. ISpGramCompBackend * This,
  689. IStream *pStream,
  690. ISpErrorLog *pErrorLog);
  691. void __RPC_STUB ISpGramCompBackend_SetSaveObjects_Stub(
  692. IRpcStubBuffer *This,
  693. IRpcChannelBuffer *_pRpcChannelBuffer,
  694. PRPC_MESSAGE _pRpcMessage,
  695. DWORD *_pdwStubPhase);
  696. HRESULT STDMETHODCALLTYPE ISpGramCompBackend_InitFromBinaryGrammar_Proxy(
  697. ISpGramCompBackend * This,
  698. const SPBINARYGRAMMAR *pBinaryData);
  699. void __RPC_STUB ISpGramCompBackend_InitFromBinaryGrammar_Stub(
  700. IRpcStubBuffer *This,
  701. IRpcChannelBuffer *_pRpcChannelBuffer,
  702. PRPC_MESSAGE _pRpcMessage,
  703. DWORD *_pdwStubPhase);
  704. #endif /* __ISpGramCompBackend_INTERFACE_DEFINED__ */
  705. #ifndef __ISpITNProcessor_INTERFACE_DEFINED__
  706. #define __ISpITNProcessor_INTERFACE_DEFINED__
  707. /* interface ISpITNProcessor */
  708. /* [restricted][local][unique][helpstring][uuid][object] */
  709. EXTERN_C const IID IID_ISpITNProcessor;
  710. #if defined(__cplusplus) && !defined(CINTERFACE)
  711. MIDL_INTERFACE("12D7360F-A1C9-11d3-BC90-00C04F72DF9F")
  712. ISpITNProcessor : public IUnknown
  713. {
  714. public:
  715. virtual HRESULT STDMETHODCALLTYPE LoadITNGrammar(
  716. WCHAR *pszCLSID) = 0;
  717. virtual HRESULT STDMETHODCALLTYPE ITNPhrase(
  718. ISpPhraseBuilder *pPhrase) = 0;
  719. };
  720. #else /* C style interface */
  721. typedef struct ISpITNProcessorVtbl
  722. {
  723. BEGIN_INTERFACE
  724. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  725. ISpITNProcessor * This,
  726. /* [in] */ REFIID riid,
  727. /* [iid_is][out] */ void **ppvObject);
  728. ULONG ( STDMETHODCALLTYPE *AddRef )(
  729. ISpITNProcessor * This);
  730. ULONG ( STDMETHODCALLTYPE *Release )(
  731. ISpITNProcessor * This);
  732. HRESULT ( STDMETHODCALLTYPE *LoadITNGrammar )(
  733. ISpITNProcessor * This,
  734. WCHAR *pszCLSID);
  735. HRESULT ( STDMETHODCALLTYPE *ITNPhrase )(
  736. ISpITNProcessor * This,
  737. ISpPhraseBuilder *pPhrase);
  738. END_INTERFACE
  739. } ISpITNProcessorVtbl;
  740. interface ISpITNProcessor
  741. {
  742. CONST_VTBL struct ISpITNProcessorVtbl *lpVtbl;
  743. };
  744. #ifdef COBJMACROS
  745. #define ISpITNProcessor_QueryInterface(This,riid,ppvObject) \
  746. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  747. #define ISpITNProcessor_AddRef(This) \
  748. (This)->lpVtbl -> AddRef(This)
  749. #define ISpITNProcessor_Release(This) \
  750. (This)->lpVtbl -> Release(This)
  751. #define ISpITNProcessor_LoadITNGrammar(This,pszCLSID) \
  752. (This)->lpVtbl -> LoadITNGrammar(This,pszCLSID)
  753. #define ISpITNProcessor_ITNPhrase(This,pPhrase) \
  754. (This)->lpVtbl -> ITNPhrase(This,pPhrase)
  755. #endif /* COBJMACROS */
  756. #endif /* C style interface */
  757. HRESULT STDMETHODCALLTYPE ISpITNProcessor_LoadITNGrammar_Proxy(
  758. ISpITNProcessor * This,
  759. WCHAR *pszCLSID);
  760. void __RPC_STUB ISpITNProcessor_LoadITNGrammar_Stub(
  761. IRpcStubBuffer *This,
  762. IRpcChannelBuffer *_pRpcChannelBuffer,
  763. PRPC_MESSAGE _pRpcMessage,
  764. DWORD *_pdwStubPhase);
  765. HRESULT STDMETHODCALLTYPE ISpITNProcessor_ITNPhrase_Proxy(
  766. ISpITNProcessor * This,
  767. ISpPhraseBuilder *pPhrase);
  768. void __RPC_STUB ISpITNProcessor_ITNPhrase_Stub(
  769. IRpcStubBuffer *This,
  770. IRpcChannelBuffer *_pRpcChannelBuffer,
  771. PRPC_MESSAGE _pRpcMessage,
  772. DWORD *_pdwStubPhase);
  773. #endif /* __ISpITNProcessor_INTERFACE_DEFINED__ */
  774. #ifndef __ISpPhraseBuilder_INTERFACE_DEFINED__
  775. #define __ISpPhraseBuilder_INTERFACE_DEFINED__
  776. /* interface ISpPhraseBuilder */
  777. /* [restricted][unique][helpstring][local][uuid][object] */
  778. EXTERN_C const IID IID_ISpPhraseBuilder;
  779. #if defined(__cplusplus) && !defined(CINTERFACE)
  780. MIDL_INTERFACE("88A3342A-0BED-4834-922B-88D43173162F")
  781. ISpPhraseBuilder : public ISpPhrase
  782. {
  783. public:
  784. virtual HRESULT STDMETHODCALLTYPE InitFromPhrase(
  785. const SPPHRASE *pPhrase) = 0;
  786. virtual HRESULT STDMETHODCALLTYPE InitFromSerializedPhrase(
  787. const SPSERIALIZEDPHRASE *pPhrase) = 0;
  788. virtual HRESULT STDMETHODCALLTYPE AddElements(
  789. ULONG cElements,
  790. const SPPHRASEELEMENT *pElement) = 0;
  791. virtual HRESULT STDMETHODCALLTYPE AddRules(
  792. const SPPHRASERULEHANDLE hParent,
  793. const SPPHRASERULE *pRule,
  794. SPPHRASERULEHANDLE *phNewRule) = 0;
  795. virtual HRESULT STDMETHODCALLTYPE AddProperties(
  796. const SPPHRASEPROPERTYHANDLE hParent,
  797. const SPPHRASEPROPERTY *pProperty,
  798. SPPHRASEPROPERTYHANDLE *phNewProperty) = 0;
  799. virtual HRESULT STDMETHODCALLTYPE AddReplacements(
  800. ULONG cReplacements,
  801. const SPPHRASEREPLACEMENT *pReplacements) = 0;
  802. };
  803. #else /* C style interface */
  804. typedef struct ISpPhraseBuilderVtbl
  805. {
  806. BEGIN_INTERFACE
  807. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  808. ISpPhraseBuilder * This,
  809. /* [in] */ REFIID riid,
  810. /* [iid_is][out] */ void **ppvObject);
  811. ULONG ( STDMETHODCALLTYPE *AddRef )(
  812. ISpPhraseBuilder * This);
  813. ULONG ( STDMETHODCALLTYPE *Release )(
  814. ISpPhraseBuilder * This);
  815. HRESULT ( STDMETHODCALLTYPE *GetPhrase )(
  816. ISpPhraseBuilder * This,
  817. /* [out] */ SPPHRASE **ppCoMemPhrase);
  818. HRESULT ( STDMETHODCALLTYPE *GetSerializedPhrase )(
  819. ISpPhraseBuilder * This,
  820. /* [out] */ SPSERIALIZEDPHRASE **ppCoMemPhrase);
  821. HRESULT ( STDMETHODCALLTYPE *GetText )(
  822. ISpPhraseBuilder * This,
  823. /* [in] */ ULONG ulStart,
  824. /* [in] */ ULONG ulCount,
  825. /* [in] */ BOOL fUseTextReplacements,
  826. /* [out] */ WCHAR **ppszCoMemText,
  827. /* [out] */ BYTE *pbDisplayAttributes);
  828. HRESULT ( STDMETHODCALLTYPE *Discard )(
  829. ISpPhraseBuilder * This,
  830. /* [in] */ DWORD dwValueTypes);
  831. HRESULT ( STDMETHODCALLTYPE *InitFromPhrase )(
  832. ISpPhraseBuilder * This,
  833. const SPPHRASE *pPhrase);
  834. HRESULT ( STDMETHODCALLTYPE *InitFromSerializedPhrase )(
  835. ISpPhraseBuilder * This,
  836. const SPSERIALIZEDPHRASE *pPhrase);
  837. HRESULT ( STDMETHODCALLTYPE *AddElements )(
  838. ISpPhraseBuilder * This,
  839. ULONG cElements,
  840. const SPPHRASEELEMENT *pElement);
  841. HRESULT ( STDMETHODCALLTYPE *AddRules )(
  842. ISpPhraseBuilder * This,
  843. const SPPHRASERULEHANDLE hParent,
  844. const SPPHRASERULE *pRule,
  845. SPPHRASERULEHANDLE *phNewRule);
  846. HRESULT ( STDMETHODCALLTYPE *AddProperties )(
  847. ISpPhraseBuilder * This,
  848. const SPPHRASEPROPERTYHANDLE hParent,
  849. const SPPHRASEPROPERTY *pProperty,
  850. SPPHRASEPROPERTYHANDLE *phNewProperty);
  851. HRESULT ( STDMETHODCALLTYPE *AddReplacements )(
  852. ISpPhraseBuilder * This,
  853. ULONG cReplacements,
  854. const SPPHRASEREPLACEMENT *pReplacements);
  855. END_INTERFACE
  856. } ISpPhraseBuilderVtbl;
  857. interface ISpPhraseBuilder
  858. {
  859. CONST_VTBL struct ISpPhraseBuilderVtbl *lpVtbl;
  860. };
  861. #ifdef COBJMACROS
  862. #define ISpPhraseBuilder_QueryInterface(This,riid,ppvObject) \
  863. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  864. #define ISpPhraseBuilder_AddRef(This) \
  865. (This)->lpVtbl -> AddRef(This)
  866. #define ISpPhraseBuilder_Release(This) \
  867. (This)->lpVtbl -> Release(This)
  868. #define ISpPhraseBuilder_GetPhrase(This,ppCoMemPhrase) \
  869. (This)->lpVtbl -> GetPhrase(This,ppCoMemPhrase)
  870. #define ISpPhraseBuilder_GetSerializedPhrase(This,ppCoMemPhrase) \
  871. (This)->lpVtbl -> GetSerializedPhrase(This,ppCoMemPhrase)
  872. #define ISpPhraseBuilder_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) \
  873. (This)->lpVtbl -> GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
  874. #define ISpPhraseBuilder_Discard(This,dwValueTypes) \
  875. (This)->lpVtbl -> Discard(This,dwValueTypes)
  876. #define ISpPhraseBuilder_InitFromPhrase(This,pPhrase) \
  877. (This)->lpVtbl -> InitFromPhrase(This,pPhrase)
  878. #define ISpPhraseBuilder_InitFromSerializedPhrase(This,pPhrase) \
  879. (This)->lpVtbl -> InitFromSerializedPhrase(This,pPhrase)
  880. #define ISpPhraseBuilder_AddElements(This,cElements,pElement) \
  881. (This)->lpVtbl -> AddElements(This,cElements,pElement)
  882. #define ISpPhraseBuilder_AddRules(This,hParent,pRule,phNewRule) \
  883. (This)->lpVtbl -> AddRules(This,hParent,pRule,phNewRule)
  884. #define ISpPhraseBuilder_AddProperties(This,hParent,pProperty,phNewProperty) \
  885. (This)->lpVtbl -> AddProperties(This,hParent,pProperty,phNewProperty)
  886. #define ISpPhraseBuilder_AddReplacements(This,cReplacements,pReplacements) \
  887. (This)->lpVtbl -> AddReplacements(This,cReplacements,pReplacements)
  888. #endif /* COBJMACROS */
  889. #endif /* C style interface */
  890. HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_InitFromPhrase_Proxy(
  891. ISpPhraseBuilder * This,
  892. const SPPHRASE *pPhrase);
  893. void __RPC_STUB ISpPhraseBuilder_InitFromPhrase_Stub(
  894. IRpcStubBuffer *This,
  895. IRpcChannelBuffer *_pRpcChannelBuffer,
  896. PRPC_MESSAGE _pRpcMessage,
  897. DWORD *_pdwStubPhase);
  898. HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_InitFromSerializedPhrase_Proxy(
  899. ISpPhraseBuilder * This,
  900. const SPSERIALIZEDPHRASE *pPhrase);
  901. void __RPC_STUB ISpPhraseBuilder_InitFromSerializedPhrase_Stub(
  902. IRpcStubBuffer *This,
  903. IRpcChannelBuffer *_pRpcChannelBuffer,
  904. PRPC_MESSAGE _pRpcMessage,
  905. DWORD *_pdwStubPhase);
  906. HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_AddElements_Proxy(
  907. ISpPhraseBuilder * This,
  908. ULONG cElements,
  909. const SPPHRASEELEMENT *pElement);
  910. void __RPC_STUB ISpPhraseBuilder_AddElements_Stub(
  911. IRpcStubBuffer *This,
  912. IRpcChannelBuffer *_pRpcChannelBuffer,
  913. PRPC_MESSAGE _pRpcMessage,
  914. DWORD *_pdwStubPhase);
  915. HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_AddRules_Proxy(
  916. ISpPhraseBuilder * This,
  917. const SPPHRASERULEHANDLE hParent,
  918. const SPPHRASERULE *pRule,
  919. SPPHRASERULEHANDLE *phNewRule);
  920. void __RPC_STUB ISpPhraseBuilder_AddRules_Stub(
  921. IRpcStubBuffer *This,
  922. IRpcChannelBuffer *_pRpcChannelBuffer,
  923. PRPC_MESSAGE _pRpcMessage,
  924. DWORD *_pdwStubPhase);
  925. HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_AddProperties_Proxy(
  926. ISpPhraseBuilder * This,
  927. const SPPHRASEPROPERTYHANDLE hParent,
  928. const SPPHRASEPROPERTY *pProperty,
  929. SPPHRASEPROPERTYHANDLE *phNewProperty);
  930. void __RPC_STUB ISpPhraseBuilder_AddProperties_Stub(
  931. IRpcStubBuffer *This,
  932. IRpcChannelBuffer *_pRpcChannelBuffer,
  933. PRPC_MESSAGE _pRpcMessage,
  934. DWORD *_pdwStubPhase);
  935. HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_AddReplacements_Proxy(
  936. ISpPhraseBuilder * This,
  937. ULONG cReplacements,
  938. const SPPHRASEREPLACEMENT *pReplacements);
  939. void __RPC_STUB ISpPhraseBuilder_AddReplacements_Stub(
  940. IRpcStubBuffer *This,
  941. IRpcChannelBuffer *_pRpcChannelBuffer,
  942. PRPC_MESSAGE _pRpcMessage,
  943. DWORD *_pdwStubPhase);
  944. #endif /* __ISpPhraseBuilder_INTERFACE_DEFINED__ */
  945. /* interface __MIDL_itf_sapiddk_0350 */
  946. /* [local] */
  947. #if defined(__cplusplus)
  948. interface ISpTask
  949. {
  950. virtual HRESULT STDMETHODCALLTYPE Execute(
  951. void *pvTaskData,
  952. volatile const BOOL* pfContinueProcessing) = 0;
  953. };
  954. #else
  955. typedef void *ISpTask;
  956. #endif
  957. #if defined(__cplusplus)
  958. interface ISpThreadTask
  959. {
  960. virtual HRESULT STDMETHODCALLTYPE InitThread(
  961. void * pvTaskData,
  962. HWND hwnd) = 0;
  963. virtual HRESULT STDMETHODCALLTYPE ThreadProc(
  964. void *pvTaskData,
  965. HANDLE hExitThreadEvent,
  966. HANDLE hNotifyEvent,
  967. HWND hwndWorker,
  968. volatile const BOOL * pfContinueProcessing) = 0;
  969. virtual LRESULT STDMETHODCALLTYPE WindowMessage(
  970. void *pvTaskData,
  971. HWND hWnd,
  972. UINT Msg,
  973. WPARAM wParam,
  974. LPARAM lParam) = 0;
  975. };
  976. #else
  977. typedef void *ISpThreadTask;
  978. #endif
  979. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0350_v0_0_c_ifspec;
  980. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0350_v0_0_s_ifspec;
  981. #ifndef __ISpThreadControl_INTERFACE_DEFINED__
  982. #define __ISpThreadControl_INTERFACE_DEFINED__
  983. /* interface ISpThreadControl */
  984. /* [restricted][local][unique][helpstring][uuid][object] */
  985. EXTERN_C const IID IID_ISpThreadControl;
  986. #if defined(__cplusplus) && !defined(CINTERFACE)
  987. MIDL_INTERFACE("A6BE4D73-4403-4358-B22D-0346E23B1764")
  988. ISpThreadControl : public ISpNotifySink
  989. {
  990. public:
  991. virtual HRESULT STDMETHODCALLTYPE StartThread(
  992. DWORD dwFlags,
  993. HWND *phwnd) = 0;
  994. virtual HRESULT STDMETHODCALLTYPE WaitForThreadDone(
  995. BOOL fForceStop,
  996. HRESULT *phrThreadResult,
  997. ULONG msTimeOut) = 0;
  998. virtual HRESULT STDMETHODCALLTYPE TerminateThread( void) = 0;
  999. virtual HANDLE STDMETHODCALLTYPE ThreadHandle( void) = 0;
  1000. virtual DWORD STDMETHODCALLTYPE ThreadId( void) = 0;
  1001. virtual HANDLE STDMETHODCALLTYPE NotifyEvent( void) = 0;
  1002. virtual HWND STDMETHODCALLTYPE WindowHandle( void) = 0;
  1003. virtual HANDLE STDMETHODCALLTYPE ThreadCompleteEvent( void) = 0;
  1004. virtual HANDLE STDMETHODCALLTYPE ExitThreadEvent( void) = 0;
  1005. };
  1006. #else /* C style interface */
  1007. typedef struct ISpThreadControlVtbl
  1008. {
  1009. BEGIN_INTERFACE
  1010. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1011. ISpThreadControl * This,
  1012. /* [in] */ REFIID riid,
  1013. /* [iid_is][out] */ void **ppvObject);
  1014. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1015. ISpThreadControl * This);
  1016. ULONG ( STDMETHODCALLTYPE *Release )(
  1017. ISpThreadControl * This);
  1018. HRESULT ( STDMETHODCALLTYPE *Notify )(
  1019. ISpThreadControl * This);
  1020. HRESULT ( STDMETHODCALLTYPE *StartThread )(
  1021. ISpThreadControl * This,
  1022. DWORD dwFlags,
  1023. HWND *phwnd);
  1024. HRESULT ( STDMETHODCALLTYPE *WaitForThreadDone )(
  1025. ISpThreadControl * This,
  1026. BOOL fForceStop,
  1027. HRESULT *phrThreadResult,
  1028. ULONG msTimeOut);
  1029. HRESULT ( STDMETHODCALLTYPE *TerminateThread )(
  1030. ISpThreadControl * This);
  1031. HANDLE ( STDMETHODCALLTYPE *ThreadHandle )(
  1032. ISpThreadControl * This);
  1033. DWORD ( STDMETHODCALLTYPE *ThreadId )(
  1034. ISpThreadControl * This);
  1035. HANDLE ( STDMETHODCALLTYPE *NotifyEvent )(
  1036. ISpThreadControl * This);
  1037. HWND ( STDMETHODCALLTYPE *WindowHandle )(
  1038. ISpThreadControl * This);
  1039. HANDLE ( STDMETHODCALLTYPE *ThreadCompleteEvent )(
  1040. ISpThreadControl * This);
  1041. HANDLE ( STDMETHODCALLTYPE *ExitThreadEvent )(
  1042. ISpThreadControl * This);
  1043. END_INTERFACE
  1044. } ISpThreadControlVtbl;
  1045. interface ISpThreadControl
  1046. {
  1047. CONST_VTBL struct ISpThreadControlVtbl *lpVtbl;
  1048. };
  1049. #ifdef COBJMACROS
  1050. #define ISpThreadControl_QueryInterface(This,riid,ppvObject) \
  1051. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1052. #define ISpThreadControl_AddRef(This) \
  1053. (This)->lpVtbl -> AddRef(This)
  1054. #define ISpThreadControl_Release(This) \
  1055. (This)->lpVtbl -> Release(This)
  1056. #define ISpThreadControl_Notify(This) \
  1057. (This)->lpVtbl -> Notify(This)
  1058. #define ISpThreadControl_StartThread(This,dwFlags,phwnd) \
  1059. (This)->lpVtbl -> StartThread(This,dwFlags,phwnd)
  1060. #define ISpThreadControl_WaitForThreadDone(This,fForceStop,phrThreadResult,msTimeOut) \
  1061. (This)->lpVtbl -> WaitForThreadDone(This,fForceStop,phrThreadResult,msTimeOut)
  1062. #define ISpThreadControl_TerminateThread(This) \
  1063. (This)->lpVtbl -> TerminateThread(This)
  1064. #define ISpThreadControl_ThreadHandle(This) \
  1065. (This)->lpVtbl -> ThreadHandle(This)
  1066. #define ISpThreadControl_ThreadId(This) \
  1067. (This)->lpVtbl -> ThreadId(This)
  1068. #define ISpThreadControl_NotifyEvent(This) \
  1069. (This)->lpVtbl -> NotifyEvent(This)
  1070. #define ISpThreadControl_WindowHandle(This) \
  1071. (This)->lpVtbl -> WindowHandle(This)
  1072. #define ISpThreadControl_ThreadCompleteEvent(This) \
  1073. (This)->lpVtbl -> ThreadCompleteEvent(This)
  1074. #define ISpThreadControl_ExitThreadEvent(This) \
  1075. (This)->lpVtbl -> ExitThreadEvent(This)
  1076. #endif /* COBJMACROS */
  1077. #endif /* C style interface */
  1078. HRESULT STDMETHODCALLTYPE ISpThreadControl_StartThread_Proxy(
  1079. ISpThreadControl * This,
  1080. DWORD dwFlags,
  1081. HWND *phwnd);
  1082. void __RPC_STUB ISpThreadControl_StartThread_Stub(
  1083. IRpcStubBuffer *This,
  1084. IRpcChannelBuffer *_pRpcChannelBuffer,
  1085. PRPC_MESSAGE _pRpcMessage,
  1086. DWORD *_pdwStubPhase);
  1087. HRESULT STDMETHODCALLTYPE ISpThreadControl_WaitForThreadDone_Proxy(
  1088. ISpThreadControl * This,
  1089. BOOL fForceStop,
  1090. HRESULT *phrThreadResult,
  1091. ULONG msTimeOut);
  1092. void __RPC_STUB ISpThreadControl_WaitForThreadDone_Stub(
  1093. IRpcStubBuffer *This,
  1094. IRpcChannelBuffer *_pRpcChannelBuffer,
  1095. PRPC_MESSAGE _pRpcMessage,
  1096. DWORD *_pdwStubPhase);
  1097. HRESULT STDMETHODCALLTYPE ISpThreadControl_TerminateThread_Proxy(
  1098. ISpThreadControl * This);
  1099. void __RPC_STUB ISpThreadControl_TerminateThread_Stub(
  1100. IRpcStubBuffer *This,
  1101. IRpcChannelBuffer *_pRpcChannelBuffer,
  1102. PRPC_MESSAGE _pRpcMessage,
  1103. DWORD *_pdwStubPhase);
  1104. HANDLE STDMETHODCALLTYPE ISpThreadControl_ThreadHandle_Proxy(
  1105. ISpThreadControl * This);
  1106. void __RPC_STUB ISpThreadControl_ThreadHandle_Stub(
  1107. IRpcStubBuffer *This,
  1108. IRpcChannelBuffer *_pRpcChannelBuffer,
  1109. PRPC_MESSAGE _pRpcMessage,
  1110. DWORD *_pdwStubPhase);
  1111. DWORD STDMETHODCALLTYPE ISpThreadControl_ThreadId_Proxy(
  1112. ISpThreadControl * This);
  1113. void __RPC_STUB ISpThreadControl_ThreadId_Stub(
  1114. IRpcStubBuffer *This,
  1115. IRpcChannelBuffer *_pRpcChannelBuffer,
  1116. PRPC_MESSAGE _pRpcMessage,
  1117. DWORD *_pdwStubPhase);
  1118. HANDLE STDMETHODCALLTYPE ISpThreadControl_NotifyEvent_Proxy(
  1119. ISpThreadControl * This);
  1120. void __RPC_STUB ISpThreadControl_NotifyEvent_Stub(
  1121. IRpcStubBuffer *This,
  1122. IRpcChannelBuffer *_pRpcChannelBuffer,
  1123. PRPC_MESSAGE _pRpcMessage,
  1124. DWORD *_pdwStubPhase);
  1125. HWND STDMETHODCALLTYPE ISpThreadControl_WindowHandle_Proxy(
  1126. ISpThreadControl * This);
  1127. void __RPC_STUB ISpThreadControl_WindowHandle_Stub(
  1128. IRpcStubBuffer *This,
  1129. IRpcChannelBuffer *_pRpcChannelBuffer,
  1130. PRPC_MESSAGE _pRpcMessage,
  1131. DWORD *_pdwStubPhase);
  1132. HANDLE STDMETHODCALLTYPE ISpThreadControl_ThreadCompleteEvent_Proxy(
  1133. ISpThreadControl * This);
  1134. void __RPC_STUB ISpThreadControl_ThreadCompleteEvent_Stub(
  1135. IRpcStubBuffer *This,
  1136. IRpcChannelBuffer *_pRpcChannelBuffer,
  1137. PRPC_MESSAGE _pRpcMessage,
  1138. DWORD *_pdwStubPhase);
  1139. HANDLE STDMETHODCALLTYPE ISpThreadControl_ExitThreadEvent_Proxy(
  1140. ISpThreadControl * This);
  1141. void __RPC_STUB ISpThreadControl_ExitThreadEvent_Stub(
  1142. IRpcStubBuffer *This,
  1143. IRpcChannelBuffer *_pRpcChannelBuffer,
  1144. PRPC_MESSAGE _pRpcMessage,
  1145. DWORD *_pdwStubPhase);
  1146. #endif /* __ISpThreadControl_INTERFACE_DEFINED__ */
  1147. /* interface __MIDL_itf_sapiddk_0351 */
  1148. /* [local] */
  1149. typedef /* [restricted] */ struct SPTMTHREADINFO
  1150. {
  1151. long lPoolSize;
  1152. long lPriority;
  1153. ULONG ulConcurrencyLimit;
  1154. ULONG ulMaxQuickAllocThreads;
  1155. } SPTMTHREADINFO;
  1156. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0351_v0_0_c_ifspec;
  1157. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0351_v0_0_s_ifspec;
  1158. #ifndef __ISpTaskManager_INTERFACE_DEFINED__
  1159. #define __ISpTaskManager_INTERFACE_DEFINED__
  1160. /* interface ISpTaskManager */
  1161. /* [object][restricted][unique][helpstring][uuid][local] */
  1162. EXTERN_C const IID IID_ISpTaskManager;
  1163. #if defined(__cplusplus) && !defined(CINTERFACE)
  1164. MIDL_INTERFACE("2BAEEF81-2CA3-4331-98F3-26EC5ABEFB03")
  1165. ISpTaskManager : public IUnknown
  1166. {
  1167. public:
  1168. virtual HRESULT STDMETHODCALLTYPE SetThreadPoolInfo(
  1169. /* [in] */ const SPTMTHREADINFO *pPoolInfo) = 0;
  1170. virtual HRESULT STDMETHODCALLTYPE GetThreadPoolInfo(
  1171. /* [out] */ SPTMTHREADINFO *pPoolInfo) = 0;
  1172. virtual HRESULT STDMETHODCALLTYPE QueueTask(
  1173. /* [in] */ ISpTask *pTask,
  1174. /* [in] */ void *pvTaskData,
  1175. /* [in] */ HANDLE hCompEvent,
  1176. /* [out][in] */ DWORD *pdwGroupId,
  1177. /* [out] */ DWORD *pTaskID) = 0;
  1178. virtual HRESULT STDMETHODCALLTYPE CreateReoccurringTask(
  1179. /* [in] */ ISpTask *pTask,
  1180. /* [in] */ void *pvTaskData,
  1181. /* [in] */ HANDLE hCompEvent,
  1182. /* [out] */ ISpNotifySink **ppTaskCtrl) = 0;
  1183. virtual HRESULT STDMETHODCALLTYPE CreateThreadControl(
  1184. /* [in] */ ISpThreadTask *pTask,
  1185. /* [in] */ void *pvTaskData,
  1186. /* [in] */ long nPriority,
  1187. /* [out] */ ISpThreadControl **ppTaskCtrl) = 0;
  1188. virtual HRESULT STDMETHODCALLTYPE TerminateTask(
  1189. /* [in] */ DWORD dwTaskId,
  1190. /* [in] */ ULONG ulWaitPeriod) = 0;
  1191. virtual HRESULT STDMETHODCALLTYPE TerminateTaskGroup(
  1192. /* [in] */ DWORD dwGroupId,
  1193. /* [in] */ ULONG ulWaitPeriod) = 0;
  1194. };
  1195. #else /* C style interface */
  1196. typedef struct ISpTaskManagerVtbl
  1197. {
  1198. BEGIN_INTERFACE
  1199. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1200. ISpTaskManager * This,
  1201. /* [in] */ REFIID riid,
  1202. /* [iid_is][out] */ void **ppvObject);
  1203. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1204. ISpTaskManager * This);
  1205. ULONG ( STDMETHODCALLTYPE *Release )(
  1206. ISpTaskManager * This);
  1207. HRESULT ( STDMETHODCALLTYPE *SetThreadPoolInfo )(
  1208. ISpTaskManager * This,
  1209. /* [in] */ const SPTMTHREADINFO *pPoolInfo);
  1210. HRESULT ( STDMETHODCALLTYPE *GetThreadPoolInfo )(
  1211. ISpTaskManager * This,
  1212. /* [out] */ SPTMTHREADINFO *pPoolInfo);
  1213. HRESULT ( STDMETHODCALLTYPE *QueueTask )(
  1214. ISpTaskManager * This,
  1215. /* [in] */ ISpTask *pTask,
  1216. /* [in] */ void *pvTaskData,
  1217. /* [in] */ HANDLE hCompEvent,
  1218. /* [out][in] */ DWORD *pdwGroupId,
  1219. /* [out] */ DWORD *pTaskID);
  1220. HRESULT ( STDMETHODCALLTYPE *CreateReoccurringTask )(
  1221. ISpTaskManager * This,
  1222. /* [in] */ ISpTask *pTask,
  1223. /* [in] */ void *pvTaskData,
  1224. /* [in] */ HANDLE hCompEvent,
  1225. /* [out] */ ISpNotifySink **ppTaskCtrl);
  1226. HRESULT ( STDMETHODCALLTYPE *CreateThreadControl )(
  1227. ISpTaskManager * This,
  1228. /* [in] */ ISpThreadTask *pTask,
  1229. /* [in] */ void *pvTaskData,
  1230. /* [in] */ long nPriority,
  1231. /* [out] */ ISpThreadControl **ppTaskCtrl);
  1232. HRESULT ( STDMETHODCALLTYPE *TerminateTask )(
  1233. ISpTaskManager * This,
  1234. /* [in] */ DWORD dwTaskId,
  1235. /* [in] */ ULONG ulWaitPeriod);
  1236. HRESULT ( STDMETHODCALLTYPE *TerminateTaskGroup )(
  1237. ISpTaskManager * This,
  1238. /* [in] */ DWORD dwGroupId,
  1239. /* [in] */ ULONG ulWaitPeriod);
  1240. END_INTERFACE
  1241. } ISpTaskManagerVtbl;
  1242. interface ISpTaskManager
  1243. {
  1244. CONST_VTBL struct ISpTaskManagerVtbl *lpVtbl;
  1245. };
  1246. #ifdef COBJMACROS
  1247. #define ISpTaskManager_QueryInterface(This,riid,ppvObject) \
  1248. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1249. #define ISpTaskManager_AddRef(This) \
  1250. (This)->lpVtbl -> AddRef(This)
  1251. #define ISpTaskManager_Release(This) \
  1252. (This)->lpVtbl -> Release(This)
  1253. #define ISpTaskManager_SetThreadPoolInfo(This,pPoolInfo) \
  1254. (This)->lpVtbl -> SetThreadPoolInfo(This,pPoolInfo)
  1255. #define ISpTaskManager_GetThreadPoolInfo(This,pPoolInfo) \
  1256. (This)->lpVtbl -> GetThreadPoolInfo(This,pPoolInfo)
  1257. #define ISpTaskManager_QueueTask(This,pTask,pvTaskData,hCompEvent,pdwGroupId,pTaskID) \
  1258. (This)->lpVtbl -> QueueTask(This,pTask,pvTaskData,hCompEvent,pdwGroupId,pTaskID)
  1259. #define ISpTaskManager_CreateReoccurringTask(This,pTask,pvTaskData,hCompEvent,ppTaskCtrl) \
  1260. (This)->lpVtbl -> CreateReoccurringTask(This,pTask,pvTaskData,hCompEvent,ppTaskCtrl)
  1261. #define ISpTaskManager_CreateThreadControl(This,pTask,pvTaskData,nPriority,ppTaskCtrl) \
  1262. (This)->lpVtbl -> CreateThreadControl(This,pTask,pvTaskData,nPriority,ppTaskCtrl)
  1263. #define ISpTaskManager_TerminateTask(This,dwTaskId,ulWaitPeriod) \
  1264. (This)->lpVtbl -> TerminateTask(This,dwTaskId,ulWaitPeriod)
  1265. #define ISpTaskManager_TerminateTaskGroup(This,dwGroupId,ulWaitPeriod) \
  1266. (This)->lpVtbl -> TerminateTaskGroup(This,dwGroupId,ulWaitPeriod)
  1267. #endif /* COBJMACROS */
  1268. #endif /* C style interface */
  1269. HRESULT STDMETHODCALLTYPE ISpTaskManager_SetThreadPoolInfo_Proxy(
  1270. ISpTaskManager * This,
  1271. /* [in] */ const SPTMTHREADINFO *pPoolInfo);
  1272. void __RPC_STUB ISpTaskManager_SetThreadPoolInfo_Stub(
  1273. IRpcStubBuffer *This,
  1274. IRpcChannelBuffer *_pRpcChannelBuffer,
  1275. PRPC_MESSAGE _pRpcMessage,
  1276. DWORD *_pdwStubPhase);
  1277. HRESULT STDMETHODCALLTYPE ISpTaskManager_GetThreadPoolInfo_Proxy(
  1278. ISpTaskManager * This,
  1279. /* [out] */ SPTMTHREADINFO *pPoolInfo);
  1280. void __RPC_STUB ISpTaskManager_GetThreadPoolInfo_Stub(
  1281. IRpcStubBuffer *This,
  1282. IRpcChannelBuffer *_pRpcChannelBuffer,
  1283. PRPC_MESSAGE _pRpcMessage,
  1284. DWORD *_pdwStubPhase);
  1285. HRESULT STDMETHODCALLTYPE ISpTaskManager_QueueTask_Proxy(
  1286. ISpTaskManager * This,
  1287. /* [in] */ ISpTask *pTask,
  1288. /* [in] */ void *pvTaskData,
  1289. /* [in] */ HANDLE hCompEvent,
  1290. /* [out][in] */ DWORD *pdwGroupId,
  1291. /* [out] */ DWORD *pTaskID);
  1292. void __RPC_STUB ISpTaskManager_QueueTask_Stub(
  1293. IRpcStubBuffer *This,
  1294. IRpcChannelBuffer *_pRpcChannelBuffer,
  1295. PRPC_MESSAGE _pRpcMessage,
  1296. DWORD *_pdwStubPhase);
  1297. HRESULT STDMETHODCALLTYPE ISpTaskManager_CreateReoccurringTask_Proxy(
  1298. ISpTaskManager * This,
  1299. /* [in] */ ISpTask *pTask,
  1300. /* [in] */ void *pvTaskData,
  1301. /* [in] */ HANDLE hCompEvent,
  1302. /* [out] */ ISpNotifySink **ppTaskCtrl);
  1303. void __RPC_STUB ISpTaskManager_CreateReoccurringTask_Stub(
  1304. IRpcStubBuffer *This,
  1305. IRpcChannelBuffer *_pRpcChannelBuffer,
  1306. PRPC_MESSAGE _pRpcMessage,
  1307. DWORD *_pdwStubPhase);
  1308. HRESULT STDMETHODCALLTYPE ISpTaskManager_CreateThreadControl_Proxy(
  1309. ISpTaskManager * This,
  1310. /* [in] */ ISpThreadTask *pTask,
  1311. /* [in] */ void *pvTaskData,
  1312. /* [in] */ long nPriority,
  1313. /* [out] */ ISpThreadControl **ppTaskCtrl);
  1314. void __RPC_STUB ISpTaskManager_CreateThreadControl_Stub(
  1315. IRpcStubBuffer *This,
  1316. IRpcChannelBuffer *_pRpcChannelBuffer,
  1317. PRPC_MESSAGE _pRpcMessage,
  1318. DWORD *_pdwStubPhase);
  1319. HRESULT STDMETHODCALLTYPE ISpTaskManager_TerminateTask_Proxy(
  1320. ISpTaskManager * This,
  1321. /* [in] */ DWORD dwTaskId,
  1322. /* [in] */ ULONG ulWaitPeriod);
  1323. void __RPC_STUB ISpTaskManager_TerminateTask_Stub(
  1324. IRpcStubBuffer *This,
  1325. IRpcChannelBuffer *_pRpcChannelBuffer,
  1326. PRPC_MESSAGE _pRpcMessage,
  1327. DWORD *_pdwStubPhase);
  1328. HRESULT STDMETHODCALLTYPE ISpTaskManager_TerminateTaskGroup_Proxy(
  1329. ISpTaskManager * This,
  1330. /* [in] */ DWORD dwGroupId,
  1331. /* [in] */ ULONG ulWaitPeriod);
  1332. void __RPC_STUB ISpTaskManager_TerminateTaskGroup_Stub(
  1333. IRpcStubBuffer *This,
  1334. IRpcChannelBuffer *_pRpcChannelBuffer,
  1335. PRPC_MESSAGE _pRpcMessage,
  1336. DWORD *_pdwStubPhase);
  1337. #endif /* __ISpTaskManager_INTERFACE_DEFINED__ */
  1338. /* interface __MIDL_itf_sapiddk_0352 */
  1339. /* [local] */
  1340. typedef
  1341. enum SPVSKIPTYPE
  1342. { SPVST_SENTENCE = 1L << 0
  1343. } SPVSKIPTYPE;
  1344. typedef
  1345. enum SPVESACTIONS
  1346. { SPVES_CONTINUE = 0,
  1347. SPVES_ABORT = 1L << 0,
  1348. SPVES_SKIP = 1L << 1,
  1349. SPVES_RATE = 1L << 2,
  1350. SPVES_VOLUME = 1L << 3
  1351. } SPVESACTIONS;
  1352. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0352_v0_0_c_ifspec;
  1353. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0352_v0_0_s_ifspec;
  1354. #ifndef __ISpTTSEngineSite_INTERFACE_DEFINED__
  1355. #define __ISpTTSEngineSite_INTERFACE_DEFINED__
  1356. /* interface ISpTTSEngineSite */
  1357. /* [unique][helpstring][uuid][local][object] */
  1358. EXTERN_C const IID IID_ISpTTSEngineSite;
  1359. #if defined(__cplusplus) && !defined(CINTERFACE)
  1360. MIDL_INTERFACE("9880499B-CCE9-11d2-B503-00C04F797396")
  1361. ISpTTSEngineSite : public ISpEventSink
  1362. {
  1363. public:
  1364. virtual DWORD STDMETHODCALLTYPE GetActions( void) = 0;
  1365. virtual HRESULT STDMETHODCALLTYPE Write(
  1366. /* [in] */ const void *pBuff,
  1367. /* [in] */ ULONG cb,
  1368. /* [out] */ ULONG *pcbWritten) = 0;
  1369. virtual HRESULT STDMETHODCALLTYPE GetRate(
  1370. /* [out] */ long *pRateAdjust) = 0;
  1371. virtual HRESULT STDMETHODCALLTYPE GetVolume(
  1372. /* [out] */ USHORT *pusVolume) = 0;
  1373. virtual HRESULT STDMETHODCALLTYPE GetSkipInfo(
  1374. /* [out] */ SPVSKIPTYPE *peType,
  1375. /* [out] */ long *plNumItems) = 0;
  1376. virtual HRESULT STDMETHODCALLTYPE CompleteSkip(
  1377. /* [in] */ long ulNumSkipped) = 0;
  1378. };
  1379. #else /* C style interface */
  1380. typedef struct ISpTTSEngineSiteVtbl
  1381. {
  1382. BEGIN_INTERFACE
  1383. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1384. ISpTTSEngineSite * This,
  1385. /* [in] */ REFIID riid,
  1386. /* [iid_is][out] */ void **ppvObject);
  1387. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1388. ISpTTSEngineSite * This);
  1389. ULONG ( STDMETHODCALLTYPE *Release )(
  1390. ISpTTSEngineSite * This);
  1391. HRESULT ( STDMETHODCALLTYPE *AddEvents )(
  1392. ISpTTSEngineSite * This,
  1393. /* [in] */ const SPEVENT *pEventArray,
  1394. /* [in] */ ULONG ulCount);
  1395. HRESULT ( STDMETHODCALLTYPE *GetEventInterest )(
  1396. ISpTTSEngineSite * This,
  1397. /* [out] */ ULONGLONG *pullEventInterest);
  1398. DWORD ( STDMETHODCALLTYPE *GetActions )(
  1399. ISpTTSEngineSite * This);
  1400. HRESULT ( STDMETHODCALLTYPE *Write )(
  1401. ISpTTSEngineSite * This,
  1402. /* [in] */ const void *pBuff,
  1403. /* [in] */ ULONG cb,
  1404. /* [out] */ ULONG *pcbWritten);
  1405. HRESULT ( STDMETHODCALLTYPE *GetRate )(
  1406. ISpTTSEngineSite * This,
  1407. /* [out] */ long *pRateAdjust);
  1408. HRESULT ( STDMETHODCALLTYPE *GetVolume )(
  1409. ISpTTSEngineSite * This,
  1410. /* [out] */ USHORT *pusVolume);
  1411. HRESULT ( STDMETHODCALLTYPE *GetSkipInfo )(
  1412. ISpTTSEngineSite * This,
  1413. /* [out] */ SPVSKIPTYPE *peType,
  1414. /* [out] */ long *plNumItems);
  1415. HRESULT ( STDMETHODCALLTYPE *CompleteSkip )(
  1416. ISpTTSEngineSite * This,
  1417. /* [in] */ long ulNumSkipped);
  1418. END_INTERFACE
  1419. } ISpTTSEngineSiteVtbl;
  1420. interface ISpTTSEngineSite
  1421. {
  1422. CONST_VTBL struct ISpTTSEngineSiteVtbl *lpVtbl;
  1423. };
  1424. #ifdef COBJMACROS
  1425. #define ISpTTSEngineSite_QueryInterface(This,riid,ppvObject) \
  1426. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1427. #define ISpTTSEngineSite_AddRef(This) \
  1428. (This)->lpVtbl -> AddRef(This)
  1429. #define ISpTTSEngineSite_Release(This) \
  1430. (This)->lpVtbl -> Release(This)
  1431. #define ISpTTSEngineSite_AddEvents(This,pEventArray,ulCount) \
  1432. (This)->lpVtbl -> AddEvents(This,pEventArray,ulCount)
  1433. #define ISpTTSEngineSite_GetEventInterest(This,pullEventInterest) \
  1434. (This)->lpVtbl -> GetEventInterest(This,pullEventInterest)
  1435. #define ISpTTSEngineSite_GetActions(This) \
  1436. (This)->lpVtbl -> GetActions(This)
  1437. #define ISpTTSEngineSite_Write(This,pBuff,cb,pcbWritten) \
  1438. (This)->lpVtbl -> Write(This,pBuff,cb,pcbWritten)
  1439. #define ISpTTSEngineSite_GetRate(This,pRateAdjust) \
  1440. (This)->lpVtbl -> GetRate(This,pRateAdjust)
  1441. #define ISpTTSEngineSite_GetVolume(This,pusVolume) \
  1442. (This)->lpVtbl -> GetVolume(This,pusVolume)
  1443. #define ISpTTSEngineSite_GetSkipInfo(This,peType,plNumItems) \
  1444. (This)->lpVtbl -> GetSkipInfo(This,peType,plNumItems)
  1445. #define ISpTTSEngineSite_CompleteSkip(This,ulNumSkipped) \
  1446. (This)->lpVtbl -> CompleteSkip(This,ulNumSkipped)
  1447. #endif /* COBJMACROS */
  1448. #endif /* C style interface */
  1449. DWORD STDMETHODCALLTYPE ISpTTSEngineSite_GetActions_Proxy(
  1450. ISpTTSEngineSite * This);
  1451. void __RPC_STUB ISpTTSEngineSite_GetActions_Stub(
  1452. IRpcStubBuffer *This,
  1453. IRpcChannelBuffer *_pRpcChannelBuffer,
  1454. PRPC_MESSAGE _pRpcMessage,
  1455. DWORD *_pdwStubPhase);
  1456. HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_Write_Proxy(
  1457. ISpTTSEngineSite * This,
  1458. /* [in] */ const void *pBuff,
  1459. /* [in] */ ULONG cb,
  1460. /* [out] */ ULONG *pcbWritten);
  1461. void __RPC_STUB ISpTTSEngineSite_Write_Stub(
  1462. IRpcStubBuffer *This,
  1463. IRpcChannelBuffer *_pRpcChannelBuffer,
  1464. PRPC_MESSAGE _pRpcMessage,
  1465. DWORD *_pdwStubPhase);
  1466. HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_GetRate_Proxy(
  1467. ISpTTSEngineSite * This,
  1468. /* [out] */ long *pRateAdjust);
  1469. void __RPC_STUB ISpTTSEngineSite_GetRate_Stub(
  1470. IRpcStubBuffer *This,
  1471. IRpcChannelBuffer *_pRpcChannelBuffer,
  1472. PRPC_MESSAGE _pRpcMessage,
  1473. DWORD *_pdwStubPhase);
  1474. HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_GetVolume_Proxy(
  1475. ISpTTSEngineSite * This,
  1476. /* [out] */ USHORT *pusVolume);
  1477. void __RPC_STUB ISpTTSEngineSite_GetVolume_Stub(
  1478. IRpcStubBuffer *This,
  1479. IRpcChannelBuffer *_pRpcChannelBuffer,
  1480. PRPC_MESSAGE _pRpcMessage,
  1481. DWORD *_pdwStubPhase);
  1482. HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_GetSkipInfo_Proxy(
  1483. ISpTTSEngineSite * This,
  1484. /* [out] */ SPVSKIPTYPE *peType,
  1485. /* [out] */ long *plNumItems);
  1486. void __RPC_STUB ISpTTSEngineSite_GetSkipInfo_Stub(
  1487. IRpcStubBuffer *This,
  1488. IRpcChannelBuffer *_pRpcChannelBuffer,
  1489. PRPC_MESSAGE _pRpcMessage,
  1490. DWORD *_pdwStubPhase);
  1491. HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_CompleteSkip_Proxy(
  1492. ISpTTSEngineSite * This,
  1493. /* [in] */ long ulNumSkipped);
  1494. void __RPC_STUB ISpTTSEngineSite_CompleteSkip_Stub(
  1495. IRpcStubBuffer *This,
  1496. IRpcChannelBuffer *_pRpcChannelBuffer,
  1497. PRPC_MESSAGE _pRpcMessage,
  1498. DWORD *_pdwStubPhase);
  1499. #endif /* __ISpTTSEngineSite_INTERFACE_DEFINED__ */
  1500. /* interface __MIDL_itf_sapiddk_0353 */
  1501. /* [local] */
  1502. typedef struct SPVTEXTFRAG
  1503. {
  1504. struct SPVTEXTFRAG *pNext;
  1505. SPVSTATE State;
  1506. LPCWSTR pTextStart;
  1507. ULONG ulTextLen;
  1508. ULONG ulTextSrcOffset;
  1509. } SPVTEXTFRAG;
  1510. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0353_v0_0_c_ifspec;
  1511. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0353_v0_0_s_ifspec;
  1512. #ifndef __ISpTTSEngine_INTERFACE_DEFINED__
  1513. #define __ISpTTSEngine_INTERFACE_DEFINED__
  1514. /* interface ISpTTSEngine */
  1515. /* [unique][helpstring][uuid][local][object] */
  1516. EXTERN_C const IID IID_ISpTTSEngine;
  1517. #if defined(__cplusplus) && !defined(CINTERFACE)
  1518. MIDL_INTERFACE("A74D7C8E-4CC5-4f2f-A6EB-804DEE18500E")
  1519. ISpTTSEngine : public IUnknown
  1520. {
  1521. public:
  1522. virtual HRESULT STDMETHODCALLTYPE Speak(
  1523. /* [in] */ DWORD dwSpeakFlags,
  1524. /* [in] */ REFGUID rguidFormatId,
  1525. /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
  1526. /* [in] */ const SPVTEXTFRAG *pTextFragList,
  1527. /* [in] */ ISpTTSEngineSite *pOutputSite) = 0;
  1528. virtual HRESULT STDMETHODCALLTYPE GetOutputFormat(
  1529. /* [in] */ const GUID *pTargetFmtId,
  1530. /* [in] */ const WAVEFORMATEX *pTargetWaveFormatEx,
  1531. /* [out] */ GUID *pOutputFormatId,
  1532. /* [out] */ WAVEFORMATEX **ppCoMemOutputWaveFormatEx) = 0;
  1533. };
  1534. #else /* C style interface */
  1535. typedef struct ISpTTSEngineVtbl
  1536. {
  1537. BEGIN_INTERFACE
  1538. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1539. ISpTTSEngine * This,
  1540. /* [in] */ REFIID riid,
  1541. /* [iid_is][out] */ void **ppvObject);
  1542. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1543. ISpTTSEngine * This);
  1544. ULONG ( STDMETHODCALLTYPE *Release )(
  1545. ISpTTSEngine * This);
  1546. HRESULT ( STDMETHODCALLTYPE *Speak )(
  1547. ISpTTSEngine * This,
  1548. /* [in] */ DWORD dwSpeakFlags,
  1549. /* [in] */ REFGUID rguidFormatId,
  1550. /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
  1551. /* [in] */ const SPVTEXTFRAG *pTextFragList,
  1552. /* [in] */ ISpTTSEngineSite *pOutputSite);
  1553. HRESULT ( STDMETHODCALLTYPE *GetOutputFormat )(
  1554. ISpTTSEngine * This,
  1555. /* [in] */ const GUID *pTargetFmtId,
  1556. /* [in] */ const WAVEFORMATEX *pTargetWaveFormatEx,
  1557. /* [out] */ GUID *pOutputFormatId,
  1558. /* [out] */ WAVEFORMATEX **ppCoMemOutputWaveFormatEx);
  1559. END_INTERFACE
  1560. } ISpTTSEngineVtbl;
  1561. interface ISpTTSEngine
  1562. {
  1563. CONST_VTBL struct ISpTTSEngineVtbl *lpVtbl;
  1564. };
  1565. #ifdef COBJMACROS
  1566. #define ISpTTSEngine_QueryInterface(This,riid,ppvObject) \
  1567. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1568. #define ISpTTSEngine_AddRef(This) \
  1569. (This)->lpVtbl -> AddRef(This)
  1570. #define ISpTTSEngine_Release(This) \
  1571. (This)->lpVtbl -> Release(This)
  1572. #define ISpTTSEngine_Speak(This,dwSpeakFlags,rguidFormatId,pWaveFormatEx,pTextFragList,pOutputSite) \
  1573. (This)->lpVtbl -> Speak(This,dwSpeakFlags,rguidFormatId,pWaveFormatEx,pTextFragList,pOutputSite)
  1574. #define ISpTTSEngine_GetOutputFormat(This,pTargetFmtId,pTargetWaveFormatEx,pOutputFormatId,ppCoMemOutputWaveFormatEx) \
  1575. (This)->lpVtbl -> GetOutputFormat(This,pTargetFmtId,pTargetWaveFormatEx,pOutputFormatId,ppCoMemOutputWaveFormatEx)
  1576. #endif /* COBJMACROS */
  1577. #endif /* C style interface */
  1578. HRESULT STDMETHODCALLTYPE ISpTTSEngine_Speak_Proxy(
  1579. ISpTTSEngine * This,
  1580. /* [in] */ DWORD dwSpeakFlags,
  1581. /* [in] */ REFGUID rguidFormatId,
  1582. /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
  1583. /* [in] */ const SPVTEXTFRAG *pTextFragList,
  1584. /* [in] */ ISpTTSEngineSite *pOutputSite);
  1585. void __RPC_STUB ISpTTSEngine_Speak_Stub(
  1586. IRpcStubBuffer *This,
  1587. IRpcChannelBuffer *_pRpcChannelBuffer,
  1588. PRPC_MESSAGE _pRpcMessage,
  1589. DWORD *_pdwStubPhase);
  1590. HRESULT STDMETHODCALLTYPE ISpTTSEngine_GetOutputFormat_Proxy(
  1591. ISpTTSEngine * This,
  1592. /* [in] */ const GUID *pTargetFmtId,
  1593. /* [in] */ const WAVEFORMATEX *pTargetWaveFormatEx,
  1594. /* [out] */ GUID *pOutputFormatId,
  1595. /* [out] */ WAVEFORMATEX **ppCoMemOutputWaveFormatEx);
  1596. void __RPC_STUB ISpTTSEngine_GetOutputFormat_Stub(
  1597. IRpcStubBuffer *This,
  1598. IRpcChannelBuffer *_pRpcChannelBuffer,
  1599. PRPC_MESSAGE _pRpcMessage,
  1600. DWORD *_pdwStubPhase);
  1601. #endif /* __ISpTTSEngine_INTERFACE_DEFINED__ */
  1602. /* interface __MIDL_itf_sapiddk_0354 */
  1603. /* [local] */
  1604. typedef /* [restricted] */ struct SPWORDENTRY
  1605. {
  1606. SPWORDHANDLE hWord;
  1607. WORD LangID;
  1608. WCHAR *pszDisplayText;
  1609. WCHAR *pszLexicalForm;
  1610. SPPHONEID *aPhoneId;
  1611. void *pvClientContext;
  1612. } SPWORDENTRY;
  1613. typedef /* [restricted] */ struct SPRULEENTRY
  1614. {
  1615. SPRULEHANDLE hRule;
  1616. SPSTATEHANDLE hInitialState;
  1617. DWORD Attributes;
  1618. void *pvClientRuleContext;
  1619. void *pvClientGrammarContext;
  1620. } SPRULEENTRY;
  1621. typedef
  1622. enum SPTRANSITIONTYPE
  1623. { SPTRANSEPSILON = 0,
  1624. SPTRANSWORD = SPTRANSEPSILON + 1,
  1625. SPTRANSRULE = SPTRANSWORD + 1,
  1626. SPTRANSTEXTBUF = SPTRANSRULE + 1,
  1627. SPTRANSWILDCARD = SPTRANSTEXTBUF + 1,
  1628. SPTRANSDICTATION = SPTRANSWILDCARD + 1
  1629. } SPTRANSITIONTYPE;
  1630. typedef /* [restricted] */ struct SPTRANSITIONENTRY
  1631. {
  1632. SPTRANSITIONID ID;
  1633. SPSTATEHANDLE hNextState;
  1634. BYTE Type;
  1635. char RequiredConfidence;
  1636. struct
  1637. {
  1638. DWORD fHasProperty;
  1639. } ;
  1640. float Weight;
  1641. union
  1642. {
  1643. struct
  1644. {
  1645. SPSTATEHANDLE hRuleInitialState;
  1646. SPRULEHANDLE hRule;
  1647. void *pvClientRuleContext;
  1648. } ;
  1649. struct
  1650. {
  1651. SPWORDHANDLE hWord;
  1652. void *pvClientWordContext;
  1653. } ;
  1654. struct
  1655. {
  1656. void *pvGrammarCookie;
  1657. } ;
  1658. } ;
  1659. } SPTRANSITIONENTRY;
  1660. typedef /* [restricted] */ struct SPTRANSITIONPROPERTY
  1661. {
  1662. const WCHAR *pszName;
  1663. ULONG ulId;
  1664. const WCHAR *pszValue;
  1665. VARIANT vValue;
  1666. } SPTRANSITIONPROPERTY;
  1667. typedef /* [restricted] */ struct SPSTATEINFO
  1668. {
  1669. ULONG cAllocatedEntries;
  1670. SPTRANSITIONENTRY *pTransitions;
  1671. ULONG cEpsilons;
  1672. ULONG cRules;
  1673. ULONG cWords;
  1674. ULONG cSpecialTransitions;
  1675. } SPSTATEINFO;
  1676. typedef /* [restricted] */ struct SPPATHENTRY
  1677. {
  1678. SPTRANSITIONID hTransition;
  1679. SPPHRASEELEMENT elem;
  1680. } SPPATHENTRY;
  1681. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0354_v0_0_c_ifspec;
  1682. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0354_v0_0_s_ifspec;
  1683. #ifndef __ISpCFGInterpreterSite_INTERFACE_DEFINED__
  1684. #define __ISpCFGInterpreterSite_INTERFACE_DEFINED__
  1685. /* interface ISpCFGInterpreterSite */
  1686. /* [restricted][local][unique][helpstring][uuid][object] */
  1687. EXTERN_C const IID IID_ISpCFGInterpreterSite;
  1688. #if defined(__cplusplus) && !defined(CINTERFACE)
  1689. MIDL_INTERFACE("6A6FFAD8-78B6-473d-B844-98152E4FB16B")
  1690. ISpCFGInterpreterSite : public IUnknown
  1691. {
  1692. public:
  1693. virtual HRESULT STDMETHODCALLTYPE AddTextReplacement(
  1694. /* [in] */ SPPHRASEREPLACEMENT *pReplace) = 0;
  1695. virtual HRESULT STDMETHODCALLTYPE AddProperty(
  1696. /* [in] */ const SPPHRASEPROPERTY *pProperty) = 0;
  1697. virtual HRESULT STDMETHODCALLTYPE GetResourceValue(
  1698. /* [in] */ const WCHAR *pszResourceName,
  1699. /* [out] */ WCHAR **ppCoMemResource) = 0;
  1700. };
  1701. #else /* C style interface */
  1702. typedef struct ISpCFGInterpreterSiteVtbl
  1703. {
  1704. BEGIN_INTERFACE
  1705. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1706. ISpCFGInterpreterSite * This,
  1707. /* [in] */ REFIID riid,
  1708. /* [iid_is][out] */ void **ppvObject);
  1709. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1710. ISpCFGInterpreterSite * This);
  1711. ULONG ( STDMETHODCALLTYPE *Release )(
  1712. ISpCFGInterpreterSite * This);
  1713. HRESULT ( STDMETHODCALLTYPE *AddTextReplacement )(
  1714. ISpCFGInterpreterSite * This,
  1715. /* [in] */ SPPHRASEREPLACEMENT *pReplace);
  1716. HRESULT ( STDMETHODCALLTYPE *AddProperty )(
  1717. ISpCFGInterpreterSite * This,
  1718. /* [in] */ const SPPHRASEPROPERTY *pProperty);
  1719. HRESULT ( STDMETHODCALLTYPE *GetResourceValue )(
  1720. ISpCFGInterpreterSite * This,
  1721. /* [in] */ const WCHAR *pszResourceName,
  1722. /* [out] */ WCHAR **ppCoMemResource);
  1723. END_INTERFACE
  1724. } ISpCFGInterpreterSiteVtbl;
  1725. interface ISpCFGInterpreterSite
  1726. {
  1727. CONST_VTBL struct ISpCFGInterpreterSiteVtbl *lpVtbl;
  1728. };
  1729. #ifdef COBJMACROS
  1730. #define ISpCFGInterpreterSite_QueryInterface(This,riid,ppvObject) \
  1731. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1732. #define ISpCFGInterpreterSite_AddRef(This) \
  1733. (This)->lpVtbl -> AddRef(This)
  1734. #define ISpCFGInterpreterSite_Release(This) \
  1735. (This)->lpVtbl -> Release(This)
  1736. #define ISpCFGInterpreterSite_AddTextReplacement(This,pReplace) \
  1737. (This)->lpVtbl -> AddTextReplacement(This,pReplace)
  1738. #define ISpCFGInterpreterSite_AddProperty(This,pProperty) \
  1739. (This)->lpVtbl -> AddProperty(This,pProperty)
  1740. #define ISpCFGInterpreterSite_GetResourceValue(This,pszResourceName,ppCoMemResource) \
  1741. (This)->lpVtbl -> GetResourceValue(This,pszResourceName,ppCoMemResource)
  1742. #endif /* COBJMACROS */
  1743. #endif /* C style interface */
  1744. HRESULT STDMETHODCALLTYPE ISpCFGInterpreterSite_AddTextReplacement_Proxy(
  1745. ISpCFGInterpreterSite * This,
  1746. /* [in] */ SPPHRASEREPLACEMENT *pReplace);
  1747. void __RPC_STUB ISpCFGInterpreterSite_AddTextReplacement_Stub(
  1748. IRpcStubBuffer *This,
  1749. IRpcChannelBuffer *_pRpcChannelBuffer,
  1750. PRPC_MESSAGE _pRpcMessage,
  1751. DWORD *_pdwStubPhase);
  1752. HRESULT STDMETHODCALLTYPE ISpCFGInterpreterSite_AddProperty_Proxy(
  1753. ISpCFGInterpreterSite * This,
  1754. /* [in] */ const SPPHRASEPROPERTY *pProperty);
  1755. void __RPC_STUB ISpCFGInterpreterSite_AddProperty_Stub(
  1756. IRpcStubBuffer *This,
  1757. IRpcChannelBuffer *_pRpcChannelBuffer,
  1758. PRPC_MESSAGE _pRpcMessage,
  1759. DWORD *_pdwStubPhase);
  1760. HRESULT STDMETHODCALLTYPE ISpCFGInterpreterSite_GetResourceValue_Proxy(
  1761. ISpCFGInterpreterSite * This,
  1762. /* [in] */ const WCHAR *pszResourceName,
  1763. /* [out] */ WCHAR **ppCoMemResource);
  1764. void __RPC_STUB ISpCFGInterpreterSite_GetResourceValue_Stub(
  1765. IRpcStubBuffer *This,
  1766. IRpcChannelBuffer *_pRpcChannelBuffer,
  1767. PRPC_MESSAGE _pRpcMessage,
  1768. DWORD *_pdwStubPhase);
  1769. #endif /* __ISpCFGInterpreterSite_INTERFACE_DEFINED__ */
  1770. #ifndef __ISpCFGInterpreter_INTERFACE_DEFINED__
  1771. #define __ISpCFGInterpreter_INTERFACE_DEFINED__
  1772. /* interface ISpCFGInterpreter */
  1773. /* [restricted][local][unique][helpstring][uuid][object] */
  1774. EXTERN_C const IID IID_ISpCFGInterpreter;
  1775. #if defined(__cplusplus) && !defined(CINTERFACE)
  1776. MIDL_INTERFACE("F3D3F926-11FC-11d3-BB97-00C04F8EE6C0")
  1777. ISpCFGInterpreter : public IUnknown
  1778. {
  1779. public:
  1780. virtual HRESULT STDMETHODCALLTYPE InitGrammar(
  1781. /* [in] */ const WCHAR *pszGrammarName,
  1782. /* [in] */ const void **pvGrammarData) = 0;
  1783. virtual HRESULT STDMETHODCALLTYPE Interpret(
  1784. /* [in] */ ISpPhraseBuilder *pPhrase,
  1785. /* [in] */ const ULONG ulFirstElement,
  1786. /* [in] */ const ULONG ulCountOfElements,
  1787. /* [in] */ ISpCFGInterpreterSite *pSite) = 0;
  1788. };
  1789. #else /* C style interface */
  1790. typedef struct ISpCFGInterpreterVtbl
  1791. {
  1792. BEGIN_INTERFACE
  1793. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1794. ISpCFGInterpreter * This,
  1795. /* [in] */ REFIID riid,
  1796. /* [iid_is][out] */ void **ppvObject);
  1797. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1798. ISpCFGInterpreter * This);
  1799. ULONG ( STDMETHODCALLTYPE *Release )(
  1800. ISpCFGInterpreter * This);
  1801. HRESULT ( STDMETHODCALLTYPE *InitGrammar )(
  1802. ISpCFGInterpreter * This,
  1803. /* [in] */ const WCHAR *pszGrammarName,
  1804. /* [in] */ const void **pvGrammarData);
  1805. HRESULT ( STDMETHODCALLTYPE *Interpret )(
  1806. ISpCFGInterpreter * This,
  1807. /* [in] */ ISpPhraseBuilder *pPhrase,
  1808. /* [in] */ const ULONG ulFirstElement,
  1809. /* [in] */ const ULONG ulCountOfElements,
  1810. /* [in] */ ISpCFGInterpreterSite *pSite);
  1811. END_INTERFACE
  1812. } ISpCFGInterpreterVtbl;
  1813. interface ISpCFGInterpreter
  1814. {
  1815. CONST_VTBL struct ISpCFGInterpreterVtbl *lpVtbl;
  1816. };
  1817. #ifdef COBJMACROS
  1818. #define ISpCFGInterpreter_QueryInterface(This,riid,ppvObject) \
  1819. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1820. #define ISpCFGInterpreter_AddRef(This) \
  1821. (This)->lpVtbl -> AddRef(This)
  1822. #define ISpCFGInterpreter_Release(This) \
  1823. (This)->lpVtbl -> Release(This)
  1824. #define ISpCFGInterpreter_InitGrammar(This,pszGrammarName,pvGrammarData) \
  1825. (This)->lpVtbl -> InitGrammar(This,pszGrammarName,pvGrammarData)
  1826. #define ISpCFGInterpreter_Interpret(This,pPhrase,ulFirstElement,ulCountOfElements,pSite) \
  1827. (This)->lpVtbl -> Interpret(This,pPhrase,ulFirstElement,ulCountOfElements,pSite)
  1828. #endif /* COBJMACROS */
  1829. #endif /* C style interface */
  1830. HRESULT STDMETHODCALLTYPE ISpCFGInterpreter_InitGrammar_Proxy(
  1831. ISpCFGInterpreter * This,
  1832. /* [in] */ const WCHAR *pszGrammarName,
  1833. /* [in] */ const void **pvGrammarData);
  1834. void __RPC_STUB ISpCFGInterpreter_InitGrammar_Stub(
  1835. IRpcStubBuffer *This,
  1836. IRpcChannelBuffer *_pRpcChannelBuffer,
  1837. PRPC_MESSAGE _pRpcMessage,
  1838. DWORD *_pdwStubPhase);
  1839. HRESULT STDMETHODCALLTYPE ISpCFGInterpreter_Interpret_Proxy(
  1840. ISpCFGInterpreter * This,
  1841. /* [in] */ ISpPhraseBuilder *pPhrase,
  1842. /* [in] */ const ULONG ulFirstElement,
  1843. /* [in] */ const ULONG ulCountOfElements,
  1844. /* [in] */ ISpCFGInterpreterSite *pSite);
  1845. void __RPC_STUB ISpCFGInterpreter_Interpret_Stub(
  1846. IRpcStubBuffer *This,
  1847. IRpcChannelBuffer *_pRpcChannelBuffer,
  1848. PRPC_MESSAGE _pRpcMessage,
  1849. DWORD *_pdwStubPhase);
  1850. #endif /* __ISpCFGInterpreter_INTERFACE_DEFINED__ */
  1851. /* interface __MIDL_itf_sapiddk_0356 */
  1852. /* [local] */
  1853. typedef
  1854. enum SPCFGNOTIFY
  1855. { SPCFGN_ADD = 0,
  1856. SPCFGN_REMOVE = SPCFGN_ADD + 1,
  1857. SPCFGN_INVALIDATE = SPCFGN_REMOVE + 1,
  1858. SPCFGN_ACTIVATE = SPCFGN_INVALIDATE + 1,
  1859. SPCFGN_DEACTIVATE = SPCFGN_ACTIVATE + 1
  1860. } SPCFGNOTIFY;
  1861. typedef
  1862. enum SPRESULTTYPE
  1863. { SPRT_CFG = 0,
  1864. SPRT_SLM = 1,
  1865. SPRT_PROPRIETARY = 2,
  1866. SPRT_FALSE_RECOGNITION = 1L << 2
  1867. } SPRESULTTYPE;
  1868. typedef struct tagSPPHRASEALT
  1869. {
  1870. ISpPhraseBuilder *pPhrase;
  1871. ULONG ulStartElementInParent;
  1872. ULONG cElementsInParent;
  1873. ULONG cElementsInAlternate;
  1874. void *pvAltExtra;
  1875. ULONG cbAltExtra;
  1876. } SPPHRASEALT;
  1877. typedef struct SPRECORESULTINFO
  1878. {
  1879. ULONG cbSize;
  1880. SPRESULTTYPE eResultType;
  1881. BOOL fHypothesis;
  1882. BOOL fProprietaryAutoPause;
  1883. ULONGLONG ullStreamPosStart;
  1884. ULONGLONG ullStreamPosEnd;
  1885. SPGRAMMARHANDLE hGrammar;
  1886. ULONG ulSizeEngineData;
  1887. void *pvEngineData;
  1888. ISpPhraseBuilder *pPhrase;
  1889. SPPHRASEALT *aPhraseAlts;
  1890. ULONG ulNumAlts;
  1891. } SPRECORESULTINFO;
  1892. typedef
  1893. enum SPWORDINFOOPT
  1894. { SPWIO_NONE = 0,
  1895. SPWIO_WANT_TEXT = 1
  1896. } SPWORDINFOOPT;
  1897. typedef
  1898. enum SPRULEINFOOPT
  1899. { SPRIO_NONE = 0
  1900. } SPRULEINFOOPT;
  1901. typedef struct SPPARSEINFO
  1902. {
  1903. ULONG cbSize;
  1904. SPRULEHANDLE hRule;
  1905. ULONGLONG ullAudioStreamPosition;
  1906. ULONG ulAudioSize;
  1907. ULONG cTransitions;
  1908. SPPATHENTRY *pPath;
  1909. GUID SREngineID;
  1910. ULONG ulSREnginePrivateDataSize;
  1911. const BYTE *pSREnginePrivateData;
  1912. BOOL fHypothesis;
  1913. } SPPARSEINFO;
  1914. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0356_v0_0_c_ifspec;
  1915. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0356_v0_0_s_ifspec;
  1916. #ifndef __ISpSREngineSite_INTERFACE_DEFINED__
  1917. #define __ISpSREngineSite_INTERFACE_DEFINED__
  1918. /* interface ISpSREngineSite */
  1919. /* [local][unique][helpstring][uuid][object] */
  1920. EXTERN_C const IID IID_ISpSREngineSite;
  1921. #if defined(__cplusplus) && !defined(CINTERFACE)
  1922. MIDL_INTERFACE("3B414AEC-720C-4883-B9EF-178CD394FB3A")
  1923. ISpSREngineSite : public IUnknown
  1924. {
  1925. public:
  1926. virtual HRESULT STDMETHODCALLTYPE Read(
  1927. /* [in] */ void *pv,
  1928. /* [in] */ ULONG cb,
  1929. /* [out] */ ULONG *pcbRead) = 0;
  1930. virtual HRESULT STDMETHODCALLTYPE DataAvailable(
  1931. ULONG *pcb) = 0;
  1932. virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
  1933. /* [in] */ ULONG cbSize) = 0;
  1934. virtual HRESULT STDMETHODCALLTYPE ParseFromTransitions(
  1935. /* [in] */ const SPPARSEINFO *pParseInfo,
  1936. /* [out] */ ISpPhraseBuilder **ppNewPhrase) = 0;
  1937. virtual HRESULT STDMETHODCALLTYPE Recognition(
  1938. /* [in] */ const SPRECORESULTINFO *pResultInfo) = 0;
  1939. virtual HRESULT STDMETHODCALLTYPE AddEvent(
  1940. /* [in] */ const SPEVENT *pEvent,
  1941. /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext) = 0;
  1942. virtual HRESULT STDMETHODCALLTYPE Synchronize(
  1943. /* [in] */ ULONGLONG ullProcessedThruPos) = 0;
  1944. virtual HRESULT STDMETHODCALLTYPE GetWordInfo(
  1945. /* [out][in] */ SPWORDENTRY *pWordEntry,
  1946. /* [in] */ SPWORDINFOOPT Options) = 0;
  1947. virtual HRESULT STDMETHODCALLTYPE SetWordClientContext(
  1948. SPWORDHANDLE hWord,
  1949. void *pvClientContext) = 0;
  1950. virtual HRESULT STDMETHODCALLTYPE GetRuleInfo(
  1951. /* [out][in] */ SPRULEENTRY *pRuleEntry,
  1952. /* [in] */ SPRULEINFOOPT Options) = 0;
  1953. virtual HRESULT STDMETHODCALLTYPE SetRuleClientContext(
  1954. SPRULEHANDLE hRule,
  1955. void *pvClientContext) = 0;
  1956. virtual HRESULT STDMETHODCALLTYPE GetStateInfo(
  1957. SPSTATEHANDLE hState,
  1958. SPSTATEINFO *pStateInfo) = 0;
  1959. virtual HRESULT STDMETHODCALLTYPE GetResource(
  1960. /* [in] */ SPRULEHANDLE hRule,
  1961. /* [in] */ const WCHAR *pszResourceName,
  1962. /* [out] */ WCHAR **ppCoMemResource) = 0;
  1963. virtual HRESULT STDMETHODCALLTYPE GetTransitionProperty(
  1964. /* [in] */ SPTRANSITIONID ID,
  1965. /* [out] */ SPTRANSITIONPROPERTY **ppCoMemProperty) = 0;
  1966. virtual HRESULT STDMETHODCALLTYPE IsAlternate(
  1967. /* [in] */ SPRULEHANDLE hRule,
  1968. /* [in] */ SPRULEHANDLE hAltRule) = 0;
  1969. virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
  1970. /* [in] */ SPRULEHANDLE hRule,
  1971. /* [out] */ ULONG *pulNumAlts) = 0;
  1972. virtual HRESULT STDMETHODCALLTYPE GetContextMaxAlternates(
  1973. /* [in] */ SPRECOCONTEXTHANDLE hContext,
  1974. /* [out] */ ULONG *pulNumAlts) = 0;
  1975. virtual HRESULT STDMETHODCALLTYPE UpdateRecoPos(
  1976. /* [in] */ ULONGLONG ullCurrentRecoPos) = 0;
  1977. };
  1978. #else /* C style interface */
  1979. typedef struct ISpSREngineSiteVtbl
  1980. {
  1981. BEGIN_INTERFACE
  1982. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1983. ISpSREngineSite * This,
  1984. /* [in] */ REFIID riid,
  1985. /* [iid_is][out] */ void **ppvObject);
  1986. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1987. ISpSREngineSite * This);
  1988. ULONG ( STDMETHODCALLTYPE *Release )(
  1989. ISpSREngineSite * This);
  1990. HRESULT ( STDMETHODCALLTYPE *Read )(
  1991. ISpSREngineSite * This,
  1992. /* [in] */ void *pv,
  1993. /* [in] */ ULONG cb,
  1994. /* [out] */ ULONG *pcbRead);
  1995. HRESULT ( STDMETHODCALLTYPE *DataAvailable )(
  1996. ISpSREngineSite * This,
  1997. ULONG *pcb);
  1998. HRESULT ( STDMETHODCALLTYPE *SetBufferNotifySize )(
  1999. ISpSREngineSite * This,
  2000. /* [in] */ ULONG cbSize);
  2001. HRESULT ( STDMETHODCALLTYPE *ParseFromTransitions )(
  2002. ISpSREngineSite * This,
  2003. /* [in] */ const SPPARSEINFO *pParseInfo,
  2004. /* [out] */ ISpPhraseBuilder **ppNewPhrase);
  2005. HRESULT ( STDMETHODCALLTYPE *Recognition )(
  2006. ISpSREngineSite * This,
  2007. /* [in] */ const SPRECORESULTINFO *pResultInfo);
  2008. HRESULT ( STDMETHODCALLTYPE *AddEvent )(
  2009. ISpSREngineSite * This,
  2010. /* [in] */ const SPEVENT *pEvent,
  2011. /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext);
  2012. HRESULT ( STDMETHODCALLTYPE *Synchronize )(
  2013. ISpSREngineSite * This,
  2014. /* [in] */ ULONGLONG ullProcessedThruPos);
  2015. HRESULT ( STDMETHODCALLTYPE *GetWordInfo )(
  2016. ISpSREngineSite * This,
  2017. /* [out][in] */ SPWORDENTRY *pWordEntry,
  2018. /* [in] */ SPWORDINFOOPT Options);
  2019. HRESULT ( STDMETHODCALLTYPE *SetWordClientContext )(
  2020. ISpSREngineSite * This,
  2021. SPWORDHANDLE hWord,
  2022. void *pvClientContext);
  2023. HRESULT ( STDMETHODCALLTYPE *GetRuleInfo )(
  2024. ISpSREngineSite * This,
  2025. /* [out][in] */ SPRULEENTRY *pRuleEntry,
  2026. /* [in] */ SPRULEINFOOPT Options);
  2027. HRESULT ( STDMETHODCALLTYPE *SetRuleClientContext )(
  2028. ISpSREngineSite * This,
  2029. SPRULEHANDLE hRule,
  2030. void *pvClientContext);
  2031. HRESULT ( STDMETHODCALLTYPE *GetStateInfo )(
  2032. ISpSREngineSite * This,
  2033. SPSTATEHANDLE hState,
  2034. SPSTATEINFO *pStateInfo);
  2035. HRESULT ( STDMETHODCALLTYPE *GetResource )(
  2036. ISpSREngineSite * This,
  2037. /* [in] */ SPRULEHANDLE hRule,
  2038. /* [in] */ const WCHAR *pszResourceName,
  2039. /* [out] */ WCHAR **ppCoMemResource);
  2040. HRESULT ( STDMETHODCALLTYPE *GetTransitionProperty )(
  2041. ISpSREngineSite * This,
  2042. /* [in] */ SPTRANSITIONID ID,
  2043. /* [out] */ SPTRANSITIONPROPERTY **ppCoMemProperty);
  2044. HRESULT ( STDMETHODCALLTYPE *IsAlternate )(
  2045. ISpSREngineSite * This,
  2046. /* [in] */ SPRULEHANDLE hRule,
  2047. /* [in] */ SPRULEHANDLE hAltRule);
  2048. HRESULT ( STDMETHODCALLTYPE *GetMaxAlternates )(
  2049. ISpSREngineSite * This,
  2050. /* [in] */ SPRULEHANDLE hRule,
  2051. /* [out] */ ULONG *pulNumAlts);
  2052. HRESULT ( STDMETHODCALLTYPE *GetContextMaxAlternates )(
  2053. ISpSREngineSite * This,
  2054. /* [in] */ SPRECOCONTEXTHANDLE hContext,
  2055. /* [out] */ ULONG *pulNumAlts);
  2056. HRESULT ( STDMETHODCALLTYPE *UpdateRecoPos )(
  2057. ISpSREngineSite * This,
  2058. /* [in] */ ULONGLONG ullCurrentRecoPos);
  2059. END_INTERFACE
  2060. } ISpSREngineSiteVtbl;
  2061. interface ISpSREngineSite
  2062. {
  2063. CONST_VTBL struct ISpSREngineSiteVtbl *lpVtbl;
  2064. };
  2065. #ifdef COBJMACROS
  2066. #define ISpSREngineSite_QueryInterface(This,riid,ppvObject) \
  2067. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2068. #define ISpSREngineSite_AddRef(This) \
  2069. (This)->lpVtbl -> AddRef(This)
  2070. #define ISpSREngineSite_Release(This) \
  2071. (This)->lpVtbl -> Release(This)
  2072. #define ISpSREngineSite_Read(This,pv,cb,pcbRead) \
  2073. (This)->lpVtbl -> Read(This,pv,cb,pcbRead)
  2074. #define ISpSREngineSite_DataAvailable(This,pcb) \
  2075. (This)->lpVtbl -> DataAvailable(This,pcb)
  2076. #define ISpSREngineSite_SetBufferNotifySize(This,cbSize) \
  2077. (This)->lpVtbl -> SetBufferNotifySize(This,cbSize)
  2078. #define ISpSREngineSite_ParseFromTransitions(This,pParseInfo,ppNewPhrase) \
  2079. (This)->lpVtbl -> ParseFromTransitions(This,pParseInfo,ppNewPhrase)
  2080. #define ISpSREngineSite_Recognition(This,pResultInfo) \
  2081. (This)->lpVtbl -> Recognition(This,pResultInfo)
  2082. #define ISpSREngineSite_AddEvent(This,pEvent,hSAPIRecoContext) \
  2083. (This)->lpVtbl -> AddEvent(This,pEvent,hSAPIRecoContext)
  2084. #define ISpSREngineSite_Synchronize(This,ullProcessedThruPos) \
  2085. (This)->lpVtbl -> Synchronize(This,ullProcessedThruPos)
  2086. #define ISpSREngineSite_GetWordInfo(This,pWordEntry,Options) \
  2087. (This)->lpVtbl -> GetWordInfo(This,pWordEntry,Options)
  2088. #define ISpSREngineSite_SetWordClientContext(This,hWord,pvClientContext) \
  2089. (This)->lpVtbl -> SetWordClientContext(This,hWord,pvClientContext)
  2090. #define ISpSREngineSite_GetRuleInfo(This,pRuleEntry,Options) \
  2091. (This)->lpVtbl -> GetRuleInfo(This,pRuleEntry,Options)
  2092. #define ISpSREngineSite_SetRuleClientContext(This,hRule,pvClientContext) \
  2093. (This)->lpVtbl -> SetRuleClientContext(This,hRule,pvClientContext)
  2094. #define ISpSREngineSite_GetStateInfo(This,hState,pStateInfo) \
  2095. (This)->lpVtbl -> GetStateInfo(This,hState,pStateInfo)
  2096. #define ISpSREngineSite_GetResource(This,hRule,pszResourceName,ppCoMemResource) \
  2097. (This)->lpVtbl -> GetResource(This,hRule,pszResourceName,ppCoMemResource)
  2098. #define ISpSREngineSite_GetTransitionProperty(This,ID,ppCoMemProperty) \
  2099. (This)->lpVtbl -> GetTransitionProperty(This,ID,ppCoMemProperty)
  2100. #define ISpSREngineSite_IsAlternate(This,hRule,hAltRule) \
  2101. (This)->lpVtbl -> IsAlternate(This,hRule,hAltRule)
  2102. #define ISpSREngineSite_GetMaxAlternates(This,hRule,pulNumAlts) \
  2103. (This)->lpVtbl -> GetMaxAlternates(This,hRule,pulNumAlts)
  2104. #define ISpSREngineSite_GetContextMaxAlternates(This,hContext,pulNumAlts) \
  2105. (This)->lpVtbl -> GetContextMaxAlternates(This,hContext,pulNumAlts)
  2106. #define ISpSREngineSite_UpdateRecoPos(This,ullCurrentRecoPos) \
  2107. (This)->lpVtbl -> UpdateRecoPos(This,ullCurrentRecoPos)
  2108. #endif /* COBJMACROS */
  2109. #endif /* C style interface */
  2110. HRESULT STDMETHODCALLTYPE ISpSREngineSite_Read_Proxy(
  2111. ISpSREngineSite * This,
  2112. /* [in] */ void *pv,
  2113. /* [in] */ ULONG cb,
  2114. /* [out] */ ULONG *pcbRead);
  2115. void __RPC_STUB ISpSREngineSite_Read_Stub(
  2116. IRpcStubBuffer *This,
  2117. IRpcChannelBuffer *_pRpcChannelBuffer,
  2118. PRPC_MESSAGE _pRpcMessage,
  2119. DWORD *_pdwStubPhase);
  2120. HRESULT STDMETHODCALLTYPE ISpSREngineSite_DataAvailable_Proxy(
  2121. ISpSREngineSite * This,
  2122. ULONG *pcb);
  2123. void __RPC_STUB ISpSREngineSite_DataAvailable_Stub(
  2124. IRpcStubBuffer *This,
  2125. IRpcChannelBuffer *_pRpcChannelBuffer,
  2126. PRPC_MESSAGE _pRpcMessage,
  2127. DWORD *_pdwStubPhase);
  2128. HRESULT STDMETHODCALLTYPE ISpSREngineSite_SetBufferNotifySize_Proxy(
  2129. ISpSREngineSite * This,
  2130. /* [in] */ ULONG cbSize);
  2131. void __RPC_STUB ISpSREngineSite_SetBufferNotifySize_Stub(
  2132. IRpcStubBuffer *This,
  2133. IRpcChannelBuffer *_pRpcChannelBuffer,
  2134. PRPC_MESSAGE _pRpcMessage,
  2135. DWORD *_pdwStubPhase);
  2136. HRESULT STDMETHODCALLTYPE ISpSREngineSite_ParseFromTransitions_Proxy(
  2137. ISpSREngineSite * This,
  2138. /* [in] */ const SPPARSEINFO *pParseInfo,
  2139. /* [out] */ ISpPhraseBuilder **ppNewPhrase);
  2140. void __RPC_STUB ISpSREngineSite_ParseFromTransitions_Stub(
  2141. IRpcStubBuffer *This,
  2142. IRpcChannelBuffer *_pRpcChannelBuffer,
  2143. PRPC_MESSAGE _pRpcMessage,
  2144. DWORD *_pdwStubPhase);
  2145. HRESULT STDMETHODCALLTYPE ISpSREngineSite_Recognition_Proxy(
  2146. ISpSREngineSite * This,
  2147. /* [in] */ const SPRECORESULTINFO *pResultInfo);
  2148. void __RPC_STUB ISpSREngineSite_Recognition_Stub(
  2149. IRpcStubBuffer *This,
  2150. IRpcChannelBuffer *_pRpcChannelBuffer,
  2151. PRPC_MESSAGE _pRpcMessage,
  2152. DWORD *_pdwStubPhase);
  2153. HRESULT STDMETHODCALLTYPE ISpSREngineSite_AddEvent_Proxy(
  2154. ISpSREngineSite * This,
  2155. /* [in] */ const SPEVENT *pEvent,
  2156. /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext);
  2157. void __RPC_STUB ISpSREngineSite_AddEvent_Stub(
  2158. IRpcStubBuffer *This,
  2159. IRpcChannelBuffer *_pRpcChannelBuffer,
  2160. PRPC_MESSAGE _pRpcMessage,
  2161. DWORD *_pdwStubPhase);
  2162. HRESULT STDMETHODCALLTYPE ISpSREngineSite_Synchronize_Proxy(
  2163. ISpSREngineSite * This,
  2164. /* [in] */ ULONGLONG ullProcessedThruPos);
  2165. void __RPC_STUB ISpSREngineSite_Synchronize_Stub(
  2166. IRpcStubBuffer *This,
  2167. IRpcChannelBuffer *_pRpcChannelBuffer,
  2168. PRPC_MESSAGE _pRpcMessage,
  2169. DWORD *_pdwStubPhase);
  2170. HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetWordInfo_Proxy(
  2171. ISpSREngineSite * This,
  2172. /* [out][in] */ SPWORDENTRY *pWordEntry,
  2173. /* [in] */ SPWORDINFOOPT Options);
  2174. void __RPC_STUB ISpSREngineSite_GetWordInfo_Stub(
  2175. IRpcStubBuffer *This,
  2176. IRpcChannelBuffer *_pRpcChannelBuffer,
  2177. PRPC_MESSAGE _pRpcMessage,
  2178. DWORD *_pdwStubPhase);
  2179. HRESULT STDMETHODCALLTYPE ISpSREngineSite_SetWordClientContext_Proxy(
  2180. ISpSREngineSite * This,
  2181. SPWORDHANDLE hWord,
  2182. void *pvClientContext);
  2183. void __RPC_STUB ISpSREngineSite_SetWordClientContext_Stub(
  2184. IRpcStubBuffer *This,
  2185. IRpcChannelBuffer *_pRpcChannelBuffer,
  2186. PRPC_MESSAGE _pRpcMessage,
  2187. DWORD *_pdwStubPhase);
  2188. HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetRuleInfo_Proxy(
  2189. ISpSREngineSite * This,
  2190. /* [out][in] */ SPRULEENTRY *pRuleEntry,
  2191. /* [in] */ SPRULEINFOOPT Options);
  2192. void __RPC_STUB ISpSREngineSite_GetRuleInfo_Stub(
  2193. IRpcStubBuffer *This,
  2194. IRpcChannelBuffer *_pRpcChannelBuffer,
  2195. PRPC_MESSAGE _pRpcMessage,
  2196. DWORD *_pdwStubPhase);
  2197. HRESULT STDMETHODCALLTYPE ISpSREngineSite_SetRuleClientContext_Proxy(
  2198. ISpSREngineSite * This,
  2199. SPRULEHANDLE hRule,
  2200. void *pvClientContext);
  2201. void __RPC_STUB ISpSREngineSite_SetRuleClientContext_Stub(
  2202. IRpcStubBuffer *This,
  2203. IRpcChannelBuffer *_pRpcChannelBuffer,
  2204. PRPC_MESSAGE _pRpcMessage,
  2205. DWORD *_pdwStubPhase);
  2206. HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetStateInfo_Proxy(
  2207. ISpSREngineSite * This,
  2208. SPSTATEHANDLE hState,
  2209. SPSTATEINFO *pStateInfo);
  2210. void __RPC_STUB ISpSREngineSite_GetStateInfo_Stub(
  2211. IRpcStubBuffer *This,
  2212. IRpcChannelBuffer *_pRpcChannelBuffer,
  2213. PRPC_MESSAGE _pRpcMessage,
  2214. DWORD *_pdwStubPhase);
  2215. HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetResource_Proxy(
  2216. ISpSREngineSite * This,
  2217. /* [in] */ SPRULEHANDLE hRule,
  2218. /* [in] */ const WCHAR *pszResourceName,
  2219. /* [out] */ WCHAR **ppCoMemResource);
  2220. void __RPC_STUB ISpSREngineSite_GetResource_Stub(
  2221. IRpcStubBuffer *This,
  2222. IRpcChannelBuffer *_pRpcChannelBuffer,
  2223. PRPC_MESSAGE _pRpcMessage,
  2224. DWORD *_pdwStubPhase);
  2225. HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetTransitionProperty_Proxy(
  2226. ISpSREngineSite * This,
  2227. /* [in] */ SPTRANSITIONID ID,
  2228. /* [out] */ SPTRANSITIONPROPERTY **ppCoMemProperty);
  2229. void __RPC_STUB ISpSREngineSite_GetTransitionProperty_Stub(
  2230. IRpcStubBuffer *This,
  2231. IRpcChannelBuffer *_pRpcChannelBuffer,
  2232. PRPC_MESSAGE _pRpcMessage,
  2233. DWORD *_pdwStubPhase);
  2234. HRESULT STDMETHODCALLTYPE ISpSREngineSite_IsAlternate_Proxy(
  2235. ISpSREngineSite * This,
  2236. /* [in] */ SPRULEHANDLE hRule,
  2237. /* [in] */ SPRULEHANDLE hAltRule);
  2238. void __RPC_STUB ISpSREngineSite_IsAlternate_Stub(
  2239. IRpcStubBuffer *This,
  2240. IRpcChannelBuffer *_pRpcChannelBuffer,
  2241. PRPC_MESSAGE _pRpcMessage,
  2242. DWORD *_pdwStubPhase);
  2243. HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetMaxAlternates_Proxy(
  2244. ISpSREngineSite * This,
  2245. /* [in] */ SPRULEHANDLE hRule,
  2246. /* [out] */ ULONG *pulNumAlts);
  2247. void __RPC_STUB ISpSREngineSite_GetMaxAlternates_Stub(
  2248. IRpcStubBuffer *This,
  2249. IRpcChannelBuffer *_pRpcChannelBuffer,
  2250. PRPC_MESSAGE _pRpcMessage,
  2251. DWORD *_pdwStubPhase);
  2252. HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetContextMaxAlternates_Proxy(
  2253. ISpSREngineSite * This,
  2254. /* [in] */ SPRECOCONTEXTHANDLE hContext,
  2255. /* [out] */ ULONG *pulNumAlts);
  2256. void __RPC_STUB ISpSREngineSite_GetContextMaxAlternates_Stub(
  2257. IRpcStubBuffer *This,
  2258. IRpcChannelBuffer *_pRpcChannelBuffer,
  2259. PRPC_MESSAGE _pRpcMessage,
  2260. DWORD *_pdwStubPhase);
  2261. HRESULT STDMETHODCALLTYPE ISpSREngineSite_UpdateRecoPos_Proxy(
  2262. ISpSREngineSite * This,
  2263. /* [in] */ ULONGLONG ullCurrentRecoPos);
  2264. void __RPC_STUB ISpSREngineSite_UpdateRecoPos_Stub(
  2265. IRpcStubBuffer *This,
  2266. IRpcChannelBuffer *_pRpcChannelBuffer,
  2267. PRPC_MESSAGE _pRpcMessage,
  2268. DWORD *_pdwStubPhase);
  2269. #endif /* __ISpSREngineSite_INTERFACE_DEFINED__ */
  2270. /* interface __MIDL_itf_sapiddk_0357 */
  2271. /* [local] */
  2272. typedef
  2273. enum SPPROPSRC
  2274. { SPPROPSRC_RECO_INST = 0,
  2275. SPPROPSRC_RECO_CTX = SPPROPSRC_RECO_INST + 1,
  2276. SPPROPSRC_RECO_GRAMMAR = SPPROPSRC_RECO_CTX + 1
  2277. } SPPROPSRC;
  2278. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0357_v0_0_c_ifspec;
  2279. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0357_v0_0_s_ifspec;
  2280. #ifndef __ISpSREngine_INTERFACE_DEFINED__
  2281. #define __ISpSREngine_INTERFACE_DEFINED__
  2282. /* interface ISpSREngine */
  2283. /* [local][unique][helpstring][uuid][object] */
  2284. EXTERN_C const IID IID_ISpSREngine;
  2285. #if defined(__cplusplus) && !defined(CINTERFACE)
  2286. MIDL_INTERFACE("2F472991-854B-4465-B613-FBAFB3AD8ED8")
  2287. ISpSREngine : public IUnknown
  2288. {
  2289. public:
  2290. virtual HRESULT STDMETHODCALLTYPE SetSite(
  2291. /* [in] */ ISpSREngineSite *pSite) = 0;
  2292. virtual HRESULT STDMETHODCALLTYPE GetInputAudioFormat(
  2293. /* [in] */ const GUID *pguidSourceFormatId,
  2294. /* [in] */ const WAVEFORMATEX *pSourceWaveFormatEx,
  2295. /* [out] */ GUID *pguidDesiredFormatId,
  2296. /* [out] */ WAVEFORMATEX **ppCoMemDesiredWaveFormatEx) = 0;
  2297. virtual HRESULT STDMETHODCALLTYPE RecognizeStream(
  2298. /* [in] */ REFGUID rguidFmtId,
  2299. /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
  2300. /* [in] */ HANDLE hRequestSync,
  2301. /* [in] */ HANDLE hDataAvailable,
  2302. /* [in] */ HANDLE hExit,
  2303. /* [in] */ BOOL fNewAudioStream,
  2304. /* [in] */ BOOL fRealTimeAudio,
  2305. /* [in] */ ISpObjectToken *pAudioObjectToken) = 0;
  2306. virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
  2307. ISpObjectToken *pProfile) = 0;
  2308. virtual HRESULT STDMETHODCALLTYPE OnCreateGrammar(
  2309. /* [in] */ void *pvEngineRecoContext,
  2310. /* [in] */ SPGRAMMARHANDLE hSAPIGrammar,
  2311. /* [out] */ void **ppvEngineGrammarContext) = 0;
  2312. virtual HRESULT STDMETHODCALLTYPE OnDeleteGrammar(
  2313. /* [in] */ void *pvEngineGrammar) = 0;
  2314. virtual HRESULT STDMETHODCALLTYPE LoadProprietaryGrammar(
  2315. /* [in] */ void *pvEngineGrammar,
  2316. /* [in] */ REFGUID rguidParam,
  2317. /* [string][in] */ const WCHAR *pszStringParam,
  2318. /* [in] */ const void *pvDataParam,
  2319. /* [in] */ ULONG ulDataSize,
  2320. /* [in] */ SPLOADOPTIONS Options) = 0;
  2321. virtual HRESULT STDMETHODCALLTYPE UnloadProprietaryGrammar(
  2322. /* [in] */ void *pvEngineGrammar) = 0;
  2323. virtual HRESULT STDMETHODCALLTYPE SetProprietaryRuleState(
  2324. /* [in] */ void *pvEngineGrammar,
  2325. /* [string][in] */ const WCHAR *pszName,
  2326. /* [in] */ void *pReserved,
  2327. /* [in] */ SPRULESTATE NewState,
  2328. /* [out] */ ULONG *pcRulesChanged) = 0;
  2329. virtual HRESULT STDMETHODCALLTYPE SetProprietaryRuleIdState(
  2330. /* [in] */ void *pvEngineGrammar,
  2331. /* [in] */ DWORD dwRuleId,
  2332. /* [in] */ SPRULESTATE NewState) = 0;
  2333. virtual HRESULT STDMETHODCALLTYPE LoadSLM(
  2334. /* [in] */ void *pvEngineGrammar,
  2335. /* [string][in] */ const WCHAR *pszTopicName) = 0;
  2336. virtual HRESULT STDMETHODCALLTYPE UnloadSLM(
  2337. /* [in] */ void *pvEngineGrammar) = 0;
  2338. virtual HRESULT STDMETHODCALLTYPE SetSLMState(
  2339. /* [in] */ void *pvEngineGrammar,
  2340. /* [in] */ SPRULESTATE NewState) = 0;
  2341. virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
  2342. /* [in] */ void *pvEngineGrammar,
  2343. /* [in] */ const WCHAR *pText,
  2344. /* [in] */ ULONG cchText,
  2345. /* [in] */ const SPTEXTSELECTIONINFO *pInfo) = 0;
  2346. virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
  2347. /* [in] */ void *pvEngineGrammar,
  2348. /* [in] */ const SPTEXTSELECTIONINFO *pInfo) = 0;
  2349. virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
  2350. /* [in] */ void *pvEngineGrammar,
  2351. /* [string][in] */ const WCHAR *pszWord,
  2352. /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
  2353. virtual HRESULT STDMETHODCALLTYPE OnCreateRecoContext(
  2354. /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext,
  2355. /* [out] */ void **ppvEngineContext) = 0;
  2356. virtual HRESULT STDMETHODCALLTYPE OnDeleteRecoContext(
  2357. /* [in] */ void *pvEngineContext) = 0;
  2358. virtual HRESULT STDMETHODCALLTYPE PrivateCall(
  2359. /* [in] */ void *pvEngineContext,
  2360. /* [out][in] */ PVOID pCallFrame,
  2361. /* [in] */ ULONG ulCallFrameSize) = 0;
  2362. virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
  2363. /* [in] */ void *pvEngineContext,
  2364. const WCHAR *pAdaptationData,
  2365. const ULONG cch) = 0;
  2366. virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
  2367. /* [in] */ SPPROPSRC eSrc,
  2368. /* [in] */ void *pvSrcObj,
  2369. /* [in] */ const WCHAR *pName,
  2370. /* [in] */ LONG lValue) = 0;
  2371. virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
  2372. /* [in] */ SPPROPSRC eSrc,
  2373. /* [in] */ void *pvSrcObj,
  2374. /* [in] */ const WCHAR *pName,
  2375. /* [out] */ LONG *lValue) = 0;
  2376. virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
  2377. /* [in] */ SPPROPSRC eSrc,
  2378. /* [in] */ void *pvSrcObj,
  2379. /* [in] */ const WCHAR *pName,
  2380. /* [in] */ const WCHAR *pValue) = 0;
  2381. virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
  2382. /* [in] */ SPPROPSRC eSrc,
  2383. /* [in] */ void *pvSrcObj,
  2384. /* [in] */ const WCHAR *pName,
  2385. /* [out] */ WCHAR **ppCoMemValue) = 0;
  2386. virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
  2387. /* [in] */ void *pvEngineGrammar,
  2388. /* [in] */ SPGRAMMARSTATE eGrammarState) = 0;
  2389. virtual HRESULT STDMETHODCALLTYPE WordNotify(
  2390. SPCFGNOTIFY Action,
  2391. ULONG cWords,
  2392. const SPWORDENTRY *pWords) = 0;
  2393. virtual HRESULT STDMETHODCALLTYPE RuleNotify(
  2394. SPCFGNOTIFY Action,
  2395. ULONG cRules,
  2396. const SPRULEENTRY *pRules) = 0;
  2397. virtual HRESULT STDMETHODCALLTYPE PrivateCallEx(
  2398. /* [in] */ void *pvEngineContext,
  2399. /* [in] */ const void *pInCallFrame,
  2400. /* [in] */ ULONG ulInCallFrameSize,
  2401. /* [out] */ void **ppvCoMemResponse,
  2402. /* [out] */ ULONG *pulResponseSize) = 0;
  2403. virtual HRESULT STDMETHODCALLTYPE SetContextState(
  2404. /* [in] */ void *pvEngineContext,
  2405. /* [in] */ SPCONTEXTSTATE eContextState) = 0;
  2406. };
  2407. #else /* C style interface */
  2408. typedef struct ISpSREngineVtbl
  2409. {
  2410. BEGIN_INTERFACE
  2411. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2412. ISpSREngine * This,
  2413. /* [in] */ REFIID riid,
  2414. /* [iid_is][out] */ void **ppvObject);
  2415. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2416. ISpSREngine * This);
  2417. ULONG ( STDMETHODCALLTYPE *Release )(
  2418. ISpSREngine * This);
  2419. HRESULT ( STDMETHODCALLTYPE *SetSite )(
  2420. ISpSREngine * This,
  2421. /* [in] */ ISpSREngineSite *pSite);
  2422. HRESULT ( STDMETHODCALLTYPE *GetInputAudioFormat )(
  2423. ISpSREngine * This,
  2424. /* [in] */ const GUID *pguidSourceFormatId,
  2425. /* [in] */ const WAVEFORMATEX *pSourceWaveFormatEx,
  2426. /* [out] */ GUID *pguidDesiredFormatId,
  2427. /* [out] */ WAVEFORMATEX **ppCoMemDesiredWaveFormatEx);
  2428. HRESULT ( STDMETHODCALLTYPE *RecognizeStream )(
  2429. ISpSREngine * This,
  2430. /* [in] */ REFGUID rguidFmtId,
  2431. /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
  2432. /* [in] */ HANDLE hRequestSync,
  2433. /* [in] */ HANDLE hDataAvailable,
  2434. /* [in] */ HANDLE hExit,
  2435. /* [in] */ BOOL fNewAudioStream,
  2436. /* [in] */ BOOL fRealTimeAudio,
  2437. /* [in] */ ISpObjectToken *pAudioObjectToken);
  2438. HRESULT ( STDMETHODCALLTYPE *SetRecoProfile )(
  2439. ISpSREngine * This,
  2440. ISpObjectToken *pProfile);
  2441. HRESULT ( STDMETHODCALLTYPE *OnCreateGrammar )(
  2442. ISpSREngine * This,
  2443. /* [in] */ void *pvEngineRecoContext,
  2444. /* [in] */ SPGRAMMARHANDLE hSAPIGrammar,
  2445. /* [out] */ void **ppvEngineGrammarContext);
  2446. HRESULT ( STDMETHODCALLTYPE *OnDeleteGrammar )(
  2447. ISpSREngine * This,
  2448. /* [in] */ void *pvEngineGrammar);
  2449. HRESULT ( STDMETHODCALLTYPE *LoadProprietaryGrammar )(
  2450. ISpSREngine * This,
  2451. /* [in] */ void *pvEngineGrammar,
  2452. /* [in] */ REFGUID rguidParam,
  2453. /* [string][in] */ const WCHAR *pszStringParam,
  2454. /* [in] */ const void *pvDataParam,
  2455. /* [in] */ ULONG ulDataSize,
  2456. /* [in] */ SPLOADOPTIONS Options);
  2457. HRESULT ( STDMETHODCALLTYPE *UnloadProprietaryGrammar )(
  2458. ISpSREngine * This,
  2459. /* [in] */ void *pvEngineGrammar);
  2460. HRESULT ( STDMETHODCALLTYPE *SetProprietaryRuleState )(
  2461. ISpSREngine * This,
  2462. /* [in] */ void *pvEngineGrammar,
  2463. /* [string][in] */ const WCHAR *pszName,
  2464. /* [in] */ void *pReserved,
  2465. /* [in] */ SPRULESTATE NewState,
  2466. /* [out] */ ULONG *pcRulesChanged);
  2467. HRESULT ( STDMETHODCALLTYPE *SetProprietaryRuleIdState )(
  2468. ISpSREngine * This,
  2469. /* [in] */ void *pvEngineGrammar,
  2470. /* [in] */ DWORD dwRuleId,
  2471. /* [in] */ SPRULESTATE NewState);
  2472. HRESULT ( STDMETHODCALLTYPE *LoadSLM )(
  2473. ISpSREngine * This,
  2474. /* [in] */ void *pvEngineGrammar,
  2475. /* [string][in] */ const WCHAR *pszTopicName);
  2476. HRESULT ( STDMETHODCALLTYPE *UnloadSLM )(
  2477. ISpSREngine * This,
  2478. /* [in] */ void *pvEngineGrammar);
  2479. HRESULT ( STDMETHODCALLTYPE *SetSLMState )(
  2480. ISpSREngine * This,
  2481. /* [in] */ void *pvEngineGrammar,
  2482. /* [in] */ SPRULESTATE NewState);
  2483. HRESULT ( STDMETHODCALLTYPE *SetWordSequenceData )(
  2484. ISpSREngine * This,
  2485. /* [in] */ void *pvEngineGrammar,
  2486. /* [in] */ const WCHAR *pText,
  2487. /* [in] */ ULONG cchText,
  2488. /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
  2489. HRESULT ( STDMETHODCALLTYPE *SetTextSelection )(
  2490. ISpSREngine * This,
  2491. /* [in] */ void *pvEngineGrammar,
  2492. /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
  2493. HRESULT ( STDMETHODCALLTYPE *IsPronounceable )(
  2494. ISpSREngine * This,
  2495. /* [in] */ void *pvEngineGrammar,
  2496. /* [string][in] */ const WCHAR *pszWord,
  2497. /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable);
  2498. HRESULT ( STDMETHODCALLTYPE *OnCreateRecoContext )(
  2499. ISpSREngine * This,
  2500. /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext,
  2501. /* [out] */ void **ppvEngineContext);
  2502. HRESULT ( STDMETHODCALLTYPE *OnDeleteRecoContext )(
  2503. ISpSREngine * This,
  2504. /* [in] */ void *pvEngineContext);
  2505. HRESULT ( STDMETHODCALLTYPE *PrivateCall )(
  2506. ISpSREngine * This,
  2507. /* [in] */ void *pvEngineContext,
  2508. /* [out][in] */ PVOID pCallFrame,
  2509. /* [in] */ ULONG ulCallFrameSize);
  2510. HRESULT ( STDMETHODCALLTYPE *SetAdaptationData )(
  2511. ISpSREngine * This,
  2512. /* [in] */ void *pvEngineContext,
  2513. const WCHAR *pAdaptationData,
  2514. const ULONG cch);
  2515. HRESULT ( STDMETHODCALLTYPE *SetPropertyNum )(
  2516. ISpSREngine * This,
  2517. /* [in] */ SPPROPSRC eSrc,
  2518. /* [in] */ void *pvSrcObj,
  2519. /* [in] */ const WCHAR *pName,
  2520. /* [in] */ LONG lValue);
  2521. HRESULT ( STDMETHODCALLTYPE *GetPropertyNum )(
  2522. ISpSREngine * This,
  2523. /* [in] */ SPPROPSRC eSrc,
  2524. /* [in] */ void *pvSrcObj,
  2525. /* [in] */ const WCHAR *pName,
  2526. /* [out] */ LONG *lValue);
  2527. HRESULT ( STDMETHODCALLTYPE *SetPropertyString )(
  2528. ISpSREngine * This,
  2529. /* [in] */ SPPROPSRC eSrc,
  2530. /* [in] */ void *pvSrcObj,
  2531. /* [in] */ const WCHAR *pName,
  2532. /* [in] */ const WCHAR *pValue);
  2533. HRESULT ( STDMETHODCALLTYPE *GetPropertyString )(
  2534. ISpSREngine * This,
  2535. /* [in] */ SPPROPSRC eSrc,
  2536. /* [in] */ void *pvSrcObj,
  2537. /* [in] */ const WCHAR *pName,
  2538. /* [out] */ WCHAR **ppCoMemValue);
  2539. HRESULT ( STDMETHODCALLTYPE *SetGrammarState )(
  2540. ISpSREngine * This,
  2541. /* [in] */ void *pvEngineGrammar,
  2542. /* [in] */ SPGRAMMARSTATE eGrammarState);
  2543. HRESULT ( STDMETHODCALLTYPE *WordNotify )(
  2544. ISpSREngine * This,
  2545. SPCFGNOTIFY Action,
  2546. ULONG cWords,
  2547. const SPWORDENTRY *pWords);
  2548. HRESULT ( STDMETHODCALLTYPE *RuleNotify )(
  2549. ISpSREngine * This,
  2550. SPCFGNOTIFY Action,
  2551. ULONG cRules,
  2552. const SPRULEENTRY *pRules);
  2553. HRESULT ( STDMETHODCALLTYPE *PrivateCallEx )(
  2554. ISpSREngine * This,
  2555. /* [in] */ void *pvEngineContext,
  2556. /* [in] */ const void *pInCallFrame,
  2557. /* [in] */ ULONG ulInCallFrameSize,
  2558. /* [out] */ void **ppvCoMemResponse,
  2559. /* [out] */ ULONG *pulResponseSize);
  2560. HRESULT ( STDMETHODCALLTYPE *SetContextState )(
  2561. ISpSREngine * This,
  2562. /* [in] */ void *pvEngineContext,
  2563. /* [in] */ SPCONTEXTSTATE eContextState);
  2564. END_INTERFACE
  2565. } ISpSREngineVtbl;
  2566. interface ISpSREngine
  2567. {
  2568. CONST_VTBL struct ISpSREngineVtbl *lpVtbl;
  2569. };
  2570. #ifdef COBJMACROS
  2571. #define ISpSREngine_QueryInterface(This,riid,ppvObject) \
  2572. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2573. #define ISpSREngine_AddRef(This) \
  2574. (This)->lpVtbl -> AddRef(This)
  2575. #define ISpSREngine_Release(This) \
  2576. (This)->lpVtbl -> Release(This)
  2577. #define ISpSREngine_SetSite(This,pSite) \
  2578. (This)->lpVtbl -> SetSite(This,pSite)
  2579. #define ISpSREngine_GetInputAudioFormat(This,pguidSourceFormatId,pSourceWaveFormatEx,pguidDesiredFormatId,ppCoMemDesiredWaveFormatEx) \
  2580. (This)->lpVtbl -> GetInputAudioFormat(This,pguidSourceFormatId,pSourceWaveFormatEx,pguidDesiredFormatId,ppCoMemDesiredWaveFormatEx)
  2581. #define ISpSREngine_RecognizeStream(This,rguidFmtId,pWaveFormatEx,hRequestSync,hDataAvailable,hExit,fNewAudioStream,fRealTimeAudio,pAudioObjectToken) \
  2582. (This)->lpVtbl -> RecognizeStream(This,rguidFmtId,pWaveFormatEx,hRequestSync,hDataAvailable,hExit,fNewAudioStream,fRealTimeAudio,pAudioObjectToken)
  2583. #define ISpSREngine_SetRecoProfile(This,pProfile) \
  2584. (This)->lpVtbl -> SetRecoProfile(This,pProfile)
  2585. #define ISpSREngine_OnCreateGrammar(This,pvEngineRecoContext,hSAPIGrammar,ppvEngineGrammarContext) \
  2586. (This)->lpVtbl -> OnCreateGrammar(This,pvEngineRecoContext,hSAPIGrammar,ppvEngineGrammarContext)
  2587. #define ISpSREngine_OnDeleteGrammar(This,pvEngineGrammar) \
  2588. (This)->lpVtbl -> OnDeleteGrammar(This,pvEngineGrammar)
  2589. #define ISpSREngine_LoadProprietaryGrammar(This,pvEngineGrammar,rguidParam,pszStringParam,pvDataParam,ulDataSize,Options) \
  2590. (This)->lpVtbl -> LoadProprietaryGrammar(This,pvEngineGrammar,rguidParam,pszStringParam,pvDataParam,ulDataSize,Options)
  2591. #define ISpSREngine_UnloadProprietaryGrammar(This,pvEngineGrammar) \
  2592. (This)->lpVtbl -> UnloadProprietaryGrammar(This,pvEngineGrammar)
  2593. #define ISpSREngine_SetProprietaryRuleState(This,pvEngineGrammar,pszName,pReserved,NewState,pcRulesChanged) \
  2594. (This)->lpVtbl -> SetProprietaryRuleState(This,pvEngineGrammar,pszName,pReserved,NewState,pcRulesChanged)
  2595. #define ISpSREngine_SetProprietaryRuleIdState(This,pvEngineGrammar,dwRuleId,NewState) \
  2596. (This)->lpVtbl -> SetProprietaryRuleIdState(This,pvEngineGrammar,dwRuleId,NewState)
  2597. #define ISpSREngine_LoadSLM(This,pvEngineGrammar,pszTopicName) \
  2598. (This)->lpVtbl -> LoadSLM(This,pvEngineGrammar,pszTopicName)
  2599. #define ISpSREngine_UnloadSLM(This,pvEngineGrammar) \
  2600. (This)->lpVtbl -> UnloadSLM(This,pvEngineGrammar)
  2601. #define ISpSREngine_SetSLMState(This,pvEngineGrammar,NewState) \
  2602. (This)->lpVtbl -> SetSLMState(This,pvEngineGrammar,NewState)
  2603. #define ISpSREngine_SetWordSequenceData(This,pvEngineGrammar,pText,cchText,pInfo) \
  2604. (This)->lpVtbl -> SetWordSequenceData(This,pvEngineGrammar,pText,cchText,pInfo)
  2605. #define ISpSREngine_SetTextSelection(This,pvEngineGrammar,pInfo) \
  2606. (This)->lpVtbl -> SetTextSelection(This,pvEngineGrammar,pInfo)
  2607. #define ISpSREngine_IsPronounceable(This,pvEngineGrammar,pszWord,pWordPronounceable) \
  2608. (This)->lpVtbl -> IsPronounceable(This,pvEngineGrammar,pszWord,pWordPronounceable)
  2609. #define ISpSREngine_OnCreateRecoContext(This,hSAPIRecoContext,ppvEngineContext) \
  2610. (This)->lpVtbl -> OnCreateRecoContext(This,hSAPIRecoContext,ppvEngineContext)
  2611. #define ISpSREngine_OnDeleteRecoContext(This,pvEngineContext) \
  2612. (This)->lpVtbl -> OnDeleteRecoContext(This,pvEngineContext)
  2613. #define ISpSREngine_PrivateCall(This,pvEngineContext,pCallFrame,ulCallFrameSize) \
  2614. (This)->lpVtbl -> PrivateCall(This,pvEngineContext,pCallFrame,ulCallFrameSize)
  2615. #define ISpSREngine_SetAdaptationData(This,pvEngineContext,pAdaptationData,cch) \
  2616. (This)->lpVtbl -> SetAdaptationData(This,pvEngineContext,pAdaptationData,cch)
  2617. #define ISpSREngine_SetPropertyNum(This,eSrc,pvSrcObj,pName,lValue) \
  2618. (This)->lpVtbl -> SetPropertyNum(This,eSrc,pvSrcObj,pName,lValue)
  2619. #define ISpSREngine_GetPropertyNum(This,eSrc,pvSrcObj,pName,lValue) \
  2620. (This)->lpVtbl -> GetPropertyNum(This,eSrc,pvSrcObj,pName,lValue)
  2621. #define ISpSREngine_SetPropertyString(This,eSrc,pvSrcObj,pName,pValue) \
  2622. (This)->lpVtbl -> SetPropertyString(This,eSrc,pvSrcObj,pName,pValue)
  2623. #define ISpSREngine_GetPropertyString(This,eSrc,pvSrcObj,pName,ppCoMemValue) \
  2624. (This)->lpVtbl -> GetPropertyString(This,eSrc,pvSrcObj,pName,ppCoMemValue)
  2625. #define ISpSREngine_SetGrammarState(This,pvEngineGrammar,eGrammarState) \
  2626. (This)->lpVtbl -> SetGrammarState(This,pvEngineGrammar,eGrammarState)
  2627. #define ISpSREngine_WordNotify(This,Action,cWords,pWords) \
  2628. (This)->lpVtbl -> WordNotify(This,Action,cWords,pWords)
  2629. #define ISpSREngine_RuleNotify(This,Action,cRules,pRules) \
  2630. (This)->lpVtbl -> RuleNotify(This,Action,cRules,pRules)
  2631. #define ISpSREngine_PrivateCallEx(This,pvEngineContext,pInCallFrame,ulInCallFrameSize,ppvCoMemResponse,pulResponseSize) \
  2632. (This)->lpVtbl -> PrivateCallEx(This,pvEngineContext,pInCallFrame,ulInCallFrameSize,ppvCoMemResponse,pulResponseSize)
  2633. #define ISpSREngine_SetContextState(This,pvEngineContext,eContextState) \
  2634. (This)->lpVtbl -> SetContextState(This,pvEngineContext,eContextState)
  2635. #endif /* COBJMACROS */
  2636. #endif /* C style interface */
  2637. HRESULT STDMETHODCALLTYPE ISpSREngine_SetSite_Proxy(
  2638. ISpSREngine * This,
  2639. /* [in] */ ISpSREngineSite *pSite);
  2640. void __RPC_STUB ISpSREngine_SetSite_Stub(
  2641. IRpcStubBuffer *This,
  2642. IRpcChannelBuffer *_pRpcChannelBuffer,
  2643. PRPC_MESSAGE _pRpcMessage,
  2644. DWORD *_pdwStubPhase);
  2645. HRESULT STDMETHODCALLTYPE ISpSREngine_GetInputAudioFormat_Proxy(
  2646. ISpSREngine * This,
  2647. /* [in] */ const GUID *pguidSourceFormatId,
  2648. /* [in] */ const WAVEFORMATEX *pSourceWaveFormatEx,
  2649. /* [out] */ GUID *pguidDesiredFormatId,
  2650. /* [out] */ WAVEFORMATEX **ppCoMemDesiredWaveFormatEx);
  2651. void __RPC_STUB ISpSREngine_GetInputAudioFormat_Stub(
  2652. IRpcStubBuffer *This,
  2653. IRpcChannelBuffer *_pRpcChannelBuffer,
  2654. PRPC_MESSAGE _pRpcMessage,
  2655. DWORD *_pdwStubPhase);
  2656. HRESULT STDMETHODCALLTYPE ISpSREngine_RecognizeStream_Proxy(
  2657. ISpSREngine * This,
  2658. /* [in] */ REFGUID rguidFmtId,
  2659. /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
  2660. /* [in] */ HANDLE hRequestSync,
  2661. /* [in] */ HANDLE hDataAvailable,
  2662. /* [in] */ HANDLE hExit,
  2663. /* [in] */ BOOL fNewAudioStream,
  2664. /* [in] */ BOOL fRealTimeAudio,
  2665. /* [in] */ ISpObjectToken *pAudioObjectToken);
  2666. void __RPC_STUB ISpSREngine_RecognizeStream_Stub(
  2667. IRpcStubBuffer *This,
  2668. IRpcChannelBuffer *_pRpcChannelBuffer,
  2669. PRPC_MESSAGE _pRpcMessage,
  2670. DWORD *_pdwStubPhase);
  2671. HRESULT STDMETHODCALLTYPE ISpSREngine_SetRecoProfile_Proxy(
  2672. ISpSREngine * This,
  2673. ISpObjectToken *pProfile);
  2674. void __RPC_STUB ISpSREngine_SetRecoProfile_Stub(
  2675. IRpcStubBuffer *This,
  2676. IRpcChannelBuffer *_pRpcChannelBuffer,
  2677. PRPC_MESSAGE _pRpcMessage,
  2678. DWORD *_pdwStubPhase);
  2679. HRESULT STDMETHODCALLTYPE ISpSREngine_OnCreateGrammar_Proxy(
  2680. ISpSREngine * This,
  2681. /* [in] */ void *pvEngineRecoContext,
  2682. /* [in] */ SPGRAMMARHANDLE hSAPIGrammar,
  2683. /* [out] */ void **ppvEngineGrammarContext);
  2684. void __RPC_STUB ISpSREngine_OnCreateGrammar_Stub(
  2685. IRpcStubBuffer *This,
  2686. IRpcChannelBuffer *_pRpcChannelBuffer,
  2687. PRPC_MESSAGE _pRpcMessage,
  2688. DWORD *_pdwStubPhase);
  2689. HRESULT STDMETHODCALLTYPE ISpSREngine_OnDeleteGrammar_Proxy(
  2690. ISpSREngine * This,
  2691. /* [in] */ void *pvEngineGrammar);
  2692. void __RPC_STUB ISpSREngine_OnDeleteGrammar_Stub(
  2693. IRpcStubBuffer *This,
  2694. IRpcChannelBuffer *_pRpcChannelBuffer,
  2695. PRPC_MESSAGE _pRpcMessage,
  2696. DWORD *_pdwStubPhase);
  2697. HRESULT STDMETHODCALLTYPE ISpSREngine_LoadProprietaryGrammar_Proxy(
  2698. ISpSREngine * This,
  2699. /* [in] */ void *pvEngineGrammar,
  2700. /* [in] */ REFGUID rguidParam,
  2701. /* [string][in] */ const WCHAR *pszStringParam,
  2702. /* [in] */ const void *pvDataParam,
  2703. /* [in] */ ULONG ulDataSize,
  2704. /* [in] */ SPLOADOPTIONS Options);
  2705. void __RPC_STUB ISpSREngine_LoadProprietaryGrammar_Stub(
  2706. IRpcStubBuffer *This,
  2707. IRpcChannelBuffer *_pRpcChannelBuffer,
  2708. PRPC_MESSAGE _pRpcMessage,
  2709. DWORD *_pdwStubPhase);
  2710. HRESULT STDMETHODCALLTYPE ISpSREngine_UnloadProprietaryGrammar_Proxy(
  2711. ISpSREngine * This,
  2712. /* [in] */ void *pvEngineGrammar);
  2713. void __RPC_STUB ISpSREngine_UnloadProprietaryGrammar_Stub(
  2714. IRpcStubBuffer *This,
  2715. IRpcChannelBuffer *_pRpcChannelBuffer,
  2716. PRPC_MESSAGE _pRpcMessage,
  2717. DWORD *_pdwStubPhase);
  2718. HRESULT STDMETHODCALLTYPE ISpSREngine_SetProprietaryRuleState_Proxy(
  2719. ISpSREngine * This,
  2720. /* [in] */ void *pvEngineGrammar,
  2721. /* [string][in] */ const WCHAR *pszName,
  2722. /* [in] */ void *pReserved,
  2723. /* [in] */ SPRULESTATE NewState,
  2724. /* [out] */ ULONG *pcRulesChanged);
  2725. void __RPC_STUB ISpSREngine_SetProprietaryRuleState_Stub(
  2726. IRpcStubBuffer *This,
  2727. IRpcChannelBuffer *_pRpcChannelBuffer,
  2728. PRPC_MESSAGE _pRpcMessage,
  2729. DWORD *_pdwStubPhase);
  2730. HRESULT STDMETHODCALLTYPE ISpSREngine_SetProprietaryRuleIdState_Proxy(
  2731. ISpSREngine * This,
  2732. /* [in] */ void *pvEngineGrammar,
  2733. /* [in] */ DWORD dwRuleId,
  2734. /* [in] */ SPRULESTATE NewState);
  2735. void __RPC_STUB ISpSREngine_SetProprietaryRuleIdState_Stub(
  2736. IRpcStubBuffer *This,
  2737. IRpcChannelBuffer *_pRpcChannelBuffer,
  2738. PRPC_MESSAGE _pRpcMessage,
  2739. DWORD *_pdwStubPhase);
  2740. HRESULT STDMETHODCALLTYPE ISpSREngine_LoadSLM_Proxy(
  2741. ISpSREngine * This,
  2742. /* [in] */ void *pvEngineGrammar,
  2743. /* [string][in] */ const WCHAR *pszTopicName);
  2744. void __RPC_STUB ISpSREngine_LoadSLM_Stub(
  2745. IRpcStubBuffer *This,
  2746. IRpcChannelBuffer *_pRpcChannelBuffer,
  2747. PRPC_MESSAGE _pRpcMessage,
  2748. DWORD *_pdwStubPhase);
  2749. HRESULT STDMETHODCALLTYPE ISpSREngine_UnloadSLM_Proxy(
  2750. ISpSREngine * This,
  2751. /* [in] */ void *pvEngineGrammar);
  2752. void __RPC_STUB ISpSREngine_UnloadSLM_Stub(
  2753. IRpcStubBuffer *This,
  2754. IRpcChannelBuffer *_pRpcChannelBuffer,
  2755. PRPC_MESSAGE _pRpcMessage,
  2756. DWORD *_pdwStubPhase);
  2757. HRESULT STDMETHODCALLTYPE ISpSREngine_SetSLMState_Proxy(
  2758. ISpSREngine * This,
  2759. /* [in] */ void *pvEngineGrammar,
  2760. /* [in] */ SPRULESTATE NewState);
  2761. void __RPC_STUB ISpSREngine_SetSLMState_Stub(
  2762. IRpcStubBuffer *This,
  2763. IRpcChannelBuffer *_pRpcChannelBuffer,
  2764. PRPC_MESSAGE _pRpcMessage,
  2765. DWORD *_pdwStubPhase);
  2766. HRESULT STDMETHODCALLTYPE ISpSREngine_SetWordSequenceData_Proxy(
  2767. ISpSREngine * This,
  2768. /* [in] */ void *pvEngineGrammar,
  2769. /* [in] */ const WCHAR *pText,
  2770. /* [in] */ ULONG cchText,
  2771. /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
  2772. void __RPC_STUB ISpSREngine_SetWordSequenceData_Stub(
  2773. IRpcStubBuffer *This,
  2774. IRpcChannelBuffer *_pRpcChannelBuffer,
  2775. PRPC_MESSAGE _pRpcMessage,
  2776. DWORD *_pdwStubPhase);
  2777. HRESULT STDMETHODCALLTYPE ISpSREngine_SetTextSelection_Proxy(
  2778. ISpSREngine * This,
  2779. /* [in] */ void *pvEngineGrammar,
  2780. /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
  2781. void __RPC_STUB ISpSREngine_SetTextSelection_Stub(
  2782. IRpcStubBuffer *This,
  2783. IRpcChannelBuffer *_pRpcChannelBuffer,
  2784. PRPC_MESSAGE _pRpcMessage,
  2785. DWORD *_pdwStubPhase);
  2786. HRESULT STDMETHODCALLTYPE ISpSREngine_IsPronounceable_Proxy(
  2787. ISpSREngine * This,
  2788. /* [in] */ void *pvEngineGrammar,
  2789. /* [string][in] */ const WCHAR *pszWord,
  2790. /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable);
  2791. void __RPC_STUB ISpSREngine_IsPronounceable_Stub(
  2792. IRpcStubBuffer *This,
  2793. IRpcChannelBuffer *_pRpcChannelBuffer,
  2794. PRPC_MESSAGE _pRpcMessage,
  2795. DWORD *_pdwStubPhase);
  2796. HRESULT STDMETHODCALLTYPE ISpSREngine_OnCreateRecoContext_Proxy(
  2797. ISpSREngine * This,
  2798. /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext,
  2799. /* [out] */ void **ppvEngineContext);
  2800. void __RPC_STUB ISpSREngine_OnCreateRecoContext_Stub(
  2801. IRpcStubBuffer *This,
  2802. IRpcChannelBuffer *_pRpcChannelBuffer,
  2803. PRPC_MESSAGE _pRpcMessage,
  2804. DWORD *_pdwStubPhase);
  2805. HRESULT STDMETHODCALLTYPE ISpSREngine_OnDeleteRecoContext_Proxy(
  2806. ISpSREngine * This,
  2807. /* [in] */ void *pvEngineContext);
  2808. void __RPC_STUB ISpSREngine_OnDeleteRecoContext_Stub(
  2809. IRpcStubBuffer *This,
  2810. IRpcChannelBuffer *_pRpcChannelBuffer,
  2811. PRPC_MESSAGE _pRpcMessage,
  2812. DWORD *_pdwStubPhase);
  2813. HRESULT STDMETHODCALLTYPE ISpSREngine_PrivateCall_Proxy(
  2814. ISpSREngine * This,
  2815. /* [in] */ void *pvEngineContext,
  2816. /* [out][in] */ PVOID pCallFrame,
  2817. /* [in] */ ULONG ulCallFrameSize);
  2818. void __RPC_STUB ISpSREngine_PrivateCall_Stub(
  2819. IRpcStubBuffer *This,
  2820. IRpcChannelBuffer *_pRpcChannelBuffer,
  2821. PRPC_MESSAGE _pRpcMessage,
  2822. DWORD *_pdwStubPhase);
  2823. HRESULT STDMETHODCALLTYPE ISpSREngine_SetAdaptationData_Proxy(
  2824. ISpSREngine * This,
  2825. /* [in] */ void *pvEngineContext,
  2826. const WCHAR *pAdaptationData,
  2827. const ULONG cch);
  2828. void __RPC_STUB ISpSREngine_SetAdaptationData_Stub(
  2829. IRpcStubBuffer *This,
  2830. IRpcChannelBuffer *_pRpcChannelBuffer,
  2831. PRPC_MESSAGE _pRpcMessage,
  2832. DWORD *_pdwStubPhase);
  2833. HRESULT STDMETHODCALLTYPE ISpSREngine_SetPropertyNum_Proxy(
  2834. ISpSREngine * This,
  2835. /* [in] */ SPPROPSRC eSrc,
  2836. /* [in] */ void *pvSrcObj,
  2837. /* [in] */ const WCHAR *pName,
  2838. /* [in] */ LONG lValue);
  2839. void __RPC_STUB ISpSREngine_SetPropertyNum_Stub(
  2840. IRpcStubBuffer *This,
  2841. IRpcChannelBuffer *_pRpcChannelBuffer,
  2842. PRPC_MESSAGE _pRpcMessage,
  2843. DWORD *_pdwStubPhase);
  2844. HRESULT STDMETHODCALLTYPE ISpSREngine_GetPropertyNum_Proxy(
  2845. ISpSREngine * This,
  2846. /* [in] */ SPPROPSRC eSrc,
  2847. /* [in] */ void *pvSrcObj,
  2848. /* [in] */ const WCHAR *pName,
  2849. /* [out] */ LONG *lValue);
  2850. void __RPC_STUB ISpSREngine_GetPropertyNum_Stub(
  2851. IRpcStubBuffer *This,
  2852. IRpcChannelBuffer *_pRpcChannelBuffer,
  2853. PRPC_MESSAGE _pRpcMessage,
  2854. DWORD *_pdwStubPhase);
  2855. HRESULT STDMETHODCALLTYPE ISpSREngine_SetPropertyString_Proxy(
  2856. ISpSREngine * This,
  2857. /* [in] */ SPPROPSRC eSrc,
  2858. /* [in] */ void *pvSrcObj,
  2859. /* [in] */ const WCHAR *pName,
  2860. /* [in] */ const WCHAR *pValue);
  2861. void __RPC_STUB ISpSREngine_SetPropertyString_Stub(
  2862. IRpcStubBuffer *This,
  2863. IRpcChannelBuffer *_pRpcChannelBuffer,
  2864. PRPC_MESSAGE _pRpcMessage,
  2865. DWORD *_pdwStubPhase);
  2866. HRESULT STDMETHODCALLTYPE ISpSREngine_GetPropertyString_Proxy(
  2867. ISpSREngine * This,
  2868. /* [in] */ SPPROPSRC eSrc,
  2869. /* [in] */ void *pvSrcObj,
  2870. /* [in] */ const WCHAR *pName,
  2871. /* [out] */ WCHAR **ppCoMemValue);
  2872. void __RPC_STUB ISpSREngine_GetPropertyString_Stub(
  2873. IRpcStubBuffer *This,
  2874. IRpcChannelBuffer *_pRpcChannelBuffer,
  2875. PRPC_MESSAGE _pRpcMessage,
  2876. DWORD *_pdwStubPhase);
  2877. HRESULT STDMETHODCALLTYPE ISpSREngine_SetGrammarState_Proxy(
  2878. ISpSREngine * This,
  2879. /* [in] */ void *pvEngineGrammar,
  2880. /* [in] */ SPGRAMMARSTATE eGrammarState);
  2881. void __RPC_STUB ISpSREngine_SetGrammarState_Stub(
  2882. IRpcStubBuffer *This,
  2883. IRpcChannelBuffer *_pRpcChannelBuffer,
  2884. PRPC_MESSAGE _pRpcMessage,
  2885. DWORD *_pdwStubPhase);
  2886. HRESULT STDMETHODCALLTYPE ISpSREngine_WordNotify_Proxy(
  2887. ISpSREngine * This,
  2888. SPCFGNOTIFY Action,
  2889. ULONG cWords,
  2890. const SPWORDENTRY *pWords);
  2891. void __RPC_STUB ISpSREngine_WordNotify_Stub(
  2892. IRpcStubBuffer *This,
  2893. IRpcChannelBuffer *_pRpcChannelBuffer,
  2894. PRPC_MESSAGE _pRpcMessage,
  2895. DWORD *_pdwStubPhase);
  2896. HRESULT STDMETHODCALLTYPE ISpSREngine_RuleNotify_Proxy(
  2897. ISpSREngine * This,
  2898. SPCFGNOTIFY Action,
  2899. ULONG cRules,
  2900. const SPRULEENTRY *pRules);
  2901. void __RPC_STUB ISpSREngine_RuleNotify_Stub(
  2902. IRpcStubBuffer *This,
  2903. IRpcChannelBuffer *_pRpcChannelBuffer,
  2904. PRPC_MESSAGE _pRpcMessage,
  2905. DWORD *_pdwStubPhase);
  2906. HRESULT STDMETHODCALLTYPE ISpSREngine_PrivateCallEx_Proxy(
  2907. ISpSREngine * This,
  2908. /* [in] */ void *pvEngineContext,
  2909. /* [in] */ const void *pInCallFrame,
  2910. /* [in] */ ULONG ulInCallFrameSize,
  2911. /* [out] */ void **ppvCoMemResponse,
  2912. /* [out] */ ULONG *pulResponseSize);
  2913. void __RPC_STUB ISpSREngine_PrivateCallEx_Stub(
  2914. IRpcStubBuffer *This,
  2915. IRpcChannelBuffer *_pRpcChannelBuffer,
  2916. PRPC_MESSAGE _pRpcMessage,
  2917. DWORD *_pdwStubPhase);
  2918. HRESULT STDMETHODCALLTYPE ISpSREngine_SetContextState_Proxy(
  2919. ISpSREngine * This,
  2920. /* [in] */ void *pvEngineContext,
  2921. /* [in] */ SPCONTEXTSTATE eContextState);
  2922. void __RPC_STUB ISpSREngine_SetContextState_Stub(
  2923. IRpcStubBuffer *This,
  2924. IRpcChannelBuffer *_pRpcChannelBuffer,
  2925. PRPC_MESSAGE _pRpcMessage,
  2926. DWORD *_pdwStubPhase);
  2927. #endif /* __ISpSREngine_INTERFACE_DEFINED__ */
  2928. /* interface __MIDL_itf_sapiddk_0358 */
  2929. /* [local] */
  2930. typedef struct tagSPPHRASEALTREQUEST
  2931. {
  2932. ULONG ulStartElement;
  2933. ULONG cElements;
  2934. ULONG ulRequestAltCount;
  2935. void *pvResultExtra;
  2936. ULONG cbResultExtra;
  2937. ISpPhrase *pPhrase;
  2938. ISpRecoContext *pRecoContext;
  2939. } SPPHRASEALTREQUEST;
  2940. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0358_v0_0_c_ifspec;
  2941. extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0358_v0_0_s_ifspec;
  2942. #ifndef __ISpSRAlternates_INTERFACE_DEFINED__
  2943. #define __ISpSRAlternates_INTERFACE_DEFINED__
  2944. /* interface ISpSRAlternates */
  2945. /* [local][unique][helpstring][uuid][object] */
  2946. EXTERN_C const IID IID_ISpSRAlternates;
  2947. #if defined(__cplusplus) && !defined(CINTERFACE)
  2948. MIDL_INTERFACE("FECE8294-2BE1-408f-8E68-2DE377092F0E")
  2949. ISpSRAlternates : public IUnknown
  2950. {
  2951. public:
  2952. virtual HRESULT STDMETHODCALLTYPE GetAlternates(
  2953. /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
  2954. /* [out] */ SPPHRASEALT **ppAlts,
  2955. /* [out] */ ULONG *pcAlts) = 0;
  2956. virtual HRESULT STDMETHODCALLTYPE Commit(
  2957. /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
  2958. /* [in] */ SPPHRASEALT *pAlt,
  2959. /* [out] */ void **ppvResultExtra,
  2960. /* [out] */ ULONG *pcbResultExtra) = 0;
  2961. };
  2962. #else /* C style interface */
  2963. typedef struct ISpSRAlternatesVtbl
  2964. {
  2965. BEGIN_INTERFACE
  2966. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2967. ISpSRAlternates * This,
  2968. /* [in] */ REFIID riid,
  2969. /* [iid_is][out] */ void **ppvObject);
  2970. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2971. ISpSRAlternates * This);
  2972. ULONG ( STDMETHODCALLTYPE *Release )(
  2973. ISpSRAlternates * This);
  2974. HRESULT ( STDMETHODCALLTYPE *GetAlternates )(
  2975. ISpSRAlternates * This,
  2976. /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
  2977. /* [out] */ SPPHRASEALT **ppAlts,
  2978. /* [out] */ ULONG *pcAlts);
  2979. HRESULT ( STDMETHODCALLTYPE *Commit )(
  2980. ISpSRAlternates * This,
  2981. /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
  2982. /* [in] */ SPPHRASEALT *pAlt,
  2983. /* [out] */ void **ppvResultExtra,
  2984. /* [out] */ ULONG *pcbResultExtra);
  2985. END_INTERFACE
  2986. } ISpSRAlternatesVtbl;
  2987. interface ISpSRAlternates
  2988. {
  2989. CONST_VTBL struct ISpSRAlternatesVtbl *lpVtbl;
  2990. };
  2991. #ifdef COBJMACROS
  2992. #define ISpSRAlternates_QueryInterface(This,riid,ppvObject) \
  2993. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2994. #define ISpSRAlternates_AddRef(This) \
  2995. (This)->lpVtbl -> AddRef(This)
  2996. #define ISpSRAlternates_Release(This) \
  2997. (This)->lpVtbl -> Release(This)
  2998. #define ISpSRAlternates_GetAlternates(This,pAltRequest,ppAlts,pcAlts) \
  2999. (This)->lpVtbl -> GetAlternates(This,pAltRequest,ppAlts,pcAlts)
  3000. #define ISpSRAlternates_Commit(This,pAltRequest,pAlt,ppvResultExtra,pcbResultExtra) \
  3001. (This)->lpVtbl -> Commit(This,pAltRequest,pAlt,ppvResultExtra,pcbResultExtra)
  3002. #endif /* COBJMACROS */
  3003. #endif /* C style interface */
  3004. HRESULT STDMETHODCALLTYPE ISpSRAlternates_GetAlternates_Proxy(
  3005. ISpSRAlternates * This,
  3006. /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
  3007. /* [out] */ SPPHRASEALT **ppAlts,
  3008. /* [out] */ ULONG *pcAlts);
  3009. void __RPC_STUB ISpSRAlternates_GetAlternates_Stub(
  3010. IRpcStubBuffer *This,
  3011. IRpcChannelBuffer *_pRpcChannelBuffer,
  3012. PRPC_MESSAGE _pRpcMessage,
  3013. DWORD *_pdwStubPhase);
  3014. HRESULT STDMETHODCALLTYPE ISpSRAlternates_Commit_Proxy(
  3015. ISpSRAlternates * This,
  3016. /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
  3017. /* [in] */ SPPHRASEALT *pAlt,
  3018. /* [out] */ void **ppvResultExtra,
  3019. /* [out] */ ULONG *pcbResultExtra);
  3020. void __RPC_STUB ISpSRAlternates_Commit_Stub(
  3021. IRpcStubBuffer *This,
  3022. IRpcChannelBuffer *_pRpcChannelBuffer,
  3023. PRPC_MESSAGE _pRpcMessage,
  3024. DWORD *_pdwStubPhase);
  3025. #endif /* __ISpSRAlternates_INTERFACE_DEFINED__ */
  3026. #ifndef ___ISpPrivateEngineCall_INTERFACE_DEFINED__
  3027. #define ___ISpPrivateEngineCall_INTERFACE_DEFINED__
  3028. /* interface _ISpPrivateEngineCall */
  3029. /* [local][unique][helpstring][uuid][object] */
  3030. EXTERN_C const IID IID__ISpPrivateEngineCall;
  3031. #if defined(__cplusplus) && !defined(CINTERFACE)
  3032. MIDL_INTERFACE("8E7C791E-4467-11d3-9723-00C04F72DB08")
  3033. _ISpPrivateEngineCall : public IUnknown
  3034. {
  3035. public:
  3036. virtual HRESULT STDMETHODCALLTYPE CallEngine(
  3037. /* [out][in] */ void *pCallFrame,
  3038. /* [in] */ ULONG ulCallFrameSize) = 0;
  3039. virtual HRESULT STDMETHODCALLTYPE CallEngineEx(
  3040. /* [in] */ const void *pInFrame,
  3041. /* [in] */ ULONG ulInFrameSize,
  3042. /* [out] */ void **ppCoMemOutFrame,
  3043. /* [out] */ ULONG *pulOutFrameSize) = 0;
  3044. };
  3045. #else /* C style interface */
  3046. typedef struct _ISpPrivateEngineCallVtbl
  3047. {
  3048. BEGIN_INTERFACE
  3049. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3050. _ISpPrivateEngineCall * This,
  3051. /* [in] */ REFIID riid,
  3052. /* [iid_is][out] */ void **ppvObject);
  3053. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3054. _ISpPrivateEngineCall * This);
  3055. ULONG ( STDMETHODCALLTYPE *Release )(
  3056. _ISpPrivateEngineCall * This);
  3057. HRESULT ( STDMETHODCALLTYPE *CallEngine )(
  3058. _ISpPrivateEngineCall * This,
  3059. /* [out][in] */ void *pCallFrame,
  3060. /* [in] */ ULONG ulCallFrameSize);
  3061. HRESULT ( STDMETHODCALLTYPE *CallEngineEx )(
  3062. _ISpPrivateEngineCall * This,
  3063. /* [in] */ const void *pInFrame,
  3064. /* [in] */ ULONG ulInFrameSize,
  3065. /* [out] */ void **ppCoMemOutFrame,
  3066. /* [out] */ ULONG *pulOutFrameSize);
  3067. END_INTERFACE
  3068. } _ISpPrivateEngineCallVtbl;
  3069. interface _ISpPrivateEngineCall
  3070. {
  3071. CONST_VTBL struct _ISpPrivateEngineCallVtbl *lpVtbl;
  3072. };
  3073. #ifdef COBJMACROS
  3074. #define _ISpPrivateEngineCall_QueryInterface(This,riid,ppvObject) \
  3075. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3076. #define _ISpPrivateEngineCall_AddRef(This) \
  3077. (This)->lpVtbl -> AddRef(This)
  3078. #define _ISpPrivateEngineCall_Release(This) \
  3079. (This)->lpVtbl -> Release(This)
  3080. #define _ISpPrivateEngineCall_CallEngine(This,pCallFrame,ulCallFrameSize) \
  3081. (This)->lpVtbl -> CallEngine(This,pCallFrame,ulCallFrameSize)
  3082. #define _ISpPrivateEngineCall_CallEngineEx(This,pInFrame,ulInFrameSize,ppCoMemOutFrame,pulOutFrameSize) \
  3083. (This)->lpVtbl -> CallEngineEx(This,pInFrame,ulInFrameSize,ppCoMemOutFrame,pulOutFrameSize)
  3084. #endif /* COBJMACROS */
  3085. #endif /* C style interface */
  3086. HRESULT STDMETHODCALLTYPE _ISpPrivateEngineCall_CallEngine_Proxy(
  3087. _ISpPrivateEngineCall * This,
  3088. /* [out][in] */ void *pCallFrame,
  3089. /* [in] */ ULONG ulCallFrameSize);
  3090. void __RPC_STUB _ISpPrivateEngineCall_CallEngine_Stub(
  3091. IRpcStubBuffer *This,
  3092. IRpcChannelBuffer *_pRpcChannelBuffer,
  3093. PRPC_MESSAGE _pRpcMessage,
  3094. DWORD *_pdwStubPhase);
  3095. HRESULT STDMETHODCALLTYPE _ISpPrivateEngineCall_CallEngineEx_Proxy(
  3096. _ISpPrivateEngineCall * This,
  3097. /* [in] */ const void *pInFrame,
  3098. /* [in] */ ULONG ulInFrameSize,
  3099. /* [out] */ void **ppCoMemOutFrame,
  3100. /* [out] */ ULONG *pulOutFrameSize);
  3101. void __RPC_STUB _ISpPrivateEngineCall_CallEngineEx_Stub(
  3102. IRpcStubBuffer *This,
  3103. IRpcChannelBuffer *_pRpcChannelBuffer,
  3104. PRPC_MESSAGE _pRpcMessage,
  3105. DWORD *_pdwStubPhase);
  3106. #endif /* ___ISpPrivateEngineCall_INTERFACE_DEFINED__ */
  3107. #ifndef __SpeechDDKLib_LIBRARY_DEFINED__
  3108. #define __SpeechDDKLib_LIBRARY_DEFINED__
  3109. /* library SpeechDDKLib */
  3110. /* [version][uuid][helpstring] */
  3111. EXTERN_C const IID LIBID_SpeechDDKLib;
  3112. EXTERN_C const CLSID CLSID_SpDataKey;
  3113. #ifdef __cplusplus
  3114. class DECLSPEC_UUID("D9F6EE60-58C9-458b-88E1-2F908FD7F87C")
  3115. SpDataKey;
  3116. #endif
  3117. EXTERN_C const CLSID CLSID_SpObjectTokenEnum;
  3118. #ifdef __cplusplus
  3119. class DECLSPEC_UUID("3918D75F-0ACB-41f2-B733-92AA15BCECF6")
  3120. SpObjectTokenEnum;
  3121. #endif
  3122. EXTERN_C const CLSID CLSID_SpPhraseBuilder;
  3123. #ifdef __cplusplus
  3124. class DECLSPEC_UUID("777B6BBD-2FF2-11d3-88FE-00C04F8EF9B5")
  3125. SpPhraseBuilder;
  3126. #endif
  3127. EXTERN_C const CLSID CLSID_SpITNProcessor;
  3128. #ifdef __cplusplus
  3129. class DECLSPEC_UUID("12D73610-A1C9-11d3-BC90-00C04F72DF9F")
  3130. SpITNProcessor;
  3131. #endif
  3132. EXTERN_C const CLSID CLSID_SpGrammarCompiler;
  3133. #ifdef __cplusplus
  3134. class DECLSPEC_UUID("B1E29D59-A675-11D2-8302-00C04F8EE6C0")
  3135. SpGrammarCompiler;
  3136. #endif
  3137. EXTERN_C const CLSID CLSID_SpGramCompBackend;
  3138. #ifdef __cplusplus
  3139. class DECLSPEC_UUID("DA93E903-C843-11D2-A084-00C04F8EF9B5")
  3140. SpGramCompBackend;
  3141. #endif
  3142. #endif /* __SpeechDDKLib_LIBRARY_DEFINED__ */
  3143. /* Additional Prototypes for ALL interfaces */
  3144. /* end of Additional Prototypes */
  3145. #ifdef __cplusplus
  3146. }
  3147. #endif
  3148. #endif