1 
2 #pragma warning( disable: 4049 )  /* more than 64k source lines */
3 
4 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
5 
6 
7  /* File created by MIDL compiler version 6.00.0347 */
8 /* Compiler settings for sapiddk.idl:
9     Oicf, W1, Zp8, env=Win32 (32b run)
10     protocol : dce , ms_ext, c_ext
11     error checks: allocation ref bounds_check enum stub_data
12     VC __declspec() decoration level:
13          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
14          DECLSPEC_UUID(), MIDL_INTERFACE()
15 */
16 //@@MIDL_FILE_HEADING(  )
17 
18 
19 /* verify that the <rpcndr.h> version is high enough to compile this file*/
20 #ifndef __REQUIRED_RPCNDR_H_VERSION__
21 #define __REQUIRED_RPCNDR_H_VERSION__ 440
22 #endif
23 
24 #include "rpc.h"
25 #include "rpcndr.h"
26 
27 #ifndef __RPCNDR_H_VERSION__
28 #error this stub requires an updated version of <rpcndr.h>
29 #endif // __RPCNDR_H_VERSION__
30 
31 #ifndef COM_NO_WINDOWS_H
32 #include "windows.h"
33 #include "ole2.h"
34 #endif /*COM_NO_WINDOWS_H*/
35 
36 #ifndef __sapiddk_h__
37 #define __sapiddk_h__
38 
39 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
40 #pragma once
41 #endif
42 
43 /* Forward Declarations */
44 
45 #ifndef __ISpTokenUI_FWD_DEFINED__
46 #define __ISpTokenUI_FWD_DEFINED__
47 typedef interface ISpTokenUI ISpTokenUI;
48 #endif 	/* __ISpTokenUI_FWD_DEFINED__ */
49 
50 
51 #ifndef __ISpObjectTokenEnumBuilder_FWD_DEFINED__
52 #define __ISpObjectTokenEnumBuilder_FWD_DEFINED__
53 typedef interface ISpObjectTokenEnumBuilder ISpObjectTokenEnumBuilder;
54 #endif 	/* __ISpObjectTokenEnumBuilder_FWD_DEFINED__ */
55 
56 
57 #ifndef __ISpErrorLog_FWD_DEFINED__
58 #define __ISpErrorLog_FWD_DEFINED__
59 typedef interface ISpErrorLog ISpErrorLog;
60 #endif 	/* __ISpErrorLog_FWD_DEFINED__ */
61 
62 
63 #ifndef __ISpGrammarCompiler_FWD_DEFINED__
64 #define __ISpGrammarCompiler_FWD_DEFINED__
65 typedef interface ISpGrammarCompiler ISpGrammarCompiler;
66 #endif 	/* __ISpGrammarCompiler_FWD_DEFINED__ */
67 
68 
69 #ifndef __ISpGramCompBackend_FWD_DEFINED__
70 #define __ISpGramCompBackend_FWD_DEFINED__
71 typedef interface ISpGramCompBackend ISpGramCompBackend;
72 #endif 	/* __ISpGramCompBackend_FWD_DEFINED__ */
73 
74 
75 #ifndef __ISpITNProcessor_FWD_DEFINED__
76 #define __ISpITNProcessor_FWD_DEFINED__
77 typedef interface ISpITNProcessor ISpITNProcessor;
78 #endif 	/* __ISpITNProcessor_FWD_DEFINED__ */
79 
80 
81 #ifndef __ISpPhraseBuilder_FWD_DEFINED__
82 #define __ISpPhraseBuilder_FWD_DEFINED__
83 typedef interface ISpPhraseBuilder ISpPhraseBuilder;
84 #endif 	/* __ISpPhraseBuilder_FWD_DEFINED__ */
85 
86 
87 #ifndef __ISpThreadControl_FWD_DEFINED__
88 #define __ISpThreadControl_FWD_DEFINED__
89 typedef interface ISpThreadControl ISpThreadControl;
90 #endif 	/* __ISpThreadControl_FWD_DEFINED__ */
91 
92 
93 #ifndef __ISpTaskManager_FWD_DEFINED__
94 #define __ISpTaskManager_FWD_DEFINED__
95 typedef interface ISpTaskManager ISpTaskManager;
96 #endif 	/* __ISpTaskManager_FWD_DEFINED__ */
97 
98 
99 #ifndef __ISpTTSEngineSite_FWD_DEFINED__
100 #define __ISpTTSEngineSite_FWD_DEFINED__
101 typedef interface ISpTTSEngineSite ISpTTSEngineSite;
102 #endif 	/* __ISpTTSEngineSite_FWD_DEFINED__ */
103 
104 
105 #ifndef __ISpTTSEngine_FWD_DEFINED__
106 #define __ISpTTSEngine_FWD_DEFINED__
107 typedef interface ISpTTSEngine ISpTTSEngine;
108 #endif 	/* __ISpTTSEngine_FWD_DEFINED__ */
109 
110 
111 #ifndef __ISpCFGInterpreterSite_FWD_DEFINED__
112 #define __ISpCFGInterpreterSite_FWD_DEFINED__
113 typedef interface ISpCFGInterpreterSite ISpCFGInterpreterSite;
114 #endif 	/* __ISpCFGInterpreterSite_FWD_DEFINED__ */
115 
116 
117 #ifndef __ISpCFGInterpreter_FWD_DEFINED__
118 #define __ISpCFGInterpreter_FWD_DEFINED__
119 typedef interface ISpCFGInterpreter ISpCFGInterpreter;
120 #endif 	/* __ISpCFGInterpreter_FWD_DEFINED__ */
121 
122 
123 #ifndef __ISpSREngineSite_FWD_DEFINED__
124 #define __ISpSREngineSite_FWD_DEFINED__
125 typedef interface ISpSREngineSite ISpSREngineSite;
126 #endif 	/* __ISpSREngineSite_FWD_DEFINED__ */
127 
128 
129 #ifndef __ISpSREngine_FWD_DEFINED__
130 #define __ISpSREngine_FWD_DEFINED__
131 typedef interface ISpSREngine ISpSREngine;
132 #endif 	/* __ISpSREngine_FWD_DEFINED__ */
133 
134 
135 #ifndef __ISpSRAlternates_FWD_DEFINED__
136 #define __ISpSRAlternates_FWD_DEFINED__
137 typedef interface ISpSRAlternates ISpSRAlternates;
138 #endif 	/* __ISpSRAlternates_FWD_DEFINED__ */
139 
140 
141 #ifndef ___ISpPrivateEngineCall_FWD_DEFINED__
142 #define ___ISpPrivateEngineCall_FWD_DEFINED__
143 typedef interface _ISpPrivateEngineCall _ISpPrivateEngineCall;
144 #endif 	/* ___ISpPrivateEngineCall_FWD_DEFINED__ */
145 
146 
147 #ifndef __SpDataKey_FWD_DEFINED__
148 #define __SpDataKey_FWD_DEFINED__
149 
150 #ifdef __cplusplus
151 typedef class SpDataKey SpDataKey;
152 #else
153 typedef struct SpDataKey SpDataKey;
154 #endif /* __cplusplus */
155 
156 #endif 	/* __SpDataKey_FWD_DEFINED__ */
157 
158 
159 #ifndef __SpObjectTokenEnum_FWD_DEFINED__
160 #define __SpObjectTokenEnum_FWD_DEFINED__
161 
162 #ifdef __cplusplus
163 typedef class SpObjectTokenEnum SpObjectTokenEnum;
164 #else
165 typedef struct SpObjectTokenEnum SpObjectTokenEnum;
166 #endif /* __cplusplus */
167 
168 #endif 	/* __SpObjectTokenEnum_FWD_DEFINED__ */
169 
170 
171 #ifndef __SpPhraseBuilder_FWD_DEFINED__
172 #define __SpPhraseBuilder_FWD_DEFINED__
173 
174 #ifdef __cplusplus
175 typedef class SpPhraseBuilder SpPhraseBuilder;
176 #else
177 typedef struct SpPhraseBuilder SpPhraseBuilder;
178 #endif /* __cplusplus */
179 
180 #endif 	/* __SpPhraseBuilder_FWD_DEFINED__ */
181 
182 
183 #ifndef __SpITNProcessor_FWD_DEFINED__
184 #define __SpITNProcessor_FWD_DEFINED__
185 
186 #ifdef __cplusplus
187 typedef class SpITNProcessor SpITNProcessor;
188 #else
189 typedef struct SpITNProcessor SpITNProcessor;
190 #endif /* __cplusplus */
191 
192 #endif 	/* __SpITNProcessor_FWD_DEFINED__ */
193 
194 
195 #ifndef __SpGrammarCompiler_FWD_DEFINED__
196 #define __SpGrammarCompiler_FWD_DEFINED__
197 
198 #ifdef __cplusplus
199 typedef class SpGrammarCompiler SpGrammarCompiler;
200 #else
201 typedef struct SpGrammarCompiler SpGrammarCompiler;
202 #endif /* __cplusplus */
203 
204 #endif 	/* __SpGrammarCompiler_FWD_DEFINED__ */
205 
206 
207 #ifndef __SpGramCompBackend_FWD_DEFINED__
208 #define __SpGramCompBackend_FWD_DEFINED__
209 
210 #ifdef __cplusplus
211 typedef class SpGramCompBackend SpGramCompBackend;
212 #else
213 typedef struct SpGramCompBackend SpGramCompBackend;
214 #endif /* __cplusplus */
215 
216 #endif 	/* __SpGramCompBackend_FWD_DEFINED__ */
217 
218 
219 /* header files for imported files */
220 #include "oaidl.h"
221 #include "ocidl.h"
222 #include "sapi.h"
223 
224 #ifdef __cplusplus
225 extern "C"{
226 #endif
227 
228 void * __RPC_USER MIDL_user_allocate(size_t);
229 void __RPC_USER MIDL_user_free( void * );
230 
231 /* interface __MIDL_itf_sapiddk_0000 */
232 /* [local] */
233 
234 
235 
236 
237 
238 
239 #define SPRECOEXTENSION   L"RecoExtension"
240 #define SPALTERNATESCLSID L"AlternatesCLSID"
241 
242 
243 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0000_v0_0_c_ifspec;
244 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0000_v0_0_s_ifspec;
245 
246 #ifndef __ISpTokenUI_INTERFACE_DEFINED__
247 #define __ISpTokenUI_INTERFACE_DEFINED__
248 
249 /* interface ISpTokenUI */
250 /* [restricted][unique][helpstring][uuid][object] */
251 
252 
253 EXTERN_C const IID IID_ISpTokenUI;
254 
255 #if defined(__cplusplus) && !defined(CINTERFACE)
256 
257     MIDL_INTERFACE("F8E690F0-39CB-4843-B8D7-C84696E1119D")
258     ISpTokenUI : public IUnknown
259     {
260     public:
261         virtual /* [local] */ HRESULT STDMETHODCALLTYPE IsUISupported(
262             /* [in] */ const WCHAR *pszTypeOfUI,
263             /* [in] */ void *pvExtraData,
264             /* [in] */ ULONG cbExtraData,
265             /* [in] */ IUnknown *punkObject,
266             /* [out] */ BOOL *pfSupported) = 0;
267 
268         virtual /* [local] */ HRESULT STDMETHODCALLTYPE DisplayUI(
269             /* [in] */ HWND hwndParent,
270             /* [in] */ const WCHAR *pszTitle,
271             /* [in] */ const WCHAR *pszTypeOfUI,
272             /* [in] */ void *pvExtraData,
273             /* [in] */ ULONG cbExtraData,
274             /* [in] */ ISpObjectToken *pToken,
275             /* [in] */ IUnknown *punkObject) = 0;
276 
277     };
278 
279 #else 	/* C style interface */
280 
281     typedef struct ISpTokenUIVtbl
282     {
283         BEGIN_INTERFACE
284 
285         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
286             ISpTokenUI * This,
287             /* [in] */ REFIID riid,
288             /* [iid_is][out] */ void **ppvObject);
289 
290         ULONG ( STDMETHODCALLTYPE *AddRef )(
291             ISpTokenUI * This);
292 
293         ULONG ( STDMETHODCALLTYPE *Release )(
294             ISpTokenUI * This);
295 
296         /* [local] */ HRESULT ( STDMETHODCALLTYPE *IsUISupported )(
297             ISpTokenUI * This,
298             /* [in] */ const WCHAR *pszTypeOfUI,
299             /* [in] */ void *pvExtraData,
300             /* [in] */ ULONG cbExtraData,
301             /* [in] */ IUnknown *punkObject,
302             /* [out] */ BOOL *pfSupported);
303 
304         /* [local] */ HRESULT ( STDMETHODCALLTYPE *DisplayUI )(
305             ISpTokenUI * This,
306             /* [in] */ HWND hwndParent,
307             /* [in] */ const WCHAR *pszTitle,
308             /* [in] */ const WCHAR *pszTypeOfUI,
309             /* [in] */ void *pvExtraData,
310             /* [in] */ ULONG cbExtraData,
311             /* [in] */ ISpObjectToken *pToken,
312             /* [in] */ IUnknown *punkObject);
313 
314         END_INTERFACE
315     } ISpTokenUIVtbl;
316 
317     interface ISpTokenUI
318     {
319         CONST_VTBL struct ISpTokenUIVtbl *lpVtbl;
320     };
321 
322 
323 
324 #ifdef COBJMACROS
325 
326 
327 #define ISpTokenUI_QueryInterface(This,riid,ppvObject)	\
328     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
329 
330 #define ISpTokenUI_AddRef(This)	\
331     (This)->lpVtbl -> AddRef(This)
332 
333 #define ISpTokenUI_Release(This)	\
334     (This)->lpVtbl -> Release(This)
335 
336 
337 #define ISpTokenUI_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)	\
338     (This)->lpVtbl -> IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
339 
340 #define ISpTokenUI_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,pToken,punkObject)	\
341     (This)->lpVtbl -> DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,pToken,punkObject)
342 
343 #endif /* COBJMACROS */
344 
345 
346 #endif 	/* C style interface */
347 
348 
349 
350 /* [local] */ HRESULT STDMETHODCALLTYPE ISpTokenUI_IsUISupported_Proxy(
351     ISpTokenUI * This,
352     /* [in] */ const WCHAR *pszTypeOfUI,
353     /* [in] */ void *pvExtraData,
354     /* [in] */ ULONG cbExtraData,
355     /* [in] */ IUnknown *punkObject,
356     /* [out] */ BOOL *pfSupported);
357 
358 
359 void __RPC_STUB ISpTokenUI_IsUISupported_Stub(
360     IRpcStubBuffer *This,
361     IRpcChannelBuffer *_pRpcChannelBuffer,
362     PRPC_MESSAGE _pRpcMessage,
363     DWORD *_pdwStubPhase);
364 
365 
366 /* [local] */ HRESULT STDMETHODCALLTYPE ISpTokenUI_DisplayUI_Proxy(
367     ISpTokenUI * This,
368     /* [in] */ HWND hwndParent,
369     /* [in] */ const WCHAR *pszTitle,
370     /* [in] */ const WCHAR *pszTypeOfUI,
371     /* [in] */ void *pvExtraData,
372     /* [in] */ ULONG cbExtraData,
373     /* [in] */ ISpObjectToken *pToken,
374     /* [in] */ IUnknown *punkObject);
375 
376 
377 void __RPC_STUB ISpTokenUI_DisplayUI_Stub(
378     IRpcStubBuffer *This,
379     IRpcChannelBuffer *_pRpcChannelBuffer,
380     PRPC_MESSAGE _pRpcMessage,
381     DWORD *_pdwStubPhase);
382 
383 
384 
385 #endif 	/* __ISpTokenUI_INTERFACE_DEFINED__ */
386 
387 
388 #ifndef __ISpObjectTokenEnumBuilder_INTERFACE_DEFINED__
389 #define __ISpObjectTokenEnumBuilder_INTERFACE_DEFINED__
390 
391 /* interface ISpObjectTokenEnumBuilder */
392 /* [restricted][unique][helpstring][uuid][object] */
393 
394 
395 EXTERN_C const IID IID_ISpObjectTokenEnumBuilder;
396 
397 #if defined(__cplusplus) && !defined(CINTERFACE)
398 
399     MIDL_INTERFACE("06B64F9F-7FDA-11d2-B4F2-00C04F797396")
400     ISpObjectTokenEnumBuilder : public IEnumSpObjectTokens
401     {
402     public:
403         virtual HRESULT STDMETHODCALLTYPE SetAttribs(
404             const WCHAR *pszReqAttribs,
405             const WCHAR *pszOptAttribs) = 0;
406 
407         virtual HRESULT STDMETHODCALLTYPE AddTokens(
408             ULONG cTokens,
409             ISpObjectToken **pToken) = 0;
410 
411         virtual HRESULT STDMETHODCALLTYPE AddTokensFromDataKey(
412             ISpDataKey *pDataKey,
413             const WCHAR *pszSubKey,
414             const WCHAR *pszCategoryId) = 0;
415 
416         virtual HRESULT STDMETHODCALLTYPE AddTokensFromTokenEnum(
417             IEnumSpObjectTokens *pTokenEnum) = 0;
418 
419         virtual HRESULT STDMETHODCALLTYPE Sort(
420             const WCHAR *pszTokenIdToListFirst) = 0;
421 
422     };
423 
424 #else 	/* C style interface */
425 
426     typedef struct ISpObjectTokenEnumBuilderVtbl
427     {
428         BEGIN_INTERFACE
429 
430         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
431             ISpObjectTokenEnumBuilder * This,
432             /* [in] */ REFIID riid,
433             /* [iid_is][out] */ void **ppvObject);
434 
435         ULONG ( STDMETHODCALLTYPE *AddRef )(
436             ISpObjectTokenEnumBuilder * This);
437 
438         ULONG ( STDMETHODCALLTYPE *Release )(
439             ISpObjectTokenEnumBuilder * This);
440 
441         HRESULT ( STDMETHODCALLTYPE *Next )(
442             ISpObjectTokenEnumBuilder * This,
443             /* [in] */ ULONG celt,
444             /* [length_is][size_is][out] */ ISpObjectToken **pelt,
445             /* [out] */ ULONG *pceltFetched);
446 
447         HRESULT ( STDMETHODCALLTYPE *Skip )(
448             ISpObjectTokenEnumBuilder * This,
449             /* [in] */ ULONG celt);
450 
451         HRESULT ( STDMETHODCALLTYPE *Reset )(
452             ISpObjectTokenEnumBuilder * This);
453 
454         HRESULT ( STDMETHODCALLTYPE *Clone )(
455             ISpObjectTokenEnumBuilder * This,
456             /* [out] */ IEnumSpObjectTokens **ppEnum);
457 
458         HRESULT ( STDMETHODCALLTYPE *Item )(
459             ISpObjectTokenEnumBuilder * This,
460             /* [in] */ ULONG Index,
461             /* [out] */ ISpObjectToken **ppToken);
462 
463         HRESULT ( STDMETHODCALLTYPE *GetCount )(
464             ISpObjectTokenEnumBuilder * This,
465             /* [out] */ ULONG *pCount);
466 
467         HRESULT ( STDMETHODCALLTYPE *SetAttribs )(
468             ISpObjectTokenEnumBuilder * This,
469             const WCHAR *pszReqAttribs,
470             const WCHAR *pszOptAttribs);
471 
472         HRESULT ( STDMETHODCALLTYPE *AddTokens )(
473             ISpObjectTokenEnumBuilder * This,
474             ULONG cTokens,
475             ISpObjectToken **pToken);
476 
477         HRESULT ( STDMETHODCALLTYPE *AddTokensFromDataKey )(
478             ISpObjectTokenEnumBuilder * This,
479             ISpDataKey *pDataKey,
480             const WCHAR *pszSubKey,
481             const WCHAR *pszCategoryId);
482 
483         HRESULT ( STDMETHODCALLTYPE *AddTokensFromTokenEnum )(
484             ISpObjectTokenEnumBuilder * This,
485             IEnumSpObjectTokens *pTokenEnum);
486 
487         HRESULT ( STDMETHODCALLTYPE *Sort )(
488             ISpObjectTokenEnumBuilder * This,
489             const WCHAR *pszTokenIdToListFirst);
490 
491         END_INTERFACE
492     } ISpObjectTokenEnumBuilderVtbl;
493 
494     interface ISpObjectTokenEnumBuilder
495     {
496         CONST_VTBL struct ISpObjectTokenEnumBuilderVtbl *lpVtbl;
497     };
498 
499 
500 
501 #ifdef COBJMACROS
502 
503 
504 #define ISpObjectTokenEnumBuilder_QueryInterface(This,riid,ppvObject)	\
505     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
506 
507 #define ISpObjectTokenEnumBuilder_AddRef(This)	\
508     (This)->lpVtbl -> AddRef(This)
509 
510 #define ISpObjectTokenEnumBuilder_Release(This)	\
511     (This)->lpVtbl -> Release(This)
512 
513 
514 #define ISpObjectTokenEnumBuilder_Next(This,celt,pelt,pceltFetched)	\
515     (This)->lpVtbl -> Next(This,celt,pelt,pceltFetched)
516 
517 #define ISpObjectTokenEnumBuilder_Skip(This,celt)	\
518     (This)->lpVtbl -> Skip(This,celt)
519 
520 #define ISpObjectTokenEnumBuilder_Reset(This)	\
521     (This)->lpVtbl -> Reset(This)
522 
523 #define ISpObjectTokenEnumBuilder_Clone(This,ppEnum)	\
524     (This)->lpVtbl -> Clone(This,ppEnum)
525 
526 #define ISpObjectTokenEnumBuilder_Item(This,Index,ppToken)	\
527     (This)->lpVtbl -> Item(This,Index,ppToken)
528 
529 #define ISpObjectTokenEnumBuilder_GetCount(This,pCount)	\
530     (This)->lpVtbl -> GetCount(This,pCount)
531 
532 
533 #define ISpObjectTokenEnumBuilder_SetAttribs(This,pszReqAttribs,pszOptAttribs)	\
534     (This)->lpVtbl -> SetAttribs(This,pszReqAttribs,pszOptAttribs)
535 
536 #define ISpObjectTokenEnumBuilder_AddTokens(This,cTokens,pToken)	\
537     (This)->lpVtbl -> AddTokens(This,cTokens,pToken)
538 
539 #define ISpObjectTokenEnumBuilder_AddTokensFromDataKey(This,pDataKey,pszSubKey,pszCategoryId)	\
540     (This)->lpVtbl -> AddTokensFromDataKey(This,pDataKey,pszSubKey,pszCategoryId)
541 
542 #define ISpObjectTokenEnumBuilder_AddTokensFromTokenEnum(This,pTokenEnum)	\
543     (This)->lpVtbl -> AddTokensFromTokenEnum(This,pTokenEnum)
544 
545 #define ISpObjectTokenEnumBuilder_Sort(This,pszTokenIdToListFirst)	\
546     (This)->lpVtbl -> Sort(This,pszTokenIdToListFirst)
547 
548 #endif /* COBJMACROS */
549 
550 
551 #endif 	/* C style interface */
552 
553 
554 
555 HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_SetAttribs_Proxy(
556     ISpObjectTokenEnumBuilder * This,
557     const WCHAR *pszReqAttribs,
558     const WCHAR *pszOptAttribs);
559 
560 
561 void __RPC_STUB ISpObjectTokenEnumBuilder_SetAttribs_Stub(
562     IRpcStubBuffer *This,
563     IRpcChannelBuffer *_pRpcChannelBuffer,
564     PRPC_MESSAGE _pRpcMessage,
565     DWORD *_pdwStubPhase);
566 
567 
568 HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_AddTokens_Proxy(
569     ISpObjectTokenEnumBuilder * This,
570     ULONG cTokens,
571     ISpObjectToken **pToken);
572 
573 
574 void __RPC_STUB ISpObjectTokenEnumBuilder_AddTokens_Stub(
575     IRpcStubBuffer *This,
576     IRpcChannelBuffer *_pRpcChannelBuffer,
577     PRPC_MESSAGE _pRpcMessage,
578     DWORD *_pdwStubPhase);
579 
580 
581 HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_AddTokensFromDataKey_Proxy(
582     ISpObjectTokenEnumBuilder * This,
583     ISpDataKey *pDataKey,
584     const WCHAR *pszSubKey,
585     const WCHAR *pszCategoryId);
586 
587 
588 void __RPC_STUB ISpObjectTokenEnumBuilder_AddTokensFromDataKey_Stub(
589     IRpcStubBuffer *This,
590     IRpcChannelBuffer *_pRpcChannelBuffer,
591     PRPC_MESSAGE _pRpcMessage,
592     DWORD *_pdwStubPhase);
593 
594 
595 HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_AddTokensFromTokenEnum_Proxy(
596     ISpObjectTokenEnumBuilder * This,
597     IEnumSpObjectTokens *pTokenEnum);
598 
599 
600 void __RPC_STUB ISpObjectTokenEnumBuilder_AddTokensFromTokenEnum_Stub(
601     IRpcStubBuffer *This,
602     IRpcChannelBuffer *_pRpcChannelBuffer,
603     PRPC_MESSAGE _pRpcMessage,
604     DWORD *_pdwStubPhase);
605 
606 
607 HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_Sort_Proxy(
608     ISpObjectTokenEnumBuilder * This,
609     const WCHAR *pszTokenIdToListFirst);
610 
611 
612 void __RPC_STUB ISpObjectTokenEnumBuilder_Sort_Stub(
613     IRpcStubBuffer *This,
614     IRpcChannelBuffer *_pRpcChannelBuffer,
615     PRPC_MESSAGE _pRpcMessage,
616     DWORD *_pdwStubPhase);
617 
618 
619 
620 #endif 	/* __ISpObjectTokenEnumBuilder_INTERFACE_DEFINED__ */
621 
622 
623 /* interface __MIDL_itf_sapiddk_0339 */
624 /* [local] */
625 
626 #if 0
627 typedef void *SPWORDHANDLE;
628 
629 typedef void *SPRULEHANDLE;
630 
631 typedef void *SPGRAMMARHANDLE;
632 
633 typedef void *SPRECOCONTEXTHANDLE;
634 
635 typedef void *SPPHRASERULEHANDLE;
636 
637 typedef void *SPPHRASEPROPERTYHANDLE;
638 
639 typedef void *SPTRANSITIONID;
640 
641 #else
642 DECLARE_HANDLE(SPWORDHANDLE);
643 DECLARE_HANDLE(SPRULEHANDLE);
644 DECLARE_HANDLE(SPGRAMMARHANDLE);
645 DECLARE_HANDLE(SPRECOCONTEXTHANDLE);
646 DECLARE_HANDLE(SPPHRASERULEHANDLE);
647 DECLARE_HANDLE(SPPHRASEPROPERTYHANDLE);
648 DECLARE_HANDLE(SPTRANSITIONID);
649 #endif
650 
651 
652 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0339_v0_0_c_ifspec;
653 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0339_v0_0_s_ifspec;
654 
655 #ifndef __ISpErrorLog_INTERFACE_DEFINED__
656 #define __ISpErrorLog_INTERFACE_DEFINED__
657 
658 /* interface ISpErrorLog */
659 /* [restricted][unique][helpstring][uuid][object] */
660 
661 
662 EXTERN_C const IID IID_ISpErrorLog;
663 
664 #if defined(__cplusplus) && !defined(CINTERFACE)
665 
666     MIDL_INTERFACE("F4711347-E608-11d2-A086-00C04F8EF9B5")
667     ISpErrorLog : public IUnknown
668     {
669     public:
670         virtual HRESULT STDMETHODCALLTYPE AddError(
671             const long lLineNumber,
672             HRESULT hr,
673             const WCHAR *pszDescription,
674             const WCHAR *pszHelpFile,
675             DWORD dwHelpContext) = 0;
676 
677     };
678 
679 #else 	/* C style interface */
680 
681     typedef struct ISpErrorLogVtbl
682     {
683         BEGIN_INTERFACE
684 
685         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
686             ISpErrorLog * This,
687             /* [in] */ REFIID riid,
688             /* [iid_is][out] */ void **ppvObject);
689 
690         ULONG ( STDMETHODCALLTYPE *AddRef )(
691             ISpErrorLog * This);
692 
693         ULONG ( STDMETHODCALLTYPE *Release )(
694             ISpErrorLog * This);
695 
696         HRESULT ( STDMETHODCALLTYPE *AddError )(
697             ISpErrorLog * This,
698             const long lLineNumber,
699             HRESULT hr,
700             const WCHAR *pszDescription,
701             const WCHAR *pszHelpFile,
702             DWORD dwHelpContext);
703 
704         END_INTERFACE
705     } ISpErrorLogVtbl;
706 
707     interface ISpErrorLog
708     {
709         CONST_VTBL struct ISpErrorLogVtbl *lpVtbl;
710     };
711 
712 
713 
714 #ifdef COBJMACROS
715 
716 
717 #define ISpErrorLog_QueryInterface(This,riid,ppvObject)	\
718     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
719 
720 #define ISpErrorLog_AddRef(This)	\
721     (This)->lpVtbl -> AddRef(This)
722 
723 #define ISpErrorLog_Release(This)	\
724     (This)->lpVtbl -> Release(This)
725 
726 
727 #define ISpErrorLog_AddError(This,lLineNumber,hr,pszDescription,pszHelpFile,dwHelpContext)	\
728     (This)->lpVtbl -> AddError(This,lLineNumber,hr,pszDescription,pszHelpFile,dwHelpContext)
729 
730 #endif /* COBJMACROS */
731 
732 
733 #endif 	/* C style interface */
734 
735 
736 
737 HRESULT STDMETHODCALLTYPE ISpErrorLog_AddError_Proxy(
738     ISpErrorLog * This,
739     const long lLineNumber,
740     HRESULT hr,
741     const WCHAR *pszDescription,
742     const WCHAR *pszHelpFile,
743     DWORD dwHelpContext);
744 
745 
746 void __RPC_STUB ISpErrorLog_AddError_Stub(
747     IRpcStubBuffer *This,
748     IRpcChannelBuffer *_pRpcChannelBuffer,
749     PRPC_MESSAGE _pRpcMessage,
750     DWORD *_pdwStubPhase);
751 
752 
753 
754 #endif 	/* __ISpErrorLog_INTERFACE_DEFINED__ */
755 
756 
757 #ifndef __ISpGrammarCompiler_INTERFACE_DEFINED__
758 #define __ISpGrammarCompiler_INTERFACE_DEFINED__
759 
760 /* interface ISpGrammarCompiler */
761 /* [restricted][unique][helpstring][uuid][object] */
762 
763 
764 EXTERN_C const IID IID_ISpGrammarCompiler;
765 
766 #if defined(__cplusplus) && !defined(CINTERFACE)
767 
768     MIDL_INTERFACE("B1E29D58-A675-11D2-8302-00C04F8EE6C0")
769     ISpGrammarCompiler : public IUnknown
770     {
771     public:
772         virtual HRESULT STDMETHODCALLTYPE CompileStream(
773             IStream *pSource,
774             IStream *pDest,
775             IStream *pHeader,
776             IUnknown *pReserved,
777             ISpErrorLog *pErrorLog,
778             /* [in] */ DWORD dwFlags) = 0;
779 
780     };
781 
782 #else 	/* C style interface */
783 
784     typedef struct ISpGrammarCompilerVtbl
785     {
786         BEGIN_INTERFACE
787 
788         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
789             ISpGrammarCompiler * This,
790             /* [in] */ REFIID riid,
791             /* [iid_is][out] */ void **ppvObject);
792 
793         ULONG ( STDMETHODCALLTYPE *AddRef )(
794             ISpGrammarCompiler * This);
795 
796         ULONG ( STDMETHODCALLTYPE *Release )(
797             ISpGrammarCompiler * This);
798 
799         HRESULT ( STDMETHODCALLTYPE *CompileStream )(
800             ISpGrammarCompiler * This,
801             IStream *pSource,
802             IStream *pDest,
803             IStream *pHeader,
804             IUnknown *pReserved,
805             ISpErrorLog *pErrorLog,
806             /* [in] */ DWORD dwFlags);
807 
808         END_INTERFACE
809     } ISpGrammarCompilerVtbl;
810 
811     interface ISpGrammarCompiler
812     {
813         CONST_VTBL struct ISpGrammarCompilerVtbl *lpVtbl;
814     };
815 
816 
817 
818 #ifdef COBJMACROS
819 
820 
821 #define ISpGrammarCompiler_QueryInterface(This,riid,ppvObject)	\
822     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
823 
824 #define ISpGrammarCompiler_AddRef(This)	\
825     (This)->lpVtbl -> AddRef(This)
826 
827 #define ISpGrammarCompiler_Release(This)	\
828     (This)->lpVtbl -> Release(This)
829 
830 
831 #define ISpGrammarCompiler_CompileStream(This,pSource,pDest,pHeader,pReserved,pErrorLog,dwFlags)	\
832     (This)->lpVtbl -> CompileStream(This,pSource,pDest,pHeader,pReserved,pErrorLog,dwFlags)
833 
834 #endif /* COBJMACROS */
835 
836 
837 #endif 	/* C style interface */
838 
839 
840 
841 HRESULT STDMETHODCALLTYPE ISpGrammarCompiler_CompileStream_Proxy(
842     ISpGrammarCompiler * This,
843     IStream *pSource,
844     IStream *pDest,
845     IStream *pHeader,
846     IUnknown *pReserved,
847     ISpErrorLog *pErrorLog,
848     /* [in] */ DWORD dwFlags);
849 
850 
851 void __RPC_STUB ISpGrammarCompiler_CompileStream_Stub(
852     IRpcStubBuffer *This,
853     IRpcChannelBuffer *_pRpcChannelBuffer,
854     PRPC_MESSAGE _pRpcMessage,
855     DWORD *_pdwStubPhase);
856 
857 
858 
859 #endif 	/* __ISpGrammarCompiler_INTERFACE_DEFINED__ */
860 
861 
862 #ifndef __ISpGramCompBackend_INTERFACE_DEFINED__
863 #define __ISpGramCompBackend_INTERFACE_DEFINED__
864 
865 /* interface ISpGramCompBackend */
866 /* [restricted][unique][helpstring][uuid][object] */
867 
868 
869 EXTERN_C const IID IID_ISpGramCompBackend;
870 
871 #if defined(__cplusplus) && !defined(CINTERFACE)
872 
873     MIDL_INTERFACE("3DDCA27C-665C-4786-9F97-8C90C3488B61")
874     ISpGramCompBackend : public ISpGrammarBuilder
875     {
876     public:
877         virtual HRESULT STDMETHODCALLTYPE SetSaveObjects(
878             IStream *pStream,
879             ISpErrorLog *pErrorLog) = 0;
880 
881         virtual HRESULT STDMETHODCALLTYPE InitFromBinaryGrammar(
882             const SPBINARYGRAMMAR *pBinaryData) = 0;
883 
884     };
885 
886 #else 	/* C style interface */
887 
888     typedef struct ISpGramCompBackendVtbl
889     {
890         BEGIN_INTERFACE
891 
892         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
893             ISpGramCompBackend * This,
894             /* [in] */ REFIID riid,
895             /* [iid_is][out] */ void **ppvObject);
896 
897         ULONG ( STDMETHODCALLTYPE *AddRef )(
898             ISpGramCompBackend * This);
899 
900         ULONG ( STDMETHODCALLTYPE *Release )(
901             ISpGramCompBackend * This);
902 
903         HRESULT ( STDMETHODCALLTYPE *ResetGrammar )(
904             ISpGramCompBackend * This,
905             /* [in] */ WORD NewLanguage);
906 
907         HRESULT ( STDMETHODCALLTYPE *GetRule )(
908             ISpGramCompBackend * This,
909             /* [in] */ const WCHAR *pszRuleName,
910             /* [in] */ DWORD dwRuleId,
911             /* [in] */ DWORD dwAttributes,
912             /* [in] */ BOOL fCreateIfNotExist,
913             /* [out] */ SPSTATEHANDLE *phInitialState);
914 
915         HRESULT ( STDMETHODCALLTYPE *ClearRule )(
916             ISpGramCompBackend * This,
917             SPSTATEHANDLE hState);
918 
919         HRESULT ( STDMETHODCALLTYPE *CreateNewState )(
920             ISpGramCompBackend * This,
921             SPSTATEHANDLE hState,
922             SPSTATEHANDLE *phState);
923 
924         HRESULT ( STDMETHODCALLTYPE *AddWordTransition )(
925             ISpGramCompBackend * This,
926             SPSTATEHANDLE hFromState,
927             SPSTATEHANDLE hToState,
928             const WCHAR *psz,
929             const WCHAR *pszSeparators,
930             SPGRAMMARWORDTYPE eWordType,
931             float Weight,
932             const SPPROPERTYINFO *pPropInfo);
933 
934         HRESULT ( STDMETHODCALLTYPE *AddRuleTransition )(
935             ISpGramCompBackend * This,
936             SPSTATEHANDLE hFromState,
937             SPSTATEHANDLE hToState,
938             SPSTATEHANDLE hRule,
939             float Weight,
940             const SPPROPERTYINFO *pPropInfo);
941 
942         HRESULT ( STDMETHODCALLTYPE *AddResource )(
943             ISpGramCompBackend * This,
944             /* [in] */ SPSTATEHANDLE hRuleState,
945             /* [in] */ const WCHAR *pszResourceName,
946             /* [in] */ const WCHAR *pszResourceValue);
947 
948         HRESULT ( STDMETHODCALLTYPE *Commit )(
949             ISpGramCompBackend * This,
950             DWORD dwReserved);
951 
952         HRESULT ( STDMETHODCALLTYPE *SetSaveObjects )(
953             ISpGramCompBackend * This,
954             IStream *pStream,
955             ISpErrorLog *pErrorLog);
956 
957         HRESULT ( STDMETHODCALLTYPE *InitFromBinaryGrammar )(
958             ISpGramCompBackend * This,
959             const SPBINARYGRAMMAR *pBinaryData);
960 
961         END_INTERFACE
962     } ISpGramCompBackendVtbl;
963 
964     interface ISpGramCompBackend
965     {
966         CONST_VTBL struct ISpGramCompBackendVtbl *lpVtbl;
967     };
968 
969 
970 
971 #ifdef COBJMACROS
972 
973 
974 #define ISpGramCompBackend_QueryInterface(This,riid,ppvObject)	\
975     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
976 
977 #define ISpGramCompBackend_AddRef(This)	\
978     (This)->lpVtbl -> AddRef(This)
979 
980 #define ISpGramCompBackend_Release(This)	\
981     (This)->lpVtbl -> Release(This)
982 
983 
984 #define ISpGramCompBackend_ResetGrammar(This,NewLanguage)	\
985     (This)->lpVtbl -> ResetGrammar(This,NewLanguage)
986 
987 #define ISpGramCompBackend_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)	\
988     (This)->lpVtbl -> GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
989 
990 #define ISpGramCompBackend_ClearRule(This,hState)	\
991     (This)->lpVtbl -> ClearRule(This,hState)
992 
993 #define ISpGramCompBackend_CreateNewState(This,hState,phState)	\
994     (This)->lpVtbl -> CreateNewState(This,hState,phState)
995 
996 #define ISpGramCompBackend_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)	\
997     (This)->lpVtbl -> AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
998 
999 #define ISpGramCompBackend_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)	\
1000     (This)->lpVtbl -> AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
1001 
1002 #define ISpGramCompBackend_AddResource(This,hRuleState,pszResourceName,pszResourceValue)	\
1003     (This)->lpVtbl -> AddResource(This,hRuleState,pszResourceName,pszResourceValue)
1004 
1005 #define ISpGramCompBackend_Commit(This,dwReserved)	\
1006     (This)->lpVtbl -> Commit(This,dwReserved)
1007 
1008 
1009 #define ISpGramCompBackend_SetSaveObjects(This,pStream,pErrorLog)	\
1010     (This)->lpVtbl -> SetSaveObjects(This,pStream,pErrorLog)
1011 
1012 #define ISpGramCompBackend_InitFromBinaryGrammar(This,pBinaryData)	\
1013     (This)->lpVtbl -> InitFromBinaryGrammar(This,pBinaryData)
1014 
1015 #endif /* COBJMACROS */
1016 
1017 
1018 #endif 	/* C style interface */
1019 
1020 
1021 
1022 HRESULT STDMETHODCALLTYPE ISpGramCompBackend_SetSaveObjects_Proxy(
1023     ISpGramCompBackend * This,
1024     IStream *pStream,
1025     ISpErrorLog *pErrorLog);
1026 
1027 
1028 void __RPC_STUB ISpGramCompBackend_SetSaveObjects_Stub(
1029     IRpcStubBuffer *This,
1030     IRpcChannelBuffer *_pRpcChannelBuffer,
1031     PRPC_MESSAGE _pRpcMessage,
1032     DWORD *_pdwStubPhase);
1033 
1034 
1035 HRESULT STDMETHODCALLTYPE ISpGramCompBackend_InitFromBinaryGrammar_Proxy(
1036     ISpGramCompBackend * This,
1037     const SPBINARYGRAMMAR *pBinaryData);
1038 
1039 
1040 void __RPC_STUB ISpGramCompBackend_InitFromBinaryGrammar_Stub(
1041     IRpcStubBuffer *This,
1042     IRpcChannelBuffer *_pRpcChannelBuffer,
1043     PRPC_MESSAGE _pRpcMessage,
1044     DWORD *_pdwStubPhase);
1045 
1046 
1047 
1048 #endif 	/* __ISpGramCompBackend_INTERFACE_DEFINED__ */
1049 
1050 
1051 #ifndef __ISpITNProcessor_INTERFACE_DEFINED__
1052 #define __ISpITNProcessor_INTERFACE_DEFINED__
1053 
1054 /* interface ISpITNProcessor */
1055 /* [restricted][local][unique][helpstring][uuid][object] */
1056 
1057 
1058 EXTERN_C const IID IID_ISpITNProcessor;
1059 
1060 #if defined(__cplusplus) && !defined(CINTERFACE)
1061 
1062     MIDL_INTERFACE("12D7360F-A1C9-11d3-BC90-00C04F72DF9F")
1063     ISpITNProcessor : public IUnknown
1064     {
1065     public:
1066         virtual HRESULT STDMETHODCALLTYPE LoadITNGrammar(
1067             WCHAR *pszCLSID) = 0;
1068 
1069         virtual HRESULT STDMETHODCALLTYPE ITNPhrase(
1070             ISpPhraseBuilder *pPhrase) = 0;
1071 
1072     };
1073 
1074 #else 	/* C style interface */
1075 
1076     typedef struct ISpITNProcessorVtbl
1077     {
1078         BEGIN_INTERFACE
1079 
1080         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1081             ISpITNProcessor * This,
1082             /* [in] */ REFIID riid,
1083             /* [iid_is][out] */ void **ppvObject);
1084 
1085         ULONG ( STDMETHODCALLTYPE *AddRef )(
1086             ISpITNProcessor * This);
1087 
1088         ULONG ( STDMETHODCALLTYPE *Release )(
1089             ISpITNProcessor * This);
1090 
1091         HRESULT ( STDMETHODCALLTYPE *LoadITNGrammar )(
1092             ISpITNProcessor * This,
1093             WCHAR *pszCLSID);
1094 
1095         HRESULT ( STDMETHODCALLTYPE *ITNPhrase )(
1096             ISpITNProcessor * This,
1097             ISpPhraseBuilder *pPhrase);
1098 
1099         END_INTERFACE
1100     } ISpITNProcessorVtbl;
1101 
1102     interface ISpITNProcessor
1103     {
1104         CONST_VTBL struct ISpITNProcessorVtbl *lpVtbl;
1105     };
1106 
1107 
1108 
1109 #ifdef COBJMACROS
1110 
1111 
1112 #define ISpITNProcessor_QueryInterface(This,riid,ppvObject)	\
1113     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
1114 
1115 #define ISpITNProcessor_AddRef(This)	\
1116     (This)->lpVtbl -> AddRef(This)
1117 
1118 #define ISpITNProcessor_Release(This)	\
1119     (This)->lpVtbl -> Release(This)
1120 
1121 
1122 #define ISpITNProcessor_LoadITNGrammar(This,pszCLSID)	\
1123     (This)->lpVtbl -> LoadITNGrammar(This,pszCLSID)
1124 
1125 #define ISpITNProcessor_ITNPhrase(This,pPhrase)	\
1126     (This)->lpVtbl -> ITNPhrase(This,pPhrase)
1127 
1128 #endif /* COBJMACROS */
1129 
1130 
1131 #endif 	/* C style interface */
1132 
1133 
1134 
1135 HRESULT STDMETHODCALLTYPE ISpITNProcessor_LoadITNGrammar_Proxy(
1136     ISpITNProcessor * This,
1137     WCHAR *pszCLSID);
1138 
1139 
1140 void __RPC_STUB ISpITNProcessor_LoadITNGrammar_Stub(
1141     IRpcStubBuffer *This,
1142     IRpcChannelBuffer *_pRpcChannelBuffer,
1143     PRPC_MESSAGE _pRpcMessage,
1144     DWORD *_pdwStubPhase);
1145 
1146 
1147 HRESULT STDMETHODCALLTYPE ISpITNProcessor_ITNPhrase_Proxy(
1148     ISpITNProcessor * This,
1149     ISpPhraseBuilder *pPhrase);
1150 
1151 
1152 void __RPC_STUB ISpITNProcessor_ITNPhrase_Stub(
1153     IRpcStubBuffer *This,
1154     IRpcChannelBuffer *_pRpcChannelBuffer,
1155     PRPC_MESSAGE _pRpcMessage,
1156     DWORD *_pdwStubPhase);
1157 
1158 
1159 
1160 #endif 	/* __ISpITNProcessor_INTERFACE_DEFINED__ */
1161 
1162 
1163 #ifndef __ISpPhraseBuilder_INTERFACE_DEFINED__
1164 #define __ISpPhraseBuilder_INTERFACE_DEFINED__
1165 
1166 /* interface ISpPhraseBuilder */
1167 /* [restricted][unique][helpstring][local][uuid][object] */
1168 
1169 
1170 EXTERN_C const IID IID_ISpPhraseBuilder;
1171 
1172 #if defined(__cplusplus) && !defined(CINTERFACE)
1173 
1174     MIDL_INTERFACE("88A3342A-0BED-4834-922B-88D43173162F")
1175     ISpPhraseBuilder : public ISpPhrase
1176     {
1177     public:
1178         virtual HRESULT STDMETHODCALLTYPE InitFromPhrase(
1179             const SPPHRASE *pPhrase) = 0;
1180 
1181         virtual HRESULT STDMETHODCALLTYPE InitFromSerializedPhrase(
1182             const SPSERIALIZEDPHRASE *pPhrase) = 0;
1183 
1184         virtual HRESULT STDMETHODCALLTYPE AddElements(
1185             ULONG cElements,
1186             const SPPHRASEELEMENT *pElement) = 0;
1187 
1188         virtual HRESULT STDMETHODCALLTYPE AddRules(
1189             const SPPHRASERULEHANDLE hParent,
1190             const SPPHRASERULE *pRule,
1191             SPPHRASERULEHANDLE *phNewRule) = 0;
1192 
1193         virtual HRESULT STDMETHODCALLTYPE AddProperties(
1194             const SPPHRASEPROPERTYHANDLE hParent,
1195             const SPPHRASEPROPERTY *pProperty,
1196             SPPHRASEPROPERTYHANDLE *phNewProperty) = 0;
1197 
1198         virtual HRESULT STDMETHODCALLTYPE AddReplacements(
1199             ULONG cReplacements,
1200             const SPPHRASEREPLACEMENT *pReplacements) = 0;
1201 
1202     };
1203 
1204 #else 	/* C style interface */
1205 
1206     typedef struct ISpPhraseBuilderVtbl
1207     {
1208         BEGIN_INTERFACE
1209 
1210         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1211             ISpPhraseBuilder * This,
1212             /* [in] */ REFIID riid,
1213             /* [iid_is][out] */ void **ppvObject);
1214 
1215         ULONG ( STDMETHODCALLTYPE *AddRef )(
1216             ISpPhraseBuilder * This);
1217 
1218         ULONG ( STDMETHODCALLTYPE *Release )(
1219             ISpPhraseBuilder * This);
1220 
1221         HRESULT ( STDMETHODCALLTYPE *GetPhrase )(
1222             ISpPhraseBuilder * This,
1223             /* [out] */ SPPHRASE **ppCoMemPhrase);
1224 
1225         HRESULT ( STDMETHODCALLTYPE *GetSerializedPhrase )(
1226             ISpPhraseBuilder * This,
1227             /* [out] */ SPSERIALIZEDPHRASE **ppCoMemPhrase);
1228 
1229         HRESULT ( STDMETHODCALLTYPE *GetText )(
1230             ISpPhraseBuilder * This,
1231             /* [in] */ ULONG ulStart,
1232             /* [in] */ ULONG ulCount,
1233             /* [in] */ BOOL fUseTextReplacements,
1234             /* [out] */ WCHAR **ppszCoMemText,
1235             /* [out] */ BYTE *pbDisplayAttributes);
1236 
1237         HRESULT ( STDMETHODCALLTYPE *Discard )(
1238             ISpPhraseBuilder * This,
1239             /* [in] */ DWORD dwValueTypes);
1240 
1241         HRESULT ( STDMETHODCALLTYPE *InitFromPhrase )(
1242             ISpPhraseBuilder * This,
1243             const SPPHRASE *pPhrase);
1244 
1245         HRESULT ( STDMETHODCALLTYPE *InitFromSerializedPhrase )(
1246             ISpPhraseBuilder * This,
1247             const SPSERIALIZEDPHRASE *pPhrase);
1248 
1249         HRESULT ( STDMETHODCALLTYPE *AddElements )(
1250             ISpPhraseBuilder * This,
1251             ULONG cElements,
1252             const SPPHRASEELEMENT *pElement);
1253 
1254         HRESULT ( STDMETHODCALLTYPE *AddRules )(
1255             ISpPhraseBuilder * This,
1256             const SPPHRASERULEHANDLE hParent,
1257             const SPPHRASERULE *pRule,
1258             SPPHRASERULEHANDLE *phNewRule);
1259 
1260         HRESULT ( STDMETHODCALLTYPE *AddProperties )(
1261             ISpPhraseBuilder * This,
1262             const SPPHRASEPROPERTYHANDLE hParent,
1263             const SPPHRASEPROPERTY *pProperty,
1264             SPPHRASEPROPERTYHANDLE *phNewProperty);
1265 
1266         HRESULT ( STDMETHODCALLTYPE *AddReplacements )(
1267             ISpPhraseBuilder * This,
1268             ULONG cReplacements,
1269             const SPPHRASEREPLACEMENT *pReplacements);
1270 
1271         END_INTERFACE
1272     } ISpPhraseBuilderVtbl;
1273 
1274     interface ISpPhraseBuilder
1275     {
1276         CONST_VTBL struct ISpPhraseBuilderVtbl *lpVtbl;
1277     };
1278 
1279 
1280 
1281 #ifdef COBJMACROS
1282 
1283 
1284 #define ISpPhraseBuilder_QueryInterface(This,riid,ppvObject)	\
1285     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
1286 
1287 #define ISpPhraseBuilder_AddRef(This)	\
1288     (This)->lpVtbl -> AddRef(This)
1289 
1290 #define ISpPhraseBuilder_Release(This)	\
1291     (This)->lpVtbl -> Release(This)
1292 
1293 
1294 #define ISpPhraseBuilder_GetPhrase(This,ppCoMemPhrase)	\
1295     (This)->lpVtbl -> GetPhrase(This,ppCoMemPhrase)
1296 
1297 #define ISpPhraseBuilder_GetSerializedPhrase(This,ppCoMemPhrase)	\
1298     (This)->lpVtbl -> GetSerializedPhrase(This,ppCoMemPhrase)
1299 
1300 #define ISpPhraseBuilder_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)	\
1301     (This)->lpVtbl -> GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
1302 
1303 #define ISpPhraseBuilder_Discard(This,dwValueTypes)	\
1304     (This)->lpVtbl -> Discard(This,dwValueTypes)
1305 
1306 
1307 #define ISpPhraseBuilder_InitFromPhrase(This,pPhrase)	\
1308     (This)->lpVtbl -> InitFromPhrase(This,pPhrase)
1309 
1310 #define ISpPhraseBuilder_InitFromSerializedPhrase(This,pPhrase)	\
1311     (This)->lpVtbl -> InitFromSerializedPhrase(This,pPhrase)
1312 
1313 #define ISpPhraseBuilder_AddElements(This,cElements,pElement)	\
1314     (This)->lpVtbl -> AddElements(This,cElements,pElement)
1315 
1316 #define ISpPhraseBuilder_AddRules(This,hParent,pRule,phNewRule)	\
1317     (This)->lpVtbl -> AddRules(This,hParent,pRule,phNewRule)
1318 
1319 #define ISpPhraseBuilder_AddProperties(This,hParent,pProperty,phNewProperty)	\
1320     (This)->lpVtbl -> AddProperties(This,hParent,pProperty,phNewProperty)
1321 
1322 #define ISpPhraseBuilder_AddReplacements(This,cReplacements,pReplacements)	\
1323     (This)->lpVtbl -> AddReplacements(This,cReplacements,pReplacements)
1324 
1325 #endif /* COBJMACROS */
1326 
1327 
1328 #endif 	/* C style interface */
1329 
1330 
1331 
1332 HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_InitFromPhrase_Proxy(
1333     ISpPhraseBuilder * This,
1334     const SPPHRASE *pPhrase);
1335 
1336 
1337 void __RPC_STUB ISpPhraseBuilder_InitFromPhrase_Stub(
1338     IRpcStubBuffer *This,
1339     IRpcChannelBuffer *_pRpcChannelBuffer,
1340     PRPC_MESSAGE _pRpcMessage,
1341     DWORD *_pdwStubPhase);
1342 
1343 
1344 HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_InitFromSerializedPhrase_Proxy(
1345     ISpPhraseBuilder * This,
1346     const SPSERIALIZEDPHRASE *pPhrase);
1347 
1348 
1349 void __RPC_STUB ISpPhraseBuilder_InitFromSerializedPhrase_Stub(
1350     IRpcStubBuffer *This,
1351     IRpcChannelBuffer *_pRpcChannelBuffer,
1352     PRPC_MESSAGE _pRpcMessage,
1353     DWORD *_pdwStubPhase);
1354 
1355 
1356 HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_AddElements_Proxy(
1357     ISpPhraseBuilder * This,
1358     ULONG cElements,
1359     const SPPHRASEELEMENT *pElement);
1360 
1361 
1362 void __RPC_STUB ISpPhraseBuilder_AddElements_Stub(
1363     IRpcStubBuffer *This,
1364     IRpcChannelBuffer *_pRpcChannelBuffer,
1365     PRPC_MESSAGE _pRpcMessage,
1366     DWORD *_pdwStubPhase);
1367 
1368 
1369 HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_AddRules_Proxy(
1370     ISpPhraseBuilder * This,
1371     const SPPHRASERULEHANDLE hParent,
1372     const SPPHRASERULE *pRule,
1373     SPPHRASERULEHANDLE *phNewRule);
1374 
1375 
1376 void __RPC_STUB ISpPhraseBuilder_AddRules_Stub(
1377     IRpcStubBuffer *This,
1378     IRpcChannelBuffer *_pRpcChannelBuffer,
1379     PRPC_MESSAGE _pRpcMessage,
1380     DWORD *_pdwStubPhase);
1381 
1382 
1383 HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_AddProperties_Proxy(
1384     ISpPhraseBuilder * This,
1385     const SPPHRASEPROPERTYHANDLE hParent,
1386     const SPPHRASEPROPERTY *pProperty,
1387     SPPHRASEPROPERTYHANDLE *phNewProperty);
1388 
1389 
1390 void __RPC_STUB ISpPhraseBuilder_AddProperties_Stub(
1391     IRpcStubBuffer *This,
1392     IRpcChannelBuffer *_pRpcChannelBuffer,
1393     PRPC_MESSAGE _pRpcMessage,
1394     DWORD *_pdwStubPhase);
1395 
1396 
1397 HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_AddReplacements_Proxy(
1398     ISpPhraseBuilder * This,
1399     ULONG cReplacements,
1400     const SPPHRASEREPLACEMENT *pReplacements);
1401 
1402 
1403 void __RPC_STUB ISpPhraseBuilder_AddReplacements_Stub(
1404     IRpcStubBuffer *This,
1405     IRpcChannelBuffer *_pRpcChannelBuffer,
1406     PRPC_MESSAGE _pRpcMessage,
1407     DWORD *_pdwStubPhase);
1408 
1409 
1410 
1411 #endif 	/* __ISpPhraseBuilder_INTERFACE_DEFINED__ */
1412 
1413 
1414 /* interface __MIDL_itf_sapiddk_0344 */
1415 /* [local] */
1416 
1417 #if defined(__cplusplus)
1418 interface ISpTask
1419 {
1420 virtual HRESULT STDMETHODCALLTYPE Execute(
1421                  void *pvTaskData,
1422                  volatile const BOOL* pfContinueProcessing) = 0;
1423 };
1424 #else
1425 typedef void *ISpTask;
1426 
1427 #endif
1428 #if defined(__cplusplus)
1429 interface ISpThreadTask
1430 {
1431 virtual HRESULT STDMETHODCALLTYPE InitThread(
1432                  void * pvTaskData,
1433                  HWND hwnd) = 0;
1434 virtual HRESULT STDMETHODCALLTYPE ThreadProc(
1435                  void *pvTaskData,
1436                  HANDLE hExitThreadEvent,
1437                  HANDLE hNotifyEvent,
1438                  HWND hwndWorker,
1439                  volatile const BOOL * pfContinueProcessing) = 0;
1440 virtual LRESULT STDMETHODCALLTYPE WindowMessage(
1441                  void *pvTaskData,
1442                  HWND hWnd,
1443                  UINT Msg,
1444                  WPARAM wParam,
1445                  LPARAM lParam) = 0;
1446 };
1447 #else
1448 typedef void *ISpThreadTask;
1449 
1450 #endif
1451 
1452 
1453 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0344_v0_0_c_ifspec;
1454 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0344_v0_0_s_ifspec;
1455 
1456 #ifndef __ISpThreadControl_INTERFACE_DEFINED__
1457 #define __ISpThreadControl_INTERFACE_DEFINED__
1458 
1459 /* interface ISpThreadControl */
1460 /* [restricted][local][unique][helpstring][uuid][object] */
1461 
1462 
1463 EXTERN_C const IID IID_ISpThreadControl;
1464 
1465 #if defined(__cplusplus) && !defined(CINTERFACE)
1466 
1467     MIDL_INTERFACE("A6BE4D73-4403-4358-B22D-0346E23B1764")
1468     ISpThreadControl : public ISpNotifySink
1469     {
1470     public:
1471         virtual HRESULT STDMETHODCALLTYPE StartThread(
1472             DWORD dwFlags,
1473             HWND *phwnd) = 0;
1474 
1475         virtual HRESULT STDMETHODCALLTYPE WaitForThreadDone(
1476             BOOL fForceStop,
1477             HRESULT *phrThreadResult,
1478             ULONG msTimeOut) = 0;
1479 
1480         virtual HRESULT STDMETHODCALLTYPE TerminateThread( void) = 0;
1481 
1482         virtual HANDLE STDMETHODCALLTYPE ThreadHandle( void) = 0;
1483 
1484         virtual DWORD STDMETHODCALLTYPE ThreadId( void) = 0;
1485 
1486         virtual HANDLE STDMETHODCALLTYPE NotifyEvent( void) = 0;
1487 
1488         virtual HWND STDMETHODCALLTYPE WindowHandle( void) = 0;
1489 
1490         virtual HANDLE STDMETHODCALLTYPE ThreadCompleteEvent( void) = 0;
1491 
1492         virtual HANDLE STDMETHODCALLTYPE ExitThreadEvent( void) = 0;
1493 
1494     };
1495 
1496 #else 	/* C style interface */
1497 
1498     typedef struct ISpThreadControlVtbl
1499     {
1500         BEGIN_INTERFACE
1501 
1502         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1503             ISpThreadControl * This,
1504             /* [in] */ REFIID riid,
1505             /* [iid_is][out] */ void **ppvObject);
1506 
1507         ULONG ( STDMETHODCALLTYPE *AddRef )(
1508             ISpThreadControl * This);
1509 
1510         ULONG ( STDMETHODCALLTYPE *Release )(
1511             ISpThreadControl * This);
1512 
1513         HRESULT ( STDMETHODCALLTYPE *Notify )(
1514             ISpThreadControl * This);
1515 
1516         HRESULT ( STDMETHODCALLTYPE *StartThread )(
1517             ISpThreadControl * This,
1518             DWORD dwFlags,
1519             HWND *phwnd);
1520 
1521         HRESULT ( STDMETHODCALLTYPE *WaitForThreadDone )(
1522             ISpThreadControl * This,
1523             BOOL fForceStop,
1524             HRESULT *phrThreadResult,
1525             ULONG msTimeOut);
1526 
1527         HRESULT ( STDMETHODCALLTYPE *TerminateThread )(
1528             ISpThreadControl * This);
1529 
1530         HANDLE ( STDMETHODCALLTYPE *ThreadHandle )(
1531             ISpThreadControl * This);
1532 
1533         DWORD ( STDMETHODCALLTYPE *ThreadId )(
1534             ISpThreadControl * This);
1535 
1536         HANDLE ( STDMETHODCALLTYPE *NotifyEvent )(
1537             ISpThreadControl * This);
1538 
1539         HWND ( STDMETHODCALLTYPE *WindowHandle )(
1540             ISpThreadControl * This);
1541 
1542         HANDLE ( STDMETHODCALLTYPE *ThreadCompleteEvent )(
1543             ISpThreadControl * This);
1544 
1545         HANDLE ( STDMETHODCALLTYPE *ExitThreadEvent )(
1546             ISpThreadControl * This);
1547 
1548         END_INTERFACE
1549     } ISpThreadControlVtbl;
1550 
1551     interface ISpThreadControl
1552     {
1553         CONST_VTBL struct ISpThreadControlVtbl *lpVtbl;
1554     };
1555 
1556 
1557 
1558 #ifdef COBJMACROS
1559 
1560 
1561 #define ISpThreadControl_QueryInterface(This,riid,ppvObject)	\
1562     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
1563 
1564 #define ISpThreadControl_AddRef(This)	\
1565     (This)->lpVtbl -> AddRef(This)
1566 
1567 #define ISpThreadControl_Release(This)	\
1568     (This)->lpVtbl -> Release(This)
1569 
1570 
1571 #define ISpThreadControl_Notify(This)	\
1572     (This)->lpVtbl -> Notify(This)
1573 
1574 
1575 #define ISpThreadControl_StartThread(This,dwFlags,phwnd)	\
1576     (This)->lpVtbl -> StartThread(This,dwFlags,phwnd)
1577 
1578 #define ISpThreadControl_WaitForThreadDone(This,fForceStop,phrThreadResult,msTimeOut)	\
1579     (This)->lpVtbl -> WaitForThreadDone(This,fForceStop,phrThreadResult,msTimeOut)
1580 
1581 #define ISpThreadControl_TerminateThread(This)	\
1582     (This)->lpVtbl -> TerminateThread(This)
1583 
1584 #define ISpThreadControl_ThreadHandle(This)	\
1585     (This)->lpVtbl -> ThreadHandle(This)
1586 
1587 #define ISpThreadControl_ThreadId(This)	\
1588     (This)->lpVtbl -> ThreadId(This)
1589 
1590 #define ISpThreadControl_NotifyEvent(This)	\
1591     (This)->lpVtbl -> NotifyEvent(This)
1592 
1593 #define ISpThreadControl_WindowHandle(This)	\
1594     (This)->lpVtbl -> WindowHandle(This)
1595 
1596 #define ISpThreadControl_ThreadCompleteEvent(This)	\
1597     (This)->lpVtbl -> ThreadCompleteEvent(This)
1598 
1599 #define ISpThreadControl_ExitThreadEvent(This)	\
1600     (This)->lpVtbl -> ExitThreadEvent(This)
1601 
1602 #endif /* COBJMACROS */
1603 
1604 
1605 #endif 	/* C style interface */
1606 
1607 
1608 
1609 HRESULT STDMETHODCALLTYPE ISpThreadControl_StartThread_Proxy(
1610     ISpThreadControl * This,
1611     DWORD dwFlags,
1612     HWND *phwnd);
1613 
1614 
1615 void __RPC_STUB ISpThreadControl_StartThread_Stub(
1616     IRpcStubBuffer *This,
1617     IRpcChannelBuffer *_pRpcChannelBuffer,
1618     PRPC_MESSAGE _pRpcMessage,
1619     DWORD *_pdwStubPhase);
1620 
1621 
1622 HRESULT STDMETHODCALLTYPE ISpThreadControl_WaitForThreadDone_Proxy(
1623     ISpThreadControl * This,
1624     BOOL fForceStop,
1625     HRESULT *phrThreadResult,
1626     ULONG msTimeOut);
1627 
1628 
1629 void __RPC_STUB ISpThreadControl_WaitForThreadDone_Stub(
1630     IRpcStubBuffer *This,
1631     IRpcChannelBuffer *_pRpcChannelBuffer,
1632     PRPC_MESSAGE _pRpcMessage,
1633     DWORD *_pdwStubPhase);
1634 
1635 
1636 HRESULT STDMETHODCALLTYPE ISpThreadControl_TerminateThread_Proxy(
1637     ISpThreadControl * This);
1638 
1639 
1640 void __RPC_STUB ISpThreadControl_TerminateThread_Stub(
1641     IRpcStubBuffer *This,
1642     IRpcChannelBuffer *_pRpcChannelBuffer,
1643     PRPC_MESSAGE _pRpcMessage,
1644     DWORD *_pdwStubPhase);
1645 
1646 
1647 HANDLE STDMETHODCALLTYPE ISpThreadControl_ThreadHandle_Proxy(
1648     ISpThreadControl * This);
1649 
1650 
1651 void __RPC_STUB ISpThreadControl_ThreadHandle_Stub(
1652     IRpcStubBuffer *This,
1653     IRpcChannelBuffer *_pRpcChannelBuffer,
1654     PRPC_MESSAGE _pRpcMessage,
1655     DWORD *_pdwStubPhase);
1656 
1657 
1658 DWORD STDMETHODCALLTYPE ISpThreadControl_ThreadId_Proxy(
1659     ISpThreadControl * This);
1660 
1661 
1662 void __RPC_STUB ISpThreadControl_ThreadId_Stub(
1663     IRpcStubBuffer *This,
1664     IRpcChannelBuffer *_pRpcChannelBuffer,
1665     PRPC_MESSAGE _pRpcMessage,
1666     DWORD *_pdwStubPhase);
1667 
1668 
1669 HANDLE STDMETHODCALLTYPE ISpThreadControl_NotifyEvent_Proxy(
1670     ISpThreadControl * This);
1671 
1672 
1673 void __RPC_STUB ISpThreadControl_NotifyEvent_Stub(
1674     IRpcStubBuffer *This,
1675     IRpcChannelBuffer *_pRpcChannelBuffer,
1676     PRPC_MESSAGE _pRpcMessage,
1677     DWORD *_pdwStubPhase);
1678 
1679 
1680 HWND STDMETHODCALLTYPE ISpThreadControl_WindowHandle_Proxy(
1681     ISpThreadControl * This);
1682 
1683 
1684 void __RPC_STUB ISpThreadControl_WindowHandle_Stub(
1685     IRpcStubBuffer *This,
1686     IRpcChannelBuffer *_pRpcChannelBuffer,
1687     PRPC_MESSAGE _pRpcMessage,
1688     DWORD *_pdwStubPhase);
1689 
1690 
1691 HANDLE STDMETHODCALLTYPE ISpThreadControl_ThreadCompleteEvent_Proxy(
1692     ISpThreadControl * This);
1693 
1694 
1695 void __RPC_STUB ISpThreadControl_ThreadCompleteEvent_Stub(
1696     IRpcStubBuffer *This,
1697     IRpcChannelBuffer *_pRpcChannelBuffer,
1698     PRPC_MESSAGE _pRpcMessage,
1699     DWORD *_pdwStubPhase);
1700 
1701 
1702 HANDLE STDMETHODCALLTYPE ISpThreadControl_ExitThreadEvent_Proxy(
1703     ISpThreadControl * This);
1704 
1705 
1706 void __RPC_STUB ISpThreadControl_ExitThreadEvent_Stub(
1707     IRpcStubBuffer *This,
1708     IRpcChannelBuffer *_pRpcChannelBuffer,
1709     PRPC_MESSAGE _pRpcMessage,
1710     DWORD *_pdwStubPhase);
1711 
1712 
1713 
1714 #endif 	/* __ISpThreadControl_INTERFACE_DEFINED__ */
1715 
1716 
1717 /* interface __MIDL_itf_sapiddk_0345 */
1718 /* [local] */
1719 
1720 typedef /* [restricted] */ struct SPTMTHREADINFO
1721     {
1722     long lPoolSize;
1723     long lPriority;
1724     ULONG ulConcurrencyLimit;
1725     ULONG ulMaxQuickAllocThreads;
1726     } 	SPTMTHREADINFO;
1727 
1728 
1729 
1730 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0345_v0_0_c_ifspec;
1731 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0345_v0_0_s_ifspec;
1732 
1733 #ifndef __ISpTaskManager_INTERFACE_DEFINED__
1734 #define __ISpTaskManager_INTERFACE_DEFINED__
1735 
1736 /* interface ISpTaskManager */
1737 /* [object][restricted][unique][helpstring][uuid][local] */
1738 
1739 
1740 EXTERN_C const IID IID_ISpTaskManager;
1741 
1742 #if defined(__cplusplus) && !defined(CINTERFACE)
1743 
1744     MIDL_INTERFACE("2BAEEF81-2CA3-4331-98F3-26EC5ABEFB03")
1745     ISpTaskManager : public IUnknown
1746     {
1747     public:
1748         virtual HRESULT STDMETHODCALLTYPE SetThreadPoolInfo(
1749             /* [in] */ const SPTMTHREADINFO *pPoolInfo) = 0;
1750 
1751         virtual HRESULT STDMETHODCALLTYPE GetThreadPoolInfo(
1752             /* [out] */ SPTMTHREADINFO *pPoolInfo) = 0;
1753 
1754         virtual HRESULT STDMETHODCALLTYPE QueueTask(
1755             /* [in] */ ISpTask *pTask,
1756             /* [in] */ void *pvTaskData,
1757             /* [in] */ HANDLE hCompEvent,
1758             /* [out][in] */ DWORD *pdwGroupId,
1759             /* [out] */ DWORD *pTaskID) = 0;
1760 
1761         virtual HRESULT STDMETHODCALLTYPE CreateReoccurringTask(
1762             /* [in] */ ISpTask *pTask,
1763             /* [in] */ void *pvTaskData,
1764             /* [in] */ HANDLE hCompEvent,
1765             /* [out] */ ISpNotifySink **ppTaskCtrl) = 0;
1766 
1767         virtual HRESULT STDMETHODCALLTYPE CreateThreadControl(
1768             /* [in] */ ISpThreadTask *pTask,
1769             /* [in] */ void *pvTaskData,
1770             /* [in] */ long nPriority,
1771             /* [out] */ ISpThreadControl **ppTaskCtrl) = 0;
1772 
1773         virtual HRESULT STDMETHODCALLTYPE TerminateTask(
1774             /* [in] */ DWORD dwTaskId,
1775             /* [in] */ ULONG ulWaitPeriod) = 0;
1776 
1777         virtual HRESULT STDMETHODCALLTYPE TerminateTaskGroup(
1778             /* [in] */ DWORD dwGroupId,
1779             /* [in] */ ULONG ulWaitPeriod) = 0;
1780 
1781     };
1782 
1783 #else 	/* C style interface */
1784 
1785     typedef struct ISpTaskManagerVtbl
1786     {
1787         BEGIN_INTERFACE
1788 
1789         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1790             ISpTaskManager * This,
1791             /* [in] */ REFIID riid,
1792             /* [iid_is][out] */ void **ppvObject);
1793 
1794         ULONG ( STDMETHODCALLTYPE *AddRef )(
1795             ISpTaskManager * This);
1796 
1797         ULONG ( STDMETHODCALLTYPE *Release )(
1798             ISpTaskManager * This);
1799 
1800         HRESULT ( STDMETHODCALLTYPE *SetThreadPoolInfo )(
1801             ISpTaskManager * This,
1802             /* [in] */ const SPTMTHREADINFO *pPoolInfo);
1803 
1804         HRESULT ( STDMETHODCALLTYPE *GetThreadPoolInfo )(
1805             ISpTaskManager * This,
1806             /* [out] */ SPTMTHREADINFO *pPoolInfo);
1807 
1808         HRESULT ( STDMETHODCALLTYPE *QueueTask )(
1809             ISpTaskManager * This,
1810             /* [in] */ ISpTask *pTask,
1811             /* [in] */ void *pvTaskData,
1812             /* [in] */ HANDLE hCompEvent,
1813             /* [out][in] */ DWORD *pdwGroupId,
1814             /* [out] */ DWORD *pTaskID);
1815 
1816         HRESULT ( STDMETHODCALLTYPE *CreateReoccurringTask )(
1817             ISpTaskManager * This,
1818             /* [in] */ ISpTask *pTask,
1819             /* [in] */ void *pvTaskData,
1820             /* [in] */ HANDLE hCompEvent,
1821             /* [out] */ ISpNotifySink **ppTaskCtrl);
1822 
1823         HRESULT ( STDMETHODCALLTYPE *CreateThreadControl )(
1824             ISpTaskManager * This,
1825             /* [in] */ ISpThreadTask *pTask,
1826             /* [in] */ void *pvTaskData,
1827             /* [in] */ long nPriority,
1828             /* [out] */ ISpThreadControl **ppTaskCtrl);
1829 
1830         HRESULT ( STDMETHODCALLTYPE *TerminateTask )(
1831             ISpTaskManager * This,
1832             /* [in] */ DWORD dwTaskId,
1833             /* [in] */ ULONG ulWaitPeriod);
1834 
1835         HRESULT ( STDMETHODCALLTYPE *TerminateTaskGroup )(
1836             ISpTaskManager * This,
1837             /* [in] */ DWORD dwGroupId,
1838             /* [in] */ ULONG ulWaitPeriod);
1839 
1840         END_INTERFACE
1841     } ISpTaskManagerVtbl;
1842 
1843     interface ISpTaskManager
1844     {
1845         CONST_VTBL struct ISpTaskManagerVtbl *lpVtbl;
1846     };
1847 
1848 
1849 
1850 #ifdef COBJMACROS
1851 
1852 
1853 #define ISpTaskManager_QueryInterface(This,riid,ppvObject)	\
1854     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
1855 
1856 #define ISpTaskManager_AddRef(This)	\
1857     (This)->lpVtbl -> AddRef(This)
1858 
1859 #define ISpTaskManager_Release(This)	\
1860     (This)->lpVtbl -> Release(This)
1861 
1862 
1863 #define ISpTaskManager_SetThreadPoolInfo(This,pPoolInfo)	\
1864     (This)->lpVtbl -> SetThreadPoolInfo(This,pPoolInfo)
1865 
1866 #define ISpTaskManager_GetThreadPoolInfo(This,pPoolInfo)	\
1867     (This)->lpVtbl -> GetThreadPoolInfo(This,pPoolInfo)
1868 
1869 #define ISpTaskManager_QueueTask(This,pTask,pvTaskData,hCompEvent,pdwGroupId,pTaskID)	\
1870     (This)->lpVtbl -> QueueTask(This,pTask,pvTaskData,hCompEvent,pdwGroupId,pTaskID)
1871 
1872 #define ISpTaskManager_CreateReoccurringTask(This,pTask,pvTaskData,hCompEvent,ppTaskCtrl)	\
1873     (This)->lpVtbl -> CreateReoccurringTask(This,pTask,pvTaskData,hCompEvent,ppTaskCtrl)
1874 
1875 #define ISpTaskManager_CreateThreadControl(This,pTask,pvTaskData,nPriority,ppTaskCtrl)	\
1876     (This)->lpVtbl -> CreateThreadControl(This,pTask,pvTaskData,nPriority,ppTaskCtrl)
1877 
1878 #define ISpTaskManager_TerminateTask(This,dwTaskId,ulWaitPeriod)	\
1879     (This)->lpVtbl -> TerminateTask(This,dwTaskId,ulWaitPeriod)
1880 
1881 #define ISpTaskManager_TerminateTaskGroup(This,dwGroupId,ulWaitPeriod)	\
1882     (This)->lpVtbl -> TerminateTaskGroup(This,dwGroupId,ulWaitPeriod)
1883 
1884 #endif /* COBJMACROS */
1885 
1886 
1887 #endif 	/* C style interface */
1888 
1889 
1890 
1891 HRESULT STDMETHODCALLTYPE ISpTaskManager_SetThreadPoolInfo_Proxy(
1892     ISpTaskManager * This,
1893     /* [in] */ const SPTMTHREADINFO *pPoolInfo);
1894 
1895 
1896 void __RPC_STUB ISpTaskManager_SetThreadPoolInfo_Stub(
1897     IRpcStubBuffer *This,
1898     IRpcChannelBuffer *_pRpcChannelBuffer,
1899     PRPC_MESSAGE _pRpcMessage,
1900     DWORD *_pdwStubPhase);
1901 
1902 
1903 HRESULT STDMETHODCALLTYPE ISpTaskManager_GetThreadPoolInfo_Proxy(
1904     ISpTaskManager * This,
1905     /* [out] */ SPTMTHREADINFO *pPoolInfo);
1906 
1907 
1908 void __RPC_STUB ISpTaskManager_GetThreadPoolInfo_Stub(
1909     IRpcStubBuffer *This,
1910     IRpcChannelBuffer *_pRpcChannelBuffer,
1911     PRPC_MESSAGE _pRpcMessage,
1912     DWORD *_pdwStubPhase);
1913 
1914 
1915 HRESULT STDMETHODCALLTYPE ISpTaskManager_QueueTask_Proxy(
1916     ISpTaskManager * This,
1917     /* [in] */ ISpTask *pTask,
1918     /* [in] */ void *pvTaskData,
1919     /* [in] */ HANDLE hCompEvent,
1920     /* [out][in] */ DWORD *pdwGroupId,
1921     /* [out] */ DWORD *pTaskID);
1922 
1923 
1924 void __RPC_STUB ISpTaskManager_QueueTask_Stub(
1925     IRpcStubBuffer *This,
1926     IRpcChannelBuffer *_pRpcChannelBuffer,
1927     PRPC_MESSAGE _pRpcMessage,
1928     DWORD *_pdwStubPhase);
1929 
1930 
1931 HRESULT STDMETHODCALLTYPE ISpTaskManager_CreateReoccurringTask_Proxy(
1932     ISpTaskManager * This,
1933     /* [in] */ ISpTask *pTask,
1934     /* [in] */ void *pvTaskData,
1935     /* [in] */ HANDLE hCompEvent,
1936     /* [out] */ ISpNotifySink **ppTaskCtrl);
1937 
1938 
1939 void __RPC_STUB ISpTaskManager_CreateReoccurringTask_Stub(
1940     IRpcStubBuffer *This,
1941     IRpcChannelBuffer *_pRpcChannelBuffer,
1942     PRPC_MESSAGE _pRpcMessage,
1943     DWORD *_pdwStubPhase);
1944 
1945 
1946 HRESULT STDMETHODCALLTYPE ISpTaskManager_CreateThreadControl_Proxy(
1947     ISpTaskManager * This,
1948     /* [in] */ ISpThreadTask *pTask,
1949     /* [in] */ void *pvTaskData,
1950     /* [in] */ long nPriority,
1951     /* [out] */ ISpThreadControl **ppTaskCtrl);
1952 
1953 
1954 void __RPC_STUB ISpTaskManager_CreateThreadControl_Stub(
1955     IRpcStubBuffer *This,
1956     IRpcChannelBuffer *_pRpcChannelBuffer,
1957     PRPC_MESSAGE _pRpcMessage,
1958     DWORD *_pdwStubPhase);
1959 
1960 
1961 HRESULT STDMETHODCALLTYPE ISpTaskManager_TerminateTask_Proxy(
1962     ISpTaskManager * This,
1963     /* [in] */ DWORD dwTaskId,
1964     /* [in] */ ULONG ulWaitPeriod);
1965 
1966 
1967 void __RPC_STUB ISpTaskManager_TerminateTask_Stub(
1968     IRpcStubBuffer *This,
1969     IRpcChannelBuffer *_pRpcChannelBuffer,
1970     PRPC_MESSAGE _pRpcMessage,
1971     DWORD *_pdwStubPhase);
1972 
1973 
1974 HRESULT STDMETHODCALLTYPE ISpTaskManager_TerminateTaskGroup_Proxy(
1975     ISpTaskManager * This,
1976     /* [in] */ DWORD dwGroupId,
1977     /* [in] */ ULONG ulWaitPeriod);
1978 
1979 
1980 void __RPC_STUB ISpTaskManager_TerminateTaskGroup_Stub(
1981     IRpcStubBuffer *This,
1982     IRpcChannelBuffer *_pRpcChannelBuffer,
1983     PRPC_MESSAGE _pRpcMessage,
1984     DWORD *_pdwStubPhase);
1985 
1986 
1987 
1988 #endif 	/* __ISpTaskManager_INTERFACE_DEFINED__ */
1989 
1990 
1991 /* interface __MIDL_itf_sapiddk_0346 */
1992 /* [local] */
1993 
1994 typedef
1995 enum SPVSKIPTYPE
1996     {	SPVST_SENTENCE	= 1L << 0
1997     } 	SPVSKIPTYPE;
1998 
1999 typedef
2000 enum SPVESACTIONS
2001     {	SPVES_CONTINUE	= 0,
2002 	SPVES_ABORT	= 1L << 0,
2003 	SPVES_SKIP	= 1L << 1,
2004 	SPVES_RATE	= 1L << 2,
2005 	SPVES_VOLUME	= 1L << 3
2006     } 	SPVESACTIONS;
2007 
2008 
2009 
2010 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0346_v0_0_c_ifspec;
2011 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0346_v0_0_s_ifspec;
2012 
2013 #ifndef __ISpTTSEngineSite_INTERFACE_DEFINED__
2014 #define __ISpTTSEngineSite_INTERFACE_DEFINED__
2015 
2016 /* interface ISpTTSEngineSite */
2017 /* [unique][helpstring][uuid][local][object] */
2018 
2019 
2020 EXTERN_C const IID IID_ISpTTSEngineSite;
2021 
2022 #if defined(__cplusplus) && !defined(CINTERFACE)
2023 
2024     MIDL_INTERFACE("9880499B-CCE9-11d2-B503-00C04F797396")
2025     ISpTTSEngineSite : public ISpEventSink
2026     {
2027     public:
2028         virtual DWORD STDMETHODCALLTYPE GetActions( void) = 0;
2029 
2030         virtual HRESULT STDMETHODCALLTYPE Write(
2031             /* [in] */ const void *pBuff,
2032             /* [in] */ ULONG cb,
2033             /* [out] */ ULONG *pcbWritten) = 0;
2034 
2035         virtual HRESULT STDMETHODCALLTYPE GetRate(
2036             /* [out] */ long *pRateAdjust) = 0;
2037 
2038         virtual HRESULT STDMETHODCALLTYPE GetVolume(
2039             /* [out] */ USHORT *pusVolume) = 0;
2040 
2041         virtual HRESULT STDMETHODCALLTYPE GetSkipInfo(
2042             /* [out] */ SPVSKIPTYPE *peType,
2043             /* [out] */ long *plNumItems) = 0;
2044 
2045         virtual HRESULT STDMETHODCALLTYPE CompleteSkip(
2046             /* [in] */ long ulNumSkipped) = 0;
2047 
2048     };
2049 
2050 #else 	/* C style interface */
2051 
2052     typedef struct ISpTTSEngineSiteVtbl
2053     {
2054         BEGIN_INTERFACE
2055 
2056         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2057             ISpTTSEngineSite * This,
2058             /* [in] */ REFIID riid,
2059             /* [iid_is][out] */ void **ppvObject);
2060 
2061         ULONG ( STDMETHODCALLTYPE *AddRef )(
2062             ISpTTSEngineSite * This);
2063 
2064         ULONG ( STDMETHODCALLTYPE *Release )(
2065             ISpTTSEngineSite * This);
2066 
2067         HRESULT ( STDMETHODCALLTYPE *AddEvents )(
2068             ISpTTSEngineSite * This,
2069             /* [in] */ const SPEVENT *pEventArray,
2070             /* [in] */ ULONG ulCount);
2071 
2072         HRESULT ( STDMETHODCALLTYPE *GetEventInterest )(
2073             ISpTTSEngineSite * This,
2074             /* [out] */ ULONGLONG *pullEventInterest);
2075 
2076         DWORD ( STDMETHODCALLTYPE *GetActions )(
2077             ISpTTSEngineSite * This);
2078 
2079         HRESULT ( STDMETHODCALLTYPE *Write )(
2080             ISpTTSEngineSite * This,
2081             /* [in] */ const void *pBuff,
2082             /* [in] */ ULONG cb,
2083             /* [out] */ ULONG *pcbWritten);
2084 
2085         HRESULT ( STDMETHODCALLTYPE *GetRate )(
2086             ISpTTSEngineSite * This,
2087             /* [out] */ long *pRateAdjust);
2088 
2089         HRESULT ( STDMETHODCALLTYPE *GetVolume )(
2090             ISpTTSEngineSite * This,
2091             /* [out] */ USHORT *pusVolume);
2092 
2093         HRESULT ( STDMETHODCALLTYPE *GetSkipInfo )(
2094             ISpTTSEngineSite * This,
2095             /* [out] */ SPVSKIPTYPE *peType,
2096             /* [out] */ long *plNumItems);
2097 
2098         HRESULT ( STDMETHODCALLTYPE *CompleteSkip )(
2099             ISpTTSEngineSite * This,
2100             /* [in] */ long ulNumSkipped);
2101 
2102         END_INTERFACE
2103     } ISpTTSEngineSiteVtbl;
2104 
2105     interface ISpTTSEngineSite
2106     {
2107         CONST_VTBL struct ISpTTSEngineSiteVtbl *lpVtbl;
2108     };
2109 
2110 
2111 
2112 #ifdef COBJMACROS
2113 
2114 
2115 #define ISpTTSEngineSite_QueryInterface(This,riid,ppvObject)	\
2116     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
2117 
2118 #define ISpTTSEngineSite_AddRef(This)	\
2119     (This)->lpVtbl -> AddRef(This)
2120 
2121 #define ISpTTSEngineSite_Release(This)	\
2122     (This)->lpVtbl -> Release(This)
2123 
2124 
2125 #define ISpTTSEngineSite_AddEvents(This,pEventArray,ulCount)	\
2126     (This)->lpVtbl -> AddEvents(This,pEventArray,ulCount)
2127 
2128 #define ISpTTSEngineSite_GetEventInterest(This,pullEventInterest)	\
2129     (This)->lpVtbl -> GetEventInterest(This,pullEventInterest)
2130 
2131 
2132 #define ISpTTSEngineSite_GetActions(This)	\
2133     (This)->lpVtbl -> GetActions(This)
2134 
2135 #define ISpTTSEngineSite_Write(This,pBuff,cb,pcbWritten)	\
2136     (This)->lpVtbl -> Write(This,pBuff,cb,pcbWritten)
2137 
2138 #define ISpTTSEngineSite_GetRate(This,pRateAdjust)	\
2139     (This)->lpVtbl -> GetRate(This,pRateAdjust)
2140 
2141 #define ISpTTSEngineSite_GetVolume(This,pusVolume)	\
2142     (This)->lpVtbl -> GetVolume(This,pusVolume)
2143 
2144 #define ISpTTSEngineSite_GetSkipInfo(This,peType,plNumItems)	\
2145     (This)->lpVtbl -> GetSkipInfo(This,peType,plNumItems)
2146 
2147 #define ISpTTSEngineSite_CompleteSkip(This,ulNumSkipped)	\
2148     (This)->lpVtbl -> CompleteSkip(This,ulNumSkipped)
2149 
2150 #endif /* COBJMACROS */
2151 
2152 
2153 #endif 	/* C style interface */
2154 
2155 
2156 
2157 DWORD STDMETHODCALLTYPE ISpTTSEngineSite_GetActions_Proxy(
2158     ISpTTSEngineSite * This);
2159 
2160 
2161 void __RPC_STUB ISpTTSEngineSite_GetActions_Stub(
2162     IRpcStubBuffer *This,
2163     IRpcChannelBuffer *_pRpcChannelBuffer,
2164     PRPC_MESSAGE _pRpcMessage,
2165     DWORD *_pdwStubPhase);
2166 
2167 
2168 HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_Write_Proxy(
2169     ISpTTSEngineSite * This,
2170     /* [in] */ const void *pBuff,
2171     /* [in] */ ULONG cb,
2172     /* [out] */ ULONG *pcbWritten);
2173 
2174 
2175 void __RPC_STUB ISpTTSEngineSite_Write_Stub(
2176     IRpcStubBuffer *This,
2177     IRpcChannelBuffer *_pRpcChannelBuffer,
2178     PRPC_MESSAGE _pRpcMessage,
2179     DWORD *_pdwStubPhase);
2180 
2181 
2182 HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_GetRate_Proxy(
2183     ISpTTSEngineSite * This,
2184     /* [out] */ long *pRateAdjust);
2185 
2186 
2187 void __RPC_STUB ISpTTSEngineSite_GetRate_Stub(
2188     IRpcStubBuffer *This,
2189     IRpcChannelBuffer *_pRpcChannelBuffer,
2190     PRPC_MESSAGE _pRpcMessage,
2191     DWORD *_pdwStubPhase);
2192 
2193 
2194 HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_GetVolume_Proxy(
2195     ISpTTSEngineSite * This,
2196     /* [out] */ USHORT *pusVolume);
2197 
2198 
2199 void __RPC_STUB ISpTTSEngineSite_GetVolume_Stub(
2200     IRpcStubBuffer *This,
2201     IRpcChannelBuffer *_pRpcChannelBuffer,
2202     PRPC_MESSAGE _pRpcMessage,
2203     DWORD *_pdwStubPhase);
2204 
2205 
2206 HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_GetSkipInfo_Proxy(
2207     ISpTTSEngineSite * This,
2208     /* [out] */ SPVSKIPTYPE *peType,
2209     /* [out] */ long *plNumItems);
2210 
2211 
2212 void __RPC_STUB ISpTTSEngineSite_GetSkipInfo_Stub(
2213     IRpcStubBuffer *This,
2214     IRpcChannelBuffer *_pRpcChannelBuffer,
2215     PRPC_MESSAGE _pRpcMessage,
2216     DWORD *_pdwStubPhase);
2217 
2218 
2219 HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_CompleteSkip_Proxy(
2220     ISpTTSEngineSite * This,
2221     /* [in] */ long ulNumSkipped);
2222 
2223 
2224 void __RPC_STUB ISpTTSEngineSite_CompleteSkip_Stub(
2225     IRpcStubBuffer *This,
2226     IRpcChannelBuffer *_pRpcChannelBuffer,
2227     PRPC_MESSAGE _pRpcMessage,
2228     DWORD *_pdwStubPhase);
2229 
2230 
2231 
2232 #endif 	/* __ISpTTSEngineSite_INTERFACE_DEFINED__ */
2233 
2234 
2235 /* interface __MIDL_itf_sapiddk_0347 */
2236 /* [local] */
2237 
2238 typedef struct SPVTEXTFRAG
2239     {
2240     struct SPVTEXTFRAG *pNext;
2241     SPVSTATE State;
2242     LPCWSTR pTextStart;
2243     ULONG ulTextLen;
2244     ULONG ulTextSrcOffset;
2245     } 	SPVTEXTFRAG;
2246 
2247 
2248 
2249 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0347_v0_0_c_ifspec;
2250 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0347_v0_0_s_ifspec;
2251 
2252 #ifndef __ISpTTSEngine_INTERFACE_DEFINED__
2253 #define __ISpTTSEngine_INTERFACE_DEFINED__
2254 
2255 /* interface ISpTTSEngine */
2256 /* [unique][helpstring][uuid][local][object] */
2257 
2258 
2259 EXTERN_C const IID IID_ISpTTSEngine;
2260 
2261 #if defined(__cplusplus) && !defined(CINTERFACE)
2262 
2263     MIDL_INTERFACE("A74D7C8E-4CC5-4f2f-A6EB-804DEE18500E")
2264     ISpTTSEngine : public IUnknown
2265     {
2266     public:
2267         virtual HRESULT STDMETHODCALLTYPE Speak(
2268             /* [in] */ DWORD dwSpeakFlags,
2269             /* [in] */ REFGUID rguidFormatId,
2270             /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
2271             /* [in] */ const SPVTEXTFRAG *pTextFragList,
2272             /* [in] */ ISpTTSEngineSite *pOutputSite) = 0;
2273 
2274         virtual HRESULT STDMETHODCALLTYPE GetOutputFormat(
2275             /* [in] */ const GUID *pTargetFmtId,
2276             /* [in] */ const WAVEFORMATEX *pTargetWaveFormatEx,
2277             /* [out] */ GUID *pOutputFormatId,
2278             /* [out] */ WAVEFORMATEX **ppCoMemOutputWaveFormatEx) = 0;
2279 
2280     };
2281 
2282 #else 	/* C style interface */
2283 
2284     typedef struct ISpTTSEngineVtbl
2285     {
2286         BEGIN_INTERFACE
2287 
2288         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2289             ISpTTSEngine * This,
2290             /* [in] */ REFIID riid,
2291             /* [iid_is][out] */ void **ppvObject);
2292 
2293         ULONG ( STDMETHODCALLTYPE *AddRef )(
2294             ISpTTSEngine * This);
2295 
2296         ULONG ( STDMETHODCALLTYPE *Release )(
2297             ISpTTSEngine * This);
2298 
2299         HRESULT ( STDMETHODCALLTYPE *Speak )(
2300             ISpTTSEngine * This,
2301             /* [in] */ DWORD dwSpeakFlags,
2302             /* [in] */ REFGUID rguidFormatId,
2303             /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
2304             /* [in] */ const SPVTEXTFRAG *pTextFragList,
2305             /* [in] */ ISpTTSEngineSite *pOutputSite);
2306 
2307         HRESULT ( STDMETHODCALLTYPE *GetOutputFormat )(
2308             ISpTTSEngine * This,
2309             /* [in] */ const GUID *pTargetFmtId,
2310             /* [in] */ const WAVEFORMATEX *pTargetWaveFormatEx,
2311             /* [out] */ GUID *pOutputFormatId,
2312             /* [out] */ WAVEFORMATEX **ppCoMemOutputWaveFormatEx);
2313 
2314         END_INTERFACE
2315     } ISpTTSEngineVtbl;
2316 
2317     interface ISpTTSEngine
2318     {
2319         CONST_VTBL struct ISpTTSEngineVtbl *lpVtbl;
2320     };
2321 
2322 
2323 
2324 #ifdef COBJMACROS
2325 
2326 
2327 #define ISpTTSEngine_QueryInterface(This,riid,ppvObject)	\
2328     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
2329 
2330 #define ISpTTSEngine_AddRef(This)	\
2331     (This)->lpVtbl -> AddRef(This)
2332 
2333 #define ISpTTSEngine_Release(This)	\
2334     (This)->lpVtbl -> Release(This)
2335 
2336 
2337 #define ISpTTSEngine_Speak(This,dwSpeakFlags,rguidFormatId,pWaveFormatEx,pTextFragList,pOutputSite)	\
2338     (This)->lpVtbl -> Speak(This,dwSpeakFlags,rguidFormatId,pWaveFormatEx,pTextFragList,pOutputSite)
2339 
2340 #define ISpTTSEngine_GetOutputFormat(This,pTargetFmtId,pTargetWaveFormatEx,pOutputFormatId,ppCoMemOutputWaveFormatEx)	\
2341     (This)->lpVtbl -> GetOutputFormat(This,pTargetFmtId,pTargetWaveFormatEx,pOutputFormatId,ppCoMemOutputWaveFormatEx)
2342 
2343 #endif /* COBJMACROS */
2344 
2345 
2346 #endif 	/* C style interface */
2347 
2348 
2349 
2350 HRESULT STDMETHODCALLTYPE ISpTTSEngine_Speak_Proxy(
2351     ISpTTSEngine * This,
2352     /* [in] */ DWORD dwSpeakFlags,
2353     /* [in] */ REFGUID rguidFormatId,
2354     /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
2355     /* [in] */ const SPVTEXTFRAG *pTextFragList,
2356     /* [in] */ ISpTTSEngineSite *pOutputSite);
2357 
2358 
2359 void __RPC_STUB ISpTTSEngine_Speak_Stub(
2360     IRpcStubBuffer *This,
2361     IRpcChannelBuffer *_pRpcChannelBuffer,
2362     PRPC_MESSAGE _pRpcMessage,
2363     DWORD *_pdwStubPhase);
2364 
2365 
2366 HRESULT STDMETHODCALLTYPE ISpTTSEngine_GetOutputFormat_Proxy(
2367     ISpTTSEngine * This,
2368     /* [in] */ const GUID *pTargetFmtId,
2369     /* [in] */ const WAVEFORMATEX *pTargetWaveFormatEx,
2370     /* [out] */ GUID *pOutputFormatId,
2371     /* [out] */ WAVEFORMATEX **ppCoMemOutputWaveFormatEx);
2372 
2373 
2374 void __RPC_STUB ISpTTSEngine_GetOutputFormat_Stub(
2375     IRpcStubBuffer *This,
2376     IRpcChannelBuffer *_pRpcChannelBuffer,
2377     PRPC_MESSAGE _pRpcMessage,
2378     DWORD *_pdwStubPhase);
2379 
2380 
2381 
2382 #endif 	/* __ISpTTSEngine_INTERFACE_DEFINED__ */
2383 
2384 
2385 /* interface __MIDL_itf_sapiddk_0348 */
2386 /* [local] */
2387 
2388 typedef /* [restricted] */ struct SPWORDENTRY
2389     {
2390     SPWORDHANDLE hWord;
2391     WORD LangID;
2392     WCHAR *pszDisplayText;
2393     WCHAR *pszLexicalForm;
2394     SPPHONEID *aPhoneId;
2395     void *pvClientContext;
2396     } 	SPWORDENTRY;
2397 
2398 typedef /* [restricted] */ struct SPRULEENTRY
2399     {
2400     SPRULEHANDLE hRule;
2401     SPSTATEHANDLE hInitialState;
2402     DWORD Attributes;
2403     void *pvClientRuleContext;
2404     void *pvClientGrammarContext;
2405     } 	SPRULEENTRY;
2406 
2407 typedef
2408 enum SPTRANSITIONTYPE
2409     {	SPTRANSEPSILON	= 0,
2410 	SPTRANSWORD	= SPTRANSEPSILON + 1,
2411 	SPTRANSRULE	= SPTRANSWORD + 1,
2412 	SPTRANSTEXTBUF	= SPTRANSRULE + 1,
2413 	SPTRANSWILDCARD	= SPTRANSTEXTBUF + 1,
2414 	SPTRANSDICTATION	= SPTRANSWILDCARD + 1
2415     } 	SPTRANSITIONTYPE;
2416 
2417 typedef /* [restricted] */ struct SPTRANSITIONENTRY
2418     {
2419     SPTRANSITIONID ID;
2420     SPSTATEHANDLE hNextState;
2421     BYTE Type;
2422     char RequiredConfidence;
2423     struct
2424         {
2425         DWORD fHasProperty;
2426         } 	;
2427     float Weight;
2428     union
2429         {
2430         struct
2431             {
2432             SPSTATEHANDLE hRuleInitialState;
2433             SPRULEHANDLE hRule;
2434             void *pvClientRuleContext;
2435             } 	;
2436         struct
2437             {
2438             SPWORDHANDLE hWord;
2439             void *pvClientWordContext;
2440             } 	;
2441         struct
2442             {
2443             void *pvGrammarCookie;
2444             } 	;
2445         } 	;
2446     } 	SPTRANSITIONENTRY;
2447 
2448 typedef /* [restricted] */ struct SPTRANSITIONPROPERTY
2449     {
2450     const WCHAR *pszName;
2451     ULONG ulId;
2452     const WCHAR *pszValue;
2453     VARIANT vValue;
2454     } 	SPTRANSITIONPROPERTY;
2455 
2456 typedef /* [restricted] */ struct SPSTATEINFO
2457     {
2458     ULONG cAllocatedEntries;
2459     SPTRANSITIONENTRY *pTransitions;
2460     ULONG cEpsilons;
2461     ULONG cRules;
2462     ULONG cWords;
2463     ULONG cSpecialTransitions;
2464     } 	SPSTATEINFO;
2465 
2466 typedef /* [restricted] */ struct SPPATHENTRY
2467     {
2468     SPTRANSITIONID hTransition;
2469     SPPHRASEELEMENT elem;
2470     } 	SPPATHENTRY;
2471 
2472 
2473 
2474 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0348_v0_0_c_ifspec;
2475 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0348_v0_0_s_ifspec;
2476 
2477 #ifndef __ISpCFGInterpreterSite_INTERFACE_DEFINED__
2478 #define __ISpCFGInterpreterSite_INTERFACE_DEFINED__
2479 
2480 /* interface ISpCFGInterpreterSite */
2481 /* [restricted][local][unique][helpstring][uuid][object] */
2482 
2483 
2484 EXTERN_C const IID IID_ISpCFGInterpreterSite;
2485 
2486 #if defined(__cplusplus) && !defined(CINTERFACE)
2487 
2488     MIDL_INTERFACE("6A6FFAD8-78B6-473d-B844-98152E4FB16B")
2489     ISpCFGInterpreterSite : public IUnknown
2490     {
2491     public:
2492         virtual HRESULT STDMETHODCALLTYPE AddTextReplacement(
2493             /* [in] */ SPPHRASEREPLACEMENT *pReplace) = 0;
2494 
2495         virtual HRESULT STDMETHODCALLTYPE AddProperty(
2496             /* [in] */ const SPPHRASEPROPERTY *pProperty) = 0;
2497 
2498         virtual HRESULT STDMETHODCALLTYPE GetResourceValue(
2499             /* [in] */ const WCHAR *pszResourceName,
2500             /* [out] */ WCHAR **ppCoMemResource) = 0;
2501 
2502     };
2503 
2504 #else 	/* C style interface */
2505 
2506     typedef struct ISpCFGInterpreterSiteVtbl
2507     {
2508         BEGIN_INTERFACE
2509 
2510         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2511             ISpCFGInterpreterSite * This,
2512             /* [in] */ REFIID riid,
2513             /* [iid_is][out] */ void **ppvObject);
2514 
2515         ULONG ( STDMETHODCALLTYPE *AddRef )(
2516             ISpCFGInterpreterSite * This);
2517 
2518         ULONG ( STDMETHODCALLTYPE *Release )(
2519             ISpCFGInterpreterSite * This);
2520 
2521         HRESULT ( STDMETHODCALLTYPE *AddTextReplacement )(
2522             ISpCFGInterpreterSite * This,
2523             /* [in] */ SPPHRASEREPLACEMENT *pReplace);
2524 
2525         HRESULT ( STDMETHODCALLTYPE *AddProperty )(
2526             ISpCFGInterpreterSite * This,
2527             /* [in] */ const SPPHRASEPROPERTY *pProperty);
2528 
2529         HRESULT ( STDMETHODCALLTYPE *GetResourceValue )(
2530             ISpCFGInterpreterSite * This,
2531             /* [in] */ const WCHAR *pszResourceName,
2532             /* [out] */ WCHAR **ppCoMemResource);
2533 
2534         END_INTERFACE
2535     } ISpCFGInterpreterSiteVtbl;
2536 
2537     interface ISpCFGInterpreterSite
2538     {
2539         CONST_VTBL struct ISpCFGInterpreterSiteVtbl *lpVtbl;
2540     };
2541 
2542 
2543 
2544 #ifdef COBJMACROS
2545 
2546 
2547 #define ISpCFGInterpreterSite_QueryInterface(This,riid,ppvObject)	\
2548     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
2549 
2550 #define ISpCFGInterpreterSite_AddRef(This)	\
2551     (This)->lpVtbl -> AddRef(This)
2552 
2553 #define ISpCFGInterpreterSite_Release(This)	\
2554     (This)->lpVtbl -> Release(This)
2555 
2556 
2557 #define ISpCFGInterpreterSite_AddTextReplacement(This,pReplace)	\
2558     (This)->lpVtbl -> AddTextReplacement(This,pReplace)
2559 
2560 #define ISpCFGInterpreterSite_AddProperty(This,pProperty)	\
2561     (This)->lpVtbl -> AddProperty(This,pProperty)
2562 
2563 #define ISpCFGInterpreterSite_GetResourceValue(This,pszResourceName,ppCoMemResource)	\
2564     (This)->lpVtbl -> GetResourceValue(This,pszResourceName,ppCoMemResource)
2565 
2566 #endif /* COBJMACROS */
2567 
2568 
2569 #endif 	/* C style interface */
2570 
2571 
2572 
2573 HRESULT STDMETHODCALLTYPE ISpCFGInterpreterSite_AddTextReplacement_Proxy(
2574     ISpCFGInterpreterSite * This,
2575     /* [in] */ SPPHRASEREPLACEMENT *pReplace);
2576 
2577 
2578 void __RPC_STUB ISpCFGInterpreterSite_AddTextReplacement_Stub(
2579     IRpcStubBuffer *This,
2580     IRpcChannelBuffer *_pRpcChannelBuffer,
2581     PRPC_MESSAGE _pRpcMessage,
2582     DWORD *_pdwStubPhase);
2583 
2584 
2585 HRESULT STDMETHODCALLTYPE ISpCFGInterpreterSite_AddProperty_Proxy(
2586     ISpCFGInterpreterSite * This,
2587     /* [in] */ const SPPHRASEPROPERTY *pProperty);
2588 
2589 
2590 void __RPC_STUB ISpCFGInterpreterSite_AddProperty_Stub(
2591     IRpcStubBuffer *This,
2592     IRpcChannelBuffer *_pRpcChannelBuffer,
2593     PRPC_MESSAGE _pRpcMessage,
2594     DWORD *_pdwStubPhase);
2595 
2596 
2597 HRESULT STDMETHODCALLTYPE ISpCFGInterpreterSite_GetResourceValue_Proxy(
2598     ISpCFGInterpreterSite * This,
2599     /* [in] */ const WCHAR *pszResourceName,
2600     /* [out] */ WCHAR **ppCoMemResource);
2601 
2602 
2603 void __RPC_STUB ISpCFGInterpreterSite_GetResourceValue_Stub(
2604     IRpcStubBuffer *This,
2605     IRpcChannelBuffer *_pRpcChannelBuffer,
2606     PRPC_MESSAGE _pRpcMessage,
2607     DWORD *_pdwStubPhase);
2608 
2609 
2610 
2611 #endif 	/* __ISpCFGInterpreterSite_INTERFACE_DEFINED__ */
2612 
2613 
2614 #ifndef __ISpCFGInterpreter_INTERFACE_DEFINED__
2615 #define __ISpCFGInterpreter_INTERFACE_DEFINED__
2616 
2617 /* interface ISpCFGInterpreter */
2618 /* [restricted][local][unique][helpstring][uuid][object] */
2619 
2620 
2621 EXTERN_C const IID IID_ISpCFGInterpreter;
2622 
2623 #if defined(__cplusplus) && !defined(CINTERFACE)
2624 
2625     MIDL_INTERFACE("F3D3F926-11FC-11d3-BB97-00C04F8EE6C0")
2626     ISpCFGInterpreter : public IUnknown
2627     {
2628     public:
2629         virtual HRESULT STDMETHODCALLTYPE InitGrammar(
2630             /* [in] */ const WCHAR *pszGrammarName,
2631             /* [in] */ const void **pvGrammarData) = 0;
2632 
2633         virtual HRESULT STDMETHODCALLTYPE Interpret(
2634             /* [in] */ ISpPhraseBuilder *pPhrase,
2635             /* [in] */ const ULONG ulFirstElement,
2636             /* [in] */ const ULONG ulCountOfElements,
2637             /* [in] */ ISpCFGInterpreterSite *pSite) = 0;
2638 
2639     };
2640 
2641 #else 	/* C style interface */
2642 
2643     typedef struct ISpCFGInterpreterVtbl
2644     {
2645         BEGIN_INTERFACE
2646 
2647         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2648             ISpCFGInterpreter * This,
2649             /* [in] */ REFIID riid,
2650             /* [iid_is][out] */ void **ppvObject);
2651 
2652         ULONG ( STDMETHODCALLTYPE *AddRef )(
2653             ISpCFGInterpreter * This);
2654 
2655         ULONG ( STDMETHODCALLTYPE *Release )(
2656             ISpCFGInterpreter * This);
2657 
2658         HRESULT ( STDMETHODCALLTYPE *InitGrammar )(
2659             ISpCFGInterpreter * This,
2660             /* [in] */ const WCHAR *pszGrammarName,
2661             /* [in] */ const void **pvGrammarData);
2662 
2663         HRESULT ( STDMETHODCALLTYPE *Interpret )(
2664             ISpCFGInterpreter * This,
2665             /* [in] */ ISpPhraseBuilder *pPhrase,
2666             /* [in] */ const ULONG ulFirstElement,
2667             /* [in] */ const ULONG ulCountOfElements,
2668             /* [in] */ ISpCFGInterpreterSite *pSite);
2669 
2670         END_INTERFACE
2671     } ISpCFGInterpreterVtbl;
2672 
2673     interface ISpCFGInterpreter
2674     {
2675         CONST_VTBL struct ISpCFGInterpreterVtbl *lpVtbl;
2676     };
2677 
2678 
2679 
2680 #ifdef COBJMACROS
2681 
2682 
2683 #define ISpCFGInterpreter_QueryInterface(This,riid,ppvObject)	\
2684     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
2685 
2686 #define ISpCFGInterpreter_AddRef(This)	\
2687     (This)->lpVtbl -> AddRef(This)
2688 
2689 #define ISpCFGInterpreter_Release(This)	\
2690     (This)->lpVtbl -> Release(This)
2691 
2692 
2693 #define ISpCFGInterpreter_InitGrammar(This,pszGrammarName,pvGrammarData)	\
2694     (This)->lpVtbl -> InitGrammar(This,pszGrammarName,pvGrammarData)
2695 
2696 #define ISpCFGInterpreter_Interpret(This,pPhrase,ulFirstElement,ulCountOfElements,pSite)	\
2697     (This)->lpVtbl -> Interpret(This,pPhrase,ulFirstElement,ulCountOfElements,pSite)
2698 
2699 #endif /* COBJMACROS */
2700 
2701 
2702 #endif 	/* C style interface */
2703 
2704 
2705 
2706 HRESULT STDMETHODCALLTYPE ISpCFGInterpreter_InitGrammar_Proxy(
2707     ISpCFGInterpreter * This,
2708     /* [in] */ const WCHAR *pszGrammarName,
2709     /* [in] */ const void **pvGrammarData);
2710 
2711 
2712 void __RPC_STUB ISpCFGInterpreter_InitGrammar_Stub(
2713     IRpcStubBuffer *This,
2714     IRpcChannelBuffer *_pRpcChannelBuffer,
2715     PRPC_MESSAGE _pRpcMessage,
2716     DWORD *_pdwStubPhase);
2717 
2718 
2719 HRESULT STDMETHODCALLTYPE ISpCFGInterpreter_Interpret_Proxy(
2720     ISpCFGInterpreter * This,
2721     /* [in] */ ISpPhraseBuilder *pPhrase,
2722     /* [in] */ const ULONG ulFirstElement,
2723     /* [in] */ const ULONG ulCountOfElements,
2724     /* [in] */ ISpCFGInterpreterSite *pSite);
2725 
2726 
2727 void __RPC_STUB ISpCFGInterpreter_Interpret_Stub(
2728     IRpcStubBuffer *This,
2729     IRpcChannelBuffer *_pRpcChannelBuffer,
2730     PRPC_MESSAGE _pRpcMessage,
2731     DWORD *_pdwStubPhase);
2732 
2733 
2734 
2735 #endif 	/* __ISpCFGInterpreter_INTERFACE_DEFINED__ */
2736 
2737 
2738 /* interface __MIDL_itf_sapiddk_0350 */
2739 /* [local] */
2740 
2741 typedef
2742 enum SPCFGNOTIFY
2743     {	SPCFGN_ADD	= 0,
2744 	SPCFGN_REMOVE	= SPCFGN_ADD + 1,
2745 	SPCFGN_INVALIDATE	= SPCFGN_REMOVE + 1,
2746 	SPCFGN_ACTIVATE	= SPCFGN_INVALIDATE + 1,
2747 	SPCFGN_DEACTIVATE	= SPCFGN_ACTIVATE + 1
2748     } 	SPCFGNOTIFY;
2749 
2750 typedef
2751 enum SPRESULTTYPE
2752     {	SPRT_CFG	= 0,
2753 	SPRT_SLM	= 1,
2754 	SPRT_PROPRIETARY	= 2,
2755 	SPRT_FALSE_RECOGNITION	= 1L << 2
2756     } 	SPRESULTTYPE;
2757 
2758 typedef struct tagSPPHRASEALT
2759     {
2760     ISpPhraseBuilder *pPhrase;
2761     ULONG ulStartElementInParent;
2762     ULONG cElementsInParent;
2763     ULONG cElementsInAlternate;
2764     void *pvAltExtra;
2765     ULONG cbAltExtra;
2766     } 	SPPHRASEALT;
2767 
2768 typedef struct SPRECORESULTINFO
2769     {
2770     ULONG cbSize;
2771     SPRESULTTYPE eResultType;
2772     BOOL fHypothesis;
2773     BOOL fProprietaryAutoPause;
2774     ULONGLONG ullStreamPosStart;
2775     ULONGLONG ullStreamPosEnd;
2776     SPGRAMMARHANDLE hGrammar;
2777     ULONG ulSizeEngineData;
2778     void *pvEngineData;
2779     ISpPhraseBuilder *pPhrase;
2780     SPPHRASEALT *aPhraseAlts;
2781     ULONG ulNumAlts;
2782     } 	SPRECORESULTINFO;
2783 
2784 typedef
2785 enum SPWORDINFOOPT
2786     {	SPWIO_NONE	= 0,
2787 	SPWIO_WANT_TEXT	= 1
2788     } 	SPWORDINFOOPT;
2789 
2790 typedef
2791 enum SPRULEINFOOPT
2792     {	SPRIO_NONE	= 0
2793     } 	SPRULEINFOOPT;
2794 
2795 typedef struct SPPARSEINFO
2796     {
2797     ULONG cbSize;
2798     SPRULEHANDLE hRule;
2799     ULONGLONG ullAudioStreamPosition;
2800     ULONG ulAudioSize;
2801     ULONG cTransitions;
2802     SPPATHENTRY *pPath;
2803     GUID SREngineID;
2804     ULONG ulSREnginePrivateDataSize;
2805     const BYTE *pSREnginePrivateData;
2806     BOOL fHypothesis;
2807     } 	SPPARSEINFO;
2808 
2809 
2810 
2811 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0350_v0_0_c_ifspec;
2812 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0350_v0_0_s_ifspec;
2813 
2814 #ifndef __ISpSREngineSite_INTERFACE_DEFINED__
2815 #define __ISpSREngineSite_INTERFACE_DEFINED__
2816 
2817 /* interface ISpSREngineSite */
2818 /* [local][unique][helpstring][uuid][object] */
2819 
2820 
2821 EXTERN_C const IID IID_ISpSREngineSite;
2822 
2823 #if defined(__cplusplus) && !defined(CINTERFACE)
2824 
2825     MIDL_INTERFACE("3B414AEC-720C-4883-B9EF-178CD394FB3A")
2826     ISpSREngineSite : public IUnknown
2827     {
2828     public:
2829         virtual HRESULT STDMETHODCALLTYPE Read(
2830             /* [in] */ void *pv,
2831             /* [in] */ ULONG cb,
2832             /* [out] */ ULONG *pcbRead) = 0;
2833 
2834         virtual HRESULT STDMETHODCALLTYPE DataAvailable(
2835             ULONG *pcb) = 0;
2836 
2837         virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
2838             /* [in] */ ULONG cbSize) = 0;
2839 
2840         virtual HRESULT STDMETHODCALLTYPE ParseFromTransitions(
2841             /* [in] */ const SPPARSEINFO *pParseInfo,
2842             /* [out] */ ISpPhraseBuilder **ppNewPhrase) = 0;
2843 
2844         virtual HRESULT STDMETHODCALLTYPE Recognition(
2845             /* [in] */ const SPRECORESULTINFO *pResultInfo) = 0;
2846 
2847         virtual HRESULT STDMETHODCALLTYPE AddEvent(
2848             /* [in] */ const SPEVENT *pEvent,
2849             /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext) = 0;
2850 
2851         virtual HRESULT STDMETHODCALLTYPE Synchronize(
2852             /* [in] */ ULONGLONG ullProcessedThruPos) = 0;
2853 
2854         virtual HRESULT STDMETHODCALLTYPE GetWordInfo(
2855             /* [out][in] */ SPWORDENTRY *pWordEntry,
2856             /* [in] */ SPWORDINFOOPT Options) = 0;
2857 
2858         virtual HRESULT STDMETHODCALLTYPE SetWordClientContext(
2859             SPWORDHANDLE hWord,
2860             void *pvClientContext) = 0;
2861 
2862         virtual HRESULT STDMETHODCALLTYPE GetRuleInfo(
2863             /* [out][in] */ SPRULEENTRY *pRuleEntry,
2864             /* [in] */ SPRULEINFOOPT Options) = 0;
2865 
2866         virtual HRESULT STDMETHODCALLTYPE SetRuleClientContext(
2867             SPRULEHANDLE hRule,
2868             void *pvClientContext) = 0;
2869 
2870         virtual HRESULT STDMETHODCALLTYPE GetStateInfo(
2871             SPSTATEHANDLE hState,
2872             SPSTATEINFO *pStateInfo) = 0;
2873 
2874         virtual HRESULT STDMETHODCALLTYPE GetResource(
2875             /* [in] */ SPRULEHANDLE hRule,
2876             /* [in] */ const WCHAR *pszResourceName,
2877             /* [out] */ WCHAR **ppCoMemResource) = 0;
2878 
2879         virtual HRESULT STDMETHODCALLTYPE GetTransitionProperty(
2880             /* [in] */ SPTRANSITIONID ID,
2881             /* [out] */ SPTRANSITIONPROPERTY **ppCoMemProperty) = 0;
2882 
2883         virtual HRESULT STDMETHODCALLTYPE IsAlternate(
2884             /* [in] */ SPRULEHANDLE hRule,
2885             /* [in] */ SPRULEHANDLE hAltRule) = 0;
2886 
2887         virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
2888             /* [in] */ SPRULEHANDLE hRule,
2889             /* [out] */ ULONG *pulNumAlts) = 0;
2890 
2891         virtual HRESULT STDMETHODCALLTYPE GetContextMaxAlternates(
2892             /* [in] */ SPRECOCONTEXTHANDLE hContext,
2893             /* [out] */ ULONG *pulNumAlts) = 0;
2894 
2895         virtual HRESULT STDMETHODCALLTYPE UpdateRecoPos(
2896             /* [in] */ ULONGLONG ullCurrentRecoPos) = 0;
2897 
2898     };
2899 
2900 #else 	/* C style interface */
2901 
2902     typedef struct ISpSREngineSiteVtbl
2903     {
2904         BEGIN_INTERFACE
2905 
2906         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2907             ISpSREngineSite * This,
2908             /* [in] */ REFIID riid,
2909             /* [iid_is][out] */ void **ppvObject);
2910 
2911         ULONG ( STDMETHODCALLTYPE *AddRef )(
2912             ISpSREngineSite * This);
2913 
2914         ULONG ( STDMETHODCALLTYPE *Release )(
2915             ISpSREngineSite * This);
2916 
2917         HRESULT ( STDMETHODCALLTYPE *Read )(
2918             ISpSREngineSite * This,
2919             /* [in] */ void *pv,
2920             /* [in] */ ULONG cb,
2921             /* [out] */ ULONG *pcbRead);
2922 
2923         HRESULT ( STDMETHODCALLTYPE *DataAvailable )(
2924             ISpSREngineSite * This,
2925             ULONG *pcb);
2926 
2927         HRESULT ( STDMETHODCALLTYPE *SetBufferNotifySize )(
2928             ISpSREngineSite * This,
2929             /* [in] */ ULONG cbSize);
2930 
2931         HRESULT ( STDMETHODCALLTYPE *ParseFromTransitions )(
2932             ISpSREngineSite * This,
2933             /* [in] */ const SPPARSEINFO *pParseInfo,
2934             /* [out] */ ISpPhraseBuilder **ppNewPhrase);
2935 
2936         HRESULT ( STDMETHODCALLTYPE *Recognition )(
2937             ISpSREngineSite * This,
2938             /* [in] */ const SPRECORESULTINFO *pResultInfo);
2939 
2940         HRESULT ( STDMETHODCALLTYPE *AddEvent )(
2941             ISpSREngineSite * This,
2942             /* [in] */ const SPEVENT *pEvent,
2943             /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext);
2944 
2945         HRESULT ( STDMETHODCALLTYPE *Synchronize )(
2946             ISpSREngineSite * This,
2947             /* [in] */ ULONGLONG ullProcessedThruPos);
2948 
2949         HRESULT ( STDMETHODCALLTYPE *GetWordInfo )(
2950             ISpSREngineSite * This,
2951             /* [out][in] */ SPWORDENTRY *pWordEntry,
2952             /* [in] */ SPWORDINFOOPT Options);
2953 
2954         HRESULT ( STDMETHODCALLTYPE *SetWordClientContext )(
2955             ISpSREngineSite * This,
2956             SPWORDHANDLE hWord,
2957             void *pvClientContext);
2958 
2959         HRESULT ( STDMETHODCALLTYPE *GetRuleInfo )(
2960             ISpSREngineSite * This,
2961             /* [out][in] */ SPRULEENTRY *pRuleEntry,
2962             /* [in] */ SPRULEINFOOPT Options);
2963 
2964         HRESULT ( STDMETHODCALLTYPE *SetRuleClientContext )(
2965             ISpSREngineSite * This,
2966             SPRULEHANDLE hRule,
2967             void *pvClientContext);
2968 
2969         HRESULT ( STDMETHODCALLTYPE *GetStateInfo )(
2970             ISpSREngineSite * This,
2971             SPSTATEHANDLE hState,
2972             SPSTATEINFO *pStateInfo);
2973 
2974         HRESULT ( STDMETHODCALLTYPE *GetResource )(
2975             ISpSREngineSite * This,
2976             /* [in] */ SPRULEHANDLE hRule,
2977             /* [in] */ const WCHAR *pszResourceName,
2978             /* [out] */ WCHAR **ppCoMemResource);
2979 
2980         HRESULT ( STDMETHODCALLTYPE *GetTransitionProperty )(
2981             ISpSREngineSite * This,
2982             /* [in] */ SPTRANSITIONID ID,
2983             /* [out] */ SPTRANSITIONPROPERTY **ppCoMemProperty);
2984 
2985         HRESULT ( STDMETHODCALLTYPE *IsAlternate )(
2986             ISpSREngineSite * This,
2987             /* [in] */ SPRULEHANDLE hRule,
2988             /* [in] */ SPRULEHANDLE hAltRule);
2989 
2990         HRESULT ( STDMETHODCALLTYPE *GetMaxAlternates )(
2991             ISpSREngineSite * This,
2992             /* [in] */ SPRULEHANDLE hRule,
2993             /* [out] */ ULONG *pulNumAlts);
2994 
2995         HRESULT ( STDMETHODCALLTYPE *GetContextMaxAlternates )(
2996             ISpSREngineSite * This,
2997             /* [in] */ SPRECOCONTEXTHANDLE hContext,
2998             /* [out] */ ULONG *pulNumAlts);
2999 
3000         HRESULT ( STDMETHODCALLTYPE *UpdateRecoPos )(
3001             ISpSREngineSite * This,
3002             /* [in] */ ULONGLONG ullCurrentRecoPos);
3003 
3004         END_INTERFACE
3005     } ISpSREngineSiteVtbl;
3006 
3007     interface ISpSREngineSite
3008     {
3009         CONST_VTBL struct ISpSREngineSiteVtbl *lpVtbl;
3010     };
3011 
3012 
3013 
3014 #ifdef COBJMACROS
3015 
3016 
3017 #define ISpSREngineSite_QueryInterface(This,riid,ppvObject)	\
3018     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
3019 
3020 #define ISpSREngineSite_AddRef(This)	\
3021     (This)->lpVtbl -> AddRef(This)
3022 
3023 #define ISpSREngineSite_Release(This)	\
3024     (This)->lpVtbl -> Release(This)
3025 
3026 
3027 #define ISpSREngineSite_Read(This,pv,cb,pcbRead)	\
3028     (This)->lpVtbl -> Read(This,pv,cb,pcbRead)
3029 
3030 #define ISpSREngineSite_DataAvailable(This,pcb)	\
3031     (This)->lpVtbl -> DataAvailable(This,pcb)
3032 
3033 #define ISpSREngineSite_SetBufferNotifySize(This,cbSize)	\
3034     (This)->lpVtbl -> SetBufferNotifySize(This,cbSize)
3035 
3036 #define ISpSREngineSite_ParseFromTransitions(This,pParseInfo,ppNewPhrase)	\
3037     (This)->lpVtbl -> ParseFromTransitions(This,pParseInfo,ppNewPhrase)
3038 
3039 #define ISpSREngineSite_Recognition(This,pResultInfo)	\
3040     (This)->lpVtbl -> Recognition(This,pResultInfo)
3041 
3042 #define ISpSREngineSite_AddEvent(This,pEvent,hSAPIRecoContext)	\
3043     (This)->lpVtbl -> AddEvent(This,pEvent,hSAPIRecoContext)
3044 
3045 #define ISpSREngineSite_Synchronize(This,ullProcessedThruPos)	\
3046     (This)->lpVtbl -> Synchronize(This,ullProcessedThruPos)
3047 
3048 #define ISpSREngineSite_GetWordInfo(This,pWordEntry,Options)	\
3049     (This)->lpVtbl -> GetWordInfo(This,pWordEntry,Options)
3050 
3051 #define ISpSREngineSite_SetWordClientContext(This,hWord,pvClientContext)	\
3052     (This)->lpVtbl -> SetWordClientContext(This,hWord,pvClientContext)
3053 
3054 #define ISpSREngineSite_GetRuleInfo(This,pRuleEntry,Options)	\
3055     (This)->lpVtbl -> GetRuleInfo(This,pRuleEntry,Options)
3056 
3057 #define ISpSREngineSite_SetRuleClientContext(This,hRule,pvClientContext)	\
3058     (This)->lpVtbl -> SetRuleClientContext(This,hRule,pvClientContext)
3059 
3060 #define ISpSREngineSite_GetStateInfo(This,hState,pStateInfo)	\
3061     (This)->lpVtbl -> GetStateInfo(This,hState,pStateInfo)
3062 
3063 #define ISpSREngineSite_GetResource(This,hRule,pszResourceName,ppCoMemResource)	\
3064     (This)->lpVtbl -> GetResource(This,hRule,pszResourceName,ppCoMemResource)
3065 
3066 #define ISpSREngineSite_GetTransitionProperty(This,ID,ppCoMemProperty)	\
3067     (This)->lpVtbl -> GetTransitionProperty(This,ID,ppCoMemProperty)
3068 
3069 #define ISpSREngineSite_IsAlternate(This,hRule,hAltRule)	\
3070     (This)->lpVtbl -> IsAlternate(This,hRule,hAltRule)
3071 
3072 #define ISpSREngineSite_GetMaxAlternates(This,hRule,pulNumAlts)	\
3073     (This)->lpVtbl -> GetMaxAlternates(This,hRule,pulNumAlts)
3074 
3075 #define ISpSREngineSite_GetContextMaxAlternates(This,hContext,pulNumAlts)	\
3076     (This)->lpVtbl -> GetContextMaxAlternates(This,hContext,pulNumAlts)
3077 
3078 #define ISpSREngineSite_UpdateRecoPos(This,ullCurrentRecoPos)	\
3079     (This)->lpVtbl -> UpdateRecoPos(This,ullCurrentRecoPos)
3080 
3081 #endif /* COBJMACROS */
3082 
3083 
3084 #endif 	/* C style interface */
3085 
3086 
3087 
3088 HRESULT STDMETHODCALLTYPE ISpSREngineSite_Read_Proxy(
3089     ISpSREngineSite * This,
3090     /* [in] */ void *pv,
3091     /* [in] */ ULONG cb,
3092     /* [out] */ ULONG *pcbRead);
3093 
3094 
3095 void __RPC_STUB ISpSREngineSite_Read_Stub(
3096     IRpcStubBuffer *This,
3097     IRpcChannelBuffer *_pRpcChannelBuffer,
3098     PRPC_MESSAGE _pRpcMessage,
3099     DWORD *_pdwStubPhase);
3100 
3101 
3102 HRESULT STDMETHODCALLTYPE ISpSREngineSite_DataAvailable_Proxy(
3103     ISpSREngineSite * This,
3104     ULONG *pcb);
3105 
3106 
3107 void __RPC_STUB ISpSREngineSite_DataAvailable_Stub(
3108     IRpcStubBuffer *This,
3109     IRpcChannelBuffer *_pRpcChannelBuffer,
3110     PRPC_MESSAGE _pRpcMessage,
3111     DWORD *_pdwStubPhase);
3112 
3113 
3114 HRESULT STDMETHODCALLTYPE ISpSREngineSite_SetBufferNotifySize_Proxy(
3115     ISpSREngineSite * This,
3116     /* [in] */ ULONG cbSize);
3117 
3118 
3119 void __RPC_STUB ISpSREngineSite_SetBufferNotifySize_Stub(
3120     IRpcStubBuffer *This,
3121     IRpcChannelBuffer *_pRpcChannelBuffer,
3122     PRPC_MESSAGE _pRpcMessage,
3123     DWORD *_pdwStubPhase);
3124 
3125 
3126 HRESULT STDMETHODCALLTYPE ISpSREngineSite_ParseFromTransitions_Proxy(
3127     ISpSREngineSite * This,
3128     /* [in] */ const SPPARSEINFO *pParseInfo,
3129     /* [out] */ ISpPhraseBuilder **ppNewPhrase);
3130 
3131 
3132 void __RPC_STUB ISpSREngineSite_ParseFromTransitions_Stub(
3133     IRpcStubBuffer *This,
3134     IRpcChannelBuffer *_pRpcChannelBuffer,
3135     PRPC_MESSAGE _pRpcMessage,
3136     DWORD *_pdwStubPhase);
3137 
3138 
3139 HRESULT STDMETHODCALLTYPE ISpSREngineSite_Recognition_Proxy(
3140     ISpSREngineSite * This,
3141     /* [in] */ const SPRECORESULTINFO *pResultInfo);
3142 
3143 
3144 void __RPC_STUB ISpSREngineSite_Recognition_Stub(
3145     IRpcStubBuffer *This,
3146     IRpcChannelBuffer *_pRpcChannelBuffer,
3147     PRPC_MESSAGE _pRpcMessage,
3148     DWORD *_pdwStubPhase);
3149 
3150 
3151 HRESULT STDMETHODCALLTYPE ISpSREngineSite_AddEvent_Proxy(
3152     ISpSREngineSite * This,
3153     /* [in] */ const SPEVENT *pEvent,
3154     /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext);
3155 
3156 
3157 void __RPC_STUB ISpSREngineSite_AddEvent_Stub(
3158     IRpcStubBuffer *This,
3159     IRpcChannelBuffer *_pRpcChannelBuffer,
3160     PRPC_MESSAGE _pRpcMessage,
3161     DWORD *_pdwStubPhase);
3162 
3163 
3164 HRESULT STDMETHODCALLTYPE ISpSREngineSite_Synchronize_Proxy(
3165     ISpSREngineSite * This,
3166     /* [in] */ ULONGLONG ullProcessedThruPos);
3167 
3168 
3169 void __RPC_STUB ISpSREngineSite_Synchronize_Stub(
3170     IRpcStubBuffer *This,
3171     IRpcChannelBuffer *_pRpcChannelBuffer,
3172     PRPC_MESSAGE _pRpcMessage,
3173     DWORD *_pdwStubPhase);
3174 
3175 
3176 HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetWordInfo_Proxy(
3177     ISpSREngineSite * This,
3178     /* [out][in] */ SPWORDENTRY *pWordEntry,
3179     /* [in] */ SPWORDINFOOPT Options);
3180 
3181 
3182 void __RPC_STUB ISpSREngineSite_GetWordInfo_Stub(
3183     IRpcStubBuffer *This,
3184     IRpcChannelBuffer *_pRpcChannelBuffer,
3185     PRPC_MESSAGE _pRpcMessage,
3186     DWORD *_pdwStubPhase);
3187 
3188 
3189 HRESULT STDMETHODCALLTYPE ISpSREngineSite_SetWordClientContext_Proxy(
3190     ISpSREngineSite * This,
3191     SPWORDHANDLE hWord,
3192     void *pvClientContext);
3193 
3194 
3195 void __RPC_STUB ISpSREngineSite_SetWordClientContext_Stub(
3196     IRpcStubBuffer *This,
3197     IRpcChannelBuffer *_pRpcChannelBuffer,
3198     PRPC_MESSAGE _pRpcMessage,
3199     DWORD *_pdwStubPhase);
3200 
3201 
3202 HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetRuleInfo_Proxy(
3203     ISpSREngineSite * This,
3204     /* [out][in] */ SPRULEENTRY *pRuleEntry,
3205     /* [in] */ SPRULEINFOOPT Options);
3206 
3207 
3208 void __RPC_STUB ISpSREngineSite_GetRuleInfo_Stub(
3209     IRpcStubBuffer *This,
3210     IRpcChannelBuffer *_pRpcChannelBuffer,
3211     PRPC_MESSAGE _pRpcMessage,
3212     DWORD *_pdwStubPhase);
3213 
3214 
3215 HRESULT STDMETHODCALLTYPE ISpSREngineSite_SetRuleClientContext_Proxy(
3216     ISpSREngineSite * This,
3217     SPRULEHANDLE hRule,
3218     void *pvClientContext);
3219 
3220 
3221 void __RPC_STUB ISpSREngineSite_SetRuleClientContext_Stub(
3222     IRpcStubBuffer *This,
3223     IRpcChannelBuffer *_pRpcChannelBuffer,
3224     PRPC_MESSAGE _pRpcMessage,
3225     DWORD *_pdwStubPhase);
3226 
3227 
3228 HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetStateInfo_Proxy(
3229     ISpSREngineSite * This,
3230     SPSTATEHANDLE hState,
3231     SPSTATEINFO *pStateInfo);
3232 
3233 
3234 void __RPC_STUB ISpSREngineSite_GetStateInfo_Stub(
3235     IRpcStubBuffer *This,
3236     IRpcChannelBuffer *_pRpcChannelBuffer,
3237     PRPC_MESSAGE _pRpcMessage,
3238     DWORD *_pdwStubPhase);
3239 
3240 
3241 HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetResource_Proxy(
3242     ISpSREngineSite * This,
3243     /* [in] */ SPRULEHANDLE hRule,
3244     /* [in] */ const WCHAR *pszResourceName,
3245     /* [out] */ WCHAR **ppCoMemResource);
3246 
3247 
3248 void __RPC_STUB ISpSREngineSite_GetResource_Stub(
3249     IRpcStubBuffer *This,
3250     IRpcChannelBuffer *_pRpcChannelBuffer,
3251     PRPC_MESSAGE _pRpcMessage,
3252     DWORD *_pdwStubPhase);
3253 
3254 
3255 HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetTransitionProperty_Proxy(
3256     ISpSREngineSite * This,
3257     /* [in] */ SPTRANSITIONID ID,
3258     /* [out] */ SPTRANSITIONPROPERTY **ppCoMemProperty);
3259 
3260 
3261 void __RPC_STUB ISpSREngineSite_GetTransitionProperty_Stub(
3262     IRpcStubBuffer *This,
3263     IRpcChannelBuffer *_pRpcChannelBuffer,
3264     PRPC_MESSAGE _pRpcMessage,
3265     DWORD *_pdwStubPhase);
3266 
3267 
3268 HRESULT STDMETHODCALLTYPE ISpSREngineSite_IsAlternate_Proxy(
3269     ISpSREngineSite * This,
3270     /* [in] */ SPRULEHANDLE hRule,
3271     /* [in] */ SPRULEHANDLE hAltRule);
3272 
3273 
3274 void __RPC_STUB ISpSREngineSite_IsAlternate_Stub(
3275     IRpcStubBuffer *This,
3276     IRpcChannelBuffer *_pRpcChannelBuffer,
3277     PRPC_MESSAGE _pRpcMessage,
3278     DWORD *_pdwStubPhase);
3279 
3280 
3281 HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetMaxAlternates_Proxy(
3282     ISpSREngineSite * This,
3283     /* [in] */ SPRULEHANDLE hRule,
3284     /* [out] */ ULONG *pulNumAlts);
3285 
3286 
3287 void __RPC_STUB ISpSREngineSite_GetMaxAlternates_Stub(
3288     IRpcStubBuffer *This,
3289     IRpcChannelBuffer *_pRpcChannelBuffer,
3290     PRPC_MESSAGE _pRpcMessage,
3291     DWORD *_pdwStubPhase);
3292 
3293 
3294 HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetContextMaxAlternates_Proxy(
3295     ISpSREngineSite * This,
3296     /* [in] */ SPRECOCONTEXTHANDLE hContext,
3297     /* [out] */ ULONG *pulNumAlts);
3298 
3299 
3300 void __RPC_STUB ISpSREngineSite_GetContextMaxAlternates_Stub(
3301     IRpcStubBuffer *This,
3302     IRpcChannelBuffer *_pRpcChannelBuffer,
3303     PRPC_MESSAGE _pRpcMessage,
3304     DWORD *_pdwStubPhase);
3305 
3306 
3307 HRESULT STDMETHODCALLTYPE ISpSREngineSite_UpdateRecoPos_Proxy(
3308     ISpSREngineSite * This,
3309     /* [in] */ ULONGLONG ullCurrentRecoPos);
3310 
3311 
3312 void __RPC_STUB ISpSREngineSite_UpdateRecoPos_Stub(
3313     IRpcStubBuffer *This,
3314     IRpcChannelBuffer *_pRpcChannelBuffer,
3315     PRPC_MESSAGE _pRpcMessage,
3316     DWORD *_pdwStubPhase);
3317 
3318 
3319 
3320 #endif 	/* __ISpSREngineSite_INTERFACE_DEFINED__ */
3321 
3322 
3323 /* interface __MIDL_itf_sapiddk_0351 */
3324 /* [local] */
3325 
3326 typedef
3327 enum SPPROPSRC
3328     {	SPPROPSRC_RECO_INST	= 0,
3329 	SPPROPSRC_RECO_CTX	= SPPROPSRC_RECO_INST + 1,
3330 	SPPROPSRC_RECO_GRAMMAR	= SPPROPSRC_RECO_CTX + 1
3331     } 	SPPROPSRC;
3332 
3333 
3334 
3335 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0351_v0_0_c_ifspec;
3336 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0351_v0_0_s_ifspec;
3337 
3338 #ifndef __ISpSREngine_INTERFACE_DEFINED__
3339 #define __ISpSREngine_INTERFACE_DEFINED__
3340 
3341 /* interface ISpSREngine */
3342 /* [local][unique][helpstring][uuid][object] */
3343 
3344 
3345 EXTERN_C const IID IID_ISpSREngine;
3346 
3347 #if defined(__cplusplus) && !defined(CINTERFACE)
3348 
3349     MIDL_INTERFACE("2F472991-854B-4465-B613-FBAFB3AD8ED8")
3350     ISpSREngine : public IUnknown
3351     {
3352     public:
3353         virtual HRESULT STDMETHODCALLTYPE SetSite(
3354             /* [in] */ ISpSREngineSite *pSite) = 0;
3355 
3356         virtual HRESULT STDMETHODCALLTYPE GetInputAudioFormat(
3357             /* [in] */ const GUID *pguidSourceFormatId,
3358             /* [in] */ const WAVEFORMATEX *pSourceWaveFormatEx,
3359             /* [out] */ GUID *pguidDesiredFormatId,
3360             /* [out] */ WAVEFORMATEX **ppCoMemDesiredWaveFormatEx) = 0;
3361 
3362         virtual HRESULT STDMETHODCALLTYPE RecognizeStream(
3363             /* [in] */ REFGUID rguidFmtId,
3364             /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
3365             /* [in] */ HANDLE hRequestSync,
3366             /* [in] */ HANDLE hDataAvailable,
3367             /* [in] */ HANDLE hExit,
3368             /* [in] */ BOOL fNewAudioStream,
3369             /* [in] */ BOOL fRealTimeAudio,
3370             /* [in] */ ISpObjectToken *pAudioObjectToken) = 0;
3371 
3372         virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
3373             ISpObjectToken *pProfile) = 0;
3374 
3375         virtual HRESULT STDMETHODCALLTYPE OnCreateGrammar(
3376             /* [in] */ void *pvEngineRecoContext,
3377             /* [in] */ SPGRAMMARHANDLE hSAPIGrammar,
3378             /* [out] */ void **ppvEngineGrammarContext) = 0;
3379 
3380         virtual HRESULT STDMETHODCALLTYPE OnDeleteGrammar(
3381             /* [in] */ void *pvEngineGrammar) = 0;
3382 
3383         virtual HRESULT STDMETHODCALLTYPE LoadProprietaryGrammar(
3384             /* [in] */ void *pvEngineGrammar,
3385             /* [in] */ REFGUID rguidParam,
3386             /* [string][in] */ const WCHAR *pszStringParam,
3387             /* [in] */ const void *pvDataParam,
3388             /* [in] */ ULONG ulDataSize,
3389             /* [in] */ SPLOADOPTIONS Options) = 0;
3390 
3391         virtual HRESULT STDMETHODCALLTYPE UnloadProprietaryGrammar(
3392             /* [in] */ void *pvEngineGrammar) = 0;
3393 
3394         virtual HRESULT STDMETHODCALLTYPE SetProprietaryRuleState(
3395             /* [in] */ void *pvEngineGrammar,
3396             /* [string][in] */ const WCHAR *pszName,
3397             /* [in] */ void *pReserved,
3398             /* [in] */ SPRULESTATE NewState,
3399             /* [out] */ ULONG *pcRulesChanged) = 0;
3400 
3401         virtual HRESULT STDMETHODCALLTYPE SetProprietaryRuleIdState(
3402             /* [in] */ void *pvEngineGrammar,
3403             /* [in] */ DWORD dwRuleId,
3404             /* [in] */ SPRULESTATE NewState) = 0;
3405 
3406         virtual HRESULT STDMETHODCALLTYPE LoadSLM(
3407             /* [in] */ void *pvEngineGrammar,
3408             /* [string][in] */ const WCHAR *pszTopicName) = 0;
3409 
3410         virtual HRESULT STDMETHODCALLTYPE UnloadSLM(
3411             /* [in] */ void *pvEngineGrammar) = 0;
3412 
3413         virtual HRESULT STDMETHODCALLTYPE SetSLMState(
3414             /* [in] */ void *pvEngineGrammar,
3415             /* [in] */ SPRULESTATE NewState) = 0;
3416 
3417         virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
3418             /* [in] */ void *pvEngineGrammar,
3419             /* [in] */ const WCHAR *pText,
3420             /* [in] */ ULONG cchText,
3421             /* [in] */ const SPTEXTSELECTIONINFO *pInfo) = 0;
3422 
3423         virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
3424             /* [in] */ void *pvEngineGrammar,
3425             /* [in] */ const SPTEXTSELECTIONINFO *pInfo) = 0;
3426 
3427         virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
3428             /* [in] */ void *pvEngineGrammar,
3429             /* [string][in] */ const WCHAR *pszWord,
3430             /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
3431 
3432         virtual HRESULT STDMETHODCALLTYPE OnCreateRecoContext(
3433             /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext,
3434             /* [out] */ void **ppvEngineContext) = 0;
3435 
3436         virtual HRESULT STDMETHODCALLTYPE OnDeleteRecoContext(
3437             /* [in] */ void *pvEngineContext) = 0;
3438 
3439         virtual HRESULT STDMETHODCALLTYPE PrivateCall(
3440             /* [in] */ void *pvEngineContext,
3441             /* [out][in] */ PVOID pCallFrame,
3442             /* [in] */ ULONG ulCallFrameSize) = 0;
3443 
3444         virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
3445             /* [in] */ void *pvEngineContext,
3446             const WCHAR *pAdaptationData,
3447             const ULONG cch) = 0;
3448 
3449         virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
3450             /* [in] */ SPPROPSRC eSrc,
3451             /* [in] */ void *pvSrcObj,
3452             /* [in] */ const WCHAR *pName,
3453             /* [in] */ LONG lValue) = 0;
3454 
3455         virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
3456             /* [in] */ SPPROPSRC eSrc,
3457             /* [in] */ void *pvSrcObj,
3458             /* [in] */ const WCHAR *pName,
3459             /* [out] */ LONG *lValue) = 0;
3460 
3461         virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
3462             /* [in] */ SPPROPSRC eSrc,
3463             /* [in] */ void *pvSrcObj,
3464             /* [in] */ const WCHAR *pName,
3465             /* [in] */ const WCHAR *pValue) = 0;
3466 
3467         virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
3468             /* [in] */ SPPROPSRC eSrc,
3469             /* [in] */ void *pvSrcObj,
3470             /* [in] */ const WCHAR *pName,
3471             /* [out] */ WCHAR **ppCoMemValue) = 0;
3472 
3473         virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
3474             /* [in] */ void *pvEngineGrammar,
3475             /* [in] */ SPGRAMMARSTATE eGrammarState) = 0;
3476 
3477         virtual HRESULT STDMETHODCALLTYPE WordNotify(
3478             SPCFGNOTIFY Action,
3479             ULONG cWords,
3480             const SPWORDENTRY *pWords) = 0;
3481 
3482         virtual HRESULT STDMETHODCALLTYPE RuleNotify(
3483             SPCFGNOTIFY Action,
3484             ULONG cRules,
3485             const SPRULEENTRY *pRules) = 0;
3486 
3487         virtual HRESULT STDMETHODCALLTYPE PrivateCallEx(
3488             /* [in] */ void *pvEngineContext,
3489             /* [in] */ const void *pInCallFrame,
3490             /* [in] */ ULONG ulInCallFrameSize,
3491             /* [out] */ void **ppvCoMemResponse,
3492             /* [out] */ ULONG *pulResponseSize) = 0;
3493 
3494         virtual HRESULT STDMETHODCALLTYPE SetContextState(
3495             /* [in] */ void *pvEngineContext,
3496             /* [in] */ SPCONTEXTSTATE eContextState) = 0;
3497 
3498     };
3499 
3500 #else 	/* C style interface */
3501 
3502     typedef struct ISpSREngineVtbl
3503     {
3504         BEGIN_INTERFACE
3505 
3506         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3507             ISpSREngine * This,
3508             /* [in] */ REFIID riid,
3509             /* [iid_is][out] */ void **ppvObject);
3510 
3511         ULONG ( STDMETHODCALLTYPE *AddRef )(
3512             ISpSREngine * This);
3513 
3514         ULONG ( STDMETHODCALLTYPE *Release )(
3515             ISpSREngine * This);
3516 
3517         HRESULT ( STDMETHODCALLTYPE *SetSite )(
3518             ISpSREngine * This,
3519             /* [in] */ ISpSREngineSite *pSite);
3520 
3521         HRESULT ( STDMETHODCALLTYPE *GetInputAudioFormat )(
3522             ISpSREngine * This,
3523             /* [in] */ const GUID *pguidSourceFormatId,
3524             /* [in] */ const WAVEFORMATEX *pSourceWaveFormatEx,
3525             /* [out] */ GUID *pguidDesiredFormatId,
3526             /* [out] */ WAVEFORMATEX **ppCoMemDesiredWaveFormatEx);
3527 
3528         HRESULT ( STDMETHODCALLTYPE *RecognizeStream )(
3529             ISpSREngine * This,
3530             /* [in] */ REFGUID rguidFmtId,
3531             /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
3532             /* [in] */ HANDLE hRequestSync,
3533             /* [in] */ HANDLE hDataAvailable,
3534             /* [in] */ HANDLE hExit,
3535             /* [in] */ BOOL fNewAudioStream,
3536             /* [in] */ BOOL fRealTimeAudio,
3537             /* [in] */ ISpObjectToken *pAudioObjectToken);
3538 
3539         HRESULT ( STDMETHODCALLTYPE *SetRecoProfile )(
3540             ISpSREngine * This,
3541             ISpObjectToken *pProfile);
3542 
3543         HRESULT ( STDMETHODCALLTYPE *OnCreateGrammar )(
3544             ISpSREngine * This,
3545             /* [in] */ void *pvEngineRecoContext,
3546             /* [in] */ SPGRAMMARHANDLE hSAPIGrammar,
3547             /* [out] */ void **ppvEngineGrammarContext);
3548 
3549         HRESULT ( STDMETHODCALLTYPE *OnDeleteGrammar )(
3550             ISpSREngine * This,
3551             /* [in] */ void *pvEngineGrammar);
3552 
3553         HRESULT ( STDMETHODCALLTYPE *LoadProprietaryGrammar )(
3554             ISpSREngine * This,
3555             /* [in] */ void *pvEngineGrammar,
3556             /* [in] */ REFGUID rguidParam,
3557             /* [string][in] */ const WCHAR *pszStringParam,
3558             /* [in] */ const void *pvDataParam,
3559             /* [in] */ ULONG ulDataSize,
3560             /* [in] */ SPLOADOPTIONS Options);
3561 
3562         HRESULT ( STDMETHODCALLTYPE *UnloadProprietaryGrammar )(
3563             ISpSREngine * This,
3564             /* [in] */ void *pvEngineGrammar);
3565 
3566         HRESULT ( STDMETHODCALLTYPE *SetProprietaryRuleState )(
3567             ISpSREngine * This,
3568             /* [in] */ void *pvEngineGrammar,
3569             /* [string][in] */ const WCHAR *pszName,
3570             /* [in] */ void *pReserved,
3571             /* [in] */ SPRULESTATE NewState,
3572             /* [out] */ ULONG *pcRulesChanged);
3573 
3574         HRESULT ( STDMETHODCALLTYPE *SetProprietaryRuleIdState )(
3575             ISpSREngine * This,
3576             /* [in] */ void *pvEngineGrammar,
3577             /* [in] */ DWORD dwRuleId,
3578             /* [in] */ SPRULESTATE NewState);
3579 
3580         HRESULT ( STDMETHODCALLTYPE *LoadSLM )(
3581             ISpSREngine * This,
3582             /* [in] */ void *pvEngineGrammar,
3583             /* [string][in] */ const WCHAR *pszTopicName);
3584 
3585         HRESULT ( STDMETHODCALLTYPE *UnloadSLM )(
3586             ISpSREngine * This,
3587             /* [in] */ void *pvEngineGrammar);
3588 
3589         HRESULT ( STDMETHODCALLTYPE *SetSLMState )(
3590             ISpSREngine * This,
3591             /* [in] */ void *pvEngineGrammar,
3592             /* [in] */ SPRULESTATE NewState);
3593 
3594         HRESULT ( STDMETHODCALLTYPE *SetWordSequenceData )(
3595             ISpSREngine * This,
3596             /* [in] */ void *pvEngineGrammar,
3597             /* [in] */ const WCHAR *pText,
3598             /* [in] */ ULONG cchText,
3599             /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
3600 
3601         HRESULT ( STDMETHODCALLTYPE *SetTextSelection )(
3602             ISpSREngine * This,
3603             /* [in] */ void *pvEngineGrammar,
3604             /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
3605 
3606         HRESULT ( STDMETHODCALLTYPE *IsPronounceable )(
3607             ISpSREngine * This,
3608             /* [in] */ void *pvEngineGrammar,
3609             /* [string][in] */ const WCHAR *pszWord,
3610             /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable);
3611 
3612         HRESULT ( STDMETHODCALLTYPE *OnCreateRecoContext )(
3613             ISpSREngine * This,
3614             /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext,
3615             /* [out] */ void **ppvEngineContext);
3616 
3617         HRESULT ( STDMETHODCALLTYPE *OnDeleteRecoContext )(
3618             ISpSREngine * This,
3619             /* [in] */ void *pvEngineContext);
3620 
3621         HRESULT ( STDMETHODCALLTYPE *PrivateCall )(
3622             ISpSREngine * This,
3623             /* [in] */ void *pvEngineContext,
3624             /* [out][in] */ PVOID pCallFrame,
3625             /* [in] */ ULONG ulCallFrameSize);
3626 
3627         HRESULT ( STDMETHODCALLTYPE *SetAdaptationData )(
3628             ISpSREngine * This,
3629             /* [in] */ void *pvEngineContext,
3630             const WCHAR *pAdaptationData,
3631             const ULONG cch);
3632 
3633         HRESULT ( STDMETHODCALLTYPE *SetPropertyNum )(
3634             ISpSREngine * This,
3635             /* [in] */ SPPROPSRC eSrc,
3636             /* [in] */ void *pvSrcObj,
3637             /* [in] */ const WCHAR *pName,
3638             /* [in] */ LONG lValue);
3639 
3640         HRESULT ( STDMETHODCALLTYPE *GetPropertyNum )(
3641             ISpSREngine * This,
3642             /* [in] */ SPPROPSRC eSrc,
3643             /* [in] */ void *pvSrcObj,
3644             /* [in] */ const WCHAR *pName,
3645             /* [out] */ LONG *lValue);
3646 
3647         HRESULT ( STDMETHODCALLTYPE *SetPropertyString )(
3648             ISpSREngine * This,
3649             /* [in] */ SPPROPSRC eSrc,
3650             /* [in] */ void *pvSrcObj,
3651             /* [in] */ const WCHAR *pName,
3652             /* [in] */ const WCHAR *pValue);
3653 
3654         HRESULT ( STDMETHODCALLTYPE *GetPropertyString )(
3655             ISpSREngine * This,
3656             /* [in] */ SPPROPSRC eSrc,
3657             /* [in] */ void *pvSrcObj,
3658             /* [in] */ const WCHAR *pName,
3659             /* [out] */ WCHAR **ppCoMemValue);
3660 
3661         HRESULT ( STDMETHODCALLTYPE *SetGrammarState )(
3662             ISpSREngine * This,
3663             /* [in] */ void *pvEngineGrammar,
3664             /* [in] */ SPGRAMMARSTATE eGrammarState);
3665 
3666         HRESULT ( STDMETHODCALLTYPE *WordNotify )(
3667             ISpSREngine * This,
3668             SPCFGNOTIFY Action,
3669             ULONG cWords,
3670             const SPWORDENTRY *pWords);
3671 
3672         HRESULT ( STDMETHODCALLTYPE *RuleNotify )(
3673             ISpSREngine * This,
3674             SPCFGNOTIFY Action,
3675             ULONG cRules,
3676             const SPRULEENTRY *pRules);
3677 
3678         HRESULT ( STDMETHODCALLTYPE *PrivateCallEx )(
3679             ISpSREngine * This,
3680             /* [in] */ void *pvEngineContext,
3681             /* [in] */ const void *pInCallFrame,
3682             /* [in] */ ULONG ulInCallFrameSize,
3683             /* [out] */ void **ppvCoMemResponse,
3684             /* [out] */ ULONG *pulResponseSize);
3685 
3686         HRESULT ( STDMETHODCALLTYPE *SetContextState )(
3687             ISpSREngine * This,
3688             /* [in] */ void *pvEngineContext,
3689             /* [in] */ SPCONTEXTSTATE eContextState);
3690 
3691         END_INTERFACE
3692     } ISpSREngineVtbl;
3693 
3694     interface ISpSREngine
3695     {
3696         CONST_VTBL struct ISpSREngineVtbl *lpVtbl;
3697     };
3698 
3699 
3700 
3701 #ifdef COBJMACROS
3702 
3703 
3704 #define ISpSREngine_QueryInterface(This,riid,ppvObject)	\
3705     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
3706 
3707 #define ISpSREngine_AddRef(This)	\
3708     (This)->lpVtbl -> AddRef(This)
3709 
3710 #define ISpSREngine_Release(This)	\
3711     (This)->lpVtbl -> Release(This)
3712 
3713 
3714 #define ISpSREngine_SetSite(This,pSite)	\
3715     (This)->lpVtbl -> SetSite(This,pSite)
3716 
3717 #define ISpSREngine_GetInputAudioFormat(This,pguidSourceFormatId,pSourceWaveFormatEx,pguidDesiredFormatId,ppCoMemDesiredWaveFormatEx)	\
3718     (This)->lpVtbl -> GetInputAudioFormat(This,pguidSourceFormatId,pSourceWaveFormatEx,pguidDesiredFormatId,ppCoMemDesiredWaveFormatEx)
3719 
3720 #define ISpSREngine_RecognizeStream(This,rguidFmtId,pWaveFormatEx,hRequestSync,hDataAvailable,hExit,fNewAudioStream,fRealTimeAudio,pAudioObjectToken)	\
3721     (This)->lpVtbl -> RecognizeStream(This,rguidFmtId,pWaveFormatEx,hRequestSync,hDataAvailable,hExit,fNewAudioStream,fRealTimeAudio,pAudioObjectToken)
3722 
3723 #define ISpSREngine_SetRecoProfile(This,pProfile)	\
3724     (This)->lpVtbl -> SetRecoProfile(This,pProfile)
3725 
3726 #define ISpSREngine_OnCreateGrammar(This,pvEngineRecoContext,hSAPIGrammar,ppvEngineGrammarContext)	\
3727     (This)->lpVtbl -> OnCreateGrammar(This,pvEngineRecoContext,hSAPIGrammar,ppvEngineGrammarContext)
3728 
3729 #define ISpSREngine_OnDeleteGrammar(This,pvEngineGrammar)	\
3730     (This)->lpVtbl -> OnDeleteGrammar(This,pvEngineGrammar)
3731 
3732 #define ISpSREngine_LoadProprietaryGrammar(This,pvEngineGrammar,rguidParam,pszStringParam,pvDataParam,ulDataSize,Options)	\
3733     (This)->lpVtbl -> LoadProprietaryGrammar(This,pvEngineGrammar,rguidParam,pszStringParam,pvDataParam,ulDataSize,Options)
3734 
3735 #define ISpSREngine_UnloadProprietaryGrammar(This,pvEngineGrammar)	\
3736     (This)->lpVtbl -> UnloadProprietaryGrammar(This,pvEngineGrammar)
3737 
3738 #define ISpSREngine_SetProprietaryRuleState(This,pvEngineGrammar,pszName,pReserved,NewState,pcRulesChanged)	\
3739     (This)->lpVtbl -> SetProprietaryRuleState(This,pvEngineGrammar,pszName,pReserved,NewState,pcRulesChanged)
3740 
3741 #define ISpSREngine_SetProprietaryRuleIdState(This,pvEngineGrammar,dwRuleId,NewState)	\
3742     (This)->lpVtbl -> SetProprietaryRuleIdState(This,pvEngineGrammar,dwRuleId,NewState)
3743 
3744 #define ISpSREngine_LoadSLM(This,pvEngineGrammar,pszTopicName)	\
3745     (This)->lpVtbl -> LoadSLM(This,pvEngineGrammar,pszTopicName)
3746 
3747 #define ISpSREngine_UnloadSLM(This,pvEngineGrammar)	\
3748     (This)->lpVtbl -> UnloadSLM(This,pvEngineGrammar)
3749 
3750 #define ISpSREngine_SetSLMState(This,pvEngineGrammar,NewState)	\
3751     (This)->lpVtbl -> SetSLMState(This,pvEngineGrammar,NewState)
3752 
3753 #define ISpSREngine_SetWordSequenceData(This,pvEngineGrammar,pText,cchText,pInfo)	\
3754     (This)->lpVtbl -> SetWordSequenceData(This,pvEngineGrammar,pText,cchText,pInfo)
3755 
3756 #define ISpSREngine_SetTextSelection(This,pvEngineGrammar,pInfo)	\
3757     (This)->lpVtbl -> SetTextSelection(This,pvEngineGrammar,pInfo)
3758 
3759 #define ISpSREngine_IsPronounceable(This,pvEngineGrammar,pszWord,pWordPronounceable)	\
3760     (This)->lpVtbl -> IsPronounceable(This,pvEngineGrammar,pszWord,pWordPronounceable)
3761 
3762 #define ISpSREngine_OnCreateRecoContext(This,hSAPIRecoContext,ppvEngineContext)	\
3763     (This)->lpVtbl -> OnCreateRecoContext(This,hSAPIRecoContext,ppvEngineContext)
3764 
3765 #define ISpSREngine_OnDeleteRecoContext(This,pvEngineContext)	\
3766     (This)->lpVtbl -> OnDeleteRecoContext(This,pvEngineContext)
3767 
3768 #define ISpSREngine_PrivateCall(This,pvEngineContext,pCallFrame,ulCallFrameSize)	\
3769     (This)->lpVtbl -> PrivateCall(This,pvEngineContext,pCallFrame,ulCallFrameSize)
3770 
3771 #define ISpSREngine_SetAdaptationData(This,pvEngineContext,pAdaptationData,cch)	\
3772     (This)->lpVtbl -> SetAdaptationData(This,pvEngineContext,pAdaptationData,cch)
3773 
3774 #define ISpSREngine_SetPropertyNum(This,eSrc,pvSrcObj,pName,lValue)	\
3775     (This)->lpVtbl -> SetPropertyNum(This,eSrc,pvSrcObj,pName,lValue)
3776 
3777 #define ISpSREngine_GetPropertyNum(This,eSrc,pvSrcObj,pName,lValue)	\
3778     (This)->lpVtbl -> GetPropertyNum(This,eSrc,pvSrcObj,pName,lValue)
3779 
3780 #define ISpSREngine_SetPropertyString(This,eSrc,pvSrcObj,pName,pValue)	\
3781     (This)->lpVtbl -> SetPropertyString(This,eSrc,pvSrcObj,pName,pValue)
3782 
3783 #define ISpSREngine_GetPropertyString(This,eSrc,pvSrcObj,pName,ppCoMemValue)	\
3784     (This)->lpVtbl -> GetPropertyString(This,eSrc,pvSrcObj,pName,ppCoMemValue)
3785 
3786 #define ISpSREngine_SetGrammarState(This,pvEngineGrammar,eGrammarState)	\
3787     (This)->lpVtbl -> SetGrammarState(This,pvEngineGrammar,eGrammarState)
3788 
3789 #define ISpSREngine_WordNotify(This,Action,cWords,pWords)	\
3790     (This)->lpVtbl -> WordNotify(This,Action,cWords,pWords)
3791 
3792 #define ISpSREngine_RuleNotify(This,Action,cRules,pRules)	\
3793     (This)->lpVtbl -> RuleNotify(This,Action,cRules,pRules)
3794 
3795 #define ISpSREngine_PrivateCallEx(This,pvEngineContext,pInCallFrame,ulInCallFrameSize,ppvCoMemResponse,pulResponseSize)	\
3796     (This)->lpVtbl -> PrivateCallEx(This,pvEngineContext,pInCallFrame,ulInCallFrameSize,ppvCoMemResponse,pulResponseSize)
3797 
3798 #define ISpSREngine_SetContextState(This,pvEngineContext,eContextState)	\
3799     (This)->lpVtbl -> SetContextState(This,pvEngineContext,eContextState)
3800 
3801 #endif /* COBJMACROS */
3802 
3803 
3804 #endif 	/* C style interface */
3805 
3806 
3807 
3808 HRESULT STDMETHODCALLTYPE ISpSREngine_SetSite_Proxy(
3809     ISpSREngine * This,
3810     /* [in] */ ISpSREngineSite *pSite);
3811 
3812 
3813 void __RPC_STUB ISpSREngine_SetSite_Stub(
3814     IRpcStubBuffer *This,
3815     IRpcChannelBuffer *_pRpcChannelBuffer,
3816     PRPC_MESSAGE _pRpcMessage,
3817     DWORD *_pdwStubPhase);
3818 
3819 
3820 HRESULT STDMETHODCALLTYPE ISpSREngine_GetInputAudioFormat_Proxy(
3821     ISpSREngine * This,
3822     /* [in] */ const GUID *pguidSourceFormatId,
3823     /* [in] */ const WAVEFORMATEX *pSourceWaveFormatEx,
3824     /* [out] */ GUID *pguidDesiredFormatId,
3825     /* [out] */ WAVEFORMATEX **ppCoMemDesiredWaveFormatEx);
3826 
3827 
3828 void __RPC_STUB ISpSREngine_GetInputAudioFormat_Stub(
3829     IRpcStubBuffer *This,
3830     IRpcChannelBuffer *_pRpcChannelBuffer,
3831     PRPC_MESSAGE _pRpcMessage,
3832     DWORD *_pdwStubPhase);
3833 
3834 
3835 HRESULT STDMETHODCALLTYPE ISpSREngine_RecognizeStream_Proxy(
3836     ISpSREngine * This,
3837     /* [in] */ REFGUID rguidFmtId,
3838     /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
3839     /* [in] */ HANDLE hRequestSync,
3840     /* [in] */ HANDLE hDataAvailable,
3841     /* [in] */ HANDLE hExit,
3842     /* [in] */ BOOL fNewAudioStream,
3843     /* [in] */ BOOL fRealTimeAudio,
3844     /* [in] */ ISpObjectToken *pAudioObjectToken);
3845 
3846 
3847 void __RPC_STUB ISpSREngine_RecognizeStream_Stub(
3848     IRpcStubBuffer *This,
3849     IRpcChannelBuffer *_pRpcChannelBuffer,
3850     PRPC_MESSAGE _pRpcMessage,
3851     DWORD *_pdwStubPhase);
3852 
3853 
3854 HRESULT STDMETHODCALLTYPE ISpSREngine_SetRecoProfile_Proxy(
3855     ISpSREngine * This,
3856     ISpObjectToken *pProfile);
3857 
3858 
3859 void __RPC_STUB ISpSREngine_SetRecoProfile_Stub(
3860     IRpcStubBuffer *This,
3861     IRpcChannelBuffer *_pRpcChannelBuffer,
3862     PRPC_MESSAGE _pRpcMessage,
3863     DWORD *_pdwStubPhase);
3864 
3865 
3866 HRESULT STDMETHODCALLTYPE ISpSREngine_OnCreateGrammar_Proxy(
3867     ISpSREngine * This,
3868     /* [in] */ void *pvEngineRecoContext,
3869     /* [in] */ SPGRAMMARHANDLE hSAPIGrammar,
3870     /* [out] */ void **ppvEngineGrammarContext);
3871 
3872 
3873 void __RPC_STUB ISpSREngine_OnCreateGrammar_Stub(
3874     IRpcStubBuffer *This,
3875     IRpcChannelBuffer *_pRpcChannelBuffer,
3876     PRPC_MESSAGE _pRpcMessage,
3877     DWORD *_pdwStubPhase);
3878 
3879 
3880 HRESULT STDMETHODCALLTYPE ISpSREngine_OnDeleteGrammar_Proxy(
3881     ISpSREngine * This,
3882     /* [in] */ void *pvEngineGrammar);
3883 
3884 
3885 void __RPC_STUB ISpSREngine_OnDeleteGrammar_Stub(
3886     IRpcStubBuffer *This,
3887     IRpcChannelBuffer *_pRpcChannelBuffer,
3888     PRPC_MESSAGE _pRpcMessage,
3889     DWORD *_pdwStubPhase);
3890 
3891 
3892 HRESULT STDMETHODCALLTYPE ISpSREngine_LoadProprietaryGrammar_Proxy(
3893     ISpSREngine * This,
3894     /* [in] */ void *pvEngineGrammar,
3895     /* [in] */ REFGUID rguidParam,
3896     /* [string][in] */ const WCHAR *pszStringParam,
3897     /* [in] */ const void *pvDataParam,
3898     /* [in] */ ULONG ulDataSize,
3899     /* [in] */ SPLOADOPTIONS Options);
3900 
3901 
3902 void __RPC_STUB ISpSREngine_LoadProprietaryGrammar_Stub(
3903     IRpcStubBuffer *This,
3904     IRpcChannelBuffer *_pRpcChannelBuffer,
3905     PRPC_MESSAGE _pRpcMessage,
3906     DWORD *_pdwStubPhase);
3907 
3908 
3909 HRESULT STDMETHODCALLTYPE ISpSREngine_UnloadProprietaryGrammar_Proxy(
3910     ISpSREngine * This,
3911     /* [in] */ void *pvEngineGrammar);
3912 
3913 
3914 void __RPC_STUB ISpSREngine_UnloadProprietaryGrammar_Stub(
3915     IRpcStubBuffer *This,
3916     IRpcChannelBuffer *_pRpcChannelBuffer,
3917     PRPC_MESSAGE _pRpcMessage,
3918     DWORD *_pdwStubPhase);
3919 
3920 
3921 HRESULT STDMETHODCALLTYPE ISpSREngine_SetProprietaryRuleState_Proxy(
3922     ISpSREngine * This,
3923     /* [in] */ void *pvEngineGrammar,
3924     /* [string][in] */ const WCHAR *pszName,
3925     /* [in] */ void *pReserved,
3926     /* [in] */ SPRULESTATE NewState,
3927     /* [out] */ ULONG *pcRulesChanged);
3928 
3929 
3930 void __RPC_STUB ISpSREngine_SetProprietaryRuleState_Stub(
3931     IRpcStubBuffer *This,
3932     IRpcChannelBuffer *_pRpcChannelBuffer,
3933     PRPC_MESSAGE _pRpcMessage,
3934     DWORD *_pdwStubPhase);
3935 
3936 
3937 HRESULT STDMETHODCALLTYPE ISpSREngine_SetProprietaryRuleIdState_Proxy(
3938     ISpSREngine * This,
3939     /* [in] */ void *pvEngineGrammar,
3940     /* [in] */ DWORD dwRuleId,
3941     /* [in] */ SPRULESTATE NewState);
3942 
3943 
3944 void __RPC_STUB ISpSREngine_SetProprietaryRuleIdState_Stub(
3945     IRpcStubBuffer *This,
3946     IRpcChannelBuffer *_pRpcChannelBuffer,
3947     PRPC_MESSAGE _pRpcMessage,
3948     DWORD *_pdwStubPhase);
3949 
3950 
3951 HRESULT STDMETHODCALLTYPE ISpSREngine_LoadSLM_Proxy(
3952     ISpSREngine * This,
3953     /* [in] */ void *pvEngineGrammar,
3954     /* [string][in] */ const WCHAR *pszTopicName);
3955 
3956 
3957 void __RPC_STUB ISpSREngine_LoadSLM_Stub(
3958     IRpcStubBuffer *This,
3959     IRpcChannelBuffer *_pRpcChannelBuffer,
3960     PRPC_MESSAGE _pRpcMessage,
3961     DWORD *_pdwStubPhase);
3962 
3963 
3964 HRESULT STDMETHODCALLTYPE ISpSREngine_UnloadSLM_Proxy(
3965     ISpSREngine * This,
3966     /* [in] */ void *pvEngineGrammar);
3967 
3968 
3969 void __RPC_STUB ISpSREngine_UnloadSLM_Stub(
3970     IRpcStubBuffer *This,
3971     IRpcChannelBuffer *_pRpcChannelBuffer,
3972     PRPC_MESSAGE _pRpcMessage,
3973     DWORD *_pdwStubPhase);
3974 
3975 
3976 HRESULT STDMETHODCALLTYPE ISpSREngine_SetSLMState_Proxy(
3977     ISpSREngine * This,
3978     /* [in] */ void *pvEngineGrammar,
3979     /* [in] */ SPRULESTATE NewState);
3980 
3981 
3982 void __RPC_STUB ISpSREngine_SetSLMState_Stub(
3983     IRpcStubBuffer *This,
3984     IRpcChannelBuffer *_pRpcChannelBuffer,
3985     PRPC_MESSAGE _pRpcMessage,
3986     DWORD *_pdwStubPhase);
3987 
3988 
3989 HRESULT STDMETHODCALLTYPE ISpSREngine_SetWordSequenceData_Proxy(
3990     ISpSREngine * This,
3991     /* [in] */ void *pvEngineGrammar,
3992     /* [in] */ const WCHAR *pText,
3993     /* [in] */ ULONG cchText,
3994     /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
3995 
3996 
3997 void __RPC_STUB ISpSREngine_SetWordSequenceData_Stub(
3998     IRpcStubBuffer *This,
3999     IRpcChannelBuffer *_pRpcChannelBuffer,
4000     PRPC_MESSAGE _pRpcMessage,
4001     DWORD *_pdwStubPhase);
4002 
4003 
4004 HRESULT STDMETHODCALLTYPE ISpSREngine_SetTextSelection_Proxy(
4005     ISpSREngine * This,
4006     /* [in] */ void *pvEngineGrammar,
4007     /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
4008 
4009 
4010 void __RPC_STUB ISpSREngine_SetTextSelection_Stub(
4011     IRpcStubBuffer *This,
4012     IRpcChannelBuffer *_pRpcChannelBuffer,
4013     PRPC_MESSAGE _pRpcMessage,
4014     DWORD *_pdwStubPhase);
4015 
4016 
4017 HRESULT STDMETHODCALLTYPE ISpSREngine_IsPronounceable_Proxy(
4018     ISpSREngine * This,
4019     /* [in] */ void *pvEngineGrammar,
4020     /* [string][in] */ const WCHAR *pszWord,
4021     /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable);
4022 
4023 
4024 void __RPC_STUB ISpSREngine_IsPronounceable_Stub(
4025     IRpcStubBuffer *This,
4026     IRpcChannelBuffer *_pRpcChannelBuffer,
4027     PRPC_MESSAGE _pRpcMessage,
4028     DWORD *_pdwStubPhase);
4029 
4030 
4031 HRESULT STDMETHODCALLTYPE ISpSREngine_OnCreateRecoContext_Proxy(
4032     ISpSREngine * This,
4033     /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext,
4034     /* [out] */ void **ppvEngineContext);
4035 
4036 
4037 void __RPC_STUB ISpSREngine_OnCreateRecoContext_Stub(
4038     IRpcStubBuffer *This,
4039     IRpcChannelBuffer *_pRpcChannelBuffer,
4040     PRPC_MESSAGE _pRpcMessage,
4041     DWORD *_pdwStubPhase);
4042 
4043 
4044 HRESULT STDMETHODCALLTYPE ISpSREngine_OnDeleteRecoContext_Proxy(
4045     ISpSREngine * This,
4046     /* [in] */ void *pvEngineContext);
4047 
4048 
4049 void __RPC_STUB ISpSREngine_OnDeleteRecoContext_Stub(
4050     IRpcStubBuffer *This,
4051     IRpcChannelBuffer *_pRpcChannelBuffer,
4052     PRPC_MESSAGE _pRpcMessage,
4053     DWORD *_pdwStubPhase);
4054 
4055 
4056 HRESULT STDMETHODCALLTYPE ISpSREngine_PrivateCall_Proxy(
4057     ISpSREngine * This,
4058     /* [in] */ void *pvEngineContext,
4059     /* [out][in] */ PVOID pCallFrame,
4060     /* [in] */ ULONG ulCallFrameSize);
4061 
4062 
4063 void __RPC_STUB ISpSREngine_PrivateCall_Stub(
4064     IRpcStubBuffer *This,
4065     IRpcChannelBuffer *_pRpcChannelBuffer,
4066     PRPC_MESSAGE _pRpcMessage,
4067     DWORD *_pdwStubPhase);
4068 
4069 
4070 HRESULT STDMETHODCALLTYPE ISpSREngine_SetAdaptationData_Proxy(
4071     ISpSREngine * This,
4072     /* [in] */ void *pvEngineContext,
4073     const WCHAR *pAdaptationData,
4074     const ULONG cch);
4075 
4076 
4077 void __RPC_STUB ISpSREngine_SetAdaptationData_Stub(
4078     IRpcStubBuffer *This,
4079     IRpcChannelBuffer *_pRpcChannelBuffer,
4080     PRPC_MESSAGE _pRpcMessage,
4081     DWORD *_pdwStubPhase);
4082 
4083 
4084 HRESULT STDMETHODCALLTYPE ISpSREngine_SetPropertyNum_Proxy(
4085     ISpSREngine * This,
4086     /* [in] */ SPPROPSRC eSrc,
4087     /* [in] */ void *pvSrcObj,
4088     /* [in] */ const WCHAR *pName,
4089     /* [in] */ LONG lValue);
4090 
4091 
4092 void __RPC_STUB ISpSREngine_SetPropertyNum_Stub(
4093     IRpcStubBuffer *This,
4094     IRpcChannelBuffer *_pRpcChannelBuffer,
4095     PRPC_MESSAGE _pRpcMessage,
4096     DWORD *_pdwStubPhase);
4097 
4098 
4099 HRESULT STDMETHODCALLTYPE ISpSREngine_GetPropertyNum_Proxy(
4100     ISpSREngine * This,
4101     /* [in] */ SPPROPSRC eSrc,
4102     /* [in] */ void *pvSrcObj,
4103     /* [in] */ const WCHAR *pName,
4104     /* [out] */ LONG *lValue);
4105 
4106 
4107 void __RPC_STUB ISpSREngine_GetPropertyNum_Stub(
4108     IRpcStubBuffer *This,
4109     IRpcChannelBuffer *_pRpcChannelBuffer,
4110     PRPC_MESSAGE _pRpcMessage,
4111     DWORD *_pdwStubPhase);
4112 
4113 
4114 HRESULT STDMETHODCALLTYPE ISpSREngine_SetPropertyString_Proxy(
4115     ISpSREngine * This,
4116     /* [in] */ SPPROPSRC eSrc,
4117     /* [in] */ void *pvSrcObj,
4118     /* [in] */ const WCHAR *pName,
4119     /* [in] */ const WCHAR *pValue);
4120 
4121 
4122 void __RPC_STUB ISpSREngine_SetPropertyString_Stub(
4123     IRpcStubBuffer *This,
4124     IRpcChannelBuffer *_pRpcChannelBuffer,
4125     PRPC_MESSAGE _pRpcMessage,
4126     DWORD *_pdwStubPhase);
4127 
4128 
4129 HRESULT STDMETHODCALLTYPE ISpSREngine_GetPropertyString_Proxy(
4130     ISpSREngine * This,
4131     /* [in] */ SPPROPSRC eSrc,
4132     /* [in] */ void *pvSrcObj,
4133     /* [in] */ const WCHAR *pName,
4134     /* [out] */ WCHAR **ppCoMemValue);
4135 
4136 
4137 void __RPC_STUB ISpSREngine_GetPropertyString_Stub(
4138     IRpcStubBuffer *This,
4139     IRpcChannelBuffer *_pRpcChannelBuffer,
4140     PRPC_MESSAGE _pRpcMessage,
4141     DWORD *_pdwStubPhase);
4142 
4143 
4144 HRESULT STDMETHODCALLTYPE ISpSREngine_SetGrammarState_Proxy(
4145     ISpSREngine * This,
4146     /* [in] */ void *pvEngineGrammar,
4147     /* [in] */ SPGRAMMARSTATE eGrammarState);
4148 
4149 
4150 void __RPC_STUB ISpSREngine_SetGrammarState_Stub(
4151     IRpcStubBuffer *This,
4152     IRpcChannelBuffer *_pRpcChannelBuffer,
4153     PRPC_MESSAGE _pRpcMessage,
4154     DWORD *_pdwStubPhase);
4155 
4156 
4157 HRESULT STDMETHODCALLTYPE ISpSREngine_WordNotify_Proxy(
4158     ISpSREngine * This,
4159     SPCFGNOTIFY Action,
4160     ULONG cWords,
4161     const SPWORDENTRY *pWords);
4162 
4163 
4164 void __RPC_STUB ISpSREngine_WordNotify_Stub(
4165     IRpcStubBuffer *This,
4166     IRpcChannelBuffer *_pRpcChannelBuffer,
4167     PRPC_MESSAGE _pRpcMessage,
4168     DWORD *_pdwStubPhase);
4169 
4170 
4171 HRESULT STDMETHODCALLTYPE ISpSREngine_RuleNotify_Proxy(
4172     ISpSREngine * This,
4173     SPCFGNOTIFY Action,
4174     ULONG cRules,
4175     const SPRULEENTRY *pRules);
4176 
4177 
4178 void __RPC_STUB ISpSREngine_RuleNotify_Stub(
4179     IRpcStubBuffer *This,
4180     IRpcChannelBuffer *_pRpcChannelBuffer,
4181     PRPC_MESSAGE _pRpcMessage,
4182     DWORD *_pdwStubPhase);
4183 
4184 
4185 HRESULT STDMETHODCALLTYPE ISpSREngine_PrivateCallEx_Proxy(
4186     ISpSREngine * This,
4187     /* [in] */ void *pvEngineContext,
4188     /* [in] */ const void *pInCallFrame,
4189     /* [in] */ ULONG ulInCallFrameSize,
4190     /* [out] */ void **ppvCoMemResponse,
4191     /* [out] */ ULONG *pulResponseSize);
4192 
4193 
4194 void __RPC_STUB ISpSREngine_PrivateCallEx_Stub(
4195     IRpcStubBuffer *This,
4196     IRpcChannelBuffer *_pRpcChannelBuffer,
4197     PRPC_MESSAGE _pRpcMessage,
4198     DWORD *_pdwStubPhase);
4199 
4200 
4201 HRESULT STDMETHODCALLTYPE ISpSREngine_SetContextState_Proxy(
4202     ISpSREngine * This,
4203     /* [in] */ void *pvEngineContext,
4204     /* [in] */ SPCONTEXTSTATE eContextState);
4205 
4206 
4207 void __RPC_STUB ISpSREngine_SetContextState_Stub(
4208     IRpcStubBuffer *This,
4209     IRpcChannelBuffer *_pRpcChannelBuffer,
4210     PRPC_MESSAGE _pRpcMessage,
4211     DWORD *_pdwStubPhase);
4212 
4213 
4214 
4215 #endif 	/* __ISpSREngine_INTERFACE_DEFINED__ */
4216 
4217 
4218 /* interface __MIDL_itf_sapiddk_0352 */
4219 /* [local] */
4220 
4221 typedef struct tagSPPHRASEALTREQUEST
4222     {
4223     ULONG ulStartElement;
4224     ULONG cElements;
4225     ULONG ulRequestAltCount;
4226     void *pvResultExtra;
4227     ULONG cbResultExtra;
4228     ISpPhrase *pPhrase;
4229     ISpRecoContext *pRecoContext;
4230     } 	SPPHRASEALTREQUEST;
4231 
4232 
4233 
4234 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0352_v0_0_c_ifspec;
4235 extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0352_v0_0_s_ifspec;
4236 
4237 #ifndef __ISpSRAlternates_INTERFACE_DEFINED__
4238 #define __ISpSRAlternates_INTERFACE_DEFINED__
4239 
4240 /* interface ISpSRAlternates */
4241 /* [local][unique][helpstring][uuid][object] */
4242 
4243 
4244 EXTERN_C const IID IID_ISpSRAlternates;
4245 
4246 #if defined(__cplusplus) && !defined(CINTERFACE)
4247 
4248     MIDL_INTERFACE("FECE8294-2BE1-408f-8E68-2DE377092F0E")
4249     ISpSRAlternates : public IUnknown
4250     {
4251     public:
4252         virtual HRESULT STDMETHODCALLTYPE GetAlternates(
4253             /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
4254             /* [out] */ SPPHRASEALT **ppAlts,
4255             /* [out] */ ULONG *pcAlts) = 0;
4256 
4257         virtual HRESULT STDMETHODCALLTYPE Commit(
4258             /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
4259             /* [in] */ SPPHRASEALT *pAlt,
4260             /* [out] */ void **ppvResultExtra,
4261             /* [out] */ ULONG *pcbResultExtra) = 0;
4262 
4263     };
4264 
4265 #else 	/* C style interface */
4266 
4267     typedef struct ISpSRAlternatesVtbl
4268     {
4269         BEGIN_INTERFACE
4270 
4271         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4272             ISpSRAlternates * This,
4273             /* [in] */ REFIID riid,
4274             /* [iid_is][out] */ void **ppvObject);
4275 
4276         ULONG ( STDMETHODCALLTYPE *AddRef )(
4277             ISpSRAlternates * This);
4278 
4279         ULONG ( STDMETHODCALLTYPE *Release )(
4280             ISpSRAlternates * This);
4281 
4282         HRESULT ( STDMETHODCALLTYPE *GetAlternates )(
4283             ISpSRAlternates * This,
4284             /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
4285             /* [out] */ SPPHRASEALT **ppAlts,
4286             /* [out] */ ULONG *pcAlts);
4287 
4288         HRESULT ( STDMETHODCALLTYPE *Commit )(
4289             ISpSRAlternates * This,
4290             /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
4291             /* [in] */ SPPHRASEALT *pAlt,
4292             /* [out] */ void **ppvResultExtra,
4293             /* [out] */ ULONG *pcbResultExtra);
4294 
4295         END_INTERFACE
4296     } ISpSRAlternatesVtbl;
4297 
4298     interface ISpSRAlternates
4299     {
4300         CONST_VTBL struct ISpSRAlternatesVtbl *lpVtbl;
4301     };
4302 
4303 
4304 
4305 #ifdef COBJMACROS
4306 
4307 
4308 #define ISpSRAlternates_QueryInterface(This,riid,ppvObject)	\
4309     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
4310 
4311 #define ISpSRAlternates_AddRef(This)	\
4312     (This)->lpVtbl -> AddRef(This)
4313 
4314 #define ISpSRAlternates_Release(This)	\
4315     (This)->lpVtbl -> Release(This)
4316 
4317 
4318 #define ISpSRAlternates_GetAlternates(This,pAltRequest,ppAlts,pcAlts)	\
4319     (This)->lpVtbl -> GetAlternates(This,pAltRequest,ppAlts,pcAlts)
4320 
4321 #define ISpSRAlternates_Commit(This,pAltRequest,pAlt,ppvResultExtra,pcbResultExtra)	\
4322     (This)->lpVtbl -> Commit(This,pAltRequest,pAlt,ppvResultExtra,pcbResultExtra)
4323 
4324 #endif /* COBJMACROS */
4325 
4326 
4327 #endif 	/* C style interface */
4328 
4329 
4330 
4331 HRESULT STDMETHODCALLTYPE ISpSRAlternates_GetAlternates_Proxy(
4332     ISpSRAlternates * This,
4333     /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
4334     /* [out] */ SPPHRASEALT **ppAlts,
4335     /* [out] */ ULONG *pcAlts);
4336 
4337 
4338 void __RPC_STUB ISpSRAlternates_GetAlternates_Stub(
4339     IRpcStubBuffer *This,
4340     IRpcChannelBuffer *_pRpcChannelBuffer,
4341     PRPC_MESSAGE _pRpcMessage,
4342     DWORD *_pdwStubPhase);
4343 
4344 
4345 HRESULT STDMETHODCALLTYPE ISpSRAlternates_Commit_Proxy(
4346     ISpSRAlternates * This,
4347     /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
4348     /* [in] */ SPPHRASEALT *pAlt,
4349     /* [out] */ void **ppvResultExtra,
4350     /* [out] */ ULONG *pcbResultExtra);
4351 
4352 
4353 void __RPC_STUB ISpSRAlternates_Commit_Stub(
4354     IRpcStubBuffer *This,
4355     IRpcChannelBuffer *_pRpcChannelBuffer,
4356     PRPC_MESSAGE _pRpcMessage,
4357     DWORD *_pdwStubPhase);
4358 
4359 
4360 
4361 #endif 	/* __ISpSRAlternates_INTERFACE_DEFINED__ */
4362 
4363 
4364 #ifndef ___ISpPrivateEngineCall_INTERFACE_DEFINED__
4365 #define ___ISpPrivateEngineCall_INTERFACE_DEFINED__
4366 
4367 /* interface _ISpPrivateEngineCall */
4368 /* [local][unique][helpstring][uuid][object] */
4369 
4370 
4371 EXTERN_C const IID IID__ISpPrivateEngineCall;
4372 
4373 #if defined(__cplusplus) && !defined(CINTERFACE)
4374 
4375     MIDL_INTERFACE("8E7C791E-4467-11d3-9723-00C04F72DB08")
4376     _ISpPrivateEngineCall : public IUnknown
4377     {
4378     public:
4379         virtual HRESULT STDMETHODCALLTYPE CallEngine(
4380             /* [out][in] */ void *pCallFrame,
4381             /* [in] */ ULONG ulCallFrameSize) = 0;
4382 
4383         virtual HRESULT STDMETHODCALLTYPE CallEngineEx(
4384             /* [in] */ const void *pInFrame,
4385             /* [in] */ ULONG ulInFrameSize,
4386             /* [out] */ void **ppCoMemOutFrame,
4387             /* [out] */ ULONG *pulOutFrameSize) = 0;
4388 
4389     };
4390 
4391 #else 	/* C style interface */
4392 
4393     typedef struct _ISpPrivateEngineCallVtbl
4394     {
4395         BEGIN_INTERFACE
4396 
4397         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4398             _ISpPrivateEngineCall * This,
4399             /* [in] */ REFIID riid,
4400             /* [iid_is][out] */ void **ppvObject);
4401 
4402         ULONG ( STDMETHODCALLTYPE *AddRef )(
4403             _ISpPrivateEngineCall * This);
4404 
4405         ULONG ( STDMETHODCALLTYPE *Release )(
4406             _ISpPrivateEngineCall * This);
4407 
4408         HRESULT ( STDMETHODCALLTYPE *CallEngine )(
4409             _ISpPrivateEngineCall * This,
4410             /* [out][in] */ void *pCallFrame,
4411             /* [in] */ ULONG ulCallFrameSize);
4412 
4413         HRESULT ( STDMETHODCALLTYPE *CallEngineEx )(
4414             _ISpPrivateEngineCall * This,
4415             /* [in] */ const void *pInFrame,
4416             /* [in] */ ULONG ulInFrameSize,
4417             /* [out] */ void **ppCoMemOutFrame,
4418             /* [out] */ ULONG *pulOutFrameSize);
4419 
4420         END_INTERFACE
4421     } _ISpPrivateEngineCallVtbl;
4422 
4423     interface _ISpPrivateEngineCall
4424     {
4425         CONST_VTBL struct _ISpPrivateEngineCallVtbl *lpVtbl;
4426     };
4427 
4428 
4429 
4430 #ifdef COBJMACROS
4431 
4432 
4433 #define _ISpPrivateEngineCall_QueryInterface(This,riid,ppvObject)	\
4434     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
4435 
4436 #define _ISpPrivateEngineCall_AddRef(This)	\
4437     (This)->lpVtbl -> AddRef(This)
4438 
4439 #define _ISpPrivateEngineCall_Release(This)	\
4440     (This)->lpVtbl -> Release(This)
4441 
4442 
4443 #define _ISpPrivateEngineCall_CallEngine(This,pCallFrame,ulCallFrameSize)	\
4444     (This)->lpVtbl -> CallEngine(This,pCallFrame,ulCallFrameSize)
4445 
4446 #define _ISpPrivateEngineCall_CallEngineEx(This,pInFrame,ulInFrameSize,ppCoMemOutFrame,pulOutFrameSize)	\
4447     (This)->lpVtbl -> CallEngineEx(This,pInFrame,ulInFrameSize,ppCoMemOutFrame,pulOutFrameSize)
4448 
4449 #endif /* COBJMACROS */
4450 
4451 
4452 #endif 	/* C style interface */
4453 
4454 
4455 
4456 HRESULT STDMETHODCALLTYPE _ISpPrivateEngineCall_CallEngine_Proxy(
4457     _ISpPrivateEngineCall * This,
4458     /* [out][in] */ void *pCallFrame,
4459     /* [in] */ ULONG ulCallFrameSize);
4460 
4461 
4462 void __RPC_STUB _ISpPrivateEngineCall_CallEngine_Stub(
4463     IRpcStubBuffer *This,
4464     IRpcChannelBuffer *_pRpcChannelBuffer,
4465     PRPC_MESSAGE _pRpcMessage,
4466     DWORD *_pdwStubPhase);
4467 
4468 
4469 HRESULT STDMETHODCALLTYPE _ISpPrivateEngineCall_CallEngineEx_Proxy(
4470     _ISpPrivateEngineCall * This,
4471     /* [in] */ const void *pInFrame,
4472     /* [in] */ ULONG ulInFrameSize,
4473     /* [out] */ void **ppCoMemOutFrame,
4474     /* [out] */ ULONG *pulOutFrameSize);
4475 
4476 
4477 void __RPC_STUB _ISpPrivateEngineCall_CallEngineEx_Stub(
4478     IRpcStubBuffer *This,
4479     IRpcChannelBuffer *_pRpcChannelBuffer,
4480     PRPC_MESSAGE _pRpcMessage,
4481     DWORD *_pdwStubPhase);
4482 
4483 
4484 
4485 #endif 	/* ___ISpPrivateEngineCall_INTERFACE_DEFINED__ */
4486 
4487 
4488 
4489 #ifndef __SpeechDDKLib_LIBRARY_DEFINED__
4490 #define __SpeechDDKLib_LIBRARY_DEFINED__
4491 
4492 /* library SpeechDDKLib */
4493 /* [version][uuid][helpstring] */
4494 
4495 
4496 EXTERN_C const IID LIBID_SpeechDDKLib;
4497 
4498 EXTERN_C const CLSID CLSID_SpDataKey;
4499 
4500 #ifdef __cplusplus
4501 
4502 class DECLSPEC_UUID("D9F6EE60-58C9-458b-88E1-2F908FD7F87C")
4503 SpDataKey;
4504 #endif
4505 
4506 EXTERN_C const CLSID CLSID_SpObjectTokenEnum;
4507 
4508 #ifdef __cplusplus
4509 
4510 class DECLSPEC_UUID("3918D75F-0ACB-41f2-B733-92AA15BCECF6")
4511 SpObjectTokenEnum;
4512 #endif
4513 
4514 EXTERN_C const CLSID CLSID_SpPhraseBuilder;
4515 
4516 #ifdef __cplusplus
4517 
4518 class DECLSPEC_UUID("777B6BBD-2FF2-11d3-88FE-00C04F8EF9B5")
4519 SpPhraseBuilder;
4520 #endif
4521 
4522 EXTERN_C const CLSID CLSID_SpITNProcessor;
4523 
4524 #ifdef __cplusplus
4525 
4526 class DECLSPEC_UUID("12D73610-A1C9-11d3-BC90-00C04F72DF9F")
4527 SpITNProcessor;
4528 #endif
4529 
4530 EXTERN_C const CLSID CLSID_SpGrammarCompiler;
4531 
4532 #ifdef __cplusplus
4533 
4534 class DECLSPEC_UUID("B1E29D59-A675-11D2-8302-00C04F8EE6C0")
4535 SpGrammarCompiler;
4536 #endif
4537 
4538 EXTERN_C const CLSID CLSID_SpGramCompBackend;
4539 
4540 #ifdef __cplusplus
4541 
4542 class DECLSPEC_UUID("DA93E903-C843-11D2-A084-00C04F8EF9B5")
4543 SpGramCompBackend;
4544 #endif
4545 #endif /* __SpeechDDKLib_LIBRARY_DEFINED__ */
4546 
4547 /* Additional Prototypes for ALL interfaces */
4548 
4549 /* end of Additional Prototypes */
4550 
4551 #ifdef __cplusplus
4552 }
4553 #endif
4554 
4555 #endif
4556 
4557 
4558