summaryrefslogtreecommitdiff
path: root/utils/sapi51/include
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /utils/sapi51/include
downloadarchived-source-engine-2018-hl2-src-3bf9df6b2785fa6d951086978a3e66f49427166a.tar.xz
archived-source-engine-2018-hl2-src-3bf9df6b2785fa6d951086978a3e66f49427166a.zip
Diffstat (limited to 'utils/sapi51/include')
-rw-r--r--utils/sapi51/include/sapi.h25599
-rw-r--r--utils/sapi51/include/sapiddk.h4557
-rw-r--r--utils/sapi51/include/spcollec.h1432
-rw-r--r--utils/sapi51/include/spddkhlp.h854
-rw-r--r--utils/sapi51/include/spdebug.h636
-rw-r--r--utils/sapi51/include/sperror.h559
-rw-r--r--utils/sapi51/include/speventq.h605
-rw-r--r--utils/sapi51/include/sphelper.h2754
-rw-r--r--utils/sapi51/include/spuihelp.h253
9 files changed, 37249 insertions, 0 deletions
diff --git a/utils/sapi51/include/sapi.h b/utils/sapi51/include/sapi.h
new file mode 100644
index 0000000..6412e3d
--- /dev/null
+++ b/utils/sapi51/include/sapi.h
@@ -0,0 +1,25599 @@
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 6.00.0347 */
+/* Compiler settings for sapi.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run)
+ protocol : dce , ms_ext, c_ext
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+//@@MIDL_FILE_HEADING( )
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 440
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __sapi_h__
+#define __sapi_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __ISpNotifySource_FWD_DEFINED__
+#define __ISpNotifySource_FWD_DEFINED__
+typedef interface ISpNotifySource ISpNotifySource;
+#endif /* __ISpNotifySource_FWD_DEFINED__ */
+
+
+#ifndef __ISpNotifySink_FWD_DEFINED__
+#define __ISpNotifySink_FWD_DEFINED__
+typedef interface ISpNotifySink ISpNotifySink;
+#endif /* __ISpNotifySink_FWD_DEFINED__ */
+
+
+#ifndef __ISpNotifyTranslator_FWD_DEFINED__
+#define __ISpNotifyTranslator_FWD_DEFINED__
+typedef interface ISpNotifyTranslator ISpNotifyTranslator;
+#endif /* __ISpNotifyTranslator_FWD_DEFINED__ */
+
+
+#ifndef __ISpDataKey_FWD_DEFINED__
+#define __ISpDataKey_FWD_DEFINED__
+typedef interface ISpDataKey ISpDataKey;
+#endif /* __ISpDataKey_FWD_DEFINED__ */
+
+
+#ifndef __ISpRegDataKey_FWD_DEFINED__
+#define __ISpRegDataKey_FWD_DEFINED__
+typedef interface ISpRegDataKey ISpRegDataKey;
+#endif /* __ISpRegDataKey_FWD_DEFINED__ */
+
+
+#ifndef __ISpObjectTokenCategory_FWD_DEFINED__
+#define __ISpObjectTokenCategory_FWD_DEFINED__
+typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
+#endif /* __ISpObjectTokenCategory_FWD_DEFINED__ */
+
+
+#ifndef __ISpObjectToken_FWD_DEFINED__
+#define __ISpObjectToken_FWD_DEFINED__
+typedef interface ISpObjectToken ISpObjectToken;
+#endif /* __ISpObjectToken_FWD_DEFINED__ */
+
+
+#ifndef __ISpObjectTokenInit_FWD_DEFINED__
+#define __ISpObjectTokenInit_FWD_DEFINED__
+typedef interface ISpObjectTokenInit ISpObjectTokenInit;
+#endif /* __ISpObjectTokenInit_FWD_DEFINED__ */
+
+
+#ifndef __IEnumSpObjectTokens_FWD_DEFINED__
+#define __IEnumSpObjectTokens_FWD_DEFINED__
+typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
+#endif /* __IEnumSpObjectTokens_FWD_DEFINED__ */
+
+
+#ifndef __ISpObjectWithToken_FWD_DEFINED__
+#define __ISpObjectWithToken_FWD_DEFINED__
+typedef interface ISpObjectWithToken ISpObjectWithToken;
+#endif /* __ISpObjectWithToken_FWD_DEFINED__ */
+
+
+#ifndef __ISpResourceManager_FWD_DEFINED__
+#define __ISpResourceManager_FWD_DEFINED__
+typedef interface ISpResourceManager ISpResourceManager;
+#endif /* __ISpResourceManager_FWD_DEFINED__ */
+
+
+#ifndef __ISpEventSource_FWD_DEFINED__
+#define __ISpEventSource_FWD_DEFINED__
+typedef interface ISpEventSource ISpEventSource;
+#endif /* __ISpEventSource_FWD_DEFINED__ */
+
+
+#ifndef __ISpEventSink_FWD_DEFINED__
+#define __ISpEventSink_FWD_DEFINED__
+typedef interface ISpEventSink ISpEventSink;
+#endif /* __ISpEventSink_FWD_DEFINED__ */
+
+
+#ifndef __ISpStreamFormat_FWD_DEFINED__
+#define __ISpStreamFormat_FWD_DEFINED__
+typedef interface ISpStreamFormat ISpStreamFormat;
+#endif /* __ISpStreamFormat_FWD_DEFINED__ */
+
+
+#ifndef __ISpStream_FWD_DEFINED__
+#define __ISpStream_FWD_DEFINED__
+typedef interface ISpStream ISpStream;
+#endif /* __ISpStream_FWD_DEFINED__ */
+
+
+#ifndef __ISpStreamFormatConverter_FWD_DEFINED__
+#define __ISpStreamFormatConverter_FWD_DEFINED__
+typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
+#endif /* __ISpStreamFormatConverter_FWD_DEFINED__ */
+
+
+#ifndef __ISpAudio_FWD_DEFINED__
+#define __ISpAudio_FWD_DEFINED__
+typedef interface ISpAudio ISpAudio;
+#endif /* __ISpAudio_FWD_DEFINED__ */
+
+
+#ifndef __ISpMMSysAudio_FWD_DEFINED__
+#define __ISpMMSysAudio_FWD_DEFINED__
+typedef interface ISpMMSysAudio ISpMMSysAudio;
+#endif /* __ISpMMSysAudio_FWD_DEFINED__ */
+
+
+#ifndef __ISpTranscript_FWD_DEFINED__
+#define __ISpTranscript_FWD_DEFINED__
+typedef interface ISpTranscript ISpTranscript;
+#endif /* __ISpTranscript_FWD_DEFINED__ */
+
+
+#ifndef __ISpLexicon_FWD_DEFINED__
+#define __ISpLexicon_FWD_DEFINED__
+typedef interface ISpLexicon ISpLexicon;
+#endif /* __ISpLexicon_FWD_DEFINED__ */
+
+
+#ifndef __ISpContainerLexicon_FWD_DEFINED__
+#define __ISpContainerLexicon_FWD_DEFINED__
+typedef interface ISpContainerLexicon ISpContainerLexicon;
+#endif /* __ISpContainerLexicon_FWD_DEFINED__ */
+
+
+#ifndef __ISpPhoneConverter_FWD_DEFINED__
+#define __ISpPhoneConverter_FWD_DEFINED__
+typedef interface ISpPhoneConverter ISpPhoneConverter;
+#endif /* __ISpPhoneConverter_FWD_DEFINED__ */
+
+
+#ifndef __ISpVoice_FWD_DEFINED__
+#define __ISpVoice_FWD_DEFINED__
+typedef interface ISpVoice ISpVoice;
+#endif /* __ISpVoice_FWD_DEFINED__ */
+
+
+#ifndef __ISpPhrase_FWD_DEFINED__
+#define __ISpPhrase_FWD_DEFINED__
+typedef interface ISpPhrase ISpPhrase;
+#endif /* __ISpPhrase_FWD_DEFINED__ */
+
+
+#ifndef __ISpPhraseAlt_FWD_DEFINED__
+#define __ISpPhraseAlt_FWD_DEFINED__
+typedef interface ISpPhraseAlt ISpPhraseAlt;
+#endif /* __ISpPhraseAlt_FWD_DEFINED__ */
+
+
+#ifndef __ISpRecoResult_FWD_DEFINED__
+#define __ISpRecoResult_FWD_DEFINED__
+typedef interface ISpRecoResult ISpRecoResult;
+#endif /* __ISpRecoResult_FWD_DEFINED__ */
+
+
+#ifndef __ISpGrammarBuilder_FWD_DEFINED__
+#define __ISpGrammarBuilder_FWD_DEFINED__
+typedef interface ISpGrammarBuilder ISpGrammarBuilder;
+#endif /* __ISpGrammarBuilder_FWD_DEFINED__ */
+
+
+#ifndef __ISpRecoGrammar_FWD_DEFINED__
+#define __ISpRecoGrammar_FWD_DEFINED__
+typedef interface ISpRecoGrammar ISpRecoGrammar;
+#endif /* __ISpRecoGrammar_FWD_DEFINED__ */
+
+
+#ifndef __ISpRecoContext_FWD_DEFINED__
+#define __ISpRecoContext_FWD_DEFINED__
+typedef interface ISpRecoContext ISpRecoContext;
+#endif /* __ISpRecoContext_FWD_DEFINED__ */
+
+
+#ifndef __ISpProperties_FWD_DEFINED__
+#define __ISpProperties_FWD_DEFINED__
+typedef interface ISpProperties ISpProperties;
+#endif /* __ISpProperties_FWD_DEFINED__ */
+
+
+#ifndef __ISpRecognizer_FWD_DEFINED__
+#define __ISpRecognizer_FWD_DEFINED__
+typedef interface ISpRecognizer ISpRecognizer;
+#endif /* __ISpRecognizer_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechDataKey_FWD_DEFINED__
+#define __ISpeechDataKey_FWD_DEFINED__
+typedef interface ISpeechDataKey ISpeechDataKey;
+#endif /* __ISpeechDataKey_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechObjectToken_FWD_DEFINED__
+#define __ISpeechObjectToken_FWD_DEFINED__
+typedef interface ISpeechObjectToken ISpeechObjectToken;
+#endif /* __ISpeechObjectToken_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechObjectTokens_FWD_DEFINED__
+#define __ISpeechObjectTokens_FWD_DEFINED__
+typedef interface ISpeechObjectTokens ISpeechObjectTokens;
+#endif /* __ISpeechObjectTokens_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
+#define __ISpeechObjectTokenCategory_FWD_DEFINED__
+typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
+#endif /* __ISpeechObjectTokenCategory_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
+#define __ISpeechAudioBufferInfo_FWD_DEFINED__
+typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
+#endif /* __ISpeechAudioBufferInfo_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechAudioStatus_FWD_DEFINED__
+#define __ISpeechAudioStatus_FWD_DEFINED__
+typedef interface ISpeechAudioStatus ISpeechAudioStatus;
+#endif /* __ISpeechAudioStatus_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechAudioFormat_FWD_DEFINED__
+#define __ISpeechAudioFormat_FWD_DEFINED__
+typedef interface ISpeechAudioFormat ISpeechAudioFormat;
+#endif /* __ISpeechAudioFormat_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
+#define __ISpeechWaveFormatEx_FWD_DEFINED__
+typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
+#endif /* __ISpeechWaveFormatEx_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechBaseStream_FWD_DEFINED__
+#define __ISpeechBaseStream_FWD_DEFINED__
+typedef interface ISpeechBaseStream ISpeechBaseStream;
+#endif /* __ISpeechBaseStream_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechFileStream_FWD_DEFINED__
+#define __ISpeechFileStream_FWD_DEFINED__
+typedef interface ISpeechFileStream ISpeechFileStream;
+#endif /* __ISpeechFileStream_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechMemoryStream_FWD_DEFINED__
+#define __ISpeechMemoryStream_FWD_DEFINED__
+typedef interface ISpeechMemoryStream ISpeechMemoryStream;
+#endif /* __ISpeechMemoryStream_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechCustomStream_FWD_DEFINED__
+#define __ISpeechCustomStream_FWD_DEFINED__
+typedef interface ISpeechCustomStream ISpeechCustomStream;
+#endif /* __ISpeechCustomStream_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechAudio_FWD_DEFINED__
+#define __ISpeechAudio_FWD_DEFINED__
+typedef interface ISpeechAudio ISpeechAudio;
+#endif /* __ISpeechAudio_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechMMSysAudio_FWD_DEFINED__
+#define __ISpeechMMSysAudio_FWD_DEFINED__
+typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
+#endif /* __ISpeechMMSysAudio_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechVoice_FWD_DEFINED__
+#define __ISpeechVoice_FWD_DEFINED__
+typedef interface ISpeechVoice ISpeechVoice;
+#endif /* __ISpeechVoice_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechVoiceStatus_FWD_DEFINED__
+#define __ISpeechVoiceStatus_FWD_DEFINED__
+typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
+#endif /* __ISpeechVoiceStatus_FWD_DEFINED__ */
+
+
+#ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
+#define ___ISpeechVoiceEvents_FWD_DEFINED__
+typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
+#endif /* ___ISpeechVoiceEvents_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechRecognizer_FWD_DEFINED__
+#define __ISpeechRecognizer_FWD_DEFINED__
+typedef interface ISpeechRecognizer ISpeechRecognizer;
+#endif /* __ISpeechRecognizer_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
+#define __ISpeechRecognizerStatus_FWD_DEFINED__
+typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
+#endif /* __ISpeechRecognizerStatus_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechRecoContext_FWD_DEFINED__
+#define __ISpeechRecoContext_FWD_DEFINED__
+typedef interface ISpeechRecoContext ISpeechRecoContext;
+#endif /* __ISpeechRecoContext_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechRecoGrammar_FWD_DEFINED__
+#define __ISpeechRecoGrammar_FWD_DEFINED__
+typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
+#endif /* __ISpeechRecoGrammar_FWD_DEFINED__ */
+
+
+#ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
+#define ___ISpeechRecoContextEvents_FWD_DEFINED__
+typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
+#endif /* ___ISpeechRecoContextEvents_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechGrammarRule_FWD_DEFINED__
+#define __ISpeechGrammarRule_FWD_DEFINED__
+typedef interface ISpeechGrammarRule ISpeechGrammarRule;
+#endif /* __ISpeechGrammarRule_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechGrammarRules_FWD_DEFINED__
+#define __ISpeechGrammarRules_FWD_DEFINED__
+typedef interface ISpeechGrammarRules ISpeechGrammarRules;
+#endif /* __ISpeechGrammarRules_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
+#define __ISpeechGrammarRuleState_FWD_DEFINED__
+typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
+#endif /* __ISpeechGrammarRuleState_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
+#define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
+typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
+#endif /* __ISpeechGrammarRuleStateTransition_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
+#define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
+typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
+#endif /* __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
+#define __ISpeechTextSelectionInformation_FWD_DEFINED__
+typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
+#endif /* __ISpeechTextSelectionInformation_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechRecoResult_FWD_DEFINED__
+#define __ISpeechRecoResult_FWD_DEFINED__
+typedef interface ISpeechRecoResult ISpeechRecoResult;
+#endif /* __ISpeechRecoResult_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
+#define __ISpeechRecoResultTimes_FWD_DEFINED__
+typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
+#endif /* __ISpeechRecoResultTimes_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
+#define __ISpeechPhraseAlternate_FWD_DEFINED__
+typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
+#endif /* __ISpeechPhraseAlternate_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
+#define __ISpeechPhraseAlternates_FWD_DEFINED__
+typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
+#endif /* __ISpeechPhraseAlternates_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseInfo_FWD_DEFINED__
+#define __ISpeechPhraseInfo_FWD_DEFINED__
+typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
+#endif /* __ISpeechPhraseInfo_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseElement_FWD_DEFINED__
+#define __ISpeechPhraseElement_FWD_DEFINED__
+typedef interface ISpeechPhraseElement ISpeechPhraseElement;
+#endif /* __ISpeechPhraseElement_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseElements_FWD_DEFINED__
+#define __ISpeechPhraseElements_FWD_DEFINED__
+typedef interface ISpeechPhraseElements ISpeechPhraseElements;
+#endif /* __ISpeechPhraseElements_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
+#define __ISpeechPhraseReplacement_FWD_DEFINED__
+typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
+#endif /* __ISpeechPhraseReplacement_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
+#define __ISpeechPhraseReplacements_FWD_DEFINED__
+typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
+#endif /* __ISpeechPhraseReplacements_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseProperty_FWD_DEFINED__
+#define __ISpeechPhraseProperty_FWD_DEFINED__
+typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
+#endif /* __ISpeechPhraseProperty_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseProperties_FWD_DEFINED__
+#define __ISpeechPhraseProperties_FWD_DEFINED__
+typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
+#endif /* __ISpeechPhraseProperties_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseRule_FWD_DEFINED__
+#define __ISpeechPhraseRule_FWD_DEFINED__
+typedef interface ISpeechPhraseRule ISpeechPhraseRule;
+#endif /* __ISpeechPhraseRule_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseRules_FWD_DEFINED__
+#define __ISpeechPhraseRules_FWD_DEFINED__
+typedef interface ISpeechPhraseRules ISpeechPhraseRules;
+#endif /* __ISpeechPhraseRules_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechLexicon_FWD_DEFINED__
+#define __ISpeechLexicon_FWD_DEFINED__
+typedef interface ISpeechLexicon ISpeechLexicon;
+#endif /* __ISpeechLexicon_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechLexiconWords_FWD_DEFINED__
+#define __ISpeechLexiconWords_FWD_DEFINED__
+typedef interface ISpeechLexiconWords ISpeechLexiconWords;
+#endif /* __ISpeechLexiconWords_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechLexiconWord_FWD_DEFINED__
+#define __ISpeechLexiconWord_FWD_DEFINED__
+typedef interface ISpeechLexiconWord ISpeechLexiconWord;
+#endif /* __ISpeechLexiconWord_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
+#define __ISpeechLexiconPronunciations_FWD_DEFINED__
+typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
+#endif /* __ISpeechLexiconPronunciations_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
+#define __ISpeechLexiconPronunciation_FWD_DEFINED__
+typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
+#endif /* __ISpeechLexiconPronunciation_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseInfoBuilder_FWD_DEFINED__
+#define __ISpeechPhraseInfoBuilder_FWD_DEFINED__
+typedef interface ISpeechPhraseInfoBuilder ISpeechPhraseInfoBuilder;
+#endif /* __ISpeechPhraseInfoBuilder_FWD_DEFINED__ */
+
+
+#ifndef __ISpeechPhoneConverter_FWD_DEFINED__
+#define __ISpeechPhoneConverter_FWD_DEFINED__
+typedef interface ISpeechPhoneConverter ISpeechPhoneConverter;
+#endif /* __ISpeechPhoneConverter_FWD_DEFINED__ */
+
+
+#ifndef __SpNotifyTranslator_FWD_DEFINED__
+#define __SpNotifyTranslator_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpNotifyTranslator SpNotifyTranslator;
+#else
+typedef struct SpNotifyTranslator SpNotifyTranslator;
+#endif /* __cplusplus */
+
+#endif /* __SpNotifyTranslator_FWD_DEFINED__ */
+
+
+#ifndef __SpObjectTokenCategory_FWD_DEFINED__
+#define __SpObjectTokenCategory_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpObjectTokenCategory SpObjectTokenCategory;
+#else
+typedef struct SpObjectTokenCategory SpObjectTokenCategory;
+#endif /* __cplusplus */
+
+#endif /* __SpObjectTokenCategory_FWD_DEFINED__ */
+
+
+#ifndef __SpObjectToken_FWD_DEFINED__
+#define __SpObjectToken_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpObjectToken SpObjectToken;
+#else
+typedef struct SpObjectToken SpObjectToken;
+#endif /* __cplusplus */
+
+#endif /* __SpObjectToken_FWD_DEFINED__ */
+
+
+#ifndef __SpResourceManager_FWD_DEFINED__
+#define __SpResourceManager_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpResourceManager SpResourceManager;
+#else
+typedef struct SpResourceManager SpResourceManager;
+#endif /* __cplusplus */
+
+#endif /* __SpResourceManager_FWD_DEFINED__ */
+
+
+#ifndef __SpStreamFormatConverter_FWD_DEFINED__
+#define __SpStreamFormatConverter_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpStreamFormatConverter SpStreamFormatConverter;
+#else
+typedef struct SpStreamFormatConverter SpStreamFormatConverter;
+#endif /* __cplusplus */
+
+#endif /* __SpStreamFormatConverter_FWD_DEFINED__ */
+
+
+#ifndef __SpMMAudioEnum_FWD_DEFINED__
+#define __SpMMAudioEnum_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpMMAudioEnum SpMMAudioEnum;
+#else
+typedef struct SpMMAudioEnum SpMMAudioEnum;
+#endif /* __cplusplus */
+
+#endif /* __SpMMAudioEnum_FWD_DEFINED__ */
+
+
+#ifndef __SpMMAudioIn_FWD_DEFINED__
+#define __SpMMAudioIn_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpMMAudioIn SpMMAudioIn;
+#else
+typedef struct SpMMAudioIn SpMMAudioIn;
+#endif /* __cplusplus */
+
+#endif /* __SpMMAudioIn_FWD_DEFINED__ */
+
+
+#ifndef __SpMMAudioOut_FWD_DEFINED__
+#define __SpMMAudioOut_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpMMAudioOut SpMMAudioOut;
+#else
+typedef struct SpMMAudioOut SpMMAudioOut;
+#endif /* __cplusplus */
+
+#endif /* __SpMMAudioOut_FWD_DEFINED__ */
+
+
+#ifndef __SpRecPlayAudio_FWD_DEFINED__
+#define __SpRecPlayAudio_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpRecPlayAudio SpRecPlayAudio;
+#else
+typedef struct SpRecPlayAudio SpRecPlayAudio;
+#endif /* __cplusplus */
+
+#endif /* __SpRecPlayAudio_FWD_DEFINED__ */
+
+
+#ifndef __SpStream_FWD_DEFINED__
+#define __SpStream_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpStream SpStream;
+#else
+typedef struct SpStream SpStream;
+#endif /* __cplusplus */
+
+#endif /* __SpStream_FWD_DEFINED__ */
+
+
+#ifndef __SpVoice_FWD_DEFINED__
+#define __SpVoice_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpVoice SpVoice;
+#else
+typedef struct SpVoice SpVoice;
+#endif /* __cplusplus */
+
+#endif /* __SpVoice_FWD_DEFINED__ */
+
+
+#ifndef __SpSharedRecoContext_FWD_DEFINED__
+#define __SpSharedRecoContext_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpSharedRecoContext SpSharedRecoContext;
+#else
+typedef struct SpSharedRecoContext SpSharedRecoContext;
+#endif /* __cplusplus */
+
+#endif /* __SpSharedRecoContext_FWD_DEFINED__ */
+
+
+#ifndef __SpInprocRecognizer_FWD_DEFINED__
+#define __SpInprocRecognizer_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpInprocRecognizer SpInprocRecognizer;
+#else
+typedef struct SpInprocRecognizer SpInprocRecognizer;
+#endif /* __cplusplus */
+
+#endif /* __SpInprocRecognizer_FWD_DEFINED__ */
+
+
+#ifndef __SpSharedRecognizer_FWD_DEFINED__
+#define __SpSharedRecognizer_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpSharedRecognizer SpSharedRecognizer;
+#else
+typedef struct SpSharedRecognizer SpSharedRecognizer;
+#endif /* __cplusplus */
+
+#endif /* __SpSharedRecognizer_FWD_DEFINED__ */
+
+
+#ifndef __SpLexicon_FWD_DEFINED__
+#define __SpLexicon_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpLexicon SpLexicon;
+#else
+typedef struct SpLexicon SpLexicon;
+#endif /* __cplusplus */
+
+#endif /* __SpLexicon_FWD_DEFINED__ */
+
+
+#ifndef __SpUnCompressedLexicon_FWD_DEFINED__
+#define __SpUnCompressedLexicon_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpUnCompressedLexicon SpUnCompressedLexicon;
+#else
+typedef struct SpUnCompressedLexicon SpUnCompressedLexicon;
+#endif /* __cplusplus */
+
+#endif /* __SpUnCompressedLexicon_FWD_DEFINED__ */
+
+
+#ifndef __SpCompressedLexicon_FWD_DEFINED__
+#define __SpCompressedLexicon_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpCompressedLexicon SpCompressedLexicon;
+#else
+typedef struct SpCompressedLexicon SpCompressedLexicon;
+#endif /* __cplusplus */
+
+#endif /* __SpCompressedLexicon_FWD_DEFINED__ */
+
+
+#ifndef __SpPhoneConverter_FWD_DEFINED__
+#define __SpPhoneConverter_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpPhoneConverter SpPhoneConverter;
+#else
+typedef struct SpPhoneConverter SpPhoneConverter;
+#endif /* __cplusplus */
+
+#endif /* __SpPhoneConverter_FWD_DEFINED__ */
+
+
+#ifndef __SpNullPhoneConverter_FWD_DEFINED__
+#define __SpNullPhoneConverter_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpNullPhoneConverter SpNullPhoneConverter;
+#else
+typedef struct SpNullPhoneConverter SpNullPhoneConverter;
+#endif /* __cplusplus */
+
+#endif /* __SpNullPhoneConverter_FWD_DEFINED__ */
+
+
+#ifndef __SpTextSelectionInformation_FWD_DEFINED__
+#define __SpTextSelectionInformation_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpTextSelectionInformation SpTextSelectionInformation;
+#else
+typedef struct SpTextSelectionInformation SpTextSelectionInformation;
+#endif /* __cplusplus */
+
+#endif /* __SpTextSelectionInformation_FWD_DEFINED__ */
+
+
+#ifndef __SpPhraseInfoBuilder_FWD_DEFINED__
+#define __SpPhraseInfoBuilder_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpPhraseInfoBuilder SpPhraseInfoBuilder;
+#else
+typedef struct SpPhraseInfoBuilder SpPhraseInfoBuilder;
+#endif /* __cplusplus */
+
+#endif /* __SpPhraseInfoBuilder_FWD_DEFINED__ */
+
+
+#ifndef __SpAudioFormat_FWD_DEFINED__
+#define __SpAudioFormat_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpAudioFormat SpAudioFormat;
+#else
+typedef struct SpAudioFormat SpAudioFormat;
+#endif /* __cplusplus */
+
+#endif /* __SpAudioFormat_FWD_DEFINED__ */
+
+
+#ifndef __SpWaveFormatEx_FWD_DEFINED__
+#define __SpWaveFormatEx_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpWaveFormatEx SpWaveFormatEx;
+#else
+typedef struct SpWaveFormatEx SpWaveFormatEx;
+#endif /* __cplusplus */
+
+#endif /* __SpWaveFormatEx_FWD_DEFINED__ */
+
+
+#ifndef __SpInProcRecoContext_FWD_DEFINED__
+#define __SpInProcRecoContext_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpInProcRecoContext SpInProcRecoContext;
+#else
+typedef struct SpInProcRecoContext SpInProcRecoContext;
+#endif /* __cplusplus */
+
+#endif /* __SpInProcRecoContext_FWD_DEFINED__ */
+
+
+#ifndef __SpCustomStream_FWD_DEFINED__
+#define __SpCustomStream_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpCustomStream SpCustomStream;
+#else
+typedef struct SpCustomStream SpCustomStream;
+#endif /* __cplusplus */
+
+#endif /* __SpCustomStream_FWD_DEFINED__ */
+
+
+#ifndef __SpFileStream_FWD_DEFINED__
+#define __SpFileStream_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpFileStream SpFileStream;
+#else
+typedef struct SpFileStream SpFileStream;
+#endif /* __cplusplus */
+
+#endif /* __SpFileStream_FWD_DEFINED__ */
+
+
+#ifndef __SpMemoryStream_FWD_DEFINED__
+#define __SpMemoryStream_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpMemoryStream SpMemoryStream;
+#else
+typedef struct SpMemoryStream SpMemoryStream;
+#endif /* __cplusplus */
+
+#endif /* __SpMemoryStream_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "oaidl.h"
+#include "ocidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+void * __RPC_USER MIDL_user_allocate(size_t);
+void __RPC_USER MIDL_user_free( void * );
+
+/* interface __MIDL_itf_sapi_0000 */
+/* [local] */
+
+#pragma warning(disable:4201) // Allow nameless structs/unions
+#pragma comment(lib, "sapi.lib")
+#if 0
+typedef /* [hidden][restricted] */ struct WAVEFORMATEX
+ {
+ WORD wFormatTag;
+ WORD nChannels;
+ DWORD nSamplesPerSec;
+ DWORD nAvgBytesPerSec;
+ WORD nBlockAlign;
+ WORD wBitsPerSample;
+ WORD cbSize;
+ } WAVEFORMATEX;
+
+#else
+#include <mmsystem.h>
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef /* [hidden] */
+enum SPDATAKEYLOCATION
+ { SPDKL_DefaultLocation = 0,
+ SPDKL_CurrentUser = 1,
+ SPDKL_LocalMachine = 2,
+ SPDKL_CurrentConfig = 5
+ } SPDATAKEYLOCATION;
+
+#define SPDUI_EngineProperties L"EngineProperties"
+#define SPDUI_AddRemoveWord L"AddRemoveWord"
+#define SPDUI_UserTraining L"UserTraining"
+#define SPDUI_MicTraining L"MicTraining"
+#define SPDUI_RecoProfileProperties L"RecoProfileProperties"
+#define SPDUI_AudioProperties L"AudioProperties"
+#define SPDUI_AudioVolume L"AudioVolume"
+typedef /* [hidden] */
+enum SPSTREAMFORMAT
+ { SPSF_Default = -1,
+ SPSF_NoAssignedFormat = 0,
+ SPSF_Text = SPSF_NoAssignedFormat + 1,
+ SPSF_NonStandardFormat = SPSF_Text + 1,
+ SPSF_ExtendedAudioFormat = SPSF_NonStandardFormat + 1,
+ SPSF_8kHz8BitMono = SPSF_ExtendedAudioFormat + 1,
+ SPSF_8kHz8BitStereo = SPSF_8kHz8BitMono + 1,
+ SPSF_8kHz16BitMono = SPSF_8kHz8BitStereo + 1,
+ SPSF_8kHz16BitStereo = SPSF_8kHz16BitMono + 1,
+ SPSF_11kHz8BitMono = SPSF_8kHz16BitStereo + 1,
+ SPSF_11kHz8BitStereo = SPSF_11kHz8BitMono + 1,
+ SPSF_11kHz16BitMono = SPSF_11kHz8BitStereo + 1,
+ SPSF_11kHz16BitStereo = SPSF_11kHz16BitMono + 1,
+ SPSF_12kHz8BitMono = SPSF_11kHz16BitStereo + 1,
+ SPSF_12kHz8BitStereo = SPSF_12kHz8BitMono + 1,
+ SPSF_12kHz16BitMono = SPSF_12kHz8BitStereo + 1,
+ SPSF_12kHz16BitStereo = SPSF_12kHz16BitMono + 1,
+ SPSF_16kHz8BitMono = SPSF_12kHz16BitStereo + 1,
+ SPSF_16kHz8BitStereo = SPSF_16kHz8BitMono + 1,
+ SPSF_16kHz16BitMono = SPSF_16kHz8BitStereo + 1,
+ SPSF_16kHz16BitStereo = SPSF_16kHz16BitMono + 1,
+ SPSF_22kHz8BitMono = SPSF_16kHz16BitStereo + 1,
+ SPSF_22kHz8BitStereo = SPSF_22kHz8BitMono + 1,
+ SPSF_22kHz16BitMono = SPSF_22kHz8BitStereo + 1,
+ SPSF_22kHz16BitStereo = SPSF_22kHz16BitMono + 1,
+ SPSF_24kHz8BitMono = SPSF_22kHz16BitStereo + 1,
+ SPSF_24kHz8BitStereo = SPSF_24kHz8BitMono + 1,
+ SPSF_24kHz16BitMono = SPSF_24kHz8BitStereo + 1,
+ SPSF_24kHz16BitStereo = SPSF_24kHz16BitMono + 1,
+ SPSF_32kHz8BitMono = SPSF_24kHz16BitStereo + 1,
+ SPSF_32kHz8BitStereo = SPSF_32kHz8BitMono + 1,
+ SPSF_32kHz16BitMono = SPSF_32kHz8BitStereo + 1,
+ SPSF_32kHz16BitStereo = SPSF_32kHz16BitMono + 1,
+ SPSF_44kHz8BitMono = SPSF_32kHz16BitStereo + 1,
+ SPSF_44kHz8BitStereo = SPSF_44kHz8BitMono + 1,
+ SPSF_44kHz16BitMono = SPSF_44kHz8BitStereo + 1,
+ SPSF_44kHz16BitStereo = SPSF_44kHz16BitMono + 1,
+ SPSF_48kHz8BitMono = SPSF_44kHz16BitStereo + 1,
+ SPSF_48kHz8BitStereo = SPSF_48kHz8BitMono + 1,
+ SPSF_48kHz16BitMono = SPSF_48kHz8BitStereo + 1,
+ SPSF_48kHz16BitStereo = SPSF_48kHz16BitMono + 1,
+ SPSF_TrueSpeech_8kHz1BitMono = SPSF_48kHz16BitStereo + 1,
+ SPSF_CCITT_ALaw_8kHzMono = SPSF_TrueSpeech_8kHz1BitMono + 1,
+ SPSF_CCITT_ALaw_8kHzStereo = SPSF_CCITT_ALaw_8kHzMono + 1,
+ SPSF_CCITT_ALaw_11kHzMono = SPSF_CCITT_ALaw_8kHzStereo + 1,
+ SPSF_CCITT_ALaw_11kHzStereo = SPSF_CCITT_ALaw_11kHzMono + 1,
+ SPSF_CCITT_ALaw_22kHzMono = SPSF_CCITT_ALaw_11kHzStereo + 1,
+ SPSF_CCITT_ALaw_22kHzStereo = SPSF_CCITT_ALaw_22kHzMono + 1,
+ SPSF_CCITT_ALaw_44kHzMono = SPSF_CCITT_ALaw_22kHzStereo + 1,
+ SPSF_CCITT_ALaw_44kHzStereo = SPSF_CCITT_ALaw_44kHzMono + 1,
+ SPSF_CCITT_uLaw_8kHzMono = SPSF_CCITT_ALaw_44kHzStereo + 1,
+ SPSF_CCITT_uLaw_8kHzStereo = SPSF_CCITT_uLaw_8kHzMono + 1,
+ SPSF_CCITT_uLaw_11kHzMono = SPSF_CCITT_uLaw_8kHzStereo + 1,
+ SPSF_CCITT_uLaw_11kHzStereo = SPSF_CCITT_uLaw_11kHzMono + 1,
+ SPSF_CCITT_uLaw_22kHzMono = SPSF_CCITT_uLaw_11kHzStereo + 1,
+ SPSF_CCITT_uLaw_22kHzStereo = SPSF_CCITT_uLaw_22kHzMono + 1,
+ SPSF_CCITT_uLaw_44kHzMono = SPSF_CCITT_uLaw_22kHzStereo + 1,
+ SPSF_CCITT_uLaw_44kHzStereo = SPSF_CCITT_uLaw_44kHzMono + 1,
+ SPSF_ADPCM_8kHzMono = SPSF_CCITT_uLaw_44kHzStereo + 1,
+ SPSF_ADPCM_8kHzStereo = SPSF_ADPCM_8kHzMono + 1,
+ SPSF_ADPCM_11kHzMono = SPSF_ADPCM_8kHzStereo + 1,
+ SPSF_ADPCM_11kHzStereo = SPSF_ADPCM_11kHzMono + 1,
+ SPSF_ADPCM_22kHzMono = SPSF_ADPCM_11kHzStereo + 1,
+ SPSF_ADPCM_22kHzStereo = SPSF_ADPCM_22kHzMono + 1,
+ SPSF_ADPCM_44kHzMono = SPSF_ADPCM_22kHzStereo + 1,
+ SPSF_ADPCM_44kHzStereo = SPSF_ADPCM_44kHzMono + 1,
+ SPSF_GSM610_8kHzMono = SPSF_ADPCM_44kHzStereo + 1,
+ SPSF_GSM610_11kHzMono = SPSF_GSM610_8kHzMono + 1,
+ SPSF_GSM610_22kHzMono = SPSF_GSM610_11kHzMono + 1,
+ SPSF_GSM610_44kHzMono = SPSF_GSM610_22kHzMono + 1,
+ SPSF_NUM_FORMATS = SPSF_GSM610_44kHzMono + 1
+ } SPSTREAMFORMAT;
+
+EXTERN_C const GUID SPDFID_Text;
+EXTERN_C const GUID SPDFID_WaveFormatEx;
+#define SPREG_USER_ROOT L"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Speech"
+#define SPREG_LOCAL_MACHINE_ROOT L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech"
+#define SPCAT_AUDIOOUT L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\AudioOutput"
+#define SPCAT_AUDIOIN L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\AudioInput"
+#define SPCAT_VOICES L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices"
+#define SPCAT_RECOGNIZERS L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Recognizers"
+#define SPCAT_APPLEXICONS L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\AppLexicons"
+#define SPCAT_PHONECONVERTERS L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\PhoneConverters"
+#define SPCAT_RECOPROFILES L"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Speech\\RecoProfiles"
+#define SPMMSYS_AUDIO_IN_TOKEN_ID L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\AudioInput\\TokenEnums\\MMAudioIn\\"
+#define SPMMSYS_AUDIO_OUT_TOKEN_ID L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\AudioOutput\\TokenEnums\\MMAudioOut\\"
+#define SPCURRENT_USER_LEXICON_TOKEN_ID L"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Speech\\CurrentUserLexicon"
+#define SPTOKENVALUE_CLSID L"CLSID"
+#define SPTOKENKEY_FILES L"Files"
+#define SPTOKENKEY_UI L"UI"
+#define SPTOKENKEY_ATTRIBUTES L"Attributes"
+#define SPVOICECATEGORY_TTSRATE L"DefaultTTSRate"
+#define SPPROP_RESOURCE_USAGE L"ResourceUsage"
+#define SPPROP_HIGH_CONFIDENCE_THRESHOLD L"HighConfidenceThreshold"
+#define SPPROP_NORMAL_CONFIDENCE_THRESHOLD L"NormalConfidenceThreshold"
+#define SPPROP_LOW_CONFIDENCE_THRESHOLD L"LowConfidenceThreshold"
+#define SPPROP_RESPONSE_SPEED L"ResponseSpeed"
+#define SPPROP_COMPLEX_RESPONSE_SPEED L"ComplexResponseSpeed"
+#define SPPROP_ADAPTATION_ON L"AdaptationOn"
+#define SPTOPIC_SPELLING L"Spelling"
+#define SPWILDCARD L"..."
+#define SPDICTATION L"*"
+#define SPINFDICTATION L"*+"
+#define SP_LOW_CONFIDENCE ( -1 )
+
+#define SP_NORMAL_CONFIDENCE ( 0 )
+
+#define SP_HIGH_CONFIDENCE ( +1 )
+
+#define DEFAULT_WEIGHT ( 1 )
+
+#define SP_MAX_WORD_LENGTH ( 128 )
+
+#define SP_MAX_PRON_LENGTH ( 384 )
+
+#if defined(__cplusplus)
+interface ISpNotifyCallback
+{
+virtual HRESULT STDMETHODCALLTYPE NotifyCallback(
+ WPARAM wParam,
+ LPARAM lParam) = 0;
+};
+#else
+typedef void *ISpNotifyCallback;
+
+#endif
+#if 0
+typedef void *SPNOTIFYCALLBACK;
+
+#else
+typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);
+#endif
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0000_v0_0_s_ifspec;
+
+#ifndef __ISpNotifySource_INTERFACE_DEFINED__
+#define __ISpNotifySource_INTERFACE_DEFINED__
+
+/* interface ISpNotifySource */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpNotifySource;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("5EFF4AEF-8487-11D2-961C-00C04F8EE628")
+ ISpNotifySource : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetNotifySink(
+ /* [in] */ ISpNotifySink *pNotifySink) = 0;
+
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetNotifyWindowMessage(
+ /* [in] */ HWND hWnd,
+ /* [in] */ UINT Msg,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam) = 0;
+
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetNotifyCallbackFunction(
+ /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam) = 0;
+
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetNotifyCallbackInterface(
+ /* [in] */ ISpNotifyCallback *pSpCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam) = 0;
+
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetNotifyWin32Event( void) = 0;
+
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE WaitForNotifyEvent(
+ /* [in] */ DWORD dwMilliseconds) = 0;
+
+ virtual /* [local] */ HANDLE STDMETHODCALLTYPE GetNotifyEventHandle( void) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpNotifySourceVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpNotifySource * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpNotifySource * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpNotifySource * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetNotifySink )(
+ ISpNotifySource * This,
+ /* [in] */ ISpNotifySink *pNotifySink);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyWindowMessage )(
+ ISpNotifySource * This,
+ /* [in] */ HWND hWnd,
+ /* [in] */ UINT Msg,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyCallbackFunction )(
+ ISpNotifySource * This,
+ /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyCallbackInterface )(
+ ISpNotifySource * This,
+ /* [in] */ ISpNotifyCallback *pSpCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyWin32Event )(
+ ISpNotifySource * This);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *WaitForNotifyEvent )(
+ ISpNotifySource * This,
+ /* [in] */ DWORD dwMilliseconds);
+
+ /* [local] */ HANDLE ( STDMETHODCALLTYPE *GetNotifyEventHandle )(
+ ISpNotifySource * This);
+
+ END_INTERFACE
+ } ISpNotifySourceVtbl;
+
+ interface ISpNotifySource
+ {
+ CONST_VTBL struct ISpNotifySourceVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpNotifySource_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpNotifySource_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpNotifySource_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpNotifySource_SetNotifySink(This,pNotifySink) \
+ (This)->lpVtbl -> SetNotifySink(This,pNotifySink)
+
+#define ISpNotifySource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) \
+ (This)->lpVtbl -> SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
+
+#define ISpNotifySource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) \
+ (This)->lpVtbl -> SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
+
+#define ISpNotifySource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) \
+ (This)->lpVtbl -> SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
+
+#define ISpNotifySource_SetNotifyWin32Event(This) \
+ (This)->lpVtbl -> SetNotifyWin32Event(This)
+
+#define ISpNotifySource_WaitForNotifyEvent(This,dwMilliseconds) \
+ (This)->lpVtbl -> WaitForNotifyEvent(This,dwMilliseconds)
+
+#define ISpNotifySource_GetNotifyEventHandle(This) \
+ (This)->lpVtbl -> GetNotifyEventHandle(This)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpNotifySource_SetNotifySink_Proxy(
+ ISpNotifySource * This,
+ /* [in] */ ISpNotifySink *pNotifySink);
+
+
+void __RPC_STUB ISpNotifySource_SetNotifySink_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [local] */ HRESULT STDMETHODCALLTYPE ISpNotifySource_SetNotifyWindowMessage_Proxy(
+ ISpNotifySource * This,
+ /* [in] */ HWND hWnd,
+ /* [in] */ UINT Msg,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+
+void __RPC_STUB ISpNotifySource_SetNotifyWindowMessage_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [local] */ HRESULT STDMETHODCALLTYPE ISpNotifySource_SetNotifyCallbackFunction_Proxy(
+ ISpNotifySource * This,
+ /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+
+void __RPC_STUB ISpNotifySource_SetNotifyCallbackFunction_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [local] */ HRESULT STDMETHODCALLTYPE ISpNotifySource_SetNotifyCallbackInterface_Proxy(
+ ISpNotifySource * This,
+ /* [in] */ ISpNotifyCallback *pSpCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+
+void __RPC_STUB ISpNotifySource_SetNotifyCallbackInterface_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [local] */ HRESULT STDMETHODCALLTYPE ISpNotifySource_SetNotifyWin32Event_Proxy(
+ ISpNotifySource * This);
+
+
+void __RPC_STUB ISpNotifySource_SetNotifyWin32Event_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [local] */ HRESULT STDMETHODCALLTYPE ISpNotifySource_WaitForNotifyEvent_Proxy(
+ ISpNotifySource * This,
+ /* [in] */ DWORD dwMilliseconds);
+
+
+void __RPC_STUB ISpNotifySource_WaitForNotifyEvent_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [local] */ HANDLE STDMETHODCALLTYPE ISpNotifySource_GetNotifyEventHandle_Proxy(
+ ISpNotifySource * This);
+
+
+void __RPC_STUB ISpNotifySource_GetNotifyEventHandle_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpNotifySource_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpNotifySink_INTERFACE_DEFINED__
+#define __ISpNotifySink_INTERFACE_DEFINED__
+
+/* interface ISpNotifySink */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpNotifySink;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("259684DC-37C3-11D2-9603-00C04F8EE628")
+ ISpNotifySink : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE Notify( void) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpNotifySinkVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpNotifySink * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpNotifySink * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpNotifySink * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Notify )(
+ ISpNotifySink * This);
+
+ END_INTERFACE
+ } ISpNotifySinkVtbl;
+
+ interface ISpNotifySink
+ {
+ CONST_VTBL struct ISpNotifySinkVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpNotifySink_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpNotifySink_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpNotifySink_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpNotifySink_Notify(This) \
+ (This)->lpVtbl -> Notify(This)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpNotifySink_Notify_Proxy(
+ ISpNotifySink * This);
+
+
+void __RPC_STUB ISpNotifySink_Notify_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpNotifySink_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpNotifyTranslator_INTERFACE_DEFINED__
+#define __ISpNotifyTranslator_INTERFACE_DEFINED__
+
+/* interface ISpNotifyTranslator */
+/* [restricted][local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpNotifyTranslator;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("ACA16614-5D3D-11D2-960E-00C04F8EE628")
+ ISpNotifyTranslator : public ISpNotifySink
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE InitWindowMessage(
+ /* [in] */ HWND hWnd,
+ /* [in] */ UINT Msg,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE InitCallback(
+ /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE InitSpNotifyCallback(
+ /* [in] */ ISpNotifyCallback *pSpCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE InitWin32Event(
+ HANDLE hEvent,
+ BOOL fCloseHandleOnRelease) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Wait(
+ /* [in] */ DWORD dwMilliseconds) = 0;
+
+ virtual HANDLE STDMETHODCALLTYPE GetEventHandle( void) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpNotifyTranslatorVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpNotifyTranslator * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpNotifyTranslator * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpNotifyTranslator * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Notify )(
+ ISpNotifyTranslator * This);
+
+ HRESULT ( STDMETHODCALLTYPE *InitWindowMessage )(
+ ISpNotifyTranslator * This,
+ /* [in] */ HWND hWnd,
+ /* [in] */ UINT Msg,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ HRESULT ( STDMETHODCALLTYPE *InitCallback )(
+ ISpNotifyTranslator * This,
+ /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ HRESULT ( STDMETHODCALLTYPE *InitSpNotifyCallback )(
+ ISpNotifyTranslator * This,
+ /* [in] */ ISpNotifyCallback *pSpCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ HRESULT ( STDMETHODCALLTYPE *InitWin32Event )(
+ ISpNotifyTranslator * This,
+ HANDLE hEvent,
+ BOOL fCloseHandleOnRelease);
+
+ HRESULT ( STDMETHODCALLTYPE *Wait )(
+ ISpNotifyTranslator * This,
+ /* [in] */ DWORD dwMilliseconds);
+
+ HANDLE ( STDMETHODCALLTYPE *GetEventHandle )(
+ ISpNotifyTranslator * This);
+
+ END_INTERFACE
+ } ISpNotifyTranslatorVtbl;
+
+ interface ISpNotifyTranslator
+ {
+ CONST_VTBL struct ISpNotifyTranslatorVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpNotifyTranslator_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpNotifyTranslator_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpNotifyTranslator_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpNotifyTranslator_Notify(This) \
+ (This)->lpVtbl -> Notify(This)
+
+
+#define ISpNotifyTranslator_InitWindowMessage(This,hWnd,Msg,wParam,lParam) \
+ (This)->lpVtbl -> InitWindowMessage(This,hWnd,Msg,wParam,lParam)
+
+#define ISpNotifyTranslator_InitCallback(This,pfnCallback,wParam,lParam) \
+ (This)->lpVtbl -> InitCallback(This,pfnCallback,wParam,lParam)
+
+#define ISpNotifyTranslator_InitSpNotifyCallback(This,pSpCallback,wParam,lParam) \
+ (This)->lpVtbl -> InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
+
+#define ISpNotifyTranslator_InitWin32Event(This,hEvent,fCloseHandleOnRelease) \
+ (This)->lpVtbl -> InitWin32Event(This,hEvent,fCloseHandleOnRelease)
+
+#define ISpNotifyTranslator_Wait(This,dwMilliseconds) \
+ (This)->lpVtbl -> Wait(This,dwMilliseconds)
+
+#define ISpNotifyTranslator_GetEventHandle(This) \
+ (This)->lpVtbl -> GetEventHandle(This)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitWindowMessage_Proxy(
+ ISpNotifyTranslator * This,
+ /* [in] */ HWND hWnd,
+ /* [in] */ UINT Msg,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+
+void __RPC_STUB ISpNotifyTranslator_InitWindowMessage_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitCallback_Proxy(
+ ISpNotifyTranslator * This,
+ /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+
+void __RPC_STUB ISpNotifyTranslator_InitCallback_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitSpNotifyCallback_Proxy(
+ ISpNotifyTranslator * This,
+ /* [in] */ ISpNotifyCallback *pSpCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+
+void __RPC_STUB ISpNotifyTranslator_InitSpNotifyCallback_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitWin32Event_Proxy(
+ ISpNotifyTranslator * This,
+ HANDLE hEvent,
+ BOOL fCloseHandleOnRelease);
+
+
+void __RPC_STUB ISpNotifyTranslator_InitWin32Event_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_Wait_Proxy(
+ ISpNotifyTranslator * This,
+ /* [in] */ DWORD dwMilliseconds);
+
+
+void __RPC_STUB ISpNotifyTranslator_Wait_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HANDLE STDMETHODCALLTYPE ISpNotifyTranslator_GetEventHandle_Proxy(
+ ISpNotifyTranslator * This);
+
+
+void __RPC_STUB ISpNotifyTranslator_GetEventHandle_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpNotifyTranslator_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpDataKey_INTERFACE_DEFINED__
+#define __ISpDataKey_INTERFACE_DEFINED__
+
+/* interface ISpDataKey */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpDataKey;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("14056581-E16C-11D2-BB90-00C04F8EE6C0")
+ ISpDataKey : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetData(
+ const WCHAR *pszValueName,
+ ULONG cbData,
+ const BYTE *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetData(
+ const WCHAR *pszValueName,
+ ULONG *pcbData,
+ BYTE *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetStringValue(
+ const WCHAR *pszValueName,
+ const WCHAR *pszValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStringValue(
+ const WCHAR *pszValueName,
+ WCHAR **ppszValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetDWORD(
+ const WCHAR *pszValueName,
+ DWORD dwValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDWORD(
+ const WCHAR *pszValueName,
+ DWORD *pdwValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OpenKey(
+ const WCHAR *pszSubKeyName,
+ ISpDataKey **ppSubKey) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateKey(
+ const WCHAR *pszSubKey,
+ ISpDataKey **ppSubKey) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DeleteKey(
+ const WCHAR *pszSubKey) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DeleteValue(
+ const WCHAR *pszValueName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumKeys(
+ ULONG Index,
+ WCHAR **ppszSubKeyName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumValues(
+ ULONG Index,
+ WCHAR **ppszValueName) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpDataKeyVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpDataKey * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpDataKey * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpDataKey * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetData )(
+ ISpDataKey * This,
+ const WCHAR *pszValueName,
+ ULONG cbData,
+ const BYTE *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *GetData )(
+ ISpDataKey * This,
+ const WCHAR *pszValueName,
+ ULONG *pcbData,
+ BYTE *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetStringValue )(
+ ISpDataKey * This,
+ const WCHAR *pszValueName,
+ const WCHAR *pszValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStringValue )(
+ ISpDataKey * This,
+ const WCHAR *pszValueName,
+ WCHAR **ppszValue);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDWORD )(
+ ISpDataKey * This,
+ const WCHAR *pszValueName,
+ DWORD dwValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDWORD )(
+ ISpDataKey * This,
+ const WCHAR *pszValueName,
+ DWORD *pdwValue);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenKey )(
+ ISpDataKey * This,
+ const WCHAR *pszSubKeyName,
+ ISpDataKey **ppSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateKey )(
+ ISpDataKey * This,
+ const WCHAR *pszSubKey,
+ ISpDataKey **ppSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *DeleteKey )(
+ ISpDataKey * This,
+ const WCHAR *pszSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *DeleteValue )(
+ ISpDataKey * This,
+ const WCHAR *pszValueName);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumKeys )(
+ ISpDataKey * This,
+ ULONG Index,
+ WCHAR **ppszSubKeyName);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumValues )(
+ ISpDataKey * This,
+ ULONG Index,
+ WCHAR **ppszValueName);
+
+ END_INTERFACE
+ } ISpDataKeyVtbl;
+
+ interface ISpDataKey
+ {
+ CONST_VTBL struct ISpDataKeyVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpDataKey_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpDataKey_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpDataKey_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpDataKey_SetData(This,pszValueName,cbData,pData) \
+ (This)->lpVtbl -> SetData(This,pszValueName,cbData,pData)
+
+#define ISpDataKey_GetData(This,pszValueName,pcbData,pData) \
+ (This)->lpVtbl -> GetData(This,pszValueName,pcbData,pData)
+
+#define ISpDataKey_SetStringValue(This,pszValueName,pszValue) \
+ (This)->lpVtbl -> SetStringValue(This,pszValueName,pszValue)
+
+#define ISpDataKey_GetStringValue(This,pszValueName,ppszValue) \
+ (This)->lpVtbl -> GetStringValue(This,pszValueName,ppszValue)
+
+#define ISpDataKey_SetDWORD(This,pszValueName,dwValue) \
+ (This)->lpVtbl -> SetDWORD(This,pszValueName,dwValue)
+
+#define ISpDataKey_GetDWORD(This,pszValueName,pdwValue) \
+ (This)->lpVtbl -> GetDWORD(This,pszValueName,pdwValue)
+
+#define ISpDataKey_OpenKey(This,pszSubKeyName,ppSubKey) \
+ (This)->lpVtbl -> OpenKey(This,pszSubKeyName,ppSubKey)
+
+#define ISpDataKey_CreateKey(This,pszSubKey,ppSubKey) \
+ (This)->lpVtbl -> CreateKey(This,pszSubKey,ppSubKey)
+
+#define ISpDataKey_DeleteKey(This,pszSubKey) \
+ (This)->lpVtbl -> DeleteKey(This,pszSubKey)
+
+#define ISpDataKey_DeleteValue(This,pszValueName) \
+ (This)->lpVtbl -> DeleteValue(This,pszValueName)
+
+#define ISpDataKey_EnumKeys(This,Index,ppszSubKeyName) \
+ (This)->lpVtbl -> EnumKeys(This,Index,ppszSubKeyName)
+
+#define ISpDataKey_EnumValues(This,Index,ppszValueName) \
+ (This)->lpVtbl -> EnumValues(This,Index,ppszValueName)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpDataKey_SetData_Proxy(
+ ISpDataKey * This,
+ const WCHAR *pszValueName,
+ ULONG cbData,
+ const BYTE *pData);
+
+
+void __RPC_STUB ISpDataKey_SetData_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpDataKey_GetData_Proxy(
+ ISpDataKey * This,
+ const WCHAR *pszValueName,
+ ULONG *pcbData,
+ BYTE *pData);
+
+
+void __RPC_STUB ISpDataKey_GetData_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpDataKey_SetStringValue_Proxy(
+ ISpDataKey * This,
+ const WCHAR *pszValueName,
+ const WCHAR *pszValue);
+
+
+void __RPC_STUB ISpDataKey_SetStringValue_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpDataKey_GetStringValue_Proxy(
+ ISpDataKey * This,
+ const WCHAR *pszValueName,
+ WCHAR **ppszValue);
+
+
+void __RPC_STUB ISpDataKey_GetStringValue_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpDataKey_SetDWORD_Proxy(
+ ISpDataKey * This,
+ const WCHAR *pszValueName,
+ DWORD dwValue);
+
+
+void __RPC_STUB ISpDataKey_SetDWORD_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpDataKey_GetDWORD_Proxy(
+ ISpDataKey * This,
+ const WCHAR *pszValueName,
+ DWORD *pdwValue);
+
+
+void __RPC_STUB ISpDataKey_GetDWORD_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpDataKey_OpenKey_Proxy(
+ ISpDataKey * This,
+ const WCHAR *pszSubKeyName,
+ ISpDataKey **ppSubKey);
+
+
+void __RPC_STUB ISpDataKey_OpenKey_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpDataKey_CreateKey_Proxy(
+ ISpDataKey * This,
+ const WCHAR *pszSubKey,
+ ISpDataKey **ppSubKey);
+
+
+void __RPC_STUB ISpDataKey_CreateKey_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpDataKey_DeleteKey_Proxy(
+ ISpDataKey * This,
+ const WCHAR *pszSubKey);
+
+
+void __RPC_STUB ISpDataKey_DeleteKey_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpDataKey_DeleteValue_Proxy(
+ ISpDataKey * This,
+ const WCHAR *pszValueName);
+
+
+void __RPC_STUB ISpDataKey_DeleteValue_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpDataKey_EnumKeys_Proxy(
+ ISpDataKey * This,
+ ULONG Index,
+ WCHAR **ppszSubKeyName);
+
+
+void __RPC_STUB ISpDataKey_EnumKeys_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpDataKey_EnumValues_Proxy(
+ ISpDataKey * This,
+ ULONG Index,
+ WCHAR **ppszValueName);
+
+
+void __RPC_STUB ISpDataKey_EnumValues_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpDataKey_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpRegDataKey_INTERFACE_DEFINED__
+#define __ISpRegDataKey_INTERFACE_DEFINED__
+
+/* interface ISpRegDataKey */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpRegDataKey;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("92A66E2B-C830-4149-83DF-6FC2BA1E7A5B")
+ ISpRegDataKey : public ISpDataKey
+ {
+ public:
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetKey(
+ /* [in] */ HKEY hkey,
+ /* [in] */ BOOL fReadOnly) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpRegDataKeyVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpRegDataKey * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpRegDataKey * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpRegDataKey * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetData )(
+ ISpRegDataKey * This,
+ const WCHAR *pszValueName,
+ ULONG cbData,
+ const BYTE *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *GetData )(
+ ISpRegDataKey * This,
+ const WCHAR *pszValueName,
+ ULONG *pcbData,
+ BYTE *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetStringValue )(
+ ISpRegDataKey * This,
+ const WCHAR *pszValueName,
+ const WCHAR *pszValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStringValue )(
+ ISpRegDataKey * This,
+ const WCHAR *pszValueName,
+ WCHAR **ppszValue);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDWORD )(
+ ISpRegDataKey * This,
+ const WCHAR *pszValueName,
+ DWORD dwValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDWORD )(
+ ISpRegDataKey * This,
+ const WCHAR *pszValueName,
+ DWORD *pdwValue);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenKey )(
+ ISpRegDataKey * This,
+ const WCHAR *pszSubKeyName,
+ ISpDataKey **ppSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateKey )(
+ ISpRegDataKey * This,
+ const WCHAR *pszSubKey,
+ ISpDataKey **ppSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *DeleteKey )(
+ ISpRegDataKey * This,
+ const WCHAR *pszSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *DeleteValue )(
+ ISpRegDataKey * This,
+ const WCHAR *pszValueName);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumKeys )(
+ ISpRegDataKey * This,
+ ULONG Index,
+ WCHAR **ppszSubKeyName);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumValues )(
+ ISpRegDataKey * This,
+ ULONG Index,
+ WCHAR **ppszValueName);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetKey )(
+ ISpRegDataKey * This,
+ /* [in] */ HKEY hkey,
+ /* [in] */ BOOL fReadOnly);
+
+ END_INTERFACE
+ } ISpRegDataKeyVtbl;
+
+ interface ISpRegDataKey
+ {
+ CONST_VTBL struct ISpRegDataKeyVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpRegDataKey_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpRegDataKey_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpRegDataKey_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpRegDataKey_SetData(This,pszValueName,cbData,pData) \
+ (This)->lpVtbl -> SetData(This,pszValueName,cbData,pData)
+
+#define ISpRegDataKey_GetData(This,pszValueName,pcbData,pData) \
+ (This)->lpVtbl -> GetData(This,pszValueName,pcbData,pData)
+
+#define ISpRegDataKey_SetStringValue(This,pszValueName,pszValue) \
+ (This)->lpVtbl -> SetStringValue(This,pszValueName,pszValue)
+
+#define ISpRegDataKey_GetStringValue(This,pszValueName,ppszValue) \
+ (This)->lpVtbl -> GetStringValue(This,pszValueName,ppszValue)
+
+#define ISpRegDataKey_SetDWORD(This,pszValueName,dwValue) \
+ (This)->lpVtbl -> SetDWORD(This,pszValueName,dwValue)
+
+#define ISpRegDataKey_GetDWORD(This,pszValueName,pdwValue) \
+ (This)->lpVtbl -> GetDWORD(This,pszValueName,pdwValue)
+
+#define ISpRegDataKey_OpenKey(This,pszSubKeyName,ppSubKey) \
+ (This)->lpVtbl -> OpenKey(This,pszSubKeyName,ppSubKey)
+
+#define ISpRegDataKey_CreateKey(This,pszSubKey,ppSubKey) \
+ (This)->lpVtbl -> CreateKey(This,pszSubKey,ppSubKey)
+
+#define ISpRegDataKey_DeleteKey(This,pszSubKey) \
+ (This)->lpVtbl -> DeleteKey(This,pszSubKey)
+
+#define ISpRegDataKey_DeleteValue(This,pszValueName) \
+ (This)->lpVtbl -> DeleteValue(This,pszValueName)
+
+#define ISpRegDataKey_EnumKeys(This,Index,ppszSubKeyName) \
+ (This)->lpVtbl -> EnumKeys(This,Index,ppszSubKeyName)
+
+#define ISpRegDataKey_EnumValues(This,Index,ppszValueName) \
+ (This)->lpVtbl -> EnumValues(This,Index,ppszValueName)
+
+
+#define ISpRegDataKey_SetKey(This,hkey,fReadOnly) \
+ (This)->lpVtbl -> SetKey(This,hkey,fReadOnly)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [local] */ HRESULT STDMETHODCALLTYPE ISpRegDataKey_SetKey_Proxy(
+ ISpRegDataKey * This,
+ /* [in] */ HKEY hkey,
+ /* [in] */ BOOL fReadOnly);
+
+
+void __RPC_STUB ISpRegDataKey_SetKey_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpRegDataKey_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpObjectTokenCategory_INTERFACE_DEFINED__
+#define __ISpObjectTokenCategory_INTERFACE_DEFINED__
+
+/* interface ISpObjectTokenCategory */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpObjectTokenCategory;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("2D3D3845-39AF-4850-BBF9-40B49780011D")
+ ISpObjectTokenCategory : public ISpDataKey
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetId(
+ /* [in] */ const WCHAR *pszCategoryId,
+ BOOL fCreateIfNotExist) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetId(
+ /* [out] */ WCHAR **ppszCoMemCategoryId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDataKey(
+ SPDATAKEYLOCATION spdkl,
+ ISpDataKey **ppDataKey) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumTokens(
+ /* [string][in] */ const WCHAR *pzsReqAttribs,
+ /* [string][in] */ const WCHAR *pszOptAttribs,
+ /* [out] */ IEnumSpObjectTokens **ppEnum) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetDefaultTokenId(
+ /* [in] */ const WCHAR *pszTokenId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDefaultTokenId(
+ /* [out] */ WCHAR **ppszCoMemTokenId) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpObjectTokenCategoryVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpObjectTokenCategory * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpObjectTokenCategory * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpObjectTokenCategory * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetData )(
+ ISpObjectTokenCategory * This,
+ const WCHAR *pszValueName,
+ ULONG cbData,
+ const BYTE *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *GetData )(
+ ISpObjectTokenCategory * This,
+ const WCHAR *pszValueName,
+ ULONG *pcbData,
+ BYTE *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetStringValue )(
+ ISpObjectTokenCategory * This,
+ const WCHAR *pszValueName,
+ const WCHAR *pszValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStringValue )(
+ ISpObjectTokenCategory * This,
+ const WCHAR *pszValueName,
+ WCHAR **ppszValue);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDWORD )(
+ ISpObjectTokenCategory * This,
+ const WCHAR *pszValueName,
+ DWORD dwValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDWORD )(
+ ISpObjectTokenCategory * This,
+ const WCHAR *pszValueName,
+ DWORD *pdwValue);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenKey )(
+ ISpObjectTokenCategory * This,
+ const WCHAR *pszSubKeyName,
+ ISpDataKey **ppSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateKey )(
+ ISpObjectTokenCategory * This,
+ const WCHAR *pszSubKey,
+ ISpDataKey **ppSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *DeleteKey )(
+ ISpObjectTokenCategory * This,
+ const WCHAR *pszSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *DeleteValue )(
+ ISpObjectTokenCategory * This,
+ const WCHAR *pszValueName);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumKeys )(
+ ISpObjectTokenCategory * This,
+ ULONG Index,
+ WCHAR **ppszSubKeyName);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumValues )(
+ ISpObjectTokenCategory * This,
+ ULONG Index,
+ WCHAR **ppszValueName);
+
+ HRESULT ( STDMETHODCALLTYPE *SetId )(
+ ISpObjectTokenCategory * This,
+ /* [in] */ const WCHAR *pszCategoryId,
+ BOOL fCreateIfNotExist);
+
+ HRESULT ( STDMETHODCALLTYPE *GetId )(
+ ISpObjectTokenCategory * This,
+ /* [out] */ WCHAR **ppszCoMemCategoryId);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDataKey )(
+ ISpObjectTokenCategory * This,
+ SPDATAKEYLOCATION spdkl,
+ ISpDataKey **ppDataKey);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumTokens )(
+ ISpObjectTokenCategory * This,
+ /* [string][in] */ const WCHAR *pzsReqAttribs,
+ /* [string][in] */ const WCHAR *pszOptAttribs,
+ /* [out] */ IEnumSpObjectTokens **ppEnum);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDefaultTokenId )(
+ ISpObjectTokenCategory * This,
+ /* [in] */ const WCHAR *pszTokenId);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDefaultTokenId )(
+ ISpObjectTokenCategory * This,
+ /* [out] */ WCHAR **ppszCoMemTokenId);
+
+ END_INTERFACE
+ } ISpObjectTokenCategoryVtbl;
+
+ interface ISpObjectTokenCategory
+ {
+ CONST_VTBL struct ISpObjectTokenCategoryVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpObjectTokenCategory_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpObjectTokenCategory_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpObjectTokenCategory_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpObjectTokenCategory_SetData(This,pszValueName,cbData,pData) \
+ (This)->lpVtbl -> SetData(This,pszValueName,cbData,pData)
+
+#define ISpObjectTokenCategory_GetData(This,pszValueName,pcbData,pData) \
+ (This)->lpVtbl -> GetData(This,pszValueName,pcbData,pData)
+
+#define ISpObjectTokenCategory_SetStringValue(This,pszValueName,pszValue) \
+ (This)->lpVtbl -> SetStringValue(This,pszValueName,pszValue)
+
+#define ISpObjectTokenCategory_GetStringValue(This,pszValueName,ppszValue) \
+ (This)->lpVtbl -> GetStringValue(This,pszValueName,ppszValue)
+
+#define ISpObjectTokenCategory_SetDWORD(This,pszValueName,dwValue) \
+ (This)->lpVtbl -> SetDWORD(This,pszValueName,dwValue)
+
+#define ISpObjectTokenCategory_GetDWORD(This,pszValueName,pdwValue) \
+ (This)->lpVtbl -> GetDWORD(This,pszValueName,pdwValue)
+
+#define ISpObjectTokenCategory_OpenKey(This,pszSubKeyName,ppSubKey) \
+ (This)->lpVtbl -> OpenKey(This,pszSubKeyName,ppSubKey)
+
+#define ISpObjectTokenCategory_CreateKey(This,pszSubKey,ppSubKey) \
+ (This)->lpVtbl -> CreateKey(This,pszSubKey,ppSubKey)
+
+#define ISpObjectTokenCategory_DeleteKey(This,pszSubKey) \
+ (This)->lpVtbl -> DeleteKey(This,pszSubKey)
+
+#define ISpObjectTokenCategory_DeleteValue(This,pszValueName) \
+ (This)->lpVtbl -> DeleteValue(This,pszValueName)
+
+#define ISpObjectTokenCategory_EnumKeys(This,Index,ppszSubKeyName) \
+ (This)->lpVtbl -> EnumKeys(This,Index,ppszSubKeyName)
+
+#define ISpObjectTokenCategory_EnumValues(This,Index,ppszValueName) \
+ (This)->lpVtbl -> EnumValues(This,Index,ppszValueName)
+
+
+#define ISpObjectTokenCategory_SetId(This,pszCategoryId,fCreateIfNotExist) \
+ (This)->lpVtbl -> SetId(This,pszCategoryId,fCreateIfNotExist)
+
+#define ISpObjectTokenCategory_GetId(This,ppszCoMemCategoryId) \
+ (This)->lpVtbl -> GetId(This,ppszCoMemCategoryId)
+
+#define ISpObjectTokenCategory_GetDataKey(This,spdkl,ppDataKey) \
+ (This)->lpVtbl -> GetDataKey(This,spdkl,ppDataKey)
+
+#define ISpObjectTokenCategory_EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum) \
+ (This)->lpVtbl -> EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
+
+#define ISpObjectTokenCategory_SetDefaultTokenId(This,pszTokenId) \
+ (This)->lpVtbl -> SetDefaultTokenId(This,pszTokenId)
+
+#define ISpObjectTokenCategory_GetDefaultTokenId(This,ppszCoMemTokenId) \
+ (This)->lpVtbl -> GetDefaultTokenId(This,ppszCoMemTokenId)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_SetId_Proxy(
+ ISpObjectTokenCategory * This,
+ /* [in] */ const WCHAR *pszCategoryId,
+ BOOL fCreateIfNotExist);
+
+
+void __RPC_STUB ISpObjectTokenCategory_SetId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetId_Proxy(
+ ISpObjectTokenCategory * This,
+ /* [out] */ WCHAR **ppszCoMemCategoryId);
+
+
+void __RPC_STUB ISpObjectTokenCategory_GetId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetDataKey_Proxy(
+ ISpObjectTokenCategory * This,
+ SPDATAKEYLOCATION spdkl,
+ ISpDataKey **ppDataKey);
+
+
+void __RPC_STUB ISpObjectTokenCategory_GetDataKey_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_EnumTokens_Proxy(
+ ISpObjectTokenCategory * This,
+ /* [string][in] */ const WCHAR *pzsReqAttribs,
+ /* [string][in] */ const WCHAR *pszOptAttribs,
+ /* [out] */ IEnumSpObjectTokens **ppEnum);
+
+
+void __RPC_STUB ISpObjectTokenCategory_EnumTokens_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_SetDefaultTokenId_Proxy(
+ ISpObjectTokenCategory * This,
+ /* [in] */ const WCHAR *pszTokenId);
+
+
+void __RPC_STUB ISpObjectTokenCategory_SetDefaultTokenId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetDefaultTokenId_Proxy(
+ ISpObjectTokenCategory * This,
+ /* [out] */ WCHAR **ppszCoMemTokenId);
+
+
+void __RPC_STUB ISpObjectTokenCategory_GetDefaultTokenId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpObjectTokenCategory_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpObjectToken_INTERFACE_DEFINED__
+#define __ISpObjectToken_INTERFACE_DEFINED__
+
+/* interface ISpObjectToken */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpObjectToken;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("14056589-E16C-11D2-BB90-00C04F8EE6C0")
+ ISpObjectToken : public ISpDataKey
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetId(
+ const WCHAR *pszCategoryId,
+ const WCHAR *pszTokenId,
+ BOOL fCreateIfNotExist) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetId(
+ WCHAR **ppszCoMemTokenId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCategory(
+ ISpObjectTokenCategory **ppTokenCategory) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateInstance(
+ /* [in] */ IUnknown *pUnkOuter,
+ /* [in] */ DWORD dwClsContext,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
+ /* [in] */ REFCLSID clsidCaller,
+ /* [in] */ const WCHAR *pszValueName,
+ /* [in] */ const WCHAR *pszFileNameSpecifier,
+ /* [in] */ ULONG nFolder,
+ /* [out] */ WCHAR **ppszFilePath) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
+ /* [in] */ REFCLSID clsidCaller,
+ /* [in] */ const WCHAR *pszKeyName,
+ /* [in] */ BOOL fDeleteFile) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Remove(
+ const CLSID *pclsidCaller) = 0;
+
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE IsUISupported(
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [in] */ IUnknown *punkObject,
+ /* [out] */ BOOL *pfSupported) = 0;
+
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE DisplayUI(
+ /* [in] */ HWND hwndParent,
+ /* [in] */ const WCHAR *pszTitle,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [in] */ IUnknown *punkObject) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
+ /* [in] */ const WCHAR *pszAttributes,
+ /* [out] */ BOOL *pfMatches) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpObjectTokenVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpObjectToken * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpObjectToken * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpObjectToken * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetData )(
+ ISpObjectToken * This,
+ const WCHAR *pszValueName,
+ ULONG cbData,
+ const BYTE *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *GetData )(
+ ISpObjectToken * This,
+ const WCHAR *pszValueName,
+ ULONG *pcbData,
+ BYTE *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetStringValue )(
+ ISpObjectToken * This,
+ const WCHAR *pszValueName,
+ const WCHAR *pszValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStringValue )(
+ ISpObjectToken * This,
+ const WCHAR *pszValueName,
+ WCHAR **ppszValue);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDWORD )(
+ ISpObjectToken * This,
+ const WCHAR *pszValueName,
+ DWORD dwValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDWORD )(
+ ISpObjectToken * This,
+ const WCHAR *pszValueName,
+ DWORD *pdwValue);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenKey )(
+ ISpObjectToken * This,
+ const WCHAR *pszSubKeyName,
+ ISpDataKey **ppSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateKey )(
+ ISpObjectToken * This,
+ const WCHAR *pszSubKey,
+ ISpDataKey **ppSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *DeleteKey )(
+ ISpObjectToken * This,
+ const WCHAR *pszSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *DeleteValue )(
+ ISpObjectToken * This,
+ const WCHAR *pszValueName);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumKeys )(
+ ISpObjectToken * This,
+ ULONG Index,
+ WCHAR **ppszSubKeyName);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumValues )(
+ ISpObjectToken * This,
+ ULONG Index,
+ WCHAR **ppszValueName);
+
+ HRESULT ( STDMETHODCALLTYPE *SetId )(
+ ISpObjectToken * This,
+ const WCHAR *pszCategoryId,
+ const WCHAR *pszTokenId,
+ BOOL fCreateIfNotExist);
+
+ HRESULT ( STDMETHODCALLTYPE *GetId )(
+ ISpObjectToken * This,
+ WCHAR **ppszCoMemTokenId);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCategory )(
+ ISpObjectToken * This,
+ ISpObjectTokenCategory **ppTokenCategory);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateInstance )(
+ ISpObjectToken * This,
+ /* [in] */ IUnknown *pUnkOuter,
+ /* [in] */ DWORD dwClsContext,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStorageFileName )(
+ ISpObjectToken * This,
+ /* [in] */ REFCLSID clsidCaller,
+ /* [in] */ const WCHAR *pszValueName,
+ /* [in] */ const WCHAR *pszFileNameSpecifier,
+ /* [in] */ ULONG nFolder,
+ /* [out] */ WCHAR **ppszFilePath);
+
+ HRESULT ( STDMETHODCALLTYPE *RemoveStorageFileName )(
+ ISpObjectToken * This,
+ /* [in] */ REFCLSID clsidCaller,
+ /* [in] */ const WCHAR *pszKeyName,
+ /* [in] */ BOOL fDeleteFile);
+
+ HRESULT ( STDMETHODCALLTYPE *Remove )(
+ ISpObjectToken * This,
+ const CLSID *pclsidCaller);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *IsUISupported )(
+ ISpObjectToken * This,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [in] */ IUnknown *punkObject,
+ /* [out] */ BOOL *pfSupported);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *DisplayUI )(
+ ISpObjectToken * This,
+ /* [in] */ HWND hwndParent,
+ /* [in] */ const WCHAR *pszTitle,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [in] */ IUnknown *punkObject);
+
+ HRESULT ( STDMETHODCALLTYPE *MatchesAttributes )(
+ ISpObjectToken * This,
+ /* [in] */ const WCHAR *pszAttributes,
+ /* [out] */ BOOL *pfMatches);
+
+ END_INTERFACE
+ } ISpObjectTokenVtbl;
+
+ interface ISpObjectToken
+ {
+ CONST_VTBL struct ISpObjectTokenVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpObjectToken_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpObjectToken_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpObjectToken_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpObjectToken_SetData(This,pszValueName,cbData,pData) \
+ (This)->lpVtbl -> SetData(This,pszValueName,cbData,pData)
+
+#define ISpObjectToken_GetData(This,pszValueName,pcbData,pData) \
+ (This)->lpVtbl -> GetData(This,pszValueName,pcbData,pData)
+
+#define ISpObjectToken_SetStringValue(This,pszValueName,pszValue) \
+ (This)->lpVtbl -> SetStringValue(This,pszValueName,pszValue)
+
+#define ISpObjectToken_GetStringValue(This,pszValueName,ppszValue) \
+ (This)->lpVtbl -> GetStringValue(This,pszValueName,ppszValue)
+
+#define ISpObjectToken_SetDWORD(This,pszValueName,dwValue) \
+ (This)->lpVtbl -> SetDWORD(This,pszValueName,dwValue)
+
+#define ISpObjectToken_GetDWORD(This,pszValueName,pdwValue) \
+ (This)->lpVtbl -> GetDWORD(This,pszValueName,pdwValue)
+
+#define ISpObjectToken_OpenKey(This,pszSubKeyName,ppSubKey) \
+ (This)->lpVtbl -> OpenKey(This,pszSubKeyName,ppSubKey)
+
+#define ISpObjectToken_CreateKey(This,pszSubKey,ppSubKey) \
+ (This)->lpVtbl -> CreateKey(This,pszSubKey,ppSubKey)
+
+#define ISpObjectToken_DeleteKey(This,pszSubKey) \
+ (This)->lpVtbl -> DeleteKey(This,pszSubKey)
+
+#define ISpObjectToken_DeleteValue(This,pszValueName) \
+ (This)->lpVtbl -> DeleteValue(This,pszValueName)
+
+#define ISpObjectToken_EnumKeys(This,Index,ppszSubKeyName) \
+ (This)->lpVtbl -> EnumKeys(This,Index,ppszSubKeyName)
+
+#define ISpObjectToken_EnumValues(This,Index,ppszValueName) \
+ (This)->lpVtbl -> EnumValues(This,Index,ppszValueName)
+
+
+#define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) \
+ (This)->lpVtbl -> SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
+
+#define ISpObjectToken_GetId(This,ppszCoMemTokenId) \
+ (This)->lpVtbl -> GetId(This,ppszCoMemTokenId)
+
+#define ISpObjectToken_GetCategory(This,ppTokenCategory) \
+ (This)->lpVtbl -> GetCategory(This,ppTokenCategory)
+
+#define ISpObjectToken_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) \
+ (This)->lpVtbl -> CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
+
+#define ISpObjectToken_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) \
+ (This)->lpVtbl -> GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
+
+#define ISpObjectToken_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) \
+ (This)->lpVtbl -> RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
+
+#define ISpObjectToken_Remove(This,pclsidCaller) \
+ (This)->lpVtbl -> Remove(This,pclsidCaller)
+
+#define ISpObjectToken_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) \
+ (This)->lpVtbl -> IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
+
+#define ISpObjectToken_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) \
+ (This)->lpVtbl -> DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
+
+#define ISpObjectToken_MatchesAttributes(This,pszAttributes,pfMatches) \
+ (This)->lpVtbl -> MatchesAttributes(This,pszAttributes,pfMatches)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectToken_SetId_Proxy(
+ ISpObjectToken * This,
+ const WCHAR *pszCategoryId,
+ const WCHAR *pszTokenId,
+ BOOL fCreateIfNotExist);
+
+
+void __RPC_STUB ISpObjectToken_SetId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectToken_GetId_Proxy(
+ ISpObjectToken * This,
+ WCHAR **ppszCoMemTokenId);
+
+
+void __RPC_STUB ISpObjectToken_GetId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectToken_GetCategory_Proxy(
+ ISpObjectToken * This,
+ ISpObjectTokenCategory **ppTokenCategory);
+
+
+void __RPC_STUB ISpObjectToken_GetCategory_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectToken_CreateInstance_Proxy(
+ ISpObjectToken * This,
+ /* [in] */ IUnknown *pUnkOuter,
+ /* [in] */ DWORD dwClsContext,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+
+void __RPC_STUB ISpObjectToken_CreateInstance_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectToken_GetStorageFileName_Proxy(
+ ISpObjectToken * This,
+ /* [in] */ REFCLSID clsidCaller,
+ /* [in] */ const WCHAR *pszValueName,
+ /* [in] */ const WCHAR *pszFileNameSpecifier,
+ /* [in] */ ULONG nFolder,
+ /* [out] */ WCHAR **ppszFilePath);
+
+
+void __RPC_STUB ISpObjectToken_GetStorageFileName_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectToken_RemoveStorageFileName_Proxy(
+ ISpObjectToken * This,
+ /* [in] */ REFCLSID clsidCaller,
+ /* [in] */ const WCHAR *pszKeyName,
+ /* [in] */ BOOL fDeleteFile);
+
+
+void __RPC_STUB ISpObjectToken_RemoveStorageFileName_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectToken_Remove_Proxy(
+ ISpObjectToken * This,
+ const CLSID *pclsidCaller);
+
+
+void __RPC_STUB ISpObjectToken_Remove_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [local] */ HRESULT STDMETHODCALLTYPE ISpObjectToken_IsUISupported_Proxy(
+ ISpObjectToken * This,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [in] */ IUnknown *punkObject,
+ /* [out] */ BOOL *pfSupported);
+
+
+void __RPC_STUB ISpObjectToken_IsUISupported_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [local] */ HRESULT STDMETHODCALLTYPE ISpObjectToken_DisplayUI_Proxy(
+ ISpObjectToken * This,
+ /* [in] */ HWND hwndParent,
+ /* [in] */ const WCHAR *pszTitle,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [in] */ IUnknown *punkObject);
+
+
+void __RPC_STUB ISpObjectToken_DisplayUI_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectToken_MatchesAttributes_Proxy(
+ ISpObjectToken * This,
+ /* [in] */ const WCHAR *pszAttributes,
+ /* [out] */ BOOL *pfMatches);
+
+
+void __RPC_STUB ISpObjectToken_MatchesAttributes_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpObjectToken_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpObjectTokenInit_INTERFACE_DEFINED__
+#define __ISpObjectTokenInit_INTERFACE_DEFINED__
+
+/* interface ISpObjectTokenInit */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpObjectTokenInit;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("B8AAB0CF-346F-49D8-9499-C8B03F161D51")
+ ISpObjectTokenInit : public ISpObjectToken
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE InitFromDataKey(
+ /* [in] */ const WCHAR *pszCategoryId,
+ /* [in] */ const WCHAR *pszTokenId,
+ /* [in] */ ISpDataKey *pDataKey) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpObjectTokenInitVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpObjectTokenInit * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpObjectTokenInit * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpObjectTokenInit * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetData )(
+ ISpObjectTokenInit * This,
+ const WCHAR *pszValueName,
+ ULONG cbData,
+ const BYTE *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *GetData )(
+ ISpObjectTokenInit * This,
+ const WCHAR *pszValueName,
+ ULONG *pcbData,
+ BYTE *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetStringValue )(
+ ISpObjectTokenInit * This,
+ const WCHAR *pszValueName,
+ const WCHAR *pszValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStringValue )(
+ ISpObjectTokenInit * This,
+ const WCHAR *pszValueName,
+ WCHAR **ppszValue);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDWORD )(
+ ISpObjectTokenInit * This,
+ const WCHAR *pszValueName,
+ DWORD dwValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDWORD )(
+ ISpObjectTokenInit * This,
+ const WCHAR *pszValueName,
+ DWORD *pdwValue);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenKey )(
+ ISpObjectTokenInit * This,
+ const WCHAR *pszSubKeyName,
+ ISpDataKey **ppSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateKey )(
+ ISpObjectTokenInit * This,
+ const WCHAR *pszSubKey,
+ ISpDataKey **ppSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *DeleteKey )(
+ ISpObjectTokenInit * This,
+ const WCHAR *pszSubKey);
+
+ HRESULT ( STDMETHODCALLTYPE *DeleteValue )(
+ ISpObjectTokenInit * This,
+ const WCHAR *pszValueName);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumKeys )(
+ ISpObjectTokenInit * This,
+ ULONG Index,
+ WCHAR **ppszSubKeyName);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumValues )(
+ ISpObjectTokenInit * This,
+ ULONG Index,
+ WCHAR **ppszValueName);
+
+ HRESULT ( STDMETHODCALLTYPE *SetId )(
+ ISpObjectTokenInit * This,
+ const WCHAR *pszCategoryId,
+ const WCHAR *pszTokenId,
+ BOOL fCreateIfNotExist);
+
+ HRESULT ( STDMETHODCALLTYPE *GetId )(
+ ISpObjectTokenInit * This,
+ WCHAR **ppszCoMemTokenId);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCategory )(
+ ISpObjectTokenInit * This,
+ ISpObjectTokenCategory **ppTokenCategory);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateInstance )(
+ ISpObjectTokenInit * This,
+ /* [in] */ IUnknown *pUnkOuter,
+ /* [in] */ DWORD dwClsContext,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStorageFileName )(
+ ISpObjectTokenInit * This,
+ /* [in] */ REFCLSID clsidCaller,
+ /* [in] */ const WCHAR *pszValueName,
+ /* [in] */ const WCHAR *pszFileNameSpecifier,
+ /* [in] */ ULONG nFolder,
+ /* [out] */ WCHAR **ppszFilePath);
+
+ HRESULT ( STDMETHODCALLTYPE *RemoveStorageFileName )(
+ ISpObjectTokenInit * This,
+ /* [in] */ REFCLSID clsidCaller,
+ /* [in] */ const WCHAR *pszKeyName,
+ /* [in] */ BOOL fDeleteFile);
+
+ HRESULT ( STDMETHODCALLTYPE *Remove )(
+ ISpObjectTokenInit * This,
+ const CLSID *pclsidCaller);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *IsUISupported )(
+ ISpObjectTokenInit * This,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [in] */ IUnknown *punkObject,
+ /* [out] */ BOOL *pfSupported);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *DisplayUI )(
+ ISpObjectTokenInit * This,
+ /* [in] */ HWND hwndParent,
+ /* [in] */ const WCHAR *pszTitle,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [in] */ IUnknown *punkObject);
+
+ HRESULT ( STDMETHODCALLTYPE *MatchesAttributes )(
+ ISpObjectTokenInit * This,
+ /* [in] */ const WCHAR *pszAttributes,
+ /* [out] */ BOOL *pfMatches);
+
+ HRESULT ( STDMETHODCALLTYPE *InitFromDataKey )(
+ ISpObjectTokenInit * This,
+ /* [in] */ const WCHAR *pszCategoryId,
+ /* [in] */ const WCHAR *pszTokenId,
+ /* [in] */ ISpDataKey *pDataKey);
+
+ END_INTERFACE
+ } ISpObjectTokenInitVtbl;
+
+ interface ISpObjectTokenInit
+ {
+ CONST_VTBL struct ISpObjectTokenInitVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpObjectTokenInit_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpObjectTokenInit_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpObjectTokenInit_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpObjectTokenInit_SetData(This,pszValueName,cbData,pData) \
+ (This)->lpVtbl -> SetData(This,pszValueName,cbData,pData)
+
+#define ISpObjectTokenInit_GetData(This,pszValueName,pcbData,pData) \
+ (This)->lpVtbl -> GetData(This,pszValueName,pcbData,pData)
+
+#define ISpObjectTokenInit_SetStringValue(This,pszValueName,pszValue) \
+ (This)->lpVtbl -> SetStringValue(This,pszValueName,pszValue)
+
+#define ISpObjectTokenInit_GetStringValue(This,pszValueName,ppszValue) \
+ (This)->lpVtbl -> GetStringValue(This,pszValueName,ppszValue)
+
+#define ISpObjectTokenInit_SetDWORD(This,pszValueName,dwValue) \
+ (This)->lpVtbl -> SetDWORD(This,pszValueName,dwValue)
+
+#define ISpObjectTokenInit_GetDWORD(This,pszValueName,pdwValue) \
+ (This)->lpVtbl -> GetDWORD(This,pszValueName,pdwValue)
+
+#define ISpObjectTokenInit_OpenKey(This,pszSubKeyName,ppSubKey) \
+ (This)->lpVtbl -> OpenKey(This,pszSubKeyName,ppSubKey)
+
+#define ISpObjectTokenInit_CreateKey(This,pszSubKey,ppSubKey) \
+ (This)->lpVtbl -> CreateKey(This,pszSubKey,ppSubKey)
+
+#define ISpObjectTokenInit_DeleteKey(This,pszSubKey) \
+ (This)->lpVtbl -> DeleteKey(This,pszSubKey)
+
+#define ISpObjectTokenInit_DeleteValue(This,pszValueName) \
+ (This)->lpVtbl -> DeleteValue(This,pszValueName)
+
+#define ISpObjectTokenInit_EnumKeys(This,Index,ppszSubKeyName) \
+ (This)->lpVtbl -> EnumKeys(This,Index,ppszSubKeyName)
+
+#define ISpObjectTokenInit_EnumValues(This,Index,ppszValueName) \
+ (This)->lpVtbl -> EnumValues(This,Index,ppszValueName)
+
+
+#define ISpObjectTokenInit_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) \
+ (This)->lpVtbl -> SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
+
+#define ISpObjectTokenInit_GetId(This,ppszCoMemTokenId) \
+ (This)->lpVtbl -> GetId(This,ppszCoMemTokenId)
+
+#define ISpObjectTokenInit_GetCategory(This,ppTokenCategory) \
+ (This)->lpVtbl -> GetCategory(This,ppTokenCategory)
+
+#define ISpObjectTokenInit_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) \
+ (This)->lpVtbl -> CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
+
+#define ISpObjectTokenInit_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) \
+ (This)->lpVtbl -> GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
+
+#define ISpObjectTokenInit_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) \
+ (This)->lpVtbl -> RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
+
+#define ISpObjectTokenInit_Remove(This,pclsidCaller) \
+ (This)->lpVtbl -> Remove(This,pclsidCaller)
+
+#define ISpObjectTokenInit_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) \
+ (This)->lpVtbl -> IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
+
+#define ISpObjectTokenInit_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) \
+ (This)->lpVtbl -> DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
+
+#define ISpObjectTokenInit_MatchesAttributes(This,pszAttributes,pfMatches) \
+ (This)->lpVtbl -> MatchesAttributes(This,pszAttributes,pfMatches)
+
+
+#define ISpObjectTokenInit_InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey) \
+ (This)->lpVtbl -> InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectTokenInit_InitFromDataKey_Proxy(
+ ISpObjectTokenInit * This,
+ /* [in] */ const WCHAR *pszCategoryId,
+ /* [in] */ const WCHAR *pszTokenId,
+ /* [in] */ ISpDataKey *pDataKey);
+
+
+void __RPC_STUB ISpObjectTokenInit_InitFromDataKey_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpObjectTokenInit_INTERFACE_DEFINED__ */
+
+
+#ifndef __IEnumSpObjectTokens_INTERFACE_DEFINED__
+#define __IEnumSpObjectTokens_INTERFACE_DEFINED__
+
+/* interface IEnumSpObjectTokens */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_IEnumSpObjectTokens;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("06B64F9E-7FDA-11D2-B4F2-00C04F797396")
+ IEnumSpObjectTokens : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE Next(
+ /* [in] */ ULONG celt,
+ /* [length_is][size_is][out] */ ISpObjectToken **pelt,
+ /* [out] */ ULONG *pceltFetched) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Skip(
+ /* [in] */ ULONG celt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Clone(
+ /* [out] */ IEnumSpObjectTokens **ppEnum) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Item(
+ /* [in] */ ULONG Index,
+ /* [out] */ ISpObjectToken **ppToken) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCount(
+ /* [out] */ ULONG *pCount) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IEnumSpObjectTokensVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IEnumSpObjectTokens * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IEnumSpObjectTokens * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IEnumSpObjectTokens * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Next )(
+ IEnumSpObjectTokens * This,
+ /* [in] */ ULONG celt,
+ /* [length_is][size_is][out] */ ISpObjectToken **pelt,
+ /* [out] */ ULONG *pceltFetched);
+
+ HRESULT ( STDMETHODCALLTYPE *Skip )(
+ IEnumSpObjectTokens * This,
+ /* [in] */ ULONG celt);
+
+ HRESULT ( STDMETHODCALLTYPE *Reset )(
+ IEnumSpObjectTokens * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Clone )(
+ IEnumSpObjectTokens * This,
+ /* [out] */ IEnumSpObjectTokens **ppEnum);
+
+ HRESULT ( STDMETHODCALLTYPE *Item )(
+ IEnumSpObjectTokens * This,
+ /* [in] */ ULONG Index,
+ /* [out] */ ISpObjectToken **ppToken);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCount )(
+ IEnumSpObjectTokens * This,
+ /* [out] */ ULONG *pCount);
+
+ END_INTERFACE
+ } IEnumSpObjectTokensVtbl;
+
+ interface IEnumSpObjectTokens
+ {
+ CONST_VTBL struct IEnumSpObjectTokensVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IEnumSpObjectTokens_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IEnumSpObjectTokens_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define IEnumSpObjectTokens_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define IEnumSpObjectTokens_Next(This,celt,pelt,pceltFetched) \
+ (This)->lpVtbl -> Next(This,celt,pelt,pceltFetched)
+
+#define IEnumSpObjectTokens_Skip(This,celt) \
+ (This)->lpVtbl -> Skip(This,celt)
+
+#define IEnumSpObjectTokens_Reset(This) \
+ (This)->lpVtbl -> Reset(This)
+
+#define IEnumSpObjectTokens_Clone(This,ppEnum) \
+ (This)->lpVtbl -> Clone(This,ppEnum)
+
+#define IEnumSpObjectTokens_Item(This,Index,ppToken) \
+ (This)->lpVtbl -> Item(This,Index,ppToken)
+
+#define IEnumSpObjectTokens_GetCount(This,pCount) \
+ (This)->lpVtbl -> GetCount(This,pCount)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Next_Proxy(
+ IEnumSpObjectTokens * This,
+ /* [in] */ ULONG celt,
+ /* [length_is][size_is][out] */ ISpObjectToken **pelt,
+ /* [out] */ ULONG *pceltFetched);
+
+
+void __RPC_STUB IEnumSpObjectTokens_Next_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Skip_Proxy(
+ IEnumSpObjectTokens * This,
+ /* [in] */ ULONG celt);
+
+
+void __RPC_STUB IEnumSpObjectTokens_Skip_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Reset_Proxy(
+ IEnumSpObjectTokens * This);
+
+
+void __RPC_STUB IEnumSpObjectTokens_Reset_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Clone_Proxy(
+ IEnumSpObjectTokens * This,
+ /* [out] */ IEnumSpObjectTokens **ppEnum);
+
+
+void __RPC_STUB IEnumSpObjectTokens_Clone_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Item_Proxy(
+ IEnumSpObjectTokens * This,
+ /* [in] */ ULONG Index,
+ /* [out] */ ISpObjectToken **ppToken);
+
+
+void __RPC_STUB IEnumSpObjectTokens_Item_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_GetCount_Proxy(
+ IEnumSpObjectTokens * This,
+ /* [out] */ ULONG *pCount);
+
+
+void __RPC_STUB IEnumSpObjectTokens_GetCount_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __IEnumSpObjectTokens_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpObjectWithToken_INTERFACE_DEFINED__
+#define __ISpObjectWithToken_INTERFACE_DEFINED__
+
+/* interface ISpObjectWithToken */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpObjectWithToken;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("5B559F40-E952-11D2-BB91-00C04F8EE6C0")
+ ISpObjectWithToken : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetObjectToken(
+ ISpObjectToken *pToken) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetObjectToken(
+ ISpObjectToken **ppToken) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpObjectWithTokenVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpObjectWithToken * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpObjectWithToken * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpObjectWithToken * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetObjectToken )(
+ ISpObjectWithToken * This,
+ ISpObjectToken *pToken);
+
+ HRESULT ( STDMETHODCALLTYPE *GetObjectToken )(
+ ISpObjectWithToken * This,
+ ISpObjectToken **ppToken);
+
+ END_INTERFACE
+ } ISpObjectWithTokenVtbl;
+
+ interface ISpObjectWithToken
+ {
+ CONST_VTBL struct ISpObjectWithTokenVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpObjectWithToken_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpObjectWithToken_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpObjectWithToken_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpObjectWithToken_SetObjectToken(This,pToken) \
+ (This)->lpVtbl -> SetObjectToken(This,pToken)
+
+#define ISpObjectWithToken_GetObjectToken(This,ppToken) \
+ (This)->lpVtbl -> GetObjectToken(This,ppToken)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectWithToken_SetObjectToken_Proxy(
+ ISpObjectWithToken * This,
+ ISpObjectToken *pToken);
+
+
+void __RPC_STUB ISpObjectWithToken_SetObjectToken_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectWithToken_GetObjectToken_Proxy(
+ ISpObjectWithToken * This,
+ ISpObjectToken **ppToken);
+
+
+void __RPC_STUB ISpObjectWithToken_GetObjectToken_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpObjectWithToken_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpResourceManager_INTERFACE_DEFINED__
+#define __ISpResourceManager_INTERFACE_DEFINED__
+
+/* interface ISpResourceManager */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpResourceManager;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("93384E18-5014-43D5-ADBB-A78E055926BD")
+ ISpResourceManager : public IServiceProvider
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetObject(
+ /* [in] */ REFGUID guidServiceId,
+ /* [in] */ IUnknown *pUnkObject) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetObject(
+ /* [in] */ REFGUID guidServiceId,
+ /* [in] */ REFCLSID ObjectCLSID,
+ /* [in] */ REFIID ObjectIID,
+ /* [in] */ BOOL fReleaseWhenLastExternalRefReleased,
+ /* [iid_is][out] */ void **ppObject) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpResourceManagerVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpResourceManager * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpResourceManager * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpResourceManager * This);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *QueryService )(
+ ISpResourceManager * This,
+ /* [in] */ REFGUID guidService,
+ /* [in] */ REFIID riid,
+ /* [out] */ void **ppvObject);
+
+ HRESULT ( STDMETHODCALLTYPE *SetObject )(
+ ISpResourceManager * This,
+ /* [in] */ REFGUID guidServiceId,
+ /* [in] */ IUnknown *pUnkObject);
+
+ HRESULT ( STDMETHODCALLTYPE *GetObject )(
+ ISpResourceManager * This,
+ /* [in] */ REFGUID guidServiceId,
+ /* [in] */ REFCLSID ObjectCLSID,
+ /* [in] */ REFIID ObjectIID,
+ /* [in] */ BOOL fReleaseWhenLastExternalRefReleased,
+ /* [iid_is][out] */ void **ppObject);
+
+ END_INTERFACE
+ } ISpResourceManagerVtbl;
+
+ interface ISpResourceManager
+ {
+ CONST_VTBL struct ISpResourceManagerVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpResourceManager_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpResourceManager_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpResourceManager_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpResourceManager_QueryService(This,guidService,riid,ppvObject) \
+ (This)->lpVtbl -> QueryService(This,guidService,riid,ppvObject)
+
+
+#define ISpResourceManager_SetObject(This,guidServiceId,pUnkObject) \
+ (This)->lpVtbl -> SetObject(This,guidServiceId,pUnkObject)
+
+#define ISpResourceManager_GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject) \
+ (This)->lpVtbl -> GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpResourceManager_SetObject_Proxy(
+ ISpResourceManager * This,
+ /* [in] */ REFGUID guidServiceId,
+ /* [in] */ IUnknown *pUnkObject);
+
+
+void __RPC_STUB ISpResourceManager_SetObject_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpResourceManager_GetObject_Proxy(
+ ISpResourceManager * This,
+ /* [in] */ REFGUID guidServiceId,
+ /* [in] */ REFCLSID ObjectCLSID,
+ /* [in] */ REFIID ObjectIID,
+ /* [in] */ BOOL fReleaseWhenLastExternalRefReleased,
+ /* [iid_is][out] */ void **ppObject);
+
+
+void __RPC_STUB ISpResourceManager_GetObject_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpResourceManager_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapi_0262 */
+/* [local] */
+
+typedef /* [hidden] */
+enum SPEVENTLPARAMTYPE
+ { SPET_LPARAM_IS_UNDEFINED = 0,
+ SPET_LPARAM_IS_TOKEN = SPET_LPARAM_IS_UNDEFINED + 1,
+ SPET_LPARAM_IS_OBJECT = SPET_LPARAM_IS_TOKEN + 1,
+ SPET_LPARAM_IS_POINTER = SPET_LPARAM_IS_OBJECT + 1,
+ SPET_LPARAM_IS_STRING = SPET_LPARAM_IS_POINTER + 1
+ } SPEVENTLPARAMTYPE;
+
+typedef /* [hidden] */
+enum SPEVENTENUM
+ { SPEI_UNDEFINED = 0,
+ SPEI_START_INPUT_STREAM = 1,
+ SPEI_END_INPUT_STREAM = 2,
+ SPEI_VOICE_CHANGE = 3,
+ SPEI_TTS_BOOKMARK = 4,
+ SPEI_WORD_BOUNDARY = 5,
+ SPEI_PHONEME = 6,
+ SPEI_SENTENCE_BOUNDARY = 7,
+ SPEI_VISEME = 8,
+ SPEI_TTS_AUDIO_LEVEL = 9,
+ SPEI_TTS_PRIVATE = 15,
+ SPEI_MIN_TTS = 1,
+ SPEI_MAX_TTS = 15,
+ SPEI_END_SR_STREAM = 34,
+ SPEI_SOUND_START = 35,
+ SPEI_SOUND_END = 36,
+ SPEI_PHRASE_START = 37,
+ SPEI_RECOGNITION = 38,
+ SPEI_HYPOTHESIS = 39,
+ SPEI_SR_BOOKMARK = 40,
+ SPEI_PROPERTY_NUM_CHANGE = 41,
+ SPEI_PROPERTY_STRING_CHANGE = 42,
+ SPEI_FALSE_RECOGNITION = 43,
+ SPEI_INTERFERENCE = 44,
+ SPEI_REQUEST_UI = 45,
+ SPEI_RECO_STATE_CHANGE = 46,
+ SPEI_ADAPTATION = 47,
+ SPEI_START_SR_STREAM = 48,
+ SPEI_RECO_OTHER_CONTEXT = 49,
+ SPEI_SR_AUDIO_LEVEL = 50,
+ SPEI_SR_PRIVATE = 52,
+ SPEI_MIN_SR = 34,
+ SPEI_MAX_SR = 52,
+ SPEI_RESERVED1 = 30,
+ SPEI_RESERVED2 = 33,
+ SPEI_RESERVED3 = 63
+ } SPEVENTENUM;
+
+#define SPFEI_FLAGCHECK ( (1ui64 << SPEI_RESERVED1) | (1ui64 << SPEI_RESERVED2) )
+#define SPFEI_ALL_TTS_EVENTS (0x000000000000FFFEui64 | SPFEI_FLAGCHECK)
+#define SPFEI_ALL_SR_EVENTS (0x001FFFFC00000000ui64 | SPFEI_FLAGCHECK)
+#define SPFEI_ALL_EVENTS 0xEFFFFFFFFFFFFFFFui64
+#define SPFEI(SPEI_ord) ((1ui64 << SPEI_ord) | SPFEI_FLAGCHECK)
+#if 0
+typedef /* [hidden][restricted] */ struct SPEVENT
+ {
+ WORD eEventId;
+ WORD elParamType;
+ ULONG ulStreamNum;
+ ULONGLONG ullAudioStreamOffset;
+ WPARAM wParam;
+ LPARAM lParam;
+ } SPEVENT;
+
+typedef /* [hidden][restricted] */ struct SPSERIALIZEDEVENT
+ {
+ WORD eEventId;
+ WORD elParamType;
+ ULONG ulStreamNum;
+ ULONGLONG ullAudioStreamOffset;
+ ULONG SerializedwParam;
+ LONG SerializedlParam;
+ } SPSERIALIZEDEVENT;
+
+typedef /* [hidden][restricted] */ struct SPSERIALIZEDEVENT64
+ {
+ WORD eEventId;
+ WORD elParamType;
+ ULONG ulStreamNum;
+ ULONGLONG ullAudioStreamOffset;
+ ULONGLONG SerializedwParam;
+ LONGLONG SerializedlParam;
+ } SPSERIALIZEDEVENT64;
+
+#else
+typedef struct SPEVENT
+{
+ SPEVENTENUM eEventId : 16;
+ SPEVENTLPARAMTYPE elParamType : 16;
+ ULONG ulStreamNum;
+ ULONGLONG ullAudioStreamOffset;
+ WPARAM wParam;
+ LPARAM lParam;
+} SPEVENT;
+typedef struct SPSERIALIZEDEVENT
+{
+ SPEVENTENUM eEventId : 16;
+ SPEVENTLPARAMTYPE elParamType : 16;
+ ULONG ulStreamNum;
+ ULONGLONG ullAudioStreamOffset;
+ ULONG SerializedwParam;
+ LONG SerializedlParam;
+} SPSERIALIZEDEVENT;
+typedef struct SPSERIALIZEDEVENT64
+{
+ SPEVENTENUM eEventId : 16;
+ SPEVENTLPARAMTYPE elParamType : 16;
+ ULONG ulStreamNum;
+ ULONGLONG ullAudioStreamOffset;
+ ULONGLONG SerializedwParam;
+ LONGLONG SerializedlParam;
+} SPSERIALIZEDEVENT64;
+#endif
+typedef /* [hidden] */
+enum SPINTERFERENCE
+ { SPINTERFERENCE_NONE = 0,
+ SPINTERFERENCE_NOISE = SPINTERFERENCE_NONE + 1,
+ SPINTERFERENCE_NOSIGNAL = SPINTERFERENCE_NOISE + 1,
+ SPINTERFERENCE_TOOLOUD = SPINTERFERENCE_NOSIGNAL + 1,
+ SPINTERFERENCE_TOOQUIET = SPINTERFERENCE_TOOLOUD + 1,
+ SPINTERFERENCE_TOOFAST = SPINTERFERENCE_TOOQUIET + 1,
+ SPINTERFERENCE_TOOSLOW = SPINTERFERENCE_TOOFAST + 1
+ } SPINTERFERENCE;
+
+typedef /* [hidden] */
+enum SPENDSRSTREAMFLAGS
+ { SPESF_NONE = 0,
+ SPESF_STREAM_RELEASED = 1 << 0
+ } SPENDSRSTREAMFLAGS;
+
+typedef /* [hidden] */
+enum SPVFEATURE
+ { SPVFEATURE_STRESSED = 1L << 0,
+ SPVFEATURE_EMPHASIS = 1L << 1
+ } SPVFEATURE;
+
+typedef /* [hidden] */
+enum SPVISEMES
+ { SP_VISEME_0 = 0,
+ SP_VISEME_1 = SP_VISEME_0 + 1,
+ SP_VISEME_2 = SP_VISEME_1 + 1,
+ SP_VISEME_3 = SP_VISEME_2 + 1,
+ SP_VISEME_4 = SP_VISEME_3 + 1,
+ SP_VISEME_5 = SP_VISEME_4 + 1,
+ SP_VISEME_6 = SP_VISEME_5 + 1,
+ SP_VISEME_7 = SP_VISEME_6 + 1,
+ SP_VISEME_8 = SP_VISEME_7 + 1,
+ SP_VISEME_9 = SP_VISEME_8 + 1,
+ SP_VISEME_10 = SP_VISEME_9 + 1,
+ SP_VISEME_11 = SP_VISEME_10 + 1,
+ SP_VISEME_12 = SP_VISEME_11 + 1,
+ SP_VISEME_13 = SP_VISEME_12 + 1,
+ SP_VISEME_14 = SP_VISEME_13 + 1,
+ SP_VISEME_15 = SP_VISEME_14 + 1,
+ SP_VISEME_16 = SP_VISEME_15 + 1,
+ SP_VISEME_17 = SP_VISEME_16 + 1,
+ SP_VISEME_18 = SP_VISEME_17 + 1,
+ SP_VISEME_19 = SP_VISEME_18 + 1,
+ SP_VISEME_20 = SP_VISEME_19 + 1,
+ SP_VISEME_21 = SP_VISEME_20 + 1
+ } SPVISEMES;
+
+typedef /* [hidden][restricted] */ struct SPEVENTSOURCEINFO
+ {
+ ULONGLONG ullEventInterest;
+ ULONGLONG ullQueuedInterest;
+ ULONG ulCount;
+ } SPEVENTSOURCEINFO;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0262_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0262_v0_0_s_ifspec;
+
+#ifndef __ISpEventSource_INTERFACE_DEFINED__
+#define __ISpEventSource_INTERFACE_DEFINED__
+
+/* interface ISpEventSource */
+/* [restricted][local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpEventSource;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("BE7A9CCE-5F9E-11D2-960F-00C04F8EE628")
+ ISpEventSource : public ISpNotifySource
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetInterest(
+ /* [in] */ ULONGLONG ullEventInterest,
+ /* [in] */ ULONGLONG ullQueuedInterest) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetEvents(
+ /* [in] */ ULONG ulCount,
+ /* [size_is][out] */ SPEVENT *pEventArray,
+ /* [out] */ ULONG *pulFetched) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetInfo(
+ /* [out] */ SPEVENTSOURCEINFO *pInfo) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpEventSourceVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpEventSource * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpEventSource * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpEventSource * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetNotifySink )(
+ ISpEventSource * This,
+ /* [in] */ ISpNotifySink *pNotifySink);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyWindowMessage )(
+ ISpEventSource * This,
+ /* [in] */ HWND hWnd,
+ /* [in] */ UINT Msg,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyCallbackFunction )(
+ ISpEventSource * This,
+ /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyCallbackInterface )(
+ ISpEventSource * This,
+ /* [in] */ ISpNotifyCallback *pSpCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyWin32Event )(
+ ISpEventSource * This);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *WaitForNotifyEvent )(
+ ISpEventSource * This,
+ /* [in] */ DWORD dwMilliseconds);
+
+ /* [local] */ HANDLE ( STDMETHODCALLTYPE *GetNotifyEventHandle )(
+ ISpEventSource * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetInterest )(
+ ISpEventSource * This,
+ /* [in] */ ULONGLONG ullEventInterest,
+ /* [in] */ ULONGLONG ullQueuedInterest);
+
+ HRESULT ( STDMETHODCALLTYPE *GetEvents )(
+ ISpEventSource * This,
+ /* [in] */ ULONG ulCount,
+ /* [size_is][out] */ SPEVENT *pEventArray,
+ /* [out] */ ULONG *pulFetched);
+
+ HRESULT ( STDMETHODCALLTYPE *GetInfo )(
+ ISpEventSource * This,
+ /* [out] */ SPEVENTSOURCEINFO *pInfo);
+
+ END_INTERFACE
+ } ISpEventSourceVtbl;
+
+ interface ISpEventSource
+ {
+ CONST_VTBL struct ISpEventSourceVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpEventSource_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpEventSource_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpEventSource_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpEventSource_SetNotifySink(This,pNotifySink) \
+ (This)->lpVtbl -> SetNotifySink(This,pNotifySink)
+
+#define ISpEventSource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) \
+ (This)->lpVtbl -> SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
+
+#define ISpEventSource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) \
+ (This)->lpVtbl -> SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
+
+#define ISpEventSource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) \
+ (This)->lpVtbl -> SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
+
+#define ISpEventSource_SetNotifyWin32Event(This) \
+ (This)->lpVtbl -> SetNotifyWin32Event(This)
+
+#define ISpEventSource_WaitForNotifyEvent(This,dwMilliseconds) \
+ (This)->lpVtbl -> WaitForNotifyEvent(This,dwMilliseconds)
+
+#define ISpEventSource_GetNotifyEventHandle(This) \
+ (This)->lpVtbl -> GetNotifyEventHandle(This)
+
+
+#define ISpEventSource_SetInterest(This,ullEventInterest,ullQueuedInterest) \
+ (This)->lpVtbl -> SetInterest(This,ullEventInterest,ullQueuedInterest)
+
+#define ISpEventSource_GetEvents(This,ulCount,pEventArray,pulFetched) \
+ (This)->lpVtbl -> GetEvents(This,ulCount,pEventArray,pulFetched)
+
+#define ISpEventSource_GetInfo(This,pInfo) \
+ (This)->lpVtbl -> GetInfo(This,pInfo)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpEventSource_SetInterest_Proxy(
+ ISpEventSource * This,
+ /* [in] */ ULONGLONG ullEventInterest,
+ /* [in] */ ULONGLONG ullQueuedInterest);
+
+
+void __RPC_STUB ISpEventSource_SetInterest_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpEventSource_GetEvents_Proxy(
+ ISpEventSource * This,
+ /* [in] */ ULONG ulCount,
+ /* [size_is][out] */ SPEVENT *pEventArray,
+ /* [out] */ ULONG *pulFetched);
+
+
+void __RPC_STUB ISpEventSource_GetEvents_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpEventSource_GetInfo_Proxy(
+ ISpEventSource * This,
+ /* [out] */ SPEVENTSOURCEINFO *pInfo);
+
+
+void __RPC_STUB ISpEventSource_GetInfo_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpEventSource_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpEventSink_INTERFACE_DEFINED__
+#define __ISpEventSink_INTERFACE_DEFINED__
+
+/* interface ISpEventSink */
+/* [restricted][local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpEventSink;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("BE7A9CC9-5F9E-11D2-960F-00C04F8EE628")
+ ISpEventSink : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE AddEvents(
+ /* [in] */ const SPEVENT *pEventArray,
+ /* [in] */ ULONG ulCount) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
+ /* [out] */ ULONGLONG *pullEventInterest) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpEventSinkVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpEventSink * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpEventSink * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpEventSink * This);
+
+ HRESULT ( STDMETHODCALLTYPE *AddEvents )(
+ ISpEventSink * This,
+ /* [in] */ const SPEVENT *pEventArray,
+ /* [in] */ ULONG ulCount);
+
+ HRESULT ( STDMETHODCALLTYPE *GetEventInterest )(
+ ISpEventSink * This,
+ /* [out] */ ULONGLONG *pullEventInterest);
+
+ END_INTERFACE
+ } ISpEventSinkVtbl;
+
+ interface ISpEventSink
+ {
+ CONST_VTBL struct ISpEventSinkVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpEventSink_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpEventSink_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpEventSink_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpEventSink_AddEvents(This,pEventArray,ulCount) \
+ (This)->lpVtbl -> AddEvents(This,pEventArray,ulCount)
+
+#define ISpEventSink_GetEventInterest(This,pullEventInterest) \
+ (This)->lpVtbl -> GetEventInterest(This,pullEventInterest)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpEventSink_AddEvents_Proxy(
+ ISpEventSink * This,
+ /* [in] */ const SPEVENT *pEventArray,
+ /* [in] */ ULONG ulCount);
+
+
+void __RPC_STUB ISpEventSink_AddEvents_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpEventSink_GetEventInterest_Proxy(
+ ISpEventSink * This,
+ /* [out] */ ULONGLONG *pullEventInterest);
+
+
+void __RPC_STUB ISpEventSink_GetEventInterest_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpEventSink_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpStreamFormat_INTERFACE_DEFINED__
+#define __ISpStreamFormat_INTERFACE_DEFINED__
+
+/* interface ISpStreamFormat */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpStreamFormat;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("BED530BE-2606-4F4D-A1C0-54C5CDA5566F")
+ ISpStreamFormat : public IStream
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetFormat(
+ GUID *pguidFormatId,
+ WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpStreamFormatVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpStreamFormat * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpStreamFormat * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpStreamFormat * This);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )(
+ ISpStreamFormat * This,
+ /* [length_is][size_is][out] */ void *pv,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbRead);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )(
+ ISpStreamFormat * This,
+ /* [size_is][in] */ const void *pv,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbWritten);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Seek )(
+ ISpStreamFormat * This,
+ /* [in] */ LARGE_INTEGER dlibMove,
+ /* [in] */ DWORD dwOrigin,
+ /* [out] */ ULARGE_INTEGER *plibNewPosition);
+
+ HRESULT ( STDMETHODCALLTYPE *SetSize )(
+ ISpStreamFormat * This,
+ /* [in] */ ULARGE_INTEGER libNewSize);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *CopyTo )(
+ ISpStreamFormat * This,
+ /* [unique][in] */ IStream *pstm,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [out] */ ULARGE_INTEGER *pcbRead,
+ /* [out] */ ULARGE_INTEGER *pcbWritten);
+
+ HRESULT ( STDMETHODCALLTYPE *Commit )(
+ ISpStreamFormat * This,
+ /* [in] */ DWORD grfCommitFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *Revert )(
+ ISpStreamFormat * This);
+
+ HRESULT ( STDMETHODCALLTYPE *LockRegion )(
+ ISpStreamFormat * This,
+ /* [in] */ ULARGE_INTEGER libOffset,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [in] */ DWORD dwLockType);
+
+ HRESULT ( STDMETHODCALLTYPE *UnlockRegion )(
+ ISpStreamFormat * This,
+ /* [in] */ ULARGE_INTEGER libOffset,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [in] */ DWORD dwLockType);
+
+ HRESULT ( STDMETHODCALLTYPE *Stat )(
+ ISpStreamFormat * This,
+ /* [out] */ STATSTG *pstatstg,
+ /* [in] */ DWORD grfStatFlag);
+
+ HRESULT ( STDMETHODCALLTYPE *Clone )(
+ ISpStreamFormat * This,
+ /* [out] */ IStream **ppstm);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFormat )(
+ ISpStreamFormat * This,
+ GUID *pguidFormatId,
+ WAVEFORMATEX **ppCoMemWaveFormatEx);
+
+ END_INTERFACE
+ } ISpStreamFormatVtbl;
+
+ interface ISpStreamFormat
+ {
+ CONST_VTBL struct ISpStreamFormatVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpStreamFormat_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpStreamFormat_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpStreamFormat_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpStreamFormat_Read(This,pv,cb,pcbRead) \
+ (This)->lpVtbl -> Read(This,pv,cb,pcbRead)
+
+#define ISpStreamFormat_Write(This,pv,cb,pcbWritten) \
+ (This)->lpVtbl -> Write(This,pv,cb,pcbWritten)
+
+
+#define ISpStreamFormat_Seek(This,dlibMove,dwOrigin,plibNewPosition) \
+ (This)->lpVtbl -> Seek(This,dlibMove,dwOrigin,plibNewPosition)
+
+#define ISpStreamFormat_SetSize(This,libNewSize) \
+ (This)->lpVtbl -> SetSize(This,libNewSize)
+
+#define ISpStreamFormat_CopyTo(This,pstm,cb,pcbRead,pcbWritten) \
+ (This)->lpVtbl -> CopyTo(This,pstm,cb,pcbRead,pcbWritten)
+
+#define ISpStreamFormat_Commit(This,grfCommitFlags) \
+ (This)->lpVtbl -> Commit(This,grfCommitFlags)
+
+#define ISpStreamFormat_Revert(This) \
+ (This)->lpVtbl -> Revert(This)
+
+#define ISpStreamFormat_LockRegion(This,libOffset,cb,dwLockType) \
+ (This)->lpVtbl -> LockRegion(This,libOffset,cb,dwLockType)
+
+#define ISpStreamFormat_UnlockRegion(This,libOffset,cb,dwLockType) \
+ (This)->lpVtbl -> UnlockRegion(This,libOffset,cb,dwLockType)
+
+#define ISpStreamFormat_Stat(This,pstatstg,grfStatFlag) \
+ (This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag)
+
+#define ISpStreamFormat_Clone(This,ppstm) \
+ (This)->lpVtbl -> Clone(This,ppstm)
+
+
+#define ISpStreamFormat_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) \
+ (This)->lpVtbl -> GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpStreamFormat_GetFormat_Proxy(
+ ISpStreamFormat * This,
+ GUID *pguidFormatId,
+ WAVEFORMATEX **ppCoMemWaveFormatEx);
+
+
+void __RPC_STUB ISpStreamFormat_GetFormat_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpStreamFormat_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapi_0265 */
+/* [local] */
+
+typedef /* [hidden] */
+enum SPFILEMODE
+ { SPFM_OPEN_READONLY = 0,
+ SPFM_OPEN_READWRITE = SPFM_OPEN_READONLY + 1,
+ SPFM_CREATE = SPFM_OPEN_READWRITE + 1,
+ SPFM_CREATE_ALWAYS = SPFM_CREATE + 1,
+ SPFM_NUM_MODES = SPFM_CREATE_ALWAYS + 1
+ } SPFILEMODE;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0265_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0265_v0_0_s_ifspec;
+
+#ifndef __ISpStream_INTERFACE_DEFINED__
+#define __ISpStream_INTERFACE_DEFINED__
+
+/* interface ISpStream */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpStream;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("12E3CCA9-7518-44C5-A5E7-BA5A79CB929E")
+ ISpStream : public ISpStreamFormat
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
+ IStream *pStream,
+ REFGUID rguidFormat,
+ const WAVEFORMATEX *pWaveFormatEx) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
+ IStream **ppStream) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE BindToFile(
+ const WCHAR *pszFileName,
+ SPFILEMODE eMode,
+ const GUID *pFormatId,
+ const WAVEFORMATEX *pWaveFormatEx,
+ ULONGLONG ullEventInterest) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpStreamVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpStream * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpStream * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpStream * This);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )(
+ ISpStream * This,
+ /* [length_is][size_is][out] */ void *pv,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbRead);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )(
+ ISpStream * This,
+ /* [size_is][in] */ const void *pv,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbWritten);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Seek )(
+ ISpStream * This,
+ /* [in] */ LARGE_INTEGER dlibMove,
+ /* [in] */ DWORD dwOrigin,
+ /* [out] */ ULARGE_INTEGER *plibNewPosition);
+
+ HRESULT ( STDMETHODCALLTYPE *SetSize )(
+ ISpStream * This,
+ /* [in] */ ULARGE_INTEGER libNewSize);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *CopyTo )(
+ ISpStream * This,
+ /* [unique][in] */ IStream *pstm,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [out] */ ULARGE_INTEGER *pcbRead,
+ /* [out] */ ULARGE_INTEGER *pcbWritten);
+
+ HRESULT ( STDMETHODCALLTYPE *Commit )(
+ ISpStream * This,
+ /* [in] */ DWORD grfCommitFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *Revert )(
+ ISpStream * This);
+
+ HRESULT ( STDMETHODCALLTYPE *LockRegion )(
+ ISpStream * This,
+ /* [in] */ ULARGE_INTEGER libOffset,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [in] */ DWORD dwLockType);
+
+ HRESULT ( STDMETHODCALLTYPE *UnlockRegion )(
+ ISpStream * This,
+ /* [in] */ ULARGE_INTEGER libOffset,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [in] */ DWORD dwLockType);
+
+ HRESULT ( STDMETHODCALLTYPE *Stat )(
+ ISpStream * This,
+ /* [out] */ STATSTG *pstatstg,
+ /* [in] */ DWORD grfStatFlag);
+
+ HRESULT ( STDMETHODCALLTYPE *Clone )(
+ ISpStream * This,
+ /* [out] */ IStream **ppstm);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFormat )(
+ ISpStream * This,
+ GUID *pguidFormatId,
+ WAVEFORMATEX **ppCoMemWaveFormatEx);
+
+ HRESULT ( STDMETHODCALLTYPE *SetBaseStream )(
+ ISpStream * This,
+ IStream *pStream,
+ REFGUID rguidFormat,
+ const WAVEFORMATEX *pWaveFormatEx);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBaseStream )(
+ ISpStream * This,
+ IStream **ppStream);
+
+ HRESULT ( STDMETHODCALLTYPE *BindToFile )(
+ ISpStream * This,
+ const WCHAR *pszFileName,
+ SPFILEMODE eMode,
+ const GUID *pFormatId,
+ const WAVEFORMATEX *pWaveFormatEx,
+ ULONGLONG ullEventInterest);
+
+ HRESULT ( STDMETHODCALLTYPE *Close )(
+ ISpStream * This);
+
+ END_INTERFACE
+ } ISpStreamVtbl;
+
+ interface ISpStream
+ {
+ CONST_VTBL struct ISpStreamVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpStream_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpStream_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpStream_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpStream_Read(This,pv,cb,pcbRead) \
+ (This)->lpVtbl -> Read(This,pv,cb,pcbRead)
+
+#define ISpStream_Write(This,pv,cb,pcbWritten) \
+ (This)->lpVtbl -> Write(This,pv,cb,pcbWritten)
+
+
+#define ISpStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) \
+ (This)->lpVtbl -> Seek(This,dlibMove,dwOrigin,plibNewPosition)
+
+#define ISpStream_SetSize(This,libNewSize) \
+ (This)->lpVtbl -> SetSize(This,libNewSize)
+
+#define ISpStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) \
+ (This)->lpVtbl -> CopyTo(This,pstm,cb,pcbRead,pcbWritten)
+
+#define ISpStream_Commit(This,grfCommitFlags) \
+ (This)->lpVtbl -> Commit(This,grfCommitFlags)
+
+#define ISpStream_Revert(This) \
+ (This)->lpVtbl -> Revert(This)
+
+#define ISpStream_LockRegion(This,libOffset,cb,dwLockType) \
+ (This)->lpVtbl -> LockRegion(This,libOffset,cb,dwLockType)
+
+#define ISpStream_UnlockRegion(This,libOffset,cb,dwLockType) \
+ (This)->lpVtbl -> UnlockRegion(This,libOffset,cb,dwLockType)
+
+#define ISpStream_Stat(This,pstatstg,grfStatFlag) \
+ (This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag)
+
+#define ISpStream_Clone(This,ppstm) \
+ (This)->lpVtbl -> Clone(This,ppstm)
+
+
+#define ISpStream_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) \
+ (This)->lpVtbl -> GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
+
+
+#define ISpStream_SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx) \
+ (This)->lpVtbl -> SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx)
+
+#define ISpStream_GetBaseStream(This,ppStream) \
+ (This)->lpVtbl -> GetBaseStream(This,ppStream)
+
+#define ISpStream_BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest) \
+ (This)->lpVtbl -> BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest)
+
+#define ISpStream_Close(This) \
+ (This)->lpVtbl -> Close(This)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpStream_SetBaseStream_Proxy(
+ ISpStream * This,
+ IStream *pStream,
+ REFGUID rguidFormat,
+ const WAVEFORMATEX *pWaveFormatEx);
+
+
+void __RPC_STUB ISpStream_SetBaseStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpStream_GetBaseStream_Proxy(
+ ISpStream * This,
+ IStream **ppStream);
+
+
+void __RPC_STUB ISpStream_GetBaseStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpStream_BindToFile_Proxy(
+ ISpStream * This,
+ const WCHAR *pszFileName,
+ SPFILEMODE eMode,
+ const GUID *pFormatId,
+ const WAVEFORMATEX *pWaveFormatEx,
+ ULONGLONG ullEventInterest);
+
+
+void __RPC_STUB ISpStream_BindToFile_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpStream_Close_Proxy(
+ ISpStream * This);
+
+
+void __RPC_STUB ISpStream_Close_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpStream_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpStreamFormatConverter_INTERFACE_DEFINED__
+#define __ISpStreamFormatConverter_INTERFACE_DEFINED__
+
+/* interface ISpStreamFormatConverter */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpStreamFormatConverter;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("678A932C-EA71-4446-9B41-78FDA6280A29")
+ ISpStreamFormatConverter : public ISpStreamFormat
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
+ /* [in] */ ISpStreamFormat *pStream,
+ /* [in] */ BOOL fSetFormatToBaseStreamFormat,
+ /* [in] */ BOOL fWriteToBaseStream) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
+ /* [out] */ ISpStreamFormat **ppStream) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetFormat(
+ /* [in] */ REFGUID rguidFormatIdOfConvertedStream,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatExOfConvertedStream) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ResetSeekPosition( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ScaleConvertedToBaseOffset(
+ /* [in] */ ULONGLONG ullOffsetConvertedStream,
+ /* [out] */ ULONGLONG *pullOffsetBaseStream) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ScaleBaseToConvertedOffset(
+ /* [in] */ ULONGLONG ullOffsetBaseStream,
+ /* [out] */ ULONGLONG *pullOffsetConvertedStream) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpStreamFormatConverterVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpStreamFormatConverter * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpStreamFormatConverter * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpStreamFormatConverter * This);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )(
+ ISpStreamFormatConverter * This,
+ /* [length_is][size_is][out] */ void *pv,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbRead);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )(
+ ISpStreamFormatConverter * This,
+ /* [size_is][in] */ const void *pv,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbWritten);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Seek )(
+ ISpStreamFormatConverter * This,
+ /* [in] */ LARGE_INTEGER dlibMove,
+ /* [in] */ DWORD dwOrigin,
+ /* [out] */ ULARGE_INTEGER *plibNewPosition);
+
+ HRESULT ( STDMETHODCALLTYPE *SetSize )(
+ ISpStreamFormatConverter * This,
+ /* [in] */ ULARGE_INTEGER libNewSize);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *CopyTo )(
+ ISpStreamFormatConverter * This,
+ /* [unique][in] */ IStream *pstm,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [out] */ ULARGE_INTEGER *pcbRead,
+ /* [out] */ ULARGE_INTEGER *pcbWritten);
+
+ HRESULT ( STDMETHODCALLTYPE *Commit )(
+ ISpStreamFormatConverter * This,
+ /* [in] */ DWORD grfCommitFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *Revert )(
+ ISpStreamFormatConverter * This);
+
+ HRESULT ( STDMETHODCALLTYPE *LockRegion )(
+ ISpStreamFormatConverter * This,
+ /* [in] */ ULARGE_INTEGER libOffset,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [in] */ DWORD dwLockType);
+
+ HRESULT ( STDMETHODCALLTYPE *UnlockRegion )(
+ ISpStreamFormatConverter * This,
+ /* [in] */ ULARGE_INTEGER libOffset,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [in] */ DWORD dwLockType);
+
+ HRESULT ( STDMETHODCALLTYPE *Stat )(
+ ISpStreamFormatConverter * This,
+ /* [out] */ STATSTG *pstatstg,
+ /* [in] */ DWORD grfStatFlag);
+
+ HRESULT ( STDMETHODCALLTYPE *Clone )(
+ ISpStreamFormatConverter * This,
+ /* [out] */ IStream **ppstm);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFormat )(
+ ISpStreamFormatConverter * This,
+ GUID *pguidFormatId,
+ WAVEFORMATEX **ppCoMemWaveFormatEx);
+
+ HRESULT ( STDMETHODCALLTYPE *SetBaseStream )(
+ ISpStreamFormatConverter * This,
+ /* [in] */ ISpStreamFormat *pStream,
+ /* [in] */ BOOL fSetFormatToBaseStreamFormat,
+ /* [in] */ BOOL fWriteToBaseStream);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBaseStream )(
+ ISpStreamFormatConverter * This,
+ /* [out] */ ISpStreamFormat **ppStream);
+
+ HRESULT ( STDMETHODCALLTYPE *SetFormat )(
+ ISpStreamFormatConverter * This,
+ /* [in] */ REFGUID rguidFormatIdOfConvertedStream,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
+
+ HRESULT ( STDMETHODCALLTYPE *ResetSeekPosition )(
+ ISpStreamFormatConverter * This);
+
+ HRESULT ( STDMETHODCALLTYPE *ScaleConvertedToBaseOffset )(
+ ISpStreamFormatConverter * This,
+ /* [in] */ ULONGLONG ullOffsetConvertedStream,
+ /* [out] */ ULONGLONG *pullOffsetBaseStream);
+
+ HRESULT ( STDMETHODCALLTYPE *ScaleBaseToConvertedOffset )(
+ ISpStreamFormatConverter * This,
+ /* [in] */ ULONGLONG ullOffsetBaseStream,
+ /* [out] */ ULONGLONG *pullOffsetConvertedStream);
+
+ END_INTERFACE
+ } ISpStreamFormatConverterVtbl;
+
+ interface ISpStreamFormatConverter
+ {
+ CONST_VTBL struct ISpStreamFormatConverterVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpStreamFormatConverter_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpStreamFormatConverter_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpStreamFormatConverter_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpStreamFormatConverter_Read(This,pv,cb,pcbRead) \
+ (This)->lpVtbl -> Read(This,pv,cb,pcbRead)
+
+#define ISpStreamFormatConverter_Write(This,pv,cb,pcbWritten) \
+ (This)->lpVtbl -> Write(This,pv,cb,pcbWritten)
+
+
+#define ISpStreamFormatConverter_Seek(This,dlibMove,dwOrigin,plibNewPosition) \
+ (This)->lpVtbl -> Seek(This,dlibMove,dwOrigin,plibNewPosition)
+
+#define ISpStreamFormatConverter_SetSize(This,libNewSize) \
+ (This)->lpVtbl -> SetSize(This,libNewSize)
+
+#define ISpStreamFormatConverter_CopyTo(This,pstm,cb,pcbRead,pcbWritten) \
+ (This)->lpVtbl -> CopyTo(This,pstm,cb,pcbRead,pcbWritten)
+
+#define ISpStreamFormatConverter_Commit(This,grfCommitFlags) \
+ (This)->lpVtbl -> Commit(This,grfCommitFlags)
+
+#define ISpStreamFormatConverter_Revert(This) \
+ (This)->lpVtbl -> Revert(This)
+
+#define ISpStreamFormatConverter_LockRegion(This,libOffset,cb,dwLockType) \
+ (This)->lpVtbl -> LockRegion(This,libOffset,cb,dwLockType)
+
+#define ISpStreamFormatConverter_UnlockRegion(This,libOffset,cb,dwLockType) \
+ (This)->lpVtbl -> UnlockRegion(This,libOffset,cb,dwLockType)
+
+#define ISpStreamFormatConverter_Stat(This,pstatstg,grfStatFlag) \
+ (This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag)
+
+#define ISpStreamFormatConverter_Clone(This,ppstm) \
+ (This)->lpVtbl -> Clone(This,ppstm)
+
+
+#define ISpStreamFormatConverter_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) \
+ (This)->lpVtbl -> GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
+
+
+#define ISpStreamFormatConverter_SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream) \
+ (This)->lpVtbl -> SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream)
+
+#define ISpStreamFormatConverter_GetBaseStream(This,ppStream) \
+ (This)->lpVtbl -> GetBaseStream(This,ppStream)
+
+#define ISpStreamFormatConverter_SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream) \
+ (This)->lpVtbl -> SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream)
+
+#define ISpStreamFormatConverter_ResetSeekPosition(This) \
+ (This)->lpVtbl -> ResetSeekPosition(This)
+
+#define ISpStreamFormatConverter_ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream) \
+ (This)->lpVtbl -> ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream)
+
+#define ISpStreamFormatConverter_ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream) \
+ (This)->lpVtbl -> ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_SetBaseStream_Proxy(
+ ISpStreamFormatConverter * This,
+ /* [in] */ ISpStreamFormat *pStream,
+ /* [in] */ BOOL fSetFormatToBaseStreamFormat,
+ /* [in] */ BOOL fWriteToBaseStream);
+
+
+void __RPC_STUB ISpStreamFormatConverter_SetBaseStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_GetBaseStream_Proxy(
+ ISpStreamFormatConverter * This,
+ /* [out] */ ISpStreamFormat **ppStream);
+
+
+void __RPC_STUB ISpStreamFormatConverter_GetBaseStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_SetFormat_Proxy(
+ ISpStreamFormatConverter * This,
+ /* [in] */ REFGUID rguidFormatIdOfConvertedStream,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
+
+
+void __RPC_STUB ISpStreamFormatConverter_SetFormat_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_ResetSeekPosition_Proxy(
+ ISpStreamFormatConverter * This);
+
+
+void __RPC_STUB ISpStreamFormatConverter_ResetSeekPosition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_ScaleConvertedToBaseOffset_Proxy(
+ ISpStreamFormatConverter * This,
+ /* [in] */ ULONGLONG ullOffsetConvertedStream,
+ /* [out] */ ULONGLONG *pullOffsetBaseStream);
+
+
+void __RPC_STUB ISpStreamFormatConverter_ScaleConvertedToBaseOffset_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_ScaleBaseToConvertedOffset_Proxy(
+ ISpStreamFormatConverter * This,
+ /* [in] */ ULONGLONG ullOffsetBaseStream,
+ /* [out] */ ULONGLONG *pullOffsetConvertedStream);
+
+
+void __RPC_STUB ISpStreamFormatConverter_ScaleBaseToConvertedOffset_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpStreamFormatConverter_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapi_0267 */
+/* [local] */
+
+typedef /* [hidden] */
+enum _SPAUDIOSTATE
+ { SPAS_CLOSED = 0,
+ SPAS_STOP = SPAS_CLOSED + 1,
+ SPAS_PAUSE = SPAS_STOP + 1,
+ SPAS_RUN = SPAS_PAUSE + 1
+ } SPAUDIOSTATE;
+
+typedef /* [hidden][restricted] */ struct SPAUDIOSTATUS
+ {
+ long cbFreeBuffSpace;
+ ULONG cbNonBlockingIO;
+ SPAUDIOSTATE State;
+ ULONGLONG CurSeekPos;
+ ULONGLONG CurDevicePos;
+ DWORD dwReserved1;
+ DWORD dwReserved2;
+ } SPAUDIOSTATUS;
+
+typedef /* [hidden][restricted] */ struct SPAUDIOBUFFERINFO
+ {
+ ULONG ulMsMinNotification;
+ ULONG ulMsBufferSize;
+ ULONG ulMsEventBias;
+ } SPAUDIOBUFFERINFO;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0267_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0267_v0_0_s_ifspec;
+
+#ifndef __ISpAudio_INTERFACE_DEFINED__
+#define __ISpAudio_INTERFACE_DEFINED__
+
+/* interface ISpAudio */
+/* [restricted][local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpAudio;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("C05C768F-FAE8-4EC2-8E07-338321C12452")
+ ISpAudio : public ISpStreamFormat
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetState(
+ /* [in] */ SPAUDIOSTATE NewState,
+ /* [in] */ ULONGLONG ullReserved) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetFormat(
+ /* [in] */ REFGUID rguidFmtId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStatus(
+ /* [out] */ SPAUDIOSTATUS *pStatus) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBufferInfo(
+ /* [in] */ const SPAUDIOBUFFERINFO *pBuffInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBufferInfo(
+ /* [out] */ SPAUDIOBUFFERINFO *pBuffInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDefaultFormat(
+ /* [out] */ GUID *pFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
+
+ virtual HANDLE STDMETHODCALLTYPE EventHandle( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVolumeLevel(
+ /* [out] */ ULONG *pLevel) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetVolumeLevel(
+ /* [in] */ ULONG Level) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBufferNotifySize(
+ /* [out] */ ULONG *pcbSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
+ /* [in] */ ULONG cbSize) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpAudioVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpAudio * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpAudio * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpAudio * This);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )(
+ ISpAudio * This,
+ /* [length_is][size_is][out] */ void *pv,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbRead);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )(
+ ISpAudio * This,
+ /* [size_is][in] */ const void *pv,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbWritten);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Seek )(
+ ISpAudio * This,
+ /* [in] */ LARGE_INTEGER dlibMove,
+ /* [in] */ DWORD dwOrigin,
+ /* [out] */ ULARGE_INTEGER *plibNewPosition);
+
+ HRESULT ( STDMETHODCALLTYPE *SetSize )(
+ ISpAudio * This,
+ /* [in] */ ULARGE_INTEGER libNewSize);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *CopyTo )(
+ ISpAudio * This,
+ /* [unique][in] */ IStream *pstm,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [out] */ ULARGE_INTEGER *pcbRead,
+ /* [out] */ ULARGE_INTEGER *pcbWritten);
+
+ HRESULT ( STDMETHODCALLTYPE *Commit )(
+ ISpAudio * This,
+ /* [in] */ DWORD grfCommitFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *Revert )(
+ ISpAudio * This);
+
+ HRESULT ( STDMETHODCALLTYPE *LockRegion )(
+ ISpAudio * This,
+ /* [in] */ ULARGE_INTEGER libOffset,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [in] */ DWORD dwLockType);
+
+ HRESULT ( STDMETHODCALLTYPE *UnlockRegion )(
+ ISpAudio * This,
+ /* [in] */ ULARGE_INTEGER libOffset,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [in] */ DWORD dwLockType);
+
+ HRESULT ( STDMETHODCALLTYPE *Stat )(
+ ISpAudio * This,
+ /* [out] */ STATSTG *pstatstg,
+ /* [in] */ DWORD grfStatFlag);
+
+ HRESULT ( STDMETHODCALLTYPE *Clone )(
+ ISpAudio * This,
+ /* [out] */ IStream **ppstm);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFormat )(
+ ISpAudio * This,
+ GUID *pguidFormatId,
+ WAVEFORMATEX **ppCoMemWaveFormatEx);
+
+ HRESULT ( STDMETHODCALLTYPE *SetState )(
+ ISpAudio * This,
+ /* [in] */ SPAUDIOSTATE NewState,
+ /* [in] */ ULONGLONG ullReserved);
+
+ HRESULT ( STDMETHODCALLTYPE *SetFormat )(
+ ISpAudio * This,
+ /* [in] */ REFGUID rguidFmtId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStatus )(
+ ISpAudio * This,
+ /* [out] */ SPAUDIOSTATUS *pStatus);
+
+ HRESULT ( STDMETHODCALLTYPE *SetBufferInfo )(
+ ISpAudio * This,
+ /* [in] */ const SPAUDIOBUFFERINFO *pBuffInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBufferInfo )(
+ ISpAudio * This,
+ /* [out] */ SPAUDIOBUFFERINFO *pBuffInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDefaultFormat )(
+ ISpAudio * This,
+ /* [out] */ GUID *pFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemWaveFormatEx);
+
+ HANDLE ( STDMETHODCALLTYPE *EventHandle )(
+ ISpAudio * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetVolumeLevel )(
+ ISpAudio * This,
+ /* [out] */ ULONG *pLevel);
+
+ HRESULT ( STDMETHODCALLTYPE *SetVolumeLevel )(
+ ISpAudio * This,
+ /* [in] */ ULONG Level);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBufferNotifySize )(
+ ISpAudio * This,
+ /* [out] */ ULONG *pcbSize);
+
+ HRESULT ( STDMETHODCALLTYPE *SetBufferNotifySize )(
+ ISpAudio * This,
+ /* [in] */ ULONG cbSize);
+
+ END_INTERFACE
+ } ISpAudioVtbl;
+
+ interface ISpAudio
+ {
+ CONST_VTBL struct ISpAudioVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpAudio_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpAudio_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpAudio_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpAudio_Read(This,pv,cb,pcbRead) \
+ (This)->lpVtbl -> Read(This,pv,cb,pcbRead)
+
+#define ISpAudio_Write(This,pv,cb,pcbWritten) \
+ (This)->lpVtbl -> Write(This,pv,cb,pcbWritten)
+
+
+#define ISpAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) \
+ (This)->lpVtbl -> Seek(This,dlibMove,dwOrigin,plibNewPosition)
+
+#define ISpAudio_SetSize(This,libNewSize) \
+ (This)->lpVtbl -> SetSize(This,libNewSize)
+
+#define ISpAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) \
+ (This)->lpVtbl -> CopyTo(This,pstm,cb,pcbRead,pcbWritten)
+
+#define ISpAudio_Commit(This,grfCommitFlags) \
+ (This)->lpVtbl -> Commit(This,grfCommitFlags)
+
+#define ISpAudio_Revert(This) \
+ (This)->lpVtbl -> Revert(This)
+
+#define ISpAudio_LockRegion(This,libOffset,cb,dwLockType) \
+ (This)->lpVtbl -> LockRegion(This,libOffset,cb,dwLockType)
+
+#define ISpAudio_UnlockRegion(This,libOffset,cb,dwLockType) \
+ (This)->lpVtbl -> UnlockRegion(This,libOffset,cb,dwLockType)
+
+#define ISpAudio_Stat(This,pstatstg,grfStatFlag) \
+ (This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag)
+
+#define ISpAudio_Clone(This,ppstm) \
+ (This)->lpVtbl -> Clone(This,ppstm)
+
+
+#define ISpAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) \
+ (This)->lpVtbl -> GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
+
+
+#define ISpAudio_SetState(This,NewState,ullReserved) \
+ (This)->lpVtbl -> SetState(This,NewState,ullReserved)
+
+#define ISpAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) \
+ (This)->lpVtbl -> SetFormat(This,rguidFmtId,pWaveFormatEx)
+
+#define ISpAudio_GetStatus(This,pStatus) \
+ (This)->lpVtbl -> GetStatus(This,pStatus)
+
+#define ISpAudio_SetBufferInfo(This,pBuffInfo) \
+ (This)->lpVtbl -> SetBufferInfo(This,pBuffInfo)
+
+#define ISpAudio_GetBufferInfo(This,pBuffInfo) \
+ (This)->lpVtbl -> GetBufferInfo(This,pBuffInfo)
+
+#define ISpAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) \
+ (This)->lpVtbl -> GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
+
+#define ISpAudio_EventHandle(This) \
+ (This)->lpVtbl -> EventHandle(This)
+
+#define ISpAudio_GetVolumeLevel(This,pLevel) \
+ (This)->lpVtbl -> GetVolumeLevel(This,pLevel)
+
+#define ISpAudio_SetVolumeLevel(This,Level) \
+ (This)->lpVtbl -> SetVolumeLevel(This,Level)
+
+#define ISpAudio_GetBufferNotifySize(This,pcbSize) \
+ (This)->lpVtbl -> GetBufferNotifySize(This,pcbSize)
+
+#define ISpAudio_SetBufferNotifySize(This,cbSize) \
+ (This)->lpVtbl -> SetBufferNotifySize(This,cbSize)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpAudio_SetState_Proxy(
+ ISpAudio * This,
+ /* [in] */ SPAUDIOSTATE NewState,
+ /* [in] */ ULONGLONG ullReserved);
+
+
+void __RPC_STUB ISpAudio_SetState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpAudio_SetFormat_Proxy(
+ ISpAudio * This,
+ /* [in] */ REFGUID rguidFmtId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx);
+
+
+void __RPC_STUB ISpAudio_SetFormat_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpAudio_GetStatus_Proxy(
+ ISpAudio * This,
+ /* [out] */ SPAUDIOSTATUS *pStatus);
+
+
+void __RPC_STUB ISpAudio_GetStatus_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpAudio_SetBufferInfo_Proxy(
+ ISpAudio * This,
+ /* [in] */ const SPAUDIOBUFFERINFO *pBuffInfo);
+
+
+void __RPC_STUB ISpAudio_SetBufferInfo_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpAudio_GetBufferInfo_Proxy(
+ ISpAudio * This,
+ /* [out] */ SPAUDIOBUFFERINFO *pBuffInfo);
+
+
+void __RPC_STUB ISpAudio_GetBufferInfo_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpAudio_GetDefaultFormat_Proxy(
+ ISpAudio * This,
+ /* [out] */ GUID *pFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemWaveFormatEx);
+
+
+void __RPC_STUB ISpAudio_GetDefaultFormat_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HANDLE STDMETHODCALLTYPE ISpAudio_EventHandle_Proxy(
+ ISpAudio * This);
+
+
+void __RPC_STUB ISpAudio_EventHandle_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpAudio_GetVolumeLevel_Proxy(
+ ISpAudio * This,
+ /* [out] */ ULONG *pLevel);
+
+
+void __RPC_STUB ISpAudio_GetVolumeLevel_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpAudio_SetVolumeLevel_Proxy(
+ ISpAudio * This,
+ /* [in] */ ULONG Level);
+
+
+void __RPC_STUB ISpAudio_SetVolumeLevel_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpAudio_GetBufferNotifySize_Proxy(
+ ISpAudio * This,
+ /* [out] */ ULONG *pcbSize);
+
+
+void __RPC_STUB ISpAudio_GetBufferNotifySize_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpAudio_SetBufferNotifySize_Proxy(
+ ISpAudio * This,
+ /* [in] */ ULONG cbSize);
+
+
+void __RPC_STUB ISpAudio_SetBufferNotifySize_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpAudio_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpMMSysAudio_INTERFACE_DEFINED__
+#define __ISpMMSysAudio_INTERFACE_DEFINED__
+
+/* interface ISpMMSysAudio */
+/* [restricted][local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpMMSysAudio;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("15806F6E-1D70-4B48-98E6-3B1A007509AB")
+ ISpMMSysAudio : public ISpAudio
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
+ /* [out] */ UINT *puDeviceId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetDeviceId(
+ /* [in] */ UINT uDeviceId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMMHandle(
+ void **pHandle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetLineId(
+ /* [out] */ UINT *puLineId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetLineId(
+ /* [in] */ UINT uLineId) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpMMSysAudioVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpMMSysAudio * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpMMSysAudio * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpMMSysAudio * This);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )(
+ ISpMMSysAudio * This,
+ /* [length_is][size_is][out] */ void *pv,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbRead);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )(
+ ISpMMSysAudio * This,
+ /* [size_is][in] */ const void *pv,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbWritten);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Seek )(
+ ISpMMSysAudio * This,
+ /* [in] */ LARGE_INTEGER dlibMove,
+ /* [in] */ DWORD dwOrigin,
+ /* [out] */ ULARGE_INTEGER *plibNewPosition);
+
+ HRESULT ( STDMETHODCALLTYPE *SetSize )(
+ ISpMMSysAudio * This,
+ /* [in] */ ULARGE_INTEGER libNewSize);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *CopyTo )(
+ ISpMMSysAudio * This,
+ /* [unique][in] */ IStream *pstm,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [out] */ ULARGE_INTEGER *pcbRead,
+ /* [out] */ ULARGE_INTEGER *pcbWritten);
+
+ HRESULT ( STDMETHODCALLTYPE *Commit )(
+ ISpMMSysAudio * This,
+ /* [in] */ DWORD grfCommitFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *Revert )(
+ ISpMMSysAudio * This);
+
+ HRESULT ( STDMETHODCALLTYPE *LockRegion )(
+ ISpMMSysAudio * This,
+ /* [in] */ ULARGE_INTEGER libOffset,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [in] */ DWORD dwLockType);
+
+ HRESULT ( STDMETHODCALLTYPE *UnlockRegion )(
+ ISpMMSysAudio * This,
+ /* [in] */ ULARGE_INTEGER libOffset,
+ /* [in] */ ULARGE_INTEGER cb,
+ /* [in] */ DWORD dwLockType);
+
+ HRESULT ( STDMETHODCALLTYPE *Stat )(
+ ISpMMSysAudio * This,
+ /* [out] */ STATSTG *pstatstg,
+ /* [in] */ DWORD grfStatFlag);
+
+ HRESULT ( STDMETHODCALLTYPE *Clone )(
+ ISpMMSysAudio * This,
+ /* [out] */ IStream **ppstm);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFormat )(
+ ISpMMSysAudio * This,
+ GUID *pguidFormatId,
+ WAVEFORMATEX **ppCoMemWaveFormatEx);
+
+ HRESULT ( STDMETHODCALLTYPE *SetState )(
+ ISpMMSysAudio * This,
+ /* [in] */ SPAUDIOSTATE NewState,
+ /* [in] */ ULONGLONG ullReserved);
+
+ HRESULT ( STDMETHODCALLTYPE *SetFormat )(
+ ISpMMSysAudio * This,
+ /* [in] */ REFGUID rguidFmtId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStatus )(
+ ISpMMSysAudio * This,
+ /* [out] */ SPAUDIOSTATUS *pStatus);
+
+ HRESULT ( STDMETHODCALLTYPE *SetBufferInfo )(
+ ISpMMSysAudio * This,
+ /* [in] */ const SPAUDIOBUFFERINFO *pBuffInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBufferInfo )(
+ ISpMMSysAudio * This,
+ /* [out] */ SPAUDIOBUFFERINFO *pBuffInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDefaultFormat )(
+ ISpMMSysAudio * This,
+ /* [out] */ GUID *pFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemWaveFormatEx);
+
+ HANDLE ( STDMETHODCALLTYPE *EventHandle )(
+ ISpMMSysAudio * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetVolumeLevel )(
+ ISpMMSysAudio * This,
+ /* [out] */ ULONG *pLevel);
+
+ HRESULT ( STDMETHODCALLTYPE *SetVolumeLevel )(
+ ISpMMSysAudio * This,
+ /* [in] */ ULONG Level);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBufferNotifySize )(
+ ISpMMSysAudio * This,
+ /* [out] */ ULONG *pcbSize);
+
+ HRESULT ( STDMETHODCALLTYPE *SetBufferNotifySize )(
+ ISpMMSysAudio * This,
+ /* [in] */ ULONG cbSize);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDeviceId )(
+ ISpMMSysAudio * This,
+ /* [out] */ UINT *puDeviceId);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDeviceId )(
+ ISpMMSysAudio * This,
+ /* [in] */ UINT uDeviceId);
+
+ HRESULT ( STDMETHODCALLTYPE *GetMMHandle )(
+ ISpMMSysAudio * This,
+ void **pHandle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetLineId )(
+ ISpMMSysAudio * This,
+ /* [out] */ UINT *puLineId);
+
+ HRESULT ( STDMETHODCALLTYPE *SetLineId )(
+ ISpMMSysAudio * This,
+ /* [in] */ UINT uLineId);
+
+ END_INTERFACE
+ } ISpMMSysAudioVtbl;
+
+ interface ISpMMSysAudio
+ {
+ CONST_VTBL struct ISpMMSysAudioVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpMMSysAudio_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpMMSysAudio_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpMMSysAudio_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpMMSysAudio_Read(This,pv,cb,pcbRead) \
+ (This)->lpVtbl -> Read(This,pv,cb,pcbRead)
+
+#define ISpMMSysAudio_Write(This,pv,cb,pcbWritten) \
+ (This)->lpVtbl -> Write(This,pv,cb,pcbWritten)
+
+
+#define ISpMMSysAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) \
+ (This)->lpVtbl -> Seek(This,dlibMove,dwOrigin,plibNewPosition)
+
+#define ISpMMSysAudio_SetSize(This,libNewSize) \
+ (This)->lpVtbl -> SetSize(This,libNewSize)
+
+#define ISpMMSysAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) \
+ (This)->lpVtbl -> CopyTo(This,pstm,cb,pcbRead,pcbWritten)
+
+#define ISpMMSysAudio_Commit(This,grfCommitFlags) \
+ (This)->lpVtbl -> Commit(This,grfCommitFlags)
+
+#define ISpMMSysAudio_Revert(This) \
+ (This)->lpVtbl -> Revert(This)
+
+#define ISpMMSysAudio_LockRegion(This,libOffset,cb,dwLockType) \
+ (This)->lpVtbl -> LockRegion(This,libOffset,cb,dwLockType)
+
+#define ISpMMSysAudio_UnlockRegion(This,libOffset,cb,dwLockType) \
+ (This)->lpVtbl -> UnlockRegion(This,libOffset,cb,dwLockType)
+
+#define ISpMMSysAudio_Stat(This,pstatstg,grfStatFlag) \
+ (This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag)
+
+#define ISpMMSysAudio_Clone(This,ppstm) \
+ (This)->lpVtbl -> Clone(This,ppstm)
+
+
+#define ISpMMSysAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) \
+ (This)->lpVtbl -> GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
+
+
+#define ISpMMSysAudio_SetState(This,NewState,ullReserved) \
+ (This)->lpVtbl -> SetState(This,NewState,ullReserved)
+
+#define ISpMMSysAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) \
+ (This)->lpVtbl -> SetFormat(This,rguidFmtId,pWaveFormatEx)
+
+#define ISpMMSysAudio_GetStatus(This,pStatus) \
+ (This)->lpVtbl -> GetStatus(This,pStatus)
+
+#define ISpMMSysAudio_SetBufferInfo(This,pBuffInfo) \
+ (This)->lpVtbl -> SetBufferInfo(This,pBuffInfo)
+
+#define ISpMMSysAudio_GetBufferInfo(This,pBuffInfo) \
+ (This)->lpVtbl -> GetBufferInfo(This,pBuffInfo)
+
+#define ISpMMSysAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) \
+ (This)->lpVtbl -> GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
+
+#define ISpMMSysAudio_EventHandle(This) \
+ (This)->lpVtbl -> EventHandle(This)
+
+#define ISpMMSysAudio_GetVolumeLevel(This,pLevel) \
+ (This)->lpVtbl -> GetVolumeLevel(This,pLevel)
+
+#define ISpMMSysAudio_SetVolumeLevel(This,Level) \
+ (This)->lpVtbl -> SetVolumeLevel(This,Level)
+
+#define ISpMMSysAudio_GetBufferNotifySize(This,pcbSize) \
+ (This)->lpVtbl -> GetBufferNotifySize(This,pcbSize)
+
+#define ISpMMSysAudio_SetBufferNotifySize(This,cbSize) \
+ (This)->lpVtbl -> SetBufferNotifySize(This,cbSize)
+
+
+#define ISpMMSysAudio_GetDeviceId(This,puDeviceId) \
+ (This)->lpVtbl -> GetDeviceId(This,puDeviceId)
+
+#define ISpMMSysAudio_SetDeviceId(This,uDeviceId) \
+ (This)->lpVtbl -> SetDeviceId(This,uDeviceId)
+
+#define ISpMMSysAudio_GetMMHandle(This,pHandle) \
+ (This)->lpVtbl -> GetMMHandle(This,pHandle)
+
+#define ISpMMSysAudio_GetLineId(This,puLineId) \
+ (This)->lpVtbl -> GetLineId(This,puLineId)
+
+#define ISpMMSysAudio_SetLineId(This,uLineId) \
+ (This)->lpVtbl -> SetLineId(This,uLineId)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpMMSysAudio_GetDeviceId_Proxy(
+ ISpMMSysAudio * This,
+ /* [out] */ UINT *puDeviceId);
+
+
+void __RPC_STUB ISpMMSysAudio_GetDeviceId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpMMSysAudio_SetDeviceId_Proxy(
+ ISpMMSysAudio * This,
+ /* [in] */ UINT uDeviceId);
+
+
+void __RPC_STUB ISpMMSysAudio_SetDeviceId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpMMSysAudio_GetMMHandle_Proxy(
+ ISpMMSysAudio * This,
+ void **pHandle);
+
+
+void __RPC_STUB ISpMMSysAudio_GetMMHandle_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpMMSysAudio_GetLineId_Proxy(
+ ISpMMSysAudio * This,
+ /* [out] */ UINT *puLineId);
+
+
+void __RPC_STUB ISpMMSysAudio_GetLineId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpMMSysAudio_SetLineId_Proxy(
+ ISpMMSysAudio * This,
+ /* [in] */ UINT uLineId);
+
+
+void __RPC_STUB ISpMMSysAudio_SetLineId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpMMSysAudio_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpTranscript_INTERFACE_DEFINED__
+#define __ISpTranscript_INTERFACE_DEFINED__
+
+/* interface ISpTranscript */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpTranscript;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("10F63BCE-201A-11D3-AC70-00C04F8EE6C0")
+ ISpTranscript : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetTranscript(
+ /* [string][out] */ WCHAR **ppszTranscript) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AppendTranscript(
+ /* [string][in] */ const WCHAR *pszTranscript) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpTranscriptVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpTranscript * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpTranscript * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpTranscript * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTranscript )(
+ ISpTranscript * This,
+ /* [string][out] */ WCHAR **ppszTranscript);
+
+ HRESULT ( STDMETHODCALLTYPE *AppendTranscript )(
+ ISpTranscript * This,
+ /* [string][in] */ const WCHAR *pszTranscript);
+
+ END_INTERFACE
+ } ISpTranscriptVtbl;
+
+ interface ISpTranscript
+ {
+ CONST_VTBL struct ISpTranscriptVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpTranscript_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpTranscript_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpTranscript_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpTranscript_GetTranscript(This,ppszTranscript) \
+ (This)->lpVtbl -> GetTranscript(This,ppszTranscript)
+
+#define ISpTranscript_AppendTranscript(This,pszTranscript) \
+ (This)->lpVtbl -> AppendTranscript(This,pszTranscript)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpTranscript_GetTranscript_Proxy(
+ ISpTranscript * This,
+ /* [string][out] */ WCHAR **ppszTranscript);
+
+
+void __RPC_STUB ISpTranscript_GetTranscript_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpTranscript_AppendTranscript_Proxy(
+ ISpTranscript * This,
+ /* [string][in] */ const WCHAR *pszTranscript);
+
+
+void __RPC_STUB ISpTranscript_AppendTranscript_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpTranscript_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapi_0270 */
+/* [local] */
+
+typedef /* [hidden] */
+enum SPDISPLYATTRIBUTES
+ { SPAF_ONE_TRAILING_SPACE = 0x2,
+ SPAF_TWO_TRAILING_SPACES = 0x4,
+ SPAF_CONSUME_LEADING_SPACES = 0x8,
+ SPAF_ALL = 0xf
+ } SPDISPLAYATTRIBUTES;
+
+typedef unsigned short SPPHONEID;
+
+typedef /* [hidden][restricted] */ struct SPPHRASEELEMENT
+ {
+ ULONG ulAudioTimeOffset;
+ ULONG ulAudioSizeTime;
+ ULONG ulAudioStreamOffset;
+ ULONG ulAudioSizeBytes;
+ ULONG ulRetainedStreamOffset;
+ ULONG ulRetainedSizeBytes;
+ const WCHAR *pszDisplayText;
+ const WCHAR *pszLexicalForm;
+ const SPPHONEID *pszPronunciation;
+ BYTE bDisplayAttributes;
+ signed char RequiredConfidence;
+ signed char ActualConfidence;
+ BYTE Reserved;
+ float SREngineConfidence;
+ } SPPHRASEELEMENT;
+
+typedef /* [hidden][restricted] */ struct SPPHRASERULE SPPHRASERULE;
+
+/* [hidden] */ struct SPPHRASERULE
+ {
+ const WCHAR *pszName;
+ ULONG ulId;
+ ULONG ulFirstElement;
+ ULONG ulCountOfElements;
+ const SPPHRASERULE *pNextSibling;
+ const SPPHRASERULE *pFirstChild;
+ float SREngineConfidence;
+ signed char Confidence;
+ } ;
+typedef /* [hidden][restricted] */ struct SPPHRASEPROPERTY SPPHRASEPROPERTY;
+
+/* [hidden] */ struct SPPHRASEPROPERTY
+ {
+ const WCHAR *pszName;
+ ULONG ulId;
+ const WCHAR *pszValue;
+ VARIANT vValue;
+ ULONG ulFirstElement;
+ ULONG ulCountOfElements;
+ const SPPHRASEPROPERTY *pNextSibling;
+ const SPPHRASEPROPERTY *pFirstChild;
+ float SREngineConfidence;
+ signed char Confidence;
+ } ;
+typedef /* [hidden][restricted] */ struct SPPHRASEREPLACEMENT
+ {
+ BYTE bDisplayAttributes;
+ const WCHAR *pszReplacementText;
+ ULONG ulFirstElement;
+ ULONG ulCountOfElements;
+ } SPPHRASEREPLACEMENT;
+
+typedef /* [hidden][restricted] */ struct SPPHRASE
+ {
+ ULONG cbSize;
+ WORD LangID;
+ WORD wReserved;
+ ULONGLONG ullGrammarID;
+ ULONGLONG ftStartTime;
+ ULONGLONG ullAudioStreamPosition;
+ ULONG ulAudioSizeBytes;
+ ULONG ulRetainedSizeBytes;
+ ULONG ulAudioSizeTime;
+ SPPHRASERULE Rule;
+ const SPPHRASEPROPERTY *pProperties;
+ const SPPHRASEELEMENT *pElements;
+ ULONG cReplacements;
+ const SPPHRASEREPLACEMENT *pReplacements;
+ GUID SREngineID;
+ ULONG ulSREnginePrivateDataSize;
+ const BYTE *pSREnginePrivateData;
+ } SPPHRASE;
+
+typedef /* [hidden][restricted] */ struct SPSERIALIZEDPHRASE
+ {
+ ULONG ulSerializedSize;
+ } SPSERIALIZEDPHRASE;
+
+typedef /* [hidden] */
+enum SPVALUETYPE
+ { SPDF_PROPERTY = 0x1,
+ SPDF_REPLACEMENT = 0x2,
+ SPDF_RULE = 0x4,
+ SPDF_DISPLAYTEXT = 0x8,
+ SPDF_LEXICALFORM = 0x10,
+ SPDF_PRONUNCIATION = 0x20,
+ SPDF_AUDIO = 0x40,
+ SPDF_ALTERNATES = 0x80,
+ SPDF_ALL = 0xff
+ } SPVALUETYPE;
+
+typedef /* [hidden] */ struct SPBINARYGRAMMAR
+ {
+ ULONG ulTotalSerializedSize;
+ } SPBINARYGRAMMAR;
+
+typedef /* [hidden] */
+enum SPPHRASERNG
+ { SPPR_ALL_ELEMENTS = -1
+ } SPPHRASERNG;
+
+#define SP_GETWHOLEPHRASE SPPR_ALL_ELEMENTS
+#define SPRR_ALL_ELEMENTS SPPR_ALL_ELEMENTS
+#if 0
+typedef void *SPSTATEHANDLE;
+
+#else
+DECLARE_HANDLE(SPSTATEHANDLE);
+#endif
+typedef /* [hidden] */
+enum SPRECOEVENTFLAGS
+ { SPREF_AutoPause = 1 << 0,
+ SPREF_Emulated = 1 << 1
+ } SPRECOEVENTFLAGS;
+
+typedef /* [hidden] */
+enum SPPARTOFSPEECH
+ { SPPS_NotOverriden = -1,
+ SPPS_Unknown = 0,
+ SPPS_Noun = 0x1000,
+ SPPS_Verb = 0x2000,
+ SPPS_Modifier = 0x3000,
+ SPPS_Function = 0x4000,
+ SPPS_Interjection = 0x5000
+ } SPPARTOFSPEECH;
+
+typedef /* [hidden] */
+enum SPLEXICONTYPE
+ { eLEXTYPE_USER = 1L << 0,
+ eLEXTYPE_APP = 1L << 1,
+ eLEXTYPE_RESERVED1 = 1L << 2,
+ eLEXTYPE_RESERVED2 = 1L << 3,
+ eLEXTYPE_RESERVED3 = 1L << 4,
+ eLEXTYPE_RESERVED4 = 1L << 5,
+ eLEXTYPE_RESERVED5 = 1L << 6,
+ eLEXTYPE_RESERVED6 = 1L << 7,
+ eLEXTYPE_RESERVED7 = 1L << 8,
+ eLEXTYPE_RESERVED8 = 1L << 9,
+ eLEXTYPE_RESERVED9 = 1L << 10,
+ eLEXTYPE_RESERVED10 = 1L << 11,
+ eLEXTYPE_PRIVATE1 = 1L << 12,
+ eLEXTYPE_PRIVATE2 = 1L << 13,
+ eLEXTYPE_PRIVATE3 = 1L << 14,
+ eLEXTYPE_PRIVATE4 = 1L << 15,
+ eLEXTYPE_PRIVATE5 = 1L << 16,
+ eLEXTYPE_PRIVATE6 = 1L << 17,
+ eLEXTYPE_PRIVATE7 = 1L << 18,
+ eLEXTYPE_PRIVATE8 = 1L << 19,
+ eLEXTYPE_PRIVATE9 = 1L << 20,
+ eLEXTYPE_PRIVATE10 = 1L << 21,
+ eLEXTYPE_PRIVATE11 = 1L << 22,
+ eLEXTYPE_PRIVATE12 = 1L << 23,
+ eLEXTYPE_PRIVATE13 = 1L << 24,
+ eLEXTYPE_PRIVATE14 = 1L << 25,
+ eLEXTYPE_PRIVATE15 = 1L << 26,
+ eLEXTYPE_PRIVATE16 = 1L << 27,
+ eLEXTYPE_PRIVATE17 = 1L << 28,
+ eLEXTYPE_PRIVATE18 = 1L << 29,
+ eLEXTYPE_PRIVATE19 = 1L << 30,
+ eLEXTYPE_PRIVATE20 = 1L << 31
+ } SPLEXICONTYPE;
+
+typedef /* [hidden] */
+enum SPWORDTYPE
+ { eWORDTYPE_ADDED = 1L << 0,
+ eWORDTYPE_DELETED = 1L << 1
+ } SPWORDTYPE;
+
+typedef /* [hidden][restricted] */ struct SPWORDPRONUNCIATION
+ {
+ struct SPWORDPRONUNCIATION *pNextWordPronunciation;
+ SPLEXICONTYPE eLexiconType;
+ WORD LangID;
+ WORD wReserved;
+ SPPARTOFSPEECH ePartOfSpeech;
+ SPPHONEID szPronunciation[ 1 ];
+ } SPWORDPRONUNCIATION;
+
+typedef /* [hidden][restricted] */ struct SPWORDPRONUNCIATIONLIST
+ {
+ ULONG ulSize;
+ BYTE *pvBuffer;
+ SPWORDPRONUNCIATION *pFirstWordPronunciation;
+ } SPWORDPRONUNCIATIONLIST;
+
+typedef /* [hidden][restricted] */ struct SPWORD
+ {
+ struct SPWORD *pNextWord;
+ WORD LangID;
+ WORD wReserved;
+ SPWORDTYPE eWordType;
+ WCHAR *pszWord;
+ SPWORDPRONUNCIATION *pFirstWordPronunciation;
+ } SPWORD;
+
+typedef /* [hidden][restricted] */ struct SPWORDLIST
+ {
+ ULONG ulSize;
+ BYTE *pvBuffer;
+ SPWORD *pFirstWord;
+ } SPWORDLIST;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0270_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0270_v0_0_s_ifspec;
+
+#ifndef __ISpLexicon_INTERFACE_DEFINED__
+#define __ISpLexicon_INTERFACE_DEFINED__
+
+/* interface ISpLexicon */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpLexicon;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("DA41A7C2-5383-4DB2-916B-6C1719E3DB58")
+ ISpLexicon : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
+ /* [in] */ const WCHAR *pszWord,
+ /* [in] */ WORD LangID,
+ /* [in] */ DWORD dwFlags,
+ /* [out][in] */ SPWORDPRONUNCIATIONLIST *pWordPronunciationList) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
+ /* [in] */ const WCHAR *pszWord,
+ /* [in] */ WORD LangID,
+ /* [in] */ SPPARTOFSPEECH ePartOfSpeech,
+ /* [in] */ const SPPHONEID *pszPronunciation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
+ /* [in] */ const WCHAR *pszWord,
+ /* [in] */ WORD LangID,
+ /* [in] */ SPPARTOFSPEECH ePartOfSpeech,
+ /* [in] */ const SPPHONEID *pszPronunciation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetGeneration(
+ DWORD *pdwGeneration) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
+ /* [in] */ DWORD dwFlags,
+ /* [out][in] */ DWORD *pdwGeneration,
+ /* [out][in] */ SPWORDLIST *pWordList) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetWords(
+ /* [in] */ DWORD dwFlags,
+ /* [out][in] */ DWORD *pdwGeneration,
+ /* [out][in] */ DWORD *pdwCookie,
+ /* [out][in] */ SPWORDLIST *pWordList) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpLexiconVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpLexicon * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpLexicon * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpLexicon * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPronunciations )(
+ ISpLexicon * This,
+ /* [in] */ const WCHAR *pszWord,
+ /* [in] */ WORD LangID,
+ /* [in] */ DWORD dwFlags,
+ /* [out][in] */ SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
+
+ HRESULT ( STDMETHODCALLTYPE *AddPronunciation )(
+ ISpLexicon * This,
+ /* [in] */ const WCHAR *pszWord,
+ /* [in] */ WORD LangID,
+ /* [in] */ SPPARTOFSPEECH ePartOfSpeech,
+ /* [in] */ const SPPHONEID *pszPronunciation);
+
+ HRESULT ( STDMETHODCALLTYPE *RemovePronunciation )(
+ ISpLexicon * This,
+ /* [in] */ const WCHAR *pszWord,
+ /* [in] */ WORD LangID,
+ /* [in] */ SPPARTOFSPEECH ePartOfSpeech,
+ /* [in] */ const SPPHONEID *pszPronunciation);
+
+ HRESULT ( STDMETHODCALLTYPE *GetGeneration )(
+ ISpLexicon * This,
+ DWORD *pdwGeneration);
+
+ HRESULT ( STDMETHODCALLTYPE *GetGenerationChange )(
+ ISpLexicon * This,
+ /* [in] */ DWORD dwFlags,
+ /* [out][in] */ DWORD *pdwGeneration,
+ /* [out][in] */ SPWORDLIST *pWordList);
+
+ HRESULT ( STDMETHODCALLTYPE *GetWords )(
+ ISpLexicon * This,
+ /* [in] */ DWORD dwFlags,
+ /* [out][in] */ DWORD *pdwGeneration,
+ /* [out][in] */ DWORD *pdwCookie,
+ /* [out][in] */ SPWORDLIST *pWordList);
+
+ END_INTERFACE
+ } ISpLexiconVtbl;
+
+ interface ISpLexicon
+ {
+ CONST_VTBL struct ISpLexiconVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpLexicon_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpLexicon_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpLexicon_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) \
+ (This)->lpVtbl -> GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
+
+#define ISpLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) \
+ (This)->lpVtbl -> AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
+
+#define ISpLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) \
+ (This)->lpVtbl -> RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
+
+#define ISpLexicon_GetGeneration(This,pdwGeneration) \
+ (This)->lpVtbl -> GetGeneration(This,pdwGeneration)
+
+#define ISpLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) \
+ (This)->lpVtbl -> GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
+
+#define ISpLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) \
+ (This)->lpVtbl -> GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpLexicon_GetPronunciations_Proxy(
+ ISpLexicon * This,
+ /* [in] */ const WCHAR *pszWord,
+ /* [in] */ WORD LangID,
+ /* [in] */ DWORD dwFlags,
+ /* [out][in] */ SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
+
+
+void __RPC_STUB ISpLexicon_GetPronunciations_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpLexicon_AddPronunciation_Proxy(
+ ISpLexicon * This,
+ /* [in] */ const WCHAR *pszWord,
+ /* [in] */ WORD LangID,
+ /* [in] */ SPPARTOFSPEECH ePartOfSpeech,
+ /* [in] */ const SPPHONEID *pszPronunciation);
+
+
+void __RPC_STUB ISpLexicon_AddPronunciation_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpLexicon_RemovePronunciation_Proxy(
+ ISpLexicon * This,
+ /* [in] */ const WCHAR *pszWord,
+ /* [in] */ WORD LangID,
+ /* [in] */ SPPARTOFSPEECH ePartOfSpeech,
+ /* [in] */ const SPPHONEID *pszPronunciation);
+
+
+void __RPC_STUB ISpLexicon_RemovePronunciation_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpLexicon_GetGeneration_Proxy(
+ ISpLexicon * This,
+ DWORD *pdwGeneration);
+
+
+void __RPC_STUB ISpLexicon_GetGeneration_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpLexicon_GetGenerationChange_Proxy(
+ ISpLexicon * This,
+ /* [in] */ DWORD dwFlags,
+ /* [out][in] */ DWORD *pdwGeneration,
+ /* [out][in] */ SPWORDLIST *pWordList);
+
+
+void __RPC_STUB ISpLexicon_GetGenerationChange_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpLexicon_GetWords_Proxy(
+ ISpLexicon * This,
+ /* [in] */ DWORD dwFlags,
+ /* [out][in] */ DWORD *pdwGeneration,
+ /* [out][in] */ DWORD *pdwCookie,
+ /* [out][in] */ SPWORDLIST *pWordList);
+
+
+void __RPC_STUB ISpLexicon_GetWords_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpLexicon_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpContainerLexicon_INTERFACE_DEFINED__
+#define __ISpContainerLexicon_INTERFACE_DEFINED__
+
+/* interface ISpContainerLexicon */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpContainerLexicon;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("8565572F-C094-41CC-B56E-10BD9C3FF044")
+ ISpContainerLexicon : public ISpLexicon
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE AddLexicon(
+ /* [in] */ ISpLexicon *pAddLexicon,
+ /* [in] */ DWORD dwFlags) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpContainerLexiconVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpContainerLexicon * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpContainerLexicon * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpContainerLexicon * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPronunciations )(
+ ISpContainerLexicon * This,
+ /* [in] */ const WCHAR *pszWord,
+ /* [in] */ WORD LangID,
+ /* [in] */ DWORD dwFlags,
+ /* [out][in] */ SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
+
+ HRESULT ( STDMETHODCALLTYPE *AddPronunciation )(
+ ISpContainerLexicon * This,
+ /* [in] */ const WCHAR *pszWord,
+ /* [in] */ WORD LangID,
+ /* [in] */ SPPARTOFSPEECH ePartOfSpeech,
+ /* [in] */ const SPPHONEID *pszPronunciation);
+
+ HRESULT ( STDMETHODCALLTYPE *RemovePronunciation )(
+ ISpContainerLexicon * This,
+ /* [in] */ const WCHAR *pszWord,
+ /* [in] */ WORD LangID,
+ /* [in] */ SPPARTOFSPEECH ePartOfSpeech,
+ /* [in] */ const SPPHONEID *pszPronunciation);
+
+ HRESULT ( STDMETHODCALLTYPE *GetGeneration )(
+ ISpContainerLexicon * This,
+ DWORD *pdwGeneration);
+
+ HRESULT ( STDMETHODCALLTYPE *GetGenerationChange )(
+ ISpContainerLexicon * This,
+ /* [in] */ DWORD dwFlags,
+ /* [out][in] */ DWORD *pdwGeneration,
+ /* [out][in] */ SPWORDLIST *pWordList);
+
+ HRESULT ( STDMETHODCALLTYPE *GetWords )(
+ ISpContainerLexicon * This,
+ /* [in] */ DWORD dwFlags,
+ /* [out][in] */ DWORD *pdwGeneration,
+ /* [out][in] */ DWORD *pdwCookie,
+ /* [out][in] */ SPWORDLIST *pWordList);
+
+ HRESULT ( STDMETHODCALLTYPE *AddLexicon )(
+ ISpContainerLexicon * This,
+ /* [in] */ ISpLexicon *pAddLexicon,
+ /* [in] */ DWORD dwFlags);
+
+ END_INTERFACE
+ } ISpContainerLexiconVtbl;
+
+ interface ISpContainerLexicon
+ {
+ CONST_VTBL struct ISpContainerLexiconVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpContainerLexicon_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpContainerLexicon_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpContainerLexicon_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpContainerLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) \
+ (This)->lpVtbl -> GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
+
+#define ISpContainerLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) \
+ (This)->lpVtbl -> AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
+
+#define ISpContainerLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) \
+ (This)->lpVtbl -> RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
+
+#define ISpContainerLexicon_GetGeneration(This,pdwGeneration) \
+ (This)->lpVtbl -> GetGeneration(This,pdwGeneration)
+
+#define ISpContainerLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) \
+ (This)->lpVtbl -> GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
+
+#define ISpContainerLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) \
+ (This)->lpVtbl -> GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
+
+
+#define ISpContainerLexicon_AddLexicon(This,pAddLexicon,dwFlags) \
+ (This)->lpVtbl -> AddLexicon(This,pAddLexicon,dwFlags)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpContainerLexicon_AddLexicon_Proxy(
+ ISpContainerLexicon * This,
+ /* [in] */ ISpLexicon *pAddLexicon,
+ /* [in] */ DWORD dwFlags);
+
+
+void __RPC_STUB ISpContainerLexicon_AddLexicon_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpContainerLexicon_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpPhoneConverter_INTERFACE_DEFINED__
+#define __ISpPhoneConverter_INTERFACE_DEFINED__
+
+/* interface ISpPhoneConverter */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpPhoneConverter;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("8445C581-0CAC-4A38-ABFE-9B2CE2826455")
+ ISpPhoneConverter : public ISpObjectWithToken
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE PhoneToId(
+ /* [in] */ const WCHAR *pszPhone,
+ /* [out] */ SPPHONEID *pId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IdToPhone(
+ /* [in] */ const SPPHONEID *pId,
+ /* [out] */ WCHAR *pszPhone) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpPhoneConverterVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpPhoneConverter * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpPhoneConverter * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpPhoneConverter * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetObjectToken )(
+ ISpPhoneConverter * This,
+ ISpObjectToken *pToken);
+
+ HRESULT ( STDMETHODCALLTYPE *GetObjectToken )(
+ ISpPhoneConverter * This,
+ ISpObjectToken **ppToken);
+
+ HRESULT ( STDMETHODCALLTYPE *PhoneToId )(
+ ISpPhoneConverter * This,
+ /* [in] */ const WCHAR *pszPhone,
+ /* [out] */ SPPHONEID *pId);
+
+ HRESULT ( STDMETHODCALLTYPE *IdToPhone )(
+ ISpPhoneConverter * This,
+ /* [in] */ const SPPHONEID *pId,
+ /* [out] */ WCHAR *pszPhone);
+
+ END_INTERFACE
+ } ISpPhoneConverterVtbl;
+
+ interface ISpPhoneConverter
+ {
+ CONST_VTBL struct ISpPhoneConverterVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpPhoneConverter_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpPhoneConverter_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpPhoneConverter_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpPhoneConverter_SetObjectToken(This,pToken) \
+ (This)->lpVtbl -> SetObjectToken(This,pToken)
+
+#define ISpPhoneConverter_GetObjectToken(This,ppToken) \
+ (This)->lpVtbl -> GetObjectToken(This,ppToken)
+
+
+#define ISpPhoneConverter_PhoneToId(This,pszPhone,pId) \
+ (This)->lpVtbl -> PhoneToId(This,pszPhone,pId)
+
+#define ISpPhoneConverter_IdToPhone(This,pId,pszPhone) \
+ (This)->lpVtbl -> IdToPhone(This,pId,pszPhone)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpPhoneConverter_PhoneToId_Proxy(
+ ISpPhoneConverter * This,
+ /* [in] */ const WCHAR *pszPhone,
+ /* [out] */ SPPHONEID *pId);
+
+
+void __RPC_STUB ISpPhoneConverter_PhoneToId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpPhoneConverter_IdToPhone_Proxy(
+ ISpPhoneConverter * This,
+ /* [in] */ const SPPHONEID *pId,
+ /* [out] */ WCHAR *pszPhone);
+
+
+void __RPC_STUB ISpPhoneConverter_IdToPhone_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpPhoneConverter_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapi_0273 */
+/* [local] */
+
+typedef /* [hidden][restricted] */ struct SPVPITCH
+ {
+ long MiddleAdj;
+ long RangeAdj;
+ } SPVPITCH;
+
+typedef /* [hidden] */
+enum SPVACTIONS
+ { SPVA_Speak = 0,
+ SPVA_Silence = SPVA_Speak + 1,
+ SPVA_Pronounce = SPVA_Silence + 1,
+ SPVA_Bookmark = SPVA_Pronounce + 1,
+ SPVA_SpellOut = SPVA_Bookmark + 1,
+ SPVA_Section = SPVA_SpellOut + 1,
+ SPVA_ParseUnknownTag = SPVA_Section + 1
+ } SPVACTIONS;
+
+typedef /* [hidden][restricted] */ struct SPVCONTEXT
+ {
+ LPCWSTR pCategory;
+ LPCWSTR pBefore;
+ LPCWSTR pAfter;
+ } SPVCONTEXT;
+
+typedef /* [hidden][restricted] */ struct SPVSTATE
+ {
+ SPVACTIONS eAction;
+ WORD LangID;
+ WORD wReserved;
+ long EmphAdj;
+ long RateAdj;
+ ULONG Volume;
+ SPVPITCH PitchAdj;
+ ULONG SilenceMSecs;
+ SPPHONEID *pPhoneIds;
+ SPPARTOFSPEECH ePartOfSpeech;
+ SPVCONTEXT Context;
+ } SPVSTATE;
+
+typedef /* [hidden] */
+enum SPRUNSTATE
+ { SPRS_DONE = 1L << 0,
+ SPRS_IS_SPEAKING = 1L << 1
+ } SPRUNSTATE;
+
+typedef /* [hidden] */
+enum SPVLIMITS
+ { SPMIN_VOLUME = 0,
+ SPMAX_VOLUME = 100,
+ SPMIN_RATE = -10,
+ SPMAX_RATE = 10
+ } SPVLIMITS;
+
+typedef /* [hidden] */
+enum SPVPRIORITY
+ { SPVPRI_NORMAL = 0,
+ SPVPRI_ALERT = 1L << 0,
+ SPVPRI_OVER = 1L << 1
+ } SPVPRIORITY;
+
+typedef /* [hidden][restricted] */ struct SPVOICESTATUS
+ {
+ ULONG ulCurrentStream;
+ ULONG ulLastStreamQueued;
+ HRESULT hrLastResult;
+ DWORD dwRunningState;
+ ULONG ulInputWordPos;
+ ULONG ulInputWordLen;
+ ULONG ulInputSentPos;
+ ULONG ulInputSentLen;
+ LONG lBookmarkId;
+ SPPHONEID PhonemeId;
+ SPVISEMES VisemeId;
+ DWORD dwReserved1;
+ DWORD dwReserved2;
+ } SPVOICESTATUS;
+
+typedef /* [hidden] */
+enum SPEAKFLAGS
+ { SPF_DEFAULT = 0,
+ SPF_ASYNC = 1L << 0,
+ SPF_PURGEBEFORESPEAK = 1L << 1,
+ SPF_IS_FILENAME = 1L << 2,
+ SPF_IS_XML = 1L << 3,
+ SPF_IS_NOT_XML = 1L << 4,
+ SPF_PERSIST_XML = 1L << 5,
+ SPF_NLP_SPEAK_PUNC = 1L << 6,
+ SPF_NLP_MASK = SPF_NLP_SPEAK_PUNC,
+ SPF_VOICE_MASK = SPF_ASYNC | SPF_PURGEBEFORESPEAK | SPF_IS_FILENAME | SPF_IS_XML | SPF_IS_NOT_XML | SPF_NLP_MASK | SPF_PERSIST_XML,
+ SPF_UNUSED_FLAGS = ~SPF_VOICE_MASK
+ } SPEAKFLAGS;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0273_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0273_v0_0_s_ifspec;
+
+#ifndef __ISpVoice_INTERFACE_DEFINED__
+#define __ISpVoice_INTERFACE_DEFINED__
+
+/* interface ISpVoice */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpVoice;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6C44DF74-72B9-4992-A1EC-EF996E0422D4")
+ ISpVoice : public ISpEventSource
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetOutput(
+ /* [in] */ IUnknown *pUnkOutput,
+ /* [in] */ BOOL fAllowFormatChanges) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetOutputObjectToken(
+ /* [out] */ ISpObjectToken **ppObjectToken) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetOutputStream(
+ /* [out] */ ISpStreamFormat **ppStream) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Pause( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Resume( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetVoice(
+ /* [in] */ ISpObjectToken *pToken) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVoice(
+ /* [out] */ ISpObjectToken **ppToken) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Speak(
+ /* [string][in] */ const WCHAR *pwcs,
+ /* [in] */ DWORD dwFlags,
+ /* [out] */ ULONG *pulStreamNumber) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SpeakStream(
+ /* [in] */ IStream *pStream,
+ /* [in] */ DWORD dwFlags,
+ /* [out] */ ULONG *pulStreamNumber) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStatus(
+ /* [out] */ SPVOICESTATUS *pStatus,
+ /* [string][out] */ WCHAR **ppszLastBookmark) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Skip(
+ /* [string][in] */ WCHAR *pItemType,
+ /* [in] */ long lNumItems,
+ /* [out] */ ULONG *pulNumSkipped) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPriority(
+ /* [in] */ SPVPRIORITY ePriority) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPriority(
+ /* [out] */ SPVPRIORITY *pePriority) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetAlertBoundary(
+ /* [in] */ SPEVENTENUM eBoundary) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAlertBoundary(
+ /* [out] */ SPEVENTENUM *peBoundary) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetRate(
+ /* [in] */ long RateAdjust) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRate(
+ /* [out] */ long *pRateAdjust) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetVolume(
+ /* [in] */ USHORT usVolume) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVolume(
+ /* [out] */ USHORT *pusVolume) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
+ /* [in] */ ULONG msTimeout) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSyncSpeakTimeout(
+ /* [in] */ ULONG msTimeout) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSyncSpeakTimeout(
+ /* [out] */ ULONG *pmsTimeout) = 0;
+
+ virtual /* [local] */ HANDLE STDMETHODCALLTYPE SpeakCompleteEvent( void) = 0;
+
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE IsUISupported(
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [out] */ BOOL *pfSupported) = 0;
+
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE DisplayUI(
+ /* [in] */ HWND hwndParent,
+ /* [in] */ const WCHAR *pszTitle,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpVoiceVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpVoice * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpVoice * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpVoice * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetNotifySink )(
+ ISpVoice * This,
+ /* [in] */ ISpNotifySink *pNotifySink);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyWindowMessage )(
+ ISpVoice * This,
+ /* [in] */ HWND hWnd,
+ /* [in] */ UINT Msg,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyCallbackFunction )(
+ ISpVoice * This,
+ /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyCallbackInterface )(
+ ISpVoice * This,
+ /* [in] */ ISpNotifyCallback *pSpCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyWin32Event )(
+ ISpVoice * This);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *WaitForNotifyEvent )(
+ ISpVoice * This,
+ /* [in] */ DWORD dwMilliseconds);
+
+ /* [local] */ HANDLE ( STDMETHODCALLTYPE *GetNotifyEventHandle )(
+ ISpVoice * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetInterest )(
+ ISpVoice * This,
+ /* [in] */ ULONGLONG ullEventInterest,
+ /* [in] */ ULONGLONG ullQueuedInterest);
+
+ HRESULT ( STDMETHODCALLTYPE *GetEvents )(
+ ISpVoice * This,
+ /* [in] */ ULONG ulCount,
+ /* [size_is][out] */ SPEVENT *pEventArray,
+ /* [out] */ ULONG *pulFetched);
+
+ HRESULT ( STDMETHODCALLTYPE *GetInfo )(
+ ISpVoice * This,
+ /* [out] */ SPEVENTSOURCEINFO *pInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *SetOutput )(
+ ISpVoice * This,
+ /* [in] */ IUnknown *pUnkOutput,
+ /* [in] */ BOOL fAllowFormatChanges);
+
+ HRESULT ( STDMETHODCALLTYPE *GetOutputObjectToken )(
+ ISpVoice * This,
+ /* [out] */ ISpObjectToken **ppObjectToken);
+
+ HRESULT ( STDMETHODCALLTYPE *GetOutputStream )(
+ ISpVoice * This,
+ /* [out] */ ISpStreamFormat **ppStream);
+
+ HRESULT ( STDMETHODCALLTYPE *Pause )(
+ ISpVoice * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Resume )(
+ ISpVoice * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetVoice )(
+ ISpVoice * This,
+ /* [in] */ ISpObjectToken *pToken);
+
+ HRESULT ( STDMETHODCALLTYPE *GetVoice )(
+ ISpVoice * This,
+ /* [out] */ ISpObjectToken **ppToken);
+
+ HRESULT ( STDMETHODCALLTYPE *Speak )(
+ ISpVoice * This,
+ /* [string][in] */ const WCHAR *pwcs,
+ /* [in] */ DWORD dwFlags,
+ /* [out] */ ULONG *pulStreamNumber);
+
+ HRESULT ( STDMETHODCALLTYPE *SpeakStream )(
+ ISpVoice * This,
+ /* [in] */ IStream *pStream,
+ /* [in] */ DWORD dwFlags,
+ /* [out] */ ULONG *pulStreamNumber);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStatus )(
+ ISpVoice * This,
+ /* [out] */ SPVOICESTATUS *pStatus,
+ /* [string][out] */ WCHAR **ppszLastBookmark);
+
+ HRESULT ( STDMETHODCALLTYPE *Skip )(
+ ISpVoice * This,
+ /* [string][in] */ WCHAR *pItemType,
+ /* [in] */ long lNumItems,
+ /* [out] */ ULONG *pulNumSkipped);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPriority )(
+ ISpVoice * This,
+ /* [in] */ SPVPRIORITY ePriority);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPriority )(
+ ISpVoice * This,
+ /* [out] */ SPVPRIORITY *pePriority);
+
+ HRESULT ( STDMETHODCALLTYPE *SetAlertBoundary )(
+ ISpVoice * This,
+ /* [in] */ SPEVENTENUM eBoundary);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAlertBoundary )(
+ ISpVoice * This,
+ /* [out] */ SPEVENTENUM *peBoundary);
+
+ HRESULT ( STDMETHODCALLTYPE *SetRate )(
+ ISpVoice * This,
+ /* [in] */ long RateAdjust);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRate )(
+ ISpVoice * This,
+ /* [out] */ long *pRateAdjust);
+
+ HRESULT ( STDMETHODCALLTYPE *SetVolume )(
+ ISpVoice * This,
+ /* [in] */ USHORT usVolume);
+
+ HRESULT ( STDMETHODCALLTYPE *GetVolume )(
+ ISpVoice * This,
+ /* [out] */ USHORT *pusVolume);
+
+ HRESULT ( STDMETHODCALLTYPE *WaitUntilDone )(
+ ISpVoice * This,
+ /* [in] */ ULONG msTimeout);
+
+ HRESULT ( STDMETHODCALLTYPE *SetSyncSpeakTimeout )(
+ ISpVoice * This,
+ /* [in] */ ULONG msTimeout);
+
+ HRESULT ( STDMETHODCALLTYPE *GetSyncSpeakTimeout )(
+ ISpVoice * This,
+ /* [out] */ ULONG *pmsTimeout);
+
+ /* [local] */ HANDLE ( STDMETHODCALLTYPE *SpeakCompleteEvent )(
+ ISpVoice * This);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *IsUISupported )(
+ ISpVoice * This,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [out] */ BOOL *pfSupported);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *DisplayUI )(
+ ISpVoice * This,
+ /* [in] */ HWND hwndParent,
+ /* [in] */ const WCHAR *pszTitle,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData);
+
+ END_INTERFACE
+ } ISpVoiceVtbl;
+
+ interface ISpVoice
+ {
+ CONST_VTBL struct ISpVoiceVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpVoice_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpVoice_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpVoice_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpVoice_SetNotifySink(This,pNotifySink) \
+ (This)->lpVtbl -> SetNotifySink(This,pNotifySink)
+
+#define ISpVoice_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) \
+ (This)->lpVtbl -> SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
+
+#define ISpVoice_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) \
+ (This)->lpVtbl -> SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
+
+#define ISpVoice_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) \
+ (This)->lpVtbl -> SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
+
+#define ISpVoice_SetNotifyWin32Event(This) \
+ (This)->lpVtbl -> SetNotifyWin32Event(This)
+
+#define ISpVoice_WaitForNotifyEvent(This,dwMilliseconds) \
+ (This)->lpVtbl -> WaitForNotifyEvent(This,dwMilliseconds)
+
+#define ISpVoice_GetNotifyEventHandle(This) \
+ (This)->lpVtbl -> GetNotifyEventHandle(This)
+
+
+#define ISpVoice_SetInterest(This,ullEventInterest,ullQueuedInterest) \
+ (This)->lpVtbl -> SetInterest(This,ullEventInterest,ullQueuedInterest)
+
+#define ISpVoice_GetEvents(This,ulCount,pEventArray,pulFetched) \
+ (This)->lpVtbl -> GetEvents(This,ulCount,pEventArray,pulFetched)
+
+#define ISpVoice_GetInfo(This,pInfo) \
+ (This)->lpVtbl -> GetInfo(This,pInfo)
+
+
+#define ISpVoice_SetOutput(This,pUnkOutput,fAllowFormatChanges) \
+ (This)->lpVtbl -> SetOutput(This,pUnkOutput,fAllowFormatChanges)
+
+#define ISpVoice_GetOutputObjectToken(This,ppObjectToken) \
+ (This)->lpVtbl -> GetOutputObjectToken(This,ppObjectToken)
+
+#define ISpVoice_GetOutputStream(This,ppStream) \
+ (This)->lpVtbl -> GetOutputStream(This,ppStream)
+
+#define ISpVoice_Pause(This) \
+ (This)->lpVtbl -> Pause(This)
+
+#define ISpVoice_Resume(This) \
+ (This)->lpVtbl -> Resume(This)
+
+#define ISpVoice_SetVoice(This,pToken) \
+ (This)->lpVtbl -> SetVoice(This,pToken)
+
+#define ISpVoice_GetVoice(This,ppToken) \
+ (This)->lpVtbl -> GetVoice(This,ppToken)
+
+#define ISpVoice_Speak(This,pwcs,dwFlags,pulStreamNumber) \
+ (This)->lpVtbl -> Speak(This,pwcs,dwFlags,pulStreamNumber)
+
+#define ISpVoice_SpeakStream(This,pStream,dwFlags,pulStreamNumber) \
+ (This)->lpVtbl -> SpeakStream(This,pStream,dwFlags,pulStreamNumber)
+
+#define ISpVoice_GetStatus(This,pStatus,ppszLastBookmark) \
+ (This)->lpVtbl -> GetStatus(This,pStatus,ppszLastBookmark)
+
+#define ISpVoice_Skip(This,pItemType,lNumItems,pulNumSkipped) \
+ (This)->lpVtbl -> Skip(This,pItemType,lNumItems,pulNumSkipped)
+
+#define ISpVoice_SetPriority(This,ePriority) \
+ (This)->lpVtbl -> SetPriority(This,ePriority)
+
+#define ISpVoice_GetPriority(This,pePriority) \
+ (This)->lpVtbl -> GetPriority(This,pePriority)
+
+#define ISpVoice_SetAlertBoundary(This,eBoundary) \
+ (This)->lpVtbl -> SetAlertBoundary(This,eBoundary)
+
+#define ISpVoice_GetAlertBoundary(This,peBoundary) \
+ (This)->lpVtbl -> GetAlertBoundary(This,peBoundary)
+
+#define ISpVoice_SetRate(This,RateAdjust) \
+ (This)->lpVtbl -> SetRate(This,RateAdjust)
+
+#define ISpVoice_GetRate(This,pRateAdjust) \
+ (This)->lpVtbl -> GetRate(This,pRateAdjust)
+
+#define ISpVoice_SetVolume(This,usVolume) \
+ (This)->lpVtbl -> SetVolume(This,usVolume)
+
+#define ISpVoice_GetVolume(This,pusVolume) \
+ (This)->lpVtbl -> GetVolume(This,pusVolume)
+
+#define ISpVoice_WaitUntilDone(This,msTimeout) \
+ (This)->lpVtbl -> WaitUntilDone(This,msTimeout)
+
+#define ISpVoice_SetSyncSpeakTimeout(This,msTimeout) \
+ (This)->lpVtbl -> SetSyncSpeakTimeout(This,msTimeout)
+
+#define ISpVoice_GetSyncSpeakTimeout(This,pmsTimeout) \
+ (This)->lpVtbl -> GetSyncSpeakTimeout(This,pmsTimeout)
+
+#define ISpVoice_SpeakCompleteEvent(This) \
+ (This)->lpVtbl -> SpeakCompleteEvent(This)
+
+#define ISpVoice_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) \
+ (This)->lpVtbl -> IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
+
+#define ISpVoice_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) \
+ (This)->lpVtbl -> DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_SetOutput_Proxy(
+ ISpVoice * This,
+ /* [in] */ IUnknown *pUnkOutput,
+ /* [in] */ BOOL fAllowFormatChanges);
+
+
+void __RPC_STUB ISpVoice_SetOutput_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_GetOutputObjectToken_Proxy(
+ ISpVoice * This,
+ /* [out] */ ISpObjectToken **ppObjectToken);
+
+
+void __RPC_STUB ISpVoice_GetOutputObjectToken_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_GetOutputStream_Proxy(
+ ISpVoice * This,
+ /* [out] */ ISpStreamFormat **ppStream);
+
+
+void __RPC_STUB ISpVoice_GetOutputStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_Pause_Proxy(
+ ISpVoice * This);
+
+
+void __RPC_STUB ISpVoice_Pause_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_Resume_Proxy(
+ ISpVoice * This);
+
+
+void __RPC_STUB ISpVoice_Resume_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_SetVoice_Proxy(
+ ISpVoice * This,
+ /* [in] */ ISpObjectToken *pToken);
+
+
+void __RPC_STUB ISpVoice_SetVoice_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_GetVoice_Proxy(
+ ISpVoice * This,
+ /* [out] */ ISpObjectToken **ppToken);
+
+
+void __RPC_STUB ISpVoice_GetVoice_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_Speak_Proxy(
+ ISpVoice * This,
+ /* [string][in] */ const WCHAR *pwcs,
+ /* [in] */ DWORD dwFlags,
+ /* [out] */ ULONG *pulStreamNumber);
+
+
+void __RPC_STUB ISpVoice_Speak_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_SpeakStream_Proxy(
+ ISpVoice * This,
+ /* [in] */ IStream *pStream,
+ /* [in] */ DWORD dwFlags,
+ /* [out] */ ULONG *pulStreamNumber);
+
+
+void __RPC_STUB ISpVoice_SpeakStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_GetStatus_Proxy(
+ ISpVoice * This,
+ /* [out] */ SPVOICESTATUS *pStatus,
+ /* [string][out] */ WCHAR **ppszLastBookmark);
+
+
+void __RPC_STUB ISpVoice_GetStatus_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_Skip_Proxy(
+ ISpVoice * This,
+ /* [string][in] */ WCHAR *pItemType,
+ /* [in] */ long lNumItems,
+ /* [out] */ ULONG *pulNumSkipped);
+
+
+void __RPC_STUB ISpVoice_Skip_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_SetPriority_Proxy(
+ ISpVoice * This,
+ /* [in] */ SPVPRIORITY ePriority);
+
+
+void __RPC_STUB ISpVoice_SetPriority_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_GetPriority_Proxy(
+ ISpVoice * This,
+ /* [out] */ SPVPRIORITY *pePriority);
+
+
+void __RPC_STUB ISpVoice_GetPriority_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_SetAlertBoundary_Proxy(
+ ISpVoice * This,
+ /* [in] */ SPEVENTENUM eBoundary);
+
+
+void __RPC_STUB ISpVoice_SetAlertBoundary_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_GetAlertBoundary_Proxy(
+ ISpVoice * This,
+ /* [out] */ SPEVENTENUM *peBoundary);
+
+
+void __RPC_STUB ISpVoice_GetAlertBoundary_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_SetRate_Proxy(
+ ISpVoice * This,
+ /* [in] */ long RateAdjust);
+
+
+void __RPC_STUB ISpVoice_SetRate_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_GetRate_Proxy(
+ ISpVoice * This,
+ /* [out] */ long *pRateAdjust);
+
+
+void __RPC_STUB ISpVoice_GetRate_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_SetVolume_Proxy(
+ ISpVoice * This,
+ /* [in] */ USHORT usVolume);
+
+
+void __RPC_STUB ISpVoice_SetVolume_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_GetVolume_Proxy(
+ ISpVoice * This,
+ /* [out] */ USHORT *pusVolume);
+
+
+void __RPC_STUB ISpVoice_GetVolume_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_WaitUntilDone_Proxy(
+ ISpVoice * This,
+ /* [in] */ ULONG msTimeout);
+
+
+void __RPC_STUB ISpVoice_WaitUntilDone_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_SetSyncSpeakTimeout_Proxy(
+ ISpVoice * This,
+ /* [in] */ ULONG msTimeout);
+
+
+void __RPC_STUB ISpVoice_SetSyncSpeakTimeout_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpVoice_GetSyncSpeakTimeout_Proxy(
+ ISpVoice * This,
+ /* [out] */ ULONG *pmsTimeout);
+
+
+void __RPC_STUB ISpVoice_GetSyncSpeakTimeout_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [local] */ HANDLE STDMETHODCALLTYPE ISpVoice_SpeakCompleteEvent_Proxy(
+ ISpVoice * This);
+
+
+void __RPC_STUB ISpVoice_SpeakCompleteEvent_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [local] */ HRESULT STDMETHODCALLTYPE ISpVoice_IsUISupported_Proxy(
+ ISpVoice * This,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [out] */ BOOL *pfSupported);
+
+
+void __RPC_STUB ISpVoice_IsUISupported_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [local] */ HRESULT STDMETHODCALLTYPE ISpVoice_DisplayUI_Proxy(
+ ISpVoice * This,
+ /* [in] */ HWND hwndParent,
+ /* [in] */ const WCHAR *pszTitle,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData);
+
+
+void __RPC_STUB ISpVoice_DisplayUI_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpVoice_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpPhrase_INTERFACE_DEFINED__
+#define __ISpPhrase_INTERFACE_DEFINED__
+
+/* interface ISpPhrase */
+/* [restricted][unique][helpstring][local][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpPhrase;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1A5C0354-B621-4b5a-8791-D306ED379E53")
+ ISpPhrase : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetPhrase(
+ /* [out] */ SPPHRASE **ppCoMemPhrase) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSerializedPhrase(
+ /* [out] */ SPSERIALIZEDPHRASE **ppCoMemPhrase) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetText(
+ /* [in] */ ULONG ulStart,
+ /* [in] */ ULONG ulCount,
+ /* [in] */ BOOL fUseTextReplacements,
+ /* [out] */ WCHAR **ppszCoMemText,
+ /* [out] */ BYTE *pbDisplayAttributes) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Discard(
+ /* [in] */ DWORD dwValueTypes) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpPhraseVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpPhrase * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpPhrase * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpPhrase * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPhrase )(
+ ISpPhrase * This,
+ /* [out] */ SPPHRASE **ppCoMemPhrase);
+
+ HRESULT ( STDMETHODCALLTYPE *GetSerializedPhrase )(
+ ISpPhrase * This,
+ /* [out] */ SPSERIALIZEDPHRASE **ppCoMemPhrase);
+
+ HRESULT ( STDMETHODCALLTYPE *GetText )(
+ ISpPhrase * This,
+ /* [in] */ ULONG ulStart,
+ /* [in] */ ULONG ulCount,
+ /* [in] */ BOOL fUseTextReplacements,
+ /* [out] */ WCHAR **ppszCoMemText,
+ /* [out] */ BYTE *pbDisplayAttributes);
+
+ HRESULT ( STDMETHODCALLTYPE *Discard )(
+ ISpPhrase * This,
+ /* [in] */ DWORD dwValueTypes);
+
+ END_INTERFACE
+ } ISpPhraseVtbl;
+
+ interface ISpPhrase
+ {
+ CONST_VTBL struct ISpPhraseVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpPhrase_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpPhrase_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpPhrase_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpPhrase_GetPhrase(This,ppCoMemPhrase) \
+ (This)->lpVtbl -> GetPhrase(This,ppCoMemPhrase)
+
+#define ISpPhrase_GetSerializedPhrase(This,ppCoMemPhrase) \
+ (This)->lpVtbl -> GetSerializedPhrase(This,ppCoMemPhrase)
+
+#define ISpPhrase_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) \
+ (This)->lpVtbl -> GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
+
+#define ISpPhrase_Discard(This,dwValueTypes) \
+ (This)->lpVtbl -> Discard(This,dwValueTypes)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpPhrase_GetPhrase_Proxy(
+ ISpPhrase * This,
+ /* [out] */ SPPHRASE **ppCoMemPhrase);
+
+
+void __RPC_STUB ISpPhrase_GetPhrase_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpPhrase_GetSerializedPhrase_Proxy(
+ ISpPhrase * This,
+ /* [out] */ SPSERIALIZEDPHRASE **ppCoMemPhrase);
+
+
+void __RPC_STUB ISpPhrase_GetSerializedPhrase_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpPhrase_GetText_Proxy(
+ ISpPhrase * This,
+ /* [in] */ ULONG ulStart,
+ /* [in] */ ULONG ulCount,
+ /* [in] */ BOOL fUseTextReplacements,
+ /* [out] */ WCHAR **ppszCoMemText,
+ /* [out] */ BYTE *pbDisplayAttributes);
+
+
+void __RPC_STUB ISpPhrase_GetText_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpPhrase_Discard_Proxy(
+ ISpPhrase * This,
+ /* [in] */ DWORD dwValueTypes);
+
+
+void __RPC_STUB ISpPhrase_Discard_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpPhrase_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpPhraseAlt_INTERFACE_DEFINED__
+#define __ISpPhraseAlt_INTERFACE_DEFINED__
+
+/* interface ISpPhraseAlt */
+/* [restricted][unique][helpstring][local][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpPhraseAlt;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("8FCEBC98-4E49-4067-9C6C-D86A0E092E3D")
+ ISpPhraseAlt : public ISpPhrase
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetAltInfo(
+ ISpPhrase **ppParent,
+ ULONG *pulStartElementInParent,
+ ULONG *pcElementsInParent,
+ ULONG *pcElementsInAlt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpPhraseAltVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpPhraseAlt * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpPhraseAlt * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpPhraseAlt * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPhrase )(
+ ISpPhraseAlt * This,
+ /* [out] */ SPPHRASE **ppCoMemPhrase);
+
+ HRESULT ( STDMETHODCALLTYPE *GetSerializedPhrase )(
+ ISpPhraseAlt * This,
+ /* [out] */ SPSERIALIZEDPHRASE **ppCoMemPhrase);
+
+ HRESULT ( STDMETHODCALLTYPE *GetText )(
+ ISpPhraseAlt * This,
+ /* [in] */ ULONG ulStart,
+ /* [in] */ ULONG ulCount,
+ /* [in] */ BOOL fUseTextReplacements,
+ /* [out] */ WCHAR **ppszCoMemText,
+ /* [out] */ BYTE *pbDisplayAttributes);
+
+ HRESULT ( STDMETHODCALLTYPE *Discard )(
+ ISpPhraseAlt * This,
+ /* [in] */ DWORD dwValueTypes);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAltInfo )(
+ ISpPhraseAlt * This,
+ ISpPhrase **ppParent,
+ ULONG *pulStartElementInParent,
+ ULONG *pcElementsInParent,
+ ULONG *pcElementsInAlt);
+
+ HRESULT ( STDMETHODCALLTYPE *Commit )(
+ ISpPhraseAlt * This);
+
+ END_INTERFACE
+ } ISpPhraseAltVtbl;
+
+ interface ISpPhraseAlt
+ {
+ CONST_VTBL struct ISpPhraseAltVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpPhraseAlt_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpPhraseAlt_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpPhraseAlt_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpPhraseAlt_GetPhrase(This,ppCoMemPhrase) \
+ (This)->lpVtbl -> GetPhrase(This,ppCoMemPhrase)
+
+#define ISpPhraseAlt_GetSerializedPhrase(This,ppCoMemPhrase) \
+ (This)->lpVtbl -> GetSerializedPhrase(This,ppCoMemPhrase)
+
+#define ISpPhraseAlt_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) \
+ (This)->lpVtbl -> GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
+
+#define ISpPhraseAlt_Discard(This,dwValueTypes) \
+ (This)->lpVtbl -> Discard(This,dwValueTypes)
+
+
+#define ISpPhraseAlt_GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt) \
+ (This)->lpVtbl -> GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
+
+#define ISpPhraseAlt_Commit(This) \
+ (This)->lpVtbl -> Commit(This)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpPhraseAlt_GetAltInfo_Proxy(
+ ISpPhraseAlt * This,
+ ISpPhrase **ppParent,
+ ULONG *pulStartElementInParent,
+ ULONG *pcElementsInParent,
+ ULONG *pcElementsInAlt);
+
+
+void __RPC_STUB ISpPhraseAlt_GetAltInfo_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpPhraseAlt_Commit_Proxy(
+ ISpPhraseAlt * This);
+
+
+void __RPC_STUB ISpPhraseAlt_Commit_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpPhraseAlt_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapi_0276 */
+/* [local] */
+
+typedef /* [hidden][restricted] */ struct SPRECORESULTTIMES
+ {
+ FILETIME ftStreamTime;
+ ULONGLONG ullLength;
+ DWORD dwTickCount;
+ ULONGLONG ullStart;
+ } SPRECORESULTTIMES;
+
+typedef /* [hidden] */ struct SPSERIALIZEDRESULT
+ {
+ ULONG ulSerializedSize;
+ } SPSERIALIZEDRESULT;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0276_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0276_v0_0_s_ifspec;
+
+#ifndef __ISpRecoResult_INTERFACE_DEFINED__
+#define __ISpRecoResult_INTERFACE_DEFINED__
+
+/* interface ISpRecoResult */
+/* [restricted][local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpRecoResult;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("20B053BE-E235-43cd-9A2A-8D17A48B7842")
+ ISpRecoResult : public ISpPhrase
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetResultTimes(
+ /* [out] */ SPRECORESULTTIMES *pTimes) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAlternates(
+ /* [in] */ ULONG ulStartElement,
+ /* [in] */ ULONG cElements,
+ /* [in] */ ULONG ulRequestCount,
+ /* [out] */ ISpPhraseAlt **ppPhrases,
+ /* [out] */ ULONG *pcPhrasesReturned) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAudio(
+ /* [in] */ ULONG ulStartElement,
+ /* [in] */ ULONG cElements,
+ /* [out] */ ISpStreamFormat **ppStream) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
+ /* [in] */ ULONG ulStartElement,
+ /* [in] */ ULONG cElements,
+ /* [in] */ DWORD dwFlags,
+ /* [out] */ ULONG *pulStreamNumber) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Serialize(
+ /* [out] */ SPSERIALIZEDRESULT **ppCoMemSerializedResult) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ScaleAudio(
+ /* [in] */ const GUID *pAudioFormatId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
+ /* [out] */ ISpRecoContext **ppRecoContext) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpRecoResultVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpRecoResult * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpRecoResult * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpRecoResult * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPhrase )(
+ ISpRecoResult * This,
+ /* [out] */ SPPHRASE **ppCoMemPhrase);
+
+ HRESULT ( STDMETHODCALLTYPE *GetSerializedPhrase )(
+ ISpRecoResult * This,
+ /* [out] */ SPSERIALIZEDPHRASE **ppCoMemPhrase);
+
+ HRESULT ( STDMETHODCALLTYPE *GetText )(
+ ISpRecoResult * This,
+ /* [in] */ ULONG ulStart,
+ /* [in] */ ULONG ulCount,
+ /* [in] */ BOOL fUseTextReplacements,
+ /* [out] */ WCHAR **ppszCoMemText,
+ /* [out] */ BYTE *pbDisplayAttributes);
+
+ HRESULT ( STDMETHODCALLTYPE *Discard )(
+ ISpRecoResult * This,
+ /* [in] */ DWORD dwValueTypes);
+
+ HRESULT ( STDMETHODCALLTYPE *GetResultTimes )(
+ ISpRecoResult * This,
+ /* [out] */ SPRECORESULTTIMES *pTimes);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAlternates )(
+ ISpRecoResult * This,
+ /* [in] */ ULONG ulStartElement,
+ /* [in] */ ULONG cElements,
+ /* [in] */ ULONG ulRequestCount,
+ /* [out] */ ISpPhraseAlt **ppPhrases,
+ /* [out] */ ULONG *pcPhrasesReturned);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAudio )(
+ ISpRecoResult * This,
+ /* [in] */ ULONG ulStartElement,
+ /* [in] */ ULONG cElements,
+ /* [out] */ ISpStreamFormat **ppStream);
+
+ HRESULT ( STDMETHODCALLTYPE *SpeakAudio )(
+ ISpRecoResult * This,
+ /* [in] */ ULONG ulStartElement,
+ /* [in] */ ULONG cElements,
+ /* [in] */ DWORD dwFlags,
+ /* [out] */ ULONG *pulStreamNumber);
+
+ HRESULT ( STDMETHODCALLTYPE *Serialize )(
+ ISpRecoResult * This,
+ /* [out] */ SPSERIALIZEDRESULT **ppCoMemSerializedResult);
+
+ HRESULT ( STDMETHODCALLTYPE *ScaleAudio )(
+ ISpRecoResult * This,
+ /* [in] */ const GUID *pAudioFormatId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRecoContext )(
+ ISpRecoResult * This,
+ /* [out] */ ISpRecoContext **ppRecoContext);
+
+ END_INTERFACE
+ } ISpRecoResultVtbl;
+
+ interface ISpRecoResult
+ {
+ CONST_VTBL struct ISpRecoResultVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpRecoResult_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpRecoResult_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpRecoResult_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpRecoResult_GetPhrase(This,ppCoMemPhrase) \
+ (This)->lpVtbl -> GetPhrase(This,ppCoMemPhrase)
+
+#define ISpRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) \
+ (This)->lpVtbl -> GetSerializedPhrase(This,ppCoMemPhrase)
+
+#define ISpRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) \
+ (This)->lpVtbl -> GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
+
+#define ISpRecoResult_Discard(This,dwValueTypes) \
+ (This)->lpVtbl -> Discard(This,dwValueTypes)
+
+
+#define ISpRecoResult_GetResultTimes(This,pTimes) \
+ (This)->lpVtbl -> GetResultTimes(This,pTimes)
+
+#define ISpRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) \
+ (This)->lpVtbl -> GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
+
+#define ISpRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) \
+ (This)->lpVtbl -> GetAudio(This,ulStartElement,cElements,ppStream)
+
+#define ISpRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) \
+ (This)->lpVtbl -> SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
+
+#define ISpRecoResult_Serialize(This,ppCoMemSerializedResult) \
+ (This)->lpVtbl -> Serialize(This,ppCoMemSerializedResult)
+
+#define ISpRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) \
+ (This)->lpVtbl -> ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
+
+#define ISpRecoResult_GetRecoContext(This,ppRecoContext) \
+ (This)->lpVtbl -> GetRecoContext(This,ppRecoContext)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoResult_GetResultTimes_Proxy(
+ ISpRecoResult * This,
+ /* [out] */ SPRECORESULTTIMES *pTimes);
+
+
+void __RPC_STUB ISpRecoResult_GetResultTimes_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoResult_GetAlternates_Proxy(
+ ISpRecoResult * This,
+ /* [in] */ ULONG ulStartElement,
+ /* [in] */ ULONG cElements,
+ /* [in] */ ULONG ulRequestCount,
+ /* [out] */ ISpPhraseAlt **ppPhrases,
+ /* [out] */ ULONG *pcPhrasesReturned);
+
+
+void __RPC_STUB ISpRecoResult_GetAlternates_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoResult_GetAudio_Proxy(
+ ISpRecoResult * This,
+ /* [in] */ ULONG ulStartElement,
+ /* [in] */ ULONG cElements,
+ /* [out] */ ISpStreamFormat **ppStream);
+
+
+void __RPC_STUB ISpRecoResult_GetAudio_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoResult_SpeakAudio_Proxy(
+ ISpRecoResult * This,
+ /* [in] */ ULONG ulStartElement,
+ /* [in] */ ULONG cElements,
+ /* [in] */ DWORD dwFlags,
+ /* [out] */ ULONG *pulStreamNumber);
+
+
+void __RPC_STUB ISpRecoResult_SpeakAudio_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoResult_Serialize_Proxy(
+ ISpRecoResult * This,
+ /* [out] */ SPSERIALIZEDRESULT **ppCoMemSerializedResult);
+
+
+void __RPC_STUB ISpRecoResult_Serialize_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoResult_ScaleAudio_Proxy(
+ ISpRecoResult * This,
+ /* [in] */ const GUID *pAudioFormatId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx);
+
+
+void __RPC_STUB ISpRecoResult_ScaleAudio_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoResult_GetRecoContext_Proxy(
+ ISpRecoResult * This,
+ /* [out] */ ISpRecoContext **ppRecoContext);
+
+
+void __RPC_STUB ISpRecoResult_GetRecoContext_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpRecoResult_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapi_0277 */
+/* [local] */
+
+typedef /* [hidden] */ struct tagSPTEXTSELECTIONINFO
+ {
+ ULONG ulStartActiveOffset;
+ ULONG cchActiveChars;
+ ULONG ulStartSelection;
+ ULONG cchSelection;
+ } SPTEXTSELECTIONINFO;
+
+typedef /* [hidden] */
+enum SPWORDPRONOUNCEABLE
+ { SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0,
+ SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1,
+ SPWP_KNOWN_WORD_PRONOUNCEABLE = 2
+ } SPWORDPRONOUNCEABLE;
+
+typedef /* [hidden] */
+enum SPGRAMMARSTATE
+ { SPGS_DISABLED = 0,
+ SPGS_ENABLED = 1,
+ SPGS_EXCLUSIVE = 3
+ } SPGRAMMARSTATE;
+
+typedef /* [hidden] */
+enum SPCONTEXTSTATE
+ { SPCS_DISABLED = 0,
+ SPCS_ENABLED = 1
+ } SPCONTEXTSTATE;
+
+typedef /* [hidden] */
+enum SPRULESTATE
+ { SPRS_INACTIVE = 0,
+ SPRS_ACTIVE = 1,
+ SPRS_ACTIVE_WITH_AUTO_PAUSE = 3
+ } SPRULESTATE;
+
+#define SP_STREAMPOS_ASAP ( 0 )
+
+#define SP_STREAMPOS_REALTIME ( -1 )
+
+#define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE)(-1)
+#define SPRULETRANS_WILDCARD (SPSTATEHANDLE)(-2)
+#define SPRULETRANS_DICTATION (SPSTATEHANDLE)(-3)
+typedef /* [hidden] */
+enum SPGRAMMARWORDTYPE
+ { SPWT_DISPLAY = 0,
+ SPWT_LEXICAL = SPWT_DISPLAY + 1,
+ SPWT_PRONUNCIATION = SPWT_LEXICAL + 1
+ } SPGRAMMARWORDTYPE;
+
+typedef /* [hidden] */ struct tagSPPROPERTYINFO
+ {
+ const WCHAR *pszName;
+ ULONG ulId;
+ const WCHAR *pszValue;
+ VARIANT vValue;
+ } SPPROPERTYINFO;
+
+typedef /* [hidden] */
+enum SPCFGRULEATTRIBUTES
+ { SPRAF_TopLevel = 1 << 0,
+ SPRAF_Active = 1 << 1,
+ SPRAF_Export = 1 << 2,
+ SPRAF_Import = 1 << 3,
+ SPRAF_Interpreter = 1 << 4,
+ SPRAF_Dynamic = 1 << 5,
+ SPRAF_AutoPause = 1 << 16
+ } SPCFGRULEATTRIBUTES;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0277_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0277_v0_0_s_ifspec;
+
+#ifndef __ISpGrammarBuilder_INTERFACE_DEFINED__
+#define __ISpGrammarBuilder_INTERFACE_DEFINED__
+
+/* interface ISpGrammarBuilder */
+/* [local][restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpGrammarBuilder;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("8137828F-591A-4A42-BE58-49EA7EBAAC68")
+ ISpGrammarBuilder : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE ResetGrammar(
+ /* [in] */ WORD NewLanguage) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRule(
+ /* [in] */ const WCHAR *pszRuleName,
+ /* [in] */ DWORD dwRuleId,
+ /* [in] */ DWORD dwAttributes,
+ /* [in] */ BOOL fCreateIfNotExist,
+ /* [out] */ SPSTATEHANDLE *phInitialState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ClearRule(
+ SPSTATEHANDLE hState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateNewState(
+ SPSTATEHANDLE hState,
+ SPSTATEHANDLE *phState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
+ SPSTATEHANDLE hFromState,
+ SPSTATEHANDLE hToState,
+ const WCHAR *psz,
+ const WCHAR *pszSeparators,
+ SPGRAMMARWORDTYPE eWordType,
+ float Weight,
+ const SPPROPERTYINFO *pPropInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
+ SPSTATEHANDLE hFromState,
+ SPSTATEHANDLE hToState,
+ SPSTATEHANDLE hRule,
+ float Weight,
+ const SPPROPERTYINFO *pPropInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddResource(
+ /* [in] */ SPSTATEHANDLE hRuleState,
+ /* [in] */ const WCHAR *pszResourceName,
+ /* [in] */ const WCHAR *pszResourceValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Commit(
+ DWORD dwReserved) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpGrammarBuilderVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpGrammarBuilder * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpGrammarBuilder * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpGrammarBuilder * This);
+
+ HRESULT ( STDMETHODCALLTYPE *ResetGrammar )(
+ ISpGrammarBuilder * This,
+ /* [in] */ WORD NewLanguage);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRule )(
+ ISpGrammarBuilder * This,
+ /* [in] */ const WCHAR *pszRuleName,
+ /* [in] */ DWORD dwRuleId,
+ /* [in] */ DWORD dwAttributes,
+ /* [in] */ BOOL fCreateIfNotExist,
+ /* [out] */ SPSTATEHANDLE *phInitialState);
+
+ HRESULT ( STDMETHODCALLTYPE *ClearRule )(
+ ISpGrammarBuilder * This,
+ SPSTATEHANDLE hState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateNewState )(
+ ISpGrammarBuilder * This,
+ SPSTATEHANDLE hState,
+ SPSTATEHANDLE *phState);
+
+ HRESULT ( STDMETHODCALLTYPE *AddWordTransition )(
+ ISpGrammarBuilder * This,
+ SPSTATEHANDLE hFromState,
+ SPSTATEHANDLE hToState,
+ const WCHAR *psz,
+ const WCHAR *pszSeparators,
+ SPGRAMMARWORDTYPE eWordType,
+ float Weight,
+ const SPPROPERTYINFO *pPropInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *AddRuleTransition )(
+ ISpGrammarBuilder * This,
+ SPSTATEHANDLE hFromState,
+ SPSTATEHANDLE hToState,
+ SPSTATEHANDLE hRule,
+ float Weight,
+ const SPPROPERTYINFO *pPropInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *AddResource )(
+ ISpGrammarBuilder * This,
+ /* [in] */ SPSTATEHANDLE hRuleState,
+ /* [in] */ const WCHAR *pszResourceName,
+ /* [in] */ const WCHAR *pszResourceValue);
+
+ HRESULT ( STDMETHODCALLTYPE *Commit )(
+ ISpGrammarBuilder * This,
+ DWORD dwReserved);
+
+ END_INTERFACE
+ } ISpGrammarBuilderVtbl;
+
+ interface ISpGrammarBuilder
+ {
+ CONST_VTBL struct ISpGrammarBuilderVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpGrammarBuilder_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpGrammarBuilder_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpGrammarBuilder_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpGrammarBuilder_ResetGrammar(This,NewLanguage) \
+ (This)->lpVtbl -> ResetGrammar(This,NewLanguage)
+
+#define ISpGrammarBuilder_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) \
+ (This)->lpVtbl -> GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
+
+#define ISpGrammarBuilder_ClearRule(This,hState) \
+ (This)->lpVtbl -> ClearRule(This,hState)
+
+#define ISpGrammarBuilder_CreateNewState(This,hState,phState) \
+ (This)->lpVtbl -> CreateNewState(This,hState,phState)
+
+#define ISpGrammarBuilder_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) \
+ (This)->lpVtbl -> AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
+
+#define ISpGrammarBuilder_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) \
+ (This)->lpVtbl -> AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
+
+#define ISpGrammarBuilder_AddResource(This,hRuleState,pszResourceName,pszResourceValue) \
+ (This)->lpVtbl -> AddResource(This,hRuleState,pszResourceName,pszResourceValue)
+
+#define ISpGrammarBuilder_Commit(This,dwReserved) \
+ (This)->lpVtbl -> Commit(This,dwReserved)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_ResetGrammar_Proxy(
+ ISpGrammarBuilder * This,
+ /* [in] */ WORD NewLanguage);
+
+
+void __RPC_STUB ISpGrammarBuilder_ResetGrammar_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_GetRule_Proxy(
+ ISpGrammarBuilder * This,
+ /* [in] */ const WCHAR *pszRuleName,
+ /* [in] */ DWORD dwRuleId,
+ /* [in] */ DWORD dwAttributes,
+ /* [in] */ BOOL fCreateIfNotExist,
+ /* [out] */ SPSTATEHANDLE *phInitialState);
+
+
+void __RPC_STUB ISpGrammarBuilder_GetRule_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_ClearRule_Proxy(
+ ISpGrammarBuilder * This,
+ SPSTATEHANDLE hState);
+
+
+void __RPC_STUB ISpGrammarBuilder_ClearRule_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_CreateNewState_Proxy(
+ ISpGrammarBuilder * This,
+ SPSTATEHANDLE hState,
+ SPSTATEHANDLE *phState);
+
+
+void __RPC_STUB ISpGrammarBuilder_CreateNewState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddWordTransition_Proxy(
+ ISpGrammarBuilder * This,
+ SPSTATEHANDLE hFromState,
+ SPSTATEHANDLE hToState,
+ const WCHAR *psz,
+ const WCHAR *pszSeparators,
+ SPGRAMMARWORDTYPE eWordType,
+ float Weight,
+ const SPPROPERTYINFO *pPropInfo);
+
+
+void __RPC_STUB ISpGrammarBuilder_AddWordTransition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddRuleTransition_Proxy(
+ ISpGrammarBuilder * This,
+ SPSTATEHANDLE hFromState,
+ SPSTATEHANDLE hToState,
+ SPSTATEHANDLE hRule,
+ float Weight,
+ const SPPROPERTYINFO *pPropInfo);
+
+
+void __RPC_STUB ISpGrammarBuilder_AddRuleTransition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddResource_Proxy(
+ ISpGrammarBuilder * This,
+ /* [in] */ SPSTATEHANDLE hRuleState,
+ /* [in] */ const WCHAR *pszResourceName,
+ /* [in] */ const WCHAR *pszResourceValue);
+
+
+void __RPC_STUB ISpGrammarBuilder_AddResource_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_Commit_Proxy(
+ ISpGrammarBuilder * This,
+ DWORD dwReserved);
+
+
+void __RPC_STUB ISpGrammarBuilder_Commit_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpGrammarBuilder_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapi_0278 */
+/* [local] */
+
+typedef /* [hidden] */
+enum SPLOADOPTIONS
+ { SPLO_STATIC = 0,
+ SPLO_DYNAMIC = 1
+ } SPLOADOPTIONS;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0278_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0278_v0_0_s_ifspec;
+
+#ifndef __ISpRecoGrammar_INTERFACE_DEFINED__
+#define __ISpRecoGrammar_INTERFACE_DEFINED__
+
+/* interface ISpRecoGrammar */
+/* [local][restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpRecoGrammar;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("2177DB29-7F45-47D0-8554-067E91C80502")
+ ISpRecoGrammar : public ISpGrammarBuilder
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetGrammarId(
+ /* [out] */ ULONGLONG *pullGrammarId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
+ /* [out] */ ISpRecoContext **ppRecoCtxt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile(
+ /* [string][in] */ const WCHAR *pszFileName,
+ /* [in] */ SPLOADOPTIONS Options) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LoadCmdFromObject(
+ /* [in] */ REFCLSID rcid,
+ /* [string][in] */ const WCHAR *pszGrammarName,
+ /* [in] */ SPLOADOPTIONS Options) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LoadCmdFromResource(
+ /* [in] */ HMODULE hModule,
+ /* [string][in] */ const WCHAR *pszResourceName,
+ /* [string][in] */ const WCHAR *pszResourceType,
+ /* [in] */ WORD wLanguage,
+ /* [in] */ SPLOADOPTIONS Options) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory(
+ /* [in] */ const SPBINARYGRAMMAR *pGrammar,
+ /* [in] */ SPLOADOPTIONS Options) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LoadCmdFromProprietaryGrammar(
+ /* [in] */ REFGUID rguidParam,
+ /* [string][in] */ const WCHAR *pszStringParam,
+ /* [in] */ const void *pvDataPrarm,
+ /* [in] */ ULONG cbDataSize,
+ /* [in] */ SPLOADOPTIONS Options) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetRuleState(
+ /* [string][in] */ const WCHAR *pszName,
+ void *pReserved,
+ /* [in] */ SPRULESTATE NewState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetRuleIdState(
+ /* [in] */ ULONG ulRuleId,
+ /* [in] */ SPRULESTATE NewState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LoadDictation(
+ /* [string][in] */ const WCHAR *pszTopicName,
+ /* [in] */ SPLOADOPTIONS Options) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UnloadDictation( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetDictationState(
+ /* [in] */ SPRULESTATE NewState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
+ /* [in] */ const WCHAR *pText,
+ /* [in] */ ULONG cchText,
+ /* [in] */ const SPTEXTSELECTIONINFO *pInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
+ /* [in] */ const SPTEXTSELECTIONINFO *pInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
+ /* [string][in] */ const WCHAR *pszWord,
+ /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
+ /* [in] */ SPGRAMMARSTATE eGrammarState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SaveCmd(
+ /* [in] */ IStream *pStream,
+ /* [optional][out] */ WCHAR **ppszCoMemErrorText) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetGrammarState(
+ /* [out] */ SPGRAMMARSTATE *peGrammarState) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpRecoGrammarVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpRecoGrammar * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpRecoGrammar * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpRecoGrammar * This);
+
+ HRESULT ( STDMETHODCALLTYPE *ResetGrammar )(
+ ISpRecoGrammar * This,
+ /* [in] */ WORD NewLanguage);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRule )(
+ ISpRecoGrammar * This,
+ /* [in] */ const WCHAR *pszRuleName,
+ /* [in] */ DWORD dwRuleId,
+ /* [in] */ DWORD dwAttributes,
+ /* [in] */ BOOL fCreateIfNotExist,
+ /* [out] */ SPSTATEHANDLE *phInitialState);
+
+ HRESULT ( STDMETHODCALLTYPE *ClearRule )(
+ ISpRecoGrammar * This,
+ SPSTATEHANDLE hState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateNewState )(
+ ISpRecoGrammar * This,
+ SPSTATEHANDLE hState,
+ SPSTATEHANDLE *phState);
+
+ HRESULT ( STDMETHODCALLTYPE *AddWordTransition )(
+ ISpRecoGrammar * This,
+ SPSTATEHANDLE hFromState,
+ SPSTATEHANDLE hToState,
+ const WCHAR *psz,
+ const WCHAR *pszSeparators,
+ SPGRAMMARWORDTYPE eWordType,
+ float Weight,
+ const SPPROPERTYINFO *pPropInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *AddRuleTransition )(
+ ISpRecoGrammar * This,
+ SPSTATEHANDLE hFromState,
+ SPSTATEHANDLE hToState,
+ SPSTATEHANDLE hRule,
+ float Weight,
+ const SPPROPERTYINFO *pPropInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *AddResource )(
+ ISpRecoGrammar * This,
+ /* [in] */ SPSTATEHANDLE hRuleState,
+ /* [in] */ const WCHAR *pszResourceName,
+ /* [in] */ const WCHAR *pszResourceValue);
+
+ HRESULT ( STDMETHODCALLTYPE *Commit )(
+ ISpRecoGrammar * This,
+ DWORD dwReserved);
+
+ HRESULT ( STDMETHODCALLTYPE *GetGrammarId )(
+ ISpRecoGrammar * This,
+ /* [out] */ ULONGLONG *pullGrammarId);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRecoContext )(
+ ISpRecoGrammar * This,
+ /* [out] */ ISpRecoContext **ppRecoCtxt);
+
+ HRESULT ( STDMETHODCALLTYPE *LoadCmdFromFile )(
+ ISpRecoGrammar * This,
+ /* [string][in] */ const WCHAR *pszFileName,
+ /* [in] */ SPLOADOPTIONS Options);
+
+ HRESULT ( STDMETHODCALLTYPE *LoadCmdFromObject )(
+ ISpRecoGrammar * This,
+ /* [in] */ REFCLSID rcid,
+ /* [string][in] */ const WCHAR *pszGrammarName,
+ /* [in] */ SPLOADOPTIONS Options);
+
+ HRESULT ( STDMETHODCALLTYPE *LoadCmdFromResource )(
+ ISpRecoGrammar * This,
+ /* [in] */ HMODULE hModule,
+ /* [string][in] */ const WCHAR *pszResourceName,
+ /* [string][in] */ const WCHAR *pszResourceType,
+ /* [in] */ WORD wLanguage,
+ /* [in] */ SPLOADOPTIONS Options);
+
+ HRESULT ( STDMETHODCALLTYPE *LoadCmdFromMemory )(
+ ISpRecoGrammar * This,
+ /* [in] */ const SPBINARYGRAMMAR *pGrammar,
+ /* [in] */ SPLOADOPTIONS Options);
+
+ HRESULT ( STDMETHODCALLTYPE *LoadCmdFromProprietaryGrammar )(
+ ISpRecoGrammar * This,
+ /* [in] */ REFGUID rguidParam,
+ /* [string][in] */ const WCHAR *pszStringParam,
+ /* [in] */ const void *pvDataPrarm,
+ /* [in] */ ULONG cbDataSize,
+ /* [in] */ SPLOADOPTIONS Options);
+
+ HRESULT ( STDMETHODCALLTYPE *SetRuleState )(
+ ISpRecoGrammar * This,
+ /* [string][in] */ const WCHAR *pszName,
+ void *pReserved,
+ /* [in] */ SPRULESTATE NewState);
+
+ HRESULT ( STDMETHODCALLTYPE *SetRuleIdState )(
+ ISpRecoGrammar * This,
+ /* [in] */ ULONG ulRuleId,
+ /* [in] */ SPRULESTATE NewState);
+
+ HRESULT ( STDMETHODCALLTYPE *LoadDictation )(
+ ISpRecoGrammar * This,
+ /* [string][in] */ const WCHAR *pszTopicName,
+ /* [in] */ SPLOADOPTIONS Options);
+
+ HRESULT ( STDMETHODCALLTYPE *UnloadDictation )(
+ ISpRecoGrammar * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDictationState )(
+ ISpRecoGrammar * This,
+ /* [in] */ SPRULESTATE NewState);
+
+ HRESULT ( STDMETHODCALLTYPE *SetWordSequenceData )(
+ ISpRecoGrammar * This,
+ /* [in] */ const WCHAR *pText,
+ /* [in] */ ULONG cchText,
+ /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *SetTextSelection )(
+ ISpRecoGrammar * This,
+ /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *IsPronounceable )(
+ ISpRecoGrammar * This,
+ /* [string][in] */ const WCHAR *pszWord,
+ /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable);
+
+ HRESULT ( STDMETHODCALLTYPE *SetGrammarState )(
+ ISpRecoGrammar * This,
+ /* [in] */ SPGRAMMARSTATE eGrammarState);
+
+ HRESULT ( STDMETHODCALLTYPE *SaveCmd )(
+ ISpRecoGrammar * This,
+ /* [in] */ IStream *pStream,
+ /* [optional][out] */ WCHAR **ppszCoMemErrorText);
+
+ HRESULT ( STDMETHODCALLTYPE *GetGrammarState )(
+ ISpRecoGrammar * This,
+ /* [out] */ SPGRAMMARSTATE *peGrammarState);
+
+ END_INTERFACE
+ } ISpRecoGrammarVtbl;
+
+ interface ISpRecoGrammar
+ {
+ CONST_VTBL struct ISpRecoGrammarVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpRecoGrammar_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpRecoGrammar_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpRecoGrammar_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpRecoGrammar_ResetGrammar(This,NewLanguage) \
+ (This)->lpVtbl -> ResetGrammar(This,NewLanguage)
+
+#define ISpRecoGrammar_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) \
+ (This)->lpVtbl -> GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
+
+#define ISpRecoGrammar_ClearRule(This,hState) \
+ (This)->lpVtbl -> ClearRule(This,hState)
+
+#define ISpRecoGrammar_CreateNewState(This,hState,phState) \
+ (This)->lpVtbl -> CreateNewState(This,hState,phState)
+
+#define ISpRecoGrammar_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) \
+ (This)->lpVtbl -> AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
+
+#define ISpRecoGrammar_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) \
+ (This)->lpVtbl -> AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
+
+#define ISpRecoGrammar_AddResource(This,hRuleState,pszResourceName,pszResourceValue) \
+ (This)->lpVtbl -> AddResource(This,hRuleState,pszResourceName,pszResourceValue)
+
+#define ISpRecoGrammar_Commit(This,dwReserved) \
+ (This)->lpVtbl -> Commit(This,dwReserved)
+
+
+#define ISpRecoGrammar_GetGrammarId(This,pullGrammarId) \
+ (This)->lpVtbl -> GetGrammarId(This,pullGrammarId)
+
+#define ISpRecoGrammar_GetRecoContext(This,ppRecoCtxt) \
+ (This)->lpVtbl -> GetRecoContext(This,ppRecoCtxt)
+
+#define ISpRecoGrammar_LoadCmdFromFile(This,pszFileName,Options) \
+ (This)->lpVtbl -> LoadCmdFromFile(This,pszFileName,Options)
+
+#define ISpRecoGrammar_LoadCmdFromObject(This,rcid,pszGrammarName,Options) \
+ (This)->lpVtbl -> LoadCmdFromObject(This,rcid,pszGrammarName,Options)
+
+#define ISpRecoGrammar_LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options) \
+ (This)->lpVtbl -> LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
+
+#define ISpRecoGrammar_LoadCmdFromMemory(This,pGrammar,Options) \
+ (This)->lpVtbl -> LoadCmdFromMemory(This,pGrammar,Options)
+
+#define ISpRecoGrammar_LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options) \
+ (This)->lpVtbl -> LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
+
+#define ISpRecoGrammar_SetRuleState(This,pszName,pReserved,NewState) \
+ (This)->lpVtbl -> SetRuleState(This,pszName,pReserved,NewState)
+
+#define ISpRecoGrammar_SetRuleIdState(This,ulRuleId,NewState) \
+ (This)->lpVtbl -> SetRuleIdState(This,ulRuleId,NewState)
+
+#define ISpRecoGrammar_LoadDictation(This,pszTopicName,Options) \
+ (This)->lpVtbl -> LoadDictation(This,pszTopicName,Options)
+
+#define ISpRecoGrammar_UnloadDictation(This) \
+ (This)->lpVtbl -> UnloadDictation(This)
+
+#define ISpRecoGrammar_SetDictationState(This,NewState) \
+ (This)->lpVtbl -> SetDictationState(This,NewState)
+
+#define ISpRecoGrammar_SetWordSequenceData(This,pText,cchText,pInfo) \
+ (This)->lpVtbl -> SetWordSequenceData(This,pText,cchText,pInfo)
+
+#define ISpRecoGrammar_SetTextSelection(This,pInfo) \
+ (This)->lpVtbl -> SetTextSelection(This,pInfo)
+
+#define ISpRecoGrammar_IsPronounceable(This,pszWord,pWordPronounceable) \
+ (This)->lpVtbl -> IsPronounceable(This,pszWord,pWordPronounceable)
+
+#define ISpRecoGrammar_SetGrammarState(This,eGrammarState) \
+ (This)->lpVtbl -> SetGrammarState(This,eGrammarState)
+
+#define ISpRecoGrammar_SaveCmd(This,pStream,ppszCoMemErrorText) \
+ (This)->lpVtbl -> SaveCmd(This,pStream,ppszCoMemErrorText)
+
+#define ISpRecoGrammar_GetGrammarState(This,peGrammarState) \
+ (This)->lpVtbl -> GetGrammarState(This,peGrammarState)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetGrammarId_Proxy(
+ ISpRecoGrammar * This,
+ /* [out] */ ULONGLONG *pullGrammarId);
+
+
+void __RPC_STUB ISpRecoGrammar_GetGrammarId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetRecoContext_Proxy(
+ ISpRecoGrammar * This,
+ /* [out] */ ISpRecoContext **ppRecoCtxt);
+
+
+void __RPC_STUB ISpRecoGrammar_GetRecoContext_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromFile_Proxy(
+ ISpRecoGrammar * This,
+ /* [string][in] */ const WCHAR *pszFileName,
+ /* [in] */ SPLOADOPTIONS Options);
+
+
+void __RPC_STUB ISpRecoGrammar_LoadCmdFromFile_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromObject_Proxy(
+ ISpRecoGrammar * This,
+ /* [in] */ REFCLSID rcid,
+ /* [string][in] */ const WCHAR *pszGrammarName,
+ /* [in] */ SPLOADOPTIONS Options);
+
+
+void __RPC_STUB ISpRecoGrammar_LoadCmdFromObject_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromResource_Proxy(
+ ISpRecoGrammar * This,
+ /* [in] */ HMODULE hModule,
+ /* [string][in] */ const WCHAR *pszResourceName,
+ /* [string][in] */ const WCHAR *pszResourceType,
+ /* [in] */ WORD wLanguage,
+ /* [in] */ SPLOADOPTIONS Options);
+
+
+void __RPC_STUB ISpRecoGrammar_LoadCmdFromResource_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromMemory_Proxy(
+ ISpRecoGrammar * This,
+ /* [in] */ const SPBINARYGRAMMAR *pGrammar,
+ /* [in] */ SPLOADOPTIONS Options);
+
+
+void __RPC_STUB ISpRecoGrammar_LoadCmdFromMemory_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromProprietaryGrammar_Proxy(
+ ISpRecoGrammar * This,
+ /* [in] */ REFGUID rguidParam,
+ /* [string][in] */ const WCHAR *pszStringParam,
+ /* [in] */ const void *pvDataPrarm,
+ /* [in] */ ULONG cbDataSize,
+ /* [in] */ SPLOADOPTIONS Options);
+
+
+void __RPC_STUB ISpRecoGrammar_LoadCmdFromProprietaryGrammar_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetRuleState_Proxy(
+ ISpRecoGrammar * This,
+ /* [string][in] */ const WCHAR *pszName,
+ void *pReserved,
+ /* [in] */ SPRULESTATE NewState);
+
+
+void __RPC_STUB ISpRecoGrammar_SetRuleState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetRuleIdState_Proxy(
+ ISpRecoGrammar * This,
+ /* [in] */ ULONG ulRuleId,
+ /* [in] */ SPRULESTATE NewState);
+
+
+void __RPC_STUB ISpRecoGrammar_SetRuleIdState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadDictation_Proxy(
+ ISpRecoGrammar * This,
+ /* [string][in] */ const WCHAR *pszTopicName,
+ /* [in] */ SPLOADOPTIONS Options);
+
+
+void __RPC_STUB ISpRecoGrammar_LoadDictation_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_UnloadDictation_Proxy(
+ ISpRecoGrammar * This);
+
+
+void __RPC_STUB ISpRecoGrammar_UnloadDictation_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetDictationState_Proxy(
+ ISpRecoGrammar * This,
+ /* [in] */ SPRULESTATE NewState);
+
+
+void __RPC_STUB ISpRecoGrammar_SetDictationState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetWordSequenceData_Proxy(
+ ISpRecoGrammar * This,
+ /* [in] */ const WCHAR *pText,
+ /* [in] */ ULONG cchText,
+ /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
+
+
+void __RPC_STUB ISpRecoGrammar_SetWordSequenceData_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetTextSelection_Proxy(
+ ISpRecoGrammar * This,
+ /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
+
+
+void __RPC_STUB ISpRecoGrammar_SetTextSelection_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_IsPronounceable_Proxy(
+ ISpRecoGrammar * This,
+ /* [string][in] */ const WCHAR *pszWord,
+ /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable);
+
+
+void __RPC_STUB ISpRecoGrammar_IsPronounceable_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetGrammarState_Proxy(
+ ISpRecoGrammar * This,
+ /* [in] */ SPGRAMMARSTATE eGrammarState);
+
+
+void __RPC_STUB ISpRecoGrammar_SetGrammarState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SaveCmd_Proxy(
+ ISpRecoGrammar * This,
+ /* [in] */ IStream *pStream,
+ /* [optional][out] */ WCHAR **ppszCoMemErrorText);
+
+
+void __RPC_STUB ISpRecoGrammar_SaveCmd_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetGrammarState_Proxy(
+ ISpRecoGrammar * This,
+ /* [out] */ SPGRAMMARSTATE *peGrammarState);
+
+
+void __RPC_STUB ISpRecoGrammar_GetGrammarState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpRecoGrammar_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapi_0279 */
+/* [local] */
+
+typedef /* [hidden][restricted] */ struct SPRECOCONTEXTSTATUS
+ {
+ SPINTERFERENCE eInterference;
+ WCHAR szRequestTypeOfUI[ 255 ];
+ DWORD dwReserved1;
+ DWORD dwReserved2;
+ } SPRECOCONTEXTSTATUS;
+
+typedef /* [hidden] */
+enum SPBOOKMARKOPTIONS
+ { SPBO_NONE = 0,
+ SPBO_PAUSE = 1
+ } SPBOOKMARKOPTIONS;
+
+typedef /* [hidden] */
+enum SPAUDIOOPTIONS
+ { SPAO_NONE = 0,
+ SPAO_RETAIN_AUDIO = 1 << 0
+ } SPAUDIOOPTIONS;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0279_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0279_v0_0_s_ifspec;
+
+#ifndef __ISpRecoContext_INTERFACE_DEFINED__
+#define __ISpRecoContext_INTERFACE_DEFINED__
+
+/* interface ISpRecoContext */
+/* [restricted][local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpRecoContext;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("F740A62F-7C15-489E-8234-940A33D9272D")
+ ISpRecoContext : public ISpEventSource
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
+ /* [out] */ ISpRecognizer **ppRecognizer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
+ /* [in] */ ULONGLONG ullGrammarId,
+ /* [out] */ ISpRecoGrammar **ppGrammar) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStatus(
+ /* [out] */ SPRECOCONTEXTSTATUS *pStatus) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
+ /* [in] */ ULONG *pcAlternates) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetMaxAlternates(
+ /* [in] */ ULONG cAlternates) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetAudioOptions(
+ /* [in] */ SPAUDIOOPTIONS Options,
+ /* [in] */ const GUID *pAudioFormatId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAudioOptions(
+ /* [in] */ SPAUDIOOPTIONS *pOptions,
+ /* [out] */ GUID *pAudioFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemWFEX) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DeserializeResult(
+ /* [in] */ const SPSERIALIZEDRESULT *pSerializedResult,
+ /* [out] */ ISpRecoResult **ppResult) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Bookmark(
+ /* [in] */ SPBOOKMARKOPTIONS Options,
+ /* [in] */ ULONGLONG ullStreamPosition,
+ /* [in] */ LPARAM lparamEvent) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
+ /* [string][in] */ const WCHAR *pAdaptationData,
+ /* [in] */ const ULONG cch) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Pause(
+ DWORD dwReserved) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Resume(
+ DWORD dwReserved) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetVoice(
+ /* [in] */ ISpVoice *pVoice,
+ /* [in] */ BOOL fAllowFormatChanges) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVoice(
+ /* [out] */ ISpVoice **ppVoice) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetVoicePurgeEvent(
+ /* [in] */ ULONGLONG ullEventInterest) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVoicePurgeEvent(
+ /* [out] */ ULONGLONG *pullEventInterest) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetContextState(
+ /* [in] */ SPCONTEXTSTATE eContextState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetContextState(
+ /* [in] */ SPCONTEXTSTATE *peContextState) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpRecoContextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpRecoContext * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpRecoContext * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpRecoContext * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetNotifySink )(
+ ISpRecoContext * This,
+ /* [in] */ ISpNotifySink *pNotifySink);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyWindowMessage )(
+ ISpRecoContext * This,
+ /* [in] */ HWND hWnd,
+ /* [in] */ UINT Msg,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyCallbackFunction )(
+ ISpRecoContext * This,
+ /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyCallbackInterface )(
+ ISpRecoContext * This,
+ /* [in] */ ISpNotifyCallback *pSpCallback,
+ /* [in] */ WPARAM wParam,
+ /* [in] */ LPARAM lParam);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyWin32Event )(
+ ISpRecoContext * This);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *WaitForNotifyEvent )(
+ ISpRecoContext * This,
+ /* [in] */ DWORD dwMilliseconds);
+
+ /* [local] */ HANDLE ( STDMETHODCALLTYPE *GetNotifyEventHandle )(
+ ISpRecoContext * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetInterest )(
+ ISpRecoContext * This,
+ /* [in] */ ULONGLONG ullEventInterest,
+ /* [in] */ ULONGLONG ullQueuedInterest);
+
+ HRESULT ( STDMETHODCALLTYPE *GetEvents )(
+ ISpRecoContext * This,
+ /* [in] */ ULONG ulCount,
+ /* [size_is][out] */ SPEVENT *pEventArray,
+ /* [out] */ ULONG *pulFetched);
+
+ HRESULT ( STDMETHODCALLTYPE *GetInfo )(
+ ISpRecoContext * This,
+ /* [out] */ SPEVENTSOURCEINFO *pInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRecognizer )(
+ ISpRecoContext * This,
+ /* [out] */ ISpRecognizer **ppRecognizer);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateGrammar )(
+ ISpRecoContext * This,
+ /* [in] */ ULONGLONG ullGrammarId,
+ /* [out] */ ISpRecoGrammar **ppGrammar);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStatus )(
+ ISpRecoContext * This,
+ /* [out] */ SPRECOCONTEXTSTATUS *pStatus);
+
+ HRESULT ( STDMETHODCALLTYPE *GetMaxAlternates )(
+ ISpRecoContext * This,
+ /* [in] */ ULONG *pcAlternates);
+
+ HRESULT ( STDMETHODCALLTYPE *SetMaxAlternates )(
+ ISpRecoContext * This,
+ /* [in] */ ULONG cAlternates);
+
+ HRESULT ( STDMETHODCALLTYPE *SetAudioOptions )(
+ ISpRecoContext * This,
+ /* [in] */ SPAUDIOOPTIONS Options,
+ /* [in] */ const GUID *pAudioFormatId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAudioOptions )(
+ ISpRecoContext * This,
+ /* [in] */ SPAUDIOOPTIONS *pOptions,
+ /* [out] */ GUID *pAudioFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemWFEX);
+
+ HRESULT ( STDMETHODCALLTYPE *DeserializeResult )(
+ ISpRecoContext * This,
+ /* [in] */ const SPSERIALIZEDRESULT *pSerializedResult,
+ /* [out] */ ISpRecoResult **ppResult);
+
+ HRESULT ( STDMETHODCALLTYPE *Bookmark )(
+ ISpRecoContext * This,
+ /* [in] */ SPBOOKMARKOPTIONS Options,
+ /* [in] */ ULONGLONG ullStreamPosition,
+ /* [in] */ LPARAM lparamEvent);
+
+ HRESULT ( STDMETHODCALLTYPE *SetAdaptationData )(
+ ISpRecoContext * This,
+ /* [string][in] */ const WCHAR *pAdaptationData,
+ /* [in] */ const ULONG cch);
+
+ HRESULT ( STDMETHODCALLTYPE *Pause )(
+ ISpRecoContext * This,
+ DWORD dwReserved);
+
+ HRESULT ( STDMETHODCALLTYPE *Resume )(
+ ISpRecoContext * This,
+ DWORD dwReserved);
+
+ HRESULT ( STDMETHODCALLTYPE *SetVoice )(
+ ISpRecoContext * This,
+ /* [in] */ ISpVoice *pVoice,
+ /* [in] */ BOOL fAllowFormatChanges);
+
+ HRESULT ( STDMETHODCALLTYPE *GetVoice )(
+ ISpRecoContext * This,
+ /* [out] */ ISpVoice **ppVoice);
+
+ HRESULT ( STDMETHODCALLTYPE *SetVoicePurgeEvent )(
+ ISpRecoContext * This,
+ /* [in] */ ULONGLONG ullEventInterest);
+
+ HRESULT ( STDMETHODCALLTYPE *GetVoicePurgeEvent )(
+ ISpRecoContext * This,
+ /* [out] */ ULONGLONG *pullEventInterest);
+
+ HRESULT ( STDMETHODCALLTYPE *SetContextState )(
+ ISpRecoContext * This,
+ /* [in] */ SPCONTEXTSTATE eContextState);
+
+ HRESULT ( STDMETHODCALLTYPE *GetContextState )(
+ ISpRecoContext * This,
+ /* [in] */ SPCONTEXTSTATE *peContextState);
+
+ END_INTERFACE
+ } ISpRecoContextVtbl;
+
+ interface ISpRecoContext
+ {
+ CONST_VTBL struct ISpRecoContextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpRecoContext_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpRecoContext_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpRecoContext_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpRecoContext_SetNotifySink(This,pNotifySink) \
+ (This)->lpVtbl -> SetNotifySink(This,pNotifySink)
+
+#define ISpRecoContext_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) \
+ (This)->lpVtbl -> SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
+
+#define ISpRecoContext_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) \
+ (This)->lpVtbl -> SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
+
+#define ISpRecoContext_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) \
+ (This)->lpVtbl -> SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
+
+#define ISpRecoContext_SetNotifyWin32Event(This) \
+ (This)->lpVtbl -> SetNotifyWin32Event(This)
+
+#define ISpRecoContext_WaitForNotifyEvent(This,dwMilliseconds) \
+ (This)->lpVtbl -> WaitForNotifyEvent(This,dwMilliseconds)
+
+#define ISpRecoContext_GetNotifyEventHandle(This) \
+ (This)->lpVtbl -> GetNotifyEventHandle(This)
+
+
+#define ISpRecoContext_SetInterest(This,ullEventInterest,ullQueuedInterest) \
+ (This)->lpVtbl -> SetInterest(This,ullEventInterest,ullQueuedInterest)
+
+#define ISpRecoContext_GetEvents(This,ulCount,pEventArray,pulFetched) \
+ (This)->lpVtbl -> GetEvents(This,ulCount,pEventArray,pulFetched)
+
+#define ISpRecoContext_GetInfo(This,pInfo) \
+ (This)->lpVtbl -> GetInfo(This,pInfo)
+
+
+#define ISpRecoContext_GetRecognizer(This,ppRecognizer) \
+ (This)->lpVtbl -> GetRecognizer(This,ppRecognizer)
+
+#define ISpRecoContext_CreateGrammar(This,ullGrammarId,ppGrammar) \
+ (This)->lpVtbl -> CreateGrammar(This,ullGrammarId,ppGrammar)
+
+#define ISpRecoContext_GetStatus(This,pStatus) \
+ (This)->lpVtbl -> GetStatus(This,pStatus)
+
+#define ISpRecoContext_GetMaxAlternates(This,pcAlternates) \
+ (This)->lpVtbl -> GetMaxAlternates(This,pcAlternates)
+
+#define ISpRecoContext_SetMaxAlternates(This,cAlternates) \
+ (This)->lpVtbl -> SetMaxAlternates(This,cAlternates)
+
+#define ISpRecoContext_SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx) \
+ (This)->lpVtbl -> SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
+
+#define ISpRecoContext_GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX) \
+ (This)->lpVtbl -> GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
+
+#define ISpRecoContext_DeserializeResult(This,pSerializedResult,ppResult) \
+ (This)->lpVtbl -> DeserializeResult(This,pSerializedResult,ppResult)
+
+#define ISpRecoContext_Bookmark(This,Options,ullStreamPosition,lparamEvent) \
+ (This)->lpVtbl -> Bookmark(This,Options,ullStreamPosition,lparamEvent)
+
+#define ISpRecoContext_SetAdaptationData(This,pAdaptationData,cch) \
+ (This)->lpVtbl -> SetAdaptationData(This,pAdaptationData,cch)
+
+#define ISpRecoContext_Pause(This,dwReserved) \
+ (This)->lpVtbl -> Pause(This,dwReserved)
+
+#define ISpRecoContext_Resume(This,dwReserved) \
+ (This)->lpVtbl -> Resume(This,dwReserved)
+
+#define ISpRecoContext_SetVoice(This,pVoice,fAllowFormatChanges) \
+ (This)->lpVtbl -> SetVoice(This,pVoice,fAllowFormatChanges)
+
+#define ISpRecoContext_GetVoice(This,ppVoice) \
+ (This)->lpVtbl -> GetVoice(This,ppVoice)
+
+#define ISpRecoContext_SetVoicePurgeEvent(This,ullEventInterest) \
+ (This)->lpVtbl -> SetVoicePurgeEvent(This,ullEventInterest)
+
+#define ISpRecoContext_GetVoicePurgeEvent(This,pullEventInterest) \
+ (This)->lpVtbl -> GetVoicePurgeEvent(This,pullEventInterest)
+
+#define ISpRecoContext_SetContextState(This,eContextState) \
+ (This)->lpVtbl -> SetContextState(This,eContextState)
+
+#define ISpRecoContext_GetContextState(This,peContextState) \
+ (This)->lpVtbl -> GetContextState(This,peContextState)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_GetRecognizer_Proxy(
+ ISpRecoContext * This,
+ /* [out] */ ISpRecognizer **ppRecognizer);
+
+
+void __RPC_STUB ISpRecoContext_GetRecognizer_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_CreateGrammar_Proxy(
+ ISpRecoContext * This,
+ /* [in] */ ULONGLONG ullGrammarId,
+ /* [out] */ ISpRecoGrammar **ppGrammar);
+
+
+void __RPC_STUB ISpRecoContext_CreateGrammar_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_GetStatus_Proxy(
+ ISpRecoContext * This,
+ /* [out] */ SPRECOCONTEXTSTATUS *pStatus);
+
+
+void __RPC_STUB ISpRecoContext_GetStatus_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_GetMaxAlternates_Proxy(
+ ISpRecoContext * This,
+ /* [in] */ ULONG *pcAlternates);
+
+
+void __RPC_STUB ISpRecoContext_GetMaxAlternates_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_SetMaxAlternates_Proxy(
+ ISpRecoContext * This,
+ /* [in] */ ULONG cAlternates);
+
+
+void __RPC_STUB ISpRecoContext_SetMaxAlternates_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_SetAudioOptions_Proxy(
+ ISpRecoContext * This,
+ /* [in] */ SPAUDIOOPTIONS Options,
+ /* [in] */ const GUID *pAudioFormatId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx);
+
+
+void __RPC_STUB ISpRecoContext_SetAudioOptions_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_GetAudioOptions_Proxy(
+ ISpRecoContext * This,
+ /* [in] */ SPAUDIOOPTIONS *pOptions,
+ /* [out] */ GUID *pAudioFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemWFEX);
+
+
+void __RPC_STUB ISpRecoContext_GetAudioOptions_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_DeserializeResult_Proxy(
+ ISpRecoContext * This,
+ /* [in] */ const SPSERIALIZEDRESULT *pSerializedResult,
+ /* [out] */ ISpRecoResult **ppResult);
+
+
+void __RPC_STUB ISpRecoContext_DeserializeResult_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_Bookmark_Proxy(
+ ISpRecoContext * This,
+ /* [in] */ SPBOOKMARKOPTIONS Options,
+ /* [in] */ ULONGLONG ullStreamPosition,
+ /* [in] */ LPARAM lparamEvent);
+
+
+void __RPC_STUB ISpRecoContext_Bookmark_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_SetAdaptationData_Proxy(
+ ISpRecoContext * This,
+ /* [string][in] */ const WCHAR *pAdaptationData,
+ /* [in] */ const ULONG cch);
+
+
+void __RPC_STUB ISpRecoContext_SetAdaptationData_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_Pause_Proxy(
+ ISpRecoContext * This,
+ DWORD dwReserved);
+
+
+void __RPC_STUB ISpRecoContext_Pause_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_Resume_Proxy(
+ ISpRecoContext * This,
+ DWORD dwReserved);
+
+
+void __RPC_STUB ISpRecoContext_Resume_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_SetVoice_Proxy(
+ ISpRecoContext * This,
+ /* [in] */ ISpVoice *pVoice,
+ /* [in] */ BOOL fAllowFormatChanges);
+
+
+void __RPC_STUB ISpRecoContext_SetVoice_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_GetVoice_Proxy(
+ ISpRecoContext * This,
+ /* [out] */ ISpVoice **ppVoice);
+
+
+void __RPC_STUB ISpRecoContext_GetVoice_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_SetVoicePurgeEvent_Proxy(
+ ISpRecoContext * This,
+ /* [in] */ ULONGLONG ullEventInterest);
+
+
+void __RPC_STUB ISpRecoContext_SetVoicePurgeEvent_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_GetVoicePurgeEvent_Proxy(
+ ISpRecoContext * This,
+ /* [out] */ ULONGLONG *pullEventInterest);
+
+
+void __RPC_STUB ISpRecoContext_GetVoicePurgeEvent_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_SetContextState_Proxy(
+ ISpRecoContext * This,
+ /* [in] */ SPCONTEXTSTATE eContextState);
+
+
+void __RPC_STUB ISpRecoContext_SetContextState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecoContext_GetContextState_Proxy(
+ ISpRecoContext * This,
+ /* [in] */ SPCONTEXTSTATE *peContextState);
+
+
+void __RPC_STUB ISpRecoContext_GetContextState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpRecoContext_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpProperties_INTERFACE_DEFINED__
+#define __ISpProperties_INTERFACE_DEFINED__
+
+/* interface ISpProperties */
+/* [restricted][local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpProperties;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("5B4FB971-B115-4DE1-AD97-E482E3BF6EE4")
+ ISpProperties : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
+ /* [in] */ const WCHAR *pName,
+ /* [in] */ LONG lValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
+ /* [in] */ const WCHAR *pName,
+ /* [out] */ LONG *plValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
+ /* [in] */ const WCHAR *pName,
+ /* [in] */ const WCHAR *pValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
+ /* [in] */ const WCHAR *pName,
+ /* [out] */ WCHAR **ppCoMemValue) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpPropertiesVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpProperties * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpProperties * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpProperties * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPropertyNum )(
+ ISpProperties * This,
+ /* [in] */ const WCHAR *pName,
+ /* [in] */ LONG lValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPropertyNum )(
+ ISpProperties * This,
+ /* [in] */ const WCHAR *pName,
+ /* [out] */ LONG *plValue);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPropertyString )(
+ ISpProperties * This,
+ /* [in] */ const WCHAR *pName,
+ /* [in] */ const WCHAR *pValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPropertyString )(
+ ISpProperties * This,
+ /* [in] */ const WCHAR *pName,
+ /* [out] */ WCHAR **ppCoMemValue);
+
+ END_INTERFACE
+ } ISpPropertiesVtbl;
+
+ interface ISpProperties
+ {
+ CONST_VTBL struct ISpPropertiesVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpProperties_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpProperties_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpProperties_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpProperties_SetPropertyNum(This,pName,lValue) \
+ (This)->lpVtbl -> SetPropertyNum(This,pName,lValue)
+
+#define ISpProperties_GetPropertyNum(This,pName,plValue) \
+ (This)->lpVtbl -> GetPropertyNum(This,pName,plValue)
+
+#define ISpProperties_SetPropertyString(This,pName,pValue) \
+ (This)->lpVtbl -> SetPropertyString(This,pName,pValue)
+
+#define ISpProperties_GetPropertyString(This,pName,ppCoMemValue) \
+ (This)->lpVtbl -> GetPropertyString(This,pName,ppCoMemValue)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpProperties_SetPropertyNum_Proxy(
+ ISpProperties * This,
+ /* [in] */ const WCHAR *pName,
+ /* [in] */ LONG lValue);
+
+
+void __RPC_STUB ISpProperties_SetPropertyNum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpProperties_GetPropertyNum_Proxy(
+ ISpProperties * This,
+ /* [in] */ const WCHAR *pName,
+ /* [out] */ LONG *plValue);
+
+
+void __RPC_STUB ISpProperties_GetPropertyNum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpProperties_SetPropertyString_Proxy(
+ ISpProperties * This,
+ /* [in] */ const WCHAR *pName,
+ /* [in] */ const WCHAR *pValue);
+
+
+void __RPC_STUB ISpProperties_SetPropertyString_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpProperties_GetPropertyString_Proxy(
+ ISpProperties * This,
+ /* [in] */ const WCHAR *pName,
+ /* [out] */ WCHAR **ppCoMemValue);
+
+
+void __RPC_STUB ISpProperties_GetPropertyString_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpProperties_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapi_0281 */
+/* [local] */
+
+#define SP_MAX_LANGIDS ( 20 )
+
+typedef /* [hidden][restricted] */ struct SPRECOGNIZERSTATUS
+ {
+ SPAUDIOSTATUS AudioStatus;
+ ULONGLONG ullRecognitionStreamPos;
+ ULONG ulStreamNumber;
+ ULONG ulNumActive;
+ CLSID clsidEngine;
+ ULONG cLangIDs;
+ WORD aLangID[ 20 ];
+ DWORD dwReserved1;
+ DWORD dwReserved2;
+ } SPRECOGNIZERSTATUS;
+
+typedef /* [hidden] */
+enum SPWAVEFORMATTYPE
+ { SPWF_INPUT = 0,
+ SPWF_SRENGINE = SPWF_INPUT + 1
+ } SPSTREAMFORMATTYPE;
+
+typedef /* [hidden] */
+enum SPRECOSTATE
+ { SPRST_INACTIVE = 0,
+ SPRST_ACTIVE = SPRST_INACTIVE + 1,
+ SPRST_ACTIVE_ALWAYS = SPRST_ACTIVE + 1,
+ SPRST_INACTIVE_WITH_PURGE = SPRST_ACTIVE_ALWAYS + 1,
+ SPRST_NUM_STATES = SPRST_INACTIVE_WITH_PURGE + 1
+ } SPRECOSTATE;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0281_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapi_0281_v0_0_s_ifspec;
+
+#ifndef __ISpRecognizer_INTERFACE_DEFINED__
+#define __ISpRecognizer_INTERFACE_DEFINED__
+
+/* interface ISpRecognizer */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpRecognizer;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("C2B5F241-DAA0-4507-9E16-5A1EAA2B7A5C")
+ ISpRecognizer : public ISpProperties
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetRecognizer(
+ /* [in] */ ISpObjectToken *pRecognizer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
+ /* [out] */ ISpObjectToken **ppRecognizer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetInput(
+ /* [in] */ IUnknown *pUnkInput,
+ /* [in] */ BOOL fAllowFormatChanges) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetInputObjectToken(
+ /* [out] */ ISpObjectToken **ppToken) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetInputStream(
+ /* [out] */ ISpStreamFormat **ppStream) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
+ /* [out] */ ISpRecoContext **ppNewCtxt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRecoProfile(
+ /* [out] */ ISpObjectToken **ppToken) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
+ /* [in] */ ISpObjectToken *pToken) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsSharedInstance( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRecoState(
+ /* [out] */ SPRECOSTATE *pState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetRecoState(
+ /* [in] */ SPRECOSTATE NewState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStatus(
+ /* [out] */ SPRECOGNIZERSTATUS *pStatus) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFormat(
+ /* [in] */ SPSTREAMFORMATTYPE WaveFormatType,
+ /* [out] */ GUID *pFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemWFEX) = 0;
+
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE IsUISupported(
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [out] */ BOOL *pfSupported) = 0;
+
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE DisplayUI(
+ /* [in] */ HWND hwndParent,
+ /* [in] */ const WCHAR *pszTitle,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
+ /* [in] */ ISpPhrase *pPhrase) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpRecognizerVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpRecognizer * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpRecognizer * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpRecognizer * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPropertyNum )(
+ ISpRecognizer * This,
+ /* [in] */ const WCHAR *pName,
+ /* [in] */ LONG lValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPropertyNum )(
+ ISpRecognizer * This,
+ /* [in] */ const WCHAR *pName,
+ /* [out] */ LONG *plValue);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPropertyString )(
+ ISpRecognizer * This,
+ /* [in] */ const WCHAR *pName,
+ /* [in] */ const WCHAR *pValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPropertyString )(
+ ISpRecognizer * This,
+ /* [in] */ const WCHAR *pName,
+ /* [out] */ WCHAR **ppCoMemValue);
+
+ HRESULT ( STDMETHODCALLTYPE *SetRecognizer )(
+ ISpRecognizer * This,
+ /* [in] */ ISpObjectToken *pRecognizer);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRecognizer )(
+ ISpRecognizer * This,
+ /* [out] */ ISpObjectToken **ppRecognizer);
+
+ HRESULT ( STDMETHODCALLTYPE *SetInput )(
+ ISpRecognizer * This,
+ /* [in] */ IUnknown *pUnkInput,
+ /* [in] */ BOOL fAllowFormatChanges);
+
+ HRESULT ( STDMETHODCALLTYPE *GetInputObjectToken )(
+ ISpRecognizer * This,
+ /* [out] */ ISpObjectToken **ppToken);
+
+ HRESULT ( STDMETHODCALLTYPE *GetInputStream )(
+ ISpRecognizer * This,
+ /* [out] */ ISpStreamFormat **ppStream);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateRecoContext )(
+ ISpRecognizer * This,
+ /* [out] */ ISpRecoContext **ppNewCtxt);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRecoProfile )(
+ ISpRecognizer * This,
+ /* [out] */ ISpObjectToken **ppToken);
+
+ HRESULT ( STDMETHODCALLTYPE *SetRecoProfile )(
+ ISpRecognizer * This,
+ /* [in] */ ISpObjectToken *pToken);
+
+ HRESULT ( STDMETHODCALLTYPE *IsSharedInstance )(
+ ISpRecognizer * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRecoState )(
+ ISpRecognizer * This,
+ /* [out] */ SPRECOSTATE *pState);
+
+ HRESULT ( STDMETHODCALLTYPE *SetRecoState )(
+ ISpRecognizer * This,
+ /* [in] */ SPRECOSTATE NewState);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStatus )(
+ ISpRecognizer * This,
+ /* [out] */ SPRECOGNIZERSTATUS *pStatus);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFormat )(
+ ISpRecognizer * This,
+ /* [in] */ SPSTREAMFORMATTYPE WaveFormatType,
+ /* [out] */ GUID *pFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemWFEX);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *IsUISupported )(
+ ISpRecognizer * This,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [out] */ BOOL *pfSupported);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *DisplayUI )(
+ ISpRecognizer * This,
+ /* [in] */ HWND hwndParent,
+ /* [in] */ const WCHAR *pszTitle,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData);
+
+ HRESULT ( STDMETHODCALLTYPE *EmulateRecognition )(
+ ISpRecognizer * This,
+ /* [in] */ ISpPhrase *pPhrase);
+
+ END_INTERFACE
+ } ISpRecognizerVtbl;
+
+ interface ISpRecognizer
+ {
+ CONST_VTBL struct ISpRecognizerVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpRecognizer_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpRecognizer_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpRecognizer_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpRecognizer_SetPropertyNum(This,pName,lValue) \
+ (This)->lpVtbl -> SetPropertyNum(This,pName,lValue)
+
+#define ISpRecognizer_GetPropertyNum(This,pName,plValue) \
+ (This)->lpVtbl -> GetPropertyNum(This,pName,plValue)
+
+#define ISpRecognizer_SetPropertyString(This,pName,pValue) \
+ (This)->lpVtbl -> SetPropertyString(This,pName,pValue)
+
+#define ISpRecognizer_GetPropertyString(This,pName,ppCoMemValue) \
+ (This)->lpVtbl -> GetPropertyString(This,pName,ppCoMemValue)
+
+
+#define ISpRecognizer_SetRecognizer(This,pRecognizer) \
+ (This)->lpVtbl -> SetRecognizer(This,pRecognizer)
+
+#define ISpRecognizer_GetRecognizer(This,ppRecognizer) \
+ (This)->lpVtbl -> GetRecognizer(This,ppRecognizer)
+
+#define ISpRecognizer_SetInput(This,pUnkInput,fAllowFormatChanges) \
+ (This)->lpVtbl -> SetInput(This,pUnkInput,fAllowFormatChanges)
+
+#define ISpRecognizer_GetInputObjectToken(This,ppToken) \
+ (This)->lpVtbl -> GetInputObjectToken(This,ppToken)
+
+#define ISpRecognizer_GetInputStream(This,ppStream) \
+ (This)->lpVtbl -> GetInputStream(This,ppStream)
+
+#define ISpRecognizer_CreateRecoContext(This,ppNewCtxt) \
+ (This)->lpVtbl -> CreateRecoContext(This,ppNewCtxt)
+
+#define ISpRecognizer_GetRecoProfile(This,ppToken) \
+ (This)->lpVtbl -> GetRecoProfile(This,ppToken)
+
+#define ISpRecognizer_SetRecoProfile(This,pToken) \
+ (This)->lpVtbl -> SetRecoProfile(This,pToken)
+
+#define ISpRecognizer_IsSharedInstance(This) \
+ (This)->lpVtbl -> IsSharedInstance(This)
+
+#define ISpRecognizer_GetRecoState(This,pState) \
+ (This)->lpVtbl -> GetRecoState(This,pState)
+
+#define ISpRecognizer_SetRecoState(This,NewState) \
+ (This)->lpVtbl -> SetRecoState(This,NewState)
+
+#define ISpRecognizer_GetStatus(This,pStatus) \
+ (This)->lpVtbl -> GetStatus(This,pStatus)
+
+#define ISpRecognizer_GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX) \
+ (This)->lpVtbl -> GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
+
+#define ISpRecognizer_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) \
+ (This)->lpVtbl -> IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
+
+#define ISpRecognizer_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) \
+ (This)->lpVtbl -> DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
+
+#define ISpRecognizer_EmulateRecognition(This,pPhrase) \
+ (This)->lpVtbl -> EmulateRecognition(This,pPhrase)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecognizer_Proxy(
+ ISpRecognizer * This,
+ /* [in] */ ISpObjectToken *pRecognizer);
+
+
+void __RPC_STUB ISpRecognizer_SetRecognizer_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecognizer_Proxy(
+ ISpRecognizer * This,
+ /* [out] */ ISpObjectToken **ppRecognizer);
+
+
+void __RPC_STUB ISpRecognizer_GetRecognizer_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecognizer_SetInput_Proxy(
+ ISpRecognizer * This,
+ /* [in] */ IUnknown *pUnkInput,
+ /* [in] */ BOOL fAllowFormatChanges);
+
+
+void __RPC_STUB ISpRecognizer_SetInput_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecognizer_GetInputObjectToken_Proxy(
+ ISpRecognizer * This,
+ /* [out] */ ISpObjectToken **ppToken);
+
+
+void __RPC_STUB ISpRecognizer_GetInputObjectToken_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecognizer_GetInputStream_Proxy(
+ ISpRecognizer * This,
+ /* [out] */ ISpStreamFormat **ppStream);
+
+
+void __RPC_STUB ISpRecognizer_GetInputStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecognizer_CreateRecoContext_Proxy(
+ ISpRecognizer * This,
+ /* [out] */ ISpRecoContext **ppNewCtxt);
+
+
+void __RPC_STUB ISpRecognizer_CreateRecoContext_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecoProfile_Proxy(
+ ISpRecognizer * This,
+ /* [out] */ ISpObjectToken **ppToken);
+
+
+void __RPC_STUB ISpRecognizer_GetRecoProfile_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecoProfile_Proxy(
+ ISpRecognizer * This,
+ /* [in] */ ISpObjectToken *pToken);
+
+
+void __RPC_STUB ISpRecognizer_SetRecoProfile_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecognizer_IsSharedInstance_Proxy(
+ ISpRecognizer * This);
+
+
+void __RPC_STUB ISpRecognizer_IsSharedInstance_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecoState_Proxy(
+ ISpRecognizer * This,
+ /* [out] */ SPRECOSTATE *pState);
+
+
+void __RPC_STUB ISpRecognizer_GetRecoState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecoState_Proxy(
+ ISpRecognizer * This,
+ /* [in] */ SPRECOSTATE NewState);
+
+
+void __RPC_STUB ISpRecognizer_SetRecoState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecognizer_GetStatus_Proxy(
+ ISpRecognizer * This,
+ /* [out] */ SPRECOGNIZERSTATUS *pStatus);
+
+
+void __RPC_STUB ISpRecognizer_GetStatus_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecognizer_GetFormat_Proxy(
+ ISpRecognizer * This,
+ /* [in] */ SPSTREAMFORMATTYPE WaveFormatType,
+ /* [out] */ GUID *pFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemWFEX);
+
+
+void __RPC_STUB ISpRecognizer_GetFormat_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [local] */ HRESULT STDMETHODCALLTYPE ISpRecognizer_IsUISupported_Proxy(
+ ISpRecognizer * This,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [out] */ BOOL *pfSupported);
+
+
+void __RPC_STUB ISpRecognizer_IsUISupported_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [local] */ HRESULT STDMETHODCALLTYPE ISpRecognizer_DisplayUI_Proxy(
+ ISpRecognizer * This,
+ /* [in] */ HWND hwndParent,
+ /* [in] */ const WCHAR *pszTitle,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData);
+
+
+void __RPC_STUB ISpRecognizer_DisplayUI_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpRecognizer_EmulateRecognition_Proxy(
+ ISpRecognizer * This,
+ /* [in] */ ISpPhrase *pPhrase);
+
+
+void __RPC_STUB ISpRecognizer_EmulateRecognition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpRecognizer_INTERFACE_DEFINED__ */
+
+
+
+#ifndef __SpeechLib_LIBRARY_DEFINED__
+#define __SpeechLib_LIBRARY_DEFINED__
+
+/* library SpeechLib */
+/* [version][uuid][helpstring] */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef long SpeechLanguageId;
+
+#define __SpeechStringConstants_MODULE_DEFINED__
+typedef /* [hidden] */
+enum DISPID_SpeechDataKey
+ { DISPID_SDKSetBinaryValue = 1,
+ DISPID_SDKGetBinaryValue = DISPID_SDKSetBinaryValue + 1,
+ DISPID_SDKSetStringValue = DISPID_SDKGetBinaryValue + 1,
+ DISPID_SDKGetStringValue = DISPID_SDKSetStringValue + 1,
+ DISPID_SDKSetLongValue = DISPID_SDKGetStringValue + 1,
+ DISPID_SDKGetlongValue = DISPID_SDKSetLongValue + 1,
+ DISPID_SDKOpenKey = DISPID_SDKGetlongValue + 1,
+ DISPID_SDKCreateKey = DISPID_SDKOpenKey + 1,
+ DISPID_SDKDeleteKey = DISPID_SDKCreateKey + 1,
+ DISPID_SDKDeleteValue = DISPID_SDKDeleteKey + 1,
+ DISPID_SDKEnumKeys = DISPID_SDKDeleteValue + 1,
+ DISPID_SDKEnumValues = DISPID_SDKEnumKeys + 1
+ } DISPID_SpeechDataKey;
+
+typedef /* [hidden] */
+enum DISPID_SpeechObjectToken
+ { DISPID_SOTId = 1,
+ DISPID_SOTDataKey = DISPID_SOTId + 1,
+ DISPID_SOTCategory = DISPID_SOTDataKey + 1,
+ DISPID_SOTGetDescription = DISPID_SOTCategory + 1,
+ DISPID_SOTSetId = DISPID_SOTGetDescription + 1,
+ DISPID_SOTGetAttribute = DISPID_SOTSetId + 1,
+ DISPID_SOTCreateInstance = DISPID_SOTGetAttribute + 1,
+ DISPID_SOTRemove = DISPID_SOTCreateInstance + 1,
+ DISPID_SOTGetStorageFileName = DISPID_SOTRemove + 1,
+ DISPID_SOTRemoveStorageFileName = DISPID_SOTGetStorageFileName + 1,
+ DISPID_SOTIsUISupported = DISPID_SOTRemoveStorageFileName + 1,
+ DISPID_SOTDisplayUI = DISPID_SOTIsUISupported + 1,
+ DISPID_SOTMatchesAttributes = DISPID_SOTDisplayUI + 1
+ } DISPID_SpeechObjectToken;
+
+typedef
+enum SpeechDataKeyLocation
+ { SDKLDefaultLocation = SPDKL_DefaultLocation,
+ SDKLCurrentUser = SPDKL_CurrentUser,
+ SDKLLocalMachine = SPDKL_LocalMachine,
+ SDKLCurrentConfig = SPDKL_CurrentConfig
+ } SpeechDataKeyLocation;
+
+typedef
+enum SpeechTokenContext
+ { STCInprocServer = CLSCTX_INPROC_SERVER,
+ STCInprocHandler = CLSCTX_INPROC_HANDLER,
+ STCLocalServer = CLSCTX_LOCAL_SERVER,
+ STCRemoteServer = CLSCTX_REMOTE_SERVER,
+ STCAll = CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER
+ } SpeechTokenContext;
+
+typedef
+enum SpeechTokenShellFolder
+ { STSF_AppData = 0x1a,
+ STSF_LocalAppData = 0x1c,
+ STSF_CommonAppData = 0x23,
+ STSF_FlagCreate = 0x8000
+ } SpeechTokenShellFolder;
+
+typedef /* [hidden] */
+enum DISPID_SpeechObjectTokens
+ { DISPID_SOTsCount = 1,
+ DISPID_SOTsItem = DISPID_VALUE,
+ DISPID_SOTs_NewEnum = DISPID_NEWENUM
+ } DISPID_SpeechObjectTokens;
+
+typedef /* [hidden] */
+enum DISPID_SpeechObjectTokenCategory
+ { DISPID_SOTCId = 1,
+ DISPID_SOTCDefault = DISPID_SOTCId + 1,
+ DISPID_SOTCSetId = DISPID_SOTCDefault + 1,
+ DISPID_SOTCGetDataKey = DISPID_SOTCSetId + 1,
+ DISPID_SOTCEnumerateTokens = DISPID_SOTCGetDataKey + 1
+ } DISPID_SpeechObjectTokenCategory;
+
+typedef
+enum SpeechAudioFormatType
+ { SAFTDefault = -1,
+ SAFTNoAssignedFormat = 0,
+ SAFTText = SAFTNoAssignedFormat + 1,
+ SAFTNonStandardFormat = SAFTText + 1,
+ SAFTExtendedAudioFormat = SAFTNonStandardFormat + 1,
+ SAFT8kHz8BitMono = SAFTExtendedAudioFormat + 1,
+ SAFT8kHz8BitStereo = SAFT8kHz8BitMono + 1,
+ SAFT8kHz16BitMono = SAFT8kHz8BitStereo + 1,
+ SAFT8kHz16BitStereo = SAFT8kHz16BitMono + 1,
+ SAFT11kHz8BitMono = SAFT8kHz16BitStereo + 1,
+ SAFT11kHz8BitStereo = SAFT11kHz8BitMono + 1,
+ SAFT11kHz16BitMono = SAFT11kHz8BitStereo + 1,
+ SAFT11kHz16BitStereo = SAFT11kHz16BitMono + 1,
+ SAFT12kHz8BitMono = SAFT11kHz16BitStereo + 1,
+ SAFT12kHz8BitStereo = SAFT12kHz8BitMono + 1,
+ SAFT12kHz16BitMono = SAFT12kHz8BitStereo + 1,
+ SAFT12kHz16BitStereo = SAFT12kHz16BitMono + 1,
+ SAFT16kHz8BitMono = SAFT12kHz16BitStereo + 1,
+ SAFT16kHz8BitStereo = SAFT16kHz8BitMono + 1,
+ SAFT16kHz16BitMono = SAFT16kHz8BitStereo + 1,
+ SAFT16kHz16BitStereo = SAFT16kHz16BitMono + 1,
+ SAFT22kHz8BitMono = SAFT16kHz16BitStereo + 1,
+ SAFT22kHz8BitStereo = SAFT22kHz8BitMono + 1,
+ SAFT22kHz16BitMono = SAFT22kHz8BitStereo + 1,
+ SAFT22kHz16BitStereo = SAFT22kHz16BitMono + 1,
+ SAFT24kHz8BitMono = SAFT22kHz16BitStereo + 1,
+ SAFT24kHz8BitStereo = SAFT24kHz8BitMono + 1,
+ SAFT24kHz16BitMono = SAFT24kHz8BitStereo + 1,
+ SAFT24kHz16BitStereo = SAFT24kHz16BitMono + 1,
+ SAFT32kHz8BitMono = SAFT24kHz16BitStereo + 1,
+ SAFT32kHz8BitStereo = SAFT32kHz8BitMono + 1,
+ SAFT32kHz16BitMono = SAFT32kHz8BitStereo + 1,
+ SAFT32kHz16BitStereo = SAFT32kHz16BitMono + 1,
+ SAFT44kHz8BitMono = SAFT32kHz16BitStereo + 1,
+ SAFT44kHz8BitStereo = SAFT44kHz8BitMono + 1,
+ SAFT44kHz16BitMono = SAFT44kHz8BitStereo + 1,
+ SAFT44kHz16BitStereo = SAFT44kHz16BitMono + 1,
+ SAFT48kHz8BitMono = SAFT44kHz16BitStereo + 1,
+ SAFT48kHz8BitStereo = SAFT48kHz8BitMono + 1,
+ SAFT48kHz16BitMono = SAFT48kHz8BitStereo + 1,
+ SAFT48kHz16BitStereo = SAFT48kHz16BitMono + 1,
+ SAFTTrueSpeech_8kHz1BitMono = SAFT48kHz16BitStereo + 1,
+ SAFTCCITT_ALaw_8kHzMono = SAFTTrueSpeech_8kHz1BitMono + 1,
+ SAFTCCITT_ALaw_8kHzStereo = SAFTCCITT_ALaw_8kHzMono + 1,
+ SAFTCCITT_ALaw_11kHzMono = SAFTCCITT_ALaw_8kHzStereo + 1,
+ SAFTCCITT_ALaw_11kHzStereo = SAFTCCITT_ALaw_11kHzMono + 1,
+ SAFTCCITT_ALaw_22kHzMono = SAFTCCITT_ALaw_11kHzStereo + 1,
+ SAFTCCITT_ALaw_22kHzStereo = SAFTCCITT_ALaw_22kHzMono + 1,
+ SAFTCCITT_ALaw_44kHzMono = SAFTCCITT_ALaw_22kHzStereo + 1,
+ SAFTCCITT_ALaw_44kHzStereo = SAFTCCITT_ALaw_44kHzMono + 1,
+ SAFTCCITT_uLaw_8kHzMono = SAFTCCITT_ALaw_44kHzStereo + 1,
+ SAFTCCITT_uLaw_8kHzStereo = SAFTCCITT_uLaw_8kHzMono + 1,
+ SAFTCCITT_uLaw_11kHzMono = SAFTCCITT_uLaw_8kHzStereo + 1,
+ SAFTCCITT_uLaw_11kHzStereo = SAFTCCITT_uLaw_11kHzMono + 1,
+ SAFTCCITT_uLaw_22kHzMono = SAFTCCITT_uLaw_11kHzStereo + 1,
+ SAFTCCITT_uLaw_22kHzStereo = SAFTCCITT_uLaw_22kHzMono + 1,
+ SAFTCCITT_uLaw_44kHzMono = SAFTCCITT_uLaw_22kHzStereo + 1,
+ SAFTCCITT_uLaw_44kHzStereo = SAFTCCITT_uLaw_44kHzMono + 1,
+ SAFTADPCM_8kHzMono = SAFTCCITT_uLaw_44kHzStereo + 1,
+ SAFTADPCM_8kHzStereo = SAFTADPCM_8kHzMono + 1,
+ SAFTADPCM_11kHzMono = SAFTADPCM_8kHzStereo + 1,
+ SAFTADPCM_11kHzStereo = SAFTADPCM_11kHzMono + 1,
+ SAFTADPCM_22kHzMono = SAFTADPCM_11kHzStereo + 1,
+ SAFTADPCM_22kHzStereo = SAFTADPCM_22kHzMono + 1,
+ SAFTADPCM_44kHzMono = SAFTADPCM_22kHzStereo + 1,
+ SAFTADPCM_44kHzStereo = SAFTADPCM_44kHzMono + 1,
+ SAFTGSM610_8kHzMono = SAFTADPCM_44kHzStereo + 1,
+ SAFTGSM610_11kHzMono = SAFTGSM610_8kHzMono + 1,
+ SAFTGSM610_22kHzMono = SAFTGSM610_11kHzMono + 1,
+ SAFTGSM610_44kHzMono = SAFTGSM610_22kHzMono + 1
+ } SpeechAudioFormatType;
+
+typedef /* [hidden] */
+enum DISPID_SpeechAudioFormat
+ { DISPID_SAFType = 1,
+ DISPID_SAFGuid = DISPID_SAFType + 1,
+ DISPID_SAFGetWaveFormatEx = DISPID_SAFGuid + 1,
+ DISPID_SAFSetWaveFormatEx = DISPID_SAFGetWaveFormatEx + 1
+ } DISPID_SpeechAudioFormat;
+
+typedef /* [hidden] */
+enum DISPID_SpeechBaseStream
+ { DISPID_SBSFormat = 1,
+ DISPID_SBSRead = DISPID_SBSFormat + 1,
+ DISPID_SBSWrite = DISPID_SBSRead + 1,
+ DISPID_SBSSeek = DISPID_SBSWrite + 1
+ } DISPID_SpeechBaseStream;
+
+typedef
+enum SpeechStreamSeekPositionType
+ { SSSPTRelativeToStart = STREAM_SEEK_SET,
+ SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR,
+ SSSPTRelativeToEnd = STREAM_SEEK_END
+ } SpeechStreamSeekPositionType;
+
+typedef /* [hidden] */
+enum DISPID_SpeechAudio
+ { DISPID_SAStatus = 200,
+ DISPID_SABufferInfo = DISPID_SAStatus + 1,
+ DISPID_SADefaultFormat = DISPID_SABufferInfo + 1,
+ DISPID_SAVolume = DISPID_SADefaultFormat + 1,
+ DISPID_SABufferNotifySize = DISPID_SAVolume + 1,
+ DISPID_SAEventHandle = DISPID_SABufferNotifySize + 1,
+ DISPID_SASetState = DISPID_SAEventHandle + 1
+ } DISPID_SpeechAudio;
+
+typedef
+enum SpeechAudioState
+ { SASClosed = SPAS_CLOSED,
+ SASStop = SPAS_STOP,
+ SASPause = SPAS_PAUSE,
+ SASRun = SPAS_RUN
+ } SpeechAudioState;
+
+typedef /* [hidden] */
+enum DISPID_SpeechMMSysAudio
+ { DISPID_SMSADeviceId = 300,
+ DISPID_SMSALineId = DISPID_SMSADeviceId + 1,
+ DISPID_SMSAMMHandle = DISPID_SMSALineId + 1
+ } DISPID_SpeechMMSysAudio;
+
+typedef /* [hidden] */
+enum DISPID_SpeechFileStream
+ { DISPID_SFSOpen = 100,
+ DISPID_SFSClose = DISPID_SFSOpen + 1
+ } DISPID_SpeechFileStream;
+
+typedef
+enum SpeechStreamFileMode
+ { SSFMOpenForRead = SPFM_OPEN_READONLY,
+ SSFMOpenReadWrite = SPFM_OPEN_READWRITE,
+ SSFMCreate = SPFM_CREATE,
+ SSFMCreateForWrite = SPFM_CREATE_ALWAYS
+ } SpeechStreamFileMode;
+
+typedef /* [hidden] */
+enum DISPID_SpeechCustomStream
+ { DISPID_SCSBaseStream = 100
+ } DISPID_SpeechCustomStream;
+
+typedef /* [hidden] */
+enum DISPID_SpeechMemoryStream
+ { DISPID_SMSSetData = 100,
+ DISPID_SMSGetData = DISPID_SMSSetData + 1
+ } DISPID_SpeechMemoryStream;
+
+typedef /* [hidden] */
+enum DISPID_SpeechAudioStatus
+ { DISPID_SASFreeBufferSpace = 1,
+ DISPID_SASNonBlockingIO = DISPID_SASFreeBufferSpace + 1,
+ DISPID_SASState = DISPID_SASNonBlockingIO + 1,
+ DISPID_SASCurrentSeekPosition = DISPID_SASState + 1,
+ DISPID_SASCurrentDevicePosition = DISPID_SASCurrentSeekPosition + 1
+ } DISPID_SpeechAudioStatus;
+
+typedef /* [hidden] */
+enum DISPID_SpeechAudioBufferInfo
+ { DISPID_SABIMinNotification = 1,
+ DISPID_SABIBufferSize = DISPID_SABIMinNotification + 1,
+ DISPID_SABIEventBias = DISPID_SABIBufferSize + 1
+ } DISPID_SpeechAudioBufferInfo;
+
+typedef /* [hidden] */
+enum DISPID_SpeechWaveFormatEx
+ { DISPID_SWFEFormatTag = 1,
+ DISPID_SWFEChannels = DISPID_SWFEFormatTag + 1,
+ DISPID_SWFESamplesPerSec = DISPID_SWFEChannels + 1,
+ DISPID_SWFEAvgBytesPerSec = DISPID_SWFESamplesPerSec + 1,
+ DISPID_SWFEBlockAlign = DISPID_SWFEAvgBytesPerSec + 1,
+ DISPID_SWFEBitsPerSample = DISPID_SWFEBlockAlign + 1,
+ DISPID_SWFEExtraData = DISPID_SWFEBitsPerSample + 1
+ } DISPID_SpeechWaveFormatEx;
+
+typedef /* [hidden] */
+enum DISPID_SpeechVoice
+ { DISPID_SVStatus = 1,
+ DISPID_SVVoice = DISPID_SVStatus + 1,
+ DISPID_SVAudioOutput = DISPID_SVVoice + 1,
+ DISPID_SVAudioOutputStream = DISPID_SVAudioOutput + 1,
+ DISPID_SVRate = DISPID_SVAudioOutputStream + 1,
+ DISPID_SVVolume = DISPID_SVRate + 1,
+ DISPID_SVAllowAudioOuputFormatChangesOnNextSet = DISPID_SVVolume + 1,
+ DISPID_SVEventInterests = DISPID_SVAllowAudioOuputFormatChangesOnNextSet + 1,
+ DISPID_SVPriority = DISPID_SVEventInterests + 1,
+ DISPID_SVAlertBoundary = DISPID_SVPriority + 1,
+ DISPID_SVSyncronousSpeakTimeout = DISPID_SVAlertBoundary + 1,
+ DISPID_SVSpeak = DISPID_SVSyncronousSpeakTimeout + 1,
+ DISPID_SVSpeakStream = DISPID_SVSpeak + 1,
+ DISPID_SVPause = DISPID_SVSpeakStream + 1,
+ DISPID_SVResume = DISPID_SVPause + 1,
+ DISPID_SVSkip = DISPID_SVResume + 1,
+ DISPID_SVGetVoices = DISPID_SVSkip + 1,
+ DISPID_SVGetAudioOutputs = DISPID_SVGetVoices + 1,
+ DISPID_SVWaitUntilDone = DISPID_SVGetAudioOutputs + 1,
+ DISPID_SVSpeakCompleteEvent = DISPID_SVWaitUntilDone + 1,
+ DISPID_SVIsUISupported = DISPID_SVSpeakCompleteEvent + 1,
+ DISPID_SVDisplayUI = DISPID_SVIsUISupported + 1
+ } DISPID_SpeechVoice;
+
+typedef
+enum SpeechVoicePriority
+ { SVPNormal = SPVPRI_NORMAL,
+ SVPAlert = SPVPRI_ALERT,
+ SVPOver = SPVPRI_OVER
+ } SpeechVoicePriority;
+
+typedef
+enum SpeechVoiceSpeakFlags
+ { SVSFDefault = SPF_DEFAULT,
+ SVSFlagsAsync = SPF_ASYNC,
+ SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK,
+ SVSFIsFilename = SPF_IS_FILENAME,
+ SVSFIsXML = SPF_IS_XML,
+ SVSFIsNotXML = SPF_IS_NOT_XML,
+ SVSFPersistXML = SPF_PERSIST_XML,
+ SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC,
+ SVSFNLPMask = SPF_NLP_MASK,
+ SVSFVoiceMask = SPF_VOICE_MASK,
+ SVSFUnusedFlags = SPF_UNUSED_FLAGS
+ } SpeechVoiceSpeakFlags;
+
+typedef
+enum SpeechVoiceEvents
+ { SVEStartInputStream = 1L << 1,
+ SVEEndInputStream = 1L << 2,
+ SVEVoiceChange = 1L << 3,
+ SVEBookmark = 1L << 4,
+ SVEWordBoundary = 1L << 5,
+ SVEPhoneme = 1L << 6,
+ SVESentenceBoundary = 1L << 7,
+ SVEViseme = 1L << 8,
+ SVEAudioLevel = 1L << 9,
+ SVEPrivate = 1L << 15,
+ SVEAllEvents = 0x83fe
+ } SpeechVoiceEvents;
+
+typedef /* [hidden] */
+enum DISPID_SpeechVoiceStatus
+ { DISPID_SVSCurrentStreamNumber = 1,
+ DISPID_SVSLastStreamNumberQueued = DISPID_SVSCurrentStreamNumber + 1,
+ DISPID_SVSLastResult = DISPID_SVSLastStreamNumberQueued + 1,
+ DISPID_SVSRunningState = DISPID_SVSLastResult + 1,
+ DISPID_SVSInputWordPosition = DISPID_SVSRunningState + 1,
+ DISPID_SVSInputWordLength = DISPID_SVSInputWordPosition + 1,
+ DISPID_SVSInputSentencePosition = DISPID_SVSInputWordLength + 1,
+ DISPID_SVSInputSentenceLength = DISPID_SVSInputSentencePosition + 1,
+ DISPID_SVSLastBookmark = DISPID_SVSInputSentenceLength + 1,
+ DISPID_SVSLastBookmarkId = DISPID_SVSLastBookmark + 1,
+ DISPID_SVSPhonemeId = DISPID_SVSLastBookmarkId + 1,
+ DISPID_SVSVisemeId = DISPID_SVSPhonemeId + 1
+ } DISPID_SpeechVoiceStatus;
+
+typedef
+enum SpeechRunState
+ { SRSEDone = SPRS_DONE,
+ SRSEIsSpeaking = SPRS_IS_SPEAKING
+ } SpeechRunState;
+
+typedef
+enum SpeechVisemeType
+ { SVP_0 = 0,
+ SVP_1 = SVP_0 + 1,
+ SVP_2 = SVP_1 + 1,
+ SVP_3 = SVP_2 + 1,
+ SVP_4 = SVP_3 + 1,
+ SVP_5 = SVP_4 + 1,
+ SVP_6 = SVP_5 + 1,
+ SVP_7 = SVP_6 + 1,
+ SVP_8 = SVP_7 + 1,
+ SVP_9 = SVP_8 + 1,
+ SVP_10 = SVP_9 + 1,
+ SVP_11 = SVP_10 + 1,
+ SVP_12 = SVP_11 + 1,
+ SVP_13 = SVP_12 + 1,
+ SVP_14 = SVP_13 + 1,
+ SVP_15 = SVP_14 + 1,
+ SVP_16 = SVP_15 + 1,
+ SVP_17 = SVP_16 + 1,
+ SVP_18 = SVP_17 + 1,
+ SVP_19 = SVP_18 + 1,
+ SVP_20 = SVP_19 + 1,
+ SVP_21 = SVP_20 + 1
+ } SpeechVisemeType;
+
+typedef
+enum SpeechVisemeFeature
+ { SVF_None = 0,
+ SVF_Stressed = SPVFEATURE_STRESSED,
+ SVF_Emphasis = SPVFEATURE_EMPHASIS
+ } SpeechVisemeFeature;
+
+typedef /* [hidden] */
+enum DISPID_SpeechVoiceEvent
+ { DISPID_SVEStreamStart = 1,
+ DISPID_SVEStreamEnd = DISPID_SVEStreamStart + 1,
+ DISPID_SVEVoiceChange = DISPID_SVEStreamEnd + 1,
+ DISPID_SVEBookmark = DISPID_SVEVoiceChange + 1,
+ DISPID_SVEWord = DISPID_SVEBookmark + 1,
+ DISPID_SVEPhoneme = DISPID_SVEWord + 1,
+ DISPID_SVESentenceBoundary = DISPID_SVEPhoneme + 1,
+ DISPID_SVEViseme = DISPID_SVESentenceBoundary + 1,
+ DISPID_SVEAudioLevel = DISPID_SVEViseme + 1,
+ DISPID_SVEEnginePrivate = DISPID_SVEAudioLevel + 1
+ } DISPID_SpeechVoiceEvent;
+
+typedef /* [hidden] */
+enum DISPID_SpeechRecognizer
+ { DISPID_SRRecognizer = 1,
+ DISPID_SRAllowAudioInputFormatChangesOnNextSet = DISPID_SRRecognizer + 1,
+ DISPID_SRAudioInput = DISPID_SRAllowAudioInputFormatChangesOnNextSet + 1,
+ DISPID_SRAudioInputStream = DISPID_SRAudioInput + 1,
+ DISPID_SRIsShared = DISPID_SRAudioInputStream + 1,
+ DISPID_SRState = DISPID_SRIsShared + 1,
+ DISPID_SRStatus = DISPID_SRState + 1,
+ DISPID_SRProfile = DISPID_SRStatus + 1,
+ DISPID_SREmulateRecognition = DISPID_SRProfile + 1,
+ DISPID_SRCreateRecoContext = DISPID_SREmulateRecognition + 1,
+ DISPID_SRGetFormat = DISPID_SRCreateRecoContext + 1,
+ DISPID_SRSetPropertyNumber = DISPID_SRGetFormat + 1,
+ DISPID_SRGetPropertyNumber = DISPID_SRSetPropertyNumber + 1,
+ DISPID_SRSetPropertyString = DISPID_SRGetPropertyNumber + 1,
+ DISPID_SRGetPropertyString = DISPID_SRSetPropertyString + 1,
+ DISPID_SRIsUISupported = DISPID_SRGetPropertyString + 1,
+ DISPID_SRDisplayUI = DISPID_SRIsUISupported + 1,
+ DISPID_SRGetRecognizers = DISPID_SRDisplayUI + 1,
+ DISPID_SVGetAudioInputs = DISPID_SRGetRecognizers + 1,
+ DISPID_SVGetProfiles = DISPID_SVGetAudioInputs + 1
+ } DISPID_SpeechRecognizer;
+
+typedef
+enum SpeechRecognizerState
+ { SRSInactive = SPRST_INACTIVE,
+ SRSActive = SPRST_ACTIVE,
+ SRSActiveAlways = SPRST_ACTIVE_ALWAYS,
+ SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE
+ } SpeechRecognizerState;
+
+typedef
+enum SpeechDisplayAttributes
+ { SDA_No_Trailing_Space = 0,
+ SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE,
+ SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES,
+ SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES
+ } SpeechDisplayAttributes;
+
+typedef
+enum SpeechFormatType
+ { SFTInput = SPWF_INPUT,
+ SFTSREngine = SPWF_SRENGINE
+ } SpeechFormatType;
+
+typedef /* [hidden] */
+enum DISPID_SpeechRecognizerStatus
+ { DISPID_SRSAudioStatus = 1,
+ DISPID_SRSCurrentStreamPosition = DISPID_SRSAudioStatus + 1,
+ DISPID_SRSCurrentStreamNumber = DISPID_SRSCurrentStreamPosition + 1,
+ DISPID_SRSNumberOfActiveRules = DISPID_SRSCurrentStreamNumber + 1,
+ DISPID_SRSClsidEngine = DISPID_SRSNumberOfActiveRules + 1,
+ DISPID_SRSSupportedLanguages = DISPID_SRSClsidEngine + 1
+ } DISPID_SpeechRecognizerStatus;
+
+typedef /* [hidden] */
+enum DISPID_SpeechRecoContext
+ { DISPID_SRCRecognizer = 1,
+ DISPID_SRCAudioInInterferenceStatus = DISPID_SRCRecognizer + 1,
+ DISPID_SRCRequestedUIType = DISPID_SRCAudioInInterferenceStatus + 1,
+ DISPID_SRCVoice = DISPID_SRCRequestedUIType + 1,
+ DISPID_SRAllowVoiceFormatMatchingOnNextSet = DISPID_SRCVoice + 1,
+ DISPID_SRCVoicePurgeEvent = DISPID_SRAllowVoiceFormatMatchingOnNextSet + 1,
+ DISPID_SRCEventInterests = DISPID_SRCVoicePurgeEvent + 1,
+ DISPID_SRCCmdMaxAlternates = DISPID_SRCEventInterests + 1,
+ DISPID_SRCState = DISPID_SRCCmdMaxAlternates + 1,
+ DISPID_SRCRetainedAudio = DISPID_SRCState + 1,
+ DISPID_SRCRetainedAudioFormat = DISPID_SRCRetainedAudio + 1,
+ DISPID_SRCPause = DISPID_SRCRetainedAudioFormat + 1,
+ DISPID_SRCResume = DISPID_SRCPause + 1,
+ DISPID_SRCCreateGrammar = DISPID_SRCResume + 1,
+ DISPID_SRCCreateResultFromMemory = DISPID_SRCCreateGrammar + 1,
+ DISPID_SRCBookmark = DISPID_SRCCreateResultFromMemory + 1,
+ DISPID_SRCSetAdaptationData = DISPID_SRCBookmark + 1
+ } DISPID_SpeechRecoContext;
+
+typedef
+enum SpeechRetainedAudioOptions
+ { SRAONone = SPAO_NONE,
+ SRAORetainAudio = SPAO_RETAIN_AUDIO
+ } SpeechRetainedAudioOptions;
+
+typedef
+enum SpeechBookmarkOptions
+ { SBONone = SPBO_NONE,
+ SBOPause = SPBO_PAUSE
+ } SpeechBookmarkOptions;
+
+typedef
+enum SpeechInterference
+ { SINone = SPINTERFERENCE_NONE,
+ SINoise = SPINTERFERENCE_NOISE,
+ SINoSignal = SPINTERFERENCE_NOSIGNAL,
+ SITooLoud = SPINTERFERENCE_TOOLOUD,
+ SITooQuiet = SPINTERFERENCE_TOOQUIET,
+ SITooFast = SPINTERFERENCE_TOOFAST,
+ SITooSlow = SPINTERFERENCE_TOOSLOW
+ } SpeechInterference;
+
+typedef
+enum SpeechRecoEvents
+ { SREStreamEnd = 1L << 0,
+ SRESoundStart = 1L << 1,
+ SRESoundEnd = 1L << 2,
+ SREPhraseStart = 1L << 3,
+ SRERecognition = 1L << 4,
+ SREHypothesis = 1L << 5,
+ SREBookmark = 1L << 6,
+ SREPropertyNumChange = 1L << 7,
+ SREPropertyStringChange = 1L << 8,
+ SREFalseRecognition = 1L << 9,
+ SREInterference = 1L << 10,
+ SRERequestUI = 1L << 11,
+ SREStateChange = 1L << 12,
+ SREAdaptation = 1L << 13,
+ SREStreamStart = 1L << 14,
+ SRERecoOtherContext = 1L << 15,
+ SREAudioLevel = 1L << 16,
+ SREPrivate = 1L << 18,
+ SREAllEvents = 0x5ffff
+ } SpeechRecoEvents;
+
+typedef
+enum SpeechRecoContextState
+ { SRCS_Disabled = SPCS_DISABLED,
+ SRCS_Enabled = SPCS_ENABLED
+ } SpeechRecoContextState;
+
+typedef /* [hidden] */
+enum DISPIDSPRG
+ { DISPID_SRGId = 1,
+ DISPID_SRGRecoContext = DISPID_SRGId + 1,
+ DISPID_SRGState = DISPID_SRGRecoContext + 1,
+ DISPID_SRGRules = DISPID_SRGState + 1,
+ DISPID_SRGReset = DISPID_SRGRules + 1,
+ DISPID_SRGCommit = DISPID_SRGReset + 1,
+ DISPID_SRGCmdLoadFromFile = DISPID_SRGCommit + 1,
+ DISPID_SRGCmdLoadFromObject = DISPID_SRGCmdLoadFromFile + 1,
+ DISPID_SRGCmdLoadFromResource = DISPID_SRGCmdLoadFromObject + 1,
+ DISPID_SRGCmdLoadFromMemory = DISPID_SRGCmdLoadFromResource + 1,
+ DISPID_SRGCmdLoadFromProprietaryGrammar = DISPID_SRGCmdLoadFromMemory + 1,
+ DISPID_SRGCmdSetRuleState = DISPID_SRGCmdLoadFromProprietaryGrammar + 1,
+ DISPID_SRGCmdSetRuleIdState = DISPID_SRGCmdSetRuleState + 1,
+ DISPID_SRGDictationLoad = DISPID_SRGCmdSetRuleIdState + 1,
+ DISPID_SRGDictationUnload = DISPID_SRGDictationLoad + 1,
+ DISPID_SRGDictationSetState = DISPID_SRGDictationUnload + 1,
+ DISPID_SRGSetWordSequenceData = DISPID_SRGDictationSetState + 1,
+ DISPID_SRGSetTextSelection = DISPID_SRGSetWordSequenceData + 1,
+ DISPID_SRGIsPronounceable = DISPID_SRGSetTextSelection + 1
+ } DISPIDSPRG;
+
+typedef
+enum SpeechLoadOption
+ { SLOStatic = SPLO_STATIC,
+ SLODynamic = SPLO_DYNAMIC
+ } SpeechLoadOption;
+
+typedef
+enum SpeechWordPronounceable
+ { SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
+ SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
+ SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE
+ } SpeechWordPronounceable;
+
+typedef
+enum SpeechGrammarState
+ { SGSEnabled = SPGS_ENABLED,
+ SGSDisabled = SPGS_DISABLED,
+ SGSExclusive = SPGS_EXCLUSIVE
+ } SpeechGrammarState;
+
+typedef
+enum SpeechRuleState
+ { SGDSInactive = SPRS_INACTIVE,
+ SGDSActive = SPRS_ACTIVE,
+ SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE
+ } SpeechRuleState;
+
+typedef
+enum SpeechRuleAttributes
+ { SRATopLevel = SPRAF_TopLevel,
+ SRADefaultToActive = SPRAF_Active,
+ SRAExport = SPRAF_Export,
+ SRAImport = SPRAF_Import,
+ SRAInterpreter = SPRAF_Interpreter,
+ SRADynamic = SPRAF_Dynamic
+ } SpeechRuleAttributes;
+
+typedef
+enum SpeechGrammarWordType
+ { SGDisplay = SPWT_DISPLAY,
+ SGLexical = SPWT_LEXICAL,
+ SGPronounciation = SPWT_PRONUNCIATION
+ } SpeechGrammarWordType;
+
+typedef /* [hidden] */
+enum DISPID_SpeechRecoContextEvents
+ { DISPID_SRCEStartStream = 1,
+ DISPID_SRCEEndStream = DISPID_SRCEStartStream + 1,
+ DISPID_SRCEBookmark = DISPID_SRCEEndStream + 1,
+ DISPID_SRCESoundStart = DISPID_SRCEBookmark + 1,
+ DISPID_SRCESoundEnd = DISPID_SRCESoundStart + 1,
+ DISPID_SRCEPhraseStart = DISPID_SRCESoundEnd + 1,
+ DISPID_SRCERecognition = DISPID_SRCEPhraseStart + 1,
+ DISPID_SRCEHypothesis = DISPID_SRCERecognition + 1,
+ DISPID_SRCEPropertyNumberChange = DISPID_SRCEHypothesis + 1,
+ DISPID_SRCEPropertyStringChange = DISPID_SRCEPropertyNumberChange + 1,
+ DISPID_SRCEFalseRecognition = DISPID_SRCEPropertyStringChange + 1,
+ DISPID_SRCEInterference = DISPID_SRCEFalseRecognition + 1,
+ DISPID_SRCERequestUI = DISPID_SRCEInterference + 1,
+ DISPID_SRCERecognizerStateChange = DISPID_SRCERequestUI + 1,
+ DISPID_SRCEAdaptation = DISPID_SRCERecognizerStateChange + 1,
+ DISPID_SRCERecognitionForOtherContext = DISPID_SRCEAdaptation + 1,
+ DISPID_SRCEAudioLevel = DISPID_SRCERecognitionForOtherContext + 1,
+ DISPID_SRCEEnginePrivate = DISPID_SRCEAudioLevel + 1
+ } DISPID_SpeechRecoContextEvents;
+
+typedef
+enum SpeechRecognitionType
+ { SRTStandard = 0,
+ SRTAutopause = SPREF_AutoPause,
+ SRTEmulated = SPREF_Emulated
+ } SpeechRecognitionType;
+
+typedef /* [hidden] */
+enum DISPID_SpeechGrammarRule
+ { DISPID_SGRAttributes = 1,
+ DISPID_SGRInitialState = DISPID_SGRAttributes + 1,
+ DISPID_SGRName = DISPID_SGRInitialState + 1,
+ DISPID_SGRId = DISPID_SGRName + 1,
+ DISPID_SGRClear = DISPID_SGRId + 1,
+ DISPID_SGRAddResource = DISPID_SGRClear + 1,
+ DISPID_SGRAddState = DISPID_SGRAddResource + 1
+ } DISPID_SpeechGrammarRule;
+
+typedef /* [hidden] */
+enum DISPID_SpeechGrammarRules
+ { DISPID_SGRsCount = 1,
+ DISPID_SGRsDynamic = DISPID_SGRsCount + 1,
+ DISPID_SGRsAdd = DISPID_SGRsDynamic + 1,
+ DISPID_SGRsCommit = DISPID_SGRsAdd + 1,
+ DISPID_SGRsCommitAndSave = DISPID_SGRsCommit + 1,
+ DISPID_SGRsFindRule = DISPID_SGRsCommitAndSave + 1,
+ DISPID_SGRsItem = DISPID_VALUE,
+ DISPID_SGRs_NewEnum = DISPID_NEWENUM
+ } DISPID_SpeechGrammarRules;
+
+typedef /* [hidden] */
+enum DISPID_SpeechGrammarRuleState
+ { DISPID_SGRSRule = 1,
+ DISPID_SGRSTransitions = DISPID_SGRSRule + 1,
+ DISPID_SGRSAddWordTransition = DISPID_SGRSTransitions + 1,
+ DISPID_SGRSAddRuleTransition = DISPID_SGRSAddWordTransition + 1,
+ DISPID_SGRSAddSpecialTransition = DISPID_SGRSAddRuleTransition + 1
+ } DISPID_SpeechGrammarRuleState;
+
+typedef
+enum SpeechSpecialTransitionType
+ { SSTTWildcard = 1,
+ SSTTDictation = SSTTWildcard + 1,
+ SSTTTextBuffer = SSTTDictation + 1
+ } SpeechSpecialTransitionType;
+
+typedef /* [hidden] */
+enum DISPID_SpeechGrammarRuleStateTransitions
+ { DISPID_SGRSTsCount = 1,
+ DISPID_SGRSTsItem = DISPID_VALUE,
+ DISPID_SGRSTs_NewEnum = DISPID_NEWENUM
+ } DISPID_SpeechGrammarRuleStateTransitions;
+
+typedef /* [hidden] */
+enum DISPID_SpeechGrammarRuleStateTransition
+ { DISPID_SGRSTType = 1,
+ DISPID_SGRSTText = DISPID_SGRSTType + 1,
+ DISPID_SGRSTRule = DISPID_SGRSTText + 1,
+ DISPID_SGRSTWeight = DISPID_SGRSTRule + 1,
+ DISPID_SGRSTPropertyName = DISPID_SGRSTWeight + 1,
+ DISPID_SGRSTPropertyId = DISPID_SGRSTPropertyName + 1,
+ DISPID_SGRSTPropertyValue = DISPID_SGRSTPropertyId + 1,
+ DISPID_SGRSTNextState = DISPID_SGRSTPropertyValue + 1
+ } DISPID_SpeechGrammarRuleStateTransition;
+
+typedef
+enum SpeechGrammarRuleStateTransitionType
+ { SGRSTTEpsilon = 0,
+ SGRSTTWord = SGRSTTEpsilon + 1,
+ SGRSTTRule = SGRSTTWord + 1,
+ SGRSTTDictation = SGRSTTRule + 1,
+ SGRSTTWildcard = SGRSTTDictation + 1,
+ SGRSTTTextBuffer = SGRSTTWildcard + 1
+ } SpeechGrammarRuleStateTransitionType;
+
+typedef /* [hidden] */
+enum DISPIDSPTSI
+ { DISPIDSPTSI_ActiveOffset = 1,
+ DISPIDSPTSI_ActiveLength = DISPIDSPTSI_ActiveOffset + 1,
+ DISPIDSPTSI_SelectionOffset = DISPIDSPTSI_ActiveLength + 1,
+ DISPIDSPTSI_SelectionLength = DISPIDSPTSI_SelectionOffset + 1
+ } DISPIDSPTSI;
+
+typedef /* [hidden] */
+enum DISPID_SpeechRecoResult
+ { DISPID_SRRRecoContext = 1,
+ DISPID_SRRTimes = DISPID_SRRRecoContext + 1,
+ DISPID_SRRAudioFormat = DISPID_SRRTimes + 1,
+ DISPID_SRRPhraseInfo = DISPID_SRRAudioFormat + 1,
+ DISPID_SRRAlternates = DISPID_SRRPhraseInfo + 1,
+ DISPID_SRRAudio = DISPID_SRRAlternates + 1,
+ DISPID_SRRSpeakAudio = DISPID_SRRAudio + 1,
+ DISPID_SRRSaveToMemory = DISPID_SRRSpeakAudio + 1,
+ DISPID_SRRDiscardResultInfo = DISPID_SRRSaveToMemory + 1
+ } DISPID_SpeechRecoResult;
+
+typedef
+enum SpeechDiscardType
+ { SDTProperty = SPDF_PROPERTY,
+ SDTReplacement = SPDF_REPLACEMENT,
+ SDTRule = SPDF_RULE,
+ SDTDisplayText = SPDF_DISPLAYTEXT,
+ SDTLexicalForm = SPDF_LEXICALFORM,
+ SDTPronunciation = SPDF_PRONUNCIATION,
+ SDTAudio = SPDF_AUDIO,
+ SDTAlternates = SPDF_ALTERNATES,
+ SDTAll = SPDF_ALL
+ } SpeechDiscardType;
+
+typedef /* [hidden] */
+enum DISPID_SpeechPhraseBuilder
+ { DISPID_SPPBRestorePhraseFromMemory = 1
+ } DISPID_SpeechPhraseBuilder;
+
+typedef /* [hidden] */
+enum DISPID_SpeechRecoResultTimes
+ { DISPID_SRRTStreamTime = 1,
+ DISPID_SRRTLength = DISPID_SRRTStreamTime + 1,
+ DISPID_SRRTTickCount = DISPID_SRRTLength + 1,
+ DISPID_SRRTOffsetFromStart = DISPID_SRRTTickCount + 1
+ } DISPID_SpeechRecoResultTimes;
+
+typedef /* [hidden] */
+enum DISPID_SpeechPhraseAlternate
+ { DISPID_SPARecoResult = 1,
+ DISPID_SPAStartElementInResult = DISPID_SPARecoResult + 1,
+ DISPID_SPANumberOfElementsInResult = DISPID_SPAStartElementInResult + 1,
+ DISPID_SPAPhraseInfo = DISPID_SPANumberOfElementsInResult + 1,
+ DISPID_SPACommit = DISPID_SPAPhraseInfo + 1
+ } DISPID_SpeechPhraseAlternate;
+
+typedef /* [hidden] */
+enum DISPID_SpeechPhraseAlternates
+ { DISPID_SPAsCount = 1,
+ DISPID_SPAsItem = DISPID_VALUE,
+ DISPID_SPAs_NewEnum = DISPID_NEWENUM
+ } DISPID_SpeechPhraseAlternates;
+
+typedef /* [hidden] */
+enum DISPID_SpeechPhraseInfo
+ { DISPID_SPILanguageId = 1,
+ DISPID_SPIGrammarId = DISPID_SPILanguageId + 1,
+ DISPID_SPIStartTime = DISPID_SPIGrammarId + 1,
+ DISPID_SPIAudioStreamPosition = DISPID_SPIStartTime + 1,
+ DISPID_SPIAudioSizeBytes = DISPID_SPIAudioStreamPosition + 1,
+ DISPID_SPIRetainedSizeBytes = DISPID_SPIAudioSizeBytes + 1,
+ DISPID_SPIAudioSizeTime = DISPID_SPIRetainedSizeBytes + 1,
+ DISPID_SPIRule = DISPID_SPIAudioSizeTime + 1,
+ DISPID_SPIProperties = DISPID_SPIRule + 1,
+ DISPID_SPIElements = DISPID_SPIProperties + 1,
+ DISPID_SPIReplacements = DISPID_SPIElements + 1,
+ DISPID_SPIEngineId = DISPID_SPIReplacements + 1,
+ DISPID_SPIEnginePrivateData = DISPID_SPIEngineId + 1,
+ DISPID_SPISaveToMemory = DISPID_SPIEnginePrivateData + 1,
+ DISPID_SPIGetText = DISPID_SPISaveToMemory + 1,
+ DISPID_SPIGetDisplayAttributes = DISPID_SPIGetText + 1
+ } DISPID_SpeechPhraseInfo;
+
+typedef /* [hidden] */
+enum DISPID_SpeechPhraseElement
+ { DISPID_SPEAudioTimeOffset = 1,
+ DISPID_SPEAudioSizeTime = DISPID_SPEAudioTimeOffset + 1,
+ DISPID_SPEAudioStreamOffset = DISPID_SPEAudioSizeTime + 1,
+ DISPID_SPEAudioSizeBytes = DISPID_SPEAudioStreamOffset + 1,
+ DISPID_SPERetainedStreamOffset = DISPID_SPEAudioSizeBytes + 1,
+ DISPID_SPERetainedSizeBytes = DISPID_SPERetainedStreamOffset + 1,
+ DISPID_SPEDisplayText = DISPID_SPERetainedSizeBytes + 1,
+ DISPID_SPELexicalForm = DISPID_SPEDisplayText + 1,
+ DISPID_SPEPronunciation = DISPID_SPELexicalForm + 1,
+ DISPID_SPEDisplayAttributes = DISPID_SPEPronunciation + 1,
+ DISPID_SPERequiredConfidence = DISPID_SPEDisplayAttributes + 1,
+ DISPID_SPEActualConfidence = DISPID_SPERequiredConfidence + 1,
+ DISPID_SPEEngineConfidence = DISPID_SPEActualConfidence + 1
+ } DISPID_SpeechPhraseElement;
+
+typedef
+enum SpeechEngineConfidence
+ { SECLowConfidence = -1,
+ SECNormalConfidence = 0,
+ SECHighConfidence = 1
+ } SpeechEngineConfidence;
+
+typedef /* [hidden] */
+enum DISPID_SpeechPhraseElements
+ { DISPID_SPEsCount = 1,
+ DISPID_SPEsItem = DISPID_VALUE,
+ DISPID_SPEs_NewEnum = DISPID_NEWENUM
+ } DISPID_SpeechPhraseElements;
+
+typedef /* [hidden] */
+enum DISPID_SpeechPhraseReplacement
+ { DISPID_SPRDisplayAttributes = 1,
+ DISPID_SPRText = DISPID_SPRDisplayAttributes + 1,
+ DISPID_SPRFirstElement = DISPID_SPRText + 1,
+ DISPID_SPRNumberOfElements = DISPID_SPRFirstElement + 1
+ } DISPID_SpeechPhraseReplacement;
+
+typedef /* [hidden] */
+enum DISPID_SpeechPhraseReplacements
+ { DISPID_SPRsCount = 1,
+ DISPID_SPRsItem = DISPID_VALUE,
+ DISPID_SPRs_NewEnum = DISPID_NEWENUM
+ } DISPID_SpeechPhraseReplacements;
+
+typedef /* [hidden] */
+enum DISPID_SpeechPhraseProperty
+ { DISPID_SPPName = 1,
+ DISPID_SPPId = DISPID_SPPName + 1,
+ DISPID_SPPValue = DISPID_SPPId + 1,
+ DISPID_SPPFirstElement = DISPID_SPPValue + 1,
+ DISPID_SPPNumberOfElements = DISPID_SPPFirstElement + 1,
+ DISPID_SPPEngineConfidence = DISPID_SPPNumberOfElements + 1,
+ DISPID_SPPConfidence = DISPID_SPPEngineConfidence + 1,
+ DISPID_SPPParent = DISPID_SPPConfidence + 1,
+ DISPID_SPPChildren = DISPID_SPPParent + 1
+ } DISPID_SpeechPhraseProperty;
+
+typedef /* [hidden] */
+enum DISPID_SpeechPhraseProperties
+ { DISPID_SPPsCount = 1,
+ DISPID_SPPsItem = DISPID_VALUE,
+ DISPID_SPPs_NewEnum = DISPID_NEWENUM
+ } DISPID_SpeechPhraseProperties;
+
+typedef /* [hidden] */
+enum DISPID_SpeechPhraseRule
+ { DISPID_SPRuleName = 1,
+ DISPID_SPRuleId = DISPID_SPRuleName + 1,
+ DISPID_SPRuleFirstElement = DISPID_SPRuleId + 1,
+ DISPID_SPRuleNumberOfElements = DISPID_SPRuleFirstElement + 1,
+ DISPID_SPRuleParent = DISPID_SPRuleNumberOfElements + 1,
+ DISPID_SPRuleChildren = DISPID_SPRuleParent + 1,
+ DISPID_SPRuleConfidence = DISPID_SPRuleChildren + 1,
+ DISPID_SPRuleEngineConfidence = DISPID_SPRuleConfidence + 1
+ } DISPID_SpeechPhraseRule;
+
+typedef /* [hidden] */
+enum DISPID_SpeechPhraseRules
+ { DISPID_SPRulesCount = 1,
+ DISPID_SPRulesItem = DISPID_VALUE,
+ DISPID_SPRules_NewEnum = DISPID_NEWENUM
+ } DISPID_SpeechPhraseRules;
+
+typedef /* [hidden] */
+enum DISPID_SpeechLexicon
+ { DISPID_SLGenerationId = 1,
+ DISPID_SLGetWords = DISPID_SLGenerationId + 1,
+ DISPID_SLAddPronunciation = DISPID_SLGetWords + 1,
+ DISPID_SLAddPronunciationByPhoneIds = DISPID_SLAddPronunciation + 1,
+ DISPID_SLRemovePronunciation = DISPID_SLAddPronunciationByPhoneIds + 1,
+ DISPID_SLRemovePronunciationByPhoneIds = DISPID_SLRemovePronunciation + 1,
+ DISPID_SLGetPronunciations = DISPID_SLRemovePronunciationByPhoneIds + 1,
+ DISPID_SLGetGenerationChange = DISPID_SLGetPronunciations + 1
+ } DISPID_SpeechLexicon;
+
+typedef
+enum SpeechLexiconType
+ { SLTUser = eLEXTYPE_USER,
+ SLTApp = eLEXTYPE_APP
+ } SpeechLexiconType;
+
+typedef
+enum SpeechPartOfSpeech
+ { SPSNotOverriden = SPPS_NotOverriden,
+ SPSUnknown = SPPS_Unknown,
+ SPSNoun = SPPS_Noun,
+ SPSVerb = SPPS_Verb,
+ SPSModifier = SPPS_Modifier,
+ SPSFunction = SPPS_Function,
+ SPSInterjection = SPPS_Interjection
+ } SpeechPartOfSpeech;
+
+typedef /* [hidden] */
+enum DISPID_SpeechLexiconWords
+ { DISPID_SLWsCount = 1,
+ DISPID_SLWsItem = DISPID_VALUE,
+ DISPID_SLWs_NewEnum = DISPID_NEWENUM
+ } DISPID_SpeechLexiconWords;
+
+typedef
+enum SpeechWordType
+ { SWTAdded = eWORDTYPE_ADDED,
+ SWTDeleted = eWORDTYPE_DELETED
+ } SpeechWordType;
+
+typedef /* [hidden] */
+enum DISPID_SpeechLexiconWord
+ { DISPID_SLWLangId = 1,
+ DISPID_SLWType = DISPID_SLWLangId + 1,
+ DISPID_SLWWord = DISPID_SLWType + 1,
+ DISPID_SLWPronunciations = DISPID_SLWWord + 1
+ } DISPID_SpeechLexiconWord;
+
+typedef /* [hidden] */
+enum DISPID_SpeechLexiconProns
+ { DISPID_SLPsCount = 1,
+ DISPID_SLPsItem = DISPID_VALUE,
+ DISPID_SLPs_NewEnum = DISPID_NEWENUM
+ } DISPID_SpeechLexiconProns;
+
+typedef /* [hidden] */
+enum DISPID_SpeechLexiconPronunciation
+ { DISPID_SLPType = 1,
+ DISPID_SLPLangId = DISPID_SLPType + 1,
+ DISPID_SLPPartOfSpeech = DISPID_SLPLangId + 1,
+ DISPID_SLPPhoneIds = DISPID_SLPPartOfSpeech + 1,
+ DISPID_SLPSymbolic = DISPID_SLPPhoneIds + 1
+ } DISPID_SpeechLexiconPronunciation;
+
+typedef /* [hidden] */
+enum DISPID_SpeechPhoneConverter
+ { DISPID_SPCLangId = 1,
+ DISPID_SPCPhoneToId = DISPID_SPCLangId + 1,
+ DISPID_SPCIdToPhone = DISPID_SPCPhoneToId + 1
+ } DISPID_SpeechPhoneConverter;
+
+
+EXTERN_C const IID LIBID_SpeechLib;
+
+#ifndef __ISpeechDataKey_INTERFACE_DEFINED__
+#define __ISpeechDataKey_INTERFACE_DEFINED__
+
+/* interface ISpeechDataKey */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechDataKey;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("CE17C09B-4EFA-44d5-A4C9-59D9585AB0CD")
+ ISpeechDataKey : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE SetBinaryValue(
+ /* [in] */ const BSTR ValueName,
+ /* [in] */ VARIANT Value) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetBinaryValue(
+ /* [in] */ const BSTR ValueName,
+ /* [retval][out] */ VARIANT *Value) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE SetStringValue(
+ /* [in] */ const BSTR ValueName,
+ /* [in] */ const BSTR Value) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetStringValue(
+ /* [in] */ const BSTR ValueName,
+ /* [retval][out] */ BSTR *Value) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE SetLongValue(
+ /* [in] */ const BSTR ValueName,
+ /* [in] */ long Value) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetLongValue(
+ /* [in] */ const BSTR ValueName,
+ /* [retval][out] */ long *Value) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE OpenKey(
+ /* [in] */ const BSTR SubKeyName,
+ /* [retval][out] */ ISpeechDataKey **SubKey) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE CreateKey(
+ /* [in] */ const BSTR SubKeyName,
+ /* [retval][out] */ ISpeechDataKey **SubKey) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE DeleteKey(
+ /* [in] */ const BSTR SubKeyName) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE DeleteValue(
+ /* [in] */ const BSTR ValueName) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE EnumKeys(
+ /* [in] */ long Index,
+ /* [retval][out] */ BSTR *SubKeyName) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE EnumValues(
+ /* [in] */ long Index,
+ /* [retval][out] */ BSTR *ValueName) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechDataKeyVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechDataKey * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechDataKey * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechDataKey * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechDataKey * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechDataKey * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechDataKey * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechDataKey * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetBinaryValue )(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR ValueName,
+ /* [in] */ VARIANT Value);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetBinaryValue )(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR ValueName,
+ /* [retval][out] */ VARIANT *Value);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetStringValue )(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR ValueName,
+ /* [in] */ const BSTR Value);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetStringValue )(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR ValueName,
+ /* [retval][out] */ BSTR *Value);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetLongValue )(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR ValueName,
+ /* [in] */ long Value);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetLongValue )(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR ValueName,
+ /* [retval][out] */ long *Value);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *OpenKey )(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR SubKeyName,
+ /* [retval][out] */ ISpeechDataKey **SubKey);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateKey )(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR SubKeyName,
+ /* [retval][out] */ ISpeechDataKey **SubKey);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteKey )(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR SubKeyName);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteValue )(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR ValueName);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumKeys )(
+ ISpeechDataKey * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ BSTR *SubKeyName);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumValues )(
+ ISpeechDataKey * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ BSTR *ValueName);
+
+ END_INTERFACE
+ } ISpeechDataKeyVtbl;
+
+ interface ISpeechDataKey
+ {
+ CONST_VTBL struct ISpeechDataKeyVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechDataKey_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechDataKey_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechDataKey_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechDataKey_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechDataKey_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechDataKey_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechDataKey_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechDataKey_SetBinaryValue(This,ValueName,Value) \
+ (This)->lpVtbl -> SetBinaryValue(This,ValueName,Value)
+
+#define ISpeechDataKey_GetBinaryValue(This,ValueName,Value) \
+ (This)->lpVtbl -> GetBinaryValue(This,ValueName,Value)
+
+#define ISpeechDataKey_SetStringValue(This,ValueName,Value) \
+ (This)->lpVtbl -> SetStringValue(This,ValueName,Value)
+
+#define ISpeechDataKey_GetStringValue(This,ValueName,Value) \
+ (This)->lpVtbl -> GetStringValue(This,ValueName,Value)
+
+#define ISpeechDataKey_SetLongValue(This,ValueName,Value) \
+ (This)->lpVtbl -> SetLongValue(This,ValueName,Value)
+
+#define ISpeechDataKey_GetLongValue(This,ValueName,Value) \
+ (This)->lpVtbl -> GetLongValue(This,ValueName,Value)
+
+#define ISpeechDataKey_OpenKey(This,SubKeyName,SubKey) \
+ (This)->lpVtbl -> OpenKey(This,SubKeyName,SubKey)
+
+#define ISpeechDataKey_CreateKey(This,SubKeyName,SubKey) \
+ (This)->lpVtbl -> CreateKey(This,SubKeyName,SubKey)
+
+#define ISpeechDataKey_DeleteKey(This,SubKeyName) \
+ (This)->lpVtbl -> DeleteKey(This,SubKeyName)
+
+#define ISpeechDataKey_DeleteValue(This,ValueName) \
+ (This)->lpVtbl -> DeleteValue(This,ValueName)
+
+#define ISpeechDataKey_EnumKeys(This,Index,SubKeyName) \
+ (This)->lpVtbl -> EnumKeys(This,Index,SubKeyName)
+
+#define ISpeechDataKey_EnumValues(This,Index,ValueName) \
+ (This)->lpVtbl -> EnumValues(This,Index,ValueName)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechDataKey_SetBinaryValue_Proxy(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR ValueName,
+ /* [in] */ VARIANT Value);
+
+
+void __RPC_STUB ISpeechDataKey_SetBinaryValue_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechDataKey_GetBinaryValue_Proxy(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR ValueName,
+ /* [retval][out] */ VARIANT *Value);
+
+
+void __RPC_STUB ISpeechDataKey_GetBinaryValue_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechDataKey_SetStringValue_Proxy(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR ValueName,
+ /* [in] */ const BSTR Value);
+
+
+void __RPC_STUB ISpeechDataKey_SetStringValue_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechDataKey_GetStringValue_Proxy(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR ValueName,
+ /* [retval][out] */ BSTR *Value);
+
+
+void __RPC_STUB ISpeechDataKey_GetStringValue_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechDataKey_SetLongValue_Proxy(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR ValueName,
+ /* [in] */ long Value);
+
+
+void __RPC_STUB ISpeechDataKey_SetLongValue_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechDataKey_GetLongValue_Proxy(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR ValueName,
+ /* [retval][out] */ long *Value);
+
+
+void __RPC_STUB ISpeechDataKey_GetLongValue_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechDataKey_OpenKey_Proxy(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR SubKeyName,
+ /* [retval][out] */ ISpeechDataKey **SubKey);
+
+
+void __RPC_STUB ISpeechDataKey_OpenKey_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechDataKey_CreateKey_Proxy(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR SubKeyName,
+ /* [retval][out] */ ISpeechDataKey **SubKey);
+
+
+void __RPC_STUB ISpeechDataKey_CreateKey_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechDataKey_DeleteKey_Proxy(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR SubKeyName);
+
+
+void __RPC_STUB ISpeechDataKey_DeleteKey_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechDataKey_DeleteValue_Proxy(
+ ISpeechDataKey * This,
+ /* [in] */ const BSTR ValueName);
+
+
+void __RPC_STUB ISpeechDataKey_DeleteValue_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechDataKey_EnumKeys_Proxy(
+ ISpeechDataKey * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ BSTR *SubKeyName);
+
+
+void __RPC_STUB ISpeechDataKey_EnumKeys_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechDataKey_EnumValues_Proxy(
+ ISpeechDataKey * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ BSTR *ValueName);
+
+
+void __RPC_STUB ISpeechDataKey_EnumValues_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechDataKey_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechObjectToken_INTERFACE_DEFINED__
+#define __ISpeechObjectToken_INTERFACE_DEFINED__
+
+/* interface ISpeechObjectToken */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechObjectToken;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("C74A3ADC-B727-4500-A84A-B526721C8B8C")
+ ISpeechObjectToken : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Id(
+ /* [retval][out] */ BSTR *ObjectId) = 0;
+
+ virtual /* [hidden][id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_DataKey(
+ /* [retval][out] */ ISpeechDataKey **DataKey) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Category(
+ /* [retval][out] */ ISpeechObjectTokenCategory **Category) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetDescription(
+ /* [defaultvalue][in] */ long Locale,
+ /* [retval][out] */ BSTR *Description) = 0;
+
+ virtual /* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE SetId(
+ /* [in] */ BSTR Id,
+ /* [defaultvalue][in] */ BSTR CategoryID = L"",
+ /* [defaultvalue][in] */ VARIANT_BOOL CreateIfNotExist = 0) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetAttribute(
+ /* [in] */ BSTR AttributeName,
+ /* [retval][out] */ BSTR *AttributeValue) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE CreateInstance(
+ /* [defaultvalue][in] */ IUnknown *pUnkOuter,
+ /* [defaultvalue][in] */ SpeechTokenContext ClsContext,
+ /* [retval][out] */ IUnknown **Object) = 0;
+
+ virtual /* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE Remove(
+ /* [in] */ BSTR ObjectStorageCLSID) = 0;
+
+ virtual /* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE GetStorageFileName(
+ /* [in] */ BSTR ObjectStorageCLSID,
+ /* [in] */ BSTR KeyName,
+ /* [in] */ BSTR FileName,
+ /* [in] */ SpeechTokenShellFolder Folder,
+ /* [retval][out] */ BSTR *FilePath) = 0;
+
+ virtual /* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
+ /* [in] */ BSTR ObjectStorageCLSID,
+ /* [in] */ BSTR KeyName,
+ /* [in] */ VARIANT_BOOL DeleteFile) = 0;
+
+ virtual /* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE IsUISupported(
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData,
+ /* [defaultvalue][in] */ IUnknown *Object,
+ /* [retval][out] */ VARIANT_BOOL *Supported) = 0;
+
+ virtual /* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE DisplayUI(
+ /* [in] */ long hWnd,
+ /* [in] */ BSTR Title,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData = 0,
+ /* [defaultvalue][in] */ IUnknown *Object = 0) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE MatchesAttributes(
+ /* [in] */ BSTR Attributes,
+ /* [retval][out] */ VARIANT_BOOL *Matches) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechObjectTokenVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechObjectToken * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechObjectToken * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechObjectToken * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechObjectToken * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechObjectToken * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechObjectToken * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechObjectToken * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )(
+ ISpeechObjectToken * This,
+ /* [retval][out] */ BSTR *ObjectId);
+
+ /* [hidden][id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DataKey )(
+ ISpeechObjectToken * This,
+ /* [retval][out] */ ISpeechDataKey **DataKey);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Category )(
+ ISpeechObjectToken * This,
+ /* [retval][out] */ ISpeechObjectTokenCategory **Category);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDescription )(
+ ISpeechObjectToken * This,
+ /* [defaultvalue][in] */ long Locale,
+ /* [retval][out] */ BSTR *Description);
+
+ /* [id][hidden][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetId )(
+ ISpeechObjectToken * This,
+ /* [in] */ BSTR Id,
+ /* [defaultvalue][in] */ BSTR CategoryID,
+ /* [defaultvalue][in] */ VARIANT_BOOL CreateIfNotExist);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAttribute )(
+ ISpeechObjectToken * This,
+ /* [in] */ BSTR AttributeName,
+ /* [retval][out] */ BSTR *AttributeValue);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateInstance )(
+ ISpeechObjectToken * This,
+ /* [defaultvalue][in] */ IUnknown *pUnkOuter,
+ /* [defaultvalue][in] */ SpeechTokenContext ClsContext,
+ /* [retval][out] */ IUnknown **Object);
+
+ /* [id][hidden][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Remove )(
+ ISpeechObjectToken * This,
+ /* [in] */ BSTR ObjectStorageCLSID);
+
+ /* [id][hidden][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetStorageFileName )(
+ ISpeechObjectToken * This,
+ /* [in] */ BSTR ObjectStorageCLSID,
+ /* [in] */ BSTR KeyName,
+ /* [in] */ BSTR FileName,
+ /* [in] */ SpeechTokenShellFolder Folder,
+ /* [retval][out] */ BSTR *FilePath);
+
+ /* [id][hidden][helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveStorageFileName )(
+ ISpeechObjectToken * This,
+ /* [in] */ BSTR ObjectStorageCLSID,
+ /* [in] */ BSTR KeyName,
+ /* [in] */ VARIANT_BOOL DeleteFile);
+
+ /* [id][hidden][helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsUISupported )(
+ ISpeechObjectToken * This,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData,
+ /* [defaultvalue][in] */ IUnknown *Object,
+ /* [retval][out] */ VARIANT_BOOL *Supported);
+
+ /* [id][hidden][helpstring] */ HRESULT ( STDMETHODCALLTYPE *DisplayUI )(
+ ISpeechObjectToken * This,
+ /* [in] */ long hWnd,
+ /* [in] */ BSTR Title,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData,
+ /* [defaultvalue][in] */ IUnknown *Object);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *MatchesAttributes )(
+ ISpeechObjectToken * This,
+ /* [in] */ BSTR Attributes,
+ /* [retval][out] */ VARIANT_BOOL *Matches);
+
+ END_INTERFACE
+ } ISpeechObjectTokenVtbl;
+
+ interface ISpeechObjectToken
+ {
+ CONST_VTBL struct ISpeechObjectTokenVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechObjectToken_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechObjectToken_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechObjectToken_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechObjectToken_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechObjectToken_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechObjectToken_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechObjectToken_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechObjectToken_get_Id(This,ObjectId) \
+ (This)->lpVtbl -> get_Id(This,ObjectId)
+
+#define ISpeechObjectToken_get_DataKey(This,DataKey) \
+ (This)->lpVtbl -> get_DataKey(This,DataKey)
+
+#define ISpeechObjectToken_get_Category(This,Category) \
+ (This)->lpVtbl -> get_Category(This,Category)
+
+#define ISpeechObjectToken_GetDescription(This,Locale,Description) \
+ (This)->lpVtbl -> GetDescription(This,Locale,Description)
+
+#define ISpeechObjectToken_SetId(This,Id,CategoryID,CreateIfNotExist) \
+ (This)->lpVtbl -> SetId(This,Id,CategoryID,CreateIfNotExist)
+
+#define ISpeechObjectToken_GetAttribute(This,AttributeName,AttributeValue) \
+ (This)->lpVtbl -> GetAttribute(This,AttributeName,AttributeValue)
+
+#define ISpeechObjectToken_CreateInstance(This,pUnkOuter,ClsContext,Object) \
+ (This)->lpVtbl -> CreateInstance(This,pUnkOuter,ClsContext,Object)
+
+#define ISpeechObjectToken_Remove(This,ObjectStorageCLSID) \
+ (This)->lpVtbl -> Remove(This,ObjectStorageCLSID)
+
+#define ISpeechObjectToken_GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath) \
+ (This)->lpVtbl -> GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath)
+
+#define ISpeechObjectToken_RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile) \
+ (This)->lpVtbl -> RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile)
+
+#define ISpeechObjectToken_IsUISupported(This,TypeOfUI,ExtraData,Object,Supported) \
+ (This)->lpVtbl -> IsUISupported(This,TypeOfUI,ExtraData,Object,Supported)
+
+#define ISpeechObjectToken_DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object) \
+ (This)->lpVtbl -> DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object)
+
+#define ISpeechObjectToken_MatchesAttributes(This,Attributes,Matches) \
+ (This)->lpVtbl -> MatchesAttributes(This,Attributes,Matches)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechObjectToken_get_Id_Proxy(
+ ISpeechObjectToken * This,
+ /* [retval][out] */ BSTR *ObjectId);
+
+
+void __RPC_STUB ISpeechObjectToken_get_Id_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [hidden][id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechObjectToken_get_DataKey_Proxy(
+ ISpeechObjectToken * This,
+ /* [retval][out] */ ISpeechDataKey **DataKey);
+
+
+void __RPC_STUB ISpeechObjectToken_get_DataKey_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechObjectToken_get_Category_Proxy(
+ ISpeechObjectToken * This,
+ /* [retval][out] */ ISpeechObjectTokenCategory **Category);
+
+
+void __RPC_STUB ISpeechObjectToken_get_Category_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechObjectToken_GetDescription_Proxy(
+ ISpeechObjectToken * This,
+ /* [defaultvalue][in] */ long Locale,
+ /* [retval][out] */ BSTR *Description);
+
+
+void __RPC_STUB ISpeechObjectToken_GetDescription_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechObjectToken_SetId_Proxy(
+ ISpeechObjectToken * This,
+ /* [in] */ BSTR Id,
+ /* [defaultvalue][in] */ BSTR CategoryID,
+ /* [defaultvalue][in] */ VARIANT_BOOL CreateIfNotExist);
+
+
+void __RPC_STUB ISpeechObjectToken_SetId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechObjectToken_GetAttribute_Proxy(
+ ISpeechObjectToken * This,
+ /* [in] */ BSTR AttributeName,
+ /* [retval][out] */ BSTR *AttributeValue);
+
+
+void __RPC_STUB ISpeechObjectToken_GetAttribute_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechObjectToken_CreateInstance_Proxy(
+ ISpeechObjectToken * This,
+ /* [defaultvalue][in] */ IUnknown *pUnkOuter,
+ /* [defaultvalue][in] */ SpeechTokenContext ClsContext,
+ /* [retval][out] */ IUnknown **Object);
+
+
+void __RPC_STUB ISpeechObjectToken_CreateInstance_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechObjectToken_Remove_Proxy(
+ ISpeechObjectToken * This,
+ /* [in] */ BSTR ObjectStorageCLSID);
+
+
+void __RPC_STUB ISpeechObjectToken_Remove_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechObjectToken_GetStorageFileName_Proxy(
+ ISpeechObjectToken * This,
+ /* [in] */ BSTR ObjectStorageCLSID,
+ /* [in] */ BSTR KeyName,
+ /* [in] */ BSTR FileName,
+ /* [in] */ SpeechTokenShellFolder Folder,
+ /* [retval][out] */ BSTR *FilePath);
+
+
+void __RPC_STUB ISpeechObjectToken_GetStorageFileName_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechObjectToken_RemoveStorageFileName_Proxy(
+ ISpeechObjectToken * This,
+ /* [in] */ BSTR ObjectStorageCLSID,
+ /* [in] */ BSTR KeyName,
+ /* [in] */ VARIANT_BOOL DeleteFile);
+
+
+void __RPC_STUB ISpeechObjectToken_RemoveStorageFileName_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechObjectToken_IsUISupported_Proxy(
+ ISpeechObjectToken * This,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData,
+ /* [defaultvalue][in] */ IUnknown *Object,
+ /* [retval][out] */ VARIANT_BOOL *Supported);
+
+
+void __RPC_STUB ISpeechObjectToken_IsUISupported_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechObjectToken_DisplayUI_Proxy(
+ ISpeechObjectToken * This,
+ /* [in] */ long hWnd,
+ /* [in] */ BSTR Title,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData,
+ /* [defaultvalue][in] */ IUnknown *Object);
+
+
+void __RPC_STUB ISpeechObjectToken_DisplayUI_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechObjectToken_MatchesAttributes_Proxy(
+ ISpeechObjectToken * This,
+ /* [in] */ BSTR Attributes,
+ /* [retval][out] */ VARIANT_BOOL *Matches);
+
+
+void __RPC_STUB ISpeechObjectToken_MatchesAttributes_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechObjectToken_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechObjectTokens_INTERFACE_DEFINED__
+#define __ISpeechObjectTokens_INTERFACE_DEFINED__
+
+/* interface ISpeechObjectTokens */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechObjectTokens;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("9285B776-2E7B-4bc0-B53E-580EB6FA967F")
+ ISpeechObjectTokens : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count(
+ /* [retval][out] */ long *Count) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Item(
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechObjectToken **Token) = 0;
+
+ virtual /* [id][restricted][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
+ /* [retval][out] */ IUnknown **ppEnumVARIANT) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechObjectTokensVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechObjectTokens * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechObjectTokens * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechObjectTokens * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechObjectTokens * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechObjectTokens * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechObjectTokens * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechObjectTokens * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
+ ISpeechObjectTokens * This,
+ /* [retval][out] */ long *Count);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Item )(
+ ISpeechObjectTokens * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechObjectToken **Token);
+
+ /* [id][restricted][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
+ ISpeechObjectTokens * This,
+ /* [retval][out] */ IUnknown **ppEnumVARIANT);
+
+ END_INTERFACE
+ } ISpeechObjectTokensVtbl;
+
+ interface ISpeechObjectTokens
+ {
+ CONST_VTBL struct ISpeechObjectTokensVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechObjectTokens_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechObjectTokens_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechObjectTokens_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechObjectTokens_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechObjectTokens_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechObjectTokens_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechObjectTokens_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechObjectTokens_get_Count(This,Count) \
+ (This)->lpVtbl -> get_Count(This,Count)
+
+#define ISpeechObjectTokens_Item(This,Index,Token) \
+ (This)->lpVtbl -> Item(This,Index,Token)
+
+#define ISpeechObjectTokens_get__NewEnum(This,ppEnumVARIANT) \
+ (This)->lpVtbl -> get__NewEnum(This,ppEnumVARIANT)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechObjectTokens_get_Count_Proxy(
+ ISpeechObjectTokens * This,
+ /* [retval][out] */ long *Count);
+
+
+void __RPC_STUB ISpeechObjectTokens_get_Count_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechObjectTokens_Item_Proxy(
+ ISpeechObjectTokens * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechObjectToken **Token);
+
+
+void __RPC_STUB ISpeechObjectTokens_Item_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][restricted][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechObjectTokens_get__NewEnum_Proxy(
+ ISpeechObjectTokens * This,
+ /* [retval][out] */ IUnknown **ppEnumVARIANT);
+
+
+void __RPC_STUB ISpeechObjectTokens_get__NewEnum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechObjectTokens_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
+#define __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
+
+/* interface ISpeechObjectTokenCategory */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechObjectTokenCategory;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("CA7EAC50-2D01-4145-86D4-5AE7D70F4469")
+ ISpeechObjectTokenCategory : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Id(
+ /* [retval][out] */ BSTR *Id) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Default(
+ /* [in] */ const BSTR TokenId) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Default(
+ /* [retval][out] */ BSTR *TokenId) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE SetId(
+ /* [in] */ const BSTR Id,
+ /* [defaultvalue][in] */ VARIANT_BOOL CreateIfNotExist = 0) = 0;
+
+ virtual /* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE GetDataKey(
+ /* [defaultvalue][in] */ SpeechDataKeyLocation Location,
+ /* [retval][out] */ ISpeechDataKey **DataKey) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE EnumerateTokens(
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **Tokens) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechObjectTokenCategoryVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechObjectTokenCategory * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechObjectTokenCategory * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechObjectTokenCategory * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechObjectTokenCategory * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechObjectTokenCategory * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechObjectTokenCategory * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechObjectTokenCategory * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )(
+ ISpeechObjectTokenCategory * This,
+ /* [retval][out] */ BSTR *Id);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Default )(
+ ISpeechObjectTokenCategory * This,
+ /* [in] */ const BSTR TokenId);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Default )(
+ ISpeechObjectTokenCategory * This,
+ /* [retval][out] */ BSTR *TokenId);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetId )(
+ ISpeechObjectTokenCategory * This,
+ /* [in] */ const BSTR Id,
+ /* [defaultvalue][in] */ VARIANT_BOOL CreateIfNotExist);
+
+ /* [id][hidden][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDataKey )(
+ ISpeechObjectTokenCategory * This,
+ /* [defaultvalue][in] */ SpeechDataKeyLocation Location,
+ /* [retval][out] */ ISpeechDataKey **DataKey);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumerateTokens )(
+ ISpeechObjectTokenCategory * This,
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **Tokens);
+
+ END_INTERFACE
+ } ISpeechObjectTokenCategoryVtbl;
+
+ interface ISpeechObjectTokenCategory
+ {
+ CONST_VTBL struct ISpeechObjectTokenCategoryVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechObjectTokenCategory_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechObjectTokenCategory_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechObjectTokenCategory_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechObjectTokenCategory_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechObjectTokenCategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechObjectTokenCategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechObjectTokenCategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechObjectTokenCategory_get_Id(This,Id) \
+ (This)->lpVtbl -> get_Id(This,Id)
+
+#define ISpeechObjectTokenCategory_put_Default(This,TokenId) \
+ (This)->lpVtbl -> put_Default(This,TokenId)
+
+#define ISpeechObjectTokenCategory_get_Default(This,TokenId) \
+ (This)->lpVtbl -> get_Default(This,TokenId)
+
+#define ISpeechObjectTokenCategory_SetId(This,Id,CreateIfNotExist) \
+ (This)->lpVtbl -> SetId(This,Id,CreateIfNotExist)
+
+#define ISpeechObjectTokenCategory_GetDataKey(This,Location,DataKey) \
+ (This)->lpVtbl -> GetDataKey(This,Location,DataKey)
+
+#define ISpeechObjectTokenCategory_EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens) \
+ (This)->lpVtbl -> EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_get_Id_Proxy(
+ ISpeechObjectTokenCategory * This,
+ /* [retval][out] */ BSTR *Id);
+
+
+void __RPC_STUB ISpeechObjectTokenCategory_get_Id_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_put_Default_Proxy(
+ ISpeechObjectTokenCategory * This,
+ /* [in] */ const BSTR TokenId);
+
+
+void __RPC_STUB ISpeechObjectTokenCategory_put_Default_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_get_Default_Proxy(
+ ISpeechObjectTokenCategory * This,
+ /* [retval][out] */ BSTR *TokenId);
+
+
+void __RPC_STUB ISpeechObjectTokenCategory_get_Default_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_SetId_Proxy(
+ ISpeechObjectTokenCategory * This,
+ /* [in] */ const BSTR Id,
+ /* [defaultvalue][in] */ VARIANT_BOOL CreateIfNotExist);
+
+
+void __RPC_STUB ISpeechObjectTokenCategory_SetId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_GetDataKey_Proxy(
+ ISpeechObjectTokenCategory * This,
+ /* [defaultvalue][in] */ SpeechDataKeyLocation Location,
+ /* [retval][out] */ ISpeechDataKey **DataKey);
+
+
+void __RPC_STUB ISpeechObjectTokenCategory_GetDataKey_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_EnumerateTokens_Proxy(
+ ISpeechObjectTokenCategory * This,
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **Tokens);
+
+
+void __RPC_STUB ISpeechObjectTokenCategory_EnumerateTokens_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechObjectTokenCategory_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
+#define __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
+
+/* interface ISpeechAudioBufferInfo */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechAudioBufferInfo;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("11B103D8-1142-4edf-A093-82FB3915F8CC")
+ ISpeechAudioBufferInfo : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_MinNotification(
+ /* [retval][out] */ long *MinNotification) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_MinNotification(
+ /* [in] */ long MinNotification) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_BufferSize(
+ /* [retval][out] */ long *BufferSize) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_BufferSize(
+ /* [in] */ long BufferSize) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_EventBias(
+ /* [retval][out] */ long *EventBias) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_EventBias(
+ /* [in] */ long EventBias) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechAudioBufferInfoVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechAudioBufferInfo * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechAudioBufferInfo * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechAudioBufferInfo * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechAudioBufferInfo * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechAudioBufferInfo * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechAudioBufferInfo * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechAudioBufferInfo * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MinNotification )(
+ ISpeechAudioBufferInfo * This,
+ /* [retval][out] */ long *MinNotification);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MinNotification )(
+ ISpeechAudioBufferInfo * This,
+ /* [in] */ long MinNotification);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BufferSize )(
+ ISpeechAudioBufferInfo * This,
+ /* [retval][out] */ long *BufferSize);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BufferSize )(
+ ISpeechAudioBufferInfo * This,
+ /* [in] */ long BufferSize);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EventBias )(
+ ISpeechAudioBufferInfo * This,
+ /* [retval][out] */ long *EventBias);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EventBias )(
+ ISpeechAudioBufferInfo * This,
+ /* [in] */ long EventBias);
+
+ END_INTERFACE
+ } ISpeechAudioBufferInfoVtbl;
+
+ interface ISpeechAudioBufferInfo
+ {
+ CONST_VTBL struct ISpeechAudioBufferInfoVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechAudioBufferInfo_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechAudioBufferInfo_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechAudioBufferInfo_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechAudioBufferInfo_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechAudioBufferInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechAudioBufferInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechAudioBufferInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechAudioBufferInfo_get_MinNotification(This,MinNotification) \
+ (This)->lpVtbl -> get_MinNotification(This,MinNotification)
+
+#define ISpeechAudioBufferInfo_put_MinNotification(This,MinNotification) \
+ (This)->lpVtbl -> put_MinNotification(This,MinNotification)
+
+#define ISpeechAudioBufferInfo_get_BufferSize(This,BufferSize) \
+ (This)->lpVtbl -> get_BufferSize(This,BufferSize)
+
+#define ISpeechAudioBufferInfo_put_BufferSize(This,BufferSize) \
+ (This)->lpVtbl -> put_BufferSize(This,BufferSize)
+
+#define ISpeechAudioBufferInfo_get_EventBias(This,EventBias) \
+ (This)->lpVtbl -> get_EventBias(This,EventBias)
+
+#define ISpeechAudioBufferInfo_put_EventBias(This,EventBias) \
+ (This)->lpVtbl -> put_EventBias(This,EventBias)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_get_MinNotification_Proxy(
+ ISpeechAudioBufferInfo * This,
+ /* [retval][out] */ long *MinNotification);
+
+
+void __RPC_STUB ISpeechAudioBufferInfo_get_MinNotification_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_put_MinNotification_Proxy(
+ ISpeechAudioBufferInfo * This,
+ /* [in] */ long MinNotification);
+
+
+void __RPC_STUB ISpeechAudioBufferInfo_put_MinNotification_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_get_BufferSize_Proxy(
+ ISpeechAudioBufferInfo * This,
+ /* [retval][out] */ long *BufferSize);
+
+
+void __RPC_STUB ISpeechAudioBufferInfo_get_BufferSize_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_put_BufferSize_Proxy(
+ ISpeechAudioBufferInfo * This,
+ /* [in] */ long BufferSize);
+
+
+void __RPC_STUB ISpeechAudioBufferInfo_put_BufferSize_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_get_EventBias_Proxy(
+ ISpeechAudioBufferInfo * This,
+ /* [retval][out] */ long *EventBias);
+
+
+void __RPC_STUB ISpeechAudioBufferInfo_get_EventBias_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_put_EventBias_Proxy(
+ ISpeechAudioBufferInfo * This,
+ /* [in] */ long EventBias);
+
+
+void __RPC_STUB ISpeechAudioBufferInfo_put_EventBias_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechAudioBufferInfo_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechAudioStatus_INTERFACE_DEFINED__
+#define __ISpeechAudioStatus_INTERFACE_DEFINED__
+
+/* interface ISpeechAudioStatus */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechAudioStatus;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("C62D9C91-7458-47f6-862D-1EF86FB0B278")
+ ISpeechAudioStatus : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_FreeBufferSpace(
+ /* [retval][out] */ long *FreeBufferSpace) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_NonBlockingIO(
+ /* [retval][out] */ long *NonBlockingIO) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_State(
+ /* [retval][out] */ SpeechAudioState *State) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_CurrentSeekPosition(
+ /* [retval][out] */ VARIANT *CurrentSeekPosition) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_CurrentDevicePosition(
+ /* [retval][out] */ VARIANT *CurrentDevicePosition) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechAudioStatusVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechAudioStatus * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechAudioStatus * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechAudioStatus * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechAudioStatus * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechAudioStatus * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechAudioStatus * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechAudioStatus * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FreeBufferSpace )(
+ ISpeechAudioStatus * This,
+ /* [retval][out] */ long *FreeBufferSpace);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NonBlockingIO )(
+ ISpeechAudioStatus * This,
+ /* [retval][out] */ long *NonBlockingIO);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_State )(
+ ISpeechAudioStatus * This,
+ /* [retval][out] */ SpeechAudioState *State);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentSeekPosition )(
+ ISpeechAudioStatus * This,
+ /* [retval][out] */ VARIANT *CurrentSeekPosition);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentDevicePosition )(
+ ISpeechAudioStatus * This,
+ /* [retval][out] */ VARIANT *CurrentDevicePosition);
+
+ END_INTERFACE
+ } ISpeechAudioStatusVtbl;
+
+ interface ISpeechAudioStatus
+ {
+ CONST_VTBL struct ISpeechAudioStatusVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechAudioStatus_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechAudioStatus_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechAudioStatus_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechAudioStatus_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechAudioStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechAudioStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechAudioStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechAudioStatus_get_FreeBufferSpace(This,FreeBufferSpace) \
+ (This)->lpVtbl -> get_FreeBufferSpace(This,FreeBufferSpace)
+
+#define ISpeechAudioStatus_get_NonBlockingIO(This,NonBlockingIO) \
+ (This)->lpVtbl -> get_NonBlockingIO(This,NonBlockingIO)
+
+#define ISpeechAudioStatus_get_State(This,State) \
+ (This)->lpVtbl -> get_State(This,State)
+
+#define ISpeechAudioStatus_get_CurrentSeekPosition(This,CurrentSeekPosition) \
+ (This)->lpVtbl -> get_CurrentSeekPosition(This,CurrentSeekPosition)
+
+#define ISpeechAudioStatus_get_CurrentDevicePosition(This,CurrentDevicePosition) \
+ (This)->lpVtbl -> get_CurrentDevicePosition(This,CurrentDevicePosition)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_FreeBufferSpace_Proxy(
+ ISpeechAudioStatus * This,
+ /* [retval][out] */ long *FreeBufferSpace);
+
+
+void __RPC_STUB ISpeechAudioStatus_get_FreeBufferSpace_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_NonBlockingIO_Proxy(
+ ISpeechAudioStatus * This,
+ /* [retval][out] */ long *NonBlockingIO);
+
+
+void __RPC_STUB ISpeechAudioStatus_get_NonBlockingIO_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_State_Proxy(
+ ISpeechAudioStatus * This,
+ /* [retval][out] */ SpeechAudioState *State);
+
+
+void __RPC_STUB ISpeechAudioStatus_get_State_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_CurrentSeekPosition_Proxy(
+ ISpeechAudioStatus * This,
+ /* [retval][out] */ VARIANT *CurrentSeekPosition);
+
+
+void __RPC_STUB ISpeechAudioStatus_get_CurrentSeekPosition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_CurrentDevicePosition_Proxy(
+ ISpeechAudioStatus * This,
+ /* [retval][out] */ VARIANT *CurrentDevicePosition);
+
+
+void __RPC_STUB ISpeechAudioStatus_get_CurrentDevicePosition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechAudioStatus_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechAudioFormat_INTERFACE_DEFINED__
+#define __ISpeechAudioFormat_INTERFACE_DEFINED__
+
+/* interface ISpeechAudioFormat */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechAudioFormat;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("E6E9C590-3E18-40e3-8299-061F98BDE7C7")
+ ISpeechAudioFormat : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Type(
+ /* [retval][out] */ SpeechAudioFormatType *AudioFormat) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Type(
+ /* [in] */ SpeechAudioFormatType AudioFormat) = 0;
+
+ virtual /* [id][helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_Guid(
+ /* [retval][out] */ BSTR *Guid) = 0;
+
+ virtual /* [id][helpstring][hidden][propput] */ HRESULT STDMETHODCALLTYPE put_Guid(
+ /* [in] */ BSTR Guid) = 0;
+
+ virtual /* [id][helpstring][hidden] */ HRESULT STDMETHODCALLTYPE GetWaveFormatEx(
+ /* [retval][out] */ ISpeechWaveFormatEx **WaveFormatEx) = 0;
+
+ virtual /* [id][helpstring][hidden] */ HRESULT STDMETHODCALLTYPE SetWaveFormatEx(
+ /* [in] */ ISpeechWaveFormatEx *WaveFormatEx) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechAudioFormatVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechAudioFormat * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechAudioFormat * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechAudioFormat * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechAudioFormat * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechAudioFormat * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechAudioFormat * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechAudioFormat * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )(
+ ISpeechAudioFormat * This,
+ /* [retval][out] */ SpeechAudioFormatType *AudioFormat);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Type )(
+ ISpeechAudioFormat * This,
+ /* [in] */ SpeechAudioFormatType AudioFormat);
+
+ /* [id][helpstring][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Guid )(
+ ISpeechAudioFormat * This,
+ /* [retval][out] */ BSTR *Guid);
+
+ /* [id][helpstring][hidden][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Guid )(
+ ISpeechAudioFormat * This,
+ /* [in] */ BSTR Guid);
+
+ /* [id][helpstring][hidden] */ HRESULT ( STDMETHODCALLTYPE *GetWaveFormatEx )(
+ ISpeechAudioFormat * This,
+ /* [retval][out] */ ISpeechWaveFormatEx **WaveFormatEx);
+
+ /* [id][helpstring][hidden] */ HRESULT ( STDMETHODCALLTYPE *SetWaveFormatEx )(
+ ISpeechAudioFormat * This,
+ /* [in] */ ISpeechWaveFormatEx *WaveFormatEx);
+
+ END_INTERFACE
+ } ISpeechAudioFormatVtbl;
+
+ interface ISpeechAudioFormat
+ {
+ CONST_VTBL struct ISpeechAudioFormatVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechAudioFormat_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechAudioFormat_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechAudioFormat_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechAudioFormat_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechAudioFormat_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechAudioFormat_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechAudioFormat_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechAudioFormat_get_Type(This,AudioFormat) \
+ (This)->lpVtbl -> get_Type(This,AudioFormat)
+
+#define ISpeechAudioFormat_put_Type(This,AudioFormat) \
+ (This)->lpVtbl -> put_Type(This,AudioFormat)
+
+#define ISpeechAudioFormat_get_Guid(This,Guid) \
+ (This)->lpVtbl -> get_Guid(This,Guid)
+
+#define ISpeechAudioFormat_put_Guid(This,Guid) \
+ (This)->lpVtbl -> put_Guid(This,Guid)
+
+#define ISpeechAudioFormat_GetWaveFormatEx(This,WaveFormatEx) \
+ (This)->lpVtbl -> GetWaveFormatEx(This,WaveFormatEx)
+
+#define ISpeechAudioFormat_SetWaveFormatEx(This,WaveFormatEx) \
+ (This)->lpVtbl -> SetWaveFormatEx(This,WaveFormatEx)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_get_Type_Proxy(
+ ISpeechAudioFormat * This,
+ /* [retval][out] */ SpeechAudioFormatType *AudioFormat);
+
+
+void __RPC_STUB ISpeechAudioFormat_get_Type_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_put_Type_Proxy(
+ ISpeechAudioFormat * This,
+ /* [in] */ SpeechAudioFormatType AudioFormat);
+
+
+void __RPC_STUB ISpeechAudioFormat_put_Type_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_get_Guid_Proxy(
+ ISpeechAudioFormat * This,
+ /* [retval][out] */ BSTR *Guid);
+
+
+void __RPC_STUB ISpeechAudioFormat_get_Guid_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][hidden][propput] */ HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_put_Guid_Proxy(
+ ISpeechAudioFormat * This,
+ /* [in] */ BSTR Guid);
+
+
+void __RPC_STUB ISpeechAudioFormat_put_Guid_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][hidden] */ HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_GetWaveFormatEx_Proxy(
+ ISpeechAudioFormat * This,
+ /* [retval][out] */ ISpeechWaveFormatEx **WaveFormatEx);
+
+
+void __RPC_STUB ISpeechAudioFormat_GetWaveFormatEx_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][hidden] */ HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_SetWaveFormatEx_Proxy(
+ ISpeechAudioFormat * This,
+ /* [in] */ ISpeechWaveFormatEx *WaveFormatEx);
+
+
+void __RPC_STUB ISpeechAudioFormat_SetWaveFormatEx_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechAudioFormat_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechWaveFormatEx_INTERFACE_DEFINED__
+#define __ISpeechWaveFormatEx_INTERFACE_DEFINED__
+
+/* interface ISpeechWaveFormatEx */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechWaveFormatEx;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("7A1EF0D5-1581-4741-88E4-209A49F11A10")
+ ISpeechWaveFormatEx : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_FormatTag(
+ /* [retval][out] */ short *FormatTag) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_FormatTag(
+ /* [in] */ short FormatTag) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Channels(
+ /* [retval][out] */ short *Channels) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Channels(
+ /* [in] */ short Channels) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_SamplesPerSec(
+ /* [retval][out] */ long *SamplesPerSec) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_SamplesPerSec(
+ /* [in] */ long SamplesPerSec) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AvgBytesPerSec(
+ /* [retval][out] */ long *AvgBytesPerSec) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_AvgBytesPerSec(
+ /* [in] */ long AvgBytesPerSec) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_BlockAlign(
+ /* [retval][out] */ short *BlockAlign) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_BlockAlign(
+ /* [in] */ short BlockAlign) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_BitsPerSample(
+ /* [retval][out] */ short *BitsPerSample) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_BitsPerSample(
+ /* [in] */ short BitsPerSample) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_ExtraData(
+ /* [retval][out] */ VARIANT *ExtraData) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_ExtraData(
+ /* [in] */ VARIANT ExtraData) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechWaveFormatExVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechWaveFormatEx * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechWaveFormatEx * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechWaveFormatEx * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FormatTag )(
+ ISpeechWaveFormatEx * This,
+ /* [retval][out] */ short *FormatTag);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FormatTag )(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ short FormatTag);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Channels )(
+ ISpeechWaveFormatEx * This,
+ /* [retval][out] */ short *Channels);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Channels )(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ short Channels);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SamplesPerSec )(
+ ISpeechWaveFormatEx * This,
+ /* [retval][out] */ long *SamplesPerSec);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SamplesPerSec )(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ long SamplesPerSec);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AvgBytesPerSec )(
+ ISpeechWaveFormatEx * This,
+ /* [retval][out] */ long *AvgBytesPerSec);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AvgBytesPerSec )(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ long AvgBytesPerSec);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BlockAlign )(
+ ISpeechWaveFormatEx * This,
+ /* [retval][out] */ short *BlockAlign);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BlockAlign )(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ short BlockAlign);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BitsPerSample )(
+ ISpeechWaveFormatEx * This,
+ /* [retval][out] */ short *BitsPerSample);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BitsPerSample )(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ short BitsPerSample);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExtraData )(
+ ISpeechWaveFormatEx * This,
+ /* [retval][out] */ VARIANT *ExtraData);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ExtraData )(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ VARIANT ExtraData);
+
+ END_INTERFACE
+ } ISpeechWaveFormatExVtbl;
+
+ interface ISpeechWaveFormatEx
+ {
+ CONST_VTBL struct ISpeechWaveFormatExVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechWaveFormatEx_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechWaveFormatEx_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechWaveFormatEx_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechWaveFormatEx_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechWaveFormatEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechWaveFormatEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechWaveFormatEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechWaveFormatEx_get_FormatTag(This,FormatTag) \
+ (This)->lpVtbl -> get_FormatTag(This,FormatTag)
+
+#define ISpeechWaveFormatEx_put_FormatTag(This,FormatTag) \
+ (This)->lpVtbl -> put_FormatTag(This,FormatTag)
+
+#define ISpeechWaveFormatEx_get_Channels(This,Channels) \
+ (This)->lpVtbl -> get_Channels(This,Channels)
+
+#define ISpeechWaveFormatEx_put_Channels(This,Channels) \
+ (This)->lpVtbl -> put_Channels(This,Channels)
+
+#define ISpeechWaveFormatEx_get_SamplesPerSec(This,SamplesPerSec) \
+ (This)->lpVtbl -> get_SamplesPerSec(This,SamplesPerSec)
+
+#define ISpeechWaveFormatEx_put_SamplesPerSec(This,SamplesPerSec) \
+ (This)->lpVtbl -> put_SamplesPerSec(This,SamplesPerSec)
+
+#define ISpeechWaveFormatEx_get_AvgBytesPerSec(This,AvgBytesPerSec) \
+ (This)->lpVtbl -> get_AvgBytesPerSec(This,AvgBytesPerSec)
+
+#define ISpeechWaveFormatEx_put_AvgBytesPerSec(This,AvgBytesPerSec) \
+ (This)->lpVtbl -> put_AvgBytesPerSec(This,AvgBytesPerSec)
+
+#define ISpeechWaveFormatEx_get_BlockAlign(This,BlockAlign) \
+ (This)->lpVtbl -> get_BlockAlign(This,BlockAlign)
+
+#define ISpeechWaveFormatEx_put_BlockAlign(This,BlockAlign) \
+ (This)->lpVtbl -> put_BlockAlign(This,BlockAlign)
+
+#define ISpeechWaveFormatEx_get_BitsPerSample(This,BitsPerSample) \
+ (This)->lpVtbl -> get_BitsPerSample(This,BitsPerSample)
+
+#define ISpeechWaveFormatEx_put_BitsPerSample(This,BitsPerSample) \
+ (This)->lpVtbl -> put_BitsPerSample(This,BitsPerSample)
+
+#define ISpeechWaveFormatEx_get_ExtraData(This,ExtraData) \
+ (This)->lpVtbl -> get_ExtraData(This,ExtraData)
+
+#define ISpeechWaveFormatEx_put_ExtraData(This,ExtraData) \
+ (This)->lpVtbl -> put_ExtraData(This,ExtraData)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_FormatTag_Proxy(
+ ISpeechWaveFormatEx * This,
+ /* [retval][out] */ short *FormatTag);
+
+
+void __RPC_STUB ISpeechWaveFormatEx_get_FormatTag_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_FormatTag_Proxy(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ short FormatTag);
+
+
+void __RPC_STUB ISpeechWaveFormatEx_put_FormatTag_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_Channels_Proxy(
+ ISpeechWaveFormatEx * This,
+ /* [retval][out] */ short *Channels);
+
+
+void __RPC_STUB ISpeechWaveFormatEx_get_Channels_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_Channels_Proxy(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ short Channels);
+
+
+void __RPC_STUB ISpeechWaveFormatEx_put_Channels_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_SamplesPerSec_Proxy(
+ ISpeechWaveFormatEx * This,
+ /* [retval][out] */ long *SamplesPerSec);
+
+
+void __RPC_STUB ISpeechWaveFormatEx_get_SamplesPerSec_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_SamplesPerSec_Proxy(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ long SamplesPerSec);
+
+
+void __RPC_STUB ISpeechWaveFormatEx_put_SamplesPerSec_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_AvgBytesPerSec_Proxy(
+ ISpeechWaveFormatEx * This,
+ /* [retval][out] */ long *AvgBytesPerSec);
+
+
+void __RPC_STUB ISpeechWaveFormatEx_get_AvgBytesPerSec_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_AvgBytesPerSec_Proxy(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ long AvgBytesPerSec);
+
+
+void __RPC_STUB ISpeechWaveFormatEx_put_AvgBytesPerSec_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_BlockAlign_Proxy(
+ ISpeechWaveFormatEx * This,
+ /* [retval][out] */ short *BlockAlign);
+
+
+void __RPC_STUB ISpeechWaveFormatEx_get_BlockAlign_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_BlockAlign_Proxy(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ short BlockAlign);
+
+
+void __RPC_STUB ISpeechWaveFormatEx_put_BlockAlign_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_BitsPerSample_Proxy(
+ ISpeechWaveFormatEx * This,
+ /* [retval][out] */ short *BitsPerSample);
+
+
+void __RPC_STUB ISpeechWaveFormatEx_get_BitsPerSample_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_BitsPerSample_Proxy(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ short BitsPerSample);
+
+
+void __RPC_STUB ISpeechWaveFormatEx_put_BitsPerSample_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_ExtraData_Proxy(
+ ISpeechWaveFormatEx * This,
+ /* [retval][out] */ VARIANT *ExtraData);
+
+
+void __RPC_STUB ISpeechWaveFormatEx_get_ExtraData_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_ExtraData_Proxy(
+ ISpeechWaveFormatEx * This,
+ /* [in] */ VARIANT ExtraData);
+
+
+void __RPC_STUB ISpeechWaveFormatEx_put_ExtraData_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechWaveFormatEx_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechBaseStream_INTERFACE_DEFINED__
+#define __ISpeechBaseStream_INTERFACE_DEFINED__
+
+/* interface ISpeechBaseStream */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechBaseStream;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6450336F-7D49-4ced-8097-49D6DEE37294")
+ ISpeechBaseStream : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Format(
+ /* [retval][out] */ ISpeechAudioFormat **AudioFormat) = 0;
+
+ virtual /* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE putref_Format(
+ /* [in] */ ISpeechAudioFormat *AudioFormat) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Read(
+ /* [out] */ VARIANT *Buffer,
+ /* [in] */ long NumberOfBytes,
+ /* [retval][out] */ long *BytesRead) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Write(
+ /* [in] */ VARIANT Buffer,
+ /* [retval][out] */ long *BytesWritten) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Seek(
+ /* [in] */ VARIANT Position,
+ /* [defaultvalue][in] */ SpeechStreamSeekPositionType Origin,
+ /* [retval][out] */ VARIANT *NewPosition) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechBaseStreamVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechBaseStream * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechBaseStream * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechBaseStream * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechBaseStream * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechBaseStream * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechBaseStream * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechBaseStream * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Format )(
+ ISpeechBaseStream * This,
+ /* [retval][out] */ ISpeechAudioFormat **AudioFormat);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_Format )(
+ ISpeechBaseStream * This,
+ /* [in] */ ISpeechAudioFormat *AudioFormat);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Read )(
+ ISpeechBaseStream * This,
+ /* [out] */ VARIANT *Buffer,
+ /* [in] */ long NumberOfBytes,
+ /* [retval][out] */ long *BytesRead);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Write )(
+ ISpeechBaseStream * This,
+ /* [in] */ VARIANT Buffer,
+ /* [retval][out] */ long *BytesWritten);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Seek )(
+ ISpeechBaseStream * This,
+ /* [in] */ VARIANT Position,
+ /* [defaultvalue][in] */ SpeechStreamSeekPositionType Origin,
+ /* [retval][out] */ VARIANT *NewPosition);
+
+ END_INTERFACE
+ } ISpeechBaseStreamVtbl;
+
+ interface ISpeechBaseStream
+ {
+ CONST_VTBL struct ISpeechBaseStreamVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechBaseStream_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechBaseStream_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechBaseStream_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechBaseStream_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechBaseStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechBaseStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechBaseStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechBaseStream_get_Format(This,AudioFormat) \
+ (This)->lpVtbl -> get_Format(This,AudioFormat)
+
+#define ISpeechBaseStream_putref_Format(This,AudioFormat) \
+ (This)->lpVtbl -> putref_Format(This,AudioFormat)
+
+#define ISpeechBaseStream_Read(This,Buffer,NumberOfBytes,BytesRead) \
+ (This)->lpVtbl -> Read(This,Buffer,NumberOfBytes,BytesRead)
+
+#define ISpeechBaseStream_Write(This,Buffer,BytesWritten) \
+ (This)->lpVtbl -> Write(This,Buffer,BytesWritten)
+
+#define ISpeechBaseStream_Seek(This,Position,Origin,NewPosition) \
+ (This)->lpVtbl -> Seek(This,Position,Origin,NewPosition)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechBaseStream_get_Format_Proxy(
+ ISpeechBaseStream * This,
+ /* [retval][out] */ ISpeechAudioFormat **AudioFormat);
+
+
+void __RPC_STUB ISpeechBaseStream_get_Format_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE ISpeechBaseStream_putref_Format_Proxy(
+ ISpeechBaseStream * This,
+ /* [in] */ ISpeechAudioFormat *AudioFormat);
+
+
+void __RPC_STUB ISpeechBaseStream_putref_Format_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechBaseStream_Read_Proxy(
+ ISpeechBaseStream * This,
+ /* [out] */ VARIANT *Buffer,
+ /* [in] */ long NumberOfBytes,
+ /* [retval][out] */ long *BytesRead);
+
+
+void __RPC_STUB ISpeechBaseStream_Read_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechBaseStream_Write_Proxy(
+ ISpeechBaseStream * This,
+ /* [in] */ VARIANT Buffer,
+ /* [retval][out] */ long *BytesWritten);
+
+
+void __RPC_STUB ISpeechBaseStream_Write_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechBaseStream_Seek_Proxy(
+ ISpeechBaseStream * This,
+ /* [in] */ VARIANT Position,
+ /* [defaultvalue][in] */ SpeechStreamSeekPositionType Origin,
+ /* [retval][out] */ VARIANT *NewPosition);
+
+
+void __RPC_STUB ISpeechBaseStream_Seek_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechBaseStream_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechFileStream_INTERFACE_DEFINED__
+#define __ISpeechFileStream_INTERFACE_DEFINED__
+
+/* interface ISpeechFileStream */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechFileStream;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("AF67F125-AB39-4e93-B4A2-CC2E66E182A7")
+ ISpeechFileStream : public ISpeechBaseStream
+ {
+ public:
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Open(
+ /* [in] */ BSTR FileName,
+ /* [defaultvalue][in] */ SpeechStreamFileMode FileMode = SSFMOpenForRead,
+ /* [defaultvalue][in] */ VARIANT_BOOL DoEvents = 0) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Close( void) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechFileStreamVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechFileStream * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechFileStream * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechFileStream * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechFileStream * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechFileStream * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechFileStream * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechFileStream * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Format )(
+ ISpeechFileStream * This,
+ /* [retval][out] */ ISpeechAudioFormat **AudioFormat);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_Format )(
+ ISpeechFileStream * This,
+ /* [in] */ ISpeechAudioFormat *AudioFormat);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Read )(
+ ISpeechFileStream * This,
+ /* [out] */ VARIANT *Buffer,
+ /* [in] */ long NumberOfBytes,
+ /* [retval][out] */ long *BytesRead);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Write )(
+ ISpeechFileStream * This,
+ /* [in] */ VARIANT Buffer,
+ /* [retval][out] */ long *BytesWritten);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Seek )(
+ ISpeechFileStream * This,
+ /* [in] */ VARIANT Position,
+ /* [defaultvalue][in] */ SpeechStreamSeekPositionType Origin,
+ /* [retval][out] */ VARIANT *NewPosition);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Open )(
+ ISpeechFileStream * This,
+ /* [in] */ BSTR FileName,
+ /* [defaultvalue][in] */ SpeechStreamFileMode FileMode,
+ /* [defaultvalue][in] */ VARIANT_BOOL DoEvents);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Close )(
+ ISpeechFileStream * This);
+
+ END_INTERFACE
+ } ISpeechFileStreamVtbl;
+
+ interface ISpeechFileStream
+ {
+ CONST_VTBL struct ISpeechFileStreamVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechFileStream_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechFileStream_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechFileStream_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechFileStream_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechFileStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechFileStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechFileStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechFileStream_get_Format(This,AudioFormat) \
+ (This)->lpVtbl -> get_Format(This,AudioFormat)
+
+#define ISpeechFileStream_putref_Format(This,AudioFormat) \
+ (This)->lpVtbl -> putref_Format(This,AudioFormat)
+
+#define ISpeechFileStream_Read(This,Buffer,NumberOfBytes,BytesRead) \
+ (This)->lpVtbl -> Read(This,Buffer,NumberOfBytes,BytesRead)
+
+#define ISpeechFileStream_Write(This,Buffer,BytesWritten) \
+ (This)->lpVtbl -> Write(This,Buffer,BytesWritten)
+
+#define ISpeechFileStream_Seek(This,Position,Origin,NewPosition) \
+ (This)->lpVtbl -> Seek(This,Position,Origin,NewPosition)
+
+
+#define ISpeechFileStream_Open(This,FileName,FileMode,DoEvents) \
+ (This)->lpVtbl -> Open(This,FileName,FileMode,DoEvents)
+
+#define ISpeechFileStream_Close(This) \
+ (This)->lpVtbl -> Close(This)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechFileStream_Open_Proxy(
+ ISpeechFileStream * This,
+ /* [in] */ BSTR FileName,
+ /* [defaultvalue][in] */ SpeechStreamFileMode FileMode,
+ /* [defaultvalue][in] */ VARIANT_BOOL DoEvents);
+
+
+void __RPC_STUB ISpeechFileStream_Open_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechFileStream_Close_Proxy(
+ ISpeechFileStream * This);
+
+
+void __RPC_STUB ISpeechFileStream_Close_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechFileStream_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechMemoryStream_INTERFACE_DEFINED__
+#define __ISpeechMemoryStream_INTERFACE_DEFINED__
+
+/* interface ISpeechMemoryStream */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechMemoryStream;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("EEB14B68-808B-4abe-A5EA-B51DA7588008")
+ ISpeechMemoryStream : public ISpeechBaseStream
+ {
+ public:
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE SetData(
+ /* [in] */ VARIANT Data) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetData(
+ /* [retval][out] */ VARIANT *pData) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechMemoryStreamVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechMemoryStream * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechMemoryStream * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechMemoryStream * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechMemoryStream * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechMemoryStream * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechMemoryStream * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechMemoryStream * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Format )(
+ ISpeechMemoryStream * This,
+ /* [retval][out] */ ISpeechAudioFormat **AudioFormat);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_Format )(
+ ISpeechMemoryStream * This,
+ /* [in] */ ISpeechAudioFormat *AudioFormat);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Read )(
+ ISpeechMemoryStream * This,
+ /* [out] */ VARIANT *Buffer,
+ /* [in] */ long NumberOfBytes,
+ /* [retval][out] */ long *BytesRead);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Write )(
+ ISpeechMemoryStream * This,
+ /* [in] */ VARIANT Buffer,
+ /* [retval][out] */ long *BytesWritten);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Seek )(
+ ISpeechMemoryStream * This,
+ /* [in] */ VARIANT Position,
+ /* [defaultvalue][in] */ SpeechStreamSeekPositionType Origin,
+ /* [retval][out] */ VARIANT *NewPosition);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetData )(
+ ISpeechMemoryStream * This,
+ /* [in] */ VARIANT Data);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetData )(
+ ISpeechMemoryStream * This,
+ /* [retval][out] */ VARIANT *pData);
+
+ END_INTERFACE
+ } ISpeechMemoryStreamVtbl;
+
+ interface ISpeechMemoryStream
+ {
+ CONST_VTBL struct ISpeechMemoryStreamVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechMemoryStream_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechMemoryStream_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechMemoryStream_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechMemoryStream_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechMemoryStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechMemoryStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechMemoryStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechMemoryStream_get_Format(This,AudioFormat) \
+ (This)->lpVtbl -> get_Format(This,AudioFormat)
+
+#define ISpeechMemoryStream_putref_Format(This,AudioFormat) \
+ (This)->lpVtbl -> putref_Format(This,AudioFormat)
+
+#define ISpeechMemoryStream_Read(This,Buffer,NumberOfBytes,BytesRead) \
+ (This)->lpVtbl -> Read(This,Buffer,NumberOfBytes,BytesRead)
+
+#define ISpeechMemoryStream_Write(This,Buffer,BytesWritten) \
+ (This)->lpVtbl -> Write(This,Buffer,BytesWritten)
+
+#define ISpeechMemoryStream_Seek(This,Position,Origin,NewPosition) \
+ (This)->lpVtbl -> Seek(This,Position,Origin,NewPosition)
+
+
+#define ISpeechMemoryStream_SetData(This,Data) \
+ (This)->lpVtbl -> SetData(This,Data)
+
+#define ISpeechMemoryStream_GetData(This,pData) \
+ (This)->lpVtbl -> GetData(This,pData)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechMemoryStream_SetData_Proxy(
+ ISpeechMemoryStream * This,
+ /* [in] */ VARIANT Data);
+
+
+void __RPC_STUB ISpeechMemoryStream_SetData_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechMemoryStream_GetData_Proxy(
+ ISpeechMemoryStream * This,
+ /* [retval][out] */ VARIANT *pData);
+
+
+void __RPC_STUB ISpeechMemoryStream_GetData_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechMemoryStream_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechCustomStream_INTERFACE_DEFINED__
+#define __ISpeechCustomStream_INTERFACE_DEFINED__
+
+/* interface ISpeechCustomStream */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechCustomStream;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1A9E9F4F-104F-4db8-A115-EFD7FD0C97AE")
+ ISpeechCustomStream : public ISpeechBaseStream
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_BaseStream(
+ /* [retval][out] */ IUnknown **ppUnkStream) = 0;
+
+ virtual /* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE putref_BaseStream(
+ /* [in] */ IUnknown *pUnkStream) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechCustomStreamVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechCustomStream * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechCustomStream * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechCustomStream * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechCustomStream * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechCustomStream * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechCustomStream * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechCustomStream * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Format )(
+ ISpeechCustomStream * This,
+ /* [retval][out] */ ISpeechAudioFormat **AudioFormat);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_Format )(
+ ISpeechCustomStream * This,
+ /* [in] */ ISpeechAudioFormat *AudioFormat);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Read )(
+ ISpeechCustomStream * This,
+ /* [out] */ VARIANT *Buffer,
+ /* [in] */ long NumberOfBytes,
+ /* [retval][out] */ long *BytesRead);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Write )(
+ ISpeechCustomStream * This,
+ /* [in] */ VARIANT Buffer,
+ /* [retval][out] */ long *BytesWritten);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Seek )(
+ ISpeechCustomStream * This,
+ /* [in] */ VARIANT Position,
+ /* [defaultvalue][in] */ SpeechStreamSeekPositionType Origin,
+ /* [retval][out] */ VARIANT *NewPosition);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BaseStream )(
+ ISpeechCustomStream * This,
+ /* [retval][out] */ IUnknown **ppUnkStream);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_BaseStream )(
+ ISpeechCustomStream * This,
+ /* [in] */ IUnknown *pUnkStream);
+
+ END_INTERFACE
+ } ISpeechCustomStreamVtbl;
+
+ interface ISpeechCustomStream
+ {
+ CONST_VTBL struct ISpeechCustomStreamVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechCustomStream_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechCustomStream_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechCustomStream_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechCustomStream_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechCustomStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechCustomStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechCustomStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechCustomStream_get_Format(This,AudioFormat) \
+ (This)->lpVtbl -> get_Format(This,AudioFormat)
+
+#define ISpeechCustomStream_putref_Format(This,AudioFormat) \
+ (This)->lpVtbl -> putref_Format(This,AudioFormat)
+
+#define ISpeechCustomStream_Read(This,Buffer,NumberOfBytes,BytesRead) \
+ (This)->lpVtbl -> Read(This,Buffer,NumberOfBytes,BytesRead)
+
+#define ISpeechCustomStream_Write(This,Buffer,BytesWritten) \
+ (This)->lpVtbl -> Write(This,Buffer,BytesWritten)
+
+#define ISpeechCustomStream_Seek(This,Position,Origin,NewPosition) \
+ (This)->lpVtbl -> Seek(This,Position,Origin,NewPosition)
+
+
+#define ISpeechCustomStream_get_BaseStream(This,ppUnkStream) \
+ (This)->lpVtbl -> get_BaseStream(This,ppUnkStream)
+
+#define ISpeechCustomStream_putref_BaseStream(This,pUnkStream) \
+ (This)->lpVtbl -> putref_BaseStream(This,pUnkStream)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechCustomStream_get_BaseStream_Proxy(
+ ISpeechCustomStream * This,
+ /* [retval][out] */ IUnknown **ppUnkStream);
+
+
+void __RPC_STUB ISpeechCustomStream_get_BaseStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE ISpeechCustomStream_putref_BaseStream_Proxy(
+ ISpeechCustomStream * This,
+ /* [in] */ IUnknown *pUnkStream);
+
+
+void __RPC_STUB ISpeechCustomStream_putref_BaseStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechCustomStream_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechAudio_INTERFACE_DEFINED__
+#define __ISpeechAudio_INTERFACE_DEFINED__
+
+/* interface ISpeechAudio */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechAudio;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("CFF8E175-019E-11d3-A08E-00C04F8EF9B5")
+ ISpeechAudio : public ISpeechBaseStream
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Status(
+ /* [retval][out] */ ISpeechAudioStatus **Status) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_BufferInfo(
+ /* [retval][out] */ ISpeechAudioBufferInfo **BufferInfo) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_DefaultFormat(
+ /* [retval][out] */ ISpeechAudioFormat **StreamFormat) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Volume(
+ /* [retval][out] */ long *Volume) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Volume(
+ /* [in] */ long Volume) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_BufferNotifySize(
+ /* [retval][out] */ long *BufferNotifySize) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_BufferNotifySize(
+ /* [in] */ long BufferNotifySize) = 0;
+
+ virtual /* [id][helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_EventHandle(
+ /* [retval][out] */ long *EventHandle) = 0;
+
+ virtual /* [hidden][id][helpstring] */ HRESULT STDMETHODCALLTYPE SetState(
+ /* [in] */ SpeechAudioState State) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechAudioVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechAudio * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechAudio * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechAudio * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechAudio * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechAudio * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechAudio * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechAudio * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Format )(
+ ISpeechAudio * This,
+ /* [retval][out] */ ISpeechAudioFormat **AudioFormat);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_Format )(
+ ISpeechAudio * This,
+ /* [in] */ ISpeechAudioFormat *AudioFormat);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Read )(
+ ISpeechAudio * This,
+ /* [out] */ VARIANT *Buffer,
+ /* [in] */ long NumberOfBytes,
+ /* [retval][out] */ long *BytesRead);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Write )(
+ ISpeechAudio * This,
+ /* [in] */ VARIANT Buffer,
+ /* [retval][out] */ long *BytesWritten);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Seek )(
+ ISpeechAudio * This,
+ /* [in] */ VARIANT Position,
+ /* [defaultvalue][in] */ SpeechStreamSeekPositionType Origin,
+ /* [retval][out] */ VARIANT *NewPosition);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Status )(
+ ISpeechAudio * This,
+ /* [retval][out] */ ISpeechAudioStatus **Status);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BufferInfo )(
+ ISpeechAudio * This,
+ /* [retval][out] */ ISpeechAudioBufferInfo **BufferInfo);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DefaultFormat )(
+ ISpeechAudio * This,
+ /* [retval][out] */ ISpeechAudioFormat **StreamFormat);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Volume )(
+ ISpeechAudio * This,
+ /* [retval][out] */ long *Volume);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Volume )(
+ ISpeechAudio * This,
+ /* [in] */ long Volume);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BufferNotifySize )(
+ ISpeechAudio * This,
+ /* [retval][out] */ long *BufferNotifySize);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BufferNotifySize )(
+ ISpeechAudio * This,
+ /* [in] */ long BufferNotifySize);
+
+ /* [id][helpstring][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EventHandle )(
+ ISpeechAudio * This,
+ /* [retval][out] */ long *EventHandle);
+
+ /* [hidden][id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetState )(
+ ISpeechAudio * This,
+ /* [in] */ SpeechAudioState State);
+
+ END_INTERFACE
+ } ISpeechAudioVtbl;
+
+ interface ISpeechAudio
+ {
+ CONST_VTBL struct ISpeechAudioVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechAudio_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechAudio_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechAudio_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechAudio_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechAudio_get_Format(This,AudioFormat) \
+ (This)->lpVtbl -> get_Format(This,AudioFormat)
+
+#define ISpeechAudio_putref_Format(This,AudioFormat) \
+ (This)->lpVtbl -> putref_Format(This,AudioFormat)
+
+#define ISpeechAudio_Read(This,Buffer,NumberOfBytes,BytesRead) \
+ (This)->lpVtbl -> Read(This,Buffer,NumberOfBytes,BytesRead)
+
+#define ISpeechAudio_Write(This,Buffer,BytesWritten) \
+ (This)->lpVtbl -> Write(This,Buffer,BytesWritten)
+
+#define ISpeechAudio_Seek(This,Position,Origin,NewPosition) \
+ (This)->lpVtbl -> Seek(This,Position,Origin,NewPosition)
+
+
+#define ISpeechAudio_get_Status(This,Status) \
+ (This)->lpVtbl -> get_Status(This,Status)
+
+#define ISpeechAudio_get_BufferInfo(This,BufferInfo) \
+ (This)->lpVtbl -> get_BufferInfo(This,BufferInfo)
+
+#define ISpeechAudio_get_DefaultFormat(This,StreamFormat) \
+ (This)->lpVtbl -> get_DefaultFormat(This,StreamFormat)
+
+#define ISpeechAudio_get_Volume(This,Volume) \
+ (This)->lpVtbl -> get_Volume(This,Volume)
+
+#define ISpeechAudio_put_Volume(This,Volume) \
+ (This)->lpVtbl -> put_Volume(This,Volume)
+
+#define ISpeechAudio_get_BufferNotifySize(This,BufferNotifySize) \
+ (This)->lpVtbl -> get_BufferNotifySize(This,BufferNotifySize)
+
+#define ISpeechAudio_put_BufferNotifySize(This,BufferNotifySize) \
+ (This)->lpVtbl -> put_BufferNotifySize(This,BufferNotifySize)
+
+#define ISpeechAudio_get_EventHandle(This,EventHandle) \
+ (This)->lpVtbl -> get_EventHandle(This,EventHandle)
+
+#define ISpeechAudio_SetState(This,State) \
+ (This)->lpVtbl -> SetState(This,State)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudio_get_Status_Proxy(
+ ISpeechAudio * This,
+ /* [retval][out] */ ISpeechAudioStatus **Status);
+
+
+void __RPC_STUB ISpeechAudio_get_Status_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudio_get_BufferInfo_Proxy(
+ ISpeechAudio * This,
+ /* [retval][out] */ ISpeechAudioBufferInfo **BufferInfo);
+
+
+void __RPC_STUB ISpeechAudio_get_BufferInfo_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudio_get_DefaultFormat_Proxy(
+ ISpeechAudio * This,
+ /* [retval][out] */ ISpeechAudioFormat **StreamFormat);
+
+
+void __RPC_STUB ISpeechAudio_get_DefaultFormat_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudio_get_Volume_Proxy(
+ ISpeechAudio * This,
+ /* [retval][out] */ long *Volume);
+
+
+void __RPC_STUB ISpeechAudio_get_Volume_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechAudio_put_Volume_Proxy(
+ ISpeechAudio * This,
+ /* [in] */ long Volume);
+
+
+void __RPC_STUB ISpeechAudio_put_Volume_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudio_get_BufferNotifySize_Proxy(
+ ISpeechAudio * This,
+ /* [retval][out] */ long *BufferNotifySize);
+
+
+void __RPC_STUB ISpeechAudio_get_BufferNotifySize_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechAudio_put_BufferNotifySize_Proxy(
+ ISpeechAudio * This,
+ /* [in] */ long BufferNotifySize);
+
+
+void __RPC_STUB ISpeechAudio_put_BufferNotifySize_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE ISpeechAudio_get_EventHandle_Proxy(
+ ISpeechAudio * This,
+ /* [retval][out] */ long *EventHandle);
+
+
+void __RPC_STUB ISpeechAudio_get_EventHandle_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [hidden][id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechAudio_SetState_Proxy(
+ ISpeechAudio * This,
+ /* [in] */ SpeechAudioState State);
+
+
+void __RPC_STUB ISpeechAudio_SetState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechAudio_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechMMSysAudio_INTERFACE_DEFINED__
+#define __ISpeechMMSysAudio_INTERFACE_DEFINED__
+
+/* interface ISpeechMMSysAudio */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechMMSysAudio;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("3C76AF6D-1FD7-4831-81D1-3B71D5A13C44")
+ ISpeechMMSysAudio : public ISpeechAudio
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_DeviceId(
+ /* [retval][out] */ long *DeviceId) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_DeviceId(
+ /* [in] */ long DeviceId) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_LineId(
+ /* [retval][out] */ long *LineId) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_LineId(
+ /* [in] */ long LineId) = 0;
+
+ virtual /* [id][helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_MMHandle(
+ /* [retval][out] */ long *Handle) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechMMSysAudioVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechMMSysAudio * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechMMSysAudio * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechMMSysAudio * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechMMSysAudio * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechMMSysAudio * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechMMSysAudio * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechMMSysAudio * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Format )(
+ ISpeechMMSysAudio * This,
+ /* [retval][out] */ ISpeechAudioFormat **AudioFormat);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_Format )(
+ ISpeechMMSysAudio * This,
+ /* [in] */ ISpeechAudioFormat *AudioFormat);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Read )(
+ ISpeechMMSysAudio * This,
+ /* [out] */ VARIANT *Buffer,
+ /* [in] */ long NumberOfBytes,
+ /* [retval][out] */ long *BytesRead);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Write )(
+ ISpeechMMSysAudio * This,
+ /* [in] */ VARIANT Buffer,
+ /* [retval][out] */ long *BytesWritten);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Seek )(
+ ISpeechMMSysAudio * This,
+ /* [in] */ VARIANT Position,
+ /* [defaultvalue][in] */ SpeechStreamSeekPositionType Origin,
+ /* [retval][out] */ VARIANT *NewPosition);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Status )(
+ ISpeechMMSysAudio * This,
+ /* [retval][out] */ ISpeechAudioStatus **Status);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BufferInfo )(
+ ISpeechMMSysAudio * This,
+ /* [retval][out] */ ISpeechAudioBufferInfo **BufferInfo);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DefaultFormat )(
+ ISpeechMMSysAudio * This,
+ /* [retval][out] */ ISpeechAudioFormat **StreamFormat);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Volume )(
+ ISpeechMMSysAudio * This,
+ /* [retval][out] */ long *Volume);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Volume )(
+ ISpeechMMSysAudio * This,
+ /* [in] */ long Volume);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BufferNotifySize )(
+ ISpeechMMSysAudio * This,
+ /* [retval][out] */ long *BufferNotifySize);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BufferNotifySize )(
+ ISpeechMMSysAudio * This,
+ /* [in] */ long BufferNotifySize);
+
+ /* [id][helpstring][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EventHandle )(
+ ISpeechMMSysAudio * This,
+ /* [retval][out] */ long *EventHandle);
+
+ /* [hidden][id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetState )(
+ ISpeechMMSysAudio * This,
+ /* [in] */ SpeechAudioState State);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DeviceId )(
+ ISpeechMMSysAudio * This,
+ /* [retval][out] */ long *DeviceId);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_DeviceId )(
+ ISpeechMMSysAudio * This,
+ /* [in] */ long DeviceId);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LineId )(
+ ISpeechMMSysAudio * This,
+ /* [retval][out] */ long *LineId);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LineId )(
+ ISpeechMMSysAudio * This,
+ /* [in] */ long LineId);
+
+ /* [id][helpstring][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MMHandle )(
+ ISpeechMMSysAudio * This,
+ /* [retval][out] */ long *Handle);
+
+ END_INTERFACE
+ } ISpeechMMSysAudioVtbl;
+
+ interface ISpeechMMSysAudio
+ {
+ CONST_VTBL struct ISpeechMMSysAudioVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechMMSysAudio_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechMMSysAudio_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechMMSysAudio_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechMMSysAudio_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechMMSysAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechMMSysAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechMMSysAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechMMSysAudio_get_Format(This,AudioFormat) \
+ (This)->lpVtbl -> get_Format(This,AudioFormat)
+
+#define ISpeechMMSysAudio_putref_Format(This,AudioFormat) \
+ (This)->lpVtbl -> putref_Format(This,AudioFormat)
+
+#define ISpeechMMSysAudio_Read(This,Buffer,NumberOfBytes,BytesRead) \
+ (This)->lpVtbl -> Read(This,Buffer,NumberOfBytes,BytesRead)
+
+#define ISpeechMMSysAudio_Write(This,Buffer,BytesWritten) \
+ (This)->lpVtbl -> Write(This,Buffer,BytesWritten)
+
+#define ISpeechMMSysAudio_Seek(This,Position,Origin,NewPosition) \
+ (This)->lpVtbl -> Seek(This,Position,Origin,NewPosition)
+
+
+#define ISpeechMMSysAudio_get_Status(This,Status) \
+ (This)->lpVtbl -> get_Status(This,Status)
+
+#define ISpeechMMSysAudio_get_BufferInfo(This,BufferInfo) \
+ (This)->lpVtbl -> get_BufferInfo(This,BufferInfo)
+
+#define ISpeechMMSysAudio_get_DefaultFormat(This,StreamFormat) \
+ (This)->lpVtbl -> get_DefaultFormat(This,StreamFormat)
+
+#define ISpeechMMSysAudio_get_Volume(This,Volume) \
+ (This)->lpVtbl -> get_Volume(This,Volume)
+
+#define ISpeechMMSysAudio_put_Volume(This,Volume) \
+ (This)->lpVtbl -> put_Volume(This,Volume)
+
+#define ISpeechMMSysAudio_get_BufferNotifySize(This,BufferNotifySize) \
+ (This)->lpVtbl -> get_BufferNotifySize(This,BufferNotifySize)
+
+#define ISpeechMMSysAudio_put_BufferNotifySize(This,BufferNotifySize) \
+ (This)->lpVtbl -> put_BufferNotifySize(This,BufferNotifySize)
+
+#define ISpeechMMSysAudio_get_EventHandle(This,EventHandle) \
+ (This)->lpVtbl -> get_EventHandle(This,EventHandle)
+
+#define ISpeechMMSysAudio_SetState(This,State) \
+ (This)->lpVtbl -> SetState(This,State)
+
+
+#define ISpeechMMSysAudio_get_DeviceId(This,DeviceId) \
+ (This)->lpVtbl -> get_DeviceId(This,DeviceId)
+
+#define ISpeechMMSysAudio_put_DeviceId(This,DeviceId) \
+ (This)->lpVtbl -> put_DeviceId(This,DeviceId)
+
+#define ISpeechMMSysAudio_get_LineId(This,LineId) \
+ (This)->lpVtbl -> get_LineId(This,LineId)
+
+#define ISpeechMMSysAudio_put_LineId(This,LineId) \
+ (This)->lpVtbl -> put_LineId(This,LineId)
+
+#define ISpeechMMSysAudio_get_MMHandle(This,Handle) \
+ (This)->lpVtbl -> get_MMHandle(This,Handle)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_get_DeviceId_Proxy(
+ ISpeechMMSysAudio * This,
+ /* [retval][out] */ long *DeviceId);
+
+
+void __RPC_STUB ISpeechMMSysAudio_get_DeviceId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_put_DeviceId_Proxy(
+ ISpeechMMSysAudio * This,
+ /* [in] */ long DeviceId);
+
+
+void __RPC_STUB ISpeechMMSysAudio_put_DeviceId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_get_LineId_Proxy(
+ ISpeechMMSysAudio * This,
+ /* [retval][out] */ long *LineId);
+
+
+void __RPC_STUB ISpeechMMSysAudio_get_LineId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_put_LineId_Proxy(
+ ISpeechMMSysAudio * This,
+ /* [in] */ long LineId);
+
+
+void __RPC_STUB ISpeechMMSysAudio_put_LineId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_get_MMHandle_Proxy(
+ ISpeechMMSysAudio * This,
+ /* [retval][out] */ long *Handle);
+
+
+void __RPC_STUB ISpeechMMSysAudio_get_MMHandle_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechMMSysAudio_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechVoice_INTERFACE_DEFINED__
+#define __ISpeechVoice_INTERFACE_DEFINED__
+
+/* interface ISpeechVoice */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechVoice;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("269316D8-57BD-11D2-9EEE-00C04F797396")
+ ISpeechVoice : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Status(
+ /* [retval][out] */ ISpeechVoiceStatus **Status) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Voice(
+ /* [retval][out] */ ISpeechObjectToken **Voice) = 0;
+
+ virtual /* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE putref_Voice(
+ /* [in] */ ISpeechObjectToken *Voice) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AudioOutput(
+ /* [retval][out] */ ISpeechObjectToken **AudioOutput) = 0;
+
+ virtual /* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE putref_AudioOutput(
+ /* [in] */ ISpeechObjectToken *AudioOutput) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AudioOutputStream(
+ /* [retval][out] */ ISpeechBaseStream **AudioOutputStream) = 0;
+
+ virtual /* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE putref_AudioOutputStream(
+ /* [in] */ ISpeechBaseStream *AudioOutputStream) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Rate(
+ /* [retval][out] */ long *Rate) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Rate(
+ /* [in] */ long Rate) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Volume(
+ /* [retval][out] */ long *Volume) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Volume(
+ /* [in] */ long Volume) = 0;
+
+ virtual /* [id][helpstring][hidden][propput] */ HRESULT STDMETHODCALLTYPE put_AllowAudioOutputFormatChangesOnNextSet(
+ /* [in] */ VARIANT_BOOL Allow) = 0;
+
+ virtual /* [id][helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_AllowAudioOutputFormatChangesOnNextSet(
+ /* [retval][out] */ VARIANT_BOOL *Allow) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_EventInterests(
+ /* [retval][out] */ SpeechVoiceEvents *EventInterestFlags) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_EventInterests(
+ /* [in] */ SpeechVoiceEvents EventInterestFlags) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Priority(
+ /* [in] */ SpeechVoicePriority Priority) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Priority(
+ /* [retval][out] */ SpeechVoicePriority *Priority) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_AlertBoundary(
+ /* [in] */ SpeechVoiceEvents Boundary) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AlertBoundary(
+ /* [retval][out] */ SpeechVoiceEvents *Boundary) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_SynchronousSpeakTimeout(
+ /* [in] */ long msTimeout) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_SynchronousSpeakTimeout(
+ /* [retval][out] */ long *msTimeout) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Speak(
+ /* [in] */ BSTR Text,
+ /* [defaultvalue][in] */ SpeechVoiceSpeakFlags Flags,
+ /* [retval][out] */ long *StreamNumber) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE SpeakStream(
+ /* [in] */ ISpeechBaseStream *Stream,
+ /* [defaultvalue][in] */ SpeechVoiceSpeakFlags Flags,
+ /* [retval][out] */ long *StreamNumber) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Pause( void) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Resume( void) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Skip(
+ /* [in] */ const BSTR Type,
+ /* [in] */ long NumItems,
+ /* [retval][out] */ long *NumSkipped) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetVoices(
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetAudioOutputs(
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE WaitUntilDone(
+ /* [in] */ long msTimeout,
+ /* [retval][out] */ VARIANT_BOOL *Done) = 0;
+
+ virtual /* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE SpeakCompleteEvent(
+ /* [retval][out] */ long *Handle) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE IsUISupported(
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData,
+ /* [retval][out] */ VARIANT_BOOL *Supported) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE DisplayUI(
+ /* [in] */ long hWndParent,
+ /* [in] */ BSTR Title,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData = 0) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechVoiceVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechVoice * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechVoice * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechVoice * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechVoice * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechVoice * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechVoice * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechVoice * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Status )(
+ ISpeechVoice * This,
+ /* [retval][out] */ ISpeechVoiceStatus **Status);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Voice )(
+ ISpeechVoice * This,
+ /* [retval][out] */ ISpeechObjectToken **Voice);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_Voice )(
+ ISpeechVoice * This,
+ /* [in] */ ISpeechObjectToken *Voice);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioOutput )(
+ ISpeechVoice * This,
+ /* [retval][out] */ ISpeechObjectToken **AudioOutput);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_AudioOutput )(
+ ISpeechVoice * This,
+ /* [in] */ ISpeechObjectToken *AudioOutput);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioOutputStream )(
+ ISpeechVoice * This,
+ /* [retval][out] */ ISpeechBaseStream **AudioOutputStream);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_AudioOutputStream )(
+ ISpeechVoice * This,
+ /* [in] */ ISpeechBaseStream *AudioOutputStream);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Rate )(
+ ISpeechVoice * This,
+ /* [retval][out] */ long *Rate);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Rate )(
+ ISpeechVoice * This,
+ /* [in] */ long Rate);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Volume )(
+ ISpeechVoice * This,
+ /* [retval][out] */ long *Volume);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Volume )(
+ ISpeechVoice * This,
+ /* [in] */ long Volume);
+
+ /* [id][helpstring][hidden][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AllowAudioOutputFormatChangesOnNextSet )(
+ ISpeechVoice * This,
+ /* [in] */ VARIANT_BOOL Allow);
+
+ /* [id][helpstring][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AllowAudioOutputFormatChangesOnNextSet )(
+ ISpeechVoice * This,
+ /* [retval][out] */ VARIANT_BOOL *Allow);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EventInterests )(
+ ISpeechVoice * This,
+ /* [retval][out] */ SpeechVoiceEvents *EventInterestFlags);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EventInterests )(
+ ISpeechVoice * This,
+ /* [in] */ SpeechVoiceEvents EventInterestFlags);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Priority )(
+ ISpeechVoice * This,
+ /* [in] */ SpeechVoicePriority Priority);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Priority )(
+ ISpeechVoice * This,
+ /* [retval][out] */ SpeechVoicePriority *Priority);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AlertBoundary )(
+ ISpeechVoice * This,
+ /* [in] */ SpeechVoiceEvents Boundary);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AlertBoundary )(
+ ISpeechVoice * This,
+ /* [retval][out] */ SpeechVoiceEvents *Boundary);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SynchronousSpeakTimeout )(
+ ISpeechVoice * This,
+ /* [in] */ long msTimeout);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SynchronousSpeakTimeout )(
+ ISpeechVoice * This,
+ /* [retval][out] */ long *msTimeout);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Speak )(
+ ISpeechVoice * This,
+ /* [in] */ BSTR Text,
+ /* [defaultvalue][in] */ SpeechVoiceSpeakFlags Flags,
+ /* [retval][out] */ long *StreamNumber);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SpeakStream )(
+ ISpeechVoice * This,
+ /* [in] */ ISpeechBaseStream *Stream,
+ /* [defaultvalue][in] */ SpeechVoiceSpeakFlags Flags,
+ /* [retval][out] */ long *StreamNumber);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Pause )(
+ ISpeechVoice * This);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Resume )(
+ ISpeechVoice * This);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Skip )(
+ ISpeechVoice * This,
+ /* [in] */ const BSTR Type,
+ /* [in] */ long NumItems,
+ /* [retval][out] */ long *NumSkipped);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVoices )(
+ ISpeechVoice * This,
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAudioOutputs )(
+ ISpeechVoice * This,
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *WaitUntilDone )(
+ ISpeechVoice * This,
+ /* [in] */ long msTimeout,
+ /* [retval][out] */ VARIANT_BOOL *Done);
+
+ /* [id][hidden][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SpeakCompleteEvent )(
+ ISpeechVoice * This,
+ /* [retval][out] */ long *Handle);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsUISupported )(
+ ISpeechVoice * This,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData,
+ /* [retval][out] */ VARIANT_BOOL *Supported);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *DisplayUI )(
+ ISpeechVoice * This,
+ /* [in] */ long hWndParent,
+ /* [in] */ BSTR Title,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData);
+
+ END_INTERFACE
+ } ISpeechVoiceVtbl;
+
+ interface ISpeechVoice
+ {
+ CONST_VTBL struct ISpeechVoiceVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechVoice_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechVoice_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechVoice_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechVoice_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechVoice_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechVoice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechVoice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechVoice_get_Status(This,Status) \
+ (This)->lpVtbl -> get_Status(This,Status)
+
+#define ISpeechVoice_get_Voice(This,Voice) \
+ (This)->lpVtbl -> get_Voice(This,Voice)
+
+#define ISpeechVoice_putref_Voice(This,Voice) \
+ (This)->lpVtbl -> putref_Voice(This,Voice)
+
+#define ISpeechVoice_get_AudioOutput(This,AudioOutput) \
+ (This)->lpVtbl -> get_AudioOutput(This,AudioOutput)
+
+#define ISpeechVoice_putref_AudioOutput(This,AudioOutput) \
+ (This)->lpVtbl -> putref_AudioOutput(This,AudioOutput)
+
+#define ISpeechVoice_get_AudioOutputStream(This,AudioOutputStream) \
+ (This)->lpVtbl -> get_AudioOutputStream(This,AudioOutputStream)
+
+#define ISpeechVoice_putref_AudioOutputStream(This,AudioOutputStream) \
+ (This)->lpVtbl -> putref_AudioOutputStream(This,AudioOutputStream)
+
+#define ISpeechVoice_get_Rate(This,Rate) \
+ (This)->lpVtbl -> get_Rate(This,Rate)
+
+#define ISpeechVoice_put_Rate(This,Rate) \
+ (This)->lpVtbl -> put_Rate(This,Rate)
+
+#define ISpeechVoice_get_Volume(This,Volume) \
+ (This)->lpVtbl -> get_Volume(This,Volume)
+
+#define ISpeechVoice_put_Volume(This,Volume) \
+ (This)->lpVtbl -> put_Volume(This,Volume)
+
+#define ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(This,Allow) \
+ (This)->lpVtbl -> put_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
+
+#define ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(This,Allow) \
+ (This)->lpVtbl -> get_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
+
+#define ISpeechVoice_get_EventInterests(This,EventInterestFlags) \
+ (This)->lpVtbl -> get_EventInterests(This,EventInterestFlags)
+
+#define ISpeechVoice_put_EventInterests(This,EventInterestFlags) \
+ (This)->lpVtbl -> put_EventInterests(This,EventInterestFlags)
+
+#define ISpeechVoice_put_Priority(This,Priority) \
+ (This)->lpVtbl -> put_Priority(This,Priority)
+
+#define ISpeechVoice_get_Priority(This,Priority) \
+ (This)->lpVtbl -> get_Priority(This,Priority)
+
+#define ISpeechVoice_put_AlertBoundary(This,Boundary) \
+ (This)->lpVtbl -> put_AlertBoundary(This,Boundary)
+
+#define ISpeechVoice_get_AlertBoundary(This,Boundary) \
+ (This)->lpVtbl -> get_AlertBoundary(This,Boundary)
+
+#define ISpeechVoice_put_SynchronousSpeakTimeout(This,msTimeout) \
+ (This)->lpVtbl -> put_SynchronousSpeakTimeout(This,msTimeout)
+
+#define ISpeechVoice_get_SynchronousSpeakTimeout(This,msTimeout) \
+ (This)->lpVtbl -> get_SynchronousSpeakTimeout(This,msTimeout)
+
+#define ISpeechVoice_Speak(This,Text,Flags,StreamNumber) \
+ (This)->lpVtbl -> Speak(This,Text,Flags,StreamNumber)
+
+#define ISpeechVoice_SpeakStream(This,Stream,Flags,StreamNumber) \
+ (This)->lpVtbl -> SpeakStream(This,Stream,Flags,StreamNumber)
+
+#define ISpeechVoice_Pause(This) \
+ (This)->lpVtbl -> Pause(This)
+
+#define ISpeechVoice_Resume(This) \
+ (This)->lpVtbl -> Resume(This)
+
+#define ISpeechVoice_Skip(This,Type,NumItems,NumSkipped) \
+ (This)->lpVtbl -> Skip(This,Type,NumItems,NumSkipped)
+
+#define ISpeechVoice_GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens) \
+ (This)->lpVtbl -> GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
+
+#define ISpeechVoice_GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) \
+ (This)->lpVtbl -> GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
+
+#define ISpeechVoice_WaitUntilDone(This,msTimeout,Done) \
+ (This)->lpVtbl -> WaitUntilDone(This,msTimeout,Done)
+
+#define ISpeechVoice_SpeakCompleteEvent(This,Handle) \
+ (This)->lpVtbl -> SpeakCompleteEvent(This,Handle)
+
+#define ISpeechVoice_IsUISupported(This,TypeOfUI,ExtraData,Supported) \
+ (This)->lpVtbl -> IsUISupported(This,TypeOfUI,ExtraData,Supported)
+
+#define ISpeechVoice_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) \
+ (This)->lpVtbl -> DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Status_Proxy(
+ ISpeechVoice * This,
+ /* [retval][out] */ ISpeechVoiceStatus **Status);
+
+
+void __RPC_STUB ISpeechVoice_get_Status_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Voice_Proxy(
+ ISpeechVoice * This,
+ /* [retval][out] */ ISpeechObjectToken **Voice);
+
+
+void __RPC_STUB ISpeechVoice_get_Voice_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_putref_Voice_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ ISpeechObjectToken *Voice);
+
+
+void __RPC_STUB ISpeechVoice_putref_Voice_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AudioOutput_Proxy(
+ ISpeechVoice * This,
+ /* [retval][out] */ ISpeechObjectToken **AudioOutput);
+
+
+void __RPC_STUB ISpeechVoice_get_AudioOutput_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_putref_AudioOutput_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ ISpeechObjectToken *AudioOutput);
+
+
+void __RPC_STUB ISpeechVoice_putref_AudioOutput_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AudioOutputStream_Proxy(
+ ISpeechVoice * This,
+ /* [retval][out] */ ISpeechBaseStream **AudioOutputStream);
+
+
+void __RPC_STUB ISpeechVoice_get_AudioOutputStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_putref_AudioOutputStream_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ ISpeechBaseStream *AudioOutputStream);
+
+
+void __RPC_STUB ISpeechVoice_putref_AudioOutputStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Rate_Proxy(
+ ISpeechVoice * This,
+ /* [retval][out] */ long *Rate);
+
+
+void __RPC_STUB ISpeechVoice_get_Rate_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_put_Rate_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ long Rate);
+
+
+void __RPC_STUB ISpeechVoice_put_Rate_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Volume_Proxy(
+ ISpeechVoice * This,
+ /* [retval][out] */ long *Volume);
+
+
+void __RPC_STUB ISpeechVoice_get_Volume_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_put_Volume_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ long Volume);
+
+
+void __RPC_STUB ISpeechVoice_put_Volume_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][hidden][propput] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ VARIANT_BOOL Allow);
+
+
+void __RPC_STUB ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet_Proxy(
+ ISpeechVoice * This,
+ /* [retval][out] */ VARIANT_BOOL *Allow);
+
+
+void __RPC_STUB ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_get_EventInterests_Proxy(
+ ISpeechVoice * This,
+ /* [retval][out] */ SpeechVoiceEvents *EventInterestFlags);
+
+
+void __RPC_STUB ISpeechVoice_get_EventInterests_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_put_EventInterests_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ SpeechVoiceEvents EventInterestFlags);
+
+
+void __RPC_STUB ISpeechVoice_put_EventInterests_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_put_Priority_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ SpeechVoicePriority Priority);
+
+
+void __RPC_STUB ISpeechVoice_put_Priority_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Priority_Proxy(
+ ISpeechVoice * This,
+ /* [retval][out] */ SpeechVoicePriority *Priority);
+
+
+void __RPC_STUB ISpeechVoice_get_Priority_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_put_AlertBoundary_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ SpeechVoiceEvents Boundary);
+
+
+void __RPC_STUB ISpeechVoice_put_AlertBoundary_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AlertBoundary_Proxy(
+ ISpeechVoice * This,
+ /* [retval][out] */ SpeechVoiceEvents *Boundary);
+
+
+void __RPC_STUB ISpeechVoice_get_AlertBoundary_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_put_SynchronousSpeakTimeout_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ long msTimeout);
+
+
+void __RPC_STUB ISpeechVoice_put_SynchronousSpeakTimeout_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_get_SynchronousSpeakTimeout_Proxy(
+ ISpeechVoice * This,
+ /* [retval][out] */ long *msTimeout);
+
+
+void __RPC_STUB ISpeechVoice_get_SynchronousSpeakTimeout_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_Speak_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ BSTR Text,
+ /* [defaultvalue][in] */ SpeechVoiceSpeakFlags Flags,
+ /* [retval][out] */ long *StreamNumber);
+
+
+void __RPC_STUB ISpeechVoice_Speak_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_SpeakStream_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ ISpeechBaseStream *Stream,
+ /* [defaultvalue][in] */ SpeechVoiceSpeakFlags Flags,
+ /* [retval][out] */ long *StreamNumber);
+
+
+void __RPC_STUB ISpeechVoice_SpeakStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_Pause_Proxy(
+ ISpeechVoice * This);
+
+
+void __RPC_STUB ISpeechVoice_Pause_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_Resume_Proxy(
+ ISpeechVoice * This);
+
+
+void __RPC_STUB ISpeechVoice_Resume_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_Skip_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ const BSTR Type,
+ /* [in] */ long NumItems,
+ /* [retval][out] */ long *NumSkipped);
+
+
+void __RPC_STUB ISpeechVoice_Skip_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_GetVoices_Proxy(
+ ISpeechVoice * This,
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens);
+
+
+void __RPC_STUB ISpeechVoice_GetVoices_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_GetAudioOutputs_Proxy(
+ ISpeechVoice * This,
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens);
+
+
+void __RPC_STUB ISpeechVoice_GetAudioOutputs_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_WaitUntilDone_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ long msTimeout,
+ /* [retval][out] */ VARIANT_BOOL *Done);
+
+
+void __RPC_STUB ISpeechVoice_WaitUntilDone_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_SpeakCompleteEvent_Proxy(
+ ISpeechVoice * This,
+ /* [retval][out] */ long *Handle);
+
+
+void __RPC_STUB ISpeechVoice_SpeakCompleteEvent_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_IsUISupported_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData,
+ /* [retval][out] */ VARIANT_BOOL *Supported);
+
+
+void __RPC_STUB ISpeechVoice_IsUISupported_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechVoice_DisplayUI_Proxy(
+ ISpeechVoice * This,
+ /* [in] */ long hWndParent,
+ /* [in] */ BSTR Title,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData);
+
+
+void __RPC_STUB ISpeechVoice_DisplayUI_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechVoice_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechVoiceStatus_INTERFACE_DEFINED__
+#define __ISpeechVoiceStatus_INTERFACE_DEFINED__
+
+/* interface ISpeechVoiceStatus */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechVoiceStatus;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("8BE47B07-57F6-11d2-9EEE-00C04F797396")
+ ISpeechVoiceStatus : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
+ /* [retval][out] */ long *StreamNumber) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_LastStreamNumberQueued(
+ /* [retval][out] */ long *StreamNumber) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_LastHResult(
+ /* [retval][out] */ long *HResult) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_RunningState(
+ /* [retval][out] */ SpeechRunState *State) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_InputWordPosition(
+ /* [retval][out] */ long *Position) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_InputWordLength(
+ /* [retval][out] */ long *Length) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_InputSentencePosition(
+ /* [retval][out] */ long *Position) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_InputSentenceLength(
+ /* [retval][out] */ long *Length) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_LastBookmark(
+ /* [retval][out] */ BSTR *Bookmark) = 0;
+
+ virtual /* [hidden][id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_LastBookmarkId(
+ /* [retval][out] */ long *BookmarkId) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PhonemeId(
+ /* [retval][out] */ short *PhoneId) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_VisemeId(
+ /* [retval][out] */ short *VisemeId) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechVoiceStatusVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechVoiceStatus * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechVoiceStatus * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechVoiceStatus * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechVoiceStatus * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechVoiceStatus * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechVoiceStatus * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechVoiceStatus * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentStreamNumber )(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *StreamNumber);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LastStreamNumberQueued )(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *StreamNumber);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LastHResult )(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *HResult);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RunningState )(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ SpeechRunState *State);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InputWordPosition )(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *Position);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InputWordLength )(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *Length);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InputSentencePosition )(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *Position);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InputSentenceLength )(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *Length);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LastBookmark )(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ BSTR *Bookmark);
+
+ /* [hidden][id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LastBookmarkId )(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *BookmarkId);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PhonemeId )(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ short *PhoneId);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VisemeId )(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ short *VisemeId);
+
+ END_INTERFACE
+ } ISpeechVoiceStatusVtbl;
+
+ interface ISpeechVoiceStatus
+ {
+ CONST_VTBL struct ISpeechVoiceStatusVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechVoiceStatus_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechVoiceStatus_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechVoiceStatus_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechVoiceStatus_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechVoiceStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechVoiceStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechVoiceStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechVoiceStatus_get_CurrentStreamNumber(This,StreamNumber) \
+ (This)->lpVtbl -> get_CurrentStreamNumber(This,StreamNumber)
+
+#define ISpeechVoiceStatus_get_LastStreamNumberQueued(This,StreamNumber) \
+ (This)->lpVtbl -> get_LastStreamNumberQueued(This,StreamNumber)
+
+#define ISpeechVoiceStatus_get_LastHResult(This,HResult) \
+ (This)->lpVtbl -> get_LastHResult(This,HResult)
+
+#define ISpeechVoiceStatus_get_RunningState(This,State) \
+ (This)->lpVtbl -> get_RunningState(This,State)
+
+#define ISpeechVoiceStatus_get_InputWordPosition(This,Position) \
+ (This)->lpVtbl -> get_InputWordPosition(This,Position)
+
+#define ISpeechVoiceStatus_get_InputWordLength(This,Length) \
+ (This)->lpVtbl -> get_InputWordLength(This,Length)
+
+#define ISpeechVoiceStatus_get_InputSentencePosition(This,Position) \
+ (This)->lpVtbl -> get_InputSentencePosition(This,Position)
+
+#define ISpeechVoiceStatus_get_InputSentenceLength(This,Length) \
+ (This)->lpVtbl -> get_InputSentenceLength(This,Length)
+
+#define ISpeechVoiceStatus_get_LastBookmark(This,Bookmark) \
+ (This)->lpVtbl -> get_LastBookmark(This,Bookmark)
+
+#define ISpeechVoiceStatus_get_LastBookmarkId(This,BookmarkId) \
+ (This)->lpVtbl -> get_LastBookmarkId(This,BookmarkId)
+
+#define ISpeechVoiceStatus_get_PhonemeId(This,PhoneId) \
+ (This)->lpVtbl -> get_PhonemeId(This,PhoneId)
+
+#define ISpeechVoiceStatus_get_VisemeId(This,VisemeId) \
+ (This)->lpVtbl -> get_VisemeId(This,VisemeId)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_CurrentStreamNumber_Proxy(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *StreamNumber);
+
+
+void __RPC_STUB ISpeechVoiceStatus_get_CurrentStreamNumber_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastStreamNumberQueued_Proxy(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *StreamNumber);
+
+
+void __RPC_STUB ISpeechVoiceStatus_get_LastStreamNumberQueued_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastHResult_Proxy(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *HResult);
+
+
+void __RPC_STUB ISpeechVoiceStatus_get_LastHResult_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_RunningState_Proxy(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ SpeechRunState *State);
+
+
+void __RPC_STUB ISpeechVoiceStatus_get_RunningState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputWordPosition_Proxy(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *Position);
+
+
+void __RPC_STUB ISpeechVoiceStatus_get_InputWordPosition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputWordLength_Proxy(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *Length);
+
+
+void __RPC_STUB ISpeechVoiceStatus_get_InputWordLength_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputSentencePosition_Proxy(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *Position);
+
+
+void __RPC_STUB ISpeechVoiceStatus_get_InputSentencePosition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputSentenceLength_Proxy(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *Length);
+
+
+void __RPC_STUB ISpeechVoiceStatus_get_InputSentenceLength_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastBookmark_Proxy(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ BSTR *Bookmark);
+
+
+void __RPC_STUB ISpeechVoiceStatus_get_LastBookmark_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [hidden][id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastBookmarkId_Proxy(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ long *BookmarkId);
+
+
+void __RPC_STUB ISpeechVoiceStatus_get_LastBookmarkId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_PhonemeId_Proxy(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ short *PhoneId);
+
+
+void __RPC_STUB ISpeechVoiceStatus_get_PhonemeId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_VisemeId_Proxy(
+ ISpeechVoiceStatus * This,
+ /* [retval][out] */ short *VisemeId);
+
+
+void __RPC_STUB ISpeechVoiceStatus_get_VisemeId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechVoiceStatus_INTERFACE_DEFINED__ */
+
+
+#ifndef ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
+#define ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
+
+/* dispinterface _ISpeechVoiceEvents */
+/* [uuid] */
+
+
+EXTERN_C const IID DIID__ISpeechVoiceEvents;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A372ACD1-3BEF-4bbd-8FFB-CB3E2B416AF8")
+ _ISpeechVoiceEvents : public IDispatch
+ {
+ };
+
+#else /* C style interface */
+
+ typedef struct _ISpeechVoiceEventsVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ _ISpeechVoiceEvents * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ _ISpeechVoiceEvents * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ _ISpeechVoiceEvents * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ _ISpeechVoiceEvents * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ _ISpeechVoiceEvents * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ _ISpeechVoiceEvents * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ _ISpeechVoiceEvents * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ END_INTERFACE
+ } _ISpeechVoiceEventsVtbl;
+
+ interface _ISpeechVoiceEvents
+ {
+ CONST_VTBL struct _ISpeechVoiceEventsVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define _ISpeechVoiceEvents_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define _ISpeechVoiceEvents_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define _ISpeechVoiceEvents_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define _ISpeechVoiceEvents_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define _ISpeechVoiceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define _ISpeechVoiceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define _ISpeechVoiceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+#endif /* ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechRecognizer_INTERFACE_DEFINED__
+#define __ISpeechRecognizer_INTERFACE_DEFINED__
+
+/* interface ISpeechRecognizer */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechRecognizer;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("2D5F1C0C-BD75-4b08-9478-3B11FEA2586C")
+ ISpeechRecognizer : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE putref_Recognizer(
+ /* [in] */ ISpeechObjectToken *Recognizer) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Recognizer(
+ /* [retval][out] */ ISpeechObjectToken **Recognizer) = 0;
+
+ virtual /* [id][helpstring][hidden][propput] */ HRESULT STDMETHODCALLTYPE put_AllowAudioInputFormatChangesOnNextSet(
+ /* [in] */ VARIANT_BOOL Allow) = 0;
+
+ virtual /* [id][helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_AllowAudioInputFormatChangesOnNextSet(
+ /* [retval][out] */ VARIANT_BOOL *Allow) = 0;
+
+ virtual /* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE putref_AudioInput(
+ /* [defaultvalue][in] */ ISpeechObjectToken *AudioInput = 0) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AudioInput(
+ /* [retval][out] */ ISpeechObjectToken **AudioInput) = 0;
+
+ virtual /* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE putref_AudioInputStream(
+ /* [defaultvalue][in] */ ISpeechBaseStream *AudioInputStream = 0) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AudioInputStream(
+ /* [retval][out] */ ISpeechBaseStream **AudioInputStream) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_IsShared(
+ /* [retval][out] */ VARIANT_BOOL *Shared) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_State(
+ /* [in] */ SpeechRecognizerState State) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_State(
+ /* [retval][out] */ SpeechRecognizerState *State) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Status(
+ /* [retval][out] */ ISpeechRecognizerStatus **Status) = 0;
+
+ virtual /* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE putref_Profile(
+ /* [defaultvalue][in] */ ISpeechObjectToken *Profile = 0) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Profile(
+ /* [retval][out] */ ISpeechObjectToken **Profile) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE EmulateRecognition(
+ /* [in] */ VARIANT TextElements,
+ /* [defaultvalue][in] */ VARIANT *ElementDisplayAttributes = 0,
+ /* [defaultvalue][in] */ long LanguageId = 0) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE CreateRecoContext(
+ /* [retval][out] */ ISpeechRecoContext **NewContext) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetFormat(
+ /* [in] */ SpeechFormatType Type,
+ /* [retval][out] */ ISpeechAudioFormat **Format) = 0;
+
+ virtual /* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE SetPropertyNumber(
+ /* [in] */ const BSTR Name,
+ /* [in] */ long Value,
+ /* [retval][out] */ VARIANT_BOOL *Supported) = 0;
+
+ virtual /* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE GetPropertyNumber(
+ /* [in] */ const BSTR Name,
+ /* [out][in] */ long *Value,
+ /* [retval][out] */ VARIANT_BOOL *Supported) = 0;
+
+ virtual /* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE SetPropertyString(
+ /* [in] */ const BSTR Name,
+ /* [in] */ const BSTR Value,
+ /* [retval][out] */ VARIANT_BOOL *Supported) = 0;
+
+ virtual /* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE GetPropertyString(
+ /* [in] */ const BSTR Name,
+ /* [out][in] */ BSTR *Value,
+ /* [retval][out] */ VARIANT_BOOL *Supported) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE IsUISupported(
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData,
+ /* [retval][out] */ VARIANT_BOOL *Supported) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE DisplayUI(
+ /* [in] */ long hWndParent,
+ /* [in] */ BSTR Title,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData = 0) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetRecognizers(
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetAudioInputs(
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetProfiles(
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechRecognizerVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechRecognizer * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechRecognizer * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechRecognizer * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechRecognizer * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechRecognizer * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechRecognizer * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechRecognizer * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_Recognizer )(
+ ISpeechRecognizer * This,
+ /* [in] */ ISpeechObjectToken *Recognizer);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Recognizer )(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ ISpeechObjectToken **Recognizer);
+
+ /* [id][helpstring][hidden][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AllowAudioInputFormatChangesOnNextSet )(
+ ISpeechRecognizer * This,
+ /* [in] */ VARIANT_BOOL Allow);
+
+ /* [id][helpstring][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AllowAudioInputFormatChangesOnNextSet )(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ VARIANT_BOOL *Allow);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_AudioInput )(
+ ISpeechRecognizer * This,
+ /* [defaultvalue][in] */ ISpeechObjectToken *AudioInput);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioInput )(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ ISpeechObjectToken **AudioInput);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_AudioInputStream )(
+ ISpeechRecognizer * This,
+ /* [defaultvalue][in] */ ISpeechBaseStream *AudioInputStream);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioInputStream )(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ ISpeechBaseStream **AudioInputStream);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsShared )(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ VARIANT_BOOL *Shared);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_State )(
+ ISpeechRecognizer * This,
+ /* [in] */ SpeechRecognizerState State);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_State )(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ SpeechRecognizerState *State);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Status )(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ ISpeechRecognizerStatus **Status);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_Profile )(
+ ISpeechRecognizer * This,
+ /* [defaultvalue][in] */ ISpeechObjectToken *Profile);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Profile )(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ ISpeechObjectToken **Profile);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *EmulateRecognition )(
+ ISpeechRecognizer * This,
+ /* [in] */ VARIANT TextElements,
+ /* [defaultvalue][in] */ VARIANT *ElementDisplayAttributes,
+ /* [defaultvalue][in] */ long LanguageId);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateRecoContext )(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ ISpeechRecoContext **NewContext);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFormat )(
+ ISpeechRecognizer * This,
+ /* [in] */ SpeechFormatType Type,
+ /* [retval][out] */ ISpeechAudioFormat **Format);
+
+ /* [id][hidden][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPropertyNumber )(
+ ISpeechRecognizer * This,
+ /* [in] */ const BSTR Name,
+ /* [in] */ long Value,
+ /* [retval][out] */ VARIANT_BOOL *Supported);
+
+ /* [id][hidden][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPropertyNumber )(
+ ISpeechRecognizer * This,
+ /* [in] */ const BSTR Name,
+ /* [out][in] */ long *Value,
+ /* [retval][out] */ VARIANT_BOOL *Supported);
+
+ /* [id][hidden][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPropertyString )(
+ ISpeechRecognizer * This,
+ /* [in] */ const BSTR Name,
+ /* [in] */ const BSTR Value,
+ /* [retval][out] */ VARIANT_BOOL *Supported);
+
+ /* [id][hidden][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPropertyString )(
+ ISpeechRecognizer * This,
+ /* [in] */ const BSTR Name,
+ /* [out][in] */ BSTR *Value,
+ /* [retval][out] */ VARIANT_BOOL *Supported);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsUISupported )(
+ ISpeechRecognizer * This,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData,
+ /* [retval][out] */ VARIANT_BOOL *Supported);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *DisplayUI )(
+ ISpeechRecognizer * This,
+ /* [in] */ long hWndParent,
+ /* [in] */ BSTR Title,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetRecognizers )(
+ ISpeechRecognizer * This,
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAudioInputs )(
+ ISpeechRecognizer * This,
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetProfiles )(
+ ISpeechRecognizer * This,
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens);
+
+ END_INTERFACE
+ } ISpeechRecognizerVtbl;
+
+ interface ISpeechRecognizer
+ {
+ CONST_VTBL struct ISpeechRecognizerVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechRecognizer_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechRecognizer_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechRecognizer_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechRecognizer_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechRecognizer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechRecognizer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechRecognizer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechRecognizer_putref_Recognizer(This,Recognizer) \
+ (This)->lpVtbl -> putref_Recognizer(This,Recognizer)
+
+#define ISpeechRecognizer_get_Recognizer(This,Recognizer) \
+ (This)->lpVtbl -> get_Recognizer(This,Recognizer)
+
+#define ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(This,Allow) \
+ (This)->lpVtbl -> put_AllowAudioInputFormatChangesOnNextSet(This,Allow)
+
+#define ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(This,Allow) \
+ (This)->lpVtbl -> get_AllowAudioInputFormatChangesOnNextSet(This,Allow)
+
+#define ISpeechRecognizer_putref_AudioInput(This,AudioInput) \
+ (This)->lpVtbl -> putref_AudioInput(This,AudioInput)
+
+#define ISpeechRecognizer_get_AudioInput(This,AudioInput) \
+ (This)->lpVtbl -> get_AudioInput(This,AudioInput)
+
+#define ISpeechRecognizer_putref_AudioInputStream(This,AudioInputStream) \
+ (This)->lpVtbl -> putref_AudioInputStream(This,AudioInputStream)
+
+#define ISpeechRecognizer_get_AudioInputStream(This,AudioInputStream) \
+ (This)->lpVtbl -> get_AudioInputStream(This,AudioInputStream)
+
+#define ISpeechRecognizer_get_IsShared(This,Shared) \
+ (This)->lpVtbl -> get_IsShared(This,Shared)
+
+#define ISpeechRecognizer_put_State(This,State) \
+ (This)->lpVtbl -> put_State(This,State)
+
+#define ISpeechRecognizer_get_State(This,State) \
+ (This)->lpVtbl -> get_State(This,State)
+
+#define ISpeechRecognizer_get_Status(This,Status) \
+ (This)->lpVtbl -> get_Status(This,Status)
+
+#define ISpeechRecognizer_putref_Profile(This,Profile) \
+ (This)->lpVtbl -> putref_Profile(This,Profile)
+
+#define ISpeechRecognizer_get_Profile(This,Profile) \
+ (This)->lpVtbl -> get_Profile(This,Profile)
+
+#define ISpeechRecognizer_EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId) \
+ (This)->lpVtbl -> EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId)
+
+#define ISpeechRecognizer_CreateRecoContext(This,NewContext) \
+ (This)->lpVtbl -> CreateRecoContext(This,NewContext)
+
+#define ISpeechRecognizer_GetFormat(This,Type,Format) \
+ (This)->lpVtbl -> GetFormat(This,Type,Format)
+
+#define ISpeechRecognizer_SetPropertyNumber(This,Name,Value,Supported) \
+ (This)->lpVtbl -> SetPropertyNumber(This,Name,Value,Supported)
+
+#define ISpeechRecognizer_GetPropertyNumber(This,Name,Value,Supported) \
+ (This)->lpVtbl -> GetPropertyNumber(This,Name,Value,Supported)
+
+#define ISpeechRecognizer_SetPropertyString(This,Name,Value,Supported) \
+ (This)->lpVtbl -> SetPropertyString(This,Name,Value,Supported)
+
+#define ISpeechRecognizer_GetPropertyString(This,Name,Value,Supported) \
+ (This)->lpVtbl -> GetPropertyString(This,Name,Value,Supported)
+
+#define ISpeechRecognizer_IsUISupported(This,TypeOfUI,ExtraData,Supported) \
+ (This)->lpVtbl -> IsUISupported(This,TypeOfUI,ExtraData,Supported)
+
+#define ISpeechRecognizer_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) \
+ (This)->lpVtbl -> DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
+
+#define ISpeechRecognizer_GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens) \
+ (This)->lpVtbl -> GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
+
+#define ISpeechRecognizer_GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) \
+ (This)->lpVtbl -> GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
+
+#define ISpeechRecognizer_GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens) \
+ (This)->lpVtbl -> GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_Recognizer_Proxy(
+ ISpeechRecognizer * This,
+ /* [in] */ ISpeechObjectToken *Recognizer);
+
+
+void __RPC_STUB ISpeechRecognizer_putref_Recognizer_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_Recognizer_Proxy(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ ISpeechObjectToken **Recognizer);
+
+
+void __RPC_STUB ISpeechRecognizer_get_Recognizer_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][hidden][propput] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet_Proxy(
+ ISpeechRecognizer * This,
+ /* [in] */ VARIANT_BOOL Allow);
+
+
+void __RPC_STUB ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet_Proxy(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ VARIANT_BOOL *Allow);
+
+
+void __RPC_STUB ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_AudioInput_Proxy(
+ ISpeechRecognizer * This,
+ /* [defaultvalue][in] */ ISpeechObjectToken *AudioInput);
+
+
+void __RPC_STUB ISpeechRecognizer_putref_AudioInput_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_AudioInput_Proxy(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ ISpeechObjectToken **AudioInput);
+
+
+void __RPC_STUB ISpeechRecognizer_get_AudioInput_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_AudioInputStream_Proxy(
+ ISpeechRecognizer * This,
+ /* [defaultvalue][in] */ ISpeechBaseStream *AudioInputStream);
+
+
+void __RPC_STUB ISpeechRecognizer_putref_AudioInputStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_AudioInputStream_Proxy(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ ISpeechBaseStream **AudioInputStream);
+
+
+void __RPC_STUB ISpeechRecognizer_get_AudioInputStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_IsShared_Proxy(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ VARIANT_BOOL *Shared);
+
+
+void __RPC_STUB ISpeechRecognizer_get_IsShared_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_put_State_Proxy(
+ ISpeechRecognizer * This,
+ /* [in] */ SpeechRecognizerState State);
+
+
+void __RPC_STUB ISpeechRecognizer_put_State_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_State_Proxy(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ SpeechRecognizerState *State);
+
+
+void __RPC_STUB ISpeechRecognizer_get_State_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_Status_Proxy(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ ISpeechRecognizerStatus **Status);
+
+
+void __RPC_STUB ISpeechRecognizer_get_Status_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_Profile_Proxy(
+ ISpeechRecognizer * This,
+ /* [defaultvalue][in] */ ISpeechObjectToken *Profile);
+
+
+void __RPC_STUB ISpeechRecognizer_putref_Profile_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_Profile_Proxy(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ ISpeechObjectToken **Profile);
+
+
+void __RPC_STUB ISpeechRecognizer_get_Profile_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_EmulateRecognition_Proxy(
+ ISpeechRecognizer * This,
+ /* [in] */ VARIANT TextElements,
+ /* [defaultvalue][in] */ VARIANT *ElementDisplayAttributes,
+ /* [defaultvalue][in] */ long LanguageId);
+
+
+void __RPC_STUB ISpeechRecognizer_EmulateRecognition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_CreateRecoContext_Proxy(
+ ISpeechRecognizer * This,
+ /* [retval][out] */ ISpeechRecoContext **NewContext);
+
+
+void __RPC_STUB ISpeechRecognizer_CreateRecoContext_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetFormat_Proxy(
+ ISpeechRecognizer * This,
+ /* [in] */ SpeechFormatType Type,
+ /* [retval][out] */ ISpeechAudioFormat **Format);
+
+
+void __RPC_STUB ISpeechRecognizer_GetFormat_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_SetPropertyNumber_Proxy(
+ ISpeechRecognizer * This,
+ /* [in] */ const BSTR Name,
+ /* [in] */ long Value,
+ /* [retval][out] */ VARIANT_BOOL *Supported);
+
+
+void __RPC_STUB ISpeechRecognizer_SetPropertyNumber_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetPropertyNumber_Proxy(
+ ISpeechRecognizer * This,
+ /* [in] */ const BSTR Name,
+ /* [out][in] */ long *Value,
+ /* [retval][out] */ VARIANT_BOOL *Supported);
+
+
+void __RPC_STUB ISpeechRecognizer_GetPropertyNumber_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_SetPropertyString_Proxy(
+ ISpeechRecognizer * This,
+ /* [in] */ const BSTR Name,
+ /* [in] */ const BSTR Value,
+ /* [retval][out] */ VARIANT_BOOL *Supported);
+
+
+void __RPC_STUB ISpeechRecognizer_SetPropertyString_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetPropertyString_Proxy(
+ ISpeechRecognizer * This,
+ /* [in] */ const BSTR Name,
+ /* [out][in] */ BSTR *Value,
+ /* [retval][out] */ VARIANT_BOOL *Supported);
+
+
+void __RPC_STUB ISpeechRecognizer_GetPropertyString_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_IsUISupported_Proxy(
+ ISpeechRecognizer * This,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData,
+ /* [retval][out] */ VARIANT_BOOL *Supported);
+
+
+void __RPC_STUB ISpeechRecognizer_IsUISupported_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_DisplayUI_Proxy(
+ ISpeechRecognizer * This,
+ /* [in] */ long hWndParent,
+ /* [in] */ BSTR Title,
+ /* [in] */ const BSTR TypeOfUI,
+ /* [defaultvalue][in] */ const VARIANT *ExtraData);
+
+
+void __RPC_STUB ISpeechRecognizer_DisplayUI_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetRecognizers_Proxy(
+ ISpeechRecognizer * This,
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens);
+
+
+void __RPC_STUB ISpeechRecognizer_GetRecognizers_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetAudioInputs_Proxy(
+ ISpeechRecognizer * This,
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens);
+
+
+void __RPC_STUB ISpeechRecognizer_GetAudioInputs_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetProfiles_Proxy(
+ ISpeechRecognizer * This,
+ /* [defaultvalue][in] */ BSTR RequiredAttributes,
+ /* [defaultvalue][in] */ BSTR OptionalAttributes,
+ /* [retval][out] */ ISpeechObjectTokens **ObjectTokens);
+
+
+void __RPC_STUB ISpeechRecognizer_GetProfiles_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechRecognizer_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechRecognizerStatus_INTERFACE_DEFINED__
+#define __ISpeechRecognizerStatus_INTERFACE_DEFINED__
+
+/* interface ISpeechRecognizerStatus */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechRecognizerStatus;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("BFF9E781-53EC-484e-BB8A-0E1B5551E35C")
+ ISpeechRecognizerStatus : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AudioStatus(
+ /* [retval][out] */ ISpeechAudioStatus **AudioStatus) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_CurrentStreamPosition(
+ /* [retval][out] */ VARIANT *pCurrentStreamPos) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
+ /* [retval][out] */ long *StreamNumber) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_NumberOfActiveRules(
+ /* [retval][out] */ long *NumberOfActiveRules) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_ClsidEngine(
+ /* [retval][out] */ BSTR *ClsidEngine) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_SupportedLanguages(
+ /* [retval][out] */ VARIANT *SupportedLanguages) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechRecognizerStatusVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechRecognizerStatus * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechRecognizerStatus * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechRecognizerStatus * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechRecognizerStatus * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechRecognizerStatus * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechRecognizerStatus * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechRecognizerStatus * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioStatus )(
+ ISpeechRecognizerStatus * This,
+ /* [retval][out] */ ISpeechAudioStatus **AudioStatus);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentStreamPosition )(
+ ISpeechRecognizerStatus * This,
+ /* [retval][out] */ VARIANT *pCurrentStreamPos);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentStreamNumber )(
+ ISpeechRecognizerStatus * This,
+ /* [retval][out] */ long *StreamNumber);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NumberOfActiveRules )(
+ ISpeechRecognizerStatus * This,
+ /* [retval][out] */ long *NumberOfActiveRules);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClsidEngine )(
+ ISpeechRecognizerStatus * This,
+ /* [retval][out] */ BSTR *ClsidEngine);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SupportedLanguages )(
+ ISpeechRecognizerStatus * This,
+ /* [retval][out] */ VARIANT *SupportedLanguages);
+
+ END_INTERFACE
+ } ISpeechRecognizerStatusVtbl;
+
+ interface ISpeechRecognizerStatus
+ {
+ CONST_VTBL struct ISpeechRecognizerStatusVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechRecognizerStatus_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechRecognizerStatus_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechRecognizerStatus_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechRecognizerStatus_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechRecognizerStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechRecognizerStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechRecognizerStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechRecognizerStatus_get_AudioStatus(This,AudioStatus) \
+ (This)->lpVtbl -> get_AudioStatus(This,AudioStatus)
+
+#define ISpeechRecognizerStatus_get_CurrentStreamPosition(This,pCurrentStreamPos) \
+ (This)->lpVtbl -> get_CurrentStreamPosition(This,pCurrentStreamPos)
+
+#define ISpeechRecognizerStatus_get_CurrentStreamNumber(This,StreamNumber) \
+ (This)->lpVtbl -> get_CurrentStreamNumber(This,StreamNumber)
+
+#define ISpeechRecognizerStatus_get_NumberOfActiveRules(This,NumberOfActiveRules) \
+ (This)->lpVtbl -> get_NumberOfActiveRules(This,NumberOfActiveRules)
+
+#define ISpeechRecognizerStatus_get_ClsidEngine(This,ClsidEngine) \
+ (This)->lpVtbl -> get_ClsidEngine(This,ClsidEngine)
+
+#define ISpeechRecognizerStatus_get_SupportedLanguages(This,SupportedLanguages) \
+ (This)->lpVtbl -> get_SupportedLanguages(This,SupportedLanguages)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_AudioStatus_Proxy(
+ ISpeechRecognizerStatus * This,
+ /* [retval][out] */ ISpeechAudioStatus **AudioStatus);
+
+
+void __RPC_STUB ISpeechRecognizerStatus_get_AudioStatus_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_CurrentStreamPosition_Proxy(
+ ISpeechRecognizerStatus * This,
+ /* [retval][out] */ VARIANT *pCurrentStreamPos);
+
+
+void __RPC_STUB ISpeechRecognizerStatus_get_CurrentStreamPosition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_CurrentStreamNumber_Proxy(
+ ISpeechRecognizerStatus * This,
+ /* [retval][out] */ long *StreamNumber);
+
+
+void __RPC_STUB ISpeechRecognizerStatus_get_CurrentStreamNumber_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_NumberOfActiveRules_Proxy(
+ ISpeechRecognizerStatus * This,
+ /* [retval][out] */ long *NumberOfActiveRules);
+
+
+void __RPC_STUB ISpeechRecognizerStatus_get_NumberOfActiveRules_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_ClsidEngine_Proxy(
+ ISpeechRecognizerStatus * This,
+ /* [retval][out] */ BSTR *ClsidEngine);
+
+
+void __RPC_STUB ISpeechRecognizerStatus_get_ClsidEngine_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_SupportedLanguages_Proxy(
+ ISpeechRecognizerStatus * This,
+ /* [retval][out] */ VARIANT *SupportedLanguages);
+
+
+void __RPC_STUB ISpeechRecognizerStatus_get_SupportedLanguages_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechRecognizerStatus_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechRecoContext_INTERFACE_DEFINED__
+#define __ISpeechRecoContext_INTERFACE_DEFINED__
+
+/* interface ISpeechRecoContext */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechRecoContext;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("580AA49D-7E1E-4809-B8E2-57DA806104B8")
+ ISpeechRecoContext : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Recognizer(
+ /* [retval][out] */ ISpeechRecognizer **Recognizer) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AudioInputInterferenceStatus(
+ /* [retval][out] */ SpeechInterference *Interference) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_RequestedUIType(
+ /* [retval][out] */ BSTR *UIType) = 0;
+
+ virtual /* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE putref_Voice(
+ /* [in] */ ISpeechVoice *Voice) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Voice(
+ /* [retval][out] */ ISpeechVoice **Voice) = 0;
+
+ virtual /* [id][helpstring][hidden][propput] */ HRESULT STDMETHODCALLTYPE put_AllowVoiceFormatMatchingOnNextSet(
+ /* [in] */ VARIANT_BOOL Allow) = 0;
+
+ virtual /* [id][helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_AllowVoiceFormatMatchingOnNextSet(
+ /* [retval][out] */ VARIANT_BOOL *pAllow) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_VoicePurgeEvent(
+ /* [in] */ SpeechRecoEvents EventInterest) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_VoicePurgeEvent(
+ /* [retval][out] */ SpeechRecoEvents *EventInterest) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_EventInterests(
+ /* [in] */ SpeechRecoEvents EventInterest) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_EventInterests(
+ /* [retval][out] */ SpeechRecoEvents *EventInterest) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_CmdMaxAlternates(
+ /* [in] */ long MaxAlternates) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_CmdMaxAlternates(
+ /* [retval][out] */ long *MaxAlternates) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_State(
+ /* [in] */ SpeechRecoContextState State) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_State(
+ /* [retval][out] */ SpeechRecoContextState *State) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_RetainedAudio(
+ /* [in] */ SpeechRetainedAudioOptions Option) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_RetainedAudio(
+ /* [retval][out] */ SpeechRetainedAudioOptions *Option) = 0;
+
+ virtual /* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE putref_RetainedAudioFormat(
+ /* [in] */ ISpeechAudioFormat *Format) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_RetainedAudioFormat(
+ /* [retval][out] */ ISpeechAudioFormat **Format) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Pause( void) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Resume( void) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE CreateGrammar(
+ /* [defaultvalue][in] */ VARIANT GrammarId,
+ /* [retval][out] */ ISpeechRecoGrammar **Grammar) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE CreateResultFromMemory(
+ /* [in] */ VARIANT *ResultBlock,
+ /* [retval][out] */ ISpeechRecoResult **Result) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Bookmark(
+ /* [in] */ SpeechBookmarkOptions Options,
+ /* [in] */ VARIANT StreamPos,
+ /* [in] */ VARIANT BookmarkId) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE SetAdaptationData(
+ /* [in] */ BSTR AdaptationString) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechRecoContextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechRecoContext * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechRecoContext * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechRecoContext * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechRecoContext * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechRecoContext * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechRecoContext * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechRecoContext * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Recognizer )(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ ISpeechRecognizer **Recognizer);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioInputInterferenceStatus )(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ SpeechInterference *Interference);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RequestedUIType )(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ BSTR *UIType);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_Voice )(
+ ISpeechRecoContext * This,
+ /* [in] */ ISpeechVoice *Voice);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Voice )(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ ISpeechVoice **Voice);
+
+ /* [id][helpstring][hidden][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AllowVoiceFormatMatchingOnNextSet )(
+ ISpeechRecoContext * This,
+ /* [in] */ VARIANT_BOOL Allow);
+
+ /* [id][helpstring][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AllowVoiceFormatMatchingOnNextSet )(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ VARIANT_BOOL *pAllow);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_VoicePurgeEvent )(
+ ISpeechRecoContext * This,
+ /* [in] */ SpeechRecoEvents EventInterest);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VoicePurgeEvent )(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ SpeechRecoEvents *EventInterest);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EventInterests )(
+ ISpeechRecoContext * This,
+ /* [in] */ SpeechRecoEvents EventInterest);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EventInterests )(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ SpeechRecoEvents *EventInterest);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_CmdMaxAlternates )(
+ ISpeechRecoContext * This,
+ /* [in] */ long MaxAlternates);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CmdMaxAlternates )(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ long *MaxAlternates);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_State )(
+ ISpeechRecoContext * This,
+ /* [in] */ SpeechRecoContextState State);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_State )(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ SpeechRecoContextState *State);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RetainedAudio )(
+ ISpeechRecoContext * This,
+ /* [in] */ SpeechRetainedAudioOptions Option);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RetainedAudio )(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ SpeechRetainedAudioOptions *Option);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_RetainedAudioFormat )(
+ ISpeechRecoContext * This,
+ /* [in] */ ISpeechAudioFormat *Format);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RetainedAudioFormat )(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ ISpeechAudioFormat **Format);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Pause )(
+ ISpeechRecoContext * This);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Resume )(
+ ISpeechRecoContext * This);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateGrammar )(
+ ISpeechRecoContext * This,
+ /* [defaultvalue][in] */ VARIANT GrammarId,
+ /* [retval][out] */ ISpeechRecoGrammar **Grammar);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateResultFromMemory )(
+ ISpeechRecoContext * This,
+ /* [in] */ VARIANT *ResultBlock,
+ /* [retval][out] */ ISpeechRecoResult **Result);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Bookmark )(
+ ISpeechRecoContext * This,
+ /* [in] */ SpeechBookmarkOptions Options,
+ /* [in] */ VARIANT StreamPos,
+ /* [in] */ VARIANT BookmarkId);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetAdaptationData )(
+ ISpeechRecoContext * This,
+ /* [in] */ BSTR AdaptationString);
+
+ END_INTERFACE
+ } ISpeechRecoContextVtbl;
+
+ interface ISpeechRecoContext
+ {
+ CONST_VTBL struct ISpeechRecoContextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechRecoContext_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechRecoContext_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechRecoContext_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechRecoContext_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechRecoContext_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechRecoContext_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechRecoContext_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechRecoContext_get_Recognizer(This,Recognizer) \
+ (This)->lpVtbl -> get_Recognizer(This,Recognizer)
+
+#define ISpeechRecoContext_get_AudioInputInterferenceStatus(This,Interference) \
+ (This)->lpVtbl -> get_AudioInputInterferenceStatus(This,Interference)
+
+#define ISpeechRecoContext_get_RequestedUIType(This,UIType) \
+ (This)->lpVtbl -> get_RequestedUIType(This,UIType)
+
+#define ISpeechRecoContext_putref_Voice(This,Voice) \
+ (This)->lpVtbl -> putref_Voice(This,Voice)
+
+#define ISpeechRecoContext_get_Voice(This,Voice) \
+ (This)->lpVtbl -> get_Voice(This,Voice)
+
+#define ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(This,Allow) \
+ (This)->lpVtbl -> put_AllowVoiceFormatMatchingOnNextSet(This,Allow)
+
+#define ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(This,pAllow) \
+ (This)->lpVtbl -> get_AllowVoiceFormatMatchingOnNextSet(This,pAllow)
+
+#define ISpeechRecoContext_put_VoicePurgeEvent(This,EventInterest) \
+ (This)->lpVtbl -> put_VoicePurgeEvent(This,EventInterest)
+
+#define ISpeechRecoContext_get_VoicePurgeEvent(This,EventInterest) \
+ (This)->lpVtbl -> get_VoicePurgeEvent(This,EventInterest)
+
+#define ISpeechRecoContext_put_EventInterests(This,EventInterest) \
+ (This)->lpVtbl -> put_EventInterests(This,EventInterest)
+
+#define ISpeechRecoContext_get_EventInterests(This,EventInterest) \
+ (This)->lpVtbl -> get_EventInterests(This,EventInterest)
+
+#define ISpeechRecoContext_put_CmdMaxAlternates(This,MaxAlternates) \
+ (This)->lpVtbl -> put_CmdMaxAlternates(This,MaxAlternates)
+
+#define ISpeechRecoContext_get_CmdMaxAlternates(This,MaxAlternates) \
+ (This)->lpVtbl -> get_CmdMaxAlternates(This,MaxAlternates)
+
+#define ISpeechRecoContext_put_State(This,State) \
+ (This)->lpVtbl -> put_State(This,State)
+
+#define ISpeechRecoContext_get_State(This,State) \
+ (This)->lpVtbl -> get_State(This,State)
+
+#define ISpeechRecoContext_put_RetainedAudio(This,Option) \
+ (This)->lpVtbl -> put_RetainedAudio(This,Option)
+
+#define ISpeechRecoContext_get_RetainedAudio(This,Option) \
+ (This)->lpVtbl -> get_RetainedAudio(This,Option)
+
+#define ISpeechRecoContext_putref_RetainedAudioFormat(This,Format) \
+ (This)->lpVtbl -> putref_RetainedAudioFormat(This,Format)
+
+#define ISpeechRecoContext_get_RetainedAudioFormat(This,Format) \
+ (This)->lpVtbl -> get_RetainedAudioFormat(This,Format)
+
+#define ISpeechRecoContext_Pause(This) \
+ (This)->lpVtbl -> Pause(This)
+
+#define ISpeechRecoContext_Resume(This) \
+ (This)->lpVtbl -> Resume(This)
+
+#define ISpeechRecoContext_CreateGrammar(This,GrammarId,Grammar) \
+ (This)->lpVtbl -> CreateGrammar(This,GrammarId,Grammar)
+
+#define ISpeechRecoContext_CreateResultFromMemory(This,ResultBlock,Result) \
+ (This)->lpVtbl -> CreateResultFromMemory(This,ResultBlock,Result)
+
+#define ISpeechRecoContext_Bookmark(This,Options,StreamPos,BookmarkId) \
+ (This)->lpVtbl -> Bookmark(This,Options,StreamPos,BookmarkId)
+
+#define ISpeechRecoContext_SetAdaptationData(This,AdaptationString) \
+ (This)->lpVtbl -> SetAdaptationData(This,AdaptationString)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_Recognizer_Proxy(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ ISpeechRecognizer **Recognizer);
+
+
+void __RPC_STUB ISpeechRecoContext_get_Recognizer_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_AudioInputInterferenceStatus_Proxy(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ SpeechInterference *Interference);
+
+
+void __RPC_STUB ISpeechRecoContext_get_AudioInputInterferenceStatus_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_RequestedUIType_Proxy(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ BSTR *UIType);
+
+
+void __RPC_STUB ISpeechRecoContext_get_RequestedUIType_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_putref_Voice_Proxy(
+ ISpeechRecoContext * This,
+ /* [in] */ ISpeechVoice *Voice);
+
+
+void __RPC_STUB ISpeechRecoContext_putref_Voice_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_Voice_Proxy(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ ISpeechVoice **Voice);
+
+
+void __RPC_STUB ISpeechRecoContext_get_Voice_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][hidden][propput] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet_Proxy(
+ ISpeechRecoContext * This,
+ /* [in] */ VARIANT_BOOL Allow);
+
+
+void __RPC_STUB ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet_Proxy(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ VARIANT_BOOL *pAllow);
+
+
+void __RPC_STUB ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_VoicePurgeEvent_Proxy(
+ ISpeechRecoContext * This,
+ /* [in] */ SpeechRecoEvents EventInterest);
+
+
+void __RPC_STUB ISpeechRecoContext_put_VoicePurgeEvent_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_VoicePurgeEvent_Proxy(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ SpeechRecoEvents *EventInterest);
+
+
+void __RPC_STUB ISpeechRecoContext_get_VoicePurgeEvent_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_EventInterests_Proxy(
+ ISpeechRecoContext * This,
+ /* [in] */ SpeechRecoEvents EventInterest);
+
+
+void __RPC_STUB ISpeechRecoContext_put_EventInterests_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_EventInterests_Proxy(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ SpeechRecoEvents *EventInterest);
+
+
+void __RPC_STUB ISpeechRecoContext_get_EventInterests_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_CmdMaxAlternates_Proxy(
+ ISpeechRecoContext * This,
+ /* [in] */ long MaxAlternates);
+
+
+void __RPC_STUB ISpeechRecoContext_put_CmdMaxAlternates_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_CmdMaxAlternates_Proxy(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ long *MaxAlternates);
+
+
+void __RPC_STUB ISpeechRecoContext_get_CmdMaxAlternates_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_State_Proxy(
+ ISpeechRecoContext * This,
+ /* [in] */ SpeechRecoContextState State);
+
+
+void __RPC_STUB ISpeechRecoContext_put_State_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_State_Proxy(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ SpeechRecoContextState *State);
+
+
+void __RPC_STUB ISpeechRecoContext_get_State_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_RetainedAudio_Proxy(
+ ISpeechRecoContext * This,
+ /* [in] */ SpeechRetainedAudioOptions Option);
+
+
+void __RPC_STUB ISpeechRecoContext_put_RetainedAudio_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_RetainedAudio_Proxy(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ SpeechRetainedAudioOptions *Option);
+
+
+void __RPC_STUB ISpeechRecoContext_get_RetainedAudio_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_putref_RetainedAudioFormat_Proxy(
+ ISpeechRecoContext * This,
+ /* [in] */ ISpeechAudioFormat *Format);
+
+
+void __RPC_STUB ISpeechRecoContext_putref_RetainedAudioFormat_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_RetainedAudioFormat_Proxy(
+ ISpeechRecoContext * This,
+ /* [retval][out] */ ISpeechAudioFormat **Format);
+
+
+void __RPC_STUB ISpeechRecoContext_get_RetainedAudioFormat_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_Pause_Proxy(
+ ISpeechRecoContext * This);
+
+
+void __RPC_STUB ISpeechRecoContext_Pause_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_Resume_Proxy(
+ ISpeechRecoContext * This);
+
+
+void __RPC_STUB ISpeechRecoContext_Resume_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_CreateGrammar_Proxy(
+ ISpeechRecoContext * This,
+ /* [defaultvalue][in] */ VARIANT GrammarId,
+ /* [retval][out] */ ISpeechRecoGrammar **Grammar);
+
+
+void __RPC_STUB ISpeechRecoContext_CreateGrammar_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_CreateResultFromMemory_Proxy(
+ ISpeechRecoContext * This,
+ /* [in] */ VARIANT *ResultBlock,
+ /* [retval][out] */ ISpeechRecoResult **Result);
+
+
+void __RPC_STUB ISpeechRecoContext_CreateResultFromMemory_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_Bookmark_Proxy(
+ ISpeechRecoContext * This,
+ /* [in] */ SpeechBookmarkOptions Options,
+ /* [in] */ VARIANT StreamPos,
+ /* [in] */ VARIANT BookmarkId);
+
+
+void __RPC_STUB ISpeechRecoContext_Bookmark_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoContext_SetAdaptationData_Proxy(
+ ISpeechRecoContext * This,
+ /* [in] */ BSTR AdaptationString);
+
+
+void __RPC_STUB ISpeechRecoContext_SetAdaptationData_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechRecoContext_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechRecoGrammar_INTERFACE_DEFINED__
+#define __ISpeechRecoGrammar_INTERFACE_DEFINED__
+
+/* interface ISpeechRecoGrammar */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechRecoGrammar;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("B6D6F79F-2158-4e50-B5BC-9A9CCD852A09")
+ ISpeechRecoGrammar : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Id(
+ /* [retval][out] */ VARIANT *Id) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_RecoContext(
+ /* [retval][out] */ ISpeechRecoContext **RecoContext) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_State(
+ /* [in] */ SpeechGrammarState State) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_State(
+ /* [retval][out] */ SpeechGrammarState *State) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Rules(
+ /* [retval][out] */ ISpeechGrammarRules **Rules) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Reset(
+ /* [defaultvalue][in] */ SpeechLanguageId NewLanguage = 0) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE CmdLoadFromFile(
+ /* [in] */ const BSTR FileName,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption = SLOStatic) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE CmdLoadFromObject(
+ /* [in] */ const BSTR ClassId,
+ /* [in] */ const BSTR GrammarName,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption = SLOStatic) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE CmdLoadFromResource(
+ /* [in] */ long hModule,
+ /* [in] */ VARIANT ResourceName,
+ /* [in] */ VARIANT ResourceType,
+ /* [in] */ SpeechLanguageId LanguageId,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption = SLOStatic) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE CmdLoadFromMemory(
+ /* [in] */ VARIANT GrammarData,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption = SLOStatic) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE CmdLoadFromProprietaryGrammar(
+ /* [in] */ const BSTR ProprietaryGuid,
+ /* [in] */ const BSTR ProprietaryString,
+ /* [in] */ VARIANT ProprietaryData,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption = SLOStatic) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE CmdSetRuleState(
+ /* [in] */ const BSTR Name,
+ /* [in] */ SpeechRuleState State) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE CmdSetRuleIdState(
+ /* [in] */ long RuleId,
+ /* [in] */ SpeechRuleState State) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE DictationLoad(
+ /* [defaultvalue][in] */ const BSTR TopicName = L"",
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption = SLOStatic) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE DictationUnload( void) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE DictationSetState(
+ /* [in] */ SpeechRuleState State) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE SetWordSequenceData(
+ /* [in] */ const BSTR Text,
+ /* [in] */ long TextLength,
+ /* [in] */ ISpeechTextSelectionInformation *Info) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE SetTextSelection(
+ /* [in] */ ISpeechTextSelectionInformation *Info) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE IsPronounceable(
+ /* [in] */ const BSTR Word,
+ /* [retval][out] */ SpeechWordPronounceable *WordPronounceable) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechRecoGrammarVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechRecoGrammar * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechRecoGrammar * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechRecoGrammar * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )(
+ ISpeechRecoGrammar * This,
+ /* [retval][out] */ VARIANT *Id);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecoContext )(
+ ISpeechRecoGrammar * This,
+ /* [retval][out] */ ISpeechRecoContext **RecoContext);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_State )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ SpeechGrammarState State);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_State )(
+ ISpeechRecoGrammar * This,
+ /* [retval][out] */ SpeechGrammarState *State);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Rules )(
+ ISpeechRecoGrammar * This,
+ /* [retval][out] */ ISpeechGrammarRules **Rules);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reset )(
+ ISpeechRecoGrammar * This,
+ /* [defaultvalue][in] */ SpeechLanguageId NewLanguage);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *CmdLoadFromFile )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ const BSTR FileName,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *CmdLoadFromObject )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ const BSTR ClassId,
+ /* [in] */ const BSTR GrammarName,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *CmdLoadFromResource )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ long hModule,
+ /* [in] */ VARIANT ResourceName,
+ /* [in] */ VARIANT ResourceType,
+ /* [in] */ SpeechLanguageId LanguageId,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *CmdLoadFromMemory )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ VARIANT GrammarData,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *CmdLoadFromProprietaryGrammar )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ const BSTR ProprietaryGuid,
+ /* [in] */ const BSTR ProprietaryString,
+ /* [in] */ VARIANT ProprietaryData,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *CmdSetRuleState )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ const BSTR Name,
+ /* [in] */ SpeechRuleState State);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *CmdSetRuleIdState )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ long RuleId,
+ /* [in] */ SpeechRuleState State);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *DictationLoad )(
+ ISpeechRecoGrammar * This,
+ /* [defaultvalue][in] */ const BSTR TopicName,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *DictationUnload )(
+ ISpeechRecoGrammar * This);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *DictationSetState )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ SpeechRuleState State);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetWordSequenceData )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ const BSTR Text,
+ /* [in] */ long TextLength,
+ /* [in] */ ISpeechTextSelectionInformation *Info);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTextSelection )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ ISpeechTextSelectionInformation *Info);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsPronounceable )(
+ ISpeechRecoGrammar * This,
+ /* [in] */ const BSTR Word,
+ /* [retval][out] */ SpeechWordPronounceable *WordPronounceable);
+
+ END_INTERFACE
+ } ISpeechRecoGrammarVtbl;
+
+ interface ISpeechRecoGrammar
+ {
+ CONST_VTBL struct ISpeechRecoGrammarVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechRecoGrammar_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechRecoGrammar_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechRecoGrammar_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechRecoGrammar_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechRecoGrammar_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechRecoGrammar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechRecoGrammar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechRecoGrammar_get_Id(This,Id) \
+ (This)->lpVtbl -> get_Id(This,Id)
+
+#define ISpeechRecoGrammar_get_RecoContext(This,RecoContext) \
+ (This)->lpVtbl -> get_RecoContext(This,RecoContext)
+
+#define ISpeechRecoGrammar_put_State(This,State) \
+ (This)->lpVtbl -> put_State(This,State)
+
+#define ISpeechRecoGrammar_get_State(This,State) \
+ (This)->lpVtbl -> get_State(This,State)
+
+#define ISpeechRecoGrammar_get_Rules(This,Rules) \
+ (This)->lpVtbl -> get_Rules(This,Rules)
+
+#define ISpeechRecoGrammar_Reset(This,NewLanguage) \
+ (This)->lpVtbl -> Reset(This,NewLanguage)
+
+#define ISpeechRecoGrammar_CmdLoadFromFile(This,FileName,LoadOption) \
+ (This)->lpVtbl -> CmdLoadFromFile(This,FileName,LoadOption)
+
+#define ISpeechRecoGrammar_CmdLoadFromObject(This,ClassId,GrammarName,LoadOption) \
+ (This)->lpVtbl -> CmdLoadFromObject(This,ClassId,GrammarName,LoadOption)
+
+#define ISpeechRecoGrammar_CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption) \
+ (This)->lpVtbl -> CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption)
+
+#define ISpeechRecoGrammar_CmdLoadFromMemory(This,GrammarData,LoadOption) \
+ (This)->lpVtbl -> CmdLoadFromMemory(This,GrammarData,LoadOption)
+
+#define ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption) \
+ (This)->lpVtbl -> CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption)
+
+#define ISpeechRecoGrammar_CmdSetRuleState(This,Name,State) \
+ (This)->lpVtbl -> CmdSetRuleState(This,Name,State)
+
+#define ISpeechRecoGrammar_CmdSetRuleIdState(This,RuleId,State) \
+ (This)->lpVtbl -> CmdSetRuleIdState(This,RuleId,State)
+
+#define ISpeechRecoGrammar_DictationLoad(This,TopicName,LoadOption) \
+ (This)->lpVtbl -> DictationLoad(This,TopicName,LoadOption)
+
+#define ISpeechRecoGrammar_DictationUnload(This) \
+ (This)->lpVtbl -> DictationUnload(This)
+
+#define ISpeechRecoGrammar_DictationSetState(This,State) \
+ (This)->lpVtbl -> DictationSetState(This,State)
+
+#define ISpeechRecoGrammar_SetWordSequenceData(This,Text,TextLength,Info) \
+ (This)->lpVtbl -> SetWordSequenceData(This,Text,TextLength,Info)
+
+#define ISpeechRecoGrammar_SetTextSelection(This,Info) \
+ (This)->lpVtbl -> SetTextSelection(This,Info)
+
+#define ISpeechRecoGrammar_IsPronounceable(This,Word,WordPronounceable) \
+ (This)->lpVtbl -> IsPronounceable(This,Word,WordPronounceable)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_Id_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [retval][out] */ VARIANT *Id);
+
+
+void __RPC_STUB ISpeechRecoGrammar_get_Id_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_RecoContext_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [retval][out] */ ISpeechRecoContext **RecoContext);
+
+
+void __RPC_STUB ISpeechRecoGrammar_get_RecoContext_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_put_State_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [in] */ SpeechGrammarState State);
+
+
+void __RPC_STUB ISpeechRecoGrammar_put_State_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_State_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [retval][out] */ SpeechGrammarState *State);
+
+
+void __RPC_STUB ISpeechRecoGrammar_get_State_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_Rules_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [retval][out] */ ISpeechGrammarRules **Rules);
+
+
+void __RPC_STUB ISpeechRecoGrammar_get_Rules_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_Reset_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [defaultvalue][in] */ SpeechLanguageId NewLanguage);
+
+
+void __RPC_STUB ISpeechRecoGrammar_Reset_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromFile_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [in] */ const BSTR FileName,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption);
+
+
+void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromFile_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromObject_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [in] */ const BSTR ClassId,
+ /* [in] */ const BSTR GrammarName,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption);
+
+
+void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromObject_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromResource_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [in] */ long hModule,
+ /* [in] */ VARIANT ResourceName,
+ /* [in] */ VARIANT ResourceType,
+ /* [in] */ SpeechLanguageId LanguageId,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption);
+
+
+void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromResource_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromMemory_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [in] */ VARIANT GrammarData,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption);
+
+
+void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromMemory_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [in] */ const BSTR ProprietaryGuid,
+ /* [in] */ const BSTR ProprietaryString,
+ /* [in] */ VARIANT ProprietaryData,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption);
+
+
+void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdSetRuleState_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [in] */ const BSTR Name,
+ /* [in] */ SpeechRuleState State);
+
+
+void __RPC_STUB ISpeechRecoGrammar_CmdSetRuleState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdSetRuleIdState_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [in] */ long RuleId,
+ /* [in] */ SpeechRuleState State);
+
+
+void __RPC_STUB ISpeechRecoGrammar_CmdSetRuleIdState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_DictationLoad_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [defaultvalue][in] */ const BSTR TopicName,
+ /* [defaultvalue][in] */ SpeechLoadOption LoadOption);
+
+
+void __RPC_STUB ISpeechRecoGrammar_DictationLoad_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_DictationUnload_Proxy(
+ ISpeechRecoGrammar * This);
+
+
+void __RPC_STUB ISpeechRecoGrammar_DictationUnload_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_DictationSetState_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [in] */ SpeechRuleState State);
+
+
+void __RPC_STUB ISpeechRecoGrammar_DictationSetState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_SetWordSequenceData_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [in] */ const BSTR Text,
+ /* [in] */ long TextLength,
+ /* [in] */ ISpeechTextSelectionInformation *Info);
+
+
+void __RPC_STUB ISpeechRecoGrammar_SetWordSequenceData_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_SetTextSelection_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [in] */ ISpeechTextSelectionInformation *Info);
+
+
+void __RPC_STUB ISpeechRecoGrammar_SetTextSelection_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_IsPronounceable_Proxy(
+ ISpeechRecoGrammar * This,
+ /* [in] */ const BSTR Word,
+ /* [retval][out] */ SpeechWordPronounceable *WordPronounceable);
+
+
+void __RPC_STUB ISpeechRecoGrammar_IsPronounceable_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechRecoGrammar_INTERFACE_DEFINED__ */
+
+
+#ifndef ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
+#define ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
+
+/* dispinterface _ISpeechRecoContextEvents */
+/* [uuid] */
+
+
+EXTERN_C const IID DIID__ISpeechRecoContextEvents;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("7B8FCB42-0E9D-4f00-A048-7B04D6179D3D")
+ _ISpeechRecoContextEvents : public IDispatch
+ {
+ };
+
+#else /* C style interface */
+
+ typedef struct _ISpeechRecoContextEventsVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ _ISpeechRecoContextEvents * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ _ISpeechRecoContextEvents * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ _ISpeechRecoContextEvents * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ _ISpeechRecoContextEvents * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ _ISpeechRecoContextEvents * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ _ISpeechRecoContextEvents * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ _ISpeechRecoContextEvents * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ END_INTERFACE
+ } _ISpeechRecoContextEventsVtbl;
+
+ interface _ISpeechRecoContextEvents
+ {
+ CONST_VTBL struct _ISpeechRecoContextEventsVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define _ISpeechRecoContextEvents_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define _ISpeechRecoContextEvents_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define _ISpeechRecoContextEvents_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define _ISpeechRecoContextEvents_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define _ISpeechRecoContextEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define _ISpeechRecoContextEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define _ISpeechRecoContextEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+#endif /* ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechGrammarRule_INTERFACE_DEFINED__
+#define __ISpeechGrammarRule_INTERFACE_DEFINED__
+
+/* interface ISpeechGrammarRule */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechGrammarRule;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("AFE719CF-5DD1-44f2-999C-7A399F1CFCCC")
+ ISpeechGrammarRule : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Attributes(
+ /* [retval][out] */ SpeechRuleAttributes *Attributes) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_InitialState(
+ /* [retval][out] */ ISpeechGrammarRuleState **State) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Name(
+ /* [retval][out] */ BSTR *Name) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Id(
+ /* [retval][out] */ long *Id) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE AddResource(
+ /* [in] */ const BSTR ResourceName,
+ /* [in] */ const BSTR ResourceValue) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE AddState(
+ /* [retval][out] */ ISpeechGrammarRuleState **State) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechGrammarRuleVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechGrammarRule * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechGrammarRule * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechGrammarRule * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechGrammarRule * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechGrammarRule * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechGrammarRule * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechGrammarRule * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Attributes )(
+ ISpeechGrammarRule * This,
+ /* [retval][out] */ SpeechRuleAttributes *Attributes);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InitialState )(
+ ISpeechGrammarRule * This,
+ /* [retval][out] */ ISpeechGrammarRuleState **State);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
+ ISpeechGrammarRule * This,
+ /* [retval][out] */ BSTR *Name);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )(
+ ISpeechGrammarRule * This,
+ /* [retval][out] */ long *Id);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clear )(
+ ISpeechGrammarRule * This);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddResource )(
+ ISpeechGrammarRule * This,
+ /* [in] */ const BSTR ResourceName,
+ /* [in] */ const BSTR ResourceValue);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddState )(
+ ISpeechGrammarRule * This,
+ /* [retval][out] */ ISpeechGrammarRuleState **State);
+
+ END_INTERFACE
+ } ISpeechGrammarRuleVtbl;
+
+ interface ISpeechGrammarRule
+ {
+ CONST_VTBL struct ISpeechGrammarRuleVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechGrammarRule_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechGrammarRule_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechGrammarRule_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechGrammarRule_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechGrammarRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechGrammarRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechGrammarRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechGrammarRule_get_Attributes(This,Attributes) \
+ (This)->lpVtbl -> get_Attributes(This,Attributes)
+
+#define ISpeechGrammarRule_get_InitialState(This,State) \
+ (This)->lpVtbl -> get_InitialState(This,State)
+
+#define ISpeechGrammarRule_get_Name(This,Name) \
+ (This)->lpVtbl -> get_Name(This,Name)
+
+#define ISpeechGrammarRule_get_Id(This,Id) \
+ (This)->lpVtbl -> get_Id(This,Id)
+
+#define ISpeechGrammarRule_Clear(This) \
+ (This)->lpVtbl -> Clear(This)
+
+#define ISpeechGrammarRule_AddResource(This,ResourceName,ResourceValue) \
+ (This)->lpVtbl -> AddResource(This,ResourceName,ResourceValue)
+
+#define ISpeechGrammarRule_AddState(This,State) \
+ (This)->lpVtbl -> AddState(This,State)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_Attributes_Proxy(
+ ISpeechGrammarRule * This,
+ /* [retval][out] */ SpeechRuleAttributes *Attributes);
+
+
+void __RPC_STUB ISpeechGrammarRule_get_Attributes_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_InitialState_Proxy(
+ ISpeechGrammarRule * This,
+ /* [retval][out] */ ISpeechGrammarRuleState **State);
+
+
+void __RPC_STUB ISpeechGrammarRule_get_InitialState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_Name_Proxy(
+ ISpeechGrammarRule * This,
+ /* [retval][out] */ BSTR *Name);
+
+
+void __RPC_STUB ISpeechGrammarRule_get_Name_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_Id_Proxy(
+ ISpeechGrammarRule * This,
+ /* [retval][out] */ long *Id);
+
+
+void __RPC_STUB ISpeechGrammarRule_get_Id_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_Clear_Proxy(
+ ISpeechGrammarRule * This);
+
+
+void __RPC_STUB ISpeechGrammarRule_Clear_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_AddResource_Proxy(
+ ISpeechGrammarRule * This,
+ /* [in] */ const BSTR ResourceName,
+ /* [in] */ const BSTR ResourceValue);
+
+
+void __RPC_STUB ISpeechGrammarRule_AddResource_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_AddState_Proxy(
+ ISpeechGrammarRule * This,
+ /* [retval][out] */ ISpeechGrammarRuleState **State);
+
+
+void __RPC_STUB ISpeechGrammarRule_AddState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechGrammarRule_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechGrammarRules_INTERFACE_DEFINED__
+#define __ISpeechGrammarRules_INTERFACE_DEFINED__
+
+/* interface ISpeechGrammarRules */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechGrammarRules;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6FFA3B44-FC2D-40d1-8AFC-32911C7F1AD1")
+ ISpeechGrammarRules : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count(
+ /* [retval][out] */ long *Count) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE FindRule(
+ /* [in] */ VARIANT RuleNameOrId,
+ /* [retval][out] */ ISpeechGrammarRule **Rule) = 0;
+
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item(
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechGrammarRule **Rule) = 0;
+
+ virtual /* [restricted][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
+ /* [retval][out] */ IUnknown **EnumVARIANT) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Dynamic(
+ /* [retval][out] */ VARIANT_BOOL *Dynamic) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Add(
+ /* [in] */ BSTR RuleName,
+ /* [in] */ SpeechRuleAttributes Attributes,
+ /* [defaultvalue][in] */ long RuleId,
+ /* [retval][out] */ ISpeechGrammarRule **Rule) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Commit( void) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE CommitAndSave(
+ /* [out] */ BSTR *ErrorText,
+ /* [retval][out] */ VARIANT *SaveStream) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechGrammarRulesVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechGrammarRules * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechGrammarRules * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechGrammarRules * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechGrammarRules * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechGrammarRules * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechGrammarRules * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechGrammarRules * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
+ ISpeechGrammarRules * This,
+ /* [retval][out] */ long *Count);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindRule )(
+ ISpeechGrammarRules * This,
+ /* [in] */ VARIANT RuleNameOrId,
+ /* [retval][out] */ ISpeechGrammarRule **Rule);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )(
+ ISpeechGrammarRules * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechGrammarRule **Rule);
+
+ /* [restricted][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
+ ISpeechGrammarRules * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Dynamic )(
+ ISpeechGrammarRules * This,
+ /* [retval][out] */ VARIANT_BOOL *Dynamic);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Add )(
+ ISpeechGrammarRules * This,
+ /* [in] */ BSTR RuleName,
+ /* [in] */ SpeechRuleAttributes Attributes,
+ /* [defaultvalue][in] */ long RuleId,
+ /* [retval][out] */ ISpeechGrammarRule **Rule);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Commit )(
+ ISpeechGrammarRules * This);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *CommitAndSave )(
+ ISpeechGrammarRules * This,
+ /* [out] */ BSTR *ErrorText,
+ /* [retval][out] */ VARIANT *SaveStream);
+
+ END_INTERFACE
+ } ISpeechGrammarRulesVtbl;
+
+ interface ISpeechGrammarRules
+ {
+ CONST_VTBL struct ISpeechGrammarRulesVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechGrammarRules_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechGrammarRules_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechGrammarRules_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechGrammarRules_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechGrammarRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechGrammarRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechGrammarRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechGrammarRules_get_Count(This,Count) \
+ (This)->lpVtbl -> get_Count(This,Count)
+
+#define ISpeechGrammarRules_FindRule(This,RuleNameOrId,Rule) \
+ (This)->lpVtbl -> FindRule(This,RuleNameOrId,Rule)
+
+#define ISpeechGrammarRules_Item(This,Index,Rule) \
+ (This)->lpVtbl -> Item(This,Index,Rule)
+
+#define ISpeechGrammarRules_get__NewEnum(This,EnumVARIANT) \
+ (This)->lpVtbl -> get__NewEnum(This,EnumVARIANT)
+
+#define ISpeechGrammarRules_get_Dynamic(This,Dynamic) \
+ (This)->lpVtbl -> get_Dynamic(This,Dynamic)
+
+#define ISpeechGrammarRules_Add(This,RuleName,Attributes,RuleId,Rule) \
+ (This)->lpVtbl -> Add(This,RuleName,Attributes,RuleId,Rule)
+
+#define ISpeechGrammarRules_Commit(This) \
+ (This)->lpVtbl -> Commit(This)
+
+#define ISpeechGrammarRules_CommitAndSave(This,ErrorText,SaveStream) \
+ (This)->lpVtbl -> CommitAndSave(This,ErrorText,SaveStream)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_get_Count_Proxy(
+ ISpeechGrammarRules * This,
+ /* [retval][out] */ long *Count);
+
+
+void __RPC_STUB ISpeechGrammarRules_get_Count_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_FindRule_Proxy(
+ ISpeechGrammarRules * This,
+ /* [in] */ VARIANT RuleNameOrId,
+ /* [retval][out] */ ISpeechGrammarRule **Rule);
+
+
+void __RPC_STUB ISpeechGrammarRules_FindRule_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_Item_Proxy(
+ ISpeechGrammarRules * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechGrammarRule **Rule);
+
+
+void __RPC_STUB ISpeechGrammarRules_Item_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [restricted][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_get__NewEnum_Proxy(
+ ISpeechGrammarRules * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+
+void __RPC_STUB ISpeechGrammarRules_get__NewEnum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_get_Dynamic_Proxy(
+ ISpeechGrammarRules * This,
+ /* [retval][out] */ VARIANT_BOOL *Dynamic);
+
+
+void __RPC_STUB ISpeechGrammarRules_get_Dynamic_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_Add_Proxy(
+ ISpeechGrammarRules * This,
+ /* [in] */ BSTR RuleName,
+ /* [in] */ SpeechRuleAttributes Attributes,
+ /* [defaultvalue][in] */ long RuleId,
+ /* [retval][out] */ ISpeechGrammarRule **Rule);
+
+
+void __RPC_STUB ISpeechGrammarRules_Add_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_Commit_Proxy(
+ ISpeechGrammarRules * This);
+
+
+void __RPC_STUB ISpeechGrammarRules_Commit_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_CommitAndSave_Proxy(
+ ISpeechGrammarRules * This,
+ /* [out] */ BSTR *ErrorText,
+ /* [retval][out] */ VARIANT *SaveStream);
+
+
+void __RPC_STUB ISpeechGrammarRules_CommitAndSave_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechGrammarRules_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechGrammarRuleState_INTERFACE_DEFINED__
+#define __ISpeechGrammarRuleState_INTERFACE_DEFINED__
+
+/* interface ISpeechGrammarRuleState */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechGrammarRuleState;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("D4286F2C-EE67-45ae-B928-28D695362EDA")
+ ISpeechGrammarRuleState : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Rule(
+ /* [retval][out] */ ISpeechGrammarRule **Rule) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Transitions(
+ /* [retval][out] */ ISpeechGrammarRuleStateTransitions **Transitions) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE AddWordTransition(
+ /* [in] */ ISpeechGrammarRuleState *DestState,
+ /* [in] */ const BSTR Words,
+ /* [defaultvalue][in] */ const BSTR Separators = L" ",
+ /* [defaultvalue][in] */ SpeechGrammarWordType Type = SGLexical,
+ /* [defaultvalue][in] */ const BSTR PropertyName = L"",
+ /* [defaultvalue][in] */ long PropertyId = 0,
+ /* [defaultvalue][in] */ VARIANT *PropertyValue = 0,
+ /* [defaultvalue][in] */ float Weight = 1) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE AddRuleTransition(
+ /* [in] */ ISpeechGrammarRuleState *DestinationState,
+ /* [in] */ ISpeechGrammarRule *Rule,
+ /* [defaultvalue][in] */ const BSTR PropertyName = L"",
+ /* [defaultvalue][in] */ long PropertyId = 0,
+ /* [defaultvalue][in] */ VARIANT *PropertyValue = 0,
+ /* [defaultvalue][in] */ float Weight = 1) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE AddSpecialTransition(
+ /* [in] */ ISpeechGrammarRuleState *DestinationState,
+ /* [in] */ SpeechSpecialTransitionType Type,
+ /* [defaultvalue][in] */ const BSTR PropertyName = L"",
+ /* [defaultvalue][in] */ long PropertyId = 0,
+ /* [defaultvalue][in] */ VARIANT *PropertyValue = 0,
+ /* [defaultvalue][in] */ float Weight = 1) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechGrammarRuleStateVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechGrammarRuleState * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechGrammarRuleState * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechGrammarRuleState * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechGrammarRuleState * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechGrammarRuleState * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechGrammarRuleState * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechGrammarRuleState * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Rule )(
+ ISpeechGrammarRuleState * This,
+ /* [retval][out] */ ISpeechGrammarRule **Rule);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Transitions )(
+ ISpeechGrammarRuleState * This,
+ /* [retval][out] */ ISpeechGrammarRuleStateTransitions **Transitions);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddWordTransition )(
+ ISpeechGrammarRuleState * This,
+ /* [in] */ ISpeechGrammarRuleState *DestState,
+ /* [in] */ const BSTR Words,
+ /* [defaultvalue][in] */ const BSTR Separators,
+ /* [defaultvalue][in] */ SpeechGrammarWordType Type,
+ /* [defaultvalue][in] */ const BSTR PropertyName,
+ /* [defaultvalue][in] */ long PropertyId,
+ /* [defaultvalue][in] */ VARIANT *PropertyValue,
+ /* [defaultvalue][in] */ float Weight);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddRuleTransition )(
+ ISpeechGrammarRuleState * This,
+ /* [in] */ ISpeechGrammarRuleState *DestinationState,
+ /* [in] */ ISpeechGrammarRule *Rule,
+ /* [defaultvalue][in] */ const BSTR PropertyName,
+ /* [defaultvalue][in] */ long PropertyId,
+ /* [defaultvalue][in] */ VARIANT *PropertyValue,
+ /* [defaultvalue][in] */ float Weight);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddSpecialTransition )(
+ ISpeechGrammarRuleState * This,
+ /* [in] */ ISpeechGrammarRuleState *DestinationState,
+ /* [in] */ SpeechSpecialTransitionType Type,
+ /* [defaultvalue][in] */ const BSTR PropertyName,
+ /* [defaultvalue][in] */ long PropertyId,
+ /* [defaultvalue][in] */ VARIANT *PropertyValue,
+ /* [defaultvalue][in] */ float Weight);
+
+ END_INTERFACE
+ } ISpeechGrammarRuleStateVtbl;
+
+ interface ISpeechGrammarRuleState
+ {
+ CONST_VTBL struct ISpeechGrammarRuleStateVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechGrammarRuleState_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechGrammarRuleState_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechGrammarRuleState_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechGrammarRuleState_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechGrammarRuleState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechGrammarRuleState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechGrammarRuleState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechGrammarRuleState_get_Rule(This,Rule) \
+ (This)->lpVtbl -> get_Rule(This,Rule)
+
+#define ISpeechGrammarRuleState_get_Transitions(This,Transitions) \
+ (This)->lpVtbl -> get_Transitions(This,Transitions)
+
+#define ISpeechGrammarRuleState_AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight) \
+ (This)->lpVtbl -> AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight)
+
+#define ISpeechGrammarRuleState_AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight) \
+ (This)->lpVtbl -> AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight)
+
+#define ISpeechGrammarRuleState_AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight) \
+ (This)->lpVtbl -> AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_get_Rule_Proxy(
+ ISpeechGrammarRuleState * This,
+ /* [retval][out] */ ISpeechGrammarRule **Rule);
+
+
+void __RPC_STUB ISpeechGrammarRuleState_get_Rule_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_get_Transitions_Proxy(
+ ISpeechGrammarRuleState * This,
+ /* [retval][out] */ ISpeechGrammarRuleStateTransitions **Transitions);
+
+
+void __RPC_STUB ISpeechGrammarRuleState_get_Transitions_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_AddWordTransition_Proxy(
+ ISpeechGrammarRuleState * This,
+ /* [in] */ ISpeechGrammarRuleState *DestState,
+ /* [in] */ const BSTR Words,
+ /* [defaultvalue][in] */ const BSTR Separators,
+ /* [defaultvalue][in] */ SpeechGrammarWordType Type,
+ /* [defaultvalue][in] */ const BSTR PropertyName,
+ /* [defaultvalue][in] */ long PropertyId,
+ /* [defaultvalue][in] */ VARIANT *PropertyValue,
+ /* [defaultvalue][in] */ float Weight);
+
+
+void __RPC_STUB ISpeechGrammarRuleState_AddWordTransition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_AddRuleTransition_Proxy(
+ ISpeechGrammarRuleState * This,
+ /* [in] */ ISpeechGrammarRuleState *DestinationState,
+ /* [in] */ ISpeechGrammarRule *Rule,
+ /* [defaultvalue][in] */ const BSTR PropertyName,
+ /* [defaultvalue][in] */ long PropertyId,
+ /* [defaultvalue][in] */ VARIANT *PropertyValue,
+ /* [defaultvalue][in] */ float Weight);
+
+
+void __RPC_STUB ISpeechGrammarRuleState_AddRuleTransition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_AddSpecialTransition_Proxy(
+ ISpeechGrammarRuleState * This,
+ /* [in] */ ISpeechGrammarRuleState *DestinationState,
+ /* [in] */ SpeechSpecialTransitionType Type,
+ /* [defaultvalue][in] */ const BSTR PropertyName,
+ /* [defaultvalue][in] */ long PropertyId,
+ /* [defaultvalue][in] */ VARIANT *PropertyValue,
+ /* [defaultvalue][in] */ float Weight);
+
+
+void __RPC_STUB ISpeechGrammarRuleState_AddSpecialTransition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechGrammarRuleState_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
+#define __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
+
+/* interface ISpeechGrammarRuleStateTransition */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechGrammarRuleStateTransition;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("CAFD1DB1-41D1-4a06-9863-E2E81DA17A9A")
+ ISpeechGrammarRuleStateTransition : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Type(
+ /* [retval][out] */ SpeechGrammarRuleStateTransitionType *Type) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Text(
+ /* [retval][out] */ BSTR *Text) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Rule(
+ /* [retval][out] */ ISpeechGrammarRule **Rule) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Weight(
+ /* [retval][out] */ VARIANT *Weight) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PropertyName(
+ /* [retval][out] */ BSTR *PropertyName) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PropertyId(
+ /* [retval][out] */ long *PropertyId) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PropertyValue(
+ /* [retval][out] */ VARIANT *PropertyValue) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_NextState(
+ /* [retval][out] */ ISpeechGrammarRuleState **NextState) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechGrammarRuleStateTransitionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechGrammarRuleStateTransition * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechGrammarRuleStateTransition * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ SpeechGrammarRuleStateTransitionType *Type);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Text )(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ BSTR *Text);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Rule )(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ ISpeechGrammarRule **Rule);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Weight )(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ VARIANT *Weight);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PropertyName )(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ BSTR *PropertyName);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PropertyId )(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ long *PropertyId);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PropertyValue )(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ VARIANT *PropertyValue);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NextState )(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ ISpeechGrammarRuleState **NextState);
+
+ END_INTERFACE
+ } ISpeechGrammarRuleStateTransitionVtbl;
+
+ interface ISpeechGrammarRuleStateTransition
+ {
+ CONST_VTBL struct ISpeechGrammarRuleStateTransitionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechGrammarRuleStateTransition_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechGrammarRuleStateTransition_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechGrammarRuleStateTransition_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechGrammarRuleStateTransition_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechGrammarRuleStateTransition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechGrammarRuleStateTransition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechGrammarRuleStateTransition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechGrammarRuleStateTransition_get_Type(This,Type) \
+ (This)->lpVtbl -> get_Type(This,Type)
+
+#define ISpeechGrammarRuleStateTransition_get_Text(This,Text) \
+ (This)->lpVtbl -> get_Text(This,Text)
+
+#define ISpeechGrammarRuleStateTransition_get_Rule(This,Rule) \
+ (This)->lpVtbl -> get_Rule(This,Rule)
+
+#define ISpeechGrammarRuleStateTransition_get_Weight(This,Weight) \
+ (This)->lpVtbl -> get_Weight(This,Weight)
+
+#define ISpeechGrammarRuleStateTransition_get_PropertyName(This,PropertyName) \
+ (This)->lpVtbl -> get_PropertyName(This,PropertyName)
+
+#define ISpeechGrammarRuleStateTransition_get_PropertyId(This,PropertyId) \
+ (This)->lpVtbl -> get_PropertyId(This,PropertyId)
+
+#define ISpeechGrammarRuleStateTransition_get_PropertyValue(This,PropertyValue) \
+ (This)->lpVtbl -> get_PropertyValue(This,PropertyValue)
+
+#define ISpeechGrammarRuleStateTransition_get_NextState(This,NextState) \
+ (This)->lpVtbl -> get_NextState(This,NextState)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Type_Proxy(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ SpeechGrammarRuleStateTransitionType *Type);
+
+
+void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Type_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Text_Proxy(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ BSTR *Text);
+
+
+void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Text_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Rule_Proxy(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ ISpeechGrammarRule **Rule);
+
+
+void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Rule_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Weight_Proxy(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ VARIANT *Weight);
+
+
+void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Weight_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_PropertyName_Proxy(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ BSTR *PropertyName);
+
+
+void __RPC_STUB ISpeechGrammarRuleStateTransition_get_PropertyName_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_PropertyId_Proxy(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ long *PropertyId);
+
+
+void __RPC_STUB ISpeechGrammarRuleStateTransition_get_PropertyId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_PropertyValue_Proxy(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ VARIANT *PropertyValue);
+
+
+void __RPC_STUB ISpeechGrammarRuleStateTransition_get_PropertyValue_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_NextState_Proxy(
+ ISpeechGrammarRuleStateTransition * This,
+ /* [retval][out] */ ISpeechGrammarRuleState **NextState);
+
+
+void __RPC_STUB ISpeechGrammarRuleStateTransition_get_NextState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
+#define __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
+
+/* interface ISpeechGrammarRuleStateTransitions */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechGrammarRuleStateTransitions;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("EABCE657-75BC-44a2-AA7F-C56476742963")
+ ISpeechGrammarRuleStateTransitions : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count(
+ /* [retval][out] */ long *Count) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Item(
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechGrammarRuleStateTransition **Transition) = 0;
+
+ virtual /* [id][restricted][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
+ /* [retval][out] */ IUnknown **EnumVARIANT) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechGrammarRuleStateTransitionsVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechGrammarRuleStateTransitions * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechGrammarRuleStateTransitions * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechGrammarRuleStateTransitions * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechGrammarRuleStateTransitions * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechGrammarRuleStateTransitions * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechGrammarRuleStateTransitions * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechGrammarRuleStateTransitions * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
+ ISpeechGrammarRuleStateTransitions * This,
+ /* [retval][out] */ long *Count);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Item )(
+ ISpeechGrammarRuleStateTransitions * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechGrammarRuleStateTransition **Transition);
+
+ /* [id][restricted][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
+ ISpeechGrammarRuleStateTransitions * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+ END_INTERFACE
+ } ISpeechGrammarRuleStateTransitionsVtbl;
+
+ interface ISpeechGrammarRuleStateTransitions
+ {
+ CONST_VTBL struct ISpeechGrammarRuleStateTransitionsVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechGrammarRuleStateTransitions_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechGrammarRuleStateTransitions_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechGrammarRuleStateTransitions_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechGrammarRuleStateTransitions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechGrammarRuleStateTransitions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechGrammarRuleStateTransitions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechGrammarRuleStateTransitions_get_Count(This,Count) \
+ (This)->lpVtbl -> get_Count(This,Count)
+
+#define ISpeechGrammarRuleStateTransitions_Item(This,Index,Transition) \
+ (This)->lpVtbl -> Item(This,Index,Transition)
+
+#define ISpeechGrammarRuleStateTransitions_get__NewEnum(This,EnumVARIANT) \
+ (This)->lpVtbl -> get__NewEnum(This,EnumVARIANT)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransitions_get_Count_Proxy(
+ ISpeechGrammarRuleStateTransitions * This,
+ /* [retval][out] */ long *Count);
+
+
+void __RPC_STUB ISpeechGrammarRuleStateTransitions_get_Count_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransitions_Item_Proxy(
+ ISpeechGrammarRuleStateTransitions * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechGrammarRuleStateTransition **Transition);
+
+
+void __RPC_STUB ISpeechGrammarRuleStateTransitions_Item_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][restricted][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransitions_get__NewEnum_Proxy(
+ ISpeechGrammarRuleStateTransitions * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+
+void __RPC_STUB ISpeechGrammarRuleStateTransitions_get__NewEnum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
+#define __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
+
+/* interface ISpeechTextSelectionInformation */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechTextSelectionInformation;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("3B9C7E7A-6EEE-4DED-9092-11657279ADBE")
+ ISpeechTextSelectionInformation : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_ActiveOffset(
+ /* [in] */ long ActiveOffset) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveOffset(
+ /* [retval][out] */ long *ActiveOffset) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_ActiveLength(
+ /* [in] */ long ActiveLength) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveLength(
+ /* [retval][out] */ long *ActiveLength) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_SelectionOffset(
+ /* [in] */ long SelectionOffset) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_SelectionOffset(
+ /* [retval][out] */ long *SelectionOffset) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_SelectionLength(
+ /* [in] */ long SelectionLength) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_SelectionLength(
+ /* [retval][out] */ long *SelectionLength) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechTextSelectionInformationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechTextSelectionInformation * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechTextSelectionInformation * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechTextSelectionInformation * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechTextSelectionInformation * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechTextSelectionInformation * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechTextSelectionInformation * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechTextSelectionInformation * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ActiveOffset )(
+ ISpeechTextSelectionInformation * This,
+ /* [in] */ long ActiveOffset);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveOffset )(
+ ISpeechTextSelectionInformation * This,
+ /* [retval][out] */ long *ActiveOffset);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ActiveLength )(
+ ISpeechTextSelectionInformation * This,
+ /* [in] */ long ActiveLength);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveLength )(
+ ISpeechTextSelectionInformation * This,
+ /* [retval][out] */ long *ActiveLength);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SelectionOffset )(
+ ISpeechTextSelectionInformation * This,
+ /* [in] */ long SelectionOffset);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SelectionOffset )(
+ ISpeechTextSelectionInformation * This,
+ /* [retval][out] */ long *SelectionOffset);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SelectionLength )(
+ ISpeechTextSelectionInformation * This,
+ /* [in] */ long SelectionLength);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SelectionLength )(
+ ISpeechTextSelectionInformation * This,
+ /* [retval][out] */ long *SelectionLength);
+
+ END_INTERFACE
+ } ISpeechTextSelectionInformationVtbl;
+
+ interface ISpeechTextSelectionInformation
+ {
+ CONST_VTBL struct ISpeechTextSelectionInformationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechTextSelectionInformation_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechTextSelectionInformation_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechTextSelectionInformation_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechTextSelectionInformation_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechTextSelectionInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechTextSelectionInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechTextSelectionInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechTextSelectionInformation_put_ActiveOffset(This,ActiveOffset) \
+ (This)->lpVtbl -> put_ActiveOffset(This,ActiveOffset)
+
+#define ISpeechTextSelectionInformation_get_ActiveOffset(This,ActiveOffset) \
+ (This)->lpVtbl -> get_ActiveOffset(This,ActiveOffset)
+
+#define ISpeechTextSelectionInformation_put_ActiveLength(This,ActiveLength) \
+ (This)->lpVtbl -> put_ActiveLength(This,ActiveLength)
+
+#define ISpeechTextSelectionInformation_get_ActiveLength(This,ActiveLength) \
+ (This)->lpVtbl -> get_ActiveLength(This,ActiveLength)
+
+#define ISpeechTextSelectionInformation_put_SelectionOffset(This,SelectionOffset) \
+ (This)->lpVtbl -> put_SelectionOffset(This,SelectionOffset)
+
+#define ISpeechTextSelectionInformation_get_SelectionOffset(This,SelectionOffset) \
+ (This)->lpVtbl -> get_SelectionOffset(This,SelectionOffset)
+
+#define ISpeechTextSelectionInformation_put_SelectionLength(This,SelectionLength) \
+ (This)->lpVtbl -> put_SelectionLength(This,SelectionLength)
+
+#define ISpeechTextSelectionInformation_get_SelectionLength(This,SelectionLength) \
+ (This)->lpVtbl -> get_SelectionLength(This,SelectionLength)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_ActiveOffset_Proxy(
+ ISpeechTextSelectionInformation * This,
+ /* [in] */ long ActiveOffset);
+
+
+void __RPC_STUB ISpeechTextSelectionInformation_put_ActiveOffset_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_ActiveOffset_Proxy(
+ ISpeechTextSelectionInformation * This,
+ /* [retval][out] */ long *ActiveOffset);
+
+
+void __RPC_STUB ISpeechTextSelectionInformation_get_ActiveOffset_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_ActiveLength_Proxy(
+ ISpeechTextSelectionInformation * This,
+ /* [in] */ long ActiveLength);
+
+
+void __RPC_STUB ISpeechTextSelectionInformation_put_ActiveLength_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_ActiveLength_Proxy(
+ ISpeechTextSelectionInformation * This,
+ /* [retval][out] */ long *ActiveLength);
+
+
+void __RPC_STUB ISpeechTextSelectionInformation_get_ActiveLength_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_SelectionOffset_Proxy(
+ ISpeechTextSelectionInformation * This,
+ /* [in] */ long SelectionOffset);
+
+
+void __RPC_STUB ISpeechTextSelectionInformation_put_SelectionOffset_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_SelectionOffset_Proxy(
+ ISpeechTextSelectionInformation * This,
+ /* [retval][out] */ long *SelectionOffset);
+
+
+void __RPC_STUB ISpeechTextSelectionInformation_get_SelectionOffset_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_SelectionLength_Proxy(
+ ISpeechTextSelectionInformation * This,
+ /* [in] */ long SelectionLength);
+
+
+void __RPC_STUB ISpeechTextSelectionInformation_put_SelectionLength_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_SelectionLength_Proxy(
+ ISpeechTextSelectionInformation * This,
+ /* [retval][out] */ long *SelectionLength);
+
+
+void __RPC_STUB ISpeechTextSelectionInformation_get_SelectionLength_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechTextSelectionInformation_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechRecoResult_INTERFACE_DEFINED__
+#define __ISpeechRecoResult_INTERFACE_DEFINED__
+
+/* interface ISpeechRecoResult */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechRecoResult;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("ED2879CF-CED9-4ee6-A534-DE0191D5468D")
+ ISpeechRecoResult : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_RecoContext(
+ /* [retval][out] */ ISpeechRecoContext **RecoContext) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Times(
+ /* [retval][out] */ ISpeechRecoResultTimes **Times) = 0;
+
+ virtual /* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE putref_AudioFormat(
+ /* [in] */ ISpeechAudioFormat *Format) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AudioFormat(
+ /* [retval][out] */ ISpeechAudioFormat **Format) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PhraseInfo(
+ /* [retval][out] */ ISpeechPhraseInfo **PhraseInfo) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Alternates(
+ /* [in] */ long RequestCount,
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [retval][out] */ ISpeechPhraseAlternates **Alternates) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Audio(
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [retval][out] */ ISpeechMemoryStream **Stream) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE SpeakAudio(
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [defaultvalue][in] */ SpeechVoiceSpeakFlags Flags,
+ /* [retval][out] */ long *StreamNumber) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE SaveToMemory(
+ /* [retval][out] */ VARIANT *ResultBlock) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE DiscardResultInfo(
+ /* [in] */ SpeechDiscardType ValueTypes) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechRecoResultVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechRecoResult * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechRecoResult * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechRecoResult * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechRecoResult * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechRecoResult * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechRecoResult * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechRecoResult * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecoContext )(
+ ISpeechRecoResult * This,
+ /* [retval][out] */ ISpeechRecoContext **RecoContext);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Times )(
+ ISpeechRecoResult * This,
+ /* [retval][out] */ ISpeechRecoResultTimes **Times);
+
+ /* [id][helpstring][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_AudioFormat )(
+ ISpeechRecoResult * This,
+ /* [in] */ ISpeechAudioFormat *Format);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioFormat )(
+ ISpeechRecoResult * This,
+ /* [retval][out] */ ISpeechAudioFormat **Format);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PhraseInfo )(
+ ISpeechRecoResult * This,
+ /* [retval][out] */ ISpeechPhraseInfo **PhraseInfo);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Alternates )(
+ ISpeechRecoResult * This,
+ /* [in] */ long RequestCount,
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [retval][out] */ ISpeechPhraseAlternates **Alternates);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Audio )(
+ ISpeechRecoResult * This,
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [retval][out] */ ISpeechMemoryStream **Stream);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SpeakAudio )(
+ ISpeechRecoResult * This,
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [defaultvalue][in] */ SpeechVoiceSpeakFlags Flags,
+ /* [retval][out] */ long *StreamNumber);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SaveToMemory )(
+ ISpeechRecoResult * This,
+ /* [retval][out] */ VARIANT *ResultBlock);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *DiscardResultInfo )(
+ ISpeechRecoResult * This,
+ /* [in] */ SpeechDiscardType ValueTypes);
+
+ END_INTERFACE
+ } ISpeechRecoResultVtbl;
+
+ interface ISpeechRecoResult
+ {
+ CONST_VTBL struct ISpeechRecoResultVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechRecoResult_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechRecoResult_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechRecoResult_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechRecoResult_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechRecoResult_get_RecoContext(This,RecoContext) \
+ (This)->lpVtbl -> get_RecoContext(This,RecoContext)
+
+#define ISpeechRecoResult_get_Times(This,Times) \
+ (This)->lpVtbl -> get_Times(This,Times)
+
+#define ISpeechRecoResult_putref_AudioFormat(This,Format) \
+ (This)->lpVtbl -> putref_AudioFormat(This,Format)
+
+#define ISpeechRecoResult_get_AudioFormat(This,Format) \
+ (This)->lpVtbl -> get_AudioFormat(This,Format)
+
+#define ISpeechRecoResult_get_PhraseInfo(This,PhraseInfo) \
+ (This)->lpVtbl -> get_PhraseInfo(This,PhraseInfo)
+
+#define ISpeechRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) \
+ (This)->lpVtbl -> Alternates(This,RequestCount,StartElement,Elements,Alternates)
+
+#define ISpeechRecoResult_Audio(This,StartElement,Elements,Stream) \
+ (This)->lpVtbl -> Audio(This,StartElement,Elements,Stream)
+
+#define ISpeechRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) \
+ (This)->lpVtbl -> SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
+
+#define ISpeechRecoResult_SaveToMemory(This,ResultBlock) \
+ (This)->lpVtbl -> SaveToMemory(This,ResultBlock)
+
+#define ISpeechRecoResult_DiscardResultInfo(This,ValueTypes) \
+ (This)->lpVtbl -> DiscardResultInfo(This,ValueTypes)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_RecoContext_Proxy(
+ ISpeechRecoResult * This,
+ /* [retval][out] */ ISpeechRecoContext **RecoContext);
+
+
+void __RPC_STUB ISpeechRecoResult_get_RecoContext_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_Times_Proxy(
+ ISpeechRecoResult * This,
+ /* [retval][out] */ ISpeechRecoResultTimes **Times);
+
+
+void __RPC_STUB ISpeechRecoResult_get_Times_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propputref] */ HRESULT STDMETHODCALLTYPE ISpeechRecoResult_putref_AudioFormat_Proxy(
+ ISpeechRecoResult * This,
+ /* [in] */ ISpeechAudioFormat *Format);
+
+
+void __RPC_STUB ISpeechRecoResult_putref_AudioFormat_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_AudioFormat_Proxy(
+ ISpeechRecoResult * This,
+ /* [retval][out] */ ISpeechAudioFormat **Format);
+
+
+void __RPC_STUB ISpeechRecoResult_get_AudioFormat_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_PhraseInfo_Proxy(
+ ISpeechRecoResult * This,
+ /* [retval][out] */ ISpeechPhraseInfo **PhraseInfo);
+
+
+void __RPC_STUB ISpeechRecoResult_get_PhraseInfo_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoResult_Alternates_Proxy(
+ ISpeechRecoResult * This,
+ /* [in] */ long RequestCount,
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [retval][out] */ ISpeechPhraseAlternates **Alternates);
+
+
+void __RPC_STUB ISpeechRecoResult_Alternates_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoResult_Audio_Proxy(
+ ISpeechRecoResult * This,
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [retval][out] */ ISpeechMemoryStream **Stream);
+
+
+void __RPC_STUB ISpeechRecoResult_Audio_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoResult_SpeakAudio_Proxy(
+ ISpeechRecoResult * This,
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [defaultvalue][in] */ SpeechVoiceSpeakFlags Flags,
+ /* [retval][out] */ long *StreamNumber);
+
+
+void __RPC_STUB ISpeechRecoResult_SpeakAudio_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoResult_SaveToMemory_Proxy(
+ ISpeechRecoResult * This,
+ /* [retval][out] */ VARIANT *ResultBlock);
+
+
+void __RPC_STUB ISpeechRecoResult_SaveToMemory_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechRecoResult_DiscardResultInfo_Proxy(
+ ISpeechRecoResult * This,
+ /* [in] */ SpeechDiscardType ValueTypes);
+
+
+void __RPC_STUB ISpeechRecoResult_DiscardResultInfo_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechRecoResult_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechRecoResultTimes_INTERFACE_DEFINED__
+#define __ISpeechRecoResultTimes_INTERFACE_DEFINED__
+
+/* interface ISpeechRecoResultTimes */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechRecoResultTimes;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("62B3B8FB-F6E7-41be-BDCB-056B1C29EFC0")
+ ISpeechRecoResultTimes : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_StreamTime(
+ /* [retval][out] */ VARIANT *Time) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Length(
+ /* [retval][out] */ VARIANT *Length) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_TickCount(
+ /* [retval][out] */ long *TickCount) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_OffsetFromStart(
+ /* [retval][out] */ VARIANT *OffsetFromStart) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechRecoResultTimesVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechRecoResultTimes * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechRecoResultTimes * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechRecoResultTimes * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechRecoResultTimes * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechRecoResultTimes * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechRecoResultTimes * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechRecoResultTimes * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_StreamTime )(
+ ISpeechRecoResultTimes * This,
+ /* [retval][out] */ VARIANT *Time);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Length )(
+ ISpeechRecoResultTimes * This,
+ /* [retval][out] */ VARIANT *Length);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TickCount )(
+ ISpeechRecoResultTimes * This,
+ /* [retval][out] */ long *TickCount);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OffsetFromStart )(
+ ISpeechRecoResultTimes * This,
+ /* [retval][out] */ VARIANT *OffsetFromStart);
+
+ END_INTERFACE
+ } ISpeechRecoResultTimesVtbl;
+
+ interface ISpeechRecoResultTimes
+ {
+ CONST_VTBL struct ISpeechRecoResultTimesVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechRecoResultTimes_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechRecoResultTimes_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechRecoResultTimes_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechRecoResultTimes_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechRecoResultTimes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechRecoResultTimes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechRecoResultTimes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechRecoResultTimes_get_StreamTime(This,Time) \
+ (This)->lpVtbl -> get_StreamTime(This,Time)
+
+#define ISpeechRecoResultTimes_get_Length(This,Length) \
+ (This)->lpVtbl -> get_Length(This,Length)
+
+#define ISpeechRecoResultTimes_get_TickCount(This,TickCount) \
+ (This)->lpVtbl -> get_TickCount(This,TickCount)
+
+#define ISpeechRecoResultTimes_get_OffsetFromStart(This,OffsetFromStart) \
+ (This)->lpVtbl -> get_OffsetFromStart(This,OffsetFromStart)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_StreamTime_Proxy(
+ ISpeechRecoResultTimes * This,
+ /* [retval][out] */ VARIANT *Time);
+
+
+void __RPC_STUB ISpeechRecoResultTimes_get_StreamTime_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_Length_Proxy(
+ ISpeechRecoResultTimes * This,
+ /* [retval][out] */ VARIANT *Length);
+
+
+void __RPC_STUB ISpeechRecoResultTimes_get_Length_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_TickCount_Proxy(
+ ISpeechRecoResultTimes * This,
+ /* [retval][out] */ long *TickCount);
+
+
+void __RPC_STUB ISpeechRecoResultTimes_get_TickCount_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_OffsetFromStart_Proxy(
+ ISpeechRecoResultTimes * This,
+ /* [retval][out] */ VARIANT *OffsetFromStart);
+
+
+void __RPC_STUB ISpeechRecoResultTimes_get_OffsetFromStart_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechRecoResultTimes_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseAlternate_INTERFACE_DEFINED__
+#define __ISpeechPhraseAlternate_INTERFACE_DEFINED__
+
+/* interface ISpeechPhraseAlternate */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechPhraseAlternate;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("27864A2A-2B9F-4cb8-92D3-0D2722FD1E73")
+ ISpeechPhraseAlternate : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_RecoResult(
+ /* [retval][out] */ ISpeechRecoResult **RecoResult) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_StartElementInResult(
+ /* [retval][out] */ long *StartElement) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_NumberOfElementsInResult(
+ /* [retval][out] */ long *NumberOfElements) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PhraseInfo(
+ /* [retval][out] */ ISpeechPhraseInfo **PhraseInfo) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Commit( void) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechPhraseAlternateVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechPhraseAlternate * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechPhraseAlternate * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechPhraseAlternate * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechPhraseAlternate * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechPhraseAlternate * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechPhraseAlternate * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechPhraseAlternate * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecoResult )(
+ ISpeechPhraseAlternate * This,
+ /* [retval][out] */ ISpeechRecoResult **RecoResult);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_StartElementInResult )(
+ ISpeechPhraseAlternate * This,
+ /* [retval][out] */ long *StartElement);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NumberOfElementsInResult )(
+ ISpeechPhraseAlternate * This,
+ /* [retval][out] */ long *NumberOfElements);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PhraseInfo )(
+ ISpeechPhraseAlternate * This,
+ /* [retval][out] */ ISpeechPhraseInfo **PhraseInfo);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Commit )(
+ ISpeechPhraseAlternate * This);
+
+ END_INTERFACE
+ } ISpeechPhraseAlternateVtbl;
+
+ interface ISpeechPhraseAlternate
+ {
+ CONST_VTBL struct ISpeechPhraseAlternateVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechPhraseAlternate_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechPhraseAlternate_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechPhraseAlternate_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechPhraseAlternate_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechPhraseAlternate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechPhraseAlternate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechPhraseAlternate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechPhraseAlternate_get_RecoResult(This,RecoResult) \
+ (This)->lpVtbl -> get_RecoResult(This,RecoResult)
+
+#define ISpeechPhraseAlternate_get_StartElementInResult(This,StartElement) \
+ (This)->lpVtbl -> get_StartElementInResult(This,StartElement)
+
+#define ISpeechPhraseAlternate_get_NumberOfElementsInResult(This,NumberOfElements) \
+ (This)->lpVtbl -> get_NumberOfElementsInResult(This,NumberOfElements)
+
+#define ISpeechPhraseAlternate_get_PhraseInfo(This,PhraseInfo) \
+ (This)->lpVtbl -> get_PhraseInfo(This,PhraseInfo)
+
+#define ISpeechPhraseAlternate_Commit(This) \
+ (This)->lpVtbl -> Commit(This)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_RecoResult_Proxy(
+ ISpeechPhraseAlternate * This,
+ /* [retval][out] */ ISpeechRecoResult **RecoResult);
+
+
+void __RPC_STUB ISpeechPhraseAlternate_get_RecoResult_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_StartElementInResult_Proxy(
+ ISpeechPhraseAlternate * This,
+ /* [retval][out] */ long *StartElement);
+
+
+void __RPC_STUB ISpeechPhraseAlternate_get_StartElementInResult_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_NumberOfElementsInResult_Proxy(
+ ISpeechPhraseAlternate * This,
+ /* [retval][out] */ long *NumberOfElements);
+
+
+void __RPC_STUB ISpeechPhraseAlternate_get_NumberOfElementsInResult_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_PhraseInfo_Proxy(
+ ISpeechPhraseAlternate * This,
+ /* [retval][out] */ ISpeechPhraseInfo **PhraseInfo);
+
+
+void __RPC_STUB ISpeechPhraseAlternate_get_PhraseInfo_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_Commit_Proxy(
+ ISpeechPhraseAlternate * This);
+
+
+void __RPC_STUB ISpeechPhraseAlternate_Commit_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechPhraseAlternate_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseAlternates_INTERFACE_DEFINED__
+#define __ISpeechPhraseAlternates_INTERFACE_DEFINED__
+
+/* interface ISpeechPhraseAlternates */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechPhraseAlternates;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("B238B6D5-F276-4c3d-A6C1-2974801C3CC2")
+ ISpeechPhraseAlternates : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count(
+ /* [retval][out] */ long *Count) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Item(
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseAlternate **PhraseAlternate) = 0;
+
+ virtual /* [id][restricted][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
+ /* [retval][out] */ IUnknown **EnumVARIANT) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechPhraseAlternatesVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechPhraseAlternates * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechPhraseAlternates * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechPhraseAlternates * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechPhraseAlternates * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechPhraseAlternates * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechPhraseAlternates * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechPhraseAlternates * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
+ ISpeechPhraseAlternates * This,
+ /* [retval][out] */ long *Count);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Item )(
+ ISpeechPhraseAlternates * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseAlternate **PhraseAlternate);
+
+ /* [id][restricted][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
+ ISpeechPhraseAlternates * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+ END_INTERFACE
+ } ISpeechPhraseAlternatesVtbl;
+
+ interface ISpeechPhraseAlternates
+ {
+ CONST_VTBL struct ISpeechPhraseAlternatesVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechPhraseAlternates_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechPhraseAlternates_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechPhraseAlternates_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechPhraseAlternates_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechPhraseAlternates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechPhraseAlternates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechPhraseAlternates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechPhraseAlternates_get_Count(This,Count) \
+ (This)->lpVtbl -> get_Count(This,Count)
+
+#define ISpeechPhraseAlternates_Item(This,Index,PhraseAlternate) \
+ (This)->lpVtbl -> Item(This,Index,PhraseAlternate)
+
+#define ISpeechPhraseAlternates_get__NewEnum(This,EnumVARIANT) \
+ (This)->lpVtbl -> get__NewEnum(This,EnumVARIANT)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternates_get_Count_Proxy(
+ ISpeechPhraseAlternates * This,
+ /* [retval][out] */ long *Count);
+
+
+void __RPC_STUB ISpeechPhraseAlternates_get_Count_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternates_Item_Proxy(
+ ISpeechPhraseAlternates * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseAlternate **PhraseAlternate);
+
+
+void __RPC_STUB ISpeechPhraseAlternates_Item_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][restricted][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternates_get__NewEnum_Proxy(
+ ISpeechPhraseAlternates * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+
+void __RPC_STUB ISpeechPhraseAlternates_get__NewEnum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechPhraseAlternates_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseInfo_INTERFACE_DEFINED__
+#define __ISpeechPhraseInfo_INTERFACE_DEFINED__
+
+/* interface ISpeechPhraseInfo */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechPhraseInfo;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("961559CF-4E67-4662-8BF0-D93F1FCD61B3")
+ ISpeechPhraseInfo : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_LanguageId(
+ /* [retval][out] */ long *LanguageId) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_GrammarId(
+ /* [retval][out] */ VARIANT *GrammarId) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_StartTime(
+ /* [retval][out] */ VARIANT *StartTime) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AudioStreamPosition(
+ /* [retval][out] */ VARIANT *AudioStreamPosition) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
+ /* [retval][out] */ long *pAudioSizeBytes) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
+ /* [retval][out] */ long *RetainedSizeBytes) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
+ /* [retval][out] */ long *AudioSizeTime) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Rule(
+ /* [retval][out] */ ISpeechPhraseRule **Rule) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Properties(
+ /* [retval][out] */ ISpeechPhraseProperties **Properties) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Elements(
+ /* [retval][out] */ ISpeechPhraseElements **Elements) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Replacements(
+ /* [retval][out] */ ISpeechPhraseReplacements **Replacements) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_EngineId(
+ /* [retval][out] */ BSTR *EngineIdGuid) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_EnginePrivateData(
+ /* [retval][out] */ VARIANT *PrivateData) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE SaveToMemory(
+ /* [retval][out] */ VARIANT *PhraseBlock) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetText(
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [defaultvalue][in] */ VARIANT_BOOL UseReplacements,
+ /* [retval][out] */ BSTR *Text) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetDisplayAttributes(
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [defaultvalue][in] */ VARIANT_BOOL UseReplacements,
+ /* [retval][out] */ SpeechDisplayAttributes *DisplayAttributes) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechPhraseInfoVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechPhraseInfo * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechPhraseInfo * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechPhraseInfo * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechPhraseInfo * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechPhraseInfo * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechPhraseInfo * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechPhraseInfo * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LanguageId )(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ long *LanguageId);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_GrammarId )(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ VARIANT *GrammarId);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_StartTime )(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ VARIANT *StartTime);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioStreamPosition )(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ VARIANT *AudioStreamPosition);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioSizeBytes )(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ long *pAudioSizeBytes);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RetainedSizeBytes )(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ long *RetainedSizeBytes);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioSizeTime )(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ long *AudioSizeTime);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Rule )(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ ISpeechPhraseRule **Rule);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Properties )(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ ISpeechPhraseProperties **Properties);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Elements )(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ ISpeechPhraseElements **Elements);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Replacements )(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ ISpeechPhraseReplacements **Replacements);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EngineId )(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ BSTR *EngineIdGuid);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnginePrivateData )(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ VARIANT *PrivateData);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *SaveToMemory )(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ VARIANT *PhraseBlock);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetText )(
+ ISpeechPhraseInfo * This,
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [defaultvalue][in] */ VARIANT_BOOL UseReplacements,
+ /* [retval][out] */ BSTR *Text);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDisplayAttributes )(
+ ISpeechPhraseInfo * This,
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [defaultvalue][in] */ VARIANT_BOOL UseReplacements,
+ /* [retval][out] */ SpeechDisplayAttributes *DisplayAttributes);
+
+ END_INTERFACE
+ } ISpeechPhraseInfoVtbl;
+
+ interface ISpeechPhraseInfo
+ {
+ CONST_VTBL struct ISpeechPhraseInfoVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechPhraseInfo_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechPhraseInfo_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechPhraseInfo_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechPhraseInfo_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechPhraseInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechPhraseInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechPhraseInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechPhraseInfo_get_LanguageId(This,LanguageId) \
+ (This)->lpVtbl -> get_LanguageId(This,LanguageId)
+
+#define ISpeechPhraseInfo_get_GrammarId(This,GrammarId) \
+ (This)->lpVtbl -> get_GrammarId(This,GrammarId)
+
+#define ISpeechPhraseInfo_get_StartTime(This,StartTime) \
+ (This)->lpVtbl -> get_StartTime(This,StartTime)
+
+#define ISpeechPhraseInfo_get_AudioStreamPosition(This,AudioStreamPosition) \
+ (This)->lpVtbl -> get_AudioStreamPosition(This,AudioStreamPosition)
+
+#define ISpeechPhraseInfo_get_AudioSizeBytes(This,pAudioSizeBytes) \
+ (This)->lpVtbl -> get_AudioSizeBytes(This,pAudioSizeBytes)
+
+#define ISpeechPhraseInfo_get_RetainedSizeBytes(This,RetainedSizeBytes) \
+ (This)->lpVtbl -> get_RetainedSizeBytes(This,RetainedSizeBytes)
+
+#define ISpeechPhraseInfo_get_AudioSizeTime(This,AudioSizeTime) \
+ (This)->lpVtbl -> get_AudioSizeTime(This,AudioSizeTime)
+
+#define ISpeechPhraseInfo_get_Rule(This,Rule) \
+ (This)->lpVtbl -> get_Rule(This,Rule)
+
+#define ISpeechPhraseInfo_get_Properties(This,Properties) \
+ (This)->lpVtbl -> get_Properties(This,Properties)
+
+#define ISpeechPhraseInfo_get_Elements(This,Elements) \
+ (This)->lpVtbl -> get_Elements(This,Elements)
+
+#define ISpeechPhraseInfo_get_Replacements(This,Replacements) \
+ (This)->lpVtbl -> get_Replacements(This,Replacements)
+
+#define ISpeechPhraseInfo_get_EngineId(This,EngineIdGuid) \
+ (This)->lpVtbl -> get_EngineId(This,EngineIdGuid)
+
+#define ISpeechPhraseInfo_get_EnginePrivateData(This,PrivateData) \
+ (This)->lpVtbl -> get_EnginePrivateData(This,PrivateData)
+
+#define ISpeechPhraseInfo_SaveToMemory(This,PhraseBlock) \
+ (This)->lpVtbl -> SaveToMemory(This,PhraseBlock)
+
+#define ISpeechPhraseInfo_GetText(This,StartElement,Elements,UseReplacements,Text) \
+ (This)->lpVtbl -> GetText(This,StartElement,Elements,UseReplacements,Text)
+
+#define ISpeechPhraseInfo_GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes) \
+ (This)->lpVtbl -> GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_LanguageId_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ long *LanguageId);
+
+
+void __RPC_STUB ISpeechPhraseInfo_get_LanguageId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_GrammarId_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ VARIANT *GrammarId);
+
+
+void __RPC_STUB ISpeechPhraseInfo_get_GrammarId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_StartTime_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ VARIANT *StartTime);
+
+
+void __RPC_STUB ISpeechPhraseInfo_get_StartTime_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_AudioStreamPosition_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ VARIANT *AudioStreamPosition);
+
+
+void __RPC_STUB ISpeechPhraseInfo_get_AudioStreamPosition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_AudioSizeBytes_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ long *pAudioSizeBytes);
+
+
+void __RPC_STUB ISpeechPhraseInfo_get_AudioSizeBytes_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_RetainedSizeBytes_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ long *RetainedSizeBytes);
+
+
+void __RPC_STUB ISpeechPhraseInfo_get_RetainedSizeBytes_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_AudioSizeTime_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ long *AudioSizeTime);
+
+
+void __RPC_STUB ISpeechPhraseInfo_get_AudioSizeTime_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Rule_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ ISpeechPhraseRule **Rule);
+
+
+void __RPC_STUB ISpeechPhraseInfo_get_Rule_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Properties_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ ISpeechPhraseProperties **Properties);
+
+
+void __RPC_STUB ISpeechPhraseInfo_get_Properties_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Elements_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ ISpeechPhraseElements **Elements);
+
+
+void __RPC_STUB ISpeechPhraseInfo_get_Elements_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Replacements_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ ISpeechPhraseReplacements **Replacements);
+
+
+void __RPC_STUB ISpeechPhraseInfo_get_Replacements_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_EngineId_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ BSTR *EngineIdGuid);
+
+
+void __RPC_STUB ISpeechPhraseInfo_get_EngineId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_EnginePrivateData_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ VARIANT *PrivateData);
+
+
+void __RPC_STUB ISpeechPhraseInfo_get_EnginePrivateData_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_SaveToMemory_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [retval][out] */ VARIANT *PhraseBlock);
+
+
+void __RPC_STUB ISpeechPhraseInfo_SaveToMemory_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_GetText_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [defaultvalue][in] */ VARIANT_BOOL UseReplacements,
+ /* [retval][out] */ BSTR *Text);
+
+
+void __RPC_STUB ISpeechPhraseInfo_GetText_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_GetDisplayAttributes_Proxy(
+ ISpeechPhraseInfo * This,
+ /* [defaultvalue][in] */ long StartElement,
+ /* [defaultvalue][in] */ long Elements,
+ /* [defaultvalue][in] */ VARIANT_BOOL UseReplacements,
+ /* [retval][out] */ SpeechDisplayAttributes *DisplayAttributes);
+
+
+void __RPC_STUB ISpeechPhraseInfo_GetDisplayAttributes_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechPhraseInfo_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseElement_INTERFACE_DEFINED__
+#define __ISpeechPhraseElement_INTERFACE_DEFINED__
+
+/* interface ISpeechPhraseElement */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechPhraseElement;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("E6176F96-E373-4801-B223-3B62C068C0B4")
+ ISpeechPhraseElement : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AudioTimeOffset(
+ /* [retval][out] */ long *AudioTimeOffset) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
+ /* [retval][out] */ long *AudioSizeTime) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AudioStreamOffset(
+ /* [retval][out] */ long *AudioStreamOffset) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
+ /* [retval][out] */ long *AudioSizeBytes) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_RetainedStreamOffset(
+ /* [retval][out] */ long *RetainedStreamOffset) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
+ /* [retval][out] */ long *RetainedSizeBytes) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_DisplayText(
+ /* [retval][out] */ BSTR *DisplayText) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_LexicalForm(
+ /* [retval][out] */ BSTR *LexicalForm) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Pronunciation(
+ /* [retval][out] */ VARIANT *Pronunciation) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
+ /* [retval][out] */ SpeechDisplayAttributes *DisplayAttributes) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_RequiredConfidence(
+ /* [retval][out] */ SpeechEngineConfidence *RequiredConfidence) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_ActualConfidence(
+ /* [retval][out] */ SpeechEngineConfidence *ActualConfidence) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_EngineConfidence(
+ /* [retval][out] */ float *EngineConfidence) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechPhraseElementVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechPhraseElement * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechPhraseElement * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechPhraseElement * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechPhraseElement * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechPhraseElement * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechPhraseElement * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechPhraseElement * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioTimeOffset )(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ long *AudioTimeOffset);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioSizeTime )(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ long *AudioSizeTime);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioStreamOffset )(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ long *AudioStreamOffset);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioSizeBytes )(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ long *AudioSizeBytes);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RetainedStreamOffset )(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ long *RetainedStreamOffset);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RetainedSizeBytes )(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ long *RetainedSizeBytes);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayText )(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ BSTR *DisplayText);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LexicalForm )(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ BSTR *LexicalForm);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Pronunciation )(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ VARIANT *Pronunciation);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayAttributes )(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ SpeechDisplayAttributes *DisplayAttributes);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RequiredConfidence )(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ SpeechEngineConfidence *RequiredConfidence);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActualConfidence )(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ SpeechEngineConfidence *ActualConfidence);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EngineConfidence )(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ float *EngineConfidence);
+
+ END_INTERFACE
+ } ISpeechPhraseElementVtbl;
+
+ interface ISpeechPhraseElement
+ {
+ CONST_VTBL struct ISpeechPhraseElementVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechPhraseElement_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechPhraseElement_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechPhraseElement_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechPhraseElement_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechPhraseElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechPhraseElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechPhraseElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechPhraseElement_get_AudioTimeOffset(This,AudioTimeOffset) \
+ (This)->lpVtbl -> get_AudioTimeOffset(This,AudioTimeOffset)
+
+#define ISpeechPhraseElement_get_AudioSizeTime(This,AudioSizeTime) \
+ (This)->lpVtbl -> get_AudioSizeTime(This,AudioSizeTime)
+
+#define ISpeechPhraseElement_get_AudioStreamOffset(This,AudioStreamOffset) \
+ (This)->lpVtbl -> get_AudioStreamOffset(This,AudioStreamOffset)
+
+#define ISpeechPhraseElement_get_AudioSizeBytes(This,AudioSizeBytes) \
+ (This)->lpVtbl -> get_AudioSizeBytes(This,AudioSizeBytes)
+
+#define ISpeechPhraseElement_get_RetainedStreamOffset(This,RetainedStreamOffset) \
+ (This)->lpVtbl -> get_RetainedStreamOffset(This,RetainedStreamOffset)
+
+#define ISpeechPhraseElement_get_RetainedSizeBytes(This,RetainedSizeBytes) \
+ (This)->lpVtbl -> get_RetainedSizeBytes(This,RetainedSizeBytes)
+
+#define ISpeechPhraseElement_get_DisplayText(This,DisplayText) \
+ (This)->lpVtbl -> get_DisplayText(This,DisplayText)
+
+#define ISpeechPhraseElement_get_LexicalForm(This,LexicalForm) \
+ (This)->lpVtbl -> get_LexicalForm(This,LexicalForm)
+
+#define ISpeechPhraseElement_get_Pronunciation(This,Pronunciation) \
+ (This)->lpVtbl -> get_Pronunciation(This,Pronunciation)
+
+#define ISpeechPhraseElement_get_DisplayAttributes(This,DisplayAttributes) \
+ (This)->lpVtbl -> get_DisplayAttributes(This,DisplayAttributes)
+
+#define ISpeechPhraseElement_get_RequiredConfidence(This,RequiredConfidence) \
+ (This)->lpVtbl -> get_RequiredConfidence(This,RequiredConfidence)
+
+#define ISpeechPhraseElement_get_ActualConfidence(This,ActualConfidence) \
+ (This)->lpVtbl -> get_ActualConfidence(This,ActualConfidence)
+
+#define ISpeechPhraseElement_get_EngineConfidence(This,EngineConfidence) \
+ (This)->lpVtbl -> get_EngineConfidence(This,EngineConfidence)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioTimeOffset_Proxy(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ long *AudioTimeOffset);
+
+
+void __RPC_STUB ISpeechPhraseElement_get_AudioTimeOffset_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioSizeTime_Proxy(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ long *AudioSizeTime);
+
+
+void __RPC_STUB ISpeechPhraseElement_get_AudioSizeTime_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioStreamOffset_Proxy(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ long *AudioStreamOffset);
+
+
+void __RPC_STUB ISpeechPhraseElement_get_AudioStreamOffset_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioSizeBytes_Proxy(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ long *AudioSizeBytes);
+
+
+void __RPC_STUB ISpeechPhraseElement_get_AudioSizeBytes_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_RetainedStreamOffset_Proxy(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ long *RetainedStreamOffset);
+
+
+void __RPC_STUB ISpeechPhraseElement_get_RetainedStreamOffset_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_RetainedSizeBytes_Proxy(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ long *RetainedSizeBytes);
+
+
+void __RPC_STUB ISpeechPhraseElement_get_RetainedSizeBytes_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_DisplayText_Proxy(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ BSTR *DisplayText);
+
+
+void __RPC_STUB ISpeechPhraseElement_get_DisplayText_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_LexicalForm_Proxy(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ BSTR *LexicalForm);
+
+
+void __RPC_STUB ISpeechPhraseElement_get_LexicalForm_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_Pronunciation_Proxy(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ VARIANT *Pronunciation);
+
+
+void __RPC_STUB ISpeechPhraseElement_get_Pronunciation_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_DisplayAttributes_Proxy(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ SpeechDisplayAttributes *DisplayAttributes);
+
+
+void __RPC_STUB ISpeechPhraseElement_get_DisplayAttributes_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_RequiredConfidence_Proxy(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ SpeechEngineConfidence *RequiredConfidence);
+
+
+void __RPC_STUB ISpeechPhraseElement_get_RequiredConfidence_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_ActualConfidence_Proxy(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ SpeechEngineConfidence *ActualConfidence);
+
+
+void __RPC_STUB ISpeechPhraseElement_get_ActualConfidence_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_EngineConfidence_Proxy(
+ ISpeechPhraseElement * This,
+ /* [retval][out] */ float *EngineConfidence);
+
+
+void __RPC_STUB ISpeechPhraseElement_get_EngineConfidence_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechPhraseElement_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseElements_INTERFACE_DEFINED__
+#define __ISpeechPhraseElements_INTERFACE_DEFINED__
+
+/* interface ISpeechPhraseElements */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechPhraseElements;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("0626B328-3478-467d-A0B3-D0853B93DDA3")
+ ISpeechPhraseElements : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count(
+ /* [retval][out] */ long *Count) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Item(
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseElement **Element) = 0;
+
+ virtual /* [id][restricted][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
+ /* [retval][out] */ IUnknown **EnumVARIANT) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechPhraseElementsVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechPhraseElements * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechPhraseElements * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechPhraseElements * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechPhraseElements * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechPhraseElements * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechPhraseElements * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechPhraseElements * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
+ ISpeechPhraseElements * This,
+ /* [retval][out] */ long *Count);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Item )(
+ ISpeechPhraseElements * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseElement **Element);
+
+ /* [id][restricted][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
+ ISpeechPhraseElements * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+ END_INTERFACE
+ } ISpeechPhraseElementsVtbl;
+
+ interface ISpeechPhraseElements
+ {
+ CONST_VTBL struct ISpeechPhraseElementsVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechPhraseElements_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechPhraseElements_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechPhraseElements_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechPhraseElements_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechPhraseElements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechPhraseElements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechPhraseElements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechPhraseElements_get_Count(This,Count) \
+ (This)->lpVtbl -> get_Count(This,Count)
+
+#define ISpeechPhraseElements_Item(This,Index,Element) \
+ (This)->lpVtbl -> Item(This,Index,Element)
+
+#define ISpeechPhraseElements_get__NewEnum(This,EnumVARIANT) \
+ (This)->lpVtbl -> get__NewEnum(This,EnumVARIANT)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElements_get_Count_Proxy(
+ ISpeechPhraseElements * This,
+ /* [retval][out] */ long *Count);
+
+
+void __RPC_STUB ISpeechPhraseElements_get_Count_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElements_Item_Proxy(
+ ISpeechPhraseElements * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseElement **Element);
+
+
+void __RPC_STUB ISpeechPhraseElements_Item_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][restricted][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseElements_get__NewEnum_Proxy(
+ ISpeechPhraseElements * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+
+void __RPC_STUB ISpeechPhraseElements_get__NewEnum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechPhraseElements_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseReplacement_INTERFACE_DEFINED__
+#define __ISpeechPhraseReplacement_INTERFACE_DEFINED__
+
+/* interface ISpeechPhraseReplacement */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechPhraseReplacement;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("2890A410-53A7-4fb5-94EC-06D4998E3D02")
+ ISpeechPhraseReplacement : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
+ /* [retval][out] */ SpeechDisplayAttributes *DisplayAttributes) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Text(
+ /* [retval][out] */ BSTR *Text) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_FirstElement(
+ /* [retval][out] */ long *FirstElement) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_NumberOfElements(
+ /* [retval][out] */ long *NumberOfElements) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechPhraseReplacementVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechPhraseReplacement * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechPhraseReplacement * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechPhraseReplacement * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechPhraseReplacement * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechPhraseReplacement * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechPhraseReplacement * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechPhraseReplacement * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayAttributes )(
+ ISpeechPhraseReplacement * This,
+ /* [retval][out] */ SpeechDisplayAttributes *DisplayAttributes);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Text )(
+ ISpeechPhraseReplacement * This,
+ /* [retval][out] */ BSTR *Text);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FirstElement )(
+ ISpeechPhraseReplacement * This,
+ /* [retval][out] */ long *FirstElement);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NumberOfElements )(
+ ISpeechPhraseReplacement * This,
+ /* [retval][out] */ long *NumberOfElements);
+
+ END_INTERFACE
+ } ISpeechPhraseReplacementVtbl;
+
+ interface ISpeechPhraseReplacement
+ {
+ CONST_VTBL struct ISpeechPhraseReplacementVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechPhraseReplacement_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechPhraseReplacement_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechPhraseReplacement_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechPhraseReplacement_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechPhraseReplacement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechPhraseReplacement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechPhraseReplacement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechPhraseReplacement_get_DisplayAttributes(This,DisplayAttributes) \
+ (This)->lpVtbl -> get_DisplayAttributes(This,DisplayAttributes)
+
+#define ISpeechPhraseReplacement_get_Text(This,Text) \
+ (This)->lpVtbl -> get_Text(This,Text)
+
+#define ISpeechPhraseReplacement_get_FirstElement(This,FirstElement) \
+ (This)->lpVtbl -> get_FirstElement(This,FirstElement)
+
+#define ISpeechPhraseReplacement_get_NumberOfElements(This,NumberOfElements) \
+ (This)->lpVtbl -> get_NumberOfElements(This,NumberOfElements)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_DisplayAttributes_Proxy(
+ ISpeechPhraseReplacement * This,
+ /* [retval][out] */ SpeechDisplayAttributes *DisplayAttributes);
+
+
+void __RPC_STUB ISpeechPhraseReplacement_get_DisplayAttributes_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_Text_Proxy(
+ ISpeechPhraseReplacement * This,
+ /* [retval][out] */ BSTR *Text);
+
+
+void __RPC_STUB ISpeechPhraseReplacement_get_Text_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_FirstElement_Proxy(
+ ISpeechPhraseReplacement * This,
+ /* [retval][out] */ long *FirstElement);
+
+
+void __RPC_STUB ISpeechPhraseReplacement_get_FirstElement_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_NumberOfElements_Proxy(
+ ISpeechPhraseReplacement * This,
+ /* [retval][out] */ long *NumberOfElements);
+
+
+void __RPC_STUB ISpeechPhraseReplacement_get_NumberOfElements_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechPhraseReplacement_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseReplacements_INTERFACE_DEFINED__
+#define __ISpeechPhraseReplacements_INTERFACE_DEFINED__
+
+/* interface ISpeechPhraseReplacements */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechPhraseReplacements;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("38BC662F-2257-4525-959E-2069D2596C05")
+ ISpeechPhraseReplacements : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count(
+ /* [retval][out] */ long *Count) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Item(
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseReplacement **Reps) = 0;
+
+ virtual /* [id][restricted][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
+ /* [retval][out] */ IUnknown **EnumVARIANT) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechPhraseReplacementsVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechPhraseReplacements * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechPhraseReplacements * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechPhraseReplacements * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechPhraseReplacements * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechPhraseReplacements * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechPhraseReplacements * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechPhraseReplacements * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
+ ISpeechPhraseReplacements * This,
+ /* [retval][out] */ long *Count);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Item )(
+ ISpeechPhraseReplacements * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseReplacement **Reps);
+
+ /* [id][restricted][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
+ ISpeechPhraseReplacements * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+ END_INTERFACE
+ } ISpeechPhraseReplacementsVtbl;
+
+ interface ISpeechPhraseReplacements
+ {
+ CONST_VTBL struct ISpeechPhraseReplacementsVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechPhraseReplacements_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechPhraseReplacements_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechPhraseReplacements_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechPhraseReplacements_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechPhraseReplacements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechPhraseReplacements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechPhraseReplacements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechPhraseReplacements_get_Count(This,Count) \
+ (This)->lpVtbl -> get_Count(This,Count)
+
+#define ISpeechPhraseReplacements_Item(This,Index,Reps) \
+ (This)->lpVtbl -> Item(This,Index,Reps)
+
+#define ISpeechPhraseReplacements_get__NewEnum(This,EnumVARIANT) \
+ (This)->lpVtbl -> get__NewEnum(This,EnumVARIANT)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacements_get_Count_Proxy(
+ ISpeechPhraseReplacements * This,
+ /* [retval][out] */ long *Count);
+
+
+void __RPC_STUB ISpeechPhraseReplacements_get_Count_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacements_Item_Proxy(
+ ISpeechPhraseReplacements * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseReplacement **Reps);
+
+
+void __RPC_STUB ISpeechPhraseReplacements_Item_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][restricted][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacements_get__NewEnum_Proxy(
+ ISpeechPhraseReplacements * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+
+void __RPC_STUB ISpeechPhraseReplacements_get__NewEnum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechPhraseReplacements_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseProperty_INTERFACE_DEFINED__
+#define __ISpeechPhraseProperty_INTERFACE_DEFINED__
+
+/* interface ISpeechPhraseProperty */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechPhraseProperty;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("CE563D48-961E-4732-A2E1-378A42B430BE")
+ ISpeechPhraseProperty : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Name(
+ /* [retval][out] */ BSTR *Name) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Id(
+ /* [retval][out] */ long *Id) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Value(
+ /* [retval][out] */ VARIANT *Value) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_FirstElement(
+ /* [retval][out] */ long *FirstElement) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_NumberOfElements(
+ /* [retval][out] */ long *NumberOfElements) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_EngineConfidence(
+ /* [retval][out] */ float *Confidence) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Confidence(
+ /* [retval][out] */ SpeechEngineConfidence *Confidence) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Parent(
+ /* [retval][out] */ ISpeechPhraseProperty **ParentProperty) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Children(
+ /* [retval][out] */ ISpeechPhraseProperties **Children) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechPhrasePropertyVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechPhraseProperty * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechPhraseProperty * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechPhraseProperty * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechPhraseProperty * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechPhraseProperty * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechPhraseProperty * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechPhraseProperty * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ BSTR *Name);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ long *Id);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ VARIANT *Value);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FirstElement )(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ long *FirstElement);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NumberOfElements )(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ long *NumberOfElements);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EngineConfidence )(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ float *Confidence);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Confidence )(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ SpeechEngineConfidence *Confidence);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ ISpeechPhraseProperty **ParentProperty);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Children )(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ ISpeechPhraseProperties **Children);
+
+ END_INTERFACE
+ } ISpeechPhrasePropertyVtbl;
+
+ interface ISpeechPhraseProperty
+ {
+ CONST_VTBL struct ISpeechPhrasePropertyVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechPhraseProperty_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechPhraseProperty_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechPhraseProperty_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechPhraseProperty_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechPhraseProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechPhraseProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechPhraseProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechPhraseProperty_get_Name(This,Name) \
+ (This)->lpVtbl -> get_Name(This,Name)
+
+#define ISpeechPhraseProperty_get_Id(This,Id) \
+ (This)->lpVtbl -> get_Id(This,Id)
+
+#define ISpeechPhraseProperty_get_Value(This,Value) \
+ (This)->lpVtbl -> get_Value(This,Value)
+
+#define ISpeechPhraseProperty_get_FirstElement(This,FirstElement) \
+ (This)->lpVtbl -> get_FirstElement(This,FirstElement)
+
+#define ISpeechPhraseProperty_get_NumberOfElements(This,NumberOfElements) \
+ (This)->lpVtbl -> get_NumberOfElements(This,NumberOfElements)
+
+#define ISpeechPhraseProperty_get_EngineConfidence(This,Confidence) \
+ (This)->lpVtbl -> get_EngineConfidence(This,Confidence)
+
+#define ISpeechPhraseProperty_get_Confidence(This,Confidence) \
+ (This)->lpVtbl -> get_Confidence(This,Confidence)
+
+#define ISpeechPhraseProperty_get_Parent(This,ParentProperty) \
+ (This)->lpVtbl -> get_Parent(This,ParentProperty)
+
+#define ISpeechPhraseProperty_get_Children(This,Children) \
+ (This)->lpVtbl -> get_Children(This,Children)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Name_Proxy(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ BSTR *Name);
+
+
+void __RPC_STUB ISpeechPhraseProperty_get_Name_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Id_Proxy(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ long *Id);
+
+
+void __RPC_STUB ISpeechPhraseProperty_get_Id_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Value_Proxy(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ VARIANT *Value);
+
+
+void __RPC_STUB ISpeechPhraseProperty_get_Value_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_FirstElement_Proxy(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ long *FirstElement);
+
+
+void __RPC_STUB ISpeechPhraseProperty_get_FirstElement_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_NumberOfElements_Proxy(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ long *NumberOfElements);
+
+
+void __RPC_STUB ISpeechPhraseProperty_get_NumberOfElements_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_EngineConfidence_Proxy(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ float *Confidence);
+
+
+void __RPC_STUB ISpeechPhraseProperty_get_EngineConfidence_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Confidence_Proxy(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ SpeechEngineConfidence *Confidence);
+
+
+void __RPC_STUB ISpeechPhraseProperty_get_Confidence_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Parent_Proxy(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ ISpeechPhraseProperty **ParentProperty);
+
+
+void __RPC_STUB ISpeechPhraseProperty_get_Parent_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Children_Proxy(
+ ISpeechPhraseProperty * This,
+ /* [retval][out] */ ISpeechPhraseProperties **Children);
+
+
+void __RPC_STUB ISpeechPhraseProperty_get_Children_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechPhraseProperty_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseProperties_INTERFACE_DEFINED__
+#define __ISpeechPhraseProperties_INTERFACE_DEFINED__
+
+/* interface ISpeechPhraseProperties */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechPhraseProperties;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("08166B47-102E-4b23-A599-BDB98DBFD1F4")
+ ISpeechPhraseProperties : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count(
+ /* [retval][out] */ long *Count) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Item(
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseProperty **Property) = 0;
+
+ virtual /* [id][restricted][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
+ /* [retval][out] */ IUnknown **EnumVARIANT) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechPhrasePropertiesVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechPhraseProperties * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechPhraseProperties * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechPhraseProperties * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechPhraseProperties * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechPhraseProperties * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechPhraseProperties * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechPhraseProperties * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
+ ISpeechPhraseProperties * This,
+ /* [retval][out] */ long *Count);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Item )(
+ ISpeechPhraseProperties * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseProperty **Property);
+
+ /* [id][restricted][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
+ ISpeechPhraseProperties * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+ END_INTERFACE
+ } ISpeechPhrasePropertiesVtbl;
+
+ interface ISpeechPhraseProperties
+ {
+ CONST_VTBL struct ISpeechPhrasePropertiesVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechPhraseProperties_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechPhraseProperties_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechPhraseProperties_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechPhraseProperties_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechPhraseProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechPhraseProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechPhraseProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechPhraseProperties_get_Count(This,Count) \
+ (This)->lpVtbl -> get_Count(This,Count)
+
+#define ISpeechPhraseProperties_Item(This,Index,Property) \
+ (This)->lpVtbl -> Item(This,Index,Property)
+
+#define ISpeechPhraseProperties_get__NewEnum(This,EnumVARIANT) \
+ (This)->lpVtbl -> get__NewEnum(This,EnumVARIANT)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseProperties_get_Count_Proxy(
+ ISpeechPhraseProperties * This,
+ /* [retval][out] */ long *Count);
+
+
+void __RPC_STUB ISpeechPhraseProperties_get_Count_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseProperties_Item_Proxy(
+ ISpeechPhraseProperties * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseProperty **Property);
+
+
+void __RPC_STUB ISpeechPhraseProperties_Item_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][restricted][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseProperties_get__NewEnum_Proxy(
+ ISpeechPhraseProperties * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+
+void __RPC_STUB ISpeechPhraseProperties_get__NewEnum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechPhraseProperties_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseRule_INTERFACE_DEFINED__
+#define __ISpeechPhraseRule_INTERFACE_DEFINED__
+
+/* interface ISpeechPhraseRule */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechPhraseRule;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A7BFE112-A4A0-48d9-B602-C313843F6964")
+ ISpeechPhraseRule : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Name(
+ /* [retval][out] */ BSTR *Name) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Id(
+ /* [retval][out] */ long *Id) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_FirstElement(
+ /* [retval][out] */ long *FirstElement) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_NumberOfElements(
+ /* [retval][out] */ long *NumberOfElements) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Parent(
+ /* [retval][out] */ ISpeechPhraseRule **Parent) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Children(
+ /* [retval][out] */ ISpeechPhraseRules **Children) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Confidence(
+ /* [retval][out] */ SpeechEngineConfidence *ActualConfidence) = 0;
+
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_EngineConfidence(
+ /* [retval][out] */ float *EngineConfidence) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechPhraseRuleVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechPhraseRule * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechPhraseRule * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechPhraseRule * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechPhraseRule * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechPhraseRule * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechPhraseRule * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechPhraseRule * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ BSTR *Name);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ long *Id);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FirstElement )(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ long *FirstElement);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NumberOfElements )(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ long *NumberOfElements);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ ISpeechPhraseRule **Parent);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Children )(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ ISpeechPhraseRules **Children);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Confidence )(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ SpeechEngineConfidence *ActualConfidence);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EngineConfidence )(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ float *EngineConfidence);
+
+ END_INTERFACE
+ } ISpeechPhraseRuleVtbl;
+
+ interface ISpeechPhraseRule
+ {
+ CONST_VTBL struct ISpeechPhraseRuleVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechPhraseRule_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechPhraseRule_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechPhraseRule_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechPhraseRule_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechPhraseRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechPhraseRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechPhraseRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechPhraseRule_get_Name(This,Name) \
+ (This)->lpVtbl -> get_Name(This,Name)
+
+#define ISpeechPhraseRule_get_Id(This,Id) \
+ (This)->lpVtbl -> get_Id(This,Id)
+
+#define ISpeechPhraseRule_get_FirstElement(This,FirstElement) \
+ (This)->lpVtbl -> get_FirstElement(This,FirstElement)
+
+#define ISpeechPhraseRule_get_NumberOfElements(This,NumberOfElements) \
+ (This)->lpVtbl -> get_NumberOfElements(This,NumberOfElements)
+
+#define ISpeechPhraseRule_get_Parent(This,Parent) \
+ (This)->lpVtbl -> get_Parent(This,Parent)
+
+#define ISpeechPhraseRule_get_Children(This,Children) \
+ (This)->lpVtbl -> get_Children(This,Children)
+
+#define ISpeechPhraseRule_get_Confidence(This,ActualConfidence) \
+ (This)->lpVtbl -> get_Confidence(This,ActualConfidence)
+
+#define ISpeechPhraseRule_get_EngineConfidence(This,EngineConfidence) \
+ (This)->lpVtbl -> get_EngineConfidence(This,EngineConfidence)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Name_Proxy(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ BSTR *Name);
+
+
+void __RPC_STUB ISpeechPhraseRule_get_Name_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Id_Proxy(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ long *Id);
+
+
+void __RPC_STUB ISpeechPhraseRule_get_Id_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_FirstElement_Proxy(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ long *FirstElement);
+
+
+void __RPC_STUB ISpeechPhraseRule_get_FirstElement_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_NumberOfElements_Proxy(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ long *NumberOfElements);
+
+
+void __RPC_STUB ISpeechPhraseRule_get_NumberOfElements_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Parent_Proxy(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ ISpeechPhraseRule **Parent);
+
+
+void __RPC_STUB ISpeechPhraseRule_get_Parent_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Children_Proxy(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ ISpeechPhraseRules **Children);
+
+
+void __RPC_STUB ISpeechPhraseRule_get_Children_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Confidence_Proxy(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ SpeechEngineConfidence *ActualConfidence);
+
+
+void __RPC_STUB ISpeechPhraseRule_get_Confidence_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_EngineConfidence_Proxy(
+ ISpeechPhraseRule * This,
+ /* [retval][out] */ float *EngineConfidence);
+
+
+void __RPC_STUB ISpeechPhraseRule_get_EngineConfidence_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechPhraseRule_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechPhraseRules_INTERFACE_DEFINED__
+#define __ISpeechPhraseRules_INTERFACE_DEFINED__
+
+/* interface ISpeechPhraseRules */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechPhraseRules;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("9047D593-01DD-4b72-81A3-E4A0CA69F407")
+ ISpeechPhraseRules : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count(
+ /* [retval][out] */ long *Count) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE Item(
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseRule **Rule) = 0;
+
+ virtual /* [id][restricted][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
+ /* [retval][out] */ IUnknown **EnumVARIANT) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechPhraseRulesVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechPhraseRules * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechPhraseRules * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechPhraseRules * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechPhraseRules * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechPhraseRules * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechPhraseRules * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechPhraseRules * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
+ ISpeechPhraseRules * This,
+ /* [retval][out] */ long *Count);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *Item )(
+ ISpeechPhraseRules * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseRule **Rule);
+
+ /* [id][restricted][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
+ ISpeechPhraseRules * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+ END_INTERFACE
+ } ISpeechPhraseRulesVtbl;
+
+ interface ISpeechPhraseRules
+ {
+ CONST_VTBL struct ISpeechPhraseRulesVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechPhraseRules_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechPhraseRules_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechPhraseRules_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechPhraseRules_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechPhraseRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechPhraseRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechPhraseRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechPhraseRules_get_Count(This,Count) \
+ (This)->lpVtbl -> get_Count(This,Count)
+
+#define ISpeechPhraseRules_Item(This,Index,Rule) \
+ (This)->lpVtbl -> Item(This,Index,Rule)
+
+#define ISpeechPhraseRules_get__NewEnum(This,EnumVARIANT) \
+ (This)->lpVtbl -> get__NewEnum(This,EnumVARIANT)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseRules_get_Count_Proxy(
+ ISpeechPhraseRules * This,
+ /* [retval][out] */ long *Count);
+
+
+void __RPC_STUB ISpeechPhraseRules_get_Count_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseRules_Item_Proxy(
+ ISpeechPhraseRules * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechPhraseRule **Rule);
+
+
+void __RPC_STUB ISpeechPhraseRules_Item_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][restricted][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseRules_get__NewEnum_Proxy(
+ ISpeechPhraseRules * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+
+void __RPC_STUB ISpeechPhraseRules_get__NewEnum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechPhraseRules_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechLexicon_INTERFACE_DEFINED__
+#define __ISpeechLexicon_INTERFACE_DEFINED__
+
+/* interface ISpeechLexicon */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechLexicon;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("3DA7627A-C7AE-4b23-8708-638C50362C25")
+ ISpeechLexicon : public IDispatch
+ {
+ public:
+ virtual /* [hidden][id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_GenerationId(
+ /* [retval][out] */ long *GenerationId) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetWords(
+ /* [defaultvalue][in] */ SpeechLexiconType Flags,
+ /* [defaultvalue][out] */ long *GenerationID,
+ /* [retval][out] */ ISpeechLexiconWords **Words) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE AddPronunciation(
+ /* [in] */ BSTR bstrWord,
+ /* [in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
+ /* [defaultvalue][in] */ BSTR bstrPronunciation = L"") = 0;
+
+ virtual /* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE AddPronunciationByPhoneIds(
+ /* [in] */ BSTR bstrWord,
+ /* [in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
+ /* [defaultvalue][in] */ VARIANT *PhoneIds = 0) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE RemovePronunciation(
+ /* [in] */ BSTR bstrWord,
+ /* [in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
+ /* [defaultvalue][in] */ BSTR bstrPronunciation = L"") = 0;
+
+ virtual /* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE RemovePronunciationByPhoneIds(
+ /* [in] */ BSTR bstrWord,
+ /* [in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
+ /* [defaultvalue][in] */ VARIANT *PhoneIds = 0) = 0;
+
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE GetPronunciations(
+ /* [in] */ BSTR bstrWord,
+ /* [defaultvalue][in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechLexiconType TypeFlags,
+ /* [retval][out] */ ISpeechLexiconPronunciations **ppPronunciations) = 0;
+
+ virtual /* [hidden][id][helpstring] */ HRESULT STDMETHODCALLTYPE GetGenerationChange(
+ /* [out][in] */ long *GenerationID,
+ /* [retval][out] */ ISpeechLexiconWords **ppWords) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechLexiconVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechLexicon * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechLexicon * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechLexicon * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechLexicon * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechLexicon * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechLexicon * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechLexicon * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [hidden][id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_GenerationId )(
+ ISpeechLexicon * This,
+ /* [retval][out] */ long *GenerationId);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetWords )(
+ ISpeechLexicon * This,
+ /* [defaultvalue][in] */ SpeechLexiconType Flags,
+ /* [defaultvalue][out] */ long *GenerationID,
+ /* [retval][out] */ ISpeechLexiconWords **Words);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddPronunciation )(
+ ISpeechLexicon * This,
+ /* [in] */ BSTR bstrWord,
+ /* [in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechPartOfSpeech PartOfSpeech,
+ /* [defaultvalue][in] */ BSTR bstrPronunciation);
+
+ /* [id][hidden][helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddPronunciationByPhoneIds )(
+ ISpeechLexicon * This,
+ /* [in] */ BSTR bstrWord,
+ /* [in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechPartOfSpeech PartOfSpeech,
+ /* [defaultvalue][in] */ VARIANT *PhoneIds);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemovePronunciation )(
+ ISpeechLexicon * This,
+ /* [in] */ BSTR bstrWord,
+ /* [in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechPartOfSpeech PartOfSpeech,
+ /* [defaultvalue][in] */ BSTR bstrPronunciation);
+
+ /* [id][hidden][helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemovePronunciationByPhoneIds )(
+ ISpeechLexicon * This,
+ /* [in] */ BSTR bstrWord,
+ /* [in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechPartOfSpeech PartOfSpeech,
+ /* [defaultvalue][in] */ VARIANT *PhoneIds);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPronunciations )(
+ ISpeechLexicon * This,
+ /* [in] */ BSTR bstrWord,
+ /* [defaultvalue][in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechLexiconType TypeFlags,
+ /* [retval][out] */ ISpeechLexiconPronunciations **ppPronunciations);
+
+ /* [hidden][id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetGenerationChange )(
+ ISpeechLexicon * This,
+ /* [out][in] */ long *GenerationID,
+ /* [retval][out] */ ISpeechLexiconWords **ppWords);
+
+ END_INTERFACE
+ } ISpeechLexiconVtbl;
+
+ interface ISpeechLexicon
+ {
+ CONST_VTBL struct ISpeechLexiconVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechLexicon_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechLexicon_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechLexicon_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechLexicon_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechLexicon_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechLexicon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechLexicon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechLexicon_get_GenerationId(This,GenerationId) \
+ (This)->lpVtbl -> get_GenerationId(This,GenerationId)
+
+#define ISpeechLexicon_GetWords(This,Flags,GenerationID,Words) \
+ (This)->lpVtbl -> GetWords(This,Flags,GenerationID,Words)
+
+#define ISpeechLexicon_AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) \
+ (This)->lpVtbl -> AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
+
+#define ISpeechLexicon_AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) \
+ (This)->lpVtbl -> AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
+
+#define ISpeechLexicon_RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) \
+ (This)->lpVtbl -> RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
+
+#define ISpeechLexicon_RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) \
+ (This)->lpVtbl -> RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
+
+#define ISpeechLexicon_GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations) \
+ (This)->lpVtbl -> GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations)
+
+#define ISpeechLexicon_GetGenerationChange(This,GenerationID,ppWords) \
+ (This)->lpVtbl -> GetGenerationChange(This,GenerationID,ppWords)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [hidden][id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechLexicon_get_GenerationId_Proxy(
+ ISpeechLexicon * This,
+ /* [retval][out] */ long *GenerationId);
+
+
+void __RPC_STUB ISpeechLexicon_get_GenerationId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechLexicon_GetWords_Proxy(
+ ISpeechLexicon * This,
+ /* [defaultvalue][in] */ SpeechLexiconType Flags,
+ /* [defaultvalue][out] */ long *GenerationID,
+ /* [retval][out] */ ISpeechLexiconWords **Words);
+
+
+void __RPC_STUB ISpeechLexicon_GetWords_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechLexicon_AddPronunciation_Proxy(
+ ISpeechLexicon * This,
+ /* [in] */ BSTR bstrWord,
+ /* [in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechPartOfSpeech PartOfSpeech,
+ /* [defaultvalue][in] */ BSTR bstrPronunciation);
+
+
+void __RPC_STUB ISpeechLexicon_AddPronunciation_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechLexicon_AddPronunciationByPhoneIds_Proxy(
+ ISpeechLexicon * This,
+ /* [in] */ BSTR bstrWord,
+ /* [in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechPartOfSpeech PartOfSpeech,
+ /* [defaultvalue][in] */ VARIANT *PhoneIds);
+
+
+void __RPC_STUB ISpeechLexicon_AddPronunciationByPhoneIds_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechLexicon_RemovePronunciation_Proxy(
+ ISpeechLexicon * This,
+ /* [in] */ BSTR bstrWord,
+ /* [in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechPartOfSpeech PartOfSpeech,
+ /* [defaultvalue][in] */ BSTR bstrPronunciation);
+
+
+void __RPC_STUB ISpeechLexicon_RemovePronunciation_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][hidden][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechLexicon_RemovePronunciationByPhoneIds_Proxy(
+ ISpeechLexicon * This,
+ /* [in] */ BSTR bstrWord,
+ /* [in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechPartOfSpeech PartOfSpeech,
+ /* [defaultvalue][in] */ VARIANT *PhoneIds);
+
+
+void __RPC_STUB ISpeechLexicon_RemovePronunciationByPhoneIds_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechLexicon_GetPronunciations_Proxy(
+ ISpeechLexicon * This,
+ /* [in] */ BSTR bstrWord,
+ /* [defaultvalue][in] */ SpeechLanguageId LangId,
+ /* [defaultvalue][in] */ SpeechLexiconType TypeFlags,
+ /* [retval][out] */ ISpeechLexiconPronunciations **ppPronunciations);
+
+
+void __RPC_STUB ISpeechLexicon_GetPronunciations_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [hidden][id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechLexicon_GetGenerationChange_Proxy(
+ ISpeechLexicon * This,
+ /* [out][in] */ long *GenerationID,
+ /* [retval][out] */ ISpeechLexiconWords **ppWords);
+
+
+void __RPC_STUB ISpeechLexicon_GetGenerationChange_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechLexicon_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechLexiconWords_INTERFACE_DEFINED__
+#define __ISpeechLexiconWords_INTERFACE_DEFINED__
+
+/* interface ISpeechLexiconWords */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechLexiconWords;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("8D199862-415E-47d5-AC4F-FAA608B424E6")
+ ISpeechLexiconWords : public IDispatch
+ {
+ public:
+ virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count(
+ /* [retval][out] */ long *Count) = 0;
+
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item(
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechLexiconWord **Word) = 0;
+
+ virtual /* [restricted][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
+ /* [retval][out] */ IUnknown **EnumVARIANT) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechLexiconWordsVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechLexiconWords * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechLexiconWords * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechLexiconWords * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechLexiconWords * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechLexiconWords * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechLexiconWords * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechLexiconWords * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
+ ISpeechLexiconWords * This,
+ /* [retval][out] */ long *Count);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )(
+ ISpeechLexiconWords * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechLexiconWord **Word);
+
+ /* [restricted][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
+ ISpeechLexiconWords * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+ END_INTERFACE
+ } ISpeechLexiconWordsVtbl;
+
+ interface ISpeechLexiconWords
+ {
+ CONST_VTBL struct ISpeechLexiconWordsVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechLexiconWords_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechLexiconWords_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechLexiconWords_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechLexiconWords_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechLexiconWords_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechLexiconWords_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechLexiconWords_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechLexiconWords_get_Count(This,Count) \
+ (This)->lpVtbl -> get_Count(This,Count)
+
+#define ISpeechLexiconWords_Item(This,Index,Word) \
+ (This)->lpVtbl -> Item(This,Index,Word)
+
+#define ISpeechLexiconWords_get__NewEnum(This,EnumVARIANT) \
+ (This)->lpVtbl -> get__NewEnum(This,EnumVARIANT)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconWords_get_Count_Proxy(
+ ISpeechLexiconWords * This,
+ /* [retval][out] */ long *Count);
+
+
+void __RPC_STUB ISpeechLexiconWords_get_Count_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconWords_Item_Proxy(
+ ISpeechLexiconWords * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechLexiconWord **Word);
+
+
+void __RPC_STUB ISpeechLexiconWords_Item_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [restricted][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconWords_get__NewEnum_Proxy(
+ ISpeechLexiconWords * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+
+void __RPC_STUB ISpeechLexiconWords_get__NewEnum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechLexiconWords_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechLexiconWord_INTERFACE_DEFINED__
+#define __ISpeechLexiconWord_INTERFACE_DEFINED__
+
+/* interface ISpeechLexiconWord */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechLexiconWord;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("4E5B933C-C9BE-48ed-8842-1EE51BB1D4FF")
+ ISpeechLexiconWord : public IDispatch
+ {
+ public:
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LangId(
+ /* [retval][out] */ SpeechLanguageId *LangId) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Type(
+ /* [retval][out] */ SpeechWordType *WordType) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Word(
+ /* [retval][out] */ BSTR *Word) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Pronunciations(
+ /* [retval][out] */ ISpeechLexiconPronunciations **Pronunciations) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechLexiconWordVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechLexiconWord * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechLexiconWord * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechLexiconWord * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechLexiconWord * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechLexiconWord * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechLexiconWord * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechLexiconWord * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LangId )(
+ ISpeechLexiconWord * This,
+ /* [retval][out] */ SpeechLanguageId *LangId);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )(
+ ISpeechLexiconWord * This,
+ /* [retval][out] */ SpeechWordType *WordType);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Word )(
+ ISpeechLexiconWord * This,
+ /* [retval][out] */ BSTR *Word);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Pronunciations )(
+ ISpeechLexiconWord * This,
+ /* [retval][out] */ ISpeechLexiconPronunciations **Pronunciations);
+
+ END_INTERFACE
+ } ISpeechLexiconWordVtbl;
+
+ interface ISpeechLexiconWord
+ {
+ CONST_VTBL struct ISpeechLexiconWordVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechLexiconWord_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechLexiconWord_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechLexiconWord_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechLexiconWord_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechLexiconWord_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechLexiconWord_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechLexiconWord_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechLexiconWord_get_LangId(This,LangId) \
+ (This)->lpVtbl -> get_LangId(This,LangId)
+
+#define ISpeechLexiconWord_get_Type(This,WordType) \
+ (This)->lpVtbl -> get_Type(This,WordType)
+
+#define ISpeechLexiconWord_get_Word(This,Word) \
+ (This)->lpVtbl -> get_Word(This,Word)
+
+#define ISpeechLexiconWord_get_Pronunciations(This,Pronunciations) \
+ (This)->lpVtbl -> get_Pronunciations(This,Pronunciations)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_LangId_Proxy(
+ ISpeechLexiconWord * This,
+ /* [retval][out] */ SpeechLanguageId *LangId);
+
+
+void __RPC_STUB ISpeechLexiconWord_get_LangId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_Type_Proxy(
+ ISpeechLexiconWord * This,
+ /* [retval][out] */ SpeechWordType *WordType);
+
+
+void __RPC_STUB ISpeechLexiconWord_get_Type_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_Word_Proxy(
+ ISpeechLexiconWord * This,
+ /* [retval][out] */ BSTR *Word);
+
+
+void __RPC_STUB ISpeechLexiconWord_get_Word_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_Pronunciations_Proxy(
+ ISpeechLexiconWord * This,
+ /* [retval][out] */ ISpeechLexiconPronunciations **Pronunciations);
+
+
+void __RPC_STUB ISpeechLexiconWord_get_Pronunciations_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechLexiconWord_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
+#define __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
+
+/* interface ISpeechLexiconPronunciations */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechLexiconPronunciations;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("72829128-5682-4704-A0D4-3E2BB6F2EAD3")
+ ISpeechLexiconPronunciations : public IDispatch
+ {
+ public:
+ virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count(
+ /* [retval][out] */ long *Count) = 0;
+
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item(
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechLexiconPronunciation **Pronunciation) = 0;
+
+ virtual /* [restricted][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
+ /* [retval][out] */ IUnknown **EnumVARIANT) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechLexiconPronunciationsVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechLexiconPronunciations * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechLexiconPronunciations * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechLexiconPronunciations * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechLexiconPronunciations * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechLexiconPronunciations * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechLexiconPronunciations * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechLexiconPronunciations * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
+ ISpeechLexiconPronunciations * This,
+ /* [retval][out] */ long *Count);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )(
+ ISpeechLexiconPronunciations * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechLexiconPronunciation **Pronunciation);
+
+ /* [restricted][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
+ ISpeechLexiconPronunciations * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+ END_INTERFACE
+ } ISpeechLexiconPronunciationsVtbl;
+
+ interface ISpeechLexiconPronunciations
+ {
+ CONST_VTBL struct ISpeechLexiconPronunciationsVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechLexiconPronunciations_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechLexiconPronunciations_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechLexiconPronunciations_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechLexiconPronunciations_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechLexiconPronunciations_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechLexiconPronunciations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechLexiconPronunciations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechLexiconPronunciations_get_Count(This,Count) \
+ (This)->lpVtbl -> get_Count(This,Count)
+
+#define ISpeechLexiconPronunciations_Item(This,Index,Pronunciation) \
+ (This)->lpVtbl -> Item(This,Index,Pronunciation)
+
+#define ISpeechLexiconPronunciations_get__NewEnum(This,EnumVARIANT) \
+ (This)->lpVtbl -> get__NewEnum(This,EnumVARIANT)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciations_get_Count_Proxy(
+ ISpeechLexiconPronunciations * This,
+ /* [retval][out] */ long *Count);
+
+
+void __RPC_STUB ISpeechLexiconPronunciations_get_Count_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciations_Item_Proxy(
+ ISpeechLexiconPronunciations * This,
+ /* [in] */ long Index,
+ /* [retval][out] */ ISpeechLexiconPronunciation **Pronunciation);
+
+
+void __RPC_STUB ISpeechLexiconPronunciations_Item_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [restricted][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciations_get__NewEnum_Proxy(
+ ISpeechLexiconPronunciations * This,
+ /* [retval][out] */ IUnknown **EnumVARIANT);
+
+
+void __RPC_STUB ISpeechLexiconPronunciations_get__NewEnum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechLexiconPronunciations_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
+#define __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
+
+/* interface ISpeechLexiconPronunciation */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechLexiconPronunciation;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("95252C5D-9E43-4f4a-9899-48EE73352F9F")
+ ISpeechLexiconPronunciation : public IDispatch
+ {
+ public:
+ virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Type(
+ /* [retval][out] */ SpeechLexiconType *LexiconType) = 0;
+
+ virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LangId(
+ /* [retval][out] */ SpeechLanguageId *LangId) = 0;
+
+ virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PartOfSpeech(
+ /* [retval][out] */ SpeechPartOfSpeech *PartOfSpeech) = 0;
+
+ virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_PhoneIds(
+ /* [retval][out] */ VARIANT *PhoneIds) = 0;
+
+ virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Symbolic(
+ /* [retval][out] */ BSTR *Symbolic) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechLexiconPronunciationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechLexiconPronunciation * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechLexiconPronunciation * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechLexiconPronunciation * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechLexiconPronunciation * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechLexiconPronunciation * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechLexiconPronunciation * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechLexiconPronunciation * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )(
+ ISpeechLexiconPronunciation * This,
+ /* [retval][out] */ SpeechLexiconType *LexiconType);
+
+ /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LangId )(
+ ISpeechLexiconPronunciation * This,
+ /* [retval][out] */ SpeechLanguageId *LangId);
+
+ /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PartOfSpeech )(
+ ISpeechLexiconPronunciation * This,
+ /* [retval][out] */ SpeechPartOfSpeech *PartOfSpeech);
+
+ /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PhoneIds )(
+ ISpeechLexiconPronunciation * This,
+ /* [retval][out] */ VARIANT *PhoneIds);
+
+ /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Symbolic )(
+ ISpeechLexiconPronunciation * This,
+ /* [retval][out] */ BSTR *Symbolic);
+
+ END_INTERFACE
+ } ISpeechLexiconPronunciationVtbl;
+
+ interface ISpeechLexiconPronunciation
+ {
+ CONST_VTBL struct ISpeechLexiconPronunciationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechLexiconPronunciation_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechLexiconPronunciation_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechLexiconPronunciation_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechLexiconPronunciation_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechLexiconPronunciation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechLexiconPronunciation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechLexiconPronunciation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechLexiconPronunciation_get_Type(This,LexiconType) \
+ (This)->lpVtbl -> get_Type(This,LexiconType)
+
+#define ISpeechLexiconPronunciation_get_LangId(This,LangId) \
+ (This)->lpVtbl -> get_LangId(This,LangId)
+
+#define ISpeechLexiconPronunciation_get_PartOfSpeech(This,PartOfSpeech) \
+ (This)->lpVtbl -> get_PartOfSpeech(This,PartOfSpeech)
+
+#define ISpeechLexiconPronunciation_get_PhoneIds(This,PhoneIds) \
+ (This)->lpVtbl -> get_PhoneIds(This,PhoneIds)
+
+#define ISpeechLexiconPronunciation_get_Symbolic(This,Symbolic) \
+ (This)->lpVtbl -> get_Symbolic(This,Symbolic)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_Type_Proxy(
+ ISpeechLexiconPronunciation * This,
+ /* [retval][out] */ SpeechLexiconType *LexiconType);
+
+
+void __RPC_STUB ISpeechLexiconPronunciation_get_Type_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_LangId_Proxy(
+ ISpeechLexiconPronunciation * This,
+ /* [retval][out] */ SpeechLanguageId *LangId);
+
+
+void __RPC_STUB ISpeechLexiconPronunciation_get_LangId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_PartOfSpeech_Proxy(
+ ISpeechLexiconPronunciation * This,
+ /* [retval][out] */ SpeechPartOfSpeech *PartOfSpeech);
+
+
+void __RPC_STUB ISpeechLexiconPronunciation_get_PartOfSpeech_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_PhoneIds_Proxy(
+ ISpeechLexiconPronunciation * This,
+ /* [retval][out] */ VARIANT *PhoneIds);
+
+
+void __RPC_STUB ISpeechLexiconPronunciation_get_PhoneIds_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_Symbolic_Proxy(
+ ISpeechLexiconPronunciation * This,
+ /* [retval][out] */ BSTR *Symbolic);
+
+
+void __RPC_STUB ISpeechLexiconPronunciation_get_Symbolic_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechLexiconPronunciation_INTERFACE_DEFINED__ */
+
+
+
+#ifndef __SpeechStringConstants_MODULE_DEFINED__
+#define __SpeechStringConstants_MODULE_DEFINED__
+
+
+/* module SpeechStringConstants */
+/* [uuid] */
+
+const BSTR SpeechRegistryUserRoot = L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech";
+
+const BSTR SpeechRegistryLocalMachineRoot = L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech";
+
+const BSTR SpeechCategoryAudioOut = L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioOutput";
+
+const BSTR SpeechCategoryAudioIn = L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioInput";
+
+const BSTR SpeechCategoryVoices = L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices";
+
+const BSTR SpeechCategoryRecognizers = L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Recognizers";
+
+const BSTR SpeechCategoryAppLexicons = L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AppLexicons";
+
+const BSTR SpeechCategoryPhoneConverters = L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\PhoneConverters";
+
+const BSTR SpeechCategoryRecoProfiles = L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\RecoProfiles";
+
+const BSTR SpeechTokenIdUserLexicon = L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\CurrentUserLexicon";
+
+const BSTR SpeechTokenValueCLSID = L"CLSID";
+
+const BSTR SpeechTokenKeyFiles = L"Files";
+
+const BSTR SpeechTokenKeyUI = L"UI";
+
+const BSTR SpeechTokenKeyAttributes = L"Attributes";
+
+const BSTR SpeechVoiceCategoryTTSRate = L"DefaultTTSRate";
+
+const BSTR SpeechPropertyResourceUsage = L"ResourceUsage";
+
+const BSTR SpeechPropertyHighConfidenceThreshold = L"HighConfidenceThreshold";
+
+const BSTR SpeechPropertyNormalConfidenceThreshold = L"NormalConfidenceThreshold";
+
+const BSTR SpeechPropertyLowConfidenceThreshold = L"LowConfidenceThreshold";
+
+const BSTR SpeechPropertyResponseSpeed = L"ResponseSpeed";
+
+const BSTR SpeechPropertyComplexResponseSpeed = L"ComplexResponseSpeed";
+
+const BSTR SpeechPropertyAdaptationOn = L"AdaptationOn";
+
+const BSTR SpeechDictationTopicSpelling = L"Spelling";
+
+const BSTR SpeechGrammarTagWildcard = L"...";
+
+const BSTR SpeechGrammarTagDictation = L"*";
+
+const BSTR SpeechGrammarTagUnlimitedDictation = L"*+";
+
+const BSTR SpeechEngineProperties = L"EngineProperties";
+
+const BSTR SpeechAddRemoveWord = L"AddRemoveWord";
+
+const BSTR SpeechUserTraining = L"UserTraining";
+
+const BSTR SpeechMicTraining = L"MicTraining";
+
+const BSTR SpeechRecoProfileProperties = L"RecoProfileProperties";
+
+const BSTR SpeechAudioProperties = L"AudioProperties";
+
+const BSTR SpeechAudioVolume = L"AudioVolume";
+
+const BSTR SpeechVoiceSkipTypeSentence = L"Sentence";
+
+const BSTR SpeechAudioFormatGUIDWave = L"{C31ADBAE-527F-4ff5-A230-F62BB61FF70C}";
+
+const BSTR SpeechAudioFormatGUIDText = L"{7CEEF9F9-3D13-11d2-9EE7-00C04F797396}";
+
+#endif /* __SpeechStringConstants_MODULE_DEFINED__ */
+
+
+#ifndef __SpeechConstants_MODULE_DEFINED__
+#define __SpeechConstants_MODULE_DEFINED__
+
+
+/* module SpeechConstants */
+/* [uuid] */
+
+const float Speech_Default_Weight = DEFAULT_WEIGHT;
+
+const LONG Speech_Max_Word_Length = SP_MAX_WORD_LENGTH;
+
+const LONG Speech_Max_Pron_Length = SP_MAX_PRON_LENGTH;
+
+const LONG Speech_StreamPos_Asap = SP_STREAMPOS_ASAP;
+
+const LONG Speech_StreamPos_RealTime = SP_STREAMPOS_REALTIME;
+
+const LONG SpeechAllElements = SPPR_ALL_ELEMENTS;
+
+#endif /* __SpeechConstants_MODULE_DEFINED__ */
+
+#ifndef __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
+#define __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
+
+/* interface ISpeechPhraseInfoBuilder */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechPhraseInfoBuilder;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("3B151836-DF3A-4E0A-846C-D2ADC9334333")
+ ISpeechPhraseInfoBuilder : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring] */ HRESULT STDMETHODCALLTYPE RestorePhraseFromMemory(
+ /* [in] */ VARIANT *PhraseInMemory,
+ /* [retval][out] */ ISpeechPhraseInfo **PhraseInfo) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechPhraseInfoBuilderVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechPhraseInfoBuilder * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechPhraseInfoBuilder * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechPhraseInfoBuilder * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechPhraseInfoBuilder * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechPhraseInfoBuilder * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechPhraseInfoBuilder * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechPhraseInfoBuilder * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring] */ HRESULT ( STDMETHODCALLTYPE *RestorePhraseFromMemory )(
+ ISpeechPhraseInfoBuilder * This,
+ /* [in] */ VARIANT *PhraseInMemory,
+ /* [retval][out] */ ISpeechPhraseInfo **PhraseInfo);
+
+ END_INTERFACE
+ } ISpeechPhraseInfoBuilderVtbl;
+
+ interface ISpeechPhraseInfoBuilder
+ {
+ CONST_VTBL struct ISpeechPhraseInfoBuilderVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechPhraseInfoBuilder_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechPhraseInfoBuilder_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechPhraseInfoBuilder_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechPhraseInfoBuilder_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechPhraseInfoBuilder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechPhraseInfoBuilder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechPhraseInfoBuilder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo) \
+ (This)->lpVtbl -> RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring] */ HRESULT STDMETHODCALLTYPE ISpeechPhraseInfoBuilder_RestorePhraseFromMemory_Proxy(
+ ISpeechPhraseInfoBuilder * This,
+ /* [in] */ VARIANT *PhraseInMemory,
+ /* [retval][out] */ ISpeechPhraseInfo **PhraseInfo);
+
+
+void __RPC_STUB ISpeechPhraseInfoBuilder_RestorePhraseFromMemory_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpeechPhoneConverter_INTERFACE_DEFINED__
+#define __ISpeechPhoneConverter_INTERFACE_DEFINED__
+
+/* interface ISpeechPhoneConverter */
+/* [unique][helpstring][dual][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpeechPhoneConverter;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("C3E4F353-433F-43d6-89A1-6A62A7054C3D")
+ ISpeechPhoneConverter : public IDispatch
+ {
+ public:
+ virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_LanguageId(
+ /* [retval][out] */ SpeechLanguageId *LanguageId) = 0;
+
+ virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_LanguageId(
+ /* [in] */ SpeechLanguageId LanguageId) = 0;
+
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PhoneToId(
+ /* [in] */ const BSTR Phonemes,
+ /* [retval][out] */ VARIANT *IdArray) = 0;
+
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IdToPhone(
+ /* [in] */ const VARIANT IdArray,
+ /* [retval][out] */ BSTR *Phonemes) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpeechPhoneConverterVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpeechPhoneConverter * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpeechPhoneConverter * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpeechPhoneConverter * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ISpeechPhoneConverter * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ISpeechPhoneConverter * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ISpeechPhoneConverter * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ISpeechPhoneConverter * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LanguageId )(
+ ISpeechPhoneConverter * This,
+ /* [retval][out] */ SpeechLanguageId *LanguageId);
+
+ /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LanguageId )(
+ ISpeechPhoneConverter * This,
+ /* [in] */ SpeechLanguageId LanguageId);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PhoneToId )(
+ ISpeechPhoneConverter * This,
+ /* [in] */ const BSTR Phonemes,
+ /* [retval][out] */ VARIANT *IdArray);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IdToPhone )(
+ ISpeechPhoneConverter * This,
+ /* [in] */ const VARIANT IdArray,
+ /* [retval][out] */ BSTR *Phonemes);
+
+ END_INTERFACE
+ } ISpeechPhoneConverterVtbl;
+
+ interface ISpeechPhoneConverter
+ {
+ CONST_VTBL struct ISpeechPhoneConverterVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpeechPhoneConverter_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpeechPhoneConverter_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpeechPhoneConverter_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpeechPhoneConverter_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define ISpeechPhoneConverter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define ISpeechPhoneConverter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define ISpeechPhoneConverter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define ISpeechPhoneConverter_get_LanguageId(This,LanguageId) \
+ (This)->lpVtbl -> get_LanguageId(This,LanguageId)
+
+#define ISpeechPhoneConverter_put_LanguageId(This,LanguageId) \
+ (This)->lpVtbl -> put_LanguageId(This,LanguageId)
+
+#define ISpeechPhoneConverter_PhoneToId(This,Phonemes,IdArray) \
+ (This)->lpVtbl -> PhoneToId(This,Phonemes,IdArray)
+
+#define ISpeechPhoneConverter_IdToPhone(This,IdArray,Phonemes) \
+ (This)->lpVtbl -> IdToPhone(This,IdArray,Phonemes)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_get_LanguageId_Proxy(
+ ISpeechPhoneConverter * This,
+ /* [retval][out] */ SpeechLanguageId *LanguageId);
+
+
+void __RPC_STUB ISpeechPhoneConverter_get_LanguageId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_put_LanguageId_Proxy(
+ ISpeechPhoneConverter * This,
+ /* [in] */ SpeechLanguageId LanguageId);
+
+
+void __RPC_STUB ISpeechPhoneConverter_put_LanguageId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_PhoneToId_Proxy(
+ ISpeechPhoneConverter * This,
+ /* [in] */ const BSTR Phonemes,
+ /* [retval][out] */ VARIANT *IdArray);
+
+
+void __RPC_STUB ISpeechPhoneConverter_PhoneToId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_IdToPhone_Proxy(
+ ISpeechPhoneConverter * This,
+ /* [in] */ const VARIANT IdArray,
+ /* [retval][out] */ BSTR *Phonemes);
+
+
+void __RPC_STUB ISpeechPhoneConverter_IdToPhone_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpeechPhoneConverter_INTERFACE_DEFINED__ */
+
+
+EXTERN_C const CLSID CLSID_SpNotifyTranslator;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("E2AE5372-5D40-11D2-960E-00C04F8EE628")
+SpNotifyTranslator;
+#endif
+
+EXTERN_C const CLSID CLSID_SpObjectTokenCategory;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("A910187F-0C7A-45AC-92CC-59EDAFB77B53")
+SpObjectTokenCategory;
+#endif
+
+EXTERN_C const CLSID CLSID_SpObjectToken;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("EF411752-3736-4CB4-9C8C-8EF4CCB58EFE")
+SpObjectToken;
+#endif
+
+EXTERN_C const CLSID CLSID_SpResourceManager;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("96749373-3391-11D2-9EE3-00C04F797396")
+SpResourceManager;
+#endif
+
+EXTERN_C const CLSID CLSID_SpStreamFormatConverter;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("7013943A-E2EC-11D2-A086-00C04F8EF9B5")
+SpStreamFormatConverter;
+#endif
+
+EXTERN_C const CLSID CLSID_SpMMAudioEnum;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("AB1890A0-E91F-11D2-BB91-00C04F8EE6C0")
+SpMMAudioEnum;
+#endif
+
+EXTERN_C const CLSID CLSID_SpMMAudioIn;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("CF3D2E50-53F2-11D2-960C-00C04F8EE628")
+SpMMAudioIn;
+#endif
+
+EXTERN_C const CLSID CLSID_SpMMAudioOut;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("A8C680EB-3D32-11D2-9EE7-00C04F797396")
+SpMMAudioOut;
+#endif
+
+EXTERN_C const CLSID CLSID_SpRecPlayAudio;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("FEE225FC-7AFD-45E9-95D0-5A318079D911")
+SpRecPlayAudio;
+#endif
+
+EXTERN_C const CLSID CLSID_SpStream;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("715D9C59-4442-11D2-9605-00C04F8EE628")
+SpStream;
+#endif
+
+EXTERN_C const CLSID CLSID_SpVoice;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("96749377-3391-11D2-9EE3-00C04F797396")
+SpVoice;
+#endif
+
+EXTERN_C const CLSID CLSID_SpSharedRecoContext;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("47206204-5ECA-11D2-960F-00C04F8EE628")
+SpSharedRecoContext;
+#endif
+
+EXTERN_C const CLSID CLSID_SpInprocRecognizer;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("41B89B6B-9399-11D2-9623-00C04F8EE628")
+SpInprocRecognizer;
+#endif
+
+EXTERN_C const CLSID CLSID_SpSharedRecognizer;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("3BEE4890-4FE9-4A37-8C1E-5E7E12791C1F")
+SpSharedRecognizer;
+#endif
+
+EXTERN_C const CLSID CLSID_SpLexicon;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("0655E396-25D0-11D3-9C26-00C04F8EF87C")
+SpLexicon;
+#endif
+
+EXTERN_C const CLSID CLSID_SpUnCompressedLexicon;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("C9E37C15-DF92-4727-85D6-72E5EEB6995A")
+SpUnCompressedLexicon;
+#endif
+
+EXTERN_C const CLSID CLSID_SpCompressedLexicon;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("90903716-2F42-11D3-9C26-00C04F8EF87C")
+SpCompressedLexicon;
+#endif
+
+EXTERN_C const CLSID CLSID_SpPhoneConverter;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("9185F743-1143-4C28-86B5-BFF14F20E5C8")
+SpPhoneConverter;
+#endif
+
+EXTERN_C const CLSID CLSID_SpNullPhoneConverter;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("455F24E9-7396-4A16-9715-7C0FDBE3EFE3")
+SpNullPhoneConverter;
+#endif
+
+EXTERN_C const CLSID CLSID_SpTextSelectionInformation;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("0F92030A-CBFD-4AB8-A164-FF5985547FF6")
+SpTextSelectionInformation;
+#endif
+
+EXTERN_C const CLSID CLSID_SpPhraseInfoBuilder;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("C23FC28D-C55F-4720-8B32-91F73C2BD5D1")
+SpPhraseInfoBuilder;
+#endif
+
+EXTERN_C const CLSID CLSID_SpAudioFormat;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("9EF96870-E160-4792-820D-48CF0649E4EC")
+SpAudioFormat;
+#endif
+
+EXTERN_C const CLSID CLSID_SpWaveFormatEx;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("C79A574C-63BE-44b9-801F-283F87F898BE")
+SpWaveFormatEx;
+#endif
+
+EXTERN_C const CLSID CLSID_SpInProcRecoContext;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("73AD6842-ACE0-45E8-A4DD-8795881A2C2A")
+SpInProcRecoContext;
+#endif
+
+EXTERN_C const CLSID CLSID_SpCustomStream;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("8DBEF13F-1948-4aa8-8CF0-048EEBED95D8")
+SpCustomStream;
+#endif
+
+EXTERN_C const CLSID CLSID_SpFileStream;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("947812B3-2AE1-4644-BA86-9E90DED7EC91")
+SpFileStream;
+#endif
+
+EXTERN_C const CLSID CLSID_SpMemoryStream;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("5FB7EF7D-DFF4-468a-B6B7-2FCBD188F994")
+SpMemoryStream;
+#endif
+#endif /* __SpeechLib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/utils/sapi51/include/sapiddk.h b/utils/sapi51/include/sapiddk.h
new file mode 100644
index 0000000..c311aad
--- /dev/null
+++ b/utils/sapi51/include/sapiddk.h
@@ -0,0 +1,4557 @@
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 6.00.0347 */
+/* Compiler settings for sapiddk.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run)
+ protocol : dce , ms_ext, c_ext
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+//@@MIDL_FILE_HEADING( )
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 440
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __sapiddk_h__
+#define __sapiddk_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __ISpTokenUI_FWD_DEFINED__
+#define __ISpTokenUI_FWD_DEFINED__
+typedef interface ISpTokenUI ISpTokenUI;
+#endif /* __ISpTokenUI_FWD_DEFINED__ */
+
+
+#ifndef __ISpObjectTokenEnumBuilder_FWD_DEFINED__
+#define __ISpObjectTokenEnumBuilder_FWD_DEFINED__
+typedef interface ISpObjectTokenEnumBuilder ISpObjectTokenEnumBuilder;
+#endif /* __ISpObjectTokenEnumBuilder_FWD_DEFINED__ */
+
+
+#ifndef __ISpErrorLog_FWD_DEFINED__
+#define __ISpErrorLog_FWD_DEFINED__
+typedef interface ISpErrorLog ISpErrorLog;
+#endif /* __ISpErrorLog_FWD_DEFINED__ */
+
+
+#ifndef __ISpGrammarCompiler_FWD_DEFINED__
+#define __ISpGrammarCompiler_FWD_DEFINED__
+typedef interface ISpGrammarCompiler ISpGrammarCompiler;
+#endif /* __ISpGrammarCompiler_FWD_DEFINED__ */
+
+
+#ifndef __ISpGramCompBackend_FWD_DEFINED__
+#define __ISpGramCompBackend_FWD_DEFINED__
+typedef interface ISpGramCompBackend ISpGramCompBackend;
+#endif /* __ISpGramCompBackend_FWD_DEFINED__ */
+
+
+#ifndef __ISpITNProcessor_FWD_DEFINED__
+#define __ISpITNProcessor_FWD_DEFINED__
+typedef interface ISpITNProcessor ISpITNProcessor;
+#endif /* __ISpITNProcessor_FWD_DEFINED__ */
+
+
+#ifndef __ISpPhraseBuilder_FWD_DEFINED__
+#define __ISpPhraseBuilder_FWD_DEFINED__
+typedef interface ISpPhraseBuilder ISpPhraseBuilder;
+#endif /* __ISpPhraseBuilder_FWD_DEFINED__ */
+
+
+#ifndef __ISpThreadControl_FWD_DEFINED__
+#define __ISpThreadControl_FWD_DEFINED__
+typedef interface ISpThreadControl ISpThreadControl;
+#endif /* __ISpThreadControl_FWD_DEFINED__ */
+
+
+#ifndef __ISpTaskManager_FWD_DEFINED__
+#define __ISpTaskManager_FWD_DEFINED__
+typedef interface ISpTaskManager ISpTaskManager;
+#endif /* __ISpTaskManager_FWD_DEFINED__ */
+
+
+#ifndef __ISpTTSEngineSite_FWD_DEFINED__
+#define __ISpTTSEngineSite_FWD_DEFINED__
+typedef interface ISpTTSEngineSite ISpTTSEngineSite;
+#endif /* __ISpTTSEngineSite_FWD_DEFINED__ */
+
+
+#ifndef __ISpTTSEngine_FWD_DEFINED__
+#define __ISpTTSEngine_FWD_DEFINED__
+typedef interface ISpTTSEngine ISpTTSEngine;
+#endif /* __ISpTTSEngine_FWD_DEFINED__ */
+
+
+#ifndef __ISpCFGInterpreterSite_FWD_DEFINED__
+#define __ISpCFGInterpreterSite_FWD_DEFINED__
+typedef interface ISpCFGInterpreterSite ISpCFGInterpreterSite;
+#endif /* __ISpCFGInterpreterSite_FWD_DEFINED__ */
+
+
+#ifndef __ISpCFGInterpreter_FWD_DEFINED__
+#define __ISpCFGInterpreter_FWD_DEFINED__
+typedef interface ISpCFGInterpreter ISpCFGInterpreter;
+#endif /* __ISpCFGInterpreter_FWD_DEFINED__ */
+
+
+#ifndef __ISpSREngineSite_FWD_DEFINED__
+#define __ISpSREngineSite_FWD_DEFINED__
+typedef interface ISpSREngineSite ISpSREngineSite;
+#endif /* __ISpSREngineSite_FWD_DEFINED__ */
+
+
+#ifndef __ISpSREngine_FWD_DEFINED__
+#define __ISpSREngine_FWD_DEFINED__
+typedef interface ISpSREngine ISpSREngine;
+#endif /* __ISpSREngine_FWD_DEFINED__ */
+
+
+#ifndef __ISpSRAlternates_FWD_DEFINED__
+#define __ISpSRAlternates_FWD_DEFINED__
+typedef interface ISpSRAlternates ISpSRAlternates;
+#endif /* __ISpSRAlternates_FWD_DEFINED__ */
+
+
+#ifndef ___ISpPrivateEngineCall_FWD_DEFINED__
+#define ___ISpPrivateEngineCall_FWD_DEFINED__
+typedef interface _ISpPrivateEngineCall _ISpPrivateEngineCall;
+#endif /* ___ISpPrivateEngineCall_FWD_DEFINED__ */
+
+
+#ifndef __SpDataKey_FWD_DEFINED__
+#define __SpDataKey_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpDataKey SpDataKey;
+#else
+typedef struct SpDataKey SpDataKey;
+#endif /* __cplusplus */
+
+#endif /* __SpDataKey_FWD_DEFINED__ */
+
+
+#ifndef __SpObjectTokenEnum_FWD_DEFINED__
+#define __SpObjectTokenEnum_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpObjectTokenEnum SpObjectTokenEnum;
+#else
+typedef struct SpObjectTokenEnum SpObjectTokenEnum;
+#endif /* __cplusplus */
+
+#endif /* __SpObjectTokenEnum_FWD_DEFINED__ */
+
+
+#ifndef __SpPhraseBuilder_FWD_DEFINED__
+#define __SpPhraseBuilder_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpPhraseBuilder SpPhraseBuilder;
+#else
+typedef struct SpPhraseBuilder SpPhraseBuilder;
+#endif /* __cplusplus */
+
+#endif /* __SpPhraseBuilder_FWD_DEFINED__ */
+
+
+#ifndef __SpITNProcessor_FWD_DEFINED__
+#define __SpITNProcessor_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpITNProcessor SpITNProcessor;
+#else
+typedef struct SpITNProcessor SpITNProcessor;
+#endif /* __cplusplus */
+
+#endif /* __SpITNProcessor_FWD_DEFINED__ */
+
+
+#ifndef __SpGrammarCompiler_FWD_DEFINED__
+#define __SpGrammarCompiler_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpGrammarCompiler SpGrammarCompiler;
+#else
+typedef struct SpGrammarCompiler SpGrammarCompiler;
+#endif /* __cplusplus */
+
+#endif /* __SpGrammarCompiler_FWD_DEFINED__ */
+
+
+#ifndef __SpGramCompBackend_FWD_DEFINED__
+#define __SpGramCompBackend_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class SpGramCompBackend SpGramCompBackend;
+#else
+typedef struct SpGramCompBackend SpGramCompBackend;
+#endif /* __cplusplus */
+
+#endif /* __SpGramCompBackend_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "oaidl.h"
+#include "ocidl.h"
+#include "sapi.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+void * __RPC_USER MIDL_user_allocate(size_t);
+void __RPC_USER MIDL_user_free( void * );
+
+/* interface __MIDL_itf_sapiddk_0000 */
+/* [local] */
+
+
+
+
+
+
+#define SPRECOEXTENSION L"RecoExtension"
+#define SPALTERNATESCLSID L"AlternatesCLSID"
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0000_v0_0_s_ifspec;
+
+#ifndef __ISpTokenUI_INTERFACE_DEFINED__
+#define __ISpTokenUI_INTERFACE_DEFINED__
+
+/* interface ISpTokenUI */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpTokenUI;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("F8E690F0-39CB-4843-B8D7-C84696E1119D")
+ ISpTokenUI : public IUnknown
+ {
+ public:
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE IsUISupported(
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [in] */ IUnknown *punkObject,
+ /* [out] */ BOOL *pfSupported) = 0;
+
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE DisplayUI(
+ /* [in] */ HWND hwndParent,
+ /* [in] */ const WCHAR *pszTitle,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [in] */ ISpObjectToken *pToken,
+ /* [in] */ IUnknown *punkObject) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpTokenUIVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpTokenUI * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpTokenUI * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpTokenUI * This);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *IsUISupported )(
+ ISpTokenUI * This,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [in] */ IUnknown *punkObject,
+ /* [out] */ BOOL *pfSupported);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *DisplayUI )(
+ ISpTokenUI * This,
+ /* [in] */ HWND hwndParent,
+ /* [in] */ const WCHAR *pszTitle,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [in] */ ISpObjectToken *pToken,
+ /* [in] */ IUnknown *punkObject);
+
+ END_INTERFACE
+ } ISpTokenUIVtbl;
+
+ interface ISpTokenUI
+ {
+ CONST_VTBL struct ISpTokenUIVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpTokenUI_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpTokenUI_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpTokenUI_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpTokenUI_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) \
+ (This)->lpVtbl -> IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
+
+#define ISpTokenUI_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,pToken,punkObject) \
+ (This)->lpVtbl -> DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,pToken,punkObject)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [local] */ HRESULT STDMETHODCALLTYPE ISpTokenUI_IsUISupported_Proxy(
+ ISpTokenUI * This,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [in] */ IUnknown *punkObject,
+ /* [out] */ BOOL *pfSupported);
+
+
+void __RPC_STUB ISpTokenUI_IsUISupported_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [local] */ HRESULT STDMETHODCALLTYPE ISpTokenUI_DisplayUI_Proxy(
+ ISpTokenUI * This,
+ /* [in] */ HWND hwndParent,
+ /* [in] */ const WCHAR *pszTitle,
+ /* [in] */ const WCHAR *pszTypeOfUI,
+ /* [in] */ void *pvExtraData,
+ /* [in] */ ULONG cbExtraData,
+ /* [in] */ ISpObjectToken *pToken,
+ /* [in] */ IUnknown *punkObject);
+
+
+void __RPC_STUB ISpTokenUI_DisplayUI_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpTokenUI_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpObjectTokenEnumBuilder_INTERFACE_DEFINED__
+#define __ISpObjectTokenEnumBuilder_INTERFACE_DEFINED__
+
+/* interface ISpObjectTokenEnumBuilder */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpObjectTokenEnumBuilder;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("06B64F9F-7FDA-11d2-B4F2-00C04F797396")
+ ISpObjectTokenEnumBuilder : public IEnumSpObjectTokens
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetAttribs(
+ const WCHAR *pszReqAttribs,
+ const WCHAR *pszOptAttribs) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddTokens(
+ ULONG cTokens,
+ ISpObjectToken **pToken) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddTokensFromDataKey(
+ ISpDataKey *pDataKey,
+ const WCHAR *pszSubKey,
+ const WCHAR *pszCategoryId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddTokensFromTokenEnum(
+ IEnumSpObjectTokens *pTokenEnum) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Sort(
+ const WCHAR *pszTokenIdToListFirst) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpObjectTokenEnumBuilderVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpObjectTokenEnumBuilder * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpObjectTokenEnumBuilder * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpObjectTokenEnumBuilder * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Next )(
+ ISpObjectTokenEnumBuilder * This,
+ /* [in] */ ULONG celt,
+ /* [length_is][size_is][out] */ ISpObjectToken **pelt,
+ /* [out] */ ULONG *pceltFetched);
+
+ HRESULT ( STDMETHODCALLTYPE *Skip )(
+ ISpObjectTokenEnumBuilder * This,
+ /* [in] */ ULONG celt);
+
+ HRESULT ( STDMETHODCALLTYPE *Reset )(
+ ISpObjectTokenEnumBuilder * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Clone )(
+ ISpObjectTokenEnumBuilder * This,
+ /* [out] */ IEnumSpObjectTokens **ppEnum);
+
+ HRESULT ( STDMETHODCALLTYPE *Item )(
+ ISpObjectTokenEnumBuilder * This,
+ /* [in] */ ULONG Index,
+ /* [out] */ ISpObjectToken **ppToken);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCount )(
+ ISpObjectTokenEnumBuilder * This,
+ /* [out] */ ULONG *pCount);
+
+ HRESULT ( STDMETHODCALLTYPE *SetAttribs )(
+ ISpObjectTokenEnumBuilder * This,
+ const WCHAR *pszReqAttribs,
+ const WCHAR *pszOptAttribs);
+
+ HRESULT ( STDMETHODCALLTYPE *AddTokens )(
+ ISpObjectTokenEnumBuilder * This,
+ ULONG cTokens,
+ ISpObjectToken **pToken);
+
+ HRESULT ( STDMETHODCALLTYPE *AddTokensFromDataKey )(
+ ISpObjectTokenEnumBuilder * This,
+ ISpDataKey *pDataKey,
+ const WCHAR *pszSubKey,
+ const WCHAR *pszCategoryId);
+
+ HRESULT ( STDMETHODCALLTYPE *AddTokensFromTokenEnum )(
+ ISpObjectTokenEnumBuilder * This,
+ IEnumSpObjectTokens *pTokenEnum);
+
+ HRESULT ( STDMETHODCALLTYPE *Sort )(
+ ISpObjectTokenEnumBuilder * This,
+ const WCHAR *pszTokenIdToListFirst);
+
+ END_INTERFACE
+ } ISpObjectTokenEnumBuilderVtbl;
+
+ interface ISpObjectTokenEnumBuilder
+ {
+ CONST_VTBL struct ISpObjectTokenEnumBuilderVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpObjectTokenEnumBuilder_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpObjectTokenEnumBuilder_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpObjectTokenEnumBuilder_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpObjectTokenEnumBuilder_Next(This,celt,pelt,pceltFetched) \
+ (This)->lpVtbl -> Next(This,celt,pelt,pceltFetched)
+
+#define ISpObjectTokenEnumBuilder_Skip(This,celt) \
+ (This)->lpVtbl -> Skip(This,celt)
+
+#define ISpObjectTokenEnumBuilder_Reset(This) \
+ (This)->lpVtbl -> Reset(This)
+
+#define ISpObjectTokenEnumBuilder_Clone(This,ppEnum) \
+ (This)->lpVtbl -> Clone(This,ppEnum)
+
+#define ISpObjectTokenEnumBuilder_Item(This,Index,ppToken) \
+ (This)->lpVtbl -> Item(This,Index,ppToken)
+
+#define ISpObjectTokenEnumBuilder_GetCount(This,pCount) \
+ (This)->lpVtbl -> GetCount(This,pCount)
+
+
+#define ISpObjectTokenEnumBuilder_SetAttribs(This,pszReqAttribs,pszOptAttribs) \
+ (This)->lpVtbl -> SetAttribs(This,pszReqAttribs,pszOptAttribs)
+
+#define ISpObjectTokenEnumBuilder_AddTokens(This,cTokens,pToken) \
+ (This)->lpVtbl -> AddTokens(This,cTokens,pToken)
+
+#define ISpObjectTokenEnumBuilder_AddTokensFromDataKey(This,pDataKey,pszSubKey,pszCategoryId) \
+ (This)->lpVtbl -> AddTokensFromDataKey(This,pDataKey,pszSubKey,pszCategoryId)
+
+#define ISpObjectTokenEnumBuilder_AddTokensFromTokenEnum(This,pTokenEnum) \
+ (This)->lpVtbl -> AddTokensFromTokenEnum(This,pTokenEnum)
+
+#define ISpObjectTokenEnumBuilder_Sort(This,pszTokenIdToListFirst) \
+ (This)->lpVtbl -> Sort(This,pszTokenIdToListFirst)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_SetAttribs_Proxy(
+ ISpObjectTokenEnumBuilder * This,
+ const WCHAR *pszReqAttribs,
+ const WCHAR *pszOptAttribs);
+
+
+void __RPC_STUB ISpObjectTokenEnumBuilder_SetAttribs_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_AddTokens_Proxy(
+ ISpObjectTokenEnumBuilder * This,
+ ULONG cTokens,
+ ISpObjectToken **pToken);
+
+
+void __RPC_STUB ISpObjectTokenEnumBuilder_AddTokens_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_AddTokensFromDataKey_Proxy(
+ ISpObjectTokenEnumBuilder * This,
+ ISpDataKey *pDataKey,
+ const WCHAR *pszSubKey,
+ const WCHAR *pszCategoryId);
+
+
+void __RPC_STUB ISpObjectTokenEnumBuilder_AddTokensFromDataKey_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_AddTokensFromTokenEnum_Proxy(
+ ISpObjectTokenEnumBuilder * This,
+ IEnumSpObjectTokens *pTokenEnum);
+
+
+void __RPC_STUB ISpObjectTokenEnumBuilder_AddTokensFromTokenEnum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpObjectTokenEnumBuilder_Sort_Proxy(
+ ISpObjectTokenEnumBuilder * This,
+ const WCHAR *pszTokenIdToListFirst);
+
+
+void __RPC_STUB ISpObjectTokenEnumBuilder_Sort_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpObjectTokenEnumBuilder_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapiddk_0339 */
+/* [local] */
+
+#if 0
+typedef void *SPWORDHANDLE;
+
+typedef void *SPRULEHANDLE;
+
+typedef void *SPGRAMMARHANDLE;
+
+typedef void *SPRECOCONTEXTHANDLE;
+
+typedef void *SPPHRASERULEHANDLE;
+
+typedef void *SPPHRASEPROPERTYHANDLE;
+
+typedef void *SPTRANSITIONID;
+
+#else
+DECLARE_HANDLE(SPWORDHANDLE);
+DECLARE_HANDLE(SPRULEHANDLE);
+DECLARE_HANDLE(SPGRAMMARHANDLE);
+DECLARE_HANDLE(SPRECOCONTEXTHANDLE);
+DECLARE_HANDLE(SPPHRASERULEHANDLE);
+DECLARE_HANDLE(SPPHRASEPROPERTYHANDLE);
+DECLARE_HANDLE(SPTRANSITIONID);
+#endif
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0339_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0339_v0_0_s_ifspec;
+
+#ifndef __ISpErrorLog_INTERFACE_DEFINED__
+#define __ISpErrorLog_INTERFACE_DEFINED__
+
+/* interface ISpErrorLog */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpErrorLog;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("F4711347-E608-11d2-A086-00C04F8EF9B5")
+ ISpErrorLog : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE AddError(
+ const long lLineNumber,
+ HRESULT hr,
+ const WCHAR *pszDescription,
+ const WCHAR *pszHelpFile,
+ DWORD dwHelpContext) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpErrorLogVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpErrorLog * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpErrorLog * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpErrorLog * This);
+
+ HRESULT ( STDMETHODCALLTYPE *AddError )(
+ ISpErrorLog * This,
+ const long lLineNumber,
+ HRESULT hr,
+ const WCHAR *pszDescription,
+ const WCHAR *pszHelpFile,
+ DWORD dwHelpContext);
+
+ END_INTERFACE
+ } ISpErrorLogVtbl;
+
+ interface ISpErrorLog
+ {
+ CONST_VTBL struct ISpErrorLogVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpErrorLog_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpErrorLog_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpErrorLog_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpErrorLog_AddError(This,lLineNumber,hr,pszDescription,pszHelpFile,dwHelpContext) \
+ (This)->lpVtbl -> AddError(This,lLineNumber,hr,pszDescription,pszHelpFile,dwHelpContext)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpErrorLog_AddError_Proxy(
+ ISpErrorLog * This,
+ const long lLineNumber,
+ HRESULT hr,
+ const WCHAR *pszDescription,
+ const WCHAR *pszHelpFile,
+ DWORD dwHelpContext);
+
+
+void __RPC_STUB ISpErrorLog_AddError_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpErrorLog_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpGrammarCompiler_INTERFACE_DEFINED__
+#define __ISpGrammarCompiler_INTERFACE_DEFINED__
+
+/* interface ISpGrammarCompiler */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpGrammarCompiler;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("B1E29D58-A675-11D2-8302-00C04F8EE6C0")
+ ISpGrammarCompiler : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE CompileStream(
+ IStream *pSource,
+ IStream *pDest,
+ IStream *pHeader,
+ IUnknown *pReserved,
+ ISpErrorLog *pErrorLog,
+ /* [in] */ DWORD dwFlags) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpGrammarCompilerVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpGrammarCompiler * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpGrammarCompiler * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpGrammarCompiler * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CompileStream )(
+ ISpGrammarCompiler * This,
+ IStream *pSource,
+ IStream *pDest,
+ IStream *pHeader,
+ IUnknown *pReserved,
+ ISpErrorLog *pErrorLog,
+ /* [in] */ DWORD dwFlags);
+
+ END_INTERFACE
+ } ISpGrammarCompilerVtbl;
+
+ interface ISpGrammarCompiler
+ {
+ CONST_VTBL struct ISpGrammarCompilerVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpGrammarCompiler_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpGrammarCompiler_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpGrammarCompiler_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpGrammarCompiler_CompileStream(This,pSource,pDest,pHeader,pReserved,pErrorLog,dwFlags) \
+ (This)->lpVtbl -> CompileStream(This,pSource,pDest,pHeader,pReserved,pErrorLog,dwFlags)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpGrammarCompiler_CompileStream_Proxy(
+ ISpGrammarCompiler * This,
+ IStream *pSource,
+ IStream *pDest,
+ IStream *pHeader,
+ IUnknown *pReserved,
+ ISpErrorLog *pErrorLog,
+ /* [in] */ DWORD dwFlags);
+
+
+void __RPC_STUB ISpGrammarCompiler_CompileStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpGrammarCompiler_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpGramCompBackend_INTERFACE_DEFINED__
+#define __ISpGramCompBackend_INTERFACE_DEFINED__
+
+/* interface ISpGramCompBackend */
+/* [restricted][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpGramCompBackend;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("3DDCA27C-665C-4786-9F97-8C90C3488B61")
+ ISpGramCompBackend : public ISpGrammarBuilder
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetSaveObjects(
+ IStream *pStream,
+ ISpErrorLog *pErrorLog) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE InitFromBinaryGrammar(
+ const SPBINARYGRAMMAR *pBinaryData) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpGramCompBackendVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpGramCompBackend * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpGramCompBackend * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpGramCompBackend * This);
+
+ HRESULT ( STDMETHODCALLTYPE *ResetGrammar )(
+ ISpGramCompBackend * This,
+ /* [in] */ WORD NewLanguage);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRule )(
+ ISpGramCompBackend * This,
+ /* [in] */ const WCHAR *pszRuleName,
+ /* [in] */ DWORD dwRuleId,
+ /* [in] */ DWORD dwAttributes,
+ /* [in] */ BOOL fCreateIfNotExist,
+ /* [out] */ SPSTATEHANDLE *phInitialState);
+
+ HRESULT ( STDMETHODCALLTYPE *ClearRule )(
+ ISpGramCompBackend * This,
+ SPSTATEHANDLE hState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateNewState )(
+ ISpGramCompBackend * This,
+ SPSTATEHANDLE hState,
+ SPSTATEHANDLE *phState);
+
+ HRESULT ( STDMETHODCALLTYPE *AddWordTransition )(
+ ISpGramCompBackend * This,
+ SPSTATEHANDLE hFromState,
+ SPSTATEHANDLE hToState,
+ const WCHAR *psz,
+ const WCHAR *pszSeparators,
+ SPGRAMMARWORDTYPE eWordType,
+ float Weight,
+ const SPPROPERTYINFO *pPropInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *AddRuleTransition )(
+ ISpGramCompBackend * This,
+ SPSTATEHANDLE hFromState,
+ SPSTATEHANDLE hToState,
+ SPSTATEHANDLE hRule,
+ float Weight,
+ const SPPROPERTYINFO *pPropInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *AddResource )(
+ ISpGramCompBackend * This,
+ /* [in] */ SPSTATEHANDLE hRuleState,
+ /* [in] */ const WCHAR *pszResourceName,
+ /* [in] */ const WCHAR *pszResourceValue);
+
+ HRESULT ( STDMETHODCALLTYPE *Commit )(
+ ISpGramCompBackend * This,
+ DWORD dwReserved);
+
+ HRESULT ( STDMETHODCALLTYPE *SetSaveObjects )(
+ ISpGramCompBackend * This,
+ IStream *pStream,
+ ISpErrorLog *pErrorLog);
+
+ HRESULT ( STDMETHODCALLTYPE *InitFromBinaryGrammar )(
+ ISpGramCompBackend * This,
+ const SPBINARYGRAMMAR *pBinaryData);
+
+ END_INTERFACE
+ } ISpGramCompBackendVtbl;
+
+ interface ISpGramCompBackend
+ {
+ CONST_VTBL struct ISpGramCompBackendVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpGramCompBackend_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpGramCompBackend_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpGramCompBackend_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpGramCompBackend_ResetGrammar(This,NewLanguage) \
+ (This)->lpVtbl -> ResetGrammar(This,NewLanguage)
+
+#define ISpGramCompBackend_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) \
+ (This)->lpVtbl -> GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
+
+#define ISpGramCompBackend_ClearRule(This,hState) \
+ (This)->lpVtbl -> ClearRule(This,hState)
+
+#define ISpGramCompBackend_CreateNewState(This,hState,phState) \
+ (This)->lpVtbl -> CreateNewState(This,hState,phState)
+
+#define ISpGramCompBackend_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) \
+ (This)->lpVtbl -> AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
+
+#define ISpGramCompBackend_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) \
+ (This)->lpVtbl -> AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
+
+#define ISpGramCompBackend_AddResource(This,hRuleState,pszResourceName,pszResourceValue) \
+ (This)->lpVtbl -> AddResource(This,hRuleState,pszResourceName,pszResourceValue)
+
+#define ISpGramCompBackend_Commit(This,dwReserved) \
+ (This)->lpVtbl -> Commit(This,dwReserved)
+
+
+#define ISpGramCompBackend_SetSaveObjects(This,pStream,pErrorLog) \
+ (This)->lpVtbl -> SetSaveObjects(This,pStream,pErrorLog)
+
+#define ISpGramCompBackend_InitFromBinaryGrammar(This,pBinaryData) \
+ (This)->lpVtbl -> InitFromBinaryGrammar(This,pBinaryData)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpGramCompBackend_SetSaveObjects_Proxy(
+ ISpGramCompBackend * This,
+ IStream *pStream,
+ ISpErrorLog *pErrorLog);
+
+
+void __RPC_STUB ISpGramCompBackend_SetSaveObjects_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpGramCompBackend_InitFromBinaryGrammar_Proxy(
+ ISpGramCompBackend * This,
+ const SPBINARYGRAMMAR *pBinaryData);
+
+
+void __RPC_STUB ISpGramCompBackend_InitFromBinaryGrammar_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpGramCompBackend_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpITNProcessor_INTERFACE_DEFINED__
+#define __ISpITNProcessor_INTERFACE_DEFINED__
+
+/* interface ISpITNProcessor */
+/* [restricted][local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpITNProcessor;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("12D7360F-A1C9-11d3-BC90-00C04F72DF9F")
+ ISpITNProcessor : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE LoadITNGrammar(
+ WCHAR *pszCLSID) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ITNPhrase(
+ ISpPhraseBuilder *pPhrase) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpITNProcessorVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpITNProcessor * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpITNProcessor * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpITNProcessor * This);
+
+ HRESULT ( STDMETHODCALLTYPE *LoadITNGrammar )(
+ ISpITNProcessor * This,
+ WCHAR *pszCLSID);
+
+ HRESULT ( STDMETHODCALLTYPE *ITNPhrase )(
+ ISpITNProcessor * This,
+ ISpPhraseBuilder *pPhrase);
+
+ END_INTERFACE
+ } ISpITNProcessorVtbl;
+
+ interface ISpITNProcessor
+ {
+ CONST_VTBL struct ISpITNProcessorVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpITNProcessor_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpITNProcessor_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpITNProcessor_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpITNProcessor_LoadITNGrammar(This,pszCLSID) \
+ (This)->lpVtbl -> LoadITNGrammar(This,pszCLSID)
+
+#define ISpITNProcessor_ITNPhrase(This,pPhrase) \
+ (This)->lpVtbl -> ITNPhrase(This,pPhrase)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpITNProcessor_LoadITNGrammar_Proxy(
+ ISpITNProcessor * This,
+ WCHAR *pszCLSID);
+
+
+void __RPC_STUB ISpITNProcessor_LoadITNGrammar_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpITNProcessor_ITNPhrase_Proxy(
+ ISpITNProcessor * This,
+ ISpPhraseBuilder *pPhrase);
+
+
+void __RPC_STUB ISpITNProcessor_ITNPhrase_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpITNProcessor_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpPhraseBuilder_INTERFACE_DEFINED__
+#define __ISpPhraseBuilder_INTERFACE_DEFINED__
+
+/* interface ISpPhraseBuilder */
+/* [restricted][unique][helpstring][local][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpPhraseBuilder;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("88A3342A-0BED-4834-922B-88D43173162F")
+ ISpPhraseBuilder : public ISpPhrase
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE InitFromPhrase(
+ const SPPHRASE *pPhrase) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE InitFromSerializedPhrase(
+ const SPSERIALIZEDPHRASE *pPhrase) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddElements(
+ ULONG cElements,
+ const SPPHRASEELEMENT *pElement) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddRules(
+ const SPPHRASERULEHANDLE hParent,
+ const SPPHRASERULE *pRule,
+ SPPHRASERULEHANDLE *phNewRule) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddProperties(
+ const SPPHRASEPROPERTYHANDLE hParent,
+ const SPPHRASEPROPERTY *pProperty,
+ SPPHRASEPROPERTYHANDLE *phNewProperty) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddReplacements(
+ ULONG cReplacements,
+ const SPPHRASEREPLACEMENT *pReplacements) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpPhraseBuilderVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpPhraseBuilder * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpPhraseBuilder * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpPhraseBuilder * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPhrase )(
+ ISpPhraseBuilder * This,
+ /* [out] */ SPPHRASE **ppCoMemPhrase);
+
+ HRESULT ( STDMETHODCALLTYPE *GetSerializedPhrase )(
+ ISpPhraseBuilder * This,
+ /* [out] */ SPSERIALIZEDPHRASE **ppCoMemPhrase);
+
+ HRESULT ( STDMETHODCALLTYPE *GetText )(
+ ISpPhraseBuilder * This,
+ /* [in] */ ULONG ulStart,
+ /* [in] */ ULONG ulCount,
+ /* [in] */ BOOL fUseTextReplacements,
+ /* [out] */ WCHAR **ppszCoMemText,
+ /* [out] */ BYTE *pbDisplayAttributes);
+
+ HRESULT ( STDMETHODCALLTYPE *Discard )(
+ ISpPhraseBuilder * This,
+ /* [in] */ DWORD dwValueTypes);
+
+ HRESULT ( STDMETHODCALLTYPE *InitFromPhrase )(
+ ISpPhraseBuilder * This,
+ const SPPHRASE *pPhrase);
+
+ HRESULT ( STDMETHODCALLTYPE *InitFromSerializedPhrase )(
+ ISpPhraseBuilder * This,
+ const SPSERIALIZEDPHRASE *pPhrase);
+
+ HRESULT ( STDMETHODCALLTYPE *AddElements )(
+ ISpPhraseBuilder * This,
+ ULONG cElements,
+ const SPPHRASEELEMENT *pElement);
+
+ HRESULT ( STDMETHODCALLTYPE *AddRules )(
+ ISpPhraseBuilder * This,
+ const SPPHRASERULEHANDLE hParent,
+ const SPPHRASERULE *pRule,
+ SPPHRASERULEHANDLE *phNewRule);
+
+ HRESULT ( STDMETHODCALLTYPE *AddProperties )(
+ ISpPhraseBuilder * This,
+ const SPPHRASEPROPERTYHANDLE hParent,
+ const SPPHRASEPROPERTY *pProperty,
+ SPPHRASEPROPERTYHANDLE *phNewProperty);
+
+ HRESULT ( STDMETHODCALLTYPE *AddReplacements )(
+ ISpPhraseBuilder * This,
+ ULONG cReplacements,
+ const SPPHRASEREPLACEMENT *pReplacements);
+
+ END_INTERFACE
+ } ISpPhraseBuilderVtbl;
+
+ interface ISpPhraseBuilder
+ {
+ CONST_VTBL struct ISpPhraseBuilderVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpPhraseBuilder_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpPhraseBuilder_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpPhraseBuilder_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpPhraseBuilder_GetPhrase(This,ppCoMemPhrase) \
+ (This)->lpVtbl -> GetPhrase(This,ppCoMemPhrase)
+
+#define ISpPhraseBuilder_GetSerializedPhrase(This,ppCoMemPhrase) \
+ (This)->lpVtbl -> GetSerializedPhrase(This,ppCoMemPhrase)
+
+#define ISpPhraseBuilder_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) \
+ (This)->lpVtbl -> GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
+
+#define ISpPhraseBuilder_Discard(This,dwValueTypes) \
+ (This)->lpVtbl -> Discard(This,dwValueTypes)
+
+
+#define ISpPhraseBuilder_InitFromPhrase(This,pPhrase) \
+ (This)->lpVtbl -> InitFromPhrase(This,pPhrase)
+
+#define ISpPhraseBuilder_InitFromSerializedPhrase(This,pPhrase) \
+ (This)->lpVtbl -> InitFromSerializedPhrase(This,pPhrase)
+
+#define ISpPhraseBuilder_AddElements(This,cElements,pElement) \
+ (This)->lpVtbl -> AddElements(This,cElements,pElement)
+
+#define ISpPhraseBuilder_AddRules(This,hParent,pRule,phNewRule) \
+ (This)->lpVtbl -> AddRules(This,hParent,pRule,phNewRule)
+
+#define ISpPhraseBuilder_AddProperties(This,hParent,pProperty,phNewProperty) \
+ (This)->lpVtbl -> AddProperties(This,hParent,pProperty,phNewProperty)
+
+#define ISpPhraseBuilder_AddReplacements(This,cReplacements,pReplacements) \
+ (This)->lpVtbl -> AddReplacements(This,cReplacements,pReplacements)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_InitFromPhrase_Proxy(
+ ISpPhraseBuilder * This,
+ const SPPHRASE *pPhrase);
+
+
+void __RPC_STUB ISpPhraseBuilder_InitFromPhrase_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_InitFromSerializedPhrase_Proxy(
+ ISpPhraseBuilder * This,
+ const SPSERIALIZEDPHRASE *pPhrase);
+
+
+void __RPC_STUB ISpPhraseBuilder_InitFromSerializedPhrase_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_AddElements_Proxy(
+ ISpPhraseBuilder * This,
+ ULONG cElements,
+ const SPPHRASEELEMENT *pElement);
+
+
+void __RPC_STUB ISpPhraseBuilder_AddElements_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_AddRules_Proxy(
+ ISpPhraseBuilder * This,
+ const SPPHRASERULEHANDLE hParent,
+ const SPPHRASERULE *pRule,
+ SPPHRASERULEHANDLE *phNewRule);
+
+
+void __RPC_STUB ISpPhraseBuilder_AddRules_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_AddProperties_Proxy(
+ ISpPhraseBuilder * This,
+ const SPPHRASEPROPERTYHANDLE hParent,
+ const SPPHRASEPROPERTY *pProperty,
+ SPPHRASEPROPERTYHANDLE *phNewProperty);
+
+
+void __RPC_STUB ISpPhraseBuilder_AddProperties_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpPhraseBuilder_AddReplacements_Proxy(
+ ISpPhraseBuilder * This,
+ ULONG cReplacements,
+ const SPPHRASEREPLACEMENT *pReplacements);
+
+
+void __RPC_STUB ISpPhraseBuilder_AddReplacements_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpPhraseBuilder_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapiddk_0344 */
+/* [local] */
+
+#if defined(__cplusplus)
+interface ISpTask
+{
+virtual HRESULT STDMETHODCALLTYPE Execute(
+ void *pvTaskData,
+ volatile const BOOL* pfContinueProcessing) = 0;
+};
+#else
+typedef void *ISpTask;
+
+#endif
+#if defined(__cplusplus)
+interface ISpThreadTask
+{
+virtual HRESULT STDMETHODCALLTYPE InitThread(
+ void * pvTaskData,
+ HWND hwnd) = 0;
+virtual HRESULT STDMETHODCALLTYPE ThreadProc(
+ void *pvTaskData,
+ HANDLE hExitThreadEvent,
+ HANDLE hNotifyEvent,
+ HWND hwndWorker,
+ volatile const BOOL * pfContinueProcessing) = 0;
+virtual LRESULT STDMETHODCALLTYPE WindowMessage(
+ void *pvTaskData,
+ HWND hWnd,
+ UINT Msg,
+ WPARAM wParam,
+ LPARAM lParam) = 0;
+};
+#else
+typedef void *ISpThreadTask;
+
+#endif
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0344_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0344_v0_0_s_ifspec;
+
+#ifndef __ISpThreadControl_INTERFACE_DEFINED__
+#define __ISpThreadControl_INTERFACE_DEFINED__
+
+/* interface ISpThreadControl */
+/* [restricted][local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpThreadControl;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A6BE4D73-4403-4358-B22D-0346E23B1764")
+ ISpThreadControl : public ISpNotifySink
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE StartThread(
+ DWORD dwFlags,
+ HWND *phwnd) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WaitForThreadDone(
+ BOOL fForceStop,
+ HRESULT *phrThreadResult,
+ ULONG msTimeOut) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE TerminateThread( void) = 0;
+
+ virtual HANDLE STDMETHODCALLTYPE ThreadHandle( void) = 0;
+
+ virtual DWORD STDMETHODCALLTYPE ThreadId( void) = 0;
+
+ virtual HANDLE STDMETHODCALLTYPE NotifyEvent( void) = 0;
+
+ virtual HWND STDMETHODCALLTYPE WindowHandle( void) = 0;
+
+ virtual HANDLE STDMETHODCALLTYPE ThreadCompleteEvent( void) = 0;
+
+ virtual HANDLE STDMETHODCALLTYPE ExitThreadEvent( void) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpThreadControlVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpThreadControl * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpThreadControl * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpThreadControl * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Notify )(
+ ISpThreadControl * This);
+
+ HRESULT ( STDMETHODCALLTYPE *StartThread )(
+ ISpThreadControl * This,
+ DWORD dwFlags,
+ HWND *phwnd);
+
+ HRESULT ( STDMETHODCALLTYPE *WaitForThreadDone )(
+ ISpThreadControl * This,
+ BOOL fForceStop,
+ HRESULT *phrThreadResult,
+ ULONG msTimeOut);
+
+ HRESULT ( STDMETHODCALLTYPE *TerminateThread )(
+ ISpThreadControl * This);
+
+ HANDLE ( STDMETHODCALLTYPE *ThreadHandle )(
+ ISpThreadControl * This);
+
+ DWORD ( STDMETHODCALLTYPE *ThreadId )(
+ ISpThreadControl * This);
+
+ HANDLE ( STDMETHODCALLTYPE *NotifyEvent )(
+ ISpThreadControl * This);
+
+ HWND ( STDMETHODCALLTYPE *WindowHandle )(
+ ISpThreadControl * This);
+
+ HANDLE ( STDMETHODCALLTYPE *ThreadCompleteEvent )(
+ ISpThreadControl * This);
+
+ HANDLE ( STDMETHODCALLTYPE *ExitThreadEvent )(
+ ISpThreadControl * This);
+
+ END_INTERFACE
+ } ISpThreadControlVtbl;
+
+ interface ISpThreadControl
+ {
+ CONST_VTBL struct ISpThreadControlVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpThreadControl_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpThreadControl_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpThreadControl_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpThreadControl_Notify(This) \
+ (This)->lpVtbl -> Notify(This)
+
+
+#define ISpThreadControl_StartThread(This,dwFlags,phwnd) \
+ (This)->lpVtbl -> StartThread(This,dwFlags,phwnd)
+
+#define ISpThreadControl_WaitForThreadDone(This,fForceStop,phrThreadResult,msTimeOut) \
+ (This)->lpVtbl -> WaitForThreadDone(This,fForceStop,phrThreadResult,msTimeOut)
+
+#define ISpThreadControl_TerminateThread(This) \
+ (This)->lpVtbl -> TerminateThread(This)
+
+#define ISpThreadControl_ThreadHandle(This) \
+ (This)->lpVtbl -> ThreadHandle(This)
+
+#define ISpThreadControl_ThreadId(This) \
+ (This)->lpVtbl -> ThreadId(This)
+
+#define ISpThreadControl_NotifyEvent(This) \
+ (This)->lpVtbl -> NotifyEvent(This)
+
+#define ISpThreadControl_WindowHandle(This) \
+ (This)->lpVtbl -> WindowHandle(This)
+
+#define ISpThreadControl_ThreadCompleteEvent(This) \
+ (This)->lpVtbl -> ThreadCompleteEvent(This)
+
+#define ISpThreadControl_ExitThreadEvent(This) \
+ (This)->lpVtbl -> ExitThreadEvent(This)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpThreadControl_StartThread_Proxy(
+ ISpThreadControl * This,
+ DWORD dwFlags,
+ HWND *phwnd);
+
+
+void __RPC_STUB ISpThreadControl_StartThread_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpThreadControl_WaitForThreadDone_Proxy(
+ ISpThreadControl * This,
+ BOOL fForceStop,
+ HRESULT *phrThreadResult,
+ ULONG msTimeOut);
+
+
+void __RPC_STUB ISpThreadControl_WaitForThreadDone_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpThreadControl_TerminateThread_Proxy(
+ ISpThreadControl * This);
+
+
+void __RPC_STUB ISpThreadControl_TerminateThread_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HANDLE STDMETHODCALLTYPE ISpThreadControl_ThreadHandle_Proxy(
+ ISpThreadControl * This);
+
+
+void __RPC_STUB ISpThreadControl_ThreadHandle_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+DWORD STDMETHODCALLTYPE ISpThreadControl_ThreadId_Proxy(
+ ISpThreadControl * This);
+
+
+void __RPC_STUB ISpThreadControl_ThreadId_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HANDLE STDMETHODCALLTYPE ISpThreadControl_NotifyEvent_Proxy(
+ ISpThreadControl * This);
+
+
+void __RPC_STUB ISpThreadControl_NotifyEvent_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HWND STDMETHODCALLTYPE ISpThreadControl_WindowHandle_Proxy(
+ ISpThreadControl * This);
+
+
+void __RPC_STUB ISpThreadControl_WindowHandle_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HANDLE STDMETHODCALLTYPE ISpThreadControl_ThreadCompleteEvent_Proxy(
+ ISpThreadControl * This);
+
+
+void __RPC_STUB ISpThreadControl_ThreadCompleteEvent_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HANDLE STDMETHODCALLTYPE ISpThreadControl_ExitThreadEvent_Proxy(
+ ISpThreadControl * This);
+
+
+void __RPC_STUB ISpThreadControl_ExitThreadEvent_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpThreadControl_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapiddk_0345 */
+/* [local] */
+
+typedef /* [restricted] */ struct SPTMTHREADINFO
+ {
+ long lPoolSize;
+ long lPriority;
+ ULONG ulConcurrencyLimit;
+ ULONG ulMaxQuickAllocThreads;
+ } SPTMTHREADINFO;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0345_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0345_v0_0_s_ifspec;
+
+#ifndef __ISpTaskManager_INTERFACE_DEFINED__
+#define __ISpTaskManager_INTERFACE_DEFINED__
+
+/* interface ISpTaskManager */
+/* [object][restricted][unique][helpstring][uuid][local] */
+
+
+EXTERN_C const IID IID_ISpTaskManager;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("2BAEEF81-2CA3-4331-98F3-26EC5ABEFB03")
+ ISpTaskManager : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetThreadPoolInfo(
+ /* [in] */ const SPTMTHREADINFO *pPoolInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetThreadPoolInfo(
+ /* [out] */ SPTMTHREADINFO *pPoolInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE QueueTask(
+ /* [in] */ ISpTask *pTask,
+ /* [in] */ void *pvTaskData,
+ /* [in] */ HANDLE hCompEvent,
+ /* [out][in] */ DWORD *pdwGroupId,
+ /* [out] */ DWORD *pTaskID) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateReoccurringTask(
+ /* [in] */ ISpTask *pTask,
+ /* [in] */ void *pvTaskData,
+ /* [in] */ HANDLE hCompEvent,
+ /* [out] */ ISpNotifySink **ppTaskCtrl) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateThreadControl(
+ /* [in] */ ISpThreadTask *pTask,
+ /* [in] */ void *pvTaskData,
+ /* [in] */ long nPriority,
+ /* [out] */ ISpThreadControl **ppTaskCtrl) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE TerminateTask(
+ /* [in] */ DWORD dwTaskId,
+ /* [in] */ ULONG ulWaitPeriod) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE TerminateTaskGroup(
+ /* [in] */ DWORD dwGroupId,
+ /* [in] */ ULONG ulWaitPeriod) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpTaskManagerVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpTaskManager * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpTaskManager * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpTaskManager * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetThreadPoolInfo )(
+ ISpTaskManager * This,
+ /* [in] */ const SPTMTHREADINFO *pPoolInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetThreadPoolInfo )(
+ ISpTaskManager * This,
+ /* [out] */ SPTMTHREADINFO *pPoolInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *QueueTask )(
+ ISpTaskManager * This,
+ /* [in] */ ISpTask *pTask,
+ /* [in] */ void *pvTaskData,
+ /* [in] */ HANDLE hCompEvent,
+ /* [out][in] */ DWORD *pdwGroupId,
+ /* [out] */ DWORD *pTaskID);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateReoccurringTask )(
+ ISpTaskManager * This,
+ /* [in] */ ISpTask *pTask,
+ /* [in] */ void *pvTaskData,
+ /* [in] */ HANDLE hCompEvent,
+ /* [out] */ ISpNotifySink **ppTaskCtrl);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateThreadControl )(
+ ISpTaskManager * This,
+ /* [in] */ ISpThreadTask *pTask,
+ /* [in] */ void *pvTaskData,
+ /* [in] */ long nPriority,
+ /* [out] */ ISpThreadControl **ppTaskCtrl);
+
+ HRESULT ( STDMETHODCALLTYPE *TerminateTask )(
+ ISpTaskManager * This,
+ /* [in] */ DWORD dwTaskId,
+ /* [in] */ ULONG ulWaitPeriod);
+
+ HRESULT ( STDMETHODCALLTYPE *TerminateTaskGroup )(
+ ISpTaskManager * This,
+ /* [in] */ DWORD dwGroupId,
+ /* [in] */ ULONG ulWaitPeriod);
+
+ END_INTERFACE
+ } ISpTaskManagerVtbl;
+
+ interface ISpTaskManager
+ {
+ CONST_VTBL struct ISpTaskManagerVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpTaskManager_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpTaskManager_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpTaskManager_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpTaskManager_SetThreadPoolInfo(This,pPoolInfo) \
+ (This)->lpVtbl -> SetThreadPoolInfo(This,pPoolInfo)
+
+#define ISpTaskManager_GetThreadPoolInfo(This,pPoolInfo) \
+ (This)->lpVtbl -> GetThreadPoolInfo(This,pPoolInfo)
+
+#define ISpTaskManager_QueueTask(This,pTask,pvTaskData,hCompEvent,pdwGroupId,pTaskID) \
+ (This)->lpVtbl -> QueueTask(This,pTask,pvTaskData,hCompEvent,pdwGroupId,pTaskID)
+
+#define ISpTaskManager_CreateReoccurringTask(This,pTask,pvTaskData,hCompEvent,ppTaskCtrl) \
+ (This)->lpVtbl -> CreateReoccurringTask(This,pTask,pvTaskData,hCompEvent,ppTaskCtrl)
+
+#define ISpTaskManager_CreateThreadControl(This,pTask,pvTaskData,nPriority,ppTaskCtrl) \
+ (This)->lpVtbl -> CreateThreadControl(This,pTask,pvTaskData,nPriority,ppTaskCtrl)
+
+#define ISpTaskManager_TerminateTask(This,dwTaskId,ulWaitPeriod) \
+ (This)->lpVtbl -> TerminateTask(This,dwTaskId,ulWaitPeriod)
+
+#define ISpTaskManager_TerminateTaskGroup(This,dwGroupId,ulWaitPeriod) \
+ (This)->lpVtbl -> TerminateTaskGroup(This,dwGroupId,ulWaitPeriod)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpTaskManager_SetThreadPoolInfo_Proxy(
+ ISpTaskManager * This,
+ /* [in] */ const SPTMTHREADINFO *pPoolInfo);
+
+
+void __RPC_STUB ISpTaskManager_SetThreadPoolInfo_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpTaskManager_GetThreadPoolInfo_Proxy(
+ ISpTaskManager * This,
+ /* [out] */ SPTMTHREADINFO *pPoolInfo);
+
+
+void __RPC_STUB ISpTaskManager_GetThreadPoolInfo_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpTaskManager_QueueTask_Proxy(
+ ISpTaskManager * This,
+ /* [in] */ ISpTask *pTask,
+ /* [in] */ void *pvTaskData,
+ /* [in] */ HANDLE hCompEvent,
+ /* [out][in] */ DWORD *pdwGroupId,
+ /* [out] */ DWORD *pTaskID);
+
+
+void __RPC_STUB ISpTaskManager_QueueTask_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpTaskManager_CreateReoccurringTask_Proxy(
+ ISpTaskManager * This,
+ /* [in] */ ISpTask *pTask,
+ /* [in] */ void *pvTaskData,
+ /* [in] */ HANDLE hCompEvent,
+ /* [out] */ ISpNotifySink **ppTaskCtrl);
+
+
+void __RPC_STUB ISpTaskManager_CreateReoccurringTask_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpTaskManager_CreateThreadControl_Proxy(
+ ISpTaskManager * This,
+ /* [in] */ ISpThreadTask *pTask,
+ /* [in] */ void *pvTaskData,
+ /* [in] */ long nPriority,
+ /* [out] */ ISpThreadControl **ppTaskCtrl);
+
+
+void __RPC_STUB ISpTaskManager_CreateThreadControl_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpTaskManager_TerminateTask_Proxy(
+ ISpTaskManager * This,
+ /* [in] */ DWORD dwTaskId,
+ /* [in] */ ULONG ulWaitPeriod);
+
+
+void __RPC_STUB ISpTaskManager_TerminateTask_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpTaskManager_TerminateTaskGroup_Proxy(
+ ISpTaskManager * This,
+ /* [in] */ DWORD dwGroupId,
+ /* [in] */ ULONG ulWaitPeriod);
+
+
+void __RPC_STUB ISpTaskManager_TerminateTaskGroup_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpTaskManager_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapiddk_0346 */
+/* [local] */
+
+typedef
+enum SPVSKIPTYPE
+ { SPVST_SENTENCE = 1L << 0
+ } SPVSKIPTYPE;
+
+typedef
+enum SPVESACTIONS
+ { SPVES_CONTINUE = 0,
+ SPVES_ABORT = 1L << 0,
+ SPVES_SKIP = 1L << 1,
+ SPVES_RATE = 1L << 2,
+ SPVES_VOLUME = 1L << 3
+ } SPVESACTIONS;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0346_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0346_v0_0_s_ifspec;
+
+#ifndef __ISpTTSEngineSite_INTERFACE_DEFINED__
+#define __ISpTTSEngineSite_INTERFACE_DEFINED__
+
+/* interface ISpTTSEngineSite */
+/* [unique][helpstring][uuid][local][object] */
+
+
+EXTERN_C const IID IID_ISpTTSEngineSite;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("9880499B-CCE9-11d2-B503-00C04F797396")
+ ISpTTSEngineSite : public ISpEventSink
+ {
+ public:
+ virtual DWORD STDMETHODCALLTYPE GetActions( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Write(
+ /* [in] */ const void *pBuff,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbWritten) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRate(
+ /* [out] */ long *pRateAdjust) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVolume(
+ /* [out] */ USHORT *pusVolume) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSkipInfo(
+ /* [out] */ SPVSKIPTYPE *peType,
+ /* [out] */ long *plNumItems) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CompleteSkip(
+ /* [in] */ long ulNumSkipped) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpTTSEngineSiteVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpTTSEngineSite * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpTTSEngineSite * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpTTSEngineSite * This);
+
+ HRESULT ( STDMETHODCALLTYPE *AddEvents )(
+ ISpTTSEngineSite * This,
+ /* [in] */ const SPEVENT *pEventArray,
+ /* [in] */ ULONG ulCount);
+
+ HRESULT ( STDMETHODCALLTYPE *GetEventInterest )(
+ ISpTTSEngineSite * This,
+ /* [out] */ ULONGLONG *pullEventInterest);
+
+ DWORD ( STDMETHODCALLTYPE *GetActions )(
+ ISpTTSEngineSite * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Write )(
+ ISpTTSEngineSite * This,
+ /* [in] */ const void *pBuff,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbWritten);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRate )(
+ ISpTTSEngineSite * This,
+ /* [out] */ long *pRateAdjust);
+
+ HRESULT ( STDMETHODCALLTYPE *GetVolume )(
+ ISpTTSEngineSite * This,
+ /* [out] */ USHORT *pusVolume);
+
+ HRESULT ( STDMETHODCALLTYPE *GetSkipInfo )(
+ ISpTTSEngineSite * This,
+ /* [out] */ SPVSKIPTYPE *peType,
+ /* [out] */ long *plNumItems);
+
+ HRESULT ( STDMETHODCALLTYPE *CompleteSkip )(
+ ISpTTSEngineSite * This,
+ /* [in] */ long ulNumSkipped);
+
+ END_INTERFACE
+ } ISpTTSEngineSiteVtbl;
+
+ interface ISpTTSEngineSite
+ {
+ CONST_VTBL struct ISpTTSEngineSiteVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpTTSEngineSite_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpTTSEngineSite_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpTTSEngineSite_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpTTSEngineSite_AddEvents(This,pEventArray,ulCount) \
+ (This)->lpVtbl -> AddEvents(This,pEventArray,ulCount)
+
+#define ISpTTSEngineSite_GetEventInterest(This,pullEventInterest) \
+ (This)->lpVtbl -> GetEventInterest(This,pullEventInterest)
+
+
+#define ISpTTSEngineSite_GetActions(This) \
+ (This)->lpVtbl -> GetActions(This)
+
+#define ISpTTSEngineSite_Write(This,pBuff,cb,pcbWritten) \
+ (This)->lpVtbl -> Write(This,pBuff,cb,pcbWritten)
+
+#define ISpTTSEngineSite_GetRate(This,pRateAdjust) \
+ (This)->lpVtbl -> GetRate(This,pRateAdjust)
+
+#define ISpTTSEngineSite_GetVolume(This,pusVolume) \
+ (This)->lpVtbl -> GetVolume(This,pusVolume)
+
+#define ISpTTSEngineSite_GetSkipInfo(This,peType,plNumItems) \
+ (This)->lpVtbl -> GetSkipInfo(This,peType,plNumItems)
+
+#define ISpTTSEngineSite_CompleteSkip(This,ulNumSkipped) \
+ (This)->lpVtbl -> CompleteSkip(This,ulNumSkipped)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+DWORD STDMETHODCALLTYPE ISpTTSEngineSite_GetActions_Proxy(
+ ISpTTSEngineSite * This);
+
+
+void __RPC_STUB ISpTTSEngineSite_GetActions_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_Write_Proxy(
+ ISpTTSEngineSite * This,
+ /* [in] */ const void *pBuff,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbWritten);
+
+
+void __RPC_STUB ISpTTSEngineSite_Write_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_GetRate_Proxy(
+ ISpTTSEngineSite * This,
+ /* [out] */ long *pRateAdjust);
+
+
+void __RPC_STUB ISpTTSEngineSite_GetRate_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_GetVolume_Proxy(
+ ISpTTSEngineSite * This,
+ /* [out] */ USHORT *pusVolume);
+
+
+void __RPC_STUB ISpTTSEngineSite_GetVolume_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_GetSkipInfo_Proxy(
+ ISpTTSEngineSite * This,
+ /* [out] */ SPVSKIPTYPE *peType,
+ /* [out] */ long *plNumItems);
+
+
+void __RPC_STUB ISpTTSEngineSite_GetSkipInfo_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpTTSEngineSite_CompleteSkip_Proxy(
+ ISpTTSEngineSite * This,
+ /* [in] */ long ulNumSkipped);
+
+
+void __RPC_STUB ISpTTSEngineSite_CompleteSkip_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpTTSEngineSite_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapiddk_0347 */
+/* [local] */
+
+typedef struct SPVTEXTFRAG
+ {
+ struct SPVTEXTFRAG *pNext;
+ SPVSTATE State;
+ LPCWSTR pTextStart;
+ ULONG ulTextLen;
+ ULONG ulTextSrcOffset;
+ } SPVTEXTFRAG;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0347_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0347_v0_0_s_ifspec;
+
+#ifndef __ISpTTSEngine_INTERFACE_DEFINED__
+#define __ISpTTSEngine_INTERFACE_DEFINED__
+
+/* interface ISpTTSEngine */
+/* [unique][helpstring][uuid][local][object] */
+
+
+EXTERN_C const IID IID_ISpTTSEngine;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A74D7C8E-4CC5-4f2f-A6EB-804DEE18500E")
+ ISpTTSEngine : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE Speak(
+ /* [in] */ DWORD dwSpeakFlags,
+ /* [in] */ REFGUID rguidFormatId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
+ /* [in] */ const SPVTEXTFRAG *pTextFragList,
+ /* [in] */ ISpTTSEngineSite *pOutputSite) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetOutputFormat(
+ /* [in] */ const GUID *pTargetFmtId,
+ /* [in] */ const WAVEFORMATEX *pTargetWaveFormatEx,
+ /* [out] */ GUID *pOutputFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemOutputWaveFormatEx) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpTTSEngineVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpTTSEngine * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpTTSEngine * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpTTSEngine * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Speak )(
+ ISpTTSEngine * This,
+ /* [in] */ DWORD dwSpeakFlags,
+ /* [in] */ REFGUID rguidFormatId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
+ /* [in] */ const SPVTEXTFRAG *pTextFragList,
+ /* [in] */ ISpTTSEngineSite *pOutputSite);
+
+ HRESULT ( STDMETHODCALLTYPE *GetOutputFormat )(
+ ISpTTSEngine * This,
+ /* [in] */ const GUID *pTargetFmtId,
+ /* [in] */ const WAVEFORMATEX *pTargetWaveFormatEx,
+ /* [out] */ GUID *pOutputFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemOutputWaveFormatEx);
+
+ END_INTERFACE
+ } ISpTTSEngineVtbl;
+
+ interface ISpTTSEngine
+ {
+ CONST_VTBL struct ISpTTSEngineVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpTTSEngine_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpTTSEngine_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpTTSEngine_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpTTSEngine_Speak(This,dwSpeakFlags,rguidFormatId,pWaveFormatEx,pTextFragList,pOutputSite) \
+ (This)->lpVtbl -> Speak(This,dwSpeakFlags,rguidFormatId,pWaveFormatEx,pTextFragList,pOutputSite)
+
+#define ISpTTSEngine_GetOutputFormat(This,pTargetFmtId,pTargetWaveFormatEx,pOutputFormatId,ppCoMemOutputWaveFormatEx) \
+ (This)->lpVtbl -> GetOutputFormat(This,pTargetFmtId,pTargetWaveFormatEx,pOutputFormatId,ppCoMemOutputWaveFormatEx)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpTTSEngine_Speak_Proxy(
+ ISpTTSEngine * This,
+ /* [in] */ DWORD dwSpeakFlags,
+ /* [in] */ REFGUID rguidFormatId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
+ /* [in] */ const SPVTEXTFRAG *pTextFragList,
+ /* [in] */ ISpTTSEngineSite *pOutputSite);
+
+
+void __RPC_STUB ISpTTSEngine_Speak_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpTTSEngine_GetOutputFormat_Proxy(
+ ISpTTSEngine * This,
+ /* [in] */ const GUID *pTargetFmtId,
+ /* [in] */ const WAVEFORMATEX *pTargetWaveFormatEx,
+ /* [out] */ GUID *pOutputFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemOutputWaveFormatEx);
+
+
+void __RPC_STUB ISpTTSEngine_GetOutputFormat_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpTTSEngine_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapiddk_0348 */
+/* [local] */
+
+typedef /* [restricted] */ struct SPWORDENTRY
+ {
+ SPWORDHANDLE hWord;
+ WORD LangID;
+ WCHAR *pszDisplayText;
+ WCHAR *pszLexicalForm;
+ SPPHONEID *aPhoneId;
+ void *pvClientContext;
+ } SPWORDENTRY;
+
+typedef /* [restricted] */ struct SPRULEENTRY
+ {
+ SPRULEHANDLE hRule;
+ SPSTATEHANDLE hInitialState;
+ DWORD Attributes;
+ void *pvClientRuleContext;
+ void *pvClientGrammarContext;
+ } SPRULEENTRY;
+
+typedef
+enum SPTRANSITIONTYPE
+ { SPTRANSEPSILON = 0,
+ SPTRANSWORD = SPTRANSEPSILON + 1,
+ SPTRANSRULE = SPTRANSWORD + 1,
+ SPTRANSTEXTBUF = SPTRANSRULE + 1,
+ SPTRANSWILDCARD = SPTRANSTEXTBUF + 1,
+ SPTRANSDICTATION = SPTRANSWILDCARD + 1
+ } SPTRANSITIONTYPE;
+
+typedef /* [restricted] */ struct SPTRANSITIONENTRY
+ {
+ SPTRANSITIONID ID;
+ SPSTATEHANDLE hNextState;
+ BYTE Type;
+ char RequiredConfidence;
+ struct
+ {
+ DWORD fHasProperty;
+ } ;
+ float Weight;
+ union
+ {
+ struct
+ {
+ SPSTATEHANDLE hRuleInitialState;
+ SPRULEHANDLE hRule;
+ void *pvClientRuleContext;
+ } ;
+ struct
+ {
+ SPWORDHANDLE hWord;
+ void *pvClientWordContext;
+ } ;
+ struct
+ {
+ void *pvGrammarCookie;
+ } ;
+ } ;
+ } SPTRANSITIONENTRY;
+
+typedef /* [restricted] */ struct SPTRANSITIONPROPERTY
+ {
+ const WCHAR *pszName;
+ ULONG ulId;
+ const WCHAR *pszValue;
+ VARIANT vValue;
+ } SPTRANSITIONPROPERTY;
+
+typedef /* [restricted] */ struct SPSTATEINFO
+ {
+ ULONG cAllocatedEntries;
+ SPTRANSITIONENTRY *pTransitions;
+ ULONG cEpsilons;
+ ULONG cRules;
+ ULONG cWords;
+ ULONG cSpecialTransitions;
+ } SPSTATEINFO;
+
+typedef /* [restricted] */ struct SPPATHENTRY
+ {
+ SPTRANSITIONID hTransition;
+ SPPHRASEELEMENT elem;
+ } SPPATHENTRY;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0348_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0348_v0_0_s_ifspec;
+
+#ifndef __ISpCFGInterpreterSite_INTERFACE_DEFINED__
+#define __ISpCFGInterpreterSite_INTERFACE_DEFINED__
+
+/* interface ISpCFGInterpreterSite */
+/* [restricted][local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpCFGInterpreterSite;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6A6FFAD8-78B6-473d-B844-98152E4FB16B")
+ ISpCFGInterpreterSite : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE AddTextReplacement(
+ /* [in] */ SPPHRASEREPLACEMENT *pReplace) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddProperty(
+ /* [in] */ const SPPHRASEPROPERTY *pProperty) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetResourceValue(
+ /* [in] */ const WCHAR *pszResourceName,
+ /* [out] */ WCHAR **ppCoMemResource) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpCFGInterpreterSiteVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpCFGInterpreterSite * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpCFGInterpreterSite * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpCFGInterpreterSite * This);
+
+ HRESULT ( STDMETHODCALLTYPE *AddTextReplacement )(
+ ISpCFGInterpreterSite * This,
+ /* [in] */ SPPHRASEREPLACEMENT *pReplace);
+
+ HRESULT ( STDMETHODCALLTYPE *AddProperty )(
+ ISpCFGInterpreterSite * This,
+ /* [in] */ const SPPHRASEPROPERTY *pProperty);
+
+ HRESULT ( STDMETHODCALLTYPE *GetResourceValue )(
+ ISpCFGInterpreterSite * This,
+ /* [in] */ const WCHAR *pszResourceName,
+ /* [out] */ WCHAR **ppCoMemResource);
+
+ END_INTERFACE
+ } ISpCFGInterpreterSiteVtbl;
+
+ interface ISpCFGInterpreterSite
+ {
+ CONST_VTBL struct ISpCFGInterpreterSiteVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpCFGInterpreterSite_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpCFGInterpreterSite_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpCFGInterpreterSite_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpCFGInterpreterSite_AddTextReplacement(This,pReplace) \
+ (This)->lpVtbl -> AddTextReplacement(This,pReplace)
+
+#define ISpCFGInterpreterSite_AddProperty(This,pProperty) \
+ (This)->lpVtbl -> AddProperty(This,pProperty)
+
+#define ISpCFGInterpreterSite_GetResourceValue(This,pszResourceName,ppCoMemResource) \
+ (This)->lpVtbl -> GetResourceValue(This,pszResourceName,ppCoMemResource)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpCFGInterpreterSite_AddTextReplacement_Proxy(
+ ISpCFGInterpreterSite * This,
+ /* [in] */ SPPHRASEREPLACEMENT *pReplace);
+
+
+void __RPC_STUB ISpCFGInterpreterSite_AddTextReplacement_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpCFGInterpreterSite_AddProperty_Proxy(
+ ISpCFGInterpreterSite * This,
+ /* [in] */ const SPPHRASEPROPERTY *pProperty);
+
+
+void __RPC_STUB ISpCFGInterpreterSite_AddProperty_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpCFGInterpreterSite_GetResourceValue_Proxy(
+ ISpCFGInterpreterSite * This,
+ /* [in] */ const WCHAR *pszResourceName,
+ /* [out] */ WCHAR **ppCoMemResource);
+
+
+void __RPC_STUB ISpCFGInterpreterSite_GetResourceValue_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpCFGInterpreterSite_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISpCFGInterpreter_INTERFACE_DEFINED__
+#define __ISpCFGInterpreter_INTERFACE_DEFINED__
+
+/* interface ISpCFGInterpreter */
+/* [restricted][local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpCFGInterpreter;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("F3D3F926-11FC-11d3-BB97-00C04F8EE6C0")
+ ISpCFGInterpreter : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE InitGrammar(
+ /* [in] */ const WCHAR *pszGrammarName,
+ /* [in] */ const void **pvGrammarData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Interpret(
+ /* [in] */ ISpPhraseBuilder *pPhrase,
+ /* [in] */ const ULONG ulFirstElement,
+ /* [in] */ const ULONG ulCountOfElements,
+ /* [in] */ ISpCFGInterpreterSite *pSite) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpCFGInterpreterVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpCFGInterpreter * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpCFGInterpreter * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpCFGInterpreter * This);
+
+ HRESULT ( STDMETHODCALLTYPE *InitGrammar )(
+ ISpCFGInterpreter * This,
+ /* [in] */ const WCHAR *pszGrammarName,
+ /* [in] */ const void **pvGrammarData);
+
+ HRESULT ( STDMETHODCALLTYPE *Interpret )(
+ ISpCFGInterpreter * This,
+ /* [in] */ ISpPhraseBuilder *pPhrase,
+ /* [in] */ const ULONG ulFirstElement,
+ /* [in] */ const ULONG ulCountOfElements,
+ /* [in] */ ISpCFGInterpreterSite *pSite);
+
+ END_INTERFACE
+ } ISpCFGInterpreterVtbl;
+
+ interface ISpCFGInterpreter
+ {
+ CONST_VTBL struct ISpCFGInterpreterVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpCFGInterpreter_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpCFGInterpreter_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpCFGInterpreter_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpCFGInterpreter_InitGrammar(This,pszGrammarName,pvGrammarData) \
+ (This)->lpVtbl -> InitGrammar(This,pszGrammarName,pvGrammarData)
+
+#define ISpCFGInterpreter_Interpret(This,pPhrase,ulFirstElement,ulCountOfElements,pSite) \
+ (This)->lpVtbl -> Interpret(This,pPhrase,ulFirstElement,ulCountOfElements,pSite)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpCFGInterpreter_InitGrammar_Proxy(
+ ISpCFGInterpreter * This,
+ /* [in] */ const WCHAR *pszGrammarName,
+ /* [in] */ const void **pvGrammarData);
+
+
+void __RPC_STUB ISpCFGInterpreter_InitGrammar_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpCFGInterpreter_Interpret_Proxy(
+ ISpCFGInterpreter * This,
+ /* [in] */ ISpPhraseBuilder *pPhrase,
+ /* [in] */ const ULONG ulFirstElement,
+ /* [in] */ const ULONG ulCountOfElements,
+ /* [in] */ ISpCFGInterpreterSite *pSite);
+
+
+void __RPC_STUB ISpCFGInterpreter_Interpret_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpCFGInterpreter_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapiddk_0350 */
+/* [local] */
+
+typedef
+enum SPCFGNOTIFY
+ { SPCFGN_ADD = 0,
+ SPCFGN_REMOVE = SPCFGN_ADD + 1,
+ SPCFGN_INVALIDATE = SPCFGN_REMOVE + 1,
+ SPCFGN_ACTIVATE = SPCFGN_INVALIDATE + 1,
+ SPCFGN_DEACTIVATE = SPCFGN_ACTIVATE + 1
+ } SPCFGNOTIFY;
+
+typedef
+enum SPRESULTTYPE
+ { SPRT_CFG = 0,
+ SPRT_SLM = 1,
+ SPRT_PROPRIETARY = 2,
+ SPRT_FALSE_RECOGNITION = 1L << 2
+ } SPRESULTTYPE;
+
+typedef struct tagSPPHRASEALT
+ {
+ ISpPhraseBuilder *pPhrase;
+ ULONG ulStartElementInParent;
+ ULONG cElementsInParent;
+ ULONG cElementsInAlternate;
+ void *pvAltExtra;
+ ULONG cbAltExtra;
+ } SPPHRASEALT;
+
+typedef struct SPRECORESULTINFO
+ {
+ ULONG cbSize;
+ SPRESULTTYPE eResultType;
+ BOOL fHypothesis;
+ BOOL fProprietaryAutoPause;
+ ULONGLONG ullStreamPosStart;
+ ULONGLONG ullStreamPosEnd;
+ SPGRAMMARHANDLE hGrammar;
+ ULONG ulSizeEngineData;
+ void *pvEngineData;
+ ISpPhraseBuilder *pPhrase;
+ SPPHRASEALT *aPhraseAlts;
+ ULONG ulNumAlts;
+ } SPRECORESULTINFO;
+
+typedef
+enum SPWORDINFOOPT
+ { SPWIO_NONE = 0,
+ SPWIO_WANT_TEXT = 1
+ } SPWORDINFOOPT;
+
+typedef
+enum SPRULEINFOOPT
+ { SPRIO_NONE = 0
+ } SPRULEINFOOPT;
+
+typedef struct SPPARSEINFO
+ {
+ ULONG cbSize;
+ SPRULEHANDLE hRule;
+ ULONGLONG ullAudioStreamPosition;
+ ULONG ulAudioSize;
+ ULONG cTransitions;
+ SPPATHENTRY *pPath;
+ GUID SREngineID;
+ ULONG ulSREnginePrivateDataSize;
+ const BYTE *pSREnginePrivateData;
+ BOOL fHypothesis;
+ } SPPARSEINFO;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0350_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0350_v0_0_s_ifspec;
+
+#ifndef __ISpSREngineSite_INTERFACE_DEFINED__
+#define __ISpSREngineSite_INTERFACE_DEFINED__
+
+/* interface ISpSREngineSite */
+/* [local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpSREngineSite;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("3B414AEC-720C-4883-B9EF-178CD394FB3A")
+ ISpSREngineSite : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE Read(
+ /* [in] */ void *pv,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbRead) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DataAvailable(
+ ULONG *pcb) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
+ /* [in] */ ULONG cbSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ParseFromTransitions(
+ /* [in] */ const SPPARSEINFO *pParseInfo,
+ /* [out] */ ISpPhraseBuilder **ppNewPhrase) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Recognition(
+ /* [in] */ const SPRECORESULTINFO *pResultInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddEvent(
+ /* [in] */ const SPEVENT *pEvent,
+ /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Synchronize(
+ /* [in] */ ULONGLONG ullProcessedThruPos) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetWordInfo(
+ /* [out][in] */ SPWORDENTRY *pWordEntry,
+ /* [in] */ SPWORDINFOOPT Options) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetWordClientContext(
+ SPWORDHANDLE hWord,
+ void *pvClientContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRuleInfo(
+ /* [out][in] */ SPRULEENTRY *pRuleEntry,
+ /* [in] */ SPRULEINFOOPT Options) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetRuleClientContext(
+ SPRULEHANDLE hRule,
+ void *pvClientContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStateInfo(
+ SPSTATEHANDLE hState,
+ SPSTATEINFO *pStateInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetResource(
+ /* [in] */ SPRULEHANDLE hRule,
+ /* [in] */ const WCHAR *pszResourceName,
+ /* [out] */ WCHAR **ppCoMemResource) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTransitionProperty(
+ /* [in] */ SPTRANSITIONID ID,
+ /* [out] */ SPTRANSITIONPROPERTY **ppCoMemProperty) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsAlternate(
+ /* [in] */ SPRULEHANDLE hRule,
+ /* [in] */ SPRULEHANDLE hAltRule) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
+ /* [in] */ SPRULEHANDLE hRule,
+ /* [out] */ ULONG *pulNumAlts) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetContextMaxAlternates(
+ /* [in] */ SPRECOCONTEXTHANDLE hContext,
+ /* [out] */ ULONG *pulNumAlts) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UpdateRecoPos(
+ /* [in] */ ULONGLONG ullCurrentRecoPos) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpSREngineSiteVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpSREngineSite * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpSREngineSite * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpSREngineSite * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Read )(
+ ISpSREngineSite * This,
+ /* [in] */ void *pv,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbRead);
+
+ HRESULT ( STDMETHODCALLTYPE *DataAvailable )(
+ ISpSREngineSite * This,
+ ULONG *pcb);
+
+ HRESULT ( STDMETHODCALLTYPE *SetBufferNotifySize )(
+ ISpSREngineSite * This,
+ /* [in] */ ULONG cbSize);
+
+ HRESULT ( STDMETHODCALLTYPE *ParseFromTransitions )(
+ ISpSREngineSite * This,
+ /* [in] */ const SPPARSEINFO *pParseInfo,
+ /* [out] */ ISpPhraseBuilder **ppNewPhrase);
+
+ HRESULT ( STDMETHODCALLTYPE *Recognition )(
+ ISpSREngineSite * This,
+ /* [in] */ const SPRECORESULTINFO *pResultInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *AddEvent )(
+ ISpSREngineSite * This,
+ /* [in] */ const SPEVENT *pEvent,
+ /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext);
+
+ HRESULT ( STDMETHODCALLTYPE *Synchronize )(
+ ISpSREngineSite * This,
+ /* [in] */ ULONGLONG ullProcessedThruPos);
+
+ HRESULT ( STDMETHODCALLTYPE *GetWordInfo )(
+ ISpSREngineSite * This,
+ /* [out][in] */ SPWORDENTRY *pWordEntry,
+ /* [in] */ SPWORDINFOOPT Options);
+
+ HRESULT ( STDMETHODCALLTYPE *SetWordClientContext )(
+ ISpSREngineSite * This,
+ SPWORDHANDLE hWord,
+ void *pvClientContext);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRuleInfo )(
+ ISpSREngineSite * This,
+ /* [out][in] */ SPRULEENTRY *pRuleEntry,
+ /* [in] */ SPRULEINFOOPT Options);
+
+ HRESULT ( STDMETHODCALLTYPE *SetRuleClientContext )(
+ ISpSREngineSite * This,
+ SPRULEHANDLE hRule,
+ void *pvClientContext);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStateInfo )(
+ ISpSREngineSite * This,
+ SPSTATEHANDLE hState,
+ SPSTATEINFO *pStateInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetResource )(
+ ISpSREngineSite * This,
+ /* [in] */ SPRULEHANDLE hRule,
+ /* [in] */ const WCHAR *pszResourceName,
+ /* [out] */ WCHAR **ppCoMemResource);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTransitionProperty )(
+ ISpSREngineSite * This,
+ /* [in] */ SPTRANSITIONID ID,
+ /* [out] */ SPTRANSITIONPROPERTY **ppCoMemProperty);
+
+ HRESULT ( STDMETHODCALLTYPE *IsAlternate )(
+ ISpSREngineSite * This,
+ /* [in] */ SPRULEHANDLE hRule,
+ /* [in] */ SPRULEHANDLE hAltRule);
+
+ HRESULT ( STDMETHODCALLTYPE *GetMaxAlternates )(
+ ISpSREngineSite * This,
+ /* [in] */ SPRULEHANDLE hRule,
+ /* [out] */ ULONG *pulNumAlts);
+
+ HRESULT ( STDMETHODCALLTYPE *GetContextMaxAlternates )(
+ ISpSREngineSite * This,
+ /* [in] */ SPRECOCONTEXTHANDLE hContext,
+ /* [out] */ ULONG *pulNumAlts);
+
+ HRESULT ( STDMETHODCALLTYPE *UpdateRecoPos )(
+ ISpSREngineSite * This,
+ /* [in] */ ULONGLONG ullCurrentRecoPos);
+
+ END_INTERFACE
+ } ISpSREngineSiteVtbl;
+
+ interface ISpSREngineSite
+ {
+ CONST_VTBL struct ISpSREngineSiteVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpSREngineSite_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpSREngineSite_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpSREngineSite_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpSREngineSite_Read(This,pv,cb,pcbRead) \
+ (This)->lpVtbl -> Read(This,pv,cb,pcbRead)
+
+#define ISpSREngineSite_DataAvailable(This,pcb) \
+ (This)->lpVtbl -> DataAvailable(This,pcb)
+
+#define ISpSREngineSite_SetBufferNotifySize(This,cbSize) \
+ (This)->lpVtbl -> SetBufferNotifySize(This,cbSize)
+
+#define ISpSREngineSite_ParseFromTransitions(This,pParseInfo,ppNewPhrase) \
+ (This)->lpVtbl -> ParseFromTransitions(This,pParseInfo,ppNewPhrase)
+
+#define ISpSREngineSite_Recognition(This,pResultInfo) \
+ (This)->lpVtbl -> Recognition(This,pResultInfo)
+
+#define ISpSREngineSite_AddEvent(This,pEvent,hSAPIRecoContext) \
+ (This)->lpVtbl -> AddEvent(This,pEvent,hSAPIRecoContext)
+
+#define ISpSREngineSite_Synchronize(This,ullProcessedThruPos) \
+ (This)->lpVtbl -> Synchronize(This,ullProcessedThruPos)
+
+#define ISpSREngineSite_GetWordInfo(This,pWordEntry,Options) \
+ (This)->lpVtbl -> GetWordInfo(This,pWordEntry,Options)
+
+#define ISpSREngineSite_SetWordClientContext(This,hWord,pvClientContext) \
+ (This)->lpVtbl -> SetWordClientContext(This,hWord,pvClientContext)
+
+#define ISpSREngineSite_GetRuleInfo(This,pRuleEntry,Options) \
+ (This)->lpVtbl -> GetRuleInfo(This,pRuleEntry,Options)
+
+#define ISpSREngineSite_SetRuleClientContext(This,hRule,pvClientContext) \
+ (This)->lpVtbl -> SetRuleClientContext(This,hRule,pvClientContext)
+
+#define ISpSREngineSite_GetStateInfo(This,hState,pStateInfo) \
+ (This)->lpVtbl -> GetStateInfo(This,hState,pStateInfo)
+
+#define ISpSREngineSite_GetResource(This,hRule,pszResourceName,ppCoMemResource) \
+ (This)->lpVtbl -> GetResource(This,hRule,pszResourceName,ppCoMemResource)
+
+#define ISpSREngineSite_GetTransitionProperty(This,ID,ppCoMemProperty) \
+ (This)->lpVtbl -> GetTransitionProperty(This,ID,ppCoMemProperty)
+
+#define ISpSREngineSite_IsAlternate(This,hRule,hAltRule) \
+ (This)->lpVtbl -> IsAlternate(This,hRule,hAltRule)
+
+#define ISpSREngineSite_GetMaxAlternates(This,hRule,pulNumAlts) \
+ (This)->lpVtbl -> GetMaxAlternates(This,hRule,pulNumAlts)
+
+#define ISpSREngineSite_GetContextMaxAlternates(This,hContext,pulNumAlts) \
+ (This)->lpVtbl -> GetContextMaxAlternates(This,hContext,pulNumAlts)
+
+#define ISpSREngineSite_UpdateRecoPos(This,ullCurrentRecoPos) \
+ (This)->lpVtbl -> UpdateRecoPos(This,ullCurrentRecoPos)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_Read_Proxy(
+ ISpSREngineSite * This,
+ /* [in] */ void *pv,
+ /* [in] */ ULONG cb,
+ /* [out] */ ULONG *pcbRead);
+
+
+void __RPC_STUB ISpSREngineSite_Read_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_DataAvailable_Proxy(
+ ISpSREngineSite * This,
+ ULONG *pcb);
+
+
+void __RPC_STUB ISpSREngineSite_DataAvailable_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_SetBufferNotifySize_Proxy(
+ ISpSREngineSite * This,
+ /* [in] */ ULONG cbSize);
+
+
+void __RPC_STUB ISpSREngineSite_SetBufferNotifySize_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_ParseFromTransitions_Proxy(
+ ISpSREngineSite * This,
+ /* [in] */ const SPPARSEINFO *pParseInfo,
+ /* [out] */ ISpPhraseBuilder **ppNewPhrase);
+
+
+void __RPC_STUB ISpSREngineSite_ParseFromTransitions_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_Recognition_Proxy(
+ ISpSREngineSite * This,
+ /* [in] */ const SPRECORESULTINFO *pResultInfo);
+
+
+void __RPC_STUB ISpSREngineSite_Recognition_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_AddEvent_Proxy(
+ ISpSREngineSite * This,
+ /* [in] */ const SPEVENT *pEvent,
+ /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext);
+
+
+void __RPC_STUB ISpSREngineSite_AddEvent_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_Synchronize_Proxy(
+ ISpSREngineSite * This,
+ /* [in] */ ULONGLONG ullProcessedThruPos);
+
+
+void __RPC_STUB ISpSREngineSite_Synchronize_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetWordInfo_Proxy(
+ ISpSREngineSite * This,
+ /* [out][in] */ SPWORDENTRY *pWordEntry,
+ /* [in] */ SPWORDINFOOPT Options);
+
+
+void __RPC_STUB ISpSREngineSite_GetWordInfo_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_SetWordClientContext_Proxy(
+ ISpSREngineSite * This,
+ SPWORDHANDLE hWord,
+ void *pvClientContext);
+
+
+void __RPC_STUB ISpSREngineSite_SetWordClientContext_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetRuleInfo_Proxy(
+ ISpSREngineSite * This,
+ /* [out][in] */ SPRULEENTRY *pRuleEntry,
+ /* [in] */ SPRULEINFOOPT Options);
+
+
+void __RPC_STUB ISpSREngineSite_GetRuleInfo_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_SetRuleClientContext_Proxy(
+ ISpSREngineSite * This,
+ SPRULEHANDLE hRule,
+ void *pvClientContext);
+
+
+void __RPC_STUB ISpSREngineSite_SetRuleClientContext_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetStateInfo_Proxy(
+ ISpSREngineSite * This,
+ SPSTATEHANDLE hState,
+ SPSTATEINFO *pStateInfo);
+
+
+void __RPC_STUB ISpSREngineSite_GetStateInfo_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetResource_Proxy(
+ ISpSREngineSite * This,
+ /* [in] */ SPRULEHANDLE hRule,
+ /* [in] */ const WCHAR *pszResourceName,
+ /* [out] */ WCHAR **ppCoMemResource);
+
+
+void __RPC_STUB ISpSREngineSite_GetResource_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetTransitionProperty_Proxy(
+ ISpSREngineSite * This,
+ /* [in] */ SPTRANSITIONID ID,
+ /* [out] */ SPTRANSITIONPROPERTY **ppCoMemProperty);
+
+
+void __RPC_STUB ISpSREngineSite_GetTransitionProperty_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_IsAlternate_Proxy(
+ ISpSREngineSite * This,
+ /* [in] */ SPRULEHANDLE hRule,
+ /* [in] */ SPRULEHANDLE hAltRule);
+
+
+void __RPC_STUB ISpSREngineSite_IsAlternate_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetMaxAlternates_Proxy(
+ ISpSREngineSite * This,
+ /* [in] */ SPRULEHANDLE hRule,
+ /* [out] */ ULONG *pulNumAlts);
+
+
+void __RPC_STUB ISpSREngineSite_GetMaxAlternates_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_GetContextMaxAlternates_Proxy(
+ ISpSREngineSite * This,
+ /* [in] */ SPRECOCONTEXTHANDLE hContext,
+ /* [out] */ ULONG *pulNumAlts);
+
+
+void __RPC_STUB ISpSREngineSite_GetContextMaxAlternates_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngineSite_UpdateRecoPos_Proxy(
+ ISpSREngineSite * This,
+ /* [in] */ ULONGLONG ullCurrentRecoPos);
+
+
+void __RPC_STUB ISpSREngineSite_UpdateRecoPos_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpSREngineSite_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapiddk_0351 */
+/* [local] */
+
+typedef
+enum SPPROPSRC
+ { SPPROPSRC_RECO_INST = 0,
+ SPPROPSRC_RECO_CTX = SPPROPSRC_RECO_INST + 1,
+ SPPROPSRC_RECO_GRAMMAR = SPPROPSRC_RECO_CTX + 1
+ } SPPROPSRC;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0351_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0351_v0_0_s_ifspec;
+
+#ifndef __ISpSREngine_INTERFACE_DEFINED__
+#define __ISpSREngine_INTERFACE_DEFINED__
+
+/* interface ISpSREngine */
+/* [local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpSREngine;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("2F472991-854B-4465-B613-FBAFB3AD8ED8")
+ ISpSREngine : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetSite(
+ /* [in] */ ISpSREngineSite *pSite) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetInputAudioFormat(
+ /* [in] */ const GUID *pguidSourceFormatId,
+ /* [in] */ const WAVEFORMATEX *pSourceWaveFormatEx,
+ /* [out] */ GUID *pguidDesiredFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemDesiredWaveFormatEx) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RecognizeStream(
+ /* [in] */ REFGUID rguidFmtId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
+ /* [in] */ HANDLE hRequestSync,
+ /* [in] */ HANDLE hDataAvailable,
+ /* [in] */ HANDLE hExit,
+ /* [in] */ BOOL fNewAudioStream,
+ /* [in] */ BOOL fRealTimeAudio,
+ /* [in] */ ISpObjectToken *pAudioObjectToken) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
+ ISpObjectToken *pProfile) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnCreateGrammar(
+ /* [in] */ void *pvEngineRecoContext,
+ /* [in] */ SPGRAMMARHANDLE hSAPIGrammar,
+ /* [out] */ void **ppvEngineGrammarContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnDeleteGrammar(
+ /* [in] */ void *pvEngineGrammar) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LoadProprietaryGrammar(
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ REFGUID rguidParam,
+ /* [string][in] */ const WCHAR *pszStringParam,
+ /* [in] */ const void *pvDataParam,
+ /* [in] */ ULONG ulDataSize,
+ /* [in] */ SPLOADOPTIONS Options) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UnloadProprietaryGrammar(
+ /* [in] */ void *pvEngineGrammar) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetProprietaryRuleState(
+ /* [in] */ void *pvEngineGrammar,
+ /* [string][in] */ const WCHAR *pszName,
+ /* [in] */ void *pReserved,
+ /* [in] */ SPRULESTATE NewState,
+ /* [out] */ ULONG *pcRulesChanged) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetProprietaryRuleIdState(
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ DWORD dwRuleId,
+ /* [in] */ SPRULESTATE NewState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LoadSLM(
+ /* [in] */ void *pvEngineGrammar,
+ /* [string][in] */ const WCHAR *pszTopicName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UnloadSLM(
+ /* [in] */ void *pvEngineGrammar) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSLMState(
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ SPRULESTATE NewState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ const WCHAR *pText,
+ /* [in] */ ULONG cchText,
+ /* [in] */ const SPTEXTSELECTIONINFO *pInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ const SPTEXTSELECTIONINFO *pInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
+ /* [in] */ void *pvEngineGrammar,
+ /* [string][in] */ const WCHAR *pszWord,
+ /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnCreateRecoContext(
+ /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext,
+ /* [out] */ void **ppvEngineContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnDeleteRecoContext(
+ /* [in] */ void *pvEngineContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PrivateCall(
+ /* [in] */ void *pvEngineContext,
+ /* [out][in] */ PVOID pCallFrame,
+ /* [in] */ ULONG ulCallFrameSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
+ /* [in] */ void *pvEngineContext,
+ const WCHAR *pAdaptationData,
+ const ULONG cch) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
+ /* [in] */ SPPROPSRC eSrc,
+ /* [in] */ void *pvSrcObj,
+ /* [in] */ const WCHAR *pName,
+ /* [in] */ LONG lValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
+ /* [in] */ SPPROPSRC eSrc,
+ /* [in] */ void *pvSrcObj,
+ /* [in] */ const WCHAR *pName,
+ /* [out] */ LONG *lValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
+ /* [in] */ SPPROPSRC eSrc,
+ /* [in] */ void *pvSrcObj,
+ /* [in] */ const WCHAR *pName,
+ /* [in] */ const WCHAR *pValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
+ /* [in] */ SPPROPSRC eSrc,
+ /* [in] */ void *pvSrcObj,
+ /* [in] */ const WCHAR *pName,
+ /* [out] */ WCHAR **ppCoMemValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ SPGRAMMARSTATE eGrammarState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WordNotify(
+ SPCFGNOTIFY Action,
+ ULONG cWords,
+ const SPWORDENTRY *pWords) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RuleNotify(
+ SPCFGNOTIFY Action,
+ ULONG cRules,
+ const SPRULEENTRY *pRules) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PrivateCallEx(
+ /* [in] */ void *pvEngineContext,
+ /* [in] */ const void *pInCallFrame,
+ /* [in] */ ULONG ulInCallFrameSize,
+ /* [out] */ void **ppvCoMemResponse,
+ /* [out] */ ULONG *pulResponseSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetContextState(
+ /* [in] */ void *pvEngineContext,
+ /* [in] */ SPCONTEXTSTATE eContextState) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpSREngineVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpSREngine * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpSREngine * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpSREngine * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetSite )(
+ ISpSREngine * This,
+ /* [in] */ ISpSREngineSite *pSite);
+
+ HRESULT ( STDMETHODCALLTYPE *GetInputAudioFormat )(
+ ISpSREngine * This,
+ /* [in] */ const GUID *pguidSourceFormatId,
+ /* [in] */ const WAVEFORMATEX *pSourceWaveFormatEx,
+ /* [out] */ GUID *pguidDesiredFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemDesiredWaveFormatEx);
+
+ HRESULT ( STDMETHODCALLTYPE *RecognizeStream )(
+ ISpSREngine * This,
+ /* [in] */ REFGUID rguidFmtId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
+ /* [in] */ HANDLE hRequestSync,
+ /* [in] */ HANDLE hDataAvailable,
+ /* [in] */ HANDLE hExit,
+ /* [in] */ BOOL fNewAudioStream,
+ /* [in] */ BOOL fRealTimeAudio,
+ /* [in] */ ISpObjectToken *pAudioObjectToken);
+
+ HRESULT ( STDMETHODCALLTYPE *SetRecoProfile )(
+ ISpSREngine * This,
+ ISpObjectToken *pProfile);
+
+ HRESULT ( STDMETHODCALLTYPE *OnCreateGrammar )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineRecoContext,
+ /* [in] */ SPGRAMMARHANDLE hSAPIGrammar,
+ /* [out] */ void **ppvEngineGrammarContext);
+
+ HRESULT ( STDMETHODCALLTYPE *OnDeleteGrammar )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar);
+
+ HRESULT ( STDMETHODCALLTYPE *LoadProprietaryGrammar )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ REFGUID rguidParam,
+ /* [string][in] */ const WCHAR *pszStringParam,
+ /* [in] */ const void *pvDataParam,
+ /* [in] */ ULONG ulDataSize,
+ /* [in] */ SPLOADOPTIONS Options);
+
+ HRESULT ( STDMETHODCALLTYPE *UnloadProprietaryGrammar )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar);
+
+ HRESULT ( STDMETHODCALLTYPE *SetProprietaryRuleState )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [string][in] */ const WCHAR *pszName,
+ /* [in] */ void *pReserved,
+ /* [in] */ SPRULESTATE NewState,
+ /* [out] */ ULONG *pcRulesChanged);
+
+ HRESULT ( STDMETHODCALLTYPE *SetProprietaryRuleIdState )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ DWORD dwRuleId,
+ /* [in] */ SPRULESTATE NewState);
+
+ HRESULT ( STDMETHODCALLTYPE *LoadSLM )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [string][in] */ const WCHAR *pszTopicName);
+
+ HRESULT ( STDMETHODCALLTYPE *UnloadSLM )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar);
+
+ HRESULT ( STDMETHODCALLTYPE *SetSLMState )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ SPRULESTATE NewState);
+
+ HRESULT ( STDMETHODCALLTYPE *SetWordSequenceData )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ const WCHAR *pText,
+ /* [in] */ ULONG cchText,
+ /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *SetTextSelection )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *IsPronounceable )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [string][in] */ const WCHAR *pszWord,
+ /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable);
+
+ HRESULT ( STDMETHODCALLTYPE *OnCreateRecoContext )(
+ ISpSREngine * This,
+ /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext,
+ /* [out] */ void **ppvEngineContext);
+
+ HRESULT ( STDMETHODCALLTYPE *OnDeleteRecoContext )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineContext);
+
+ HRESULT ( STDMETHODCALLTYPE *PrivateCall )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineContext,
+ /* [out][in] */ PVOID pCallFrame,
+ /* [in] */ ULONG ulCallFrameSize);
+
+ HRESULT ( STDMETHODCALLTYPE *SetAdaptationData )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineContext,
+ const WCHAR *pAdaptationData,
+ const ULONG cch);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPropertyNum )(
+ ISpSREngine * This,
+ /* [in] */ SPPROPSRC eSrc,
+ /* [in] */ void *pvSrcObj,
+ /* [in] */ const WCHAR *pName,
+ /* [in] */ LONG lValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPropertyNum )(
+ ISpSREngine * This,
+ /* [in] */ SPPROPSRC eSrc,
+ /* [in] */ void *pvSrcObj,
+ /* [in] */ const WCHAR *pName,
+ /* [out] */ LONG *lValue);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPropertyString )(
+ ISpSREngine * This,
+ /* [in] */ SPPROPSRC eSrc,
+ /* [in] */ void *pvSrcObj,
+ /* [in] */ const WCHAR *pName,
+ /* [in] */ const WCHAR *pValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPropertyString )(
+ ISpSREngine * This,
+ /* [in] */ SPPROPSRC eSrc,
+ /* [in] */ void *pvSrcObj,
+ /* [in] */ const WCHAR *pName,
+ /* [out] */ WCHAR **ppCoMemValue);
+
+ HRESULT ( STDMETHODCALLTYPE *SetGrammarState )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ SPGRAMMARSTATE eGrammarState);
+
+ HRESULT ( STDMETHODCALLTYPE *WordNotify )(
+ ISpSREngine * This,
+ SPCFGNOTIFY Action,
+ ULONG cWords,
+ const SPWORDENTRY *pWords);
+
+ HRESULT ( STDMETHODCALLTYPE *RuleNotify )(
+ ISpSREngine * This,
+ SPCFGNOTIFY Action,
+ ULONG cRules,
+ const SPRULEENTRY *pRules);
+
+ HRESULT ( STDMETHODCALLTYPE *PrivateCallEx )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineContext,
+ /* [in] */ const void *pInCallFrame,
+ /* [in] */ ULONG ulInCallFrameSize,
+ /* [out] */ void **ppvCoMemResponse,
+ /* [out] */ ULONG *pulResponseSize);
+
+ HRESULT ( STDMETHODCALLTYPE *SetContextState )(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineContext,
+ /* [in] */ SPCONTEXTSTATE eContextState);
+
+ END_INTERFACE
+ } ISpSREngineVtbl;
+
+ interface ISpSREngine
+ {
+ CONST_VTBL struct ISpSREngineVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpSREngine_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpSREngine_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpSREngine_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpSREngine_SetSite(This,pSite) \
+ (This)->lpVtbl -> SetSite(This,pSite)
+
+#define ISpSREngine_GetInputAudioFormat(This,pguidSourceFormatId,pSourceWaveFormatEx,pguidDesiredFormatId,ppCoMemDesiredWaveFormatEx) \
+ (This)->lpVtbl -> GetInputAudioFormat(This,pguidSourceFormatId,pSourceWaveFormatEx,pguidDesiredFormatId,ppCoMemDesiredWaveFormatEx)
+
+#define ISpSREngine_RecognizeStream(This,rguidFmtId,pWaveFormatEx,hRequestSync,hDataAvailable,hExit,fNewAudioStream,fRealTimeAudio,pAudioObjectToken) \
+ (This)->lpVtbl -> RecognizeStream(This,rguidFmtId,pWaveFormatEx,hRequestSync,hDataAvailable,hExit,fNewAudioStream,fRealTimeAudio,pAudioObjectToken)
+
+#define ISpSREngine_SetRecoProfile(This,pProfile) \
+ (This)->lpVtbl -> SetRecoProfile(This,pProfile)
+
+#define ISpSREngine_OnCreateGrammar(This,pvEngineRecoContext,hSAPIGrammar,ppvEngineGrammarContext) \
+ (This)->lpVtbl -> OnCreateGrammar(This,pvEngineRecoContext,hSAPIGrammar,ppvEngineGrammarContext)
+
+#define ISpSREngine_OnDeleteGrammar(This,pvEngineGrammar) \
+ (This)->lpVtbl -> OnDeleteGrammar(This,pvEngineGrammar)
+
+#define ISpSREngine_LoadProprietaryGrammar(This,pvEngineGrammar,rguidParam,pszStringParam,pvDataParam,ulDataSize,Options) \
+ (This)->lpVtbl -> LoadProprietaryGrammar(This,pvEngineGrammar,rguidParam,pszStringParam,pvDataParam,ulDataSize,Options)
+
+#define ISpSREngine_UnloadProprietaryGrammar(This,pvEngineGrammar) \
+ (This)->lpVtbl -> UnloadProprietaryGrammar(This,pvEngineGrammar)
+
+#define ISpSREngine_SetProprietaryRuleState(This,pvEngineGrammar,pszName,pReserved,NewState,pcRulesChanged) \
+ (This)->lpVtbl -> SetProprietaryRuleState(This,pvEngineGrammar,pszName,pReserved,NewState,pcRulesChanged)
+
+#define ISpSREngine_SetProprietaryRuleIdState(This,pvEngineGrammar,dwRuleId,NewState) \
+ (This)->lpVtbl -> SetProprietaryRuleIdState(This,pvEngineGrammar,dwRuleId,NewState)
+
+#define ISpSREngine_LoadSLM(This,pvEngineGrammar,pszTopicName) \
+ (This)->lpVtbl -> LoadSLM(This,pvEngineGrammar,pszTopicName)
+
+#define ISpSREngine_UnloadSLM(This,pvEngineGrammar) \
+ (This)->lpVtbl -> UnloadSLM(This,pvEngineGrammar)
+
+#define ISpSREngine_SetSLMState(This,pvEngineGrammar,NewState) \
+ (This)->lpVtbl -> SetSLMState(This,pvEngineGrammar,NewState)
+
+#define ISpSREngine_SetWordSequenceData(This,pvEngineGrammar,pText,cchText,pInfo) \
+ (This)->lpVtbl -> SetWordSequenceData(This,pvEngineGrammar,pText,cchText,pInfo)
+
+#define ISpSREngine_SetTextSelection(This,pvEngineGrammar,pInfo) \
+ (This)->lpVtbl -> SetTextSelection(This,pvEngineGrammar,pInfo)
+
+#define ISpSREngine_IsPronounceable(This,pvEngineGrammar,pszWord,pWordPronounceable) \
+ (This)->lpVtbl -> IsPronounceable(This,pvEngineGrammar,pszWord,pWordPronounceable)
+
+#define ISpSREngine_OnCreateRecoContext(This,hSAPIRecoContext,ppvEngineContext) \
+ (This)->lpVtbl -> OnCreateRecoContext(This,hSAPIRecoContext,ppvEngineContext)
+
+#define ISpSREngine_OnDeleteRecoContext(This,pvEngineContext) \
+ (This)->lpVtbl -> OnDeleteRecoContext(This,pvEngineContext)
+
+#define ISpSREngine_PrivateCall(This,pvEngineContext,pCallFrame,ulCallFrameSize) \
+ (This)->lpVtbl -> PrivateCall(This,pvEngineContext,pCallFrame,ulCallFrameSize)
+
+#define ISpSREngine_SetAdaptationData(This,pvEngineContext,pAdaptationData,cch) \
+ (This)->lpVtbl -> SetAdaptationData(This,pvEngineContext,pAdaptationData,cch)
+
+#define ISpSREngine_SetPropertyNum(This,eSrc,pvSrcObj,pName,lValue) \
+ (This)->lpVtbl -> SetPropertyNum(This,eSrc,pvSrcObj,pName,lValue)
+
+#define ISpSREngine_GetPropertyNum(This,eSrc,pvSrcObj,pName,lValue) \
+ (This)->lpVtbl -> GetPropertyNum(This,eSrc,pvSrcObj,pName,lValue)
+
+#define ISpSREngine_SetPropertyString(This,eSrc,pvSrcObj,pName,pValue) \
+ (This)->lpVtbl -> SetPropertyString(This,eSrc,pvSrcObj,pName,pValue)
+
+#define ISpSREngine_GetPropertyString(This,eSrc,pvSrcObj,pName,ppCoMemValue) \
+ (This)->lpVtbl -> GetPropertyString(This,eSrc,pvSrcObj,pName,ppCoMemValue)
+
+#define ISpSREngine_SetGrammarState(This,pvEngineGrammar,eGrammarState) \
+ (This)->lpVtbl -> SetGrammarState(This,pvEngineGrammar,eGrammarState)
+
+#define ISpSREngine_WordNotify(This,Action,cWords,pWords) \
+ (This)->lpVtbl -> WordNotify(This,Action,cWords,pWords)
+
+#define ISpSREngine_RuleNotify(This,Action,cRules,pRules) \
+ (This)->lpVtbl -> RuleNotify(This,Action,cRules,pRules)
+
+#define ISpSREngine_PrivateCallEx(This,pvEngineContext,pInCallFrame,ulInCallFrameSize,ppvCoMemResponse,pulResponseSize) \
+ (This)->lpVtbl -> PrivateCallEx(This,pvEngineContext,pInCallFrame,ulInCallFrameSize,ppvCoMemResponse,pulResponseSize)
+
+#define ISpSREngine_SetContextState(This,pvEngineContext,eContextState) \
+ (This)->lpVtbl -> SetContextState(This,pvEngineContext,eContextState)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_SetSite_Proxy(
+ ISpSREngine * This,
+ /* [in] */ ISpSREngineSite *pSite);
+
+
+void __RPC_STUB ISpSREngine_SetSite_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_GetInputAudioFormat_Proxy(
+ ISpSREngine * This,
+ /* [in] */ const GUID *pguidSourceFormatId,
+ /* [in] */ const WAVEFORMATEX *pSourceWaveFormatEx,
+ /* [out] */ GUID *pguidDesiredFormatId,
+ /* [out] */ WAVEFORMATEX **ppCoMemDesiredWaveFormatEx);
+
+
+void __RPC_STUB ISpSREngine_GetInputAudioFormat_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_RecognizeStream_Proxy(
+ ISpSREngine * This,
+ /* [in] */ REFGUID rguidFmtId,
+ /* [in] */ const WAVEFORMATEX *pWaveFormatEx,
+ /* [in] */ HANDLE hRequestSync,
+ /* [in] */ HANDLE hDataAvailable,
+ /* [in] */ HANDLE hExit,
+ /* [in] */ BOOL fNewAudioStream,
+ /* [in] */ BOOL fRealTimeAudio,
+ /* [in] */ ISpObjectToken *pAudioObjectToken);
+
+
+void __RPC_STUB ISpSREngine_RecognizeStream_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_SetRecoProfile_Proxy(
+ ISpSREngine * This,
+ ISpObjectToken *pProfile);
+
+
+void __RPC_STUB ISpSREngine_SetRecoProfile_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_OnCreateGrammar_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineRecoContext,
+ /* [in] */ SPGRAMMARHANDLE hSAPIGrammar,
+ /* [out] */ void **ppvEngineGrammarContext);
+
+
+void __RPC_STUB ISpSREngine_OnCreateGrammar_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_OnDeleteGrammar_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar);
+
+
+void __RPC_STUB ISpSREngine_OnDeleteGrammar_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_LoadProprietaryGrammar_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ REFGUID rguidParam,
+ /* [string][in] */ const WCHAR *pszStringParam,
+ /* [in] */ const void *pvDataParam,
+ /* [in] */ ULONG ulDataSize,
+ /* [in] */ SPLOADOPTIONS Options);
+
+
+void __RPC_STUB ISpSREngine_LoadProprietaryGrammar_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_UnloadProprietaryGrammar_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar);
+
+
+void __RPC_STUB ISpSREngine_UnloadProprietaryGrammar_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_SetProprietaryRuleState_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [string][in] */ const WCHAR *pszName,
+ /* [in] */ void *pReserved,
+ /* [in] */ SPRULESTATE NewState,
+ /* [out] */ ULONG *pcRulesChanged);
+
+
+void __RPC_STUB ISpSREngine_SetProprietaryRuleState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_SetProprietaryRuleIdState_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ DWORD dwRuleId,
+ /* [in] */ SPRULESTATE NewState);
+
+
+void __RPC_STUB ISpSREngine_SetProprietaryRuleIdState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_LoadSLM_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [string][in] */ const WCHAR *pszTopicName);
+
+
+void __RPC_STUB ISpSREngine_LoadSLM_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_UnloadSLM_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar);
+
+
+void __RPC_STUB ISpSREngine_UnloadSLM_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_SetSLMState_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ SPRULESTATE NewState);
+
+
+void __RPC_STUB ISpSREngine_SetSLMState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_SetWordSequenceData_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ const WCHAR *pText,
+ /* [in] */ ULONG cchText,
+ /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
+
+
+void __RPC_STUB ISpSREngine_SetWordSequenceData_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_SetTextSelection_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ const SPTEXTSELECTIONINFO *pInfo);
+
+
+void __RPC_STUB ISpSREngine_SetTextSelection_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_IsPronounceable_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [string][in] */ const WCHAR *pszWord,
+ /* [out] */ SPWORDPRONOUNCEABLE *pWordPronounceable);
+
+
+void __RPC_STUB ISpSREngine_IsPronounceable_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_OnCreateRecoContext_Proxy(
+ ISpSREngine * This,
+ /* [in] */ SPRECOCONTEXTHANDLE hSAPIRecoContext,
+ /* [out] */ void **ppvEngineContext);
+
+
+void __RPC_STUB ISpSREngine_OnCreateRecoContext_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_OnDeleteRecoContext_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineContext);
+
+
+void __RPC_STUB ISpSREngine_OnDeleteRecoContext_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_PrivateCall_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineContext,
+ /* [out][in] */ PVOID pCallFrame,
+ /* [in] */ ULONG ulCallFrameSize);
+
+
+void __RPC_STUB ISpSREngine_PrivateCall_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_SetAdaptationData_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineContext,
+ const WCHAR *pAdaptationData,
+ const ULONG cch);
+
+
+void __RPC_STUB ISpSREngine_SetAdaptationData_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_SetPropertyNum_Proxy(
+ ISpSREngine * This,
+ /* [in] */ SPPROPSRC eSrc,
+ /* [in] */ void *pvSrcObj,
+ /* [in] */ const WCHAR *pName,
+ /* [in] */ LONG lValue);
+
+
+void __RPC_STUB ISpSREngine_SetPropertyNum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_GetPropertyNum_Proxy(
+ ISpSREngine * This,
+ /* [in] */ SPPROPSRC eSrc,
+ /* [in] */ void *pvSrcObj,
+ /* [in] */ const WCHAR *pName,
+ /* [out] */ LONG *lValue);
+
+
+void __RPC_STUB ISpSREngine_GetPropertyNum_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_SetPropertyString_Proxy(
+ ISpSREngine * This,
+ /* [in] */ SPPROPSRC eSrc,
+ /* [in] */ void *pvSrcObj,
+ /* [in] */ const WCHAR *pName,
+ /* [in] */ const WCHAR *pValue);
+
+
+void __RPC_STUB ISpSREngine_SetPropertyString_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_GetPropertyString_Proxy(
+ ISpSREngine * This,
+ /* [in] */ SPPROPSRC eSrc,
+ /* [in] */ void *pvSrcObj,
+ /* [in] */ const WCHAR *pName,
+ /* [out] */ WCHAR **ppCoMemValue);
+
+
+void __RPC_STUB ISpSREngine_GetPropertyString_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_SetGrammarState_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineGrammar,
+ /* [in] */ SPGRAMMARSTATE eGrammarState);
+
+
+void __RPC_STUB ISpSREngine_SetGrammarState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_WordNotify_Proxy(
+ ISpSREngine * This,
+ SPCFGNOTIFY Action,
+ ULONG cWords,
+ const SPWORDENTRY *pWords);
+
+
+void __RPC_STUB ISpSREngine_WordNotify_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_RuleNotify_Proxy(
+ ISpSREngine * This,
+ SPCFGNOTIFY Action,
+ ULONG cRules,
+ const SPRULEENTRY *pRules);
+
+
+void __RPC_STUB ISpSREngine_RuleNotify_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_PrivateCallEx_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineContext,
+ /* [in] */ const void *pInCallFrame,
+ /* [in] */ ULONG ulInCallFrameSize,
+ /* [out] */ void **ppvCoMemResponse,
+ /* [out] */ ULONG *pulResponseSize);
+
+
+void __RPC_STUB ISpSREngine_PrivateCallEx_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSREngine_SetContextState_Proxy(
+ ISpSREngine * This,
+ /* [in] */ void *pvEngineContext,
+ /* [in] */ SPCONTEXTSTATE eContextState);
+
+
+void __RPC_STUB ISpSREngine_SetContextState_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpSREngine_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_sapiddk_0352 */
+/* [local] */
+
+typedef struct tagSPPHRASEALTREQUEST
+ {
+ ULONG ulStartElement;
+ ULONG cElements;
+ ULONG ulRequestAltCount;
+ void *pvResultExtra;
+ ULONG cbResultExtra;
+ ISpPhrase *pPhrase;
+ ISpRecoContext *pRecoContext;
+ } SPPHRASEALTREQUEST;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0352_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_sapiddk_0352_v0_0_s_ifspec;
+
+#ifndef __ISpSRAlternates_INTERFACE_DEFINED__
+#define __ISpSRAlternates_INTERFACE_DEFINED__
+
+/* interface ISpSRAlternates */
+/* [local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ISpSRAlternates;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("FECE8294-2BE1-408f-8E68-2DE377092F0E")
+ ISpSRAlternates : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetAlternates(
+ /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
+ /* [out] */ SPPHRASEALT **ppAlts,
+ /* [out] */ ULONG *pcAlts) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Commit(
+ /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
+ /* [in] */ SPPHRASEALT *pAlt,
+ /* [out] */ void **ppvResultExtra,
+ /* [out] */ ULONG *pcbResultExtra) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISpSRAlternatesVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISpSRAlternates * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISpSRAlternates * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISpSRAlternates * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAlternates )(
+ ISpSRAlternates * This,
+ /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
+ /* [out] */ SPPHRASEALT **ppAlts,
+ /* [out] */ ULONG *pcAlts);
+
+ HRESULT ( STDMETHODCALLTYPE *Commit )(
+ ISpSRAlternates * This,
+ /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
+ /* [in] */ SPPHRASEALT *pAlt,
+ /* [out] */ void **ppvResultExtra,
+ /* [out] */ ULONG *pcbResultExtra);
+
+ END_INTERFACE
+ } ISpSRAlternatesVtbl;
+
+ interface ISpSRAlternates
+ {
+ CONST_VTBL struct ISpSRAlternatesVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISpSRAlternates_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define ISpSRAlternates_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define ISpSRAlternates_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define ISpSRAlternates_GetAlternates(This,pAltRequest,ppAlts,pcAlts) \
+ (This)->lpVtbl -> GetAlternates(This,pAltRequest,ppAlts,pcAlts)
+
+#define ISpSRAlternates_Commit(This,pAltRequest,pAlt,ppvResultExtra,pcbResultExtra) \
+ (This)->lpVtbl -> Commit(This,pAltRequest,pAlt,ppvResultExtra,pcbResultExtra)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE ISpSRAlternates_GetAlternates_Proxy(
+ ISpSRAlternates * This,
+ /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
+ /* [out] */ SPPHRASEALT **ppAlts,
+ /* [out] */ ULONG *pcAlts);
+
+
+void __RPC_STUB ISpSRAlternates_GetAlternates_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE ISpSRAlternates_Commit_Proxy(
+ ISpSRAlternates * This,
+ /* [in] */ SPPHRASEALTREQUEST *pAltRequest,
+ /* [in] */ SPPHRASEALT *pAlt,
+ /* [out] */ void **ppvResultExtra,
+ /* [out] */ ULONG *pcbResultExtra);
+
+
+void __RPC_STUB ISpSRAlternates_Commit_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __ISpSRAlternates_INTERFACE_DEFINED__ */
+
+
+#ifndef ___ISpPrivateEngineCall_INTERFACE_DEFINED__
+#define ___ISpPrivateEngineCall_INTERFACE_DEFINED__
+
+/* interface _ISpPrivateEngineCall */
+/* [local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID__ISpPrivateEngineCall;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("8E7C791E-4467-11d3-9723-00C04F72DB08")
+ _ISpPrivateEngineCall : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE CallEngine(
+ /* [out][in] */ void *pCallFrame,
+ /* [in] */ ULONG ulCallFrameSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CallEngineEx(
+ /* [in] */ const void *pInFrame,
+ /* [in] */ ULONG ulInFrameSize,
+ /* [out] */ void **ppCoMemOutFrame,
+ /* [out] */ ULONG *pulOutFrameSize) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct _ISpPrivateEngineCallVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ _ISpPrivateEngineCall * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ _ISpPrivateEngineCall * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ _ISpPrivateEngineCall * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CallEngine )(
+ _ISpPrivateEngineCall * This,
+ /* [out][in] */ void *pCallFrame,
+ /* [in] */ ULONG ulCallFrameSize);
+
+ HRESULT ( STDMETHODCALLTYPE *CallEngineEx )(
+ _ISpPrivateEngineCall * This,
+ /* [in] */ const void *pInFrame,
+ /* [in] */ ULONG ulInFrameSize,
+ /* [out] */ void **ppCoMemOutFrame,
+ /* [out] */ ULONG *pulOutFrameSize);
+
+ END_INTERFACE
+ } _ISpPrivateEngineCallVtbl;
+
+ interface _ISpPrivateEngineCall
+ {
+ CONST_VTBL struct _ISpPrivateEngineCallVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define _ISpPrivateEngineCall_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define _ISpPrivateEngineCall_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define _ISpPrivateEngineCall_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define _ISpPrivateEngineCall_CallEngine(This,pCallFrame,ulCallFrameSize) \
+ (This)->lpVtbl -> CallEngine(This,pCallFrame,ulCallFrameSize)
+
+#define _ISpPrivateEngineCall_CallEngineEx(This,pInFrame,ulInFrameSize,ppCoMemOutFrame,pulOutFrameSize) \
+ (This)->lpVtbl -> CallEngineEx(This,pInFrame,ulInFrameSize,ppCoMemOutFrame,pulOutFrameSize)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+HRESULT STDMETHODCALLTYPE _ISpPrivateEngineCall_CallEngine_Proxy(
+ _ISpPrivateEngineCall * This,
+ /* [out][in] */ void *pCallFrame,
+ /* [in] */ ULONG ulCallFrameSize);
+
+
+void __RPC_STUB _ISpPrivateEngineCall_CallEngine_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+HRESULT STDMETHODCALLTYPE _ISpPrivateEngineCall_CallEngineEx_Proxy(
+ _ISpPrivateEngineCall * This,
+ /* [in] */ const void *pInFrame,
+ /* [in] */ ULONG ulInFrameSize,
+ /* [out] */ void **ppCoMemOutFrame,
+ /* [out] */ ULONG *pulOutFrameSize);
+
+
+void __RPC_STUB _ISpPrivateEngineCall_CallEngineEx_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* ___ISpPrivateEngineCall_INTERFACE_DEFINED__ */
+
+
+
+#ifndef __SpeechDDKLib_LIBRARY_DEFINED__
+#define __SpeechDDKLib_LIBRARY_DEFINED__
+
+/* library SpeechDDKLib */
+/* [version][uuid][helpstring] */
+
+
+EXTERN_C const IID LIBID_SpeechDDKLib;
+
+EXTERN_C const CLSID CLSID_SpDataKey;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("D9F6EE60-58C9-458b-88E1-2F908FD7F87C")
+SpDataKey;
+#endif
+
+EXTERN_C const CLSID CLSID_SpObjectTokenEnum;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("3918D75F-0ACB-41f2-B733-92AA15BCECF6")
+SpObjectTokenEnum;
+#endif
+
+EXTERN_C const CLSID CLSID_SpPhraseBuilder;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("777B6BBD-2FF2-11d3-88FE-00C04F8EF9B5")
+SpPhraseBuilder;
+#endif
+
+EXTERN_C const CLSID CLSID_SpITNProcessor;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("12D73610-A1C9-11d3-BC90-00C04F72DF9F")
+SpITNProcessor;
+#endif
+
+EXTERN_C const CLSID CLSID_SpGrammarCompiler;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("B1E29D59-A675-11D2-8302-00C04F8EE6C0")
+SpGrammarCompiler;
+#endif
+
+EXTERN_C const CLSID CLSID_SpGramCompBackend;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("DA93E903-C843-11D2-A084-00C04F8EF9B5")
+SpGramCompBackend;
+#endif
+#endif /* __SpeechDDKLib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/utils/sapi51/include/spcollec.h b/utils/sapi51/include/spcollec.h
new file mode 100644
index 0000000..faee643
--- /dev/null
+++ b/utils/sapi51/include/spcollec.h
@@ -0,0 +1,1432 @@
+/*****************************************************************************
+* SPCollec.h *
+*------------*
+* This header file contains the SAPI5 collection class templates. These
+* are a modified version of the MFC template classes without the dependencies.
+*-----------------------------------------------------------------------------
+* Copyright (c) Microsoft Corporation. All rights reserved.
+*****************************************************************************/
+#ifndef SPCollec_h
+#define SPCollec_h
+
+#ifndef _INC_LIMITS
+#include <limits.h>
+#endif
+
+#ifndef _INC_STRING
+#include <string.h>
+#endif
+
+#ifndef _INC_STDLIB
+#include <stdlib.h>
+#endif
+
+#ifndef _WIN32_WCE
+#ifndef _INC_SEARCH
+#include <search.h>
+#endif
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+#define SPASSERT_VALID( a ) // This doesn't do anything right now
+
+typedef void* SPLISTPOS;
+typedef DWORD SPLISTHANDLE;
+
+#define SP_BEFORE_START_POSITION ((void*)-1L)
+
+inline BOOL SPIsValidAddress(const void* lp, UINT nBytes, BOOL bReadWrite)
+{
+ // simple version using Win-32 APIs for pointer validation.
+ return (lp != NULL && !IsBadReadPtr(lp, nBytes) &&
+ (!bReadWrite || !IsBadWritePtr((LPVOID)lp, nBytes)));
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// global helpers (can be overridden)
+template<class TYPE>
+inline HRESULT SPConstructElements(TYPE* pElements, int nCount)
+{
+ HRESULT hr = S_OK;
+ SPDBG_ASSERT( nCount == 0 ||
+ SPIsValidAddress( pElements, nCount * sizeof(TYPE), TRUE ) );
+
+ // default is bit-wise zero initialization
+ memset((void*)pElements, 0, nCount * sizeof(TYPE));
+ return hr;
+}
+
+template<class TYPE>
+inline void SPDestructElements(TYPE* pElements, int nCount)
+{
+ SPDBG_ASSERT( ( nCount == 0 ||
+ SPIsValidAddress( pElements, nCount * sizeof(TYPE), TRUE ) ) );
+ pElements; // not used
+ nCount; // not used
+
+ // default does nothing
+}
+
+template<class TYPE>
+inline HRESULT SPCopyElements(TYPE* pDest, const TYPE* pSrc, int nCount)
+{
+ HRESULT hr = S_OK;
+ SPDBG_ASSERT( ( nCount == 0 ||
+ SPIsValidAddress( pDest, nCount * sizeof(TYPE), TRUE )) );
+ SPDBG_ASSERT( ( nCount == 0 ||
+ SPIsValidAddress( pSrc, nCount * sizeof(TYPE), FALSE )) );
+
+ // default is bit-wise copy
+ memcpy(pDest, pSrc, nCount * sizeof(TYPE));
+ return hr;
+}
+
+template<class TYPE, class ARG_TYPE>
+BOOL SPCompareElements(const TYPE* pElement1, const ARG_TYPE* pElement2)
+{
+ SPDBG_ASSERT( SPIsValidAddress( pElement1, sizeof(TYPE), FALSE ) );
+ SPDBG_ASSERT( SPIsValidAddress( pElement2, sizeof(ARG_TYPE), FALSE ) );
+ return *pElement1 == *pElement2;
+}
+
+template<class ARG_KEY>
+inline UINT SPHashKey(ARG_KEY key)
+{
+ // default identity hash - works for most primitive values
+ return ((UINT)(void*)(DWORD)key) >> 4;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// CSPPlex
+
+struct CSPPlex // warning variable length structure
+{
+ CSPPlex* pNext;
+ UINT nMax;
+ UINT nCur;
+ /* BYTE data[maxNum*elementSize]; */
+ void* data() { return this+1; }
+
+ static CSPPlex* PASCAL Create( CSPPlex*& pHead, UINT nMax, UINT cbElement )
+ {
+ CSPPlex* p = (CSPPlex*) new BYTE[sizeof(CSPPlex) + nMax * cbElement];
+ SPDBG_ASSERT(p);
+ p->nMax = nMax;
+ p->nCur = 0;
+ p->pNext = pHead;
+ pHead = p; // change head (adds in reverse order for simplicity)
+ return p;
+ }
+
+ void FreeDataChain()
+ {
+ CSPPlex* p = this;
+ while (p != NULL)
+ {
+ BYTE* bytes = (BYTE*) p;
+ CSPPlex* pNext = p->pNext;
+ delete[] bytes;
+ p = pNext;
+ }
+ }
+};
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CSPArray<TYPE, ARG_TYPE>
+
+template<class TYPE, class ARG_TYPE>
+class CSPArray
+{
+public:
+// Construction
+ CSPArray();
+
+// Attributes
+ int GetSize() const;
+ int GetUpperBound() const;
+ HRESULT SetSize(int nNewSize, int nGrowBy = -1);
+
+// Operations
+ // Clean up
+ void FreeExtra();
+ void RemoveAll();
+
+ // Accessing elements
+ TYPE GetAt(int nIndex) const;
+ void SetAt(int nIndex, ARG_TYPE newElement);
+ TYPE& ElementAt(int nIndex);
+
+ // Direct Access to the element data (may return NULL)
+ const TYPE* GetData() const;
+ TYPE* GetData();
+
+ // Potentially growing the array
+ HRESULT SetAtGrow(int nIndex, ARG_TYPE newElement);
+ int Add(ARG_TYPE newElement);
+ int Append(const CSPArray& src);
+ HRESULT Copy(const CSPArray& src);
+
+ // overloaded operator helpers
+ TYPE operator[](int nIndex) const;
+ TYPE& operator[](int nIndex);
+
+ // Operations that move elements around
+ HRESULT InsertAt(int nIndex, ARG_TYPE newElement, int nCount = 1);
+ void RemoveAt(int nIndex, int nCount = 1);
+ HRESULT InsertAt(int nStartIndex, CSPArray* pNewArray);
+ void Sort(int (__cdecl *compare )(const void *elem1, const void *elem2 ));
+
+// Implementation
+protected:
+ TYPE* m_pData; // the actual array of data
+ int m_nSize; // # of elements (upperBound - 1)
+ int m_nMaxSize; // max allocated
+ int m_nGrowBy; // grow amount
+
+public:
+ ~CSPArray();
+#ifdef _DEBUG
+// void Dump(CDumpContext&) const;
+ void AssertValid() const;
+#endif
+};
+
+/////////////////////////////////////////////////////////////////////////////
+// CSPArray<TYPE, ARG_TYPE> inline functions
+
+template<class TYPE, class ARG_TYPE>
+inline int CSPArray<TYPE, ARG_TYPE>::GetSize() const
+ { return m_nSize; }
+template<class TYPE, class ARG_TYPE>
+inline int CSPArray<TYPE, ARG_TYPE>::GetUpperBound() const
+ { return m_nSize-1; }
+template<class TYPE, class ARG_TYPE>
+inline void CSPArray<TYPE, ARG_TYPE>::RemoveAll()
+ { SetSize(0, -1); }
+template<class TYPE, class ARG_TYPE>
+inline TYPE CSPArray<TYPE, ARG_TYPE>::GetAt(int nIndex) const
+ { SPDBG_ASSERT( (nIndex >= 0 && nIndex < m_nSize) );
+ return m_pData[nIndex]; }
+template<class TYPE, class ARG_TYPE>
+inline void CSPArray<TYPE, ARG_TYPE>::SetAt(int nIndex, ARG_TYPE newElement)
+ { SPDBG_ASSERT( (nIndex >= 0 && nIndex < m_nSize) );
+ m_pData[nIndex] = newElement; }
+template<class TYPE, class ARG_TYPE>
+inline TYPE& CSPArray<TYPE, ARG_TYPE>::ElementAt(int nIndex)
+ { SPDBG_ASSERT( (nIndex >= 0 && nIndex < m_nSize) );
+ return m_pData[nIndex]; }
+template<class TYPE, class ARG_TYPE>
+inline const TYPE* CSPArray<TYPE, ARG_TYPE>::GetData() const
+ { return (const TYPE*)m_pData; }
+template<class TYPE, class ARG_TYPE>
+inline TYPE* CSPArray<TYPE, ARG_TYPE>::GetData()
+ { return (TYPE*)m_pData; }
+template<class TYPE, class ARG_TYPE>
+inline int CSPArray<TYPE, ARG_TYPE>::Add(ARG_TYPE newElement)
+ { int nIndex = m_nSize;
+ SetAtGrow(nIndex, newElement);
+ return nIndex; }
+template<class TYPE, class ARG_TYPE>
+inline TYPE CSPArray<TYPE, ARG_TYPE>::operator[](int nIndex) const
+ { return GetAt(nIndex); }
+template<class TYPE, class ARG_TYPE>
+inline TYPE& CSPArray<TYPE, ARG_TYPE>::operator[](int nIndex)
+ { return ElementAt(nIndex); }
+
+/////////////////////////////////////////////////////////////////////////////
+// CSPArray<TYPE, ARG_TYPE> out-of-line functions
+
+template<class TYPE, class ARG_TYPE>
+CSPArray<TYPE, ARG_TYPE>::CSPArray()
+{
+ m_pData = NULL;
+ m_nSize = m_nMaxSize = m_nGrowBy = 0;
+}
+
+template<class TYPE, class ARG_TYPE>
+CSPArray<TYPE, ARG_TYPE>::~CSPArray()
+{
+ SPASSERT_VALID( this );
+
+ if (m_pData != NULL)
+ {
+ SPDestructElements(m_pData, m_nSize);
+ delete[] (BYTE*)m_pData;
+ }
+}
+
+template<class TYPE, class ARG_TYPE>
+HRESULT CSPArray<TYPE, ARG_TYPE>::SetSize(int nNewSize, int nGrowBy)
+{
+ SPASSERT_VALID( this );
+ SPDBG_ASSERT( nNewSize >= 0 );
+ HRESULT hr = S_OK;
+
+ if (nGrowBy != -1)
+ m_nGrowBy = nGrowBy; // set new size
+
+ if (nNewSize == 0)
+ {
+ // shrink to nothing
+ if (m_pData != NULL)
+ {
+ SPDestructElements(m_pData, m_nSize);
+ delete[] (BYTE*)m_pData;
+ m_pData = NULL;
+ }
+ m_nSize = m_nMaxSize = 0;
+ }
+ else if (m_pData == NULL)
+ {
+ // create one with exact size
+#ifdef SIZE_T_MAX
+ SPDBG_ASSERT( nNewSize <= SIZE_T_MAX/sizeof(TYPE) ); // no overflow
+#endif
+ m_pData = (TYPE*) new BYTE[nNewSize * sizeof(TYPE)];
+ if( m_pData )
+ {
+ hr = SPConstructElements(m_pData, nNewSize);
+ if( SUCCEEDED( hr ) )
+ {
+ m_nSize = m_nMaxSize = nNewSize;
+ }
+ else
+ {
+ delete[] (BYTE*)m_pData;
+ m_pData = NULL;
+ }
+ }
+ else
+ {
+ hr = E_OUTOFMEMORY;
+ }
+ }
+ else if (nNewSize <= m_nMaxSize)
+ {
+ // it fits
+ if (nNewSize > m_nSize)
+ {
+ // initialize the new elements
+ hr = SPConstructElements(&m_pData[m_nSize], nNewSize-m_nSize);
+ }
+ else if (m_nSize > nNewSize)
+ {
+ // destroy the old elements
+ SPDestructElements(&m_pData[nNewSize], m_nSize-nNewSize);
+ }
+
+ if( SUCCEEDED( hr ) )
+ {
+ m_nSize = nNewSize;
+ }
+ }
+ else
+ {
+ // otherwise, grow array
+ int nGrowBy = m_nGrowBy;
+ if (nGrowBy == 0)
+ {
+ // heuristically determe growth when nGrowBy == 0
+ // (this avoids heap fragmentation in many situations)
+ nGrowBy = min(1024, max(4, m_nSize / 8));
+ }
+ int nNewMax;
+ if (nNewSize < m_nMaxSize + nGrowBy)
+ nNewMax = m_nMaxSize + nGrowBy; // granularity
+ else
+ nNewMax = nNewSize; // no slush
+
+ SPDBG_ASSERT( nNewMax >= m_nMaxSize ); // no wrap around
+#ifdef SIZE_T_MAX
+ SPDBG_ASSERT( nNewMax <= SIZE_T_MAX/sizeof(TYPE) ); // no overflow
+#endif
+ TYPE* pNewData = (TYPE*) new BYTE[nNewMax * sizeof(TYPE)];
+
+ if( pNewData )
+ {
+ // copy new data from old
+ memcpy(pNewData, m_pData, m_nSize * sizeof(TYPE));
+
+ // construct remaining elements
+ SPDBG_ASSERT( nNewSize > m_nSize );
+ hr = SPConstructElements(&pNewData[m_nSize], nNewSize-m_nSize);
+
+ // get rid of old stuff (note: no destructors called)
+ delete[] (BYTE*)m_pData;
+ m_pData = pNewData;
+ m_nSize = nNewSize;
+ m_nMaxSize = nNewMax;
+ }
+ else
+ {
+ hr = E_OUTOFMEMORY;
+ }
+ }
+ return hr;
+}
+
+template<class TYPE, class ARG_TYPE>
+int CSPArray<TYPE, ARG_TYPE>::Append(const CSPArray& src)
+{
+ SPASSERT_VALID( this );
+ SPDBG_ASSERT( this != &src ); // cannot append to itself
+
+ int nOldSize = m_nSize;
+ HRESULT hr = SetSize(m_nSize + src.m_nSize);
+ if( SUCCEEDED( hr ) )
+ {
+ hr = SPCopyElements(m_pData + nOldSize, src.m_pData, src.m_nSize);
+ }
+ return ( SUCCEEDED( hr ) )?(nOldSize):(-1);
+}
+
+template<class TYPE, class ARG_TYPE>
+HRESULT CSPArray<TYPE, ARG_TYPE>::Copy(const CSPArray& src)
+{
+ SPASSERT_VALID( this );
+ SPDBG_ASSERT( this != &src ); // cannot copy to itself
+
+ HRESULT hr = SetSize(src.m_nSize);
+ if( SUCCEEDED( hr ) )
+ {
+ hr = SPCopyElements(m_pData, src.m_pData, src.m_nSize);
+ }
+ return hr;
+}
+
+template<class TYPE, class ARG_TYPE>
+void CSPArray<TYPE, ARG_TYPE>::FreeExtra()
+{
+ SPASSERT_VALID( this );
+
+ if (m_nSize != m_nMaxSize)
+ {
+ // shrink to desired size
+#ifdef SIZE_T_MAX
+ SPDBG_ASSERT( m_nSize <= SIZE_T_MAX/sizeof(TYPE)); // no overflow
+#endif
+ TYPE* pNewData = NULL;
+ if (m_nSize != 0)
+ {
+ pNewData = (TYPE*) new BYTE[m_nSize * sizeof(TYPE)];
+ SPDBG_ASSERT(pNewData);
+ // copy new data from old
+ memcpy(pNewData, m_pData, m_nSize * sizeof(TYPE));
+ }
+
+ // get rid of old stuff (note: no destructors called)
+ delete[] (BYTE*)m_pData;
+ m_pData = pNewData;
+ m_nMaxSize = m_nSize;
+ }
+}
+
+template<class TYPE, class ARG_TYPE>
+HRESULT CSPArray<TYPE, ARG_TYPE>::SetAtGrow(int nIndex, ARG_TYPE newElement)
+{
+ SPASSERT_VALID( this );
+ SPDBG_ASSERT( nIndex >= 0 );
+ HRESULT hr = S_OK;
+
+ if (nIndex >= m_nSize)
+ {
+ hr = SetSize(nIndex+1, -1);
+ }
+
+ if( SUCCEEDED( hr ) )
+ {
+ m_pData[nIndex] = newElement;
+ }
+ return hr;
+}
+
+template<class TYPE, class ARG_TYPE>
+HRESULT CSPArray<TYPE, ARG_TYPE>::InsertAt(int nIndex, ARG_TYPE newElement, int nCount /*=1*/)
+{
+ SPASSERT_VALID( this );
+ SPDBG_ASSERT( nIndex >= 0 ); // will expand to meet need
+ SPDBG_ASSERT( nCount > 0 ); // zero or negative size not allowed
+ HRESULT hr = S_OK;
+
+ if (nIndex >= m_nSize)
+ {
+ // adding after the end of the array
+ hr = SetSize(nIndex + nCount, -1); // grow so nIndex is valid
+ }
+ else
+ {
+ // inserting in the middle of the array
+ int nOldSize = m_nSize;
+ hr = SetSize(m_nSize + nCount, -1); // grow it to new size
+ if( SUCCEEDED( hr ) )
+ {
+ // shift old data up to fill gap
+ memmove(&m_pData[nIndex+nCount], &m_pData[nIndex],
+ (nOldSize-nIndex) * sizeof(TYPE));
+
+ // re-init slots we copied from
+ hr = SPConstructElements(&m_pData[nIndex], nCount);
+ }
+ }
+
+ // insert new value in the gap
+ if( SUCCEEDED( hr ) )
+ {
+ SPDBG_ASSERT( nIndex + nCount <= m_nSize );
+ while (nCount--)
+ m_pData[nIndex++] = newElement;
+ }
+ return hr;
+}
+
+template<class TYPE, class ARG_TYPE>
+void CSPArray<TYPE, ARG_TYPE>::RemoveAt(int nIndex, int nCount)
+{
+ SPASSERT_VALID( this );
+ SPDBG_ASSERT( nIndex >= 0 );
+ SPDBG_ASSERT( nCount >= 0 );
+ SPDBG_ASSERT( nIndex + nCount <= m_nSize );
+
+ // just remove a range
+ int nMoveCount = m_nSize - (nIndex + nCount);
+ SPDestructElements(&m_pData[nIndex], nCount);
+ if (nMoveCount)
+ memcpy(&m_pData[nIndex], &m_pData[nIndex + nCount],
+ nMoveCount * sizeof(TYPE));
+ m_nSize -= nCount;
+}
+
+template<class TYPE, class ARG_TYPE>
+HRESULT CSPArray<TYPE, ARG_TYPE>::InsertAt(int nStartIndex, CSPArray* pNewArray)
+{
+ SPASSERT_VALID( this );
+ SPASSERT_VALID( pNewArray );
+ SPDBG_ASSERT( nStartIndex >= 0 );
+ HRESULT hr = S_OK;
+
+ if (pNewArray->GetSize() > 0)
+ {
+ hr = InsertAt(nStartIndex, pNewArray->GetAt(0), pNewArray->GetSize());
+ for (int i = 0; SUCCEEDED( hr )&& (i < pNewArray->GetSize()); i++)
+ {
+ SetAt(nStartIndex + i, pNewArray->GetAt(i));
+ }
+ }
+ return hr;
+}
+
+template<class TYPE, class ARG_TYPE>
+void CSPArray<TYPE, ARG_TYPE>::Sort(int (__cdecl *compare )(const void *elem1, const void *elem2 ))
+{
+ SPASSERT_VALID( this );
+ SPDBG_ASSERT( m_pData != NULL );
+
+ qsort( m_pData, m_nSize, sizeof(TYPE), compare );
+}
+
+#ifdef _DEBUG
+template<class TYPE, class ARG_TYPE>
+void CSPArray<TYPE, ARG_TYPE>::AssertValid() const
+{
+ if (m_pData == NULL)
+ {
+ SPDBG_ASSERT( m_nSize == 0 );
+ SPDBG_ASSERT( m_nMaxSize == 0 );
+ }
+ else
+ {
+ SPDBG_ASSERT( m_nSize >= 0 );
+ SPDBG_ASSERT( m_nMaxSize >= 0 );
+ SPDBG_ASSERT( m_nSize <= m_nMaxSize );
+ SPDBG_ASSERT( SPIsValidAddress(m_pData, m_nMaxSize * sizeof(TYPE), TRUE ) );
+ }
+}
+#endif //_DEBUG
+
+/////////////////////////////////////////////////////////////////////////////
+// CSPList<TYPE, ARG_TYPE>
+
+template<class TYPE, class ARG_TYPE>
+class CSPList
+{
+protected:
+ struct CNode
+ {
+ CNode* pNext;
+ CNode* pPrev;
+ TYPE data;
+ };
+public:
+
+// Construction
+ CSPList(int nBlockSize = 10);
+
+// Attributes (head and tail)
+ // count of elements
+ int GetCount() const;
+ BOOL IsEmpty() const;
+
+ // peek at head or tail
+ TYPE& GetHead();
+ TYPE GetHead() const;
+ TYPE& GetTail();
+ TYPE GetTail() const;
+
+// Operations
+ // get head or tail (and remove it) - don't call on empty list !
+ TYPE RemoveHead();
+ TYPE RemoveTail();
+
+ // add before head or after tail
+ SPLISTPOS AddHead(ARG_TYPE newElement);
+ SPLISTPOS AddTail(ARG_TYPE newElement);
+
+ // add another list of elements before head or after tail
+ void AddHead(CSPList* pNewList);
+ void AddTail(CSPList* pNewList);
+
+ // remove all elements
+ void RemoveAll();
+
+ // iteration
+ SPLISTPOS GetHeadPosition() const;
+ SPLISTPOS GetTailPosition() const;
+ TYPE& GetNext(SPLISTPOS& rPosition); // return *Position++
+ TYPE GetNext(SPLISTPOS& rPosition) const; // return *Position++
+ TYPE& GetPrev(SPLISTPOS& rPosition); // return *Position--
+ TYPE GetPrev(SPLISTPOS& rPosition) const; // return *Position--
+
+ // getting/modifying an element at a given position
+ TYPE& GetAt(SPLISTPOS position);
+ TYPE GetAt(SPLISTPOS position) const;
+ void SetAt(SPLISTPOS pos, ARG_TYPE newElement);
+ void RemoveAt(SPLISTPOS position);
+
+ // inserting before or after a given position
+ SPLISTPOS InsertBefore(SPLISTPOS position, ARG_TYPE newElement);
+ SPLISTPOS InsertAfter(SPLISTPOS position, ARG_TYPE newElement);
+
+ // helper functions (note: O(n) speed)
+ SPLISTPOS Find(ARG_TYPE searchValue, SPLISTPOS startAfter = NULL) const;
+ // defaults to starting at the HEAD, return NULL if not found
+ SPLISTPOS FindIndex(int nIndex) const;
+ // get the 'nIndex'th element (may return NULL)
+
+// Implementation
+protected:
+ CNode* m_pNodeHead;
+ CNode* m_pNodeTail;
+ int m_nCount;
+ CNode* m_pNodeFree;
+ struct CSPPlex* m_pBlocks;
+ int m_nBlockSize;
+
+ CNode* NewNode(CNode*, CNode*);
+ void FreeNode(CNode*);
+
+public:
+ ~CSPList();
+#ifdef _DEBUG
+ void AssertValid() const;
+#endif
+};
+
+/////////////////////////////////////////////////////////////////////////////
+// CSPList<TYPE, ARG_TYPE> inline functions
+
+template<class TYPE, class ARG_TYPE>
+inline int CSPList<TYPE, ARG_TYPE>::GetCount() const
+ { return m_nCount; }
+template<class TYPE, class ARG_TYPE>
+inline BOOL CSPList<TYPE, ARG_TYPE>::IsEmpty() const
+ { return m_nCount == 0; }
+template<class TYPE, class ARG_TYPE>
+inline TYPE& CSPList<TYPE, ARG_TYPE>::GetHead()
+ { SPDBG_ASSERT( m_pNodeHead != NULL );
+ return m_pNodeHead->data; }
+template<class TYPE, class ARG_TYPE>
+inline TYPE CSPList<TYPE, ARG_TYPE>::GetHead() const
+ { SPDBG_ASSERT( m_pNodeHead != NULL );
+ return m_pNodeHead->data; }
+template<class TYPE, class ARG_TYPE>
+inline TYPE& CSPList<TYPE, ARG_TYPE>::GetTail()
+ { SPDBG_ASSERT( m_pNodeTail != NULL );
+ return m_pNodeTail->data; }
+template<class TYPE, class ARG_TYPE>
+inline TYPE CSPList<TYPE, ARG_TYPE>::GetTail() const
+ { SPDBG_ASSERT( m_pNodeTail != NULL );
+ return m_pNodeTail->data; }
+template<class TYPE, class ARG_TYPE>
+inline SPLISTPOS CSPList<TYPE, ARG_TYPE>::GetHeadPosition() const
+ { return (SPLISTPOS) m_pNodeHead; }
+template<class TYPE, class ARG_TYPE>
+inline SPLISTPOS CSPList<TYPE, ARG_TYPE>::GetTailPosition() const
+ { return (SPLISTPOS) m_pNodeTail; }
+template<class TYPE, class ARG_TYPE>
+inline TYPE& CSPList<TYPE, ARG_TYPE>::GetNext(SPLISTPOS& rPosition) // return *Position++
+ { CNode* pNode = (CNode*) rPosition;
+ SPDBG_ASSERT( SPIsValidAddress(pNode, sizeof(CNode), TRUE ) );
+ rPosition = (SPLISTPOS) pNode->pNext;
+ return pNode->data; }
+template<class TYPE, class ARG_TYPE>
+inline TYPE CSPList<TYPE, ARG_TYPE>::GetNext(SPLISTPOS& rPosition) const // return *Position++
+ { CNode* pNode = (CNode*) rPosition;
+ SPDBG_ASSERT( SPIsValidAddress(pNode, sizeof(CNode), TRUE ) );
+ rPosition = (SPLISTPOS) pNode->pNext;
+ return pNode->data; }
+template<class TYPE, class ARG_TYPE>
+inline TYPE& CSPList<TYPE, ARG_TYPE>::GetPrev(SPLISTPOS& rPosition) // return *Position--
+ { CNode* pNode = (CNode*) rPosition;
+ SPDBG_ASSERT( SPIsValidAddress(pNode, sizeof(CNode), TRUE ) );
+ rPosition = (SPLISTPOS) pNode->pPrev;
+ return pNode->data; }
+template<class TYPE, class ARG_TYPE>
+inline TYPE CSPList<TYPE, ARG_TYPE>::GetPrev(SPLISTPOS& rPosition) const // return *Position--
+ { CNode* pNode = (CNode*) rPosition;
+ SPDBG_ASSERT( SPIsValidAddress(pNode, sizeof(CNode), TRUE ) );
+ rPosition = (SPLISTPOS) pNode->pPrev;
+ return pNode->data; }
+template<class TYPE, class ARG_TYPE>
+inline TYPE& CSPList<TYPE, ARG_TYPE>::GetAt(SPLISTPOS position)
+ { CNode* pNode = (CNode*) position;
+ SPDBG_ASSERT( SPIsValidAddress(pNode, sizeof(CNode), TRUE ) );
+ return pNode->data; }
+template<class TYPE, class ARG_TYPE>
+inline TYPE CSPList<TYPE, ARG_TYPE>::GetAt(SPLISTPOS position) const
+ { CNode* pNode = (CNode*) position;
+ SPDBG_ASSERT( SPIsValidAddress(pNode, sizeof(CNode), TRUE ) );
+ return pNode->data; }
+template<class TYPE, class ARG_TYPE>
+inline void CSPList<TYPE, ARG_TYPE>::SetAt(SPLISTPOS pos, ARG_TYPE newElement)
+ { CNode* pNode = (CNode*) pos;
+ SPDBG_ASSERT( SPIsValidAddress(pNode, sizeof(CNode), TRUE ) );
+ pNode->data = newElement; }
+
+/////////////////////////////////////////////////////////////////////////////
+// CSPList<TYPE, ARG_TYPE> out-of-line functions
+
+template<class TYPE, class ARG_TYPE>
+CSPList<TYPE, ARG_TYPE>::CSPList( int nBlockSize )
+{
+ SPDBG_ASSERT( nBlockSize > 0 );
+
+ m_nCount = 0;
+ m_pNodeHead = m_pNodeTail = m_pNodeFree = NULL;
+ m_pBlocks = NULL;
+ m_nBlockSize = nBlockSize;
+}
+
+template<class TYPE, class ARG_TYPE>
+void CSPList<TYPE, ARG_TYPE>::RemoveAll()
+{
+ SPASSERT_VALID( this );
+
+ // destroy elements
+ CNode* pNode;
+ for (pNode = m_pNodeHead; pNode != NULL; pNode = pNode->pNext)
+ SPDestructElements(&pNode->data, 1);
+
+ m_nCount = 0;
+ m_pNodeHead = m_pNodeTail = m_pNodeFree = NULL;
+ m_pBlocks->FreeDataChain();
+ m_pBlocks = NULL;
+}
+
+template<class TYPE, class ARG_TYPE>
+CSPList<TYPE, ARG_TYPE>::~CSPList()
+{
+ RemoveAll();
+ SPDBG_ASSERT( m_nCount == 0 );
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// Node helpers
+//
+// Implementation note: CNode's are stored in CSPPlex blocks and
+// chained together. Free blocks are maintained in a singly linked list
+// using the 'pNext' member of CNode with 'm_pNodeFree' as the head.
+// Used blocks are maintained in a doubly linked list using both 'pNext'
+// and 'pPrev' as links and 'm_pNodeHead' and 'm_pNodeTail'
+// as the head/tail.
+//
+// We never free a CSPPlex block unless the List is destroyed or RemoveAll()
+// is used - so the total number of CSPPlex blocks may grow large depending
+// on the maximum past size of the list.
+//
+
+template<class TYPE, class ARG_TYPE>
+CSPList<TYPE, ARG_TYPE>::CNode*
+CSPList<TYPE, ARG_TYPE>::NewNode(CSPList::CNode* pPrev, CSPList::CNode* pNext)
+{
+ if (m_pNodeFree == NULL)
+ {
+ // add another block
+ CSPPlex* pNewBlock = CSPPlex::Create(m_pBlocks, m_nBlockSize,sizeof(CNode));
+
+ // chain them into free list
+ CNode* pNode = (CNode*) pNewBlock->data();
+ // free in reverse order to make it easier to debug
+ pNode += m_nBlockSize - 1;
+ for (int i = m_nBlockSize-1; i >= 0; i--, pNode--)
+ {
+ pNode->pNext = m_pNodeFree;
+ m_pNodeFree = pNode;
+ }
+ }
+
+ CSPList::CNode* pNode = m_pNodeFree;
+ if( pNode )
+ {
+ if( SUCCEEDED( SPConstructElements(&pNode->data, 1) ) )
+ {
+ m_pNodeFree = m_pNodeFree->pNext;
+ pNode->pPrev = pPrev;
+ pNode->pNext = pNext;
+ m_nCount++;
+ SPDBG_ASSERT( m_nCount > 0 ); // make sure we don't overflow
+ }
+ }
+ return pNode;
+}
+
+template<class TYPE, class ARG_TYPE>
+void CSPList<TYPE, ARG_TYPE>::FreeNode(CSPList::CNode* pNode)
+{
+ SPDestructElements(&pNode->data, 1);
+ pNode->pNext = m_pNodeFree;
+ m_pNodeFree = pNode;
+ m_nCount--;
+ SPDBG_ASSERT( m_nCount >= 0 ); // make sure we don't underflow
+}
+
+template<class TYPE, class ARG_TYPE>
+SPLISTPOS CSPList<TYPE, ARG_TYPE>::AddHead(ARG_TYPE newElement)
+{
+ SPASSERT_VALID( this );
+
+ CNode* pNewNode = NewNode(NULL, m_pNodeHead);
+ if( pNewNode )
+ {
+ pNewNode->data = newElement;
+ if (m_pNodeHead != NULL)
+ m_pNodeHead->pPrev = pNewNode;
+ else
+ m_pNodeTail = pNewNode;
+ m_pNodeHead = pNewNode;
+ }
+ return (SPLISTPOS) pNewNode;
+}
+
+template<class TYPE, class ARG_TYPE>
+SPLISTPOS CSPList<TYPE, ARG_TYPE>::AddTail(ARG_TYPE newElement)
+{
+ SPASSERT_VALID( this );
+
+ CNode* pNewNode = NewNode(m_pNodeTail, NULL);
+ if( pNewNode )
+ {
+ pNewNode->data = newElement;
+ if (m_pNodeTail != NULL)
+ m_pNodeTail->pNext = pNewNode;
+ else
+ m_pNodeHead = pNewNode;
+ m_pNodeTail = pNewNode;
+ }
+ return (SPLISTPOS) pNewNode;
+}
+
+template<class TYPE, class ARG_TYPE>
+void CSPList<TYPE, ARG_TYPE>::AddHead(CSPList* pNewList)
+{
+ SPASSERT_VALID( this );
+ SPASSERT_VALID( pNewList );
+
+ // add a list of same elements to head (maintain order)
+ SPLISTPOS pos = pNewList->GetTailPosition();
+ while (pos != NULL)
+ AddHead(pNewList->GetPrev(pos));
+}
+
+template<class TYPE, class ARG_TYPE>
+void CSPList<TYPE, ARG_TYPE>::AddTail(CSPList* pNewList)
+{
+ SPASSERT_VALID( this );
+ SPASSERT_VALID( pNewList );
+
+ // add a list of same elements
+ SPLISTPOS pos = pNewList->GetHeadPosition();
+ while (pos != NULL)
+ AddTail(pNewList->GetNext(pos));
+}
+
+template<class TYPE, class ARG_TYPE>
+TYPE CSPList<TYPE, ARG_TYPE>::RemoveHead()
+{
+ SPASSERT_VALID( this );
+ SPDBG_ASSERT( m_pNodeHead != NULL ); // don't call on empty list !!!
+ SPDBG_ASSERT( SPIsValidAddress(m_pNodeHead, sizeof(CNode), TRUE ) );
+
+ CNode* pOldNode = m_pNodeHead;
+ TYPE returnValue = pOldNode->data;
+
+ m_pNodeHead = pOldNode->pNext;
+ if (m_pNodeHead != NULL)
+ m_pNodeHead->pPrev = NULL;
+ else
+ m_pNodeTail = NULL;
+ FreeNode(pOldNode);
+ return returnValue;
+}
+
+template<class TYPE, class ARG_TYPE>
+TYPE CSPList<TYPE, ARG_TYPE>::RemoveTail()
+{
+ SPASSERT_VALID( this );
+ SPDBG_ASSERT( m_pNodeTail != NULL ); // don't call on empty list !!!
+ SPDBG_ASSERT( SPIsValidAddress(m_pNodeTail, sizeof(CNode), TRUE ) );
+
+ CNode* pOldNode = m_pNodeTail;
+ TYPE returnValue = pOldNode->data;
+
+ m_pNodeTail = pOldNode->pPrev;
+ if (m_pNodeTail != NULL)
+ m_pNodeTail->pNext = NULL;
+ else
+ m_pNodeHead = NULL;
+ FreeNode(pOldNode);
+ return returnValue;
+}
+
+template<class TYPE, class ARG_TYPE>
+SPLISTPOS CSPList<TYPE, ARG_TYPE>::InsertBefore(SPLISTPOS position, ARG_TYPE newElement)
+{
+ SPASSERT_VALID( this );
+
+ if (position == NULL)
+ return AddHead(newElement); // insert before nothing -> head of the list
+
+ // Insert it before position
+ CNode* pOldNode = (CNode*) position;
+ CNode* pNewNode = NewNode(pOldNode->pPrev, pOldNode);
+ if( pNewNode )
+ {
+ pNewNode->data = newElement;
+
+ if (pOldNode->pPrev != NULL)
+ {
+ SPDBG_ASSERT( SPIsValidAddress(pOldNode->pPrev, sizeof(CNode), TRUE ) );
+ pOldNode->pPrev->pNext = pNewNode;
+ }
+ else
+ {
+ SPDBG_ASSERT( pOldNode == m_pNodeHead );
+ m_pNodeHead = pNewNode;
+ }
+ pOldNode->pPrev = pNewNode;
+ }
+ return (SPLISTPOS) pNewNode;
+}
+
+template<class TYPE, class ARG_TYPE>
+SPLISTPOS CSPList<TYPE, ARG_TYPE>::InsertAfter(SPLISTPOS position, ARG_TYPE newElement)
+{
+ SPASSERT_VALID( this );
+
+ if (position == NULL)
+ return AddTail(newElement); // insert after nothing -> tail of the list
+
+ // Insert it before position
+ CNode* pOldNode = (CNode*) position;
+ SPDBG_ASSERT( SPIsValidAddress(pOldNode, sizeof(CNode), TRUE ));
+ CNode* pNewNode = NewNode(pOldNode, pOldNode->pNext);
+ if( pNewNode )
+ {
+ pNewNode->data = newElement;
+
+ if (pOldNode->pNext != NULL)
+ {
+ SPDBG_ASSERT( SPIsValidAddress(pOldNode->pNext, sizeof(CNode), TRUE ));
+ pOldNode->pNext->pPrev = pNewNode;
+ }
+ else
+ {
+ SPDBG_ASSERT( pOldNode == m_pNodeTail );
+ m_pNodeTail = pNewNode;
+ }
+ pOldNode->pNext = pNewNode;
+ }
+ return (SPLISTPOS) pNewNode;
+}
+
+template<class TYPE, class ARG_TYPE>
+void CSPList<TYPE, ARG_TYPE>::RemoveAt(SPLISTPOS position)
+{
+ SPASSERT_VALID( this );
+
+ CNode* pOldNode = (CNode*) position;
+ SPDBG_ASSERT( SPIsValidAddress(pOldNode, sizeof(CNode), TRUE ) );
+
+ // remove pOldNode from list
+ if (pOldNode == m_pNodeHead)
+ {
+ m_pNodeHead = pOldNode->pNext;
+ }
+ else
+ {
+ SPDBG_ASSERT( SPIsValidAddress(pOldNode->pPrev, sizeof(CNode), TRUE ) );
+ pOldNode->pPrev->pNext = pOldNode->pNext;
+ }
+ if (pOldNode == m_pNodeTail)
+ {
+ m_pNodeTail = pOldNode->pPrev;
+ }
+ else
+ {
+ SPDBG_ASSERT( SPIsValidAddress(pOldNode->pNext, sizeof(CNode), TRUE ) );
+ pOldNode->pNext->pPrev = pOldNode->pPrev;
+ }
+ FreeNode(pOldNode);
+}
+
+template<class TYPE, class ARG_TYPE>
+SPLISTPOS CSPList<TYPE, ARG_TYPE>::FindIndex(int nIndex) const
+{
+ SPASSERT_VALID( this );
+ SPDBG_ASSERT( nIndex >= 0 );
+
+ if (nIndex >= m_nCount)
+ return NULL; // went too far
+
+ CNode* pNode = m_pNodeHead;
+ while (nIndex--)
+ {
+ SPDBG_ASSERT( SPIsValidAddress(pNode, sizeof(CNode), TRUE ));
+ pNode = pNode->pNext;
+ }
+ return (SPLISTPOS) pNode;
+}
+
+template<class TYPE, class ARG_TYPE>
+SPLISTPOS CSPList<TYPE, ARG_TYPE>::Find(ARG_TYPE searchValue, SPLISTPOS startAfter) const
+{
+ SPASSERT_VALID( this );
+
+ CNode* pNode = (CNode*) startAfter;
+ if (pNode == NULL)
+ {
+ pNode = m_pNodeHead; // start at head
+ }
+ else
+ {
+ SPDBG_ASSERT( SPIsValidAddress(pNode, sizeof(CNode), TRUE ) );
+ pNode = pNode->pNext; // start after the one specified
+ }
+
+ for (; pNode != NULL; pNode = pNode->pNext)
+ if (SPCompareElements(&pNode->data, &searchValue))
+ return (SPLISTPOS)pNode;
+ return NULL;
+}
+
+#ifdef _DEBUG
+template<class TYPE, class ARG_TYPE>
+void CSPList<TYPE, ARG_TYPE>::AssertValid() const
+{
+ if (m_nCount == 0)
+ {
+ // empty list
+ SPDBG_ASSERT( m_pNodeHead == NULL );
+ SPDBG_ASSERT( m_pNodeTail == NULL );
+ }
+ else
+ {
+ // non-empty list
+ SPDBG_ASSERT( SPIsValidAddress(m_pNodeHead, sizeof(CNode), TRUE ));
+ SPDBG_ASSERT( SPIsValidAddress(m_pNodeTail, sizeof(CNode), TRUE ));
+ }
+}
+#endif //_DEBUG
+
+/////////////////////////////////////////////////////////////////////////////
+// CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>
+
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+class CSPMap
+{
+protected:
+ // Association
+ struct CAssoc
+ {
+ CAssoc* pNext;
+ UINT nHashValue; // needed for efficient iteration
+ KEY key;
+ VALUE value;
+ };
+public:
+// Construction
+ CSPMap( int nBlockSize = 10 );
+
+// Attributes
+ // number of elements
+ int GetCount() const;
+ BOOL IsEmpty() const;
+
+ // Lookup
+ BOOL Lookup(ARG_KEY key, VALUE& rValue) const;
+
+// Operations
+ // Lookup and add if not there
+ VALUE& operator[](ARG_KEY key);
+
+ // add a new (key, value) pair
+ void SetAt(ARG_KEY key, ARG_VALUE newValue);
+
+ // removing existing (key, ?) pair
+ BOOL RemoveKey(ARG_KEY key);
+ void RemoveAll();
+
+ // iterating all (key, value) pairs
+ SPLISTPOS GetStartPosition() const;
+ void GetNextAssoc(SPLISTPOS& rNextPosition, KEY& rKey, VALUE& rValue) const;
+
+ // advanced features for derived classes
+ UINT GetHashTableSize() const;
+ HRESULT InitHashTable(UINT hashSize, BOOL bAllocNow = TRUE);
+
+// Implementation
+protected:
+ CAssoc** m_pHashTable;
+ UINT m_nHashTableSize;
+ int m_nCount;
+ CAssoc* m_pFreeList;
+ struct CSPPlex* m_pBlocks;
+ int m_nBlockSize;
+
+ CAssoc* NewAssoc();
+ void FreeAssoc(CAssoc*);
+ CAssoc* GetAssocAt(ARG_KEY, UINT&) const;
+
+public:
+ ~CSPMap();
+#ifdef _DEBUG
+// void Dump(CDumpContext&) const;
+ void AssertValid() const;
+#endif
+};
+
+/////////////////////////////////////////////////////////////////////////////
+// CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE> inline functions
+
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+inline int CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::GetCount() const
+ { return m_nCount; }
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+inline BOOL CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::IsEmpty() const
+ { return m_nCount == 0; }
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+inline void CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::SetAt(ARG_KEY key, ARG_VALUE newValue)
+ { (*this)[key] = newValue; }
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+inline SPLISTPOS CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::GetStartPosition() const
+ { return (m_nCount == 0) ? NULL : SP_BEFORE_START_POSITION; }
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+inline UINT CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::GetHashTableSize() const
+ { return m_nHashTableSize; }
+
+/////////////////////////////////////////////////////////////////////////////
+// CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE> out-of-line functions
+
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::CSPMap( int nBlockSize )
+{
+ SPDBG_ASSERT( nBlockSize > 0 );
+
+ m_pHashTable = NULL;
+ m_nHashTableSize = 17; // default size
+ m_nCount = 0;
+ m_pFreeList = NULL;
+ m_pBlocks = NULL;
+ m_nBlockSize = nBlockSize;
+}
+
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+HRESULT CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::InitHashTable(
+ UINT nHashSize, BOOL bAllocNow)
+//
+// Used to force allocation of a hash table or to override the default
+// hash table size of (which is fairly small)
+{
+ SPASSERT_VALID( this );
+ SPDBG_ASSERT( m_nCount == 0 );
+ SPDBG_ASSERT( nHashSize > 0 );
+ HRESULT hr = S_OK;
+
+ if (m_pHashTable != NULL)
+ {
+ // free hash table
+ delete[] m_pHashTable;
+ m_pHashTable = NULL;
+ }
+
+ if (bAllocNow)
+ {
+ m_pHashTable = new CAssoc* [nHashSize];
+ if( m_pHashTable )
+ {
+ memset(m_pHashTable, 0, sizeof(CAssoc*) * nHashSize);
+ }
+ else
+ {
+ hr = E_OUTOFMEMORY;
+ }
+ }
+
+ m_nHashTableSize = ( SUCCEEDED( hr ) )?(nHashSize):(0);
+ return hr;
+}
+
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+void CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::RemoveAll()
+{
+ SPASSERT_VALID( this );
+
+ if (m_pHashTable != NULL)
+ {
+ // destroy elements (values and keys)
+ for (UINT nHash = 0; nHash < m_nHashTableSize; nHash++)
+ {
+ CAssoc* pAssoc;
+ for( pAssoc = m_pHashTable[nHash]; pAssoc != NULL;
+ pAssoc = pAssoc->pNext)
+ {
+ SPDestructElements(&pAssoc->value, 1);
+ SPDestructElements(&pAssoc->key, 1);
+ }
+ }
+ }
+
+ // free hash table
+ delete[] m_pHashTable;
+ m_pHashTable = NULL;
+
+ m_nCount = 0;
+ m_pFreeList = NULL;
+ m_pBlocks->FreeDataChain();
+ m_pBlocks = NULL;
+}
+
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::~CSPMap()
+{
+ RemoveAll();
+ SPDBG_ASSERT( m_nCount == 0 );
+}
+
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::CAssoc*
+CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::NewAssoc()
+{
+ if (m_pFreeList == NULL)
+ {
+ // add another block
+ CSPPlex* newBlock = CSPPlex::Create(m_pBlocks, m_nBlockSize, sizeof(CSPMap::CAssoc));
+
+ if( newBlock )
+ {
+ // chain them into free list
+ CSPMap::CAssoc* pAssoc = (CSPMap::CAssoc*) newBlock->data();
+ // free in reverse order to make it easier to debug
+ pAssoc += m_nBlockSize - 1;
+ for (int i = m_nBlockSize-1; i >= 0; i--, pAssoc--)
+ {
+ pAssoc->pNext = m_pFreeList;
+ m_pFreeList = pAssoc;
+ }
+ }
+ }
+
+ CSPMap::CAssoc* pAssoc = m_pFreeList;
+ if( pAssoc )
+ {
+ if( SUCCEEDED( SPConstructElements(&pAssoc->key, 1 ) ) )
+ {
+ if( SUCCEEDED( SPConstructElements(&pAssoc->value, 1 ) ) )
+ {
+ m_pFreeList = m_pFreeList->pNext;
+ m_nCount++;
+ SPDBG_ASSERT( m_nCount > 0 ); // make sure we don't overflow
+ }
+ else
+ {
+ SPDestructElements( &pAssoc->key, 1 );
+ }
+ }
+ else
+ {
+ pAssoc = NULL;
+ }
+ }
+ return pAssoc;
+}
+
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+void CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::FreeAssoc(CSPMap::CAssoc* pAssoc)
+{
+ SPDestructElements(&pAssoc->value, 1);
+ SPDestructElements(&pAssoc->key, 1);
+ pAssoc->pNext = m_pFreeList;
+ m_pFreeList = pAssoc;
+ m_nCount--;
+ SPDBG_ASSERT( m_nCount >= 0 ); // make sure we don't underflow
+}
+
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::CAssoc*
+CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::GetAssocAt(ARG_KEY key, UINT& nHash) const
+// find association (or return NULL)
+{
+ nHash = SPHashKey(key) % m_nHashTableSize;
+
+ if (m_pHashTable == NULL)
+ return NULL;
+
+ // see if it exists
+ CAssoc* pAssoc;
+ for (pAssoc = m_pHashTable[nHash]; pAssoc != NULL; pAssoc = pAssoc->pNext)
+ {
+ if (SPCompareElements(&pAssoc->key, &key))
+ return pAssoc;
+ }
+ return NULL;
+}
+
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+BOOL CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::Lookup(ARG_KEY key, VALUE& rValue) const
+{
+ SPASSERT_VALID( this );
+
+ UINT nHash;
+ CAssoc* pAssoc = GetAssocAt(key, nHash);
+ if (pAssoc == NULL)
+ return FALSE; // not in map
+
+ rValue = pAssoc->value;
+ return TRUE;
+}
+
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+VALUE& CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::operator[](ARG_KEY key)
+{
+ SPASSERT_VALID( this );
+ HRESULT hr = S_OK;
+ static const CAssoc ErrAssoc = 0;
+
+ UINT nHash;
+ CAssoc* pAssoc;
+ if ((pAssoc = GetAssocAt(key, nHash)) == NULL)
+ {
+ if( m_pHashTable == NULL )
+ {
+ hr = InitHashTable(m_nHashTableSize);
+ }
+
+ if( SUCCEEDED( hr ) )
+ {
+ // it doesn't exist, add a new Association
+ pAssoc = NewAssoc();
+ if( pAssoc )
+ {
+ pAssoc->nHashValue = nHash;
+ pAssoc->key = key;
+ // 'pAssoc->value' is a constructed object, nothing more
+
+ // put into hash table
+ pAssoc->pNext = m_pHashTable[nHash];
+ m_pHashTable[nHash] = pAssoc;
+ }
+ else
+ {
+ pAssoc = &ErrAssoc;
+ }
+ }
+ }
+ return pAssoc->value; // return new reference
+}
+
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+BOOL CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::RemoveKey(ARG_KEY key)
+// remove key - return TRUE if removed
+{
+ SPASSERT_VALID( this );
+
+ if (m_pHashTable == NULL)
+ return FALSE; // nothing in the table
+
+ CAssoc** ppAssocPrev;
+ ppAssocPrev = &m_pHashTable[SPHashKey(key) % m_nHashTableSize];
+
+ CAssoc* pAssoc;
+ for (pAssoc = *ppAssocPrev; pAssoc != NULL; pAssoc = pAssoc->pNext)
+ {
+ if (SPCompareElements(&pAssoc->key, &key))
+ {
+ // remove it
+ *ppAssocPrev = pAssoc->pNext; // remove from list
+ FreeAssoc(pAssoc);
+ return TRUE;
+ }
+ ppAssocPrev = &pAssoc->pNext;
+ }
+ return FALSE; // not found
+}
+
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+void CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::GetNextAssoc(SPLISTPOS& rNextPosition,
+ KEY& rKey, VALUE& rValue) const
+{
+ SPASSERT_VALID( this );
+ SPDBG_ASSERT( m_pHashTable != NULL ); // never call on empty map
+
+ CAssoc* pAssocRet = (CAssoc*)rNextPosition;
+ SPDBG_ASSERT( pAssocRet != NULL );
+
+ if (pAssocRet == (CAssoc*) SP_BEFORE_START_POSITION)
+ {
+ // find the first association
+ for (UINT nBucket = 0; nBucket < m_nHashTableSize; nBucket++)
+ if ((pAssocRet = m_pHashTable[nBucket]) != NULL)
+ break;
+ SPDBG_ASSERT( pAssocRet != NULL ); // must find something
+ }
+
+ // find next association
+ SPDBG_ASSERT( SPIsValidAddress(pAssocRet, sizeof(CAssoc), TRUE ));
+ CAssoc* pAssocNext;
+ if ((pAssocNext = pAssocRet->pNext) == NULL)
+ {
+ // go to next bucket
+ for (UINT nBucket = pAssocRet->nHashValue + 1;
+ nBucket < m_nHashTableSize; nBucket++)
+ if ((pAssocNext = m_pHashTable[nBucket]) != NULL)
+ break;
+ }
+
+ rNextPosition = (SPLISTPOS) pAssocNext;
+
+ // fill in return data
+ rKey = pAssocRet->key;
+ rValue = pAssocRet->value;
+}
+
+#ifdef _DEBUG
+template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
+void CSPMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::AssertValid() const
+{
+ SPDBG_ASSERT( m_nHashTableSize > 0 );
+ SPDBG_ASSERT( (m_nCount == 0 || m_pHashTable != NULL) );
+ // non-empty map should have hash table
+}
+#endif //_DEBUG
+
+#endif //--- This must be the last line in the file
diff --git a/utils/sapi51/include/spddkhlp.h b/utils/sapi51/include/spddkhlp.h
new file mode 100644
index 0000000..bc4134a
--- /dev/null
+++ b/utils/sapi51/include/spddkhlp.h
@@ -0,0 +1,854 @@
+/*******************************************************************************
+* SPDDKHLP.h *
+*------------*
+* Description:
+* This is the header file for core helper functions implementation.
+*
+* Copyright (c) Microsoft Corporation. All rights reserved.
+*
+*******************************************************************************/
+#ifndef SPDDKHLP_h
+#define SPDDKHLP_h
+
+#ifndef SPHelper_h
+#include <sphelper.h>
+#endif
+
+#include <sapiddk.h>
+
+#ifndef SPError_h
+#include <SPError.h>
+#endif
+
+#ifndef SPDebug_h
+#include <SPDebug.h>
+#endif
+
+#ifndef _INC_LIMITS
+#include <limits.h>
+#endif
+
+#ifndef _INC_CRTDBG
+#include <crtdbg.h>
+#endif
+
+#ifndef _INC_MALLOC
+#include <malloc.h>
+#endif
+
+#ifndef _INC_MMSYSTEM
+#include <mmsystem.h>
+#endif
+
+#ifndef __comcat_h__
+#include <comcat.h>
+#endif
+
+//=== Constants ==============================================================
+#define sp_countof(x) ((sizeof(x) / sizeof(*(x))))
+
+#define SP_IS_BAD_WRITE_PTR(p) ( SPIsBadWritePtr( p, sizeof(*(p)) ))
+#define SP_IS_BAD_READ_PTR(p) ( SPIsBadReadPtr( p, sizeof(*(p)) ))
+#define SP_IS_BAD_CODE_PTR(p) ( ::IsBadCodePtr((FARPROC)(p) )
+#define SP_IS_BAD_INTERFACE_PTR(p) ( SPIsBadInterfacePtr( (p) ) )
+#define SP_IS_BAD_VARIANT_PTR(p) ( SPIsBadVARIANTPtr( (p) ) )
+#define SP_IS_BAD_STRING_PTR(p) ( SPIsBadStringPtr( (p) ) )
+
+#define SP_IS_BAD_OPTIONAL_WRITE_PTR(p) ((p) && SPIsBadWritePtr( p, sizeof(*(p)) ))
+#define SP_IS_BAD_OPTIONAL_READ_PTR(p) ((p) && SPIsBadReadPtr( p, sizeof(*(p)) ))
+#define SP_IS_BAD_OPTIONAL_INTERFACE_PTR(p) ((p) && SPIsBadInterfacePtr(p))
+#define SP_IS_BAD_OPTIONAL_STRING_PTR(p) ((p) && SPIsBadStringPtr(p))
+
+//=== Class, Enum, Struct, Template, and Union Declarations ==================
+
+//=== Inlines ================================================================
+
+/*** Pointer validation functions
+*/
+
+// TODO: Add decent debug output for bad parameters
+
+inline BOOL SPIsBadStringPtr( const WCHAR * psz, ULONG cMaxChars = 0xFFFF )
+{
+ BOOL IsBad = false;
+ __try
+ {
+ do
+ {
+ if( *psz++ == 0 ) return IsBad;
+ }
+ while( --cMaxChars );
+ }
+ __except( GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION )
+ {
+ IsBad = true;
+ }
+
+ return IsBad;
+}
+
+inline BOOL SPIsBadReadPtr( const void* pMem, UINT Size )
+{
+#ifdef _DEBUG
+ BOOL bIsBad = ::IsBadReadPtr( pMem, Size );
+ SPDBG_ASSERT(!bIsBad);
+ return bIsBad;
+#else
+ return ::IsBadReadPtr( pMem, Size );
+#endif
+}
+
+inline BOOL SPIsBadWritePtr( void* pMem, UINT Size )
+{
+#ifdef _DEBUG
+ BOOL bIsBad = ::IsBadWritePtr( pMem, Size );
+ SPDBG_ASSERT(!bIsBad);
+ return bIsBad;
+#else
+ return ::IsBadWritePtr( pMem, Size );
+#endif
+}
+
+inline BOOL SPIsBadInterfacePtr( const IUnknown* pUnknown )
+{
+#ifdef _DEBUG
+ BOOL bIsBad = ( ::IsBadReadPtr( pUnknown, sizeof( *pUnknown ) ) ||
+ ::IsBadCodePtr( (FARPROC)((void**)pUnknown)[0] ))?
+ (true):(false);
+ SPDBG_ASSERT(!bIsBad);
+ return bIsBad;
+#else
+ return ( ::IsBadReadPtr( pUnknown, sizeof( *pUnknown ) ) ||
+ ::IsBadCodePtr( (FARPROC)((void**)pUnknown)[0] ))?
+ (true):(false);
+#endif
+}
+
+inline BOOL SPIsBadVARIANTPtr( const VARIANT* pVar )
+{
+#ifdef _DEBUG
+ BOOL bIsBad = ::IsBadReadPtr( pVar, sizeof( *pVar ) );
+ SPDBG_ASSERT(!bIsBad);
+ return bIsBad;
+#else
+ return ::IsBadReadPtr( pVar, sizeof( *pVar ) );
+#endif
+}
+
+#ifdef __ATLCOM_H__ //--- Only enable these if ATL is being used
+
+//
+// Helper functions can be used to implement GetObjectToken/SetObjectToken for objects that
+// support ISpObjectWithToken
+//
+inline HRESULT SpGenericSetObjectToken(ISpObjectToken * pCallersToken, CComPtr<ISpObjectToken> & cpObjToken)
+{
+ HRESULT hr = S_OK;
+ if (SP_IS_BAD_INTERFACE_PTR(pCallersToken))
+ {
+ hr = E_INVALIDARG;
+ }
+ else
+ {
+ if (cpObjToken)
+ {
+ hr = SPERR_ALREADY_INITIALIZED;
+ }
+ else
+ {
+ cpObjToken = pCallersToken;
+ }
+ }
+ return hr;
+}
+
+
+inline HRESULT SpGenericGetObjectToken(ISpObjectToken ** ppCallersToken, CComPtr<ISpObjectToken> & cpObjToken)
+{
+ HRESULT hr = S_OK;
+ if (SP_IS_BAD_WRITE_PTR(ppCallersToken))
+ {
+ hr = E_POINTER;
+ }
+ else
+ {
+ *ppCallersToken = cpObjToken;
+ if (*ppCallersToken)
+ {
+ (*ppCallersToken)->AddRef();
+ }
+ else
+ {
+ hr = S_FALSE;
+ }
+ }
+ return hr;
+}
+
+#endif // __ATLCOM_H__
+
+
+//
+// Helper class for SPSTATEINFO sturcture automatically initializes and cleans up
+// the structure + provides a few helper functions.
+//
+class CSpStateInfo : public SPSTATEINFO
+{
+public:
+ CSpStateInfo()
+ {
+ cAllocatedEntries = NULL;
+ pTransitions = NULL;
+ }
+ ~CSpStateInfo()
+ {
+ ::CoTaskMemFree(pTransitions);
+ }
+ SPTRANSITIONENTRY * FirstEpsilon()
+ {
+ return pTransitions;
+ }
+ SPTRANSITIONENTRY * FirstRule()
+ {
+ return pTransitions + cEpsilons;
+ }
+ SPTRANSITIONENTRY * FirstWord()
+ {
+ return pTransitions + cEpsilons + cRules;
+ }
+ SPTRANSITIONENTRY * FirstSpecialTransition()
+ {
+ return pTransitions + cEpsilons + cRules + cWords;
+ }
+};
+
+
+//
+// This basic queue implementation can be used to maintin linked lists of classes. The class T
+// must contain the member m_pNext which is used by this template to point to the next element.
+// If the bPurgeWhenDeleted is TRUE then all of the elements in the queue will be deleted
+// when the queue is deleted, otherwise they will not.
+// If bMaintainCount is TRUE then a running count will be maintained, and GetCount() will be
+// efficent. If it is FALSE then a running count will not be maintained, and GetCount() will
+// be an order N operation. If you do not require a count, then
+//
+
+template <class T, BOOL bPurgeWhenDeleted> class CSpBasicList;
+
+template <class T, BOOL bPurgeWhenDeleted = TRUE, BOOL bMaintainCount = FALSE>
+class CSpBasicQueue
+{
+public:
+ T * m_pHead;
+ T * m_pTail;
+ ULONG m_cElements; // Warning! Use GetCount() -- Not maintained if bMaintainCount is FALSE.
+
+ CSpBasicQueue()
+ {
+ m_pHead = NULL;
+ if (bMaintainCount)
+ {
+ m_cElements = 0;
+ }
+ }
+
+ ~CSpBasicQueue()
+ {
+ if (bPurgeWhenDeleted)
+ {
+ Purge();
+ }
+ }
+
+ HRESULT CreateNode(T ** ppNode)
+ {
+ *ppNode = new T;
+ if (*ppNode)
+ {
+ return S_OK;
+ }
+ else
+ {
+ return E_OUTOFMEMORY;
+ }
+ }
+
+ T * GetNext(const T * pNode)
+ {
+ return pNode->m_pNext;
+ }
+
+
+ T * Item(ULONG i)
+ {
+ T * pNode = m_pHead;
+ while (pNode && i)
+ {
+ i--;
+ pNode = pNode->m_pNext;
+ }
+ return pNode;
+ }
+
+ void InsertAfter(T * pPrev, T * pNewNode)
+ {
+ if (pPrev)
+ {
+ pNewNode->m_pNext = pPrev->m_pNext;
+ pPrev->m_pNext = pNewNode;
+ if (pNewNode->m_pNext == NULL)
+ {
+ m_pTail = pNewNode;
+ }
+ if (bMaintainCount) ++m_cElements;
+ }
+ else
+ {
+ InsertHead(pNewNode);
+ }
+ }
+
+ void InsertTail(T * pNode)
+ {
+ pNode->m_pNext = NULL;
+ if (m_pHead)
+ {
+ m_pTail->m_pNext = pNode;
+ }
+ else
+ {
+ m_pHead = pNode;
+ }
+ m_pTail = pNode;
+ if (bMaintainCount) ++m_cElements;
+ }
+
+ void InsertHead(T * pNode)
+ {
+ pNode->m_pNext = m_pHead;
+ if (m_pHead == NULL)
+ {
+ m_pTail = pNode;
+ }
+ m_pHead = pNode;
+ if (bMaintainCount) ++m_cElements;
+ }
+
+ T * RemoveHead()
+ {
+ T * pNode = m_pHead;
+ if (pNode)
+ {
+ m_pHead = pNode->m_pNext;
+ if (bMaintainCount) --m_cElements;
+ }
+ return pNode;
+ }
+
+ T * RemoveTail()
+ {
+ T * pNode = m_pHead;
+ if (pNode)
+ {
+ if (pNode == m_pTail)
+ {
+ m_pHead = NULL;
+ }
+ else
+ {
+ T * pPrev;
+ do
+ {
+ pPrev = pNode;
+ pNode = pNode->m_pNext;
+ } while ( pNode != m_pTail );
+ pPrev->m_pNext = NULL;
+ m_pTail = pPrev;
+ }
+ if (bMaintainCount) --m_cElements;
+ }
+ return pNode;
+ }
+
+ void Purge()
+ {
+ while (m_pHead)
+ {
+ T * pDie = m_pHead;
+ m_pHead = pDie->m_pNext;
+ delete pDie;
+ }
+ if (bMaintainCount) m_cElements = 0;
+ }
+
+ void ExplicitPurge()
+ {
+ T * pDie;
+ BYTE * pb;
+
+ while (m_pHead)
+ {
+ pDie = m_pHead;
+ m_pHead = pDie->m_pNext;
+
+ pDie->~T();
+
+ pb = reinterpret_cast<BYTE *>(pDie);
+ delete [] pb;
+ }
+ if (bMaintainCount) m_cElements = 0;
+ }
+
+
+ T * GetTail() const
+ {
+ if (m_pHead)
+ {
+ return m_pTail;
+ }
+ return NULL;
+ }
+
+ T * GetHead() const
+ {
+ return m_pHead;
+ }
+
+ BOOL IsEmpty() const
+ {
+ return m_pHead == NULL;
+ }
+
+ BOOL Remove(T * pNode)
+ {
+ if (m_pHead == pNode)
+ {
+ m_pHead = pNode->m_pNext;
+ if (bMaintainCount) --m_cElements;
+ return TRUE;
+ }
+ else
+ {
+ T * pCur = m_pHead;
+ while (pCur)
+ {
+ T * pNext = pCur->m_pNext;
+ if (pNext == pNode)
+ {
+ if ((pCur->m_pNext = pNode->m_pNext) == NULL)
+ {
+ m_pTail = pCur;
+ }
+ if (bMaintainCount) --m_cElements;
+ return TRUE;
+ }
+ pCur = pNext;
+ }
+ }
+ return FALSE;
+ }
+
+ void MoveAllToHeadOf(CSpBasicQueue & DestQueue)
+ {
+ if (m_pHead)
+ {
+ m_pTail->m_pNext = DestQueue.m_pHead;
+ if (DestQueue.m_pHead == NULL)
+ {
+ DestQueue.m_pTail = m_pTail;
+ }
+ DestQueue.m_pHead = m_pHead;
+ m_pHead = NULL;
+ if (bMaintainCount)
+ {
+ DestQueue.m_cElements += m_cElements;
+ m_cElements = 0;
+ }
+ }
+ }
+
+ void MoveAllToList(CSpBasicList<T, bPurgeWhenDeleted> & List)
+ {
+ if (m_pHead)
+ {
+ m_pTail->m_pNext = List.m_pFirst;
+ List.m_pFirst = m_pHead;
+ m_pHead = NULL;
+ }
+ if (bMaintainCount)
+ {
+ m_cElements = 0;
+ }
+ }
+
+ BOOL MoveToList(T * pNode, CSpBasicList<T, bPurgeWhenDeleted> & List)
+ {
+ BOOL bFound = Remove(pNode);
+ if (bFound)
+ {
+ List.AddNode(pNode);
+ }
+ return bFound;
+ }
+
+ ULONG GetCount() const
+ {
+ if (bMaintainCount)
+ {
+ return m_cElements;
+ }
+ else
+ {
+ ULONG c = 0;
+ for (T * pNode = m_pHead;
+ pNode;
+ pNode = pNode->m_pNext, c++) {}
+ return c;
+ }
+ }
+
+ //
+ // The following functions require the class T to implement a static function:
+ //
+ // LONG Compare(const T * pElem1, const T * pElem2)
+ //
+ // which returns < 0 if pElem1 is less than pElem2, 0 if they are equal, and > 0 if
+ // pElem1 is greater than pElem2.
+ //
+ void InsertSorted(T * pNode)
+ {
+ if (m_pHead)
+ {
+ if (T::Compare(pNode, m_pTail) >= 0)
+ {
+ pNode->m_pNext = NULL;
+ m_pTail->m_pNext = pNode;
+ m_pTail = pNode;
+ }
+ else
+ {
+ //
+ // We don't have to worry about walking off of the end of the list here since
+ // we have already checked the tail.
+ //
+ T ** ppNext = &m_pHead;
+ while (T::Compare(pNode, *ppNext) >= 0)
+ {
+ ppNext = &((*ppNext)->m_pNext);
+ }
+ pNode->m_pNext = *ppNext;
+ *ppNext = pNode;
+ }
+ }
+ else
+ {
+ pNode->m_pNext = NULL;
+ m_pHead = m_pTail = pNode;
+ }
+ if (bMaintainCount) ++m_cElements;
+ }
+
+ HRESULT InsertSortedUnique(T * pNode)
+ {
+ HRESULT hr = S_OK;
+ if (m_pHead)
+ {
+ if (T::Compare(pNode, m_pTail) > 0)
+ {
+ pNode->m_pNext = NULL;
+ m_pTail->m_pNext = pNode;
+ m_pTail = pNode;
+ }
+ else
+ {
+ //
+ // We don't have to worry about walking off of the end of the list here since
+ // we have already checked the tail.
+ //
+ T ** ppNext = &m_pHead;
+ while (T::Compare(pNode, *ppNext) > 0)
+ {
+ ppNext = &((*ppNext)->m_pNext);
+ }
+ if (T::Compare(pNode, *ppNext) != 0)
+ {
+ pNode->m_pNext = *ppNext;
+ *ppNext = pNode;
+ }
+ else
+ {
+ delete pNode;
+ hr = S_FALSE;
+ }
+ }
+ }
+ else
+ {
+ pNode->m_pNext = NULL;
+ m_pHead = m_pTail = pNode;
+ }
+ if (bMaintainCount) ++m_cElements;
+ return hr;
+ }
+
+ //
+ // These functions must support the "==" operator for the TFIND type.
+ //
+ template <class TFIND>
+ T * Find(TFIND & FindVal) const
+ {
+ for (T * pNode = m_pHead; pNode && (!(*pNode == FindVal)); pNode = pNode->m_pNext)
+ {}
+ return pNode;
+ }
+
+ template <class TFIND>
+ T * FindNext(const T * pCurNode, TFIND & FindVal) const
+ {
+ for (T * pNode = pCurNode->m_pNext; pNode && (!(*pNode == FindVal)); pNode = pNode->m_pNext)
+ {}
+ return pNode;
+ }
+
+ //
+ // Searches for and removes a single list element
+ //
+ template <class TFIND>
+ T * FindAndRemove(TFIND & FindVal)
+ {
+ T * pNode = m_pHead;
+ if (pNode)
+ {
+ if (*pNode == FindVal)
+ {
+ m_pHead = pNode->m_pNext;
+ if (bMaintainCount) --m_cElements;
+ }
+ else
+ {
+ T * pPrev = pNode;
+ for (pNode = pNode->m_pNext;
+ pNode;
+ pPrev = pNode, pNode = pNode->m_pNext)
+ {
+ if (*pNode == FindVal)
+ {
+ pPrev->m_pNext = pNode->m_pNext;
+ if (pNode->m_pNext == NULL)
+ {
+ m_pTail = pPrev;
+ }
+ if (bMaintainCount) --m_cElements;
+ break;
+ }
+ }
+ }
+ }
+ return pNode;
+ }
+
+ //
+ // Searches for and deletes all list elements that match
+ //
+ template <class TFIND>
+ void FindAndDeleteAll(TFIND & FindVal)
+ {
+ T * pNode = m_pHead;
+ while (pNode && *pNode == FindVal)
+ {
+ m_pHead = pNode->m_pNext;
+ delete pNode;
+ if (bMaintainCount) --m_cElements;
+ pNode = m_pHead;
+ }
+ T * pPrev = pNode;
+ while (pNode)
+ {
+ T * pNext = pNode->m_pNext;
+ if (*pNode == FindVal)
+ {
+ pPrev->m_pNext = pNext;
+ delete pNode;
+ if (bMaintainCount) --m_cElements;
+ }
+ else
+ {
+ pPrev = pNode;
+ }
+ pNode = pNext;
+ }
+ m_pTail = pPrev; // Just always set it in case we removed the tail.
+ }
+
+
+};
+
+template <class T, BOOL bPurgeWhenDeleted = TRUE>
+class CSpBasicList
+{
+public:
+ T * m_pFirst;
+ CSpBasicList() : m_pFirst(NULL) {}
+ ~CSpBasicList()
+ {
+ if (bPurgeWhenDeleted)
+ {
+ Purge();
+ }
+ }
+
+ void Purge()
+ {
+ while (m_pFirst)
+ {
+ T * pNext = m_pFirst->m_pNext;
+ delete m_pFirst;
+ m_pFirst = pNext;
+ }
+ }
+
+ void ExplicitPurge()
+ {
+ T * pDie;
+ BYTE * pb;
+
+ while (m_pFirst)
+ {
+ pDie = m_pFirst;
+ m_pFirst = pDie->m_pNext;
+
+ pDie->~T();
+
+ pb = reinterpret_cast<BYTE *>(pDie);
+ delete [] pb;
+ }
+ }
+
+ HRESULT RemoveFirstOrAllocateNew(T ** ppNode)
+ {
+ if (m_pFirst)
+ {
+ *ppNode = m_pFirst;
+ m_pFirst = m_pFirst->m_pNext;
+ }
+ else
+ {
+ *ppNode = new T;
+ if (*ppNode == NULL)
+ {
+ return E_OUTOFMEMORY;
+ }
+ }
+ return S_OK;
+ }
+
+ void AddNode(T * pNode)
+ {
+ pNode->m_pNext = m_pFirst;
+ m_pFirst = pNode;
+ }
+ T * GetFirst()
+ {
+ return m_pFirst;
+ }
+ T * RemoveFirst()
+ {
+ T * pNode = m_pFirst;
+ if (pNode)
+ {
+ m_pFirst = pNode->m_pNext;
+ }
+ return pNode;
+ }
+};
+
+#define STACK_ALLOC(TYPE, COUNT) (TYPE *)_alloca(sizeof(TYPE) * (COUNT))
+#define STACK_ALLOC_AND_ZERO(TYPE, COUNT) (TYPE *)memset(_alloca(sizeof(TYPE) * (COUNT)), 0, (sizeof(TYPE) * (COUNT)))
+#define STACK_ALLOC_AND_COPY(TYPE, COUNT, SOURCE) (TYPE *)memcpy(_alloca(sizeof(TYPE) * (COUNT)), (SOURCE), (sizeof(TYPE) * (COUNT)))
+
+inline HRESULT SpGetSubTokenFromToken(
+ ISpObjectToken * pToken,
+ const WCHAR * pszSubKeyName,
+ ISpObjectToken ** ppToken,
+ BOOL fCreateIfNotExist = FALSE)
+{
+ SPDBG_FUNC("SpGetTokenFromDataKey");
+ HRESULT hr = S_OK;
+
+ if (SP_IS_BAD_INTERFACE_PTR(pToken) ||
+ SP_IS_BAD_STRING_PTR(pszSubKeyName) ||
+ SP_IS_BAD_WRITE_PTR(ppToken))
+ {
+ hr = E_POINTER;
+ }
+
+ // First, either create or open the datakey for the new token
+ CComPtr<ISpDataKey> cpDataKeyForNewToken;
+ if (SUCCEEDED(hr))
+ {
+ if (fCreateIfNotExist)
+ {
+ hr = pToken->CreateKey(pszSubKeyName, &cpDataKeyForNewToken);
+ }
+ else
+ {
+ hr = pToken->OpenKey(pszSubKeyName, &cpDataKeyForNewToken);
+ }
+ }
+
+ // The sub token's category will be the token id of it's parent token
+ CSpDynamicString dstrCategoryId;
+ if (SUCCEEDED(hr))
+ {
+ hr = pToken->GetId(&dstrCategoryId);
+ }
+
+ // The sub token's token id will be it's category id + "\\" the key name
+ CSpDynamicString dstrTokenId;
+ if (SUCCEEDED(hr))
+ {
+ dstrTokenId = dstrCategoryId;
+ dstrTokenId.Append2(L"\\", pszSubKeyName);
+ }
+
+ // Now create the token and initalize it
+ CComPtr<ISpObjectTokenInit> cpTokenInit;
+ if (SUCCEEDED(hr))
+ {
+ hr = cpTokenInit.CoCreateInstance(CLSID_SpObjectToken);
+ }
+
+ if (SUCCEEDED(hr))
+ {
+ hr = cpTokenInit->InitFromDataKey(dstrCategoryId, dstrTokenId, cpDataKeyForNewToken);
+ }
+
+ if (SUCCEEDED(hr))
+ {
+ *ppToken = cpTokenInit.Detach();
+ }
+
+ SPDBG_REPORT_ON_FAIL(hr);
+ return hr;
+}
+
+template<class T>
+HRESULT SpCreateObjectFromSubToken(ISpObjectToken * pToken, const WCHAR * pszSubKeyName, T ** ppObject,
+ IUnknown * pUnkOuter = NULL, DWORD dwClsCtxt = CLSCTX_ALL)
+{
+ SPDBG_FUNC("SpCreateObjectFromSubToken");
+ HRESULT hr;
+
+ CComPtr<ISpObjectToken> cpSubToken;
+ hr = SpGetSubTokenFromToken(pToken, pszSubKeyName, &cpSubToken);
+
+ if (SUCCEEDED(hr))
+ {
+ hr = SpCreateObjectFromToken(cpSubToken, ppObject, pUnkOuter, dwClsCtxt);
+ }
+
+ SPDBG_REPORT_ON_FAIL(hr);
+ return hr;
+}
+
+#endif /* This must be the last line in the file */
diff --git a/utils/sapi51/include/spdebug.h b/utils/sapi51/include/spdebug.h
new file mode 100644
index 0000000..da9a7ee
--- /dev/null
+++ b/utils/sapi51/include/spdebug.h
@@ -0,0 +1,636 @@
+/*******************************************************************************
+* SPDebug.h *
+*-----------*
+* Description:
+* This header file contains debug output services for SAPI5
+*-------------------------------------------------------------------------------
+* Copyright (c) Microsoft Corporation. All rights reserved.
+*******************************************************************************/
+
+#pragma once
+
+#include <TCHAR.h>
+#include <crtdbg.h>
+
+#ifdef ASSERT_WITH_STACK
+#include "AssertWithStack.h"
+#endif
+
+const TCHAR g_szSpDebugKey[] = _T("SPDebug");
+const TCHAR g_szSpDebugFuncTraceReportMode[] = _T("FuncTraceMode");
+const TCHAR g_szSpDebugFuncTraceReportFile[] = _T("FuncTraceFile");
+const TCHAR g_szSpDebugParamInfoReportMode[] = _T("ParamInfoMode");
+const TCHAR g_szSpDebugParamInfoReportFile[] = _T("ParamInfoFile");
+const TCHAR g_szSpDebugDumpInfoReportMode[] = _T("DumpInfoMode");
+const TCHAR g_szSpDebugDumpInfoReportFile[] = _T("DumpInfoFile");
+const TCHAR g_szSpDebugAssertReportMode[] = _T("AssertMode");
+const TCHAR g_szSpDebugAssertReportFile[] = _T("AssertFile");
+const TCHAR g_szSpDebugHRFailReportMode[] = _T("HRFailMode");
+const TCHAR g_szSpDebugHRFailReportFile[] = _T("HRFailFile");
+
+const TCHAR g_szSpDebugAssertSettingsReReadEachTime[] = _T("AssertSettingsReReadEachTime");
+const TCHAR g_szSpDebugServerOnStart[] = _T("DebugServerOnStart");
+const TCHAR g_szSpDebugClientOnStart[] = _T("DebugClientOnStart");
+
+const TCHAR g_szSpDebugLog[] = _T("c:\\spdebug.log");
+
+#ifdef _DEBUG
+
+class CSpDebug
+{
+public:
+
+ CSpDebug()
+ {
+ m_mutex = NULL;
+ m_reportModePrev = -1;
+ m_hfilePrev = NULL;
+ Read();
+ }
+
+ ~CSpDebug()
+ {
+ if (m_mutex != NULL)
+ {
+ CloseHandle(m_mutex);
+ }
+ }
+
+ BOOL FuncTrace(BOOL fEnter = TRUE)
+ {
+ return fEnter
+ ? Enter(_CRT_WARN, m_FuncTraceMode, m_szFuncTraceFile)
+ : Leave();
+ }
+
+ BOOL ParamInfo(BOOL fEnter = TRUE)
+ {
+ return fEnter
+ ? Enter(_CRT_WARN, m_ParamInfoMode, m_szParamInfoFile)
+ : Leave();
+ }
+
+ BOOL DumpInfo(BOOL fEnter = TRUE)
+ {
+ return fEnter
+ ? Enter(_CRT_WARN, m_DumpInfoMode, m_szDumpInfoFile)
+ : Leave();
+ }
+
+ BOOL Assert(BOOL fEnter = TRUE)
+ {
+ if (m_fAssertSettingsReReadEachTime)
+ Read();
+
+ return fEnter
+ ? Enter(_CRT_ASSERT, m_AssertMode, m_szAssertFile)
+ : Leave();
+ }
+
+ BOOL HRFail(BOOL fEnter = TRUE)
+ {
+ return fEnter
+ ? Enter(_CRT_WARN, m_HRFailMode, m_szHRFailFile)
+ : Leave();
+ }
+
+ BOOL DebugServerOnStart()
+ {
+ return m_fDebugServerOnStart;
+ }
+
+ BOOL DebugClientOnStart()
+ {
+ return m_fDebugClientOnStart;
+ }
+
+private:
+
+ void Read()
+ {
+ HKEY hkeyDebug;
+ RegCreateKeyEx(
+ HKEY_CLASSES_ROOT,
+ g_szSpDebugKey,
+ 0,
+ NULL,
+ 0,
+ KEY_READ | KEY_WRITE,
+ NULL,
+ &hkeyDebug,
+ NULL);
+ if (hkeyDebug == NULL)
+ {
+ RegCreateKeyEx(
+ HKEY_CLASSES_ROOT,
+ g_szSpDebugKey,
+ 0,
+ NULL,
+ 0,
+ KEY_READ,
+ NULL,
+ &hkeyDebug,
+ NULL);
+ }
+
+ DWORD dw = sizeof(m_fAssertSettingsReReadEachTime);
+ if (RegQueryValueEx(
+ hkeyDebug,
+ g_szSpDebugAssertSettingsReReadEachTime,
+ NULL,
+ NULL,
+ LPBYTE(&m_fAssertSettingsReReadEachTime),
+ &dw) != ERROR_SUCCESS)
+ {
+ m_fAssertSettingsReReadEachTime = FALSE;
+ RegSetValueEx(
+ hkeyDebug,
+ g_szSpDebugAssertSettingsReReadEachTime,
+ NULL,
+ REG_DWORD,
+ LPBYTE(&m_fAssertSettingsReReadEachTime),
+ sizeof(m_fAssertSettingsReReadEachTime));
+ }
+
+ ReadFor(
+ hkeyDebug,
+ g_szSpDebugFuncTraceReportMode,
+ g_szSpDebugFuncTraceReportFile,
+ &m_FuncTraceMode,
+ m_szFuncTraceFile,
+ 0,
+ g_szSpDebugLog);
+ ReadFor(
+ hkeyDebug,
+ g_szSpDebugParamInfoReportMode,
+ g_szSpDebugParamInfoReportFile,
+ &m_ParamInfoMode,
+ m_szParamInfoFile,
+ 0,
+ g_szSpDebugLog);
+ ReadFor(
+ hkeyDebug,
+ g_szSpDebugDumpInfoReportMode,
+ g_szSpDebugDumpInfoReportFile,
+ &m_DumpInfoMode,
+ m_szDumpInfoFile,
+ _CRTDBG_MODE_DEBUG,
+ g_szSpDebugLog);
+ ReadFor(
+ hkeyDebug,
+ g_szSpDebugAssertReportMode,
+ g_szSpDebugAssertReportFile,
+ &m_AssertMode,
+ m_szAssertFile,
+ _CRTDBG_MODE_WNDW,
+ g_szSpDebugLog);
+ ReadFor(
+ hkeyDebug,
+ g_szSpDebugHRFailReportMode,
+ g_szSpDebugHRFailReportFile,
+ &m_HRFailMode,
+ m_szHRFailFile,
+ _CRTDBG_MODE_DEBUG,
+ g_szSpDebugLog);
+
+ dw = sizeof(m_fDebugServerOnStart);
+ if (RegQueryValueEx(
+ hkeyDebug,
+ g_szSpDebugServerOnStart,
+ NULL,
+ NULL,
+ LPBYTE(&m_fDebugServerOnStart),
+ &dw) != ERROR_SUCCESS)
+ {
+ m_fDebugServerOnStart = FALSE;
+ RegSetValueEx(
+ hkeyDebug,
+ g_szSpDebugServerOnStart,
+ NULL,
+ REG_DWORD,
+ LPBYTE(&m_fDebugServerOnStart),
+ sizeof(m_fDebugServerOnStart));
+ }
+
+ dw = sizeof(m_fDebugClientOnStart);
+ if (RegQueryValueEx(
+ hkeyDebug,
+ g_szSpDebugClientOnStart,
+ NULL,
+ NULL,
+ LPBYTE(&m_fDebugClientOnStart),
+ &dw) != ERROR_SUCCESS)
+ {
+ m_fDebugClientOnStart = FALSE;
+ RegSetValueEx(
+ hkeyDebug,
+ g_szSpDebugClientOnStart,
+ NULL,
+ REG_DWORD,
+ LPBYTE(&m_fDebugClientOnStart),
+ sizeof(m_fDebugClientOnStart));
+ }
+
+ RegCloseKey(hkeyDebug);
+ }
+
+ void ReadFor(
+ HKEY hkey,
+ const TCHAR * pszModeValueName,
+ const TCHAR * pszFileValueName,
+ DWORD * pdwModeValue,
+ TCHAR * pszFileValue,
+ DWORD dwDefaultModeValue,
+ const TCHAR * pszDefaultFileValue)
+ {
+ DWORD dw = sizeof(*pdwModeValue);
+ if (RegQueryValueEx(
+ hkey,
+ pszModeValueName,
+ NULL,
+ NULL,
+ LPBYTE(pdwModeValue),
+ &dw) != ERROR_SUCCESS)
+ {
+ *pdwModeValue = dwDefaultModeValue;
+ RegSetValueEx(
+ hkey,
+ pszModeValueName,
+ NULL,
+ REG_DWORD,
+ LPBYTE(pdwModeValue),
+ sizeof(*pdwModeValue));
+ }
+
+ dw = MAX_PATH;
+ if (RegQueryValueEx(
+ hkey,
+ pszFileValueName,
+ NULL,
+ NULL,
+ LPBYTE(pszFileValue),
+ &dw) != ERROR_SUCCESS)
+ {
+ _tcscpy(pszFileValue, pszDefaultFileValue);
+ RegSetValueEx(
+ hkey,
+ pszFileValueName,
+ NULL,
+ REG_SZ,
+ LPBYTE(pszFileValue),
+ MAX_PATH);
+ }
+ }
+
+ BOOL Enter(int reportType, DWORD &reportMode, TCHAR * pszFile)
+ {
+ if (reportMode != 0)
+ {
+ // We'll hold the mutex, until the caller also calls Leave
+ if (m_mutex == NULL)
+ {
+ m_mutex = CreateMutex(NULL, FALSE, _T("SpDebug"));
+ }
+ WaitForSingleObject(m_mutex, INFINITE);
+
+ m_reportType = reportType;
+ m_reportModePrev = _CrtSetReportMode(reportType, reportMode);
+ if (reportMode & _CRTDBG_MODE_FILE)
+ {
+ HANDLE hfile = CreateFile(
+ pszFile,
+ GENERIC_READ | GENERIC_WRITE,
+ FILE_SHARE_READ,
+ NULL,
+ OPEN_ALWAYS,
+ 0,
+ NULL);
+ SetFilePointer(hfile, 0, NULL, FILE_END);
+ m_hfilePrev = (_HFILE)_CrtSetReportFile(reportType, (_HFILE)hfile);
+ }
+
+ return TRUE;
+ }
+
+ return FALSE;
+ }
+
+ BOOL Leave()
+ {
+ int reportMode = _CrtSetReportMode(m_reportType, m_reportModePrev);
+ if (reportMode & _CRTDBG_MODE_FILE)
+ {
+ CloseHandle((_HFILE)_CrtSetReportFile(m_reportType, (_HFILE)m_hfilePrev));
+ }
+
+ ReleaseMutex(m_mutex);
+
+ return TRUE;
+ }
+
+private:
+
+ HANDLE m_mutex;
+
+ int m_reportType;
+ int m_reportModePrev;
+ _HFILE m_hfilePrev;
+
+ BOOL m_fAssertSettingsReReadEachTime;
+
+ DWORD m_FuncTraceMode;
+ TCHAR m_szFuncTraceFile[MAX_PATH + 1];
+ DWORD m_ParamInfoMode;
+ TCHAR m_szParamInfoFile[MAX_PATH + 1];
+ DWORD m_DumpInfoMode;
+ TCHAR m_szDumpInfoFile[MAX_PATH + 1];
+ DWORD m_AssertMode;
+ TCHAR m_szAssertFile[MAX_PATH + 1];
+ DWORD m_HRFailMode;
+ TCHAR m_szHRFailFile[MAX_PATH + 1];
+
+ BOOL m_fDebugServerOnStart;
+ BOOL m_fDebugClientOnStart;
+};
+
+inline CSpDebug *PSpDebug()
+{
+ static CSpDebug debug;
+ return &debug;
+}
+
+class CSpFuncTrace
+{
+public:
+
+ CSpFuncTrace(PCHAR pFuncName)
+ {
+ m_pFuncName = pFuncName;
+ if (PSpDebug()->FuncTrace())
+ {
+ _RPT1( _CRT_WARN, "\nEntering Function: %s\n", m_pFuncName );
+ PSpDebug()->FuncTrace(FALSE);
+ }
+ }
+
+ ~CSpFuncTrace()
+ {
+ if (PSpDebug()->FuncTrace())
+ {
+ _RPT1( _CRT_WARN, "Leaving Function: %s\n", m_pFuncName );
+ PSpDebug()->FuncTrace(FALSE);
+ }
+ }
+
+private:
+
+ PCHAR m_pFuncName;
+};
+
+#endif // _DEBUG
+
+//=== User macros ==============================================================
+
+#ifdef _DEBUG
+
+#define SPDBG_FUNC(name) \
+ CSpFuncTrace functrace(name)
+
+#if defined(ASSERT_WITH_STACK) && !defined(_WIN64)
+#define SPDBG_REPORT_ON_FAIL(hr) \
+ do \
+ { \
+ HRESULT _hr = (hr); \
+ if (FAILED(_hr) && PSpDebug()->HRFail()) \
+ { \
+ SYSTEMTIME sysTime; \
+ GetLocalTime(&sysTime); \
+ CHAR pszHrWithTime[100]; \
+ sprintf(pszHrWithTime, "%lX\n\n%d.%d.%d %02d:%02d:%02d", \
+ _hr, \
+ sysTime.wMonth,sysTime.wDay,sysTime.wYear, \
+ sysTime.wHour,sysTime.wMinute,sysTime.wSecond); \
+ PCHAR pszStack = \
+ (PCHAR)_alloca( \
+ cchMaxAssertStackLevelStringLen * \
+ cfrMaxAssertStackLevels + 1); \
+ GetStringFromStackLevels(0, 10, pszStack); \
+ _RPT4(_CRT_WARN, \
+ "%s(%d): Failed HR = %s\n\n%s\n", \
+ __FILE__, \
+ __LINE__, \
+ pszHrWithTime, \
+ pszStack); \
+ PSpDebug()->HRFail(FALSE); \
+ } \
+ } while (0)
+#else // ASSERT_WITH_STACK & !_WIN64
+#define SPDBG_REPORT_ON_FAIL(hr) \
+ do \
+ { \
+ HRESULT _hr = (hr); \
+ if (FAILED(_hr) && PSpDebug()->HRFail()) \
+ { \
+ _RPT3(_CRT_WARN, "%s(%d): Failed HR = %lX\n", __FILE__, __LINE__, (_hr) );\
+ PSpDebug()->HRFail(FALSE); \
+ } \
+ } while (0)
+#endif // ASSERT_WITH_STACK
+
+#define SPDBG_ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ if (PSpDebug()->Assert()) \
+ { \
+ _ASSERTE( expr ); \
+ PSpDebug()->Assert(FALSE); \
+ } \
+ } \
+ } \
+ while (0)
+
+#define SPDBG_VERIFY(expr) \
+ SPDBG_ASSERT(expr)
+
+#define SPDBG_PMSG0(format) \
+ do \
+ { \
+ if (PSpDebug()->ParamInfo()) \
+ { \
+ _RPT0(_CRT_WARN, format); \
+ PSpDebug()->ParamInfo(FALSE); \
+ } \
+ } while (0)
+#define SPDBG_PMSG1(format, arg1) \
+ do \
+ { \
+ if (PSpDebug()->ParamInfo()) \
+ { \
+ _RPT1(_CRT_WARN, format, arg1); \
+ PSpDebug()->ParamInfo(FALSE); \
+ } \
+ } while (0)
+#define SPDBG_PMSG2(format, arg1, arg2) \
+ do \
+ { \
+ if (PSpDebug()->ParamInfo()) \
+ { \
+ _RPT2(_CRT_WARN, format, arg1, arg2); \
+ PSpDebug()->ParamInfo(FALSE); \
+ } \
+ } while (0)
+#define SPDBG_PMSG3(format, arg1, arg2, arg3) \
+ do \
+ { \
+ if (PSpDebug()->ParamInfo()) \
+ { \
+ _RPT3(_CRT_WARN, format, arg1, arg2, arg3); \
+ PSpDebug()->ParamInfo(FALSE); \
+ } \
+ } while (0)
+#define SPDBG_PMSG4(format, arg1, arg2, arg3, arg4) \
+ do \
+ { \
+ if (PSpDebug()->ParamInfo()) \
+ { \
+ _RPT4(_CRT_WARN, format, arg1, arg2, arg3, arg4); \
+ PSpDebug()->ParamInfo(FALSE); \
+ } \
+ } while (0)
+
+#define SPDBG_DMSG0(format) \
+ do \
+ { \
+ if (PSpDebug()->DumpInfo()) \
+ { \
+ _RPT0(_CRT_WARN, format); \
+ PSpDebug()->DumpInfo(FALSE); \
+ } \
+ } while (0)
+#define SPDBG_DMSG1(format, arg1) \
+ do \
+ { \
+ if (PSpDebug()->DumpInfo()) \
+ { \
+ _RPT1(_CRT_WARN, format, arg1); \
+ PSpDebug()->DumpInfo(FALSE); \
+ } \
+ } while (0)
+#define SPDBG_DMSG2(format, arg1, arg2) \
+ do \
+ { \
+ if (PSpDebug()->DumpInfo()) \
+ { \
+ _RPT2(_CRT_WARN, format, arg1, arg2); \
+ PSpDebug()->DumpInfo(FALSE); \
+ } \
+ } while (0)
+#define SPDBG_DMSG3(format, arg1, arg2, arg3) \
+ do \
+ { \
+ if (PSpDebug()->DumpInfo()) \
+ { \
+ _RPT3(_CRT_WARN, format, arg1, arg2, arg3); \
+ PSpDebug()->DumpInfo(FALSE); \
+ } \
+ } while (0)
+#define SPDBG_DMSG4(format, arg1, arg2, arg3, arg4) \
+ do \
+ { \
+ if (PSpDebug()->DumpInfo()) \
+ { \
+ _RPT4(_CRT_WARN, format, arg1, arg2, arg3, arg4); \
+ PSpDebug()->DumpInfo(FALSE); \
+ } \
+ } while (0)
+
+#define SPDBG_RETURN(hr) \
+ { \
+ HRESULT __hr = (hr); \
+ if (FAILED(__hr)) \
+ { \
+ SPDBG_REPORT_ON_FAIL(__hr); \
+ } \
+ return __hr; \
+ }
+
+#define SPDBG_DEBUG_SERVER_ON_START() \
+ { \
+ if (PSpDebug()->DebugServerOnStart()) \
+ { \
+ if (MessageBox( \
+ GetDesktopWindow(), \
+ _T("Attach Debugger to the SAPI Server process?"), \
+ _T("SAPI"), \
+ MB_YESNO) == IDYES) \
+ { \
+ USES_CONVERSION; \
+ TCHAR szCommand[MAX_PATH + 1]; \
+ wsprintf( \
+ szCommand, \
+ _T("msdev -p %d"), \
+ GetCurrentProcessId()); \
+ system(T2A(szCommand)); \
+ } \
+ } \
+ }
+
+#define SPDBG_DEBUG_CLIENT_ON_START() \
+ { \
+ if (PSpDebug()->DebugClientOnStart()) \
+ { \
+ TCHAR szModule[MAX_PATH + 1]; \
+ szModule[0] = '\0'; \
+ TCHAR * pszSapiServer = \
+ _T("sapisvr.exe"); \
+ GetModuleFileName( \
+ NULL, \
+ szModule, \
+ MAX_PATH); \
+ if ((_tcslen(szModule) <= \
+ _tcslen(pszSapiServer) || \
+ _tcsicmp( \
+ szModule + \
+ _tcslen(szModule) - \
+ _tcslen(pszSapiServer), \
+ pszSapiServer) != 0) && \
+ MessageBox( \
+ GetDesktopWindow(), \
+ _T("Attach Debugger to the SAPI Client process?"), \
+ _T("SAPI"), \
+ MB_YESNO) == IDYES) \
+ { \
+ USES_CONVERSION; \
+ TCHAR szCommand[MAX_PATH + 1]; \
+ wsprintf( \
+ szCommand, \
+ _T("msdev -p %d"), \
+ GetCurrentProcessId()); \
+ system(T2A(szCommand)); \
+ } \
+ } \
+ }
+
+#else // _DEBUG
+
+#define SPDBG_FUNC(name)
+#define SPDBG_REPORT_ON_FAIL(hr)
+#define SPDBG_ASSERT(expr)
+#define SPDBG_VERIFY(expr) (expr)
+#define SPDBG_PMSG0(format)
+#define SPDBG_PMSG1(format, arg1)
+#define SPDBG_PMSG2(format, arg1, arg2)
+#define SPDBG_PMSG3(format, arg1, arg2, arg3)
+#define SPDBG_PMSG4(format, arg1, arg2, arg3, arg4)
+#define SPDBG_DMSG0(format)
+#define SPDBG_DMSG1(format, arg1)
+#define SPDBG_DMSG2(format, arg1, arg2)
+#define SPDBG_DMSG3(format, arg1, arg2, arg3)
+#define SPDBG_DMSG4(format, arg1, arg2, arg3, arg4)
+#define SPDBG_RETURN(hr) return (hr)
+#define SPDBG_DEBUG_SERVER_ON_START()
+#define SPDBG_DEBUG_CLIENT_ON_START()
+
+#endif // _DEBUG
diff --git a/utils/sapi51/include/sperror.h b/utils/sapi51/include/sperror.h
new file mode 100644
index 0000000..95a4395
--- /dev/null
+++ b/utils/sapi51/include/sperror.h
@@ -0,0 +1,559 @@
+/*******************************************************************************
+* SPError.h *
+*-----------*
+* Description:
+* This header file contains the custom error codes specific to SAPI5
+*-------------------------------------------------------------------------------
+* Copyright (c) Microsoft Corporation. All rights reserved.
+*******************************************************************************/
+#ifndef SPError_h
+#define SPError_h
+
+#ifndef _WINERROR_
+#include <winerror.h>
+#endif
+
+#define FACILITY_SAPI FACILITY_ITF
+#define SAPI_ERROR_BASE 0x5000
+
+#define MAKE_SAPI_HRESULT(sev, err) MAKE_HRESULT(sev, FACILITY_SAPI, err)
+#define MAKE_SAPI_ERROR(err) MAKE_SAPI_HRESULT(SEVERITY_ERROR, err + SAPI_ERROR_BASE)
+#define MAKE_SAPI_SCODE(scode) MAKE_SAPI_HRESULT(SEVERITY_SUCCESS, scode + SAPI_ERROR_BASE)
+
+/*** SPERR_UNINITIALIZED 0x80045001 -2147201023
+* The object has not been properly initialized.
+*/
+#define SPERR_UNINITIALIZED MAKE_SAPI_ERROR(0x001)
+
+/*** SPERR_ALREADY_INITIALIZED 0x80045002 -2147201022
+* The object has already been initialized.
+*/
+#define SPERR_ALREADY_INITIALIZED MAKE_SAPI_ERROR(0x002)
+
+/*** SPERR_UNSUPPORTED_FORMAT 0x80045003 -2147201021
+* The caller has specified an unsupported format.
+*/
+#define SPERR_UNSUPPORTED_FORMAT MAKE_SAPI_ERROR(0x003)
+
+/*** SPERR_INVALID_FLAGS 0x80045004 -2147201020
+* The caller has specified invalid flags for this operation.
+*/
+#define SPERR_INVALID_FLAGS MAKE_SAPI_ERROR(0x004)
+
+/*** SP_END_OF_STREAM 0x00045005 282629
+* The operation has reached the end of stream.
+*/
+#define SP_END_OF_STREAM MAKE_SAPI_SCODE(0x005)
+
+/*** SPERR_DEVICE_BUSY 0x80045006 -2147201018
+* The wave device is busy.
+*/
+#define SPERR_DEVICE_BUSY MAKE_SAPI_ERROR(0x006)
+
+/*** SPERR_DEVICE_NOT_SUPPORTED 0x80045007 -2147201017
+* The wave device is not supported.
+*/
+#define SPERR_DEVICE_NOT_SUPPORTED MAKE_SAPI_ERROR(0x007)
+
+/*** SPERR_DEVICE_NOT_ENABLED 0x80045008 -2147201016
+* The wave device is not enabled.
+*/
+#define SPERR_DEVICE_NOT_ENABLED MAKE_SAPI_ERROR(0x008)
+
+/*** SPERR_NO_DRIVER 0x80045009 -2147201015
+* There is no wave driver installed.
+*/
+#define SPERR_NO_DRIVER MAKE_SAPI_ERROR(0x009)
+
+/*** SPERR_FILEMUSTBEUNICODE 0x8004500a -2147201014
+* The file must be Unicode.
+*/
+#define SPERR_FILE_MUST_BE_UNICODE MAKE_SAPI_ERROR(0x00a)
+
+/*** SP_INSUFFICIENTDATA 0x0004500b 282635
+*
+*/
+#define SP_INSUFFICIENT_DATA MAKE_SAPI_SCODE(0x00b)
+
+/*** SPERR_INVALID_PHRASE_ID 0x8004500c -2147201012
+* The phrase ID specified does not exist or is out of range.
+*/
+#define SPERR_INVALID_PHRASE_ID MAKE_SAPI_ERROR(0x00c)
+
+/*** SPERR_BUFFER_TOO_SMALL 0x8004500d -2147201011
+* The caller provided a buffer too small to return a result.
+*/
+#define SPERR_BUFFER_TOO_SMALL MAKE_SAPI_ERROR(0x00d)
+
+/*** SPERR_FORMAT_NOT_SPECIFIED 0x8004500e -2147201010
+* Caller did not specify a format prior to opening a stream.
+*/
+#define SPERR_FORMAT_NOT_SPECIFIED MAKE_SAPI_ERROR(0x00e)
+
+/*** SPERR_AUDIO_STOPPED 0x8004500f -2147201009
+* This method is deprecated. Use SP_AUDIO_STOPPED instead.
+*/
+#define SPERR_AUDIO_STOPPED MAKE_SAPI_ERROR(0x00f)
+
+/*** SP_AUDIO_PAUSED 0x00045010 282640
+* This will be returned only on input (read) streams when the stream is paused. Reads on
+* paused streams will not block, and this return code indicates that all of the data has been
+* removed from the stream.
+*/
+#define SP_AUDIO_PAUSED MAKE_SAPI_SCODE(0x010)
+
+/*** SPERR_RULE_NOT_FOUND 0x80045011 -2147201007
+* Invalid rule name passed to ActivateGrammar.
+*/
+#define SPERR_RULE_NOT_FOUND MAKE_SAPI_ERROR(0x011)
+
+/*** SPERR_TTS_ENGINE_EXCEPTION 0x80045012 -2147201006
+* An exception was raised during a call to the current TTS driver.
+*/
+#define SPERR_TTS_ENGINE_EXCEPTION MAKE_SAPI_ERROR(0x012)
+
+/*** SPERR_TTS_NLP_EXCEPTION 0x80045013 -2147201005
+* An exception was raised during a call to an application sentence filter.
+*/
+#define SPERR_TTS_NLP_EXCEPTION MAKE_SAPI_ERROR(0x013)
+
+/*** SPERR_ENGINE_BUSY 0x80045014 -2147201004
+* In speech recognition, the current method can not be performed while
+* a grammar rule is active.
+*/
+#define SPERR_ENGINE_BUSY MAKE_SAPI_ERROR(0x014)
+
+/*** SP_AUDIO_CONVERSION_ENABLED 0x00045015 282645
+* The operation was successful, but only with automatic stream format conversion.
+*/
+#define SP_AUDIO_CONVERSION_ENABLED MAKE_SAPI_SCODE(0x015)
+
+/*** SP_NO_HYPOTHESIS_AVAILABLE 0x00045016 282646
+* There is currently no hypothesis recognition available.
+*/
+#define SP_NO_HYPOTHESIS_AVAILABLE MAKE_SAPI_SCODE(0x016)
+
+/*** SPERR_CANT_CREATE 0x80045017 -2147201001
+* Can not create a new object instance for the specified object category.
+*/
+#define SPERR_CANT_CREATE MAKE_SAPI_ERROR(0x017)
+
+/*** SP_ALREADY_IN_LEX 0x00045018 282648
+* The word, pronunciation, or POS pair being added is already in lexicon.
+*/
+#define SP_ALREADY_IN_LEX MAKE_SAPI_SCODE(0x018)
+
+/*** SPERR_NOT_IN_LEX 0x80045019 -2147200999
+* The word does not exist in the lexicon.
+*/
+#define SPERR_NOT_IN_LEX MAKE_SAPI_ERROR(0x019)
+
+/*** SP_LEX_NOTHING_TO_SYNC 0x0004501a 282650
+* The client is currently synced with the lexicon.
+*/
+#define SP_LEX_NOTHING_TO_SYNC MAKE_SAPI_SCODE(0x01a)
+
+/*** SPERR_LEX_VERY_OUT_OF_SYNC 0x8004501b -2147200997
+* The client is excessively out of sync with the lexicon. Mismatches may not be incrementally sync'd.
+*/
+#define SPERR_LEX_VERY_OUT_OF_SYNC MAKE_SAPI_ERROR(0x01b)
+
+/*** SPERR_UNDEFINED_FORWARD_RULE_REF 0x8004501c -2147200996
+* A rule reference in a grammar was made to a named rule that was never defined.
+*/
+#define SPERR_UNDEFINED_FORWARD_RULE_REF MAKE_SAPI_ERROR(0x01c)
+
+/*** SPERR_EMPTY_RULE 0x8004501d -2147200995
+* A non-dynamic grammar rule that has no body.
+*/
+#define SPERR_EMPTY_RULE MAKE_SAPI_ERROR(0x01d)
+
+/*** SPERR_GRAMMAR_COMPILER_INTERNAL_ERROR 0x8004501e -2147200994
+* The grammar compiler failed due to an internal state error.
+*/
+#define SPERR_GRAMMAR_COMPILER_INTERNAL_ERROR MAKE_SAPI_ERROR(0x01e)
+
+
+/*** SPERR_RULE_NOT_DYNAMIC 0x8004501f -2147200993
+* An attempt was made to modify a non-dynamic rule.
+*/
+#define SPERR_RULE_NOT_DYNAMIC MAKE_SAPI_ERROR(0x01f)
+
+/*** SPERR_DUPLICATE_RULE_NAME 0x80045020 -2147200992
+* A rule name was duplicated.
+*/
+#define SPERR_DUPLICATE_RULE_NAME MAKE_SAPI_ERROR(0x020)
+
+/*** SPERR_DUPLICATE_RESOURCE_NAME 0x80045021 -2147200991
+* A resource name was duplicated for a given rule.
+*/
+#define SPERR_DUPLICATE_RESOURCE_NAME MAKE_SAPI_ERROR(0x021)
+
+
+/*** SPERR_TOO_MANY_GRAMMARS 0x80045022 -2147200990
+* Too many grammars have been loaded.
+*/
+#define SPERR_TOO_MANY_GRAMMARS MAKE_SAPI_ERROR(0x022)
+
+/*** SPERR_CIRCULAR_REFERENCE 0x80045023 -2147200989
+* Circular reference in import rules of grammars.
+*/
+#define SPERR_CIRCULAR_REFERENCE MAKE_SAPI_ERROR(0x023)
+
+/*** SPERR_INVALID_IMPORT 0x80045024 -2147200988
+* A rule reference to an imported grammar that could not be resolved.
+*/
+#define SPERR_INVALID_IMPORT MAKE_SAPI_ERROR(0x024)
+
+/*** SPERR_INVALID_WAV_FILE 0x80045025 -2147200987
+* The format of the WAV file is not supported.
+*/
+#define SPERR_INVALID_WAV_FILE MAKE_SAPI_ERROR(0x025)
+
+/*** SP_REQUEST_PENDING 0x00045026 282662
+* This success code indicates that an SR method called with the SPRIF_ASYNC flag is
+* being processed. When it has finished processing, an SPFEI_ASYNC_COMPLETED event will be generated.
+*/
+#define SP_REQUEST_PENDING MAKE_SAPI_SCODE(0x026)
+
+/*** SPERR_ALL_WORDS_OPTIONAL 0x80045027 -2147200985
+* A grammar rule was defined with a null path through the rule. That is, it is possible
+* to satisfy the rule conditions with no words.
+*/
+#define SPERR_ALL_WORDS_OPTIONAL MAKE_SAPI_ERROR(0x027)
+
+/*** SPERR_INSTANCE_CHANGE_INVALID 0x80045028 -2147200984
+* It is not possible to change the current engine or input. This occurs in the
+* following cases:
+*
+* 1) SelectEngine called while a recognition context exists, or
+* 2) SetInput called in the shared instance case.
+*/
+#define SPERR_INSTANCE_CHANGE_INVALID MAKE_SAPI_ERROR(0x028)
+
+/*** SPERR_RULE_NAME_ID_CONFLICT 0x80045029 -2147200983
+* A rule exists with matching IDs (names) but different names (IDs).
+*/
+#define SPERR_RULE_NAME_ID_CONFLICT MAKE_SAPI_ERROR(0x029)
+
+/*** SPERR_NO_RULES 0x8004502a -2147200982
+* A grammar contains no top-level, dynamic, or exported rules. There is no possible
+* way to activate or otherwise use any rule in this grammar.
+*/
+#define SPERR_NO_RULES MAKE_SAPI_ERROR(0x02a)
+
+/*** SPERR_CIRCULAR_RULE_REF 0x8004502b -2147200981
+* Rule 'A' refers to a second rule 'B' which, in turn, refers to rule 'A'.
+*/
+#define SPERR_CIRCULAR_RULE_REF MAKE_SAPI_ERROR(0x02b)
+
+/*** SP_NO_PARSE_FOUND 0x0004502c 282668
+* Parse path cannot be parsed given the currently active rules.
+*/
+#define SP_NO_PARSE_FOUND MAKE_SAPI_SCODE(0x02c)
+
+/*** SPERR_NO_PARSE_FOUND 0x8004502d -2147200979
+* Parse path cannot be parsed given the currently active rules.
+*/
+#define SPERR_INVALID_HANDLE MAKE_SAPI_ERROR(0x02d)
+
+/*** SPERR_REMOTE_CALL_TIMED_OUT 0x8004502e -2147200978
+* A marshaled remote call failed to respond.
+*/
+#define SPERR_REMOTE_CALL_TIMED_OUT MAKE_SAPI_ERROR(0x02e)
+
+/*** SPERR_AUDIO_BUFFER_OVERFLOW 0x8004502f -2147200977
+* This will only be returned on input (read) streams when the stream is paused because
+* the SR driver has not retrieved data recently.
+*/
+#define SPERR_AUDIO_BUFFER_OVERFLOW MAKE_SAPI_ERROR(0x02f)
+
+
+/*** SPERR_NO_AUDIO_DATA 0x80045030 -2147200976
+* The result does not contain any audio, nor does the portion of the element chain of the result
+* contain any audio.
+*/
+#define SPERR_NO_AUDIO_DATA MAKE_SAPI_ERROR(0x030)
+
+/*** SPERR_DEAD_ALTERNATE 0x80045031 -2147200975
+* This alternate is no longer a valid alternate to the result it was obtained from.
+* Returned from ISpPhraseAlt methods.
+*/
+#define SPERR_DEAD_ALTERNATE MAKE_SAPI_ERROR(0x031)
+
+/*** SPERR_HIGH_LOW_CONFIDENCE 0x80045032 -2147200974
+* The result does not contain any audio, nor does the portion of the element chain of the result
+* contain any audio. Returned from ISpResult::GetAudio and ISpResult::SpeakAudio.
+*/
+#define SPERR_HIGH_LOW_CONFIDENCE MAKE_SAPI_ERROR(0x032)
+
+/*** SPERR_INVALID_FORMAT_STRING 0x80045033 -2147200973
+* The XML format string for this RULEREF is invalid, e.g. not a GUID or REFCLSID.
+*/
+#define SPERR_INVALID_FORMAT_STRING MAKE_SAPI_ERROR(0x033)
+
+/*** SP_UNSUPPORTED_ON_STREAM_INPUT 0x00045034 282676
+* The operation is not supported for stream input.
+*/
+#define SP_UNSUPPORTED_ON_STREAM_INPUT MAKE_SAPI_SCODE(0x034)
+
+/*** SPERR_APPLEX_READ_ONLY 0x80045035 -2147200971
+* The operation is invalid for all but newly created application lexicons.
+*/
+#define SPERR_APPLEX_READ_ONLY MAKE_SAPI_ERROR(0x035)
+
+/*** SPERR_NO_TERMINATING_RULE_PATH 0x80045036 -2147200970
+*
+*/
+
+#define SPERR_NO_TERMINATING_RULE_PATH MAKE_SAPI_ERROR(0x036)
+
+/*** SP_WORD_EXISTS_WITHOUT_PRONUNCIATION 0x00045037 282679
+* The word exists but without pronunciation.
+*/
+#define SP_WORD_EXISTS_WITHOUT_PRONUNCIATION MAKE_SAPI_SCODE(0x037)
+
+/*** SPERR_STREAM_CLOSED 0x80045038 -2147200968
+* An operation was attempted on a stream object that has been closed.
+*/
+#define SPERR_STREAM_CLOSED MAKE_SAPI_ERROR(0x038)
+
+// --- The following error codes are taken directly from WIN32 ---
+
+/*** SPERR_NO_MORE_ITEMS 0x80045039 -2147200967
+* When enumerating items, the requested index is greater than the count of items.
+*/
+#define SPERR_NO_MORE_ITEMS MAKE_SAPI_ERROR(0x039)
+
+/*** SPERR_NOT_FOUND 0x8004503a -2147200966
+* The requested data item (data key, value, etc.) was not found.
+*/
+#define SPERR_NOT_FOUND MAKE_SAPI_ERROR(0x03a)
+
+/*** SPERR_INVALID_AUDIO_STATE 0x8004503b -2147200965
+* Audio state passed to SetState() is invalid.
+*/
+#define SPERR_INVALID_AUDIO_STATE MAKE_SAPI_ERROR(0x03b)
+
+/*** SPERR_GENERIC_MMSYS_ERROR 0x8004503c -2147200964
+* A generic MMSYS error not caught by _MMRESULT_TO_HRESULT.
+*/
+#define SPERR_GENERIC_MMSYS_ERROR MAKE_SAPI_ERROR(0x03c)
+
+/*** SPERR_MARSHALER_EXCEPTION 0x8004503d -2147200963
+* An exception was raised during a call to the marshaling code.
+*/
+#define SPERR_MARSHALER_EXCEPTION MAKE_SAPI_ERROR(0x03d)
+
+/*** SPERR_NOT_DYNAMIC_GRAMMAR 0x8004503e -2147200962
+* Attempt was made to manipulate a non-dynamic grammar.
+*/
+#define SPERR_NOT_DYNAMIC_GRAMMAR MAKE_SAPI_ERROR(0x03e)
+
+/*** SPERR_AMBIGUOUS_PROPERTY 0x8004503f -2147200961
+* Cannot add ambiguous property.
+*/
+#define SPERR_AMBIGUOUS_PROPERTY MAKE_SAPI_ERROR(0x03f)
+
+/*** SPERR_INVALID_REGISTRY_KEY 0x80045040 -2147200960
+* The key specified is invalid.
+*/
+#define SPERR_INVALID_REGISTRY_KEY MAKE_SAPI_ERROR(0x040)
+
+/*** SPERR_INVALID_TOKEN_ID 0x80045041 -2147200959
+* The token specified is invalid.
+*/
+#define SPERR_INVALID_TOKEN_ID MAKE_SAPI_ERROR(0x041)
+
+/*** SPERR_XML_BAD_SYNTAX 0x80045042 -2147200958
+* The xml parser failed due to bad syntax.
+*/
+#define SPERR_XML_BAD_SYNTAX MAKE_SAPI_ERROR(0x042)
+
+/*** SPERR_XML_RESOURCE_NOT_FOUND 0x80045043 -2147200957
+* The xml parser failed to load a required resource (e.g., voice, phoneconverter, etc.).
+*/
+#define SPERR_XML_RESOURCE_NOT_FOUND MAKE_SAPI_ERROR(0x043)
+
+/*** SPERR_TOKEN_IN_USE 0x80045044 -2147200956
+* Attempted to remove registry data from a token that is already in use elsewhere.
+*/
+#define SPERR_TOKEN_IN_USE MAKE_SAPI_ERROR(0x044)
+
+/*** SPERR_TOKEN_DELETED 0x80045045 -2147200955
+* Attempted to perform an action on an object token that has had associated registry key deleted.
+*/
+#define SPERR_TOKEN_DELETED MAKE_SAPI_ERROR(0x045)
+
+/*** SPERR_MULTI_LINGUAL_NOT_SUPPORTED 0x80045046 -2147200954
+* The selected voice was registered as multi-lingual. SAPI does not support multi-lingual registration.
+*/
+#define SPERR_MULTI_LINGUAL_NOT_SUPPORTED MAKE_SAPI_ERROR(0x046)
+
+/*** SPERR_EXPORT_DYNAMIC_RULE 0x80045047 -2147200953
+* Exported rules cannot refer directly or indirectly to a dynamic rule.
+*/
+#define SPERR_EXPORT_DYNAMIC_RULE MAKE_SAPI_ERROR(0x047)
+
+/*** SPERR_STGF_ERROR 0x80045048 -2147200952
+* Error parsing the SAPI Text Grammar Format (XML grammar).
+*/
+#define SPERR_STGF_ERROR MAKE_SAPI_ERROR(0x048)
+
+/*** SPERR_WORDFORMAT_ERROR 0x80045049 -2147200951
+* Incorrect word format, probably due to incorrect pronunciation string.
+*/
+#define SPERR_WORDFORMAT_ERROR MAKE_SAPI_ERROR(0x049)
+
+/*** SPERR_STREAM_NOT_ACTIVE 0x8004504a -2147200950
+* Methods associated with active audio stream cannot be called unless stream is active.
+*/
+#define SPERR_STREAM_NOT_ACTIVE MAKE_SAPI_ERROR(0x04a)
+
+/*** SPERR_ENGINE_RESPONSE_INVALID 0x8004504b -2147200949
+* Arguments or data supplied by the engine are in an invalid format or are inconsistent.
+*/
+#define SPERR_ENGINE_RESPONSE_INVALID MAKE_SAPI_ERROR(0x04b)
+
+/*** SPERR_SR_ENGINE_EXCEPTION 0x8004504c -2147200948
+* An exception was raised during a call to the current SR engine.
+*/
+#define SPERR_SR_ENGINE_EXCEPTION MAKE_SAPI_ERROR(0x04c)
+
+/*** SPERR_STREAM_POS_INVALID 0x8004504d -2147200947
+* Stream position information supplied from engine is inconsistent.
+*/
+#define SPERR_STREAM_POS_INVALID MAKE_SAPI_ERROR(0x04d)
+
+/*** SP_RECOGNIZER_INACTIVE 0x0004504e 282702
+* Operation could not be completed because the recognizer is inactive. It is inactive either
+* because the recognition state is currently inactive or because no rules are active .
+*/
+#define SP_RECOGNIZER_INACTIVE MAKE_SAPI_SCODE(0x04e)
+
+/*** SPERR_REMOTE_CALL_ON_WRONG_THREAD 0x8004504f -2147200945
+* When making a remote call to the server, the call was made on the wrong thread.
+*/
+#define SPERR_REMOTE_CALL_ON_WRONG_THREAD MAKE_SAPI_ERROR(0x04f)
+
+/*** SPERR_REMOTE_PROCESS_TERMINATED 0x80045050 -2147200944
+* The remote process terminated unexpectedly.
+*/
+#define SPERR_REMOTE_PROCESS_TERMINATED MAKE_SAPI_ERROR(0x050)
+
+/*** SPERR_REMOTE_PROCESS_ALREADY_RUNNING 0x80045051 -2147200943
+* The remote process is already running; it cannot be started a second time.
+*/
+#define SPERR_REMOTE_PROCESS_ALREADY_RUNNING MAKE_SAPI_ERROR(0x051)
+
+/*** SPERR_LANGID_MISMATCH 0x80045052 -2147200942
+* An attempt to load a CFG grammar with a LANGID different than other loaded grammars.
+*/
+#define SPERR_LANGID_MISMATCH MAKE_SAPI_ERROR(0x052)
+
+/*** SP_PARTIAL_PARSE_FOUND 0x00045053 282707
+* A grammar-ending parse has been found that does not use all available words.
+*/
+#define SP_PARTIAL_PARSE_FOUND MAKE_SAPI_SCODE(0x053)
+
+/*** SPERR_NOT_TOPLEVEL_RULE 0x80045054 -2147200940
+* An attempt to deactivate or activate a non-toplevel rule.
+*/
+#define SPERR_NOT_TOPLEVEL_RULE MAKE_SAPI_ERROR(0x054)
+
+/*** SP_NO_RULE_ACTIVE 0x00045055 282709
+* An attempt to parse when no rule was active.
+*/
+#define SP_NO_RULE_ACTIVE MAKE_SAPI_SCODE(0x055)
+
+/*** SPERR_LEX_REQUIRES_COOKIE 0x80045056 -2147200938
+* An attempt to ask a container lexicon for all words at once.
+*/
+#define SPERR_LEX_REQUIRES_COOKIE MAKE_SAPI_ERROR(0x056)
+
+/*** SP_STREAM_UNINITIALIZED 0x00045057 282711
+* An attempt to activate a rule/dictation/etc without calling SetInput
+* first in the inproc case.
+*/
+#define SP_STREAM_UNINITIALIZED MAKE_SAPI_SCODE(0x057)
+
+
+// Error x058 is not used in SAPI 5.0
+
+
+/*** SPERR_UNSUPPORTED_LANG 0x80045059 -2147200935
+* The requested language is not supported.
+*/
+#define SPERR_UNSUPPORTED_LANG MAKE_SAPI_ERROR(0x059)
+
+/*** SPERR_VOICE_PAUSED 0x8004505a -2147200934
+* The operation cannot be performed because the voice is currently paused.
+*/
+#define SPERR_VOICE_PAUSED MAKE_SAPI_ERROR(0x05a)
+
+/*** SPERR_AUDIO_BUFFER_UNDERFLOW 0x8004505b -2147200933
+* This will only be returned on input (read) streams when the real time audio device
+* stops returning data for a long period of time.
+*/
+#define SPERR_AUDIO_BUFFER_UNDERFLOW MAKE_SAPI_ERROR(0x05b)
+
+/*** SPERR_AUDIO_STOPPED_UNEXPECTEDLY 0x8004505c -2147200932
+* An audio device stopped returning data from the Read() method even though it was in
+* the run state. This error is only returned in the END_SR_STREAM event.
+*/
+#define SPERR_AUDIO_STOPPED_UNEXPECTEDLY MAKE_SAPI_ERROR(0x05c)
+
+/*** SPERR_NO_WORD_PRONUNCIATION 0x8004505d -2147200931
+* The SR engine is unable to add this word to a grammar. The application may need to supply
+* an explicit pronunciation for this word.
+*/
+#define SPERR_NO_WORD_PRONUNCIATION MAKE_SAPI_ERROR(0x05d)
+
+/*** SPERR_ALTERNATES_WOULD_BE_INCONSISTENT 0x8004505e -2147200930
+* An attempt to call ScaleAudio on a recognition result having previously
+* called GetAlternates. Allowing the call to succeed would result in
+* the previously created alternates located in incorrect audio stream positions.
+*/
+#define SPERR_ALTERNATES_WOULD_BE_INCONSISTENT MAKE_SAPI_ERROR(0x05e)
+
+/*** SPERR_NOT_SUPPORTED_FOR_SHARED_RECOGNIZER 0x8004505f -2147200929
+* The method called is not supported for the shared recognizer.
+* For example, ISpRecognizer::GetInputStream().
+*/
+#define SPERR_NOT_SUPPORTED_FOR_SHARED_RECOGNIZER MAKE_SAPI_ERROR(0x05f)
+
+/*** SPERR_TIMEOUT 0x80045060 -2147200928
+* A task could not complete because the SR engine had timed out.
+*/
+#define SPERR_TIMEOUT MAKE_SAPI_ERROR(0x060)
+
+
+/*** SPERR_REENTER_SYNCHRONIZE 0x80045061 -2147200927
+* A SR engine called synchronize while inside of a synchronize call.
+*/
+#define SPERR_REENTER_SYNCHRONIZE MAKE_SAPI_ERROR(0x061)
+
+/*** SPERR_STATE_WITH_NO_ARCS 0x80045062 -2147200926
+* The grammar contains a node no arcs.
+*/
+#define SPERR_STATE_WITH_NO_ARCS MAKE_SAPI_ERROR(0x062)
+
+/*** SPERR_NOT_ACTIVE_SESSION 0x80045063 -2147200925
+* Neither audio output and input is supported for non-active console sessions.
+*/
+#define SPERR_NOT_ACTIVE_SESSION MAKE_SAPI_ERROR(0x063)
+
+/*** SPERR_ALREADY_DELETED 0x80045064 -2147200924
+* The object is a stale reference and is invalid to use.
+* For example having a ISpeechGrammarRule object reference and then calling
+* ISpeechRecoGrammar::Reset() will cause the rule object to be invalidated.
+* Calling any methods after this will result in this error.
+*/
+#define SPERR_ALREADY_DELETED MAKE_SAPI_ERROR(0x064)
+
+/*** SP_AUDIO_STOPPED 0x00045065 282725
+* This can be returned from Read or Write calls audio streams when the stream is stopped.
+*/
+#define SP_AUDIO_STOPPED MAKE_SAPI_SCODE(0x065)
+
+#endif //--- This must be the last line in the file
diff --git a/utils/sapi51/include/speventq.h b/utils/sapi51/include/speventq.h
new file mode 100644
index 0000000..b0447dc
--- /dev/null
+++ b/utils/sapi51/include/speventq.h
@@ -0,0 +1,605 @@
+/*******************************************************************************
+* SPEventQ.h *
+*------------*
+* Description:
+* This is the header file for the SAPI5 event queue implementation.
+*-------------------------------------------------------------------------------
+* Copyright (c) Microsoft Corporation. All rights reserved.
+*******************************************************************************/
+#ifndef SPEventQ_h
+#define SPEventQ_h
+
+#ifndef SPHelper_h
+#include <SPHelper.h>
+#endif
+
+#ifndef SPCollec_h
+#include <SPCollec.h>
+#endif
+
+//=== Inline helpers for copying and deleting events ============================
+
+
+//=== Class definition ==========================================================
+
+class CSpEventNode : public CSpEvent
+{
+public:
+ CSpEventNode * m_pNext;
+ static LONG Compare(const CSpEventNode * p1, const CSpEventNode *p2)
+ {
+ // Assumes offsets DO or DO NOT reset when stream number changes
+ if (p1->ulStreamNum < p2->ulStreamNum)
+ {
+ return -1;
+ }
+ else if (p1->ulStreamNum > p2->ulStreamNum)
+ {
+ return 1;
+ }
+ else if (p1->ullAudioStreamOffset < p2->ullAudioStreamOffset)
+ {
+ return -1;
+ }
+ else if (p1->ullAudioStreamOffset > p2->ullAudioStreamOffset)
+ {
+ return 1;
+ }
+ return 0;
+ }
+};
+
+
+typedef CSpBasicQueue<CSpEventNode, TRUE, TRUE> CSpEventList;
+
+#define DECLARE_SPNOTIFYSOURCE_METHODS(T) \
+STDMETHODIMP SetNotifySink(ISpNotifySink * pNotifySink) \
+{ return T._SetNotifySink(pNotifySink); } \
+STDMETHODIMP SetNotifyWindowMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) \
+{ return T._SetNotifyWindowMessage(hWnd, Msg, wParam, lParam); } \
+STDMETHODIMP SetNotifyCallbackFunction(SPNOTIFYCALLBACK * pfnCallback, WPARAM wParam, LPARAM lParam) \
+{ return T._SetNotifyCallbackFunction(pfnCallback, wParam, lParam); } \
+STDMETHODIMP SetNotifyCallbackInterface(ISpNotifyCallback * pSpCallback, WPARAM wParam, LPARAM lParam) \
+{ return T._SetNotifyCallbackInterface(pSpCallback, wParam, lParam); } \
+STDMETHODIMP SetNotifyWin32Event() \
+{ return T._SetNotifyWin32Event(); } \
+STDMETHODIMP WaitForNotifyEvent(DWORD dwMilliseconds) \
+{ return T._WaitForNotifyEvent(dwMilliseconds); } \
+STDMETHODIMP_(HANDLE) GetNotifyEventHandle() \
+{ return T._GetNotifyEventHandle(); }
+
+#define DECLARE_SPEVENTSOURCE_METHODS(T) \
+DECLARE_SPNOTIFYSOURCE_METHODS(T) \
+STDMETHODIMP SetInterest(ULONGLONG ullEventInterest, ULONGLONG ullQueuedInterest) \
+{ return T._SetInterest(ullEventInterest, ullQueuedInterest); } \
+STDMETHODIMP GetEvents(ULONG ulCount, SPEVENT* pEventArray, ULONG * pulFetched) \
+{ return T._GetEvents(ulCount, pEventArray, pulFetched); } \
+STDMETHODIMP GetInfo(SPEVENTSOURCEINFO *pInfo) \
+{ return T._GetInfo(pInfo); }
+
+
+
+class CSpEventSource
+{
+ public:
+ CSpEventSource(CComObjectRootEx<CComMultiThreadModel> * pParent) :
+ m_pParent(pParent)
+ {
+ m_ullEventInterest = 0; m_ullQueuedInterest = 0;
+ m_ulStreamNum = 0;
+ }
+ HRESULT _SetNotifySink(ISpNotifySink * pNotifySink);
+ HRESULT _SetNotifyWindowMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
+ HRESULT _SetNotifyCallbackFunction(SPNOTIFYCALLBACK * pfnCallback, WPARAM wParam, LPARAM lParam);
+ HRESULT _SetNotifyCallbackInterface(ISpNotifyCallback * pSpCallback, WPARAM wParam, LPARAM lParam);
+ HRESULT _SetNotifyWin32Event();
+ HRESULT _WaitForNotifyEvent(DWORD dwMilliseconds);
+ HANDLE _GetNotifyEventHandle();
+
+ HRESULT _SetInterest(ULONGLONG ullEventInterest , ULONGLONG ullQueuedInterest);
+ HRESULT _GetEvents( ULONG ulCount, SPEVENT* pEventArray, ULONG * pulFetched );
+ HRESULT _GetInfo(SPEVENTSOURCEINFO *pInfo );
+
+ /*--- Non interface methods ---*/
+ HRESULT _CompleteEvents( ULONGLONG ullPos = 0xFFFFFFFFFFFFFFFF );
+ inline void _MoveAllToFreeList(CSpEventList * pList);
+ inline void _RemoveAllEvents();
+ inline HRESULT _AddEvent(const SPEVENT & Event);
+ inline HRESULT _AddEvents(const SPEVENT* pEventArray, ULONG ulCount);
+ inline HRESULT _DeserializeAndAddEvent(const BYTE * pBuffer, ULONG * pcbUsed);
+ inline HRESULT _GetStreamNumber(const ULONGLONG ullAudioOffset, ULONG *pulStreamNum);
+ //=== Data members ==============================
+ public:
+ ULONGLONG m_ullEventInterest;
+ ULONGLONG m_ullQueuedInterest;
+ ULONG m_ulStreamNum;
+ CSpEventList m_PendingList;
+ CSpEventList m_CompletedList;
+ CSpEventList m_FreeList;
+ CComPtr<ISpNotifySink> m_cpNotifySink;
+ CComPtr<ISpNotifyTranslator> m_cpEventTranslator; // If non-NULL then Win32 events being used
+ CComObjectRootEx<CComMultiThreadModel> * m_pParent;
+ CComAutoCriticalSection m_NotifyObjChangeCrit; // Critical section used to make sure that
+ // the notify object (m_cpNotifySink) not changed
+ // while waiting on it.
+
+};
+
+
+//
+//=== Inlines =========================================================
+//
+
+//
+// WARNING: If this logic changes, you will need to change the logic in SetNotifyWin32Event also.
+//
+inline HRESULT CSpEventSource::_SetNotifySink(ISpNotifySink * pNotifySink)
+{
+ if (SP_IS_BAD_OPTIONAL_INTERFACE_PTR(pNotifySink))
+ {
+ return E_INVALIDARG;
+ }
+ else
+ {
+ m_pParent->Lock();
+ m_NotifyObjChangeCrit.Lock();
+ m_cpEventTranslator.Release();
+ m_cpNotifySink = pNotifySink;
+ if (m_cpNotifySink && m_CompletedList.GetHead())
+ {
+ m_cpNotifySink->Notify();
+ }
+ m_NotifyObjChangeCrit.Unlock();
+ m_pParent->Unlock();
+ return S_OK;
+ }
+}
+
+/****************************************************************************
+* CSpEventSource::_SetNotifyWindowMessage *
+*-----------------------------------------*
+* Description:
+*
+* Returns:
+*
+********************************************************************* RAL ***/
+
+inline HRESULT CSpEventSource::_SetNotifyWindowMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ SPDBG_FUNC("CSpEventSource::_SetNotifyWindowMessage");
+ HRESULT hr = S_OK;
+ CComPtr<ISpNotifyTranslator> cpTranslator;
+ hr = cpTranslator.CoCreateInstance(CLSID_SpNotifyTranslator);
+ if (SUCCEEDED(hr))
+ {
+ hr = cpTranslator->InitWindowMessage(hWnd, Msg, wParam, lParam);
+ }
+ if (SUCCEEDED(hr))
+ {
+ hr = _SetNotifySink(cpTranslator);
+ }
+ return hr;
+}
+/****************************************************************************
+* CSpEventSource::_SetNotifyCallbackFunction *
+*--------------------------------------------*
+* Description:
+*
+* Returns:
+*
+********************************************************************* RAL ***/
+
+inline HRESULT CSpEventSource::_SetNotifyCallbackFunction(SPNOTIFYCALLBACK * pfnCallback, WPARAM wParam, LPARAM lParam)
+{
+ SPDBG_FUNC("CSpEventSource::_SetNotifyCallbackFunction");
+ HRESULT hr = S_OK;
+ CComPtr<ISpNotifyTranslator> cpTranslator;
+ hr = cpTranslator.CoCreateInstance(CLSID_SpNotifyTranslator);
+ if (SUCCEEDED(hr))
+ {
+ hr = cpTranslator->InitCallback(pfnCallback, wParam, lParam);
+ }
+ if (SUCCEEDED(hr))
+ {
+ hr = _SetNotifySink(cpTranslator);
+ }
+ return hr;
+}
+/****************************************************************************
+* CSpEventSource::_SetNotifyCallbackInterface *
+*---------------------------------------------*
+* Description:
+*
+* Returns:
+*
+********************************************************************* RAL ***/
+
+inline HRESULT CSpEventSource::_SetNotifyCallbackInterface(ISpNotifyCallback * pSpCallback, WPARAM wParam, LPARAM lParam)
+{
+ SPDBG_FUNC("CSpEventSource::_SetNotifyCallbackInterface");
+ HRESULT hr = S_OK;
+ CComPtr<ISpNotifyTranslator> cpTranslator;
+ hr = cpTranslator.CoCreateInstance(CLSID_SpNotifyTranslator);
+ if (SUCCEEDED(hr))
+ {
+ hr = cpTranslator->InitSpNotifyCallback(pSpCallback, wParam, lParam);
+ }
+ if (SUCCEEDED(hr))
+ {
+ hr = _SetNotifySink(cpTranslator);
+ }
+ return hr;
+}
+/****************************************************************************
+* CSpEventSource::_SetNotifyWin32Event *
+*--------------------------------------*
+* Description:
+*
+* Returns:
+*
+********************************************************************* RAL ***/
+
+inline HRESULT CSpEventSource::_SetNotifyWin32Event(void)
+{
+ SPDBG_FUNC("CSpEventSource::_SetNotifyWin32Event");
+ HRESULT hr = S_OK;
+ CComPtr<ISpNotifyTranslator> cpTranslator;
+ hr = cpTranslator.CoCreateInstance(CLSID_SpNotifyTranslator);
+ if (SUCCEEDED(hr))
+ {
+ hr = cpTranslator->InitWin32Event(NULL, TRUE);
+ }
+ if (SUCCEEDED(hr))
+ {
+ //
+ // In this case we do NOT call _SetNotify sink since we want to set the cpEventTranslator
+ //
+ m_pParent->Lock();
+ m_NotifyObjChangeCrit.Lock();
+ m_cpEventTranslator = cpTranslator;
+ m_cpNotifySink = cpTranslator;
+ if (m_cpNotifySink && m_CompletedList.GetHead())
+ {
+ m_cpNotifySink->Notify();
+ }
+ m_NotifyObjChangeCrit.Unlock();
+ m_pParent->Unlock();
+ }
+ return hr;
+}
+/****************************************************************************
+* CSpEventSource::_WaitForNotifyEvent *
+*-------------------------------------*
+* Description:
+*
+* Returns:
+*
+********************************************************************* RAL ***/
+
+inline HRESULT CSpEventSource::_WaitForNotifyEvent(DWORD dwMilliseconds)
+{
+ SPDBG_FUNC("CSpEventSource::_WaitForNotifyEvent");
+ HRESULT hr = S_OK;
+ m_NotifyObjChangeCrit.Lock();
+ if (m_cpEventTranslator)
+ {
+ hr = m_cpEventTranslator->Wait(dwMilliseconds);
+ }
+ else
+ {
+ if (m_cpNotifySink)
+ {
+ hr = SPERR_ALREADY_INITIALIZED;
+ }
+ else
+ {
+ hr = _SetNotifyWin32Event();
+ if (SUCCEEDED(hr))
+ {
+ hr = m_cpEventTranslator->Wait(dwMilliseconds);
+ }
+ }
+ }
+ m_NotifyObjChangeCrit.Unlock();
+ return hr;
+}
+/****************************************************************************
+* CSpEventSource::_GetNotifyEventHandle *
+*---------------------------------------*
+* Description:
+*
+* Returns:
+*
+********************************************************************* RAL ***/
+
+inline HANDLE CSpEventSource::_GetNotifyEventHandle()
+{
+ HANDLE h = NULL;
+ SPDBG_FUNC("CSpEventSource::_GetNotifyEventHandle");
+ m_NotifyObjChangeCrit.Lock();
+ if (!m_cpNotifySink)
+ {
+ _SetNotifyWin32Event();
+ }
+ if (m_cpEventTranslator)
+ {
+ h = m_cpEventTranslator->GetEventHandle();
+ }
+ m_NotifyObjChangeCrit.Unlock();
+ return h;
+}
+
+
+inline HRESULT CSpEventSource::_SetInterest( ULONGLONG ullEventInterest, ULONGLONG ullQueuedInterest )
+{
+ HRESULT hr = S_OK;
+ m_pParent->Lock();
+
+ if(ullEventInterest && SPFEI_FLAGCHECK != (ullEventInterest & SPFEI_FLAGCHECK))
+ {
+ hr = E_INVALIDARG;
+ }
+ else if(ullQueuedInterest && SPFEI_FLAGCHECK != (ullQueuedInterest & SPFEI_FLAGCHECK))
+ {
+ hr = E_INVALIDARG;
+ }
+ else if ((ullQueuedInterest | ullEventInterest) != ullEventInterest)
+ {
+ hr = E_INVALIDARG;
+ }
+ else
+ {
+ m_ullEventInterest = ullEventInterest;
+ m_ullQueuedInterest = ullQueuedInterest;
+ }
+ m_pParent->Unlock();
+ return hr;
+}
+
+
+//
+// Same as AddEvents except: No param validation, and caller must take the critical section
+// prior to calling.
+//
+inline HRESULT CSpEventSource::_AddEvents( const SPEVENT* pEventArray, ULONG ulCount )
+{
+ HRESULT hr = S_OK;
+ for( ULONG i = 0; i < ulCount && SUCCEEDED(hr = _AddEvent(pEventArray[i])); ++i ) {}
+ return hr;
+}
+
+inline HRESULT CSpEventSource::_AddEvent(const SPEVENT & Event)
+{
+ SPDBG_ASSERT(Event.eEventId < 64);
+ SPDBG_ASSERT(Event.elParamType == SPET_LPARAM_IS_UNDEFINED ||
+ Event.elParamType == SPET_LPARAM_IS_TOKEN ||
+ Event.elParamType == SPET_LPARAM_IS_OBJECT ||
+ Event.elParamType == SPET_LPARAM_IS_POINTER ||
+ Event.elParamType == SPET_LPARAM_IS_STRING);
+#ifdef _DEBUG
+ if (Event.eEventId == SPEI_VOICE_CHANGE)
+ {
+ SPDBG_ASSERT(Event.elParamType == SPET_LPARAM_IS_TOKEN);
+ }
+ else if (Event.eEventId == SPEI_RECOGNITION || Event.eEventId == SPEI_FALSE_RECOGNITION || Event.eEventId == SPEI_HYPOTHESIS)
+ {
+ SPDBG_ASSERT(Event.elParamType == SPET_LPARAM_IS_OBJECT);
+ }
+ else if (Event.eEventId ==SPEI_REQUEST_UI || Event.eEventId == SPEI_TTS_BOOKMARK)
+ {
+ SPDBG_ASSERT(Event.elParamType == SPET_LPARAM_IS_STRING);
+ }
+#endif
+
+ if ( (1i64 << Event.eEventId) & m_ullEventInterest )
+ {
+ CSpEventNode *pNode = m_FreeList.RemoveHead();
+ if (pNode == NULL)
+ {
+ pNode = new CSpEventNode();
+ if (pNode == NULL)
+ {
+ return E_OUTOFMEMORY;
+ }
+ }
+ pNode->CopyFrom(&Event);
+ m_PendingList.InsertSorted(pNode);
+ }
+ return S_OK;
+}
+
+inline HRESULT CSpEventSource::
+ _DeserializeAndAddEvent(const BYTE *pBuffer, ULONG * pcbUsed)
+{
+ HRESULT hr = S_OK;
+ const SPEVENT * pSrcEvent = (const SPEVENT *)pBuffer;
+ SPDBG_ASSERT(pSrcEvent->eEventId < 64);
+ if ( (1i64 << pSrcEvent->eEventId) & m_ullEventInterest )
+ {
+ CSpEventNode *pNode = m_FreeList.RemoveHead();
+ if (pNode == NULL)
+ {
+ pNode = new CSpEventNode();
+ if (pNode == NULL)
+ {
+ hr = E_OUTOFMEMORY;
+ }
+ }
+ if (SUCCEEDED(hr))
+ {
+ hr = pNode->Deserialize(((const SPSERIALIZEDEVENT64 *)(pBuffer)), pcbUsed);
+ if (SUCCEEDED(hr))
+ {
+ m_PendingList.InsertSorted(pNode);
+ }
+ else
+ {
+ m_FreeList.InsertHead(pNode);
+ }
+ }
+ }
+ else
+ {
+// WCE compiler does not work propertly with template
+#ifndef _WIN32_WCE
+ *pcbUsed = SpEventSerializeSize<SPSERIALIZEDEVENT64>(pSrcEvent);
+#else
+ *pcbUsed = SpEventSerializeSize(pSrcEvent, sizeof(SPSERIALIZEDEVENT64));
+#endif
+ }
+ return hr;
+}
+
+inline HRESULT CSpEventSource::_GetEvents( ULONG ulCount, SPEVENT* pEventArray, ULONG *pulFetched )
+{
+ HRESULT hr = S_OK;
+ m_pParent->Lock();
+ if( SPIsBadWritePtr( pEventArray, sizeof( SPEVENT ) * ulCount ) ||
+ SP_IS_BAD_OPTIONAL_WRITE_PTR(pulFetched) )
+ {
+ hr = E_INVALIDARG;
+ }
+ else
+ {
+ ULONG ulCopied = 0;
+ ULONG ulRemaining = ulCount;
+ CSpEventNode * pCur = m_CompletedList.m_pHead;
+ CSpEventNode * pLastCopied = NULL;
+ while (ulRemaining && pCur)
+ {
+ pCur->Detach(pEventArray + ulCopied);
+ pLastCopied = pCur;
+ ulCopied++;
+ pCur = pCur->m_pNext;
+ ulRemaining--;
+ }
+ if (ulCopied)
+ {
+ if (m_FreeList.m_pHead == NULL)
+ {
+ m_FreeList.m_pTail = pLastCopied;
+ }
+ pLastCopied->m_pNext = m_FreeList.m_pHead;
+ m_FreeList.m_pHead = m_CompletedList.m_pHead;
+ m_CompletedList.m_pHead = pCur;
+ m_CompletedList.m_cElements -= ulCopied;
+ m_FreeList.m_cElements += ulCopied;
+ }
+ if (ulCopied < ulCount)
+ {
+ hr = S_FALSE;
+ }
+ if (pulFetched)
+ {
+ *pulFetched = ulCopied;
+ }
+ }
+ m_pParent->Unlock();
+ return hr;
+}
+
+
+inline HRESULT CSpEventSource::_GetInfo( SPEVENTSOURCEINFO * pInfo )
+{
+ HRESULT hr = S_OK;
+ m_pParent->Lock();
+ if( SP_IS_BAD_WRITE_PTR( pInfo ) )
+ {
+ hr = E_POINTER;
+ }
+ else
+ {
+ pInfo->ulCount = m_CompletedList.GetCount();
+ pInfo->ullEventInterest = m_ullEventInterest;
+ pInfo->ullQueuedInterest= m_ullQueuedInterest;
+ }
+ m_pParent->Unlock();
+ return hr;
+}
+
+
+
+//
+// The caller must call this function with the critical section owned
+//
+inline HRESULT CSpEventSource::_CompleteEvents( ULONGLONG ullPos )
+{
+ HRESULT hr = S_OK;
+
+ if (m_PendingList.m_pHead && m_PendingList.m_pHead->ullAudioStreamOffset <= ullPos)
+ {
+ BOOL bNotify = FALSE;
+ while (m_PendingList.m_pHead &&
+ m_PendingList.m_pHead->ullAudioStreamOffset <= ullPos)
+ {
+ CSpEventNode *pNode = m_PendingList.RemoveHead();
+ if(pNode->ulStreamNum != m_ulStreamNum)
+ {
+ m_ulStreamNum = pNode->ulStreamNum;
+ }
+ if ( (1i64 << pNode->eEventId) & m_ullEventInterest )
+ {
+ bNotify = TRUE;
+ //
+ // NOTE: If we're forwarding events to an event sink then we'll only
+ // pay attention to the Interest flags. If we're going to notify, then
+ // we'll only queue completed events that the user has explicitly asked
+ // us to store as completed events.
+ //
+ if ( (1i64 << pNode->eEventId) & m_ullQueuedInterest )
+ {
+ m_CompletedList.InsertSorted(pNode);
+ }
+ else
+ {
+ pNode->Clear();
+ m_FreeList.InsertHead(pNode);
+ }
+ }
+ else
+ {
+ pNode->Clear();
+ m_FreeList.InsertHead(pNode);
+ }
+ }
+ if (bNotify && m_cpNotifySink)
+ {
+ hr = m_cpNotifySink->Notify();
+ }
+ }
+ return hr;
+};
+
+
+inline void CSpEventSource::_MoveAllToFreeList(CSpEventList * pList)
+{
+ CSpEventNode * pNode;
+ while ((pNode = pList->RemoveHead()) != NULL)
+ {
+ pNode->Clear();
+ m_FreeList.InsertHead(pNode);
+ }
+}
+inline void CSpEventSource::_RemoveAllEvents( )
+{
+ m_pParent->Lock();
+
+ _MoveAllToFreeList(&m_CompletedList);
+ _MoveAllToFreeList(&m_PendingList);
+ m_pParent->Unlock();
+}
+
+inline HRESULT CSpEventSource::_GetStreamNumber(const ULONGLONG ullAudioOffset, ULONG *pulStreamNum)
+{
+ CSpEventNode *pNode = m_PendingList.m_pHead;
+ *pulStreamNum = m_ulStreamNum;
+ for(;pNode && pNode->ullAudioStreamOffset <= ullAudioOffset; pNode = pNode->m_pNext)
+ {
+ *pulStreamNum = pNode->ulStreamNum;
+ }
+ return S_OK;
+}
+
+
+
+#endif //--- This must be the last line in this file
diff --git a/utils/sapi51/include/sphelper.h b/utils/sapi51/include/sphelper.h
new file mode 100644
index 0000000..8624ef8
--- /dev/null
+++ b/utils/sapi51/include/sphelper.h
@@ -0,0 +1,2754 @@
+/*******************************************************************************
+* SPHelper.h *
+*------------*
+* Description:
+* This is the header file for core helper functions implementation.
+*-------------------------------------------------------------------------------
+* Copyright (c) Microsoft Corporation. All rights reserved.
+*******************************************************************************/
+#ifndef SPHelper_h
+#define SPHelper_h
+
+#ifndef _INC_MALLOC
+#include <malloc.h>
+#endif
+
+#ifndef _INC_CRTDBG
+#include <crtdbg.h>
+#endif
+
+#ifndef __sapi_h__
+#include <sapi.h>
+#endif
+
+#ifndef __sapiddk_h__
+#include <sapiddk.h>
+#endif
+
+#ifndef SPError_h
+#include <SPError.h>
+#endif
+
+#ifndef SPDebug_h
+#include <SPDebug.h>
+#endif
+
+#ifndef _INC_LIMITS
+#include <limits.h>
+#endif
+
+#ifndef _INC_MMSYSTEM
+#include <mmsystem.h>
+#endif
+
+#ifndef __comcat_h__
+#include <comcat.h>
+#endif
+
+#ifndef _INC_MMREG
+#include <mmreg.h>
+#endif
+
+#ifndef __ATLBASE_H__
+#include <atlbase.h>
+#endif
+
+//=== Constants ==============================================================
+#define sp_countof(x) ((sizeof(x) / sizeof(*(x))))
+
+/*** CSpDynamicString helper class
+*
+*/
+class CSpDynamicString
+{
+public:
+
+ WCHAR * m_psz;
+ CSpDynamicString()
+ {
+ m_psz = NULL;
+ }
+ CSpDynamicString(size_t cchReserve)
+ {
+ m_psz = (WCHAR *)::CoTaskMemAlloc(cchReserve * sizeof(WCHAR));
+ }
+ WCHAR * operator=(const CSpDynamicString& src)
+ {
+ if (m_psz != src.m_psz)
+ {
+ ::CoTaskMemFree(m_psz);
+ m_psz = src.Copy();
+ }
+ return m_psz;
+ }
+ WCHAR * operator=(const WCHAR * pSrc)
+ {
+ Clear();
+ if (pSrc)
+ {
+ size_t cbNeeded = (wcslen(pSrc) + 1) * sizeof(WCHAR);
+ m_psz = (WCHAR *)::CoTaskMemAlloc(cbNeeded);
+ SPDBG_ASSERT(m_psz);
+ if (m_psz)
+ {
+ memcpy(m_psz, pSrc, cbNeeded);
+ }
+ }
+ return m_psz;
+ }
+
+ WCHAR * operator=(const char * pSrc)
+ {
+ Clear();
+ if (pSrc)
+ {
+ ULONG cbNeeded = (lstrlenA(pSrc) + 1) * sizeof(WCHAR);
+ m_psz = (WCHAR *)::CoTaskMemAlloc(cbNeeded);
+ SPDBG_ASSERT(m_psz);
+ if (m_psz)
+ {
+ ::MultiByteToWideChar(CP_ACP, 0, pSrc, -1, m_psz, cbNeeded/sizeof(WCHAR));
+ }
+ }
+ return m_psz;
+ }
+
+ WCHAR * operator=(REFGUID rguid)
+ {
+ Clear();
+ ::StringFromCLSID(rguid, &m_psz);
+ return m_psz;
+ }
+
+
+ /*explicit*/ CSpDynamicString(const WCHAR * pSrc)
+ {
+ m_psz = NULL;
+ operator=(pSrc);
+ }
+ /*explicit*/ CSpDynamicString(const char * pSrc)
+ {
+ m_psz = NULL;
+ operator=(pSrc);
+ }
+ /*explicit*/ CSpDynamicString(const CSpDynamicString& src)
+ {
+ m_psz = src.Copy();
+ }
+ /*explicit*/ CSpDynamicString(REFGUID rguid)
+ {
+ ::StringFromCLSID(rguid, &m_psz);
+ }
+
+
+ ~CSpDynamicString()
+ {
+ ::CoTaskMemFree(m_psz);
+ }
+ unsigned int Length() const
+ {
+ return static_cast<unsigned int>( (m_psz == NULL)? 0 : wcslen(m_psz) );
+ }
+
+ operator WCHAR * () const
+ {
+ return m_psz;
+ }
+ //The assert on operator& usually indicates a bug. If this is really
+ //what is needed, however, take the address of the m_psz member explicitly.
+ WCHAR ** operator&()
+ {
+ SPDBG_ASSERT(m_psz == NULL);
+ return &m_psz;
+ }
+
+ WCHAR * Append(const WCHAR * pszSrc)
+ {
+ if (pszSrc)
+ {
+ size_t lenSrc = wcslen(pszSrc);
+ if (lenSrc)
+ {
+ ULONG lenMe = Length();
+ WCHAR *pszNew = (WCHAR *)::CoTaskMemAlloc((lenMe + lenSrc + 1) * sizeof(WCHAR));
+ if (pszNew)
+ {
+ if (m_psz) // Could append to an empty string so check...
+ {
+ if (lenMe)
+ {
+ memcpy(pszNew, m_psz, lenMe * sizeof(WCHAR));
+ }
+ ::CoTaskMemFree(m_psz);
+ }
+ memcpy(pszNew + lenMe, pszSrc, (lenSrc + 1) * sizeof(WCHAR));
+ m_psz = pszNew;
+ }
+ else
+ {
+ SPDBG_ASSERT(FALSE);
+ }
+ }
+ }
+ return m_psz;
+ }
+
+ WCHAR * Append(const WCHAR * pszSrc, const ULONG lenSrc)
+ {
+ if (pszSrc && lenSrc)
+ {
+ ULONG lenMe = Length();
+ WCHAR *pszNew = (WCHAR *)::CoTaskMemAlloc((lenMe + lenSrc + 1) * sizeof(WCHAR));
+ if (pszNew)
+ {
+ if (m_psz) // Could append to an empty string so check...
+ {
+ if (lenMe)
+ {
+ memcpy(pszNew, m_psz, lenMe * sizeof(WCHAR));
+ }
+ ::CoTaskMemFree(m_psz);
+ }
+ memcpy(pszNew + lenMe, pszSrc, lenSrc * sizeof(WCHAR));
+ *(pszNew + lenMe + lenSrc) = L'\0';
+ m_psz = pszNew;
+ }
+ else
+ {
+ SPDBG_ASSERT(FALSE);
+ }
+ }
+ return m_psz;
+ }
+
+ WCHAR * Append2(const WCHAR * pszSrc1, const WCHAR * pszSrc2)
+ {
+ size_t lenSrc1 = pszSrc1 ? wcslen(pszSrc1) : 0;
+ size_t lenSrc2 = pszSrc2 ? wcslen(pszSrc2) : 0;
+
+ if (lenSrc1 || lenSrc2)
+ {
+ ULONG lenMe = Length();
+ WCHAR *pszNew = (WCHAR *)::CoTaskMemAlloc((lenMe + lenSrc1 + lenSrc2 + 1) * sizeof(WCHAR));
+ if (pszNew)
+ {
+ if (m_psz) // Could append to an empty string so check...
+ {
+ if (lenMe)
+ {
+ memcpy(pszNew, m_psz, lenMe * sizeof(WCHAR));
+ }
+ ::CoTaskMemFree(m_psz);
+ }
+ // In both of these cases, we copy the trailing NULL so that we're sure it gets
+ // there (if lenSrc2 is 0 then we better copy it from pszSrc1).
+ if (lenSrc1)
+ {
+ memcpy(pszNew + lenMe, pszSrc1, (lenSrc1 + 1) * sizeof(WCHAR));
+ }
+ if (lenSrc2)
+ {
+ memcpy(pszNew + lenMe + lenSrc1, pszSrc2, (lenSrc2 + 1) * sizeof(WCHAR));
+ }
+ m_psz = pszNew;
+ }
+ else
+ {
+ SPDBG_ASSERT(FALSE);
+ }
+ }
+ return m_psz;
+ }
+ WCHAR * Copy() const
+ {
+ if (m_psz)
+ {
+ CSpDynamicString szNew(m_psz);
+ return szNew.Detach();
+ }
+ return NULL;
+ }
+ CHAR * CopyToChar() const
+ {
+ if (m_psz)
+ {
+ CHAR* psz;
+ ULONG cbNeeded = ::WideCharToMultiByte(CP_ACP, 0, m_psz, -1, NULL, NULL, NULL, NULL);
+ psz = (CHAR *)::CoTaskMemAlloc(cbNeeded);
+ SPDBG_ASSERT(psz);
+ if (psz)
+ {
+ ::WideCharToMultiByte(CP_ACP, 0, m_psz, -1, psz, cbNeeded/sizeof(CHAR), NULL, NULL);
+ }
+ return psz;
+ }
+ return NULL;
+ }
+ void Attach(WCHAR * pszSrc)
+ {
+ SPDBG_ASSERT(m_psz == NULL);
+ m_psz = pszSrc;
+ }
+ WCHAR * Detach()
+ {
+ WCHAR * s = m_psz;
+ m_psz = NULL;
+ return s;
+ }
+ void Clear()
+ {
+ ::CoTaskMemFree(m_psz);
+ m_psz = NULL;
+ }
+ bool operator!() const
+ {
+ return (m_psz == NULL);
+ }
+ HRESULT CopyToBSTR(BSTR * pbstr)
+ {
+ if (m_psz)
+ {
+ *pbstr = ::SysAllocString(m_psz);
+ if (*pbstr == NULL)
+ {
+ return E_OUTOFMEMORY;
+ }
+ }
+ else
+ {
+ *pbstr = NULL;
+ }
+ return S_OK;
+ }
+ void TrimToSize(ULONG ulNumChars)
+ {
+ if (m_psz && ulNumChars < Length())
+ {
+ m_psz[ulNumChars] = 0;
+ }
+ }
+ WCHAR * Compact()
+ {
+ if (m_psz)
+ {
+ size_t cch = wcslen(m_psz);
+ m_psz = (WCHAR *)::CoTaskMemRealloc(m_psz, (cch + 1) * sizeof(WCHAR));
+ }
+ return m_psz;
+ }
+ WCHAR * ClearAndGrowTo(ULONG cch)
+ {
+ if (m_psz)
+ {
+ Clear();
+ }
+ m_psz = (WCHAR *)::CoTaskMemAlloc(cch * sizeof(WCHAR));
+ return m_psz;
+ }
+ WCHAR * LTrim()
+ {
+ if (m_psz)
+ {
+ WCHAR * pszRead = m_psz;
+ while (iswspace(*pszRead))
+ {
+ pszRead++;
+ }
+ if (pszRead != m_psz)
+ {
+ WCHAR * pszWrite = m_psz;
+ while (*pszRead)
+ {
+ *pszWrite++ = *pszRead++;
+ }
+ *pszWrite = '\0';
+ }
+ }
+ return m_psz;
+ }
+ WCHAR * RTrim()
+ {
+ if (m_psz)
+ {
+ WCHAR * pszTail = m_psz + wcslen(m_psz);
+ WCHAR * pszZeroTerm = pszTail;
+ while (pszZeroTerm > m_psz && iswspace(pszZeroTerm[-1]))
+ {
+ pszZeroTerm--;
+ }
+ if (pszZeroTerm != pszTail)
+ {
+ *pszZeroTerm = '\0';
+ }
+ }
+ return m_psz;
+ }
+ WCHAR * TrimBoth()
+ {
+ RTrim();
+ return LTrim();
+ }
+};
+
+
+
+//
+// Simple inline function converts a ulong to a hex string.
+//
+inline void SpHexFromUlong(WCHAR * psz, ULONG ul)
+{
+ const static WCHAR szHexChars[] = L"0123456789ABCDEF";
+ if (ul == 0)
+ {
+ psz[0] = L'0';
+ psz[1] = 0;
+ }
+ else
+ {
+ ULONG ulChars = 1;
+ psz[0] = 0;
+ while (ul)
+ {
+ memmove(psz + 1, psz, ulChars * sizeof(WCHAR));
+ psz[0] = szHexChars[ul % 16];
+ ul /= 16;
+ ulChars++;
+ }
+ }
+}
+
+
+//=== Token helpers
+
+inline HRESULT SpGetTokenFromId(
+ const WCHAR * pszTokenId,
+ ISpObjectToken ** ppToken,
+ BOOL fCreateIfNotExist = FALSE)
+{
+ SPDBG_FUNC("SpGetTokenFromId");
+ HRESULT hr;
+
+ CComPtr<ISpObjectToken> cpToken;
+ hr = cpToken.CoCreateInstance(CLSID_SpObjectToken);
+
+ if (SUCCEEDED(hr))
+ {
+ hr = cpToken->SetId(NULL, pszTokenId, fCreateIfNotExist);
+ }
+
+ if (SUCCEEDED(hr))
+ {
+ *ppToken = cpToken.Detach();
+ }
+
+ if (hr != SPERR_NOT_FOUND)
+ {
+ SPDBG_REPORT_ON_FAIL(hr);
+ }
+
+ return hr;
+}
+
+inline HRESULT SpGetCategoryFromId(
+ const WCHAR * pszCategoryId,
+ ISpObjectTokenCategory ** ppCategory,
+ BOOL fCreateIfNotExist = FALSE)
+{
+ SPDBG_FUNC("SpGetCategoryFromId");
+ HRESULT hr;
+
+ CComPtr<ISpObjectTokenCategory> cpTokenCategory;
+ hr = cpTokenCategory.CoCreateInstance(CLSID_SpObjectTokenCategory);
+
+ if (SUCCEEDED(hr))
+ {
+ hr = cpTokenCategory->SetId(pszCategoryId, fCreateIfNotExist);
+ }
+
+ if (SUCCEEDED(hr))
+ {
+ *ppCategory = cpTokenCategory.Detach();
+ }
+
+ SPDBG_REPORT_ON_FAIL(hr);
+ return hr;
+}
+
+inline HRESULT SpGetDefaultTokenIdFromCategoryId(
+ const WCHAR * pszCategoryId,
+ WCHAR ** ppszTokenId)
+{
+ SPDBG_FUNC("SpGetDefaultTokenFromCategoryId");
+ HRESULT hr;
+
+ CComPtr<ISpObjectTokenCategory> cpCategory;
+ hr = SpGetCategoryFromId(pszCategoryId, &cpCategory);
+
+ if (SUCCEEDED(hr))
+ {
+ hr = cpCategory->GetDefaultTokenId(ppszTokenId);
+ }
+
+ return hr;
+}
+
+inline HRESULT SpSetDefaultTokenIdForCategoryId(
+ const WCHAR * pszCategoryId,
+ const WCHAR * pszTokenId)
+{
+ SPDBG_FUNC("SpSetDefaultTokenIdForCategoryId");
+ HRESULT hr;
+
+ CComPtr<ISpObjectTokenCategory> cpCategory;
+ hr = SpGetCategoryFromId(pszCategoryId, &cpCategory);
+
+ if (SUCCEEDED(hr))
+ {
+ hr = cpCategory->SetDefaultTokenId(pszTokenId);
+ }
+
+ return hr;
+}
+
+inline HRESULT SpGetDefaultTokenFromCategoryId(
+ const WCHAR * pszCategoryId,
+ ISpObjectToken ** ppToken,
+ BOOL fCreateCategoryIfNotExist = TRUE)
+{
+ SPDBG_FUNC("SpGetDefaultTokenFromCategoryId");
+ HRESULT hr;
+
+ CComPtr<ISpObjectTokenCategory> cpCategory;
+ hr = SpGetCategoryFromId(pszCategoryId, &cpCategory, fCreateCategoryIfNotExist);
+
+ if (SUCCEEDED(hr))
+ {
+ WCHAR * pszTokenId;
+ hr = cpCategory->GetDefaultTokenId(&pszTokenId);
+ if (SUCCEEDED(hr))
+ {
+ hr = SpGetTokenFromId(pszTokenId, ppToken);
+ ::CoTaskMemFree(pszTokenId);
+ }
+ }
+
+ return hr;
+}
+
+inline HRESULT SpSetDefaultTokenForCategoryId(
+ const WCHAR * pszCategoryId,
+ ISpObjectToken * pToken)
+{
+ SPDBG_FUNC("SpSetDefaultTokenForCategoryId");
+ HRESULT hr;
+
+ WCHAR * pszTokenId;
+ hr = pToken->GetId(&pszTokenId);
+
+ if (SUCCEEDED(hr))
+ {
+ hr = SpSetDefaultTokenIdForCategoryId(pszCategoryId, pszTokenId);
+ ::CoTaskMemFree(pszTokenId);
+ }
+
+ return hr;
+}
+
+inline HRESULT SpSetCommonTokenData(
+ ISpObjectToken * pToken,
+ const CLSID * pclsid,
+ const WCHAR * pszLangIndependentName,
+ LANGID langid,
+ const WCHAR * pszLangDependentName,
+ ISpDataKey ** ppDataKeyAttribs)
+{
+ SPDBG_FUNC("SpSetCommonTokenData");
+ HRESULT hr = S_OK;
+
+ // Set the new token's CLSID (if specified)
+ if (SUCCEEDED(hr) && pclsid)
+ {
+ CSpDynamicString dstrClsid;
+ hr = StringFromCLSID(*pclsid, &dstrClsid);
+
+ if (SUCCEEDED(hr))
+ {
+ hr = pToken->SetStringValue(SPTOKENVALUE_CLSID, dstrClsid);
+ }
+ }
+
+ // Set the token's lang independent name
+ if (SUCCEEDED(hr) && pszLangIndependentName)
+ {
+ hr = pToken->SetStringValue(NULL, pszLangIndependentName);
+ }
+
+ // Set the token's lang dependent name
+ if (SUCCEEDED(hr) && pszLangDependentName)
+ {
+ USES_CONVERSION;
+
+ TCHAR szLangId[10];
+ wsprintf(szLangId, _T("%x"), langid);
+
+ hr = pToken->SetStringValue(T2W(szLangId), pszLangDependentName);
+ }
+
+ // Open the attributes key if requested
+ if (SUCCEEDED(hr) && ppDataKeyAttribs)
+ {
+ hr = pToken->CreateKey(L"Attributes", ppDataKeyAttribs);
+ }
+
+ SPDBG_REPORT_ON_FAIL(hr);
+ return hr;
+}
+
+inline HRESULT SpCreateNewToken(
+ const WCHAR * pszTokenId,
+ ISpObjectToken ** ppToken)
+{
+ SPDBG_FUNC("SpCreateNewToken");
+ HRESULT hr;
+
+ // Forcefully create the token
+ hr = SpGetTokenFromId(pszTokenId, ppToken, TRUE);
+
+ SPDBG_REPORT_ON_FAIL(hr);
+ return hr;
+}
+
+inline HRESULT SpCreateNewToken(
+ const WCHAR * pszCategoryId,
+ const WCHAR * pszTokenKeyName,
+ ISpObjectToken ** ppToken)
+{
+ SPDBG_FUNC("SpCreateNewToken");
+ HRESULT hr;
+
+ // Forcefully create the category
+ CComPtr<ISpObjectTokenCategory> cpCategory;
+ hr = SpGetCategoryFromId(pszCategoryId, &cpCategory, TRUE);
+
+ // Come up with a token key name if one wasn't specified
+ CSpDynamicString dstrTokenKeyName;
+ if (SUCCEEDED(hr))
+ {
+ if (pszTokenKeyName == NULL)
+ {
+ GUID guidTokenKeyName;
+ hr = CoCreateGuid(&guidTokenKeyName);
+
+ if (SUCCEEDED(hr))
+ {
+ hr = StringFromCLSID(guidTokenKeyName, &dstrTokenKeyName);
+ }
+
+ if (SUCCEEDED(hr))
+ {
+ pszTokenKeyName = dstrTokenKeyName;
+ }
+ }
+ }
+
+ // Build the token id
+ CSpDynamicString dstrTokenId;
+ if (SUCCEEDED(hr))
+ {
+ dstrTokenId = pszCategoryId;
+ dstrTokenId.Append2(L"\\Tokens\\", pszTokenKeyName);
+ }
+
+ // Forcefully create the token
+ if (SUCCEEDED(hr))
+ {
+ hr = SpGetTokenFromId(dstrTokenId, ppToken, TRUE);
+ }
+
+ SPDBG_REPORT_ON_FAIL(hr);
+ return hr;
+}
+
+inline HRESULT SpCreateNewTokenEx(
+ const WCHAR * pszCategoryId,
+ const WCHAR * pszTokenKeyName,
+ const CLSID * pclsid,
+ const WCHAR * pszLangIndependentName,
+ LANGID langid,
+ const WCHAR * pszLangDependentName,
+ ISpObjectToken ** ppToken,
+ ISpDataKey ** ppDataKeyAttribs)
+{
+ SPDBG_FUNC("SpCreateNewTokenEx");
+ HRESULT hr;
+
+ // Create the new token
+ hr = SpCreateNewToken(pszCategoryId, pszTokenKeyName, ppToken);
+
+ // Now set the extra data
+ if (SUCCEEDED(hr))
+ {
+ hr = SpSetCommonTokenData(
+ *ppToken,
+ pclsid,
+ pszLangIndependentName,
+ langid,
+ pszLangDependentName,
+ ppDataKeyAttribs);
+ }
+
+ SPDBG_REPORT_ON_FAIL(hr);
+ return hr;
+}
+
+inline HRESULT SpCreateNewTokenEx(
+ const WCHAR * pszTokenId,
+ const CLSID * pclsid,
+ const WCHAR * pszLangIndependentName,
+ LANGID langid,
+ const WCHAR * pszLangDependentName,
+ ISpObjectToken ** ppToken,
+ ISpDataKey ** ppDataKeyAttribs)
+{
+ SPDBG_FUNC("SpCreateNewTokenEx");
+ HRESULT hr;
+
+ // Create the new token
+ hr = SpCreateNewToken(pszTokenId, ppToken);
+
+ // Now set the extra data
+ if (SUCCEEDED(hr))
+ {
+ hr = SpSetCommonTokenData(
+ *ppToken,
+ pclsid,
+ pszLangIndependentName,
+ langid,
+ pszLangDependentName,
+ ppDataKeyAttribs);
+ }
+
+ SPDBG_REPORT_ON_FAIL(hr);
+ return hr;
+}
+
+inline HRESULT SpEnumTokens(
+ const WCHAR * pszCategoryId,
+ const WCHAR * pszReqAttribs,
+ const WCHAR * pszOptAttribs,
+ IEnumSpObjectTokens ** ppEnum)
+{
+ SPDBG_FUNC("SpEnumTokens");
+ HRESULT hr = S_OK;
+
+ CComPtr<ISpObjectTokenCategory> cpCategory;
+ hr = SpGetCategoryFromId(pszCategoryId, &cpCategory);
+
+ if (SUCCEEDED(hr))
+ {
+ hr = cpCategory->EnumTokens(
+ pszReqAttribs,
+ pszOptAttribs,
+ ppEnum);
+ }
+
+ SPDBG_REPORT_ON_FAIL(hr);
+ return hr;
+}
+
+inline HRESULT SpFindBestToken(
+ const WCHAR * pszCategoryId,
+ const WCHAR * pszReqAttribs,
+ const WCHAR * pszOptAttribs,
+ ISpObjectToken **ppObjectToken)
+{
+ SPDBG_FUNC("SpFindBestToken");
+ HRESULT hr = S_OK;
+
+ const WCHAR *pszVendorPreferred = L"VendorPreferred";
+ const size_t ulLenVendorPreferred = wcslen(pszVendorPreferred);
+
+ // append VendorPreferred to the end of pszOptAttribs to force this preference
+ size_t ulLen = pszOptAttribs ? wcslen(pszOptAttribs) + ulLenVendorPreferred + 1 : ulLenVendorPreferred;
+ WCHAR *pszOptAttribsVendorPref = (WCHAR*)_alloca((ulLen+1)*sizeof(WCHAR));
+ if (pszOptAttribsVendorPref)
+ {
+ if (pszOptAttribs)
+ {
+ wcscpy(pszOptAttribsVendorPref, pszOptAttribs);
+ wcscat(pszOptAttribsVendorPref, L";");
+ wcscat(pszOptAttribsVendorPref, pszVendorPreferred);
+ }
+ else
+ {
+ wcscpy(pszOptAttribsVendorPref, pszVendorPreferred);
+ }
+ }
+ else
+ {
+ hr = E_OUTOFMEMORY;
+ }
+
+ CComPtr<IEnumSpObjectTokens> cpEnum;
+ if (SUCCEEDED(hr))
+ {
+ hr = SpEnumTokens(pszCategoryId, pszReqAttribs, pszOptAttribsVendorPref, &cpEnum);
+ }
+
+ if (SUCCEEDED(hr))
+ {
+ hr = cpEnum->Next(1, ppObjectToken, NULL);
+ if (hr == S_FALSE)
+ {
+ *ppObjectToken = NULL;
+ hr = SPERR_NOT_FOUND;
+ }
+ }
+
+ if (hr != SPERR_NOT_FOUND)
+ {
+ SPDBG_REPORT_ON_FAIL(hr);
+ }
+
+ return hr;
+}
+
+template<class T>
+HRESULT SpCreateObjectFromToken(ISpObjectToken * pToken, T ** ppObject,
+ IUnknown * pUnkOuter = NULL, DWORD dwClsCtxt = CLSCTX_ALL)
+{
+ SPDBG_FUNC("SpCreateObjectFromToken");
+ HRESULT hr;
+
+ hr = pToken->CreateInstance(pUnkOuter, dwClsCtxt, __uuidof(T), (void **)ppObject);
+
+ SPDBG_REPORT_ON_FAIL(hr);
+ return hr;
+}
+
+template<class T>
+HRESULT SpCreateObjectFromTokenId(const WCHAR * pszTokenId, T ** ppObject,
+ IUnknown * pUnkOuter = NULL, DWORD dwClsCtxt = CLSCTX_ALL)
+{
+ SPDBG_FUNC("SpCreateObjectFromTokenId");
+
+ ISpObjectToken * pToken;
+ HRESULT hr = SpGetTokenFromId(pszTokenId, &pToken);
+ if (SUCCEEDED(hr))
+ {
+ hr = SpCreateObjectFromToken(pToken, ppObject, pUnkOuter, dwClsCtxt);
+ pToken->Release();
+ }
+
+ SPDBG_REPORT_ON_FAIL(hr);
+ return hr;
+}
+
+template<class T>
+HRESULT SpCreateDefaultObjectFromCategoryId(const WCHAR * pszCategoryId, T ** ppObject,
+ IUnknown * pUnkOuter = NULL, DWORD dwClsCtxt = CLSCTX_ALL)
+{
+ SPDBG_FUNC("SpCreateObjectFromTokenId");
+
+ ISpObjectToken * pToken;
+ HRESULT hr = SpGetDefaultTokenFromCategoryId(pszCategoryId, &pToken);
+ if (SUCCEEDED(hr))
+ {
+ hr = SpCreateObjectFromToken(pToken, ppObject, pUnkOuter, dwClsCtxt);
+ pToken->Release();
+ }
+
+ SPDBG_REPORT_ON_FAIL(hr);
+ return hr;
+}
+
+template<class T>
+HRESULT SpCreateBestObject(
+ const WCHAR * pszCategoryId,
+ const WCHAR * pszReqAttribs,
+ const WCHAR * pszOptAttribs,
+ T ** ppObject,
+ IUnknown * pUnkOuter = NULL,
+ DWORD dwClsCtxt = CLSCTX_ALL)
+{
+ SPDBG_FUNC("SpCreateBestObject");
+ HRESULT hr;
+
+ CComPtr<ISpObjectToken> cpToken;
+ hr = SpFindBestToken(pszCategoryId, pszReqAttribs, pszOptAttribs, &cpToken);
+
+ if (SUCCEEDED(hr))
+ {
+ hr = SpCreateObjectFromToken(cpToken, ppObject, pUnkOuter, dwClsCtxt);
+ }
+
+ if (hr != SPERR_NOT_FOUND)
+ {
+ SPDBG_REPORT_ON_FAIL(hr);
+ }
+
+ return hr;
+}
+
+inline HRESULT SpCreatePhoneConverter(
+ LANGID LangID,
+ const WCHAR * pszReqAttribs,
+ const WCHAR * pszOptAttribs,
+ ISpPhoneConverter ** ppPhoneConverter)
+{
+ SPDBG_FUNC("SpCreatePhoneConverter");
+ HRESULT hr;
+
+ if (LangID == 0)
+ {
+ hr = E_INVALIDARG;
+ }
+ else
+ {
+ CSpDynamicString dstrReqAttribs;
+ if (pszReqAttribs)
+ {
+ dstrReqAttribs = pszReqAttribs;
+ dstrReqAttribs.Append(L";");
+ }
+
+ WCHAR szLang[MAX_PATH];
+
+ SpHexFromUlong(szLang, LangID);
+
+ WCHAR szLangCondition[MAX_PATH];
+ wcscpy(szLangCondition, L"Language=");
+ wcscat(szLangCondition, szLang);
+
+ dstrReqAttribs.Append(szLangCondition);
+
+ hr = SpCreateBestObject(SPCAT_PHONECONVERTERS, dstrReqAttribs, pszOptAttribs, ppPhoneConverter);
+ }
+
+ if (hr != SPERR_NOT_FOUND)
+ {
+ SPDBG_REPORT_ON_FAIL(hr);
+ }
+
+ return hr;
+}
+
+/****************************************************************************
+* SpHrFromWin32 *
+*---------------*
+* Description:
+* This inline function works around a basic problem with the macro
+* HRESULT_FROM_WIN32. The macro forces the expresion in ( ) to be evaluated
+* two times. By using this inline function, the expression will only be
+* evaluated once.
+*
+* Returns:
+* HRESULT of converted Win32 error code
+*
+*****************************************************************************/
+
+inline HRESULT SpHrFromWin32(DWORD dwErr)
+{
+ return HRESULT_FROM_WIN32(dwErr);
+}
+
+
+/****************************************************************************
+* SpHrFromLastWin32Error *
+*------------------------*
+* Description:
+* This simple inline function is used to return a converted HRESULT
+* from the Win32 function ::GetLastError. Note that using HRESULT_FROM_WIN32
+* will evaluate the error code twice so we don't want to use:
+*
+* HRESULT_FROM_WIN32(::GetLastError())
+*
+* since that will call GetLastError twice.
+* On Win98 and WinMe ::GetLastError() returns 0 for some functions (see MSDN).
+* We therefore check for that and return E_FAIL. This function should only be
+* called in an error case since it will always return an error code!
+*
+* Returns:
+* HRESULT for ::GetLastError()
+*
+*****************************************************************************/
+
+inline HRESULT SpHrFromLastWin32Error()
+{
+ DWORD dw = ::GetLastError();
+ return (dw == 0) ? E_FAIL : SpHrFromWin32(dw);
+}
+
+
+/****************************************************************************
+* SpGetUserDefaultUILanguage *
+*----------------------------*
+* Description:
+* Returns the default user interface language, using a method
+* appropriate to the platform (Windows 9x, Windows NT, or Windows 2000)
+*
+* Returns:
+* Default UI language
+*
+*****************************************************************************/
+
+inline LANGID SpGetUserDefaultUILanguage(void)
+{
+ HRESULT hr = S_OK;
+ LANGID wUILang = 0;
+
+ OSVERSIONINFO Osv ;
+ Osv.dwOSVersionInfoSize = sizeof(Osv) ;
+ if(!GetVersionEx(&Osv))
+ {
+ hr = SpHrFromLastWin32Error();
+ }
+ // Get the UI language by one of three methods, depending on the system
+ else if(Osv.dwPlatformId != VER_PLATFORM_WIN32_NT)
+ {
+ // Case 1: Running on Windows 9x. Get the system UI language from registry:
+ CHAR szData[32];
+ DWORD dwSize = sizeof(szData) ;
+ HKEY hKey;
+
+ long lRet = RegOpenKeyEx(
+ HKEY_USERS,
+ _T(".Default\\Control Panel\\desktop\\ResourceLocale"),
+ 0,
+ KEY_READ,
+ &hKey);
+
+#ifdef _WIN32_WCE_BUG_10655
+ if (lRet == ERROR_INVALID_PARAMETER)
+ {
+ lRet = ERROR_FILE_NOT_FOUND;
+ }
+#endif // _WIN32_WCE_BUG_10655
+
+ hr = SpHrFromWin32(lRet);
+
+ if (SUCCEEDED(hr))
+ {
+ lRet = RegQueryValueEx(
+ hKey,
+ _T(""),
+ NULL,
+ NULL,
+ (BYTE *)szData,
+ &dwSize);
+
+#ifdef _WIN32_WCE_BUG_10655
+ if(lRet == ERROR_INVALID_PARAMETER)
+ {
+ lRet = ERROR_FILE_NOT_FOUND;
+ }
+#endif //_WIN32_WCE_BUG_10655
+
+ hr = SpHrFromWin32(lRet);
+ ::RegCloseKey(hKey) ;
+ }
+ if (SUCCEEDED(hr))
+ {
+ // Convert string to number
+ wUILang = (LANGID) strtol(szData, NULL, 16) ;
+ }
+ }
+ else if (Osv.dwMajorVersion >= 5.0)
+ {
+ // Case 2: Running on Windows 2000 or later. Use GetUserDefaultUILanguage to find
+ // the user's prefered UI language
+
+
+ HMODULE hMKernel32 = ::LoadLibraryW(L"kernel32.dll") ;
+ if (hMKernel32 == NULL)
+ {
+ hr = SpHrFromLastWin32Error();
+ }
+ else
+ {
+
+ LANGID (WINAPI *pfnGetUserDefaultUILanguage) () =
+ (LANGID (WINAPI *)(void))
+#ifdef _WIN32_WCE
+ GetProcAddress(hMKernel32, L"GetUserDefaultUILanguage") ;
+#else
+ GetProcAddress(hMKernel32, "GetUserDefaultUILanguage") ;
+#endif
+
+ if(NULL != pfnGetUserDefaultUILanguage)
+ {
+ wUILang = pfnGetUserDefaultUILanguage() ;
+ }
+ else
+ { // GetProcAddress failed
+ hr = SpHrFromLastWin32Error();
+ }
+ ::FreeLibrary(hMKernel32);
+ }
+ }
+ else {
+ // Case 3: Running on Windows NT 4.0 or earlier. Get UI language
+ // from locale of .default user in registry:
+ // HKEY_USERS\.DEFAULT\Control Panel\International\Locale
+
+ WCHAR szData[32] ;
+ DWORD dwSize = sizeof(szData) ;
+ HKEY hKey ;
+
+ LONG lRet = RegOpenKeyEx(HKEY_USERS,
+ _T(".DEFAULT\\Control Panel\\International"),
+ 0,
+ KEY_READ,
+ &hKey);
+#ifdef _WIN32_WCE_BUG_10655
+ if(lRet == ERROR_INVALID_PARAMETER)
+ {
+ lRet = ERROR_FILE_NOT_FOUND;
+ }
+#endif //_WIN32_WCE_BUG_10655
+
+ hr = SpHrFromWin32(lRet);
+
+ if (SUCCEEDED(hr))
+ {
+ lRet = RegQueryValueEx(
+ hKey,
+ _T("Locale"),
+ NULL,
+ NULL,
+ (BYTE *)szData,
+ &dwSize);
+
+#ifdef _WIN32_WCE_BUG_10655
+ if(lRet == ERROR_INVALID_PARAMETER)
+ {
+ lRet = ERROR_FILE_NOT_FOUND;
+ }
+#endif //_WIN32_WCE_BUG_10655
+
+ hr = SpHrFromWin32(lRet);
+ ::RegCloseKey(hKey);
+ }
+
+ if (SUCCEEDED(hr))
+ {
+ // Convert string to number
+ wUILang = (LANGID) wcstol(szData, NULL, 16) ;
+
+ if(0x0401 == wUILang || // Arabic
+ 0x040d == wUILang || // Hebrew
+ 0x041e == wUILang // Thai
+ )
+ {
+ // Special case these to the English UI.
+ // These versions of Windows NT 4.0 were enabled only, i.e., the
+ // UI was English. However, the registry setting
+ // HKEY_USERS\.DEFAULT\Control Panel\International\Locale was set
+ // to the respective locale for application compatibility.
+ wUILang = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US) ;
+ }
+ }
+ }
+
+ return (wUILang ? wUILang : ::GetUserDefaultLangID()); // In failure case, try our best!
+}
+
+
+inline HRESULT SpGetDescription(ISpObjectToken * pObjToken, WCHAR ** ppszDescription, LANGID Language = SpGetUserDefaultUILanguage())
+{
+ WCHAR szLangId[10];
+ SpHexFromUlong(szLangId, Language);
+ HRESULT hr = pObjToken->GetStringValue(szLangId, ppszDescription);
+ if (hr == SPERR_NOT_FOUND)
+ {
+ hr = pObjToken->GetStringValue(NULL, ppszDescription);
+ }
+ return hr;
+}
+
+
+inline HRESULT SpSetDescription(ISpObjectToken * pObjToken, const WCHAR * pszDescription, LANGID Language = SpGetUserDefaultUILanguage(), BOOL fSetLangIndependentId = TRUE)
+{
+ WCHAR szLangId[10];
+ SpHexFromUlong(szLangId, Language);
+ HRESULT hr = pObjToken->SetStringValue(szLangId, pszDescription);
+ if (SUCCEEDED(hr) && fSetLangIndependentId)
+ {
+ hr = pObjToken->SetStringValue(NULL, pszDescription);
+ }
+ return hr;
+}
+
+/****************************************************************************
+* SpConvertStreamFormatEnum *
+*---------------------------*
+* Description:
+* This method converts the specified stream format into a wave format
+* structure.
+*
+*****************************************************************************/
+inline HRESULT SpConvertStreamFormatEnum(SPSTREAMFORMAT eFormat, GUID * pFormatId, WAVEFORMATEX ** ppCoMemWaveFormatEx)
+{
+ HRESULT hr = S_OK;
+
+ if(pFormatId==NULL || ::IsBadWritePtr(pFormatId, sizeof(*pFormatId))
+ || ppCoMemWaveFormatEx==NULL || ::IsBadWritePtr(ppCoMemWaveFormatEx, sizeof(*ppCoMemWaveFormatEx)))
+ {
+ return E_INVALIDARG;
+ }
+
+ const GUID * pFmtGuid = &GUID_NULL; // Assume failure case
+ if( eFormat >= SPSF_8kHz8BitMono && eFormat <= SPSF_48kHz16BitStereo )
+ {
+ WAVEFORMATEX * pwfex = (WAVEFORMATEX *)::CoTaskMemAlloc(sizeof(WAVEFORMATEX));
+ *ppCoMemWaveFormatEx = pwfex;
+ if (pwfex)
+ {
+ DWORD dwIndex = eFormat - SPSF_8kHz8BitMono;
+ BOOL bIsStereo = dwIndex & 0x1;
+ BOOL bIs16 = dwIndex & 0x2;
+ DWORD dwKHZ = (dwIndex & 0x3c) >> 2;
+ static const DWORD adwKHZ[] = { 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 };
+ pwfex->wFormatTag = WAVE_FORMAT_PCM;
+ pwfex->nChannels = pwfex->nBlockAlign = (WORD)(bIsStereo ? 2 : 1);
+ pwfex->nSamplesPerSec = adwKHZ[dwKHZ];
+ pwfex->wBitsPerSample = 8;
+ if (bIs16)
+ {
+ pwfex->wBitsPerSample *= 2;
+ pwfex->nBlockAlign *= 2;
+ }
+ pwfex->nAvgBytesPerSec = pwfex->nSamplesPerSec * pwfex->nBlockAlign;
+ pwfex->cbSize = 0;
+ pFmtGuid = &SPDFID_WaveFormatEx;
+ }
+ else
+ {
+ hr = E_OUTOFMEMORY;
+ }
+ }
+ else if( eFormat == SPSF_TrueSpeech_8kHz1BitMono )
+ {
+ int NumBytes = sizeof( WAVEFORMATEX ) + 32;
+ WAVEFORMATEX * pwfex = (WAVEFORMATEX *)::CoTaskMemAlloc( NumBytes );
+ *ppCoMemWaveFormatEx = pwfex;
+ if( pwfex )
+ {
+ memset( pwfex, 0, NumBytes );
+ pwfex->wFormatTag = WAVE_FORMAT_DSPGROUP_TRUESPEECH;
+ pwfex->nChannels = 1;
+ pwfex->nSamplesPerSec = 8000;
+ pwfex->nAvgBytesPerSec = 1067;
+ pwfex->nBlockAlign = 32;
+ pwfex->wBitsPerSample = 1;
+ pwfex->cbSize = 32;
+ BYTE* pExtra = ((BYTE*)pwfex) + sizeof( WAVEFORMATEX );
+ pExtra[0] = 1;
+ pExtra[2] = 0xF0;
+ pFmtGuid = &SPDFID_WaveFormatEx;
+ }
+ else
+ {
+ hr = E_OUTOFMEMORY;
+ }
+ }
+ else if( (eFormat >= SPSF_CCITT_ALaw_8kHzMono ) &&
+ (eFormat <= SPSF_CCITT_ALaw_44kHzStereo ) )
+ {
+ WAVEFORMATEX * pwfex = (WAVEFORMATEX *)::CoTaskMemAlloc( sizeof(WAVEFORMATEX) );
+ *ppCoMemWaveFormatEx = pwfex;
+ if( pwfex )
+ {
+ memset( pwfex, 0, sizeof(WAVEFORMATEX) );
+ DWORD dwIndex = eFormat - SPSF_CCITT_ALaw_8kHzMono;
+ DWORD dwKHZ = dwIndex / 2;
+ static const DWORD adwKHZ[] = { 8000, 11025, 22050, 44100 };
+ BOOL bIsStereo = dwIndex & 0x1;
+ pwfex->wFormatTag = WAVE_FORMAT_ALAW;
+ pwfex->nChannels = pwfex->nBlockAlign = (WORD)(bIsStereo ? 2 : 1);
+ pwfex->nSamplesPerSec = adwKHZ[dwKHZ];
+ pwfex->wBitsPerSample = 8;
+ pwfex->nAvgBytesPerSec = pwfex->nSamplesPerSec * pwfex->nBlockAlign;
+ pwfex->cbSize = 0;
+ pFmtGuid = &SPDFID_WaveFormatEx;
+ }
+ else
+ {
+ hr = E_OUTOFMEMORY;
+ }
+ }
+ else if( (eFormat >= SPSF_CCITT_uLaw_8kHzMono ) &&
+ (eFormat <= SPSF_CCITT_uLaw_44kHzStereo ) )
+ {
+ WAVEFORMATEX * pwfex = (WAVEFORMATEX *)::CoTaskMemAlloc( sizeof(WAVEFORMATEX) );
+ *ppCoMemWaveFormatEx = pwfex;
+ if( pwfex )
+ {
+ memset( pwfex, 0, sizeof(WAVEFORMATEX) );
+ DWORD dwIndex = eFormat - SPSF_CCITT_uLaw_8kHzMono;
+ DWORD dwKHZ = dwIndex / 2;
+ static const DWORD adwKHZ[] = { 8000, 11025, 22050, 44100 };
+ BOOL bIsStereo = dwIndex & 0x1;
+ pwfex->wFormatTag = WAVE_FORMAT_MULAW;
+ pwfex->nChannels = pwfex->nBlockAlign = (WORD)(bIsStereo ? 2 : 1);
+ pwfex->nSamplesPerSec = adwKHZ[dwKHZ];
+ pwfex->wBitsPerSample = 8;
+ pwfex->nAvgBytesPerSec = pwfex->nSamplesPerSec * pwfex->nBlockAlign;
+ pwfex->cbSize = 0;
+ pFmtGuid = &SPDFID_WaveFormatEx;
+ }
+ else
+ {
+ hr = E_OUTOFMEMORY;
+ }
+ }
+ else if( (eFormat >= SPSF_ADPCM_8kHzMono ) &&
+ (eFormat <= SPSF_ADPCM_44kHzStereo ) )
+ {
+ int NumBytes = sizeof( WAVEFORMATEX ) + 32;
+ WAVEFORMATEX * pwfex = (WAVEFORMATEX *)::CoTaskMemAlloc( NumBytes );
+ *ppCoMemWaveFormatEx = pwfex;
+ if( pwfex )
+ {
+ //--- Some of these values seem odd. We used what the codec told us.
+ static const DWORD adwKHZ[] = { 8000, 11025, 22050, 44100 };
+ static const DWORD BytesPerSec[] = { 4096, 8192, 5644, 11289, 11155, 22311, 22179, 44359 };
+ static const DWORD BlockAlign[] = { 256, 256, 512, 1024 };
+ static const BYTE Extra811[32] =
+ {
+ 0xF4, 0x01, 0x07, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0xC0, 0x00, 0x40, 0x00, 0xF0, 0x00, 0x00, 0x00,
+ 0xCC, 0x01, 0x30, 0xFF, 0x88, 0x01, 0x18, 0xFF
+ };
+
+ static const BYTE Extra22[32] =
+ {
+ 0xF4, 0x03, 0x07, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0xC0, 0x00, 0x40, 0x00, 0xF0, 0x00, 0x00, 0x00,
+ 0xCC, 0x01, 0x30, 0xFF, 0x88, 0x01, 0x18, 0xFF
+ };
+
+ static const BYTE Extra44[32] =
+ {
+ 0xF4, 0x07, 0x07, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0xC0, 0x00, 0x40, 0x00, 0xF0, 0x00, 0x00, 0x00,
+ 0xCC, 0x01, 0x30, 0xFF, 0x88, 0x01, 0x18, 0xFF
+ };
+
+ static const BYTE* Extra[4] = { Extra811, Extra811, Extra22, Extra44 };
+ memset( pwfex, 0, NumBytes );
+ DWORD dwIndex = eFormat - SPSF_ADPCM_8kHzMono;
+ DWORD dwKHZ = dwIndex / 2;
+ BOOL bIsStereo = dwIndex & 0x1;
+ pwfex->wFormatTag = WAVE_FORMAT_ADPCM;
+ pwfex->nChannels = (WORD)(bIsStereo ? 2 : 1);
+ pwfex->nSamplesPerSec = adwKHZ[dwKHZ];
+ pwfex->nAvgBytesPerSec = BytesPerSec[dwIndex];
+ pwfex->nBlockAlign = (WORD)(BlockAlign[dwKHZ] * pwfex->nChannels);
+ pwfex->wBitsPerSample = 4;
+ pwfex->cbSize = 32;
+ BYTE* pExtra = ((BYTE*)pwfex) + sizeof( WAVEFORMATEX );
+ memcpy( pExtra, Extra[dwKHZ], 32 );
+ pFmtGuid = &SPDFID_WaveFormatEx;
+ }
+ else
+ {
+ hr = E_OUTOFMEMORY;
+ }
+ }
+ else if( (eFormat >= SPSF_GSM610_8kHzMono ) &&
+ (eFormat <= SPSF_GSM610_44kHzMono ) )
+ {
+ int NumBytes = sizeof( WAVEFORMATEX ) + 2;
+ WAVEFORMATEX * pwfex = (WAVEFORMATEX *)::CoTaskMemAlloc( NumBytes );
+ *ppCoMemWaveFormatEx = pwfex;
+ if( pwfex )
+ {
+ //--- Some of these values seem odd. We used what the codec told us.
+ static const DWORD adwKHZ[] = { 8000, 11025, 22050, 44100 };
+ static const DWORD BytesPerSec[] = { 1625, 2239, 4478, 8957 };
+ memset( pwfex, 0, NumBytes );
+ DWORD dwIndex = eFormat - SPSF_GSM610_8kHzMono;
+ pwfex->wFormatTag = WAVE_FORMAT_GSM610;
+ pwfex->nChannels = 1;
+ pwfex->nSamplesPerSec = adwKHZ[dwIndex];
+ pwfex->nAvgBytesPerSec = BytesPerSec[dwIndex];
+ pwfex->nBlockAlign = 65;
+ pwfex->wBitsPerSample = 0;
+ pwfex->cbSize = 2;
+ BYTE* pExtra = ((BYTE*)pwfex) + sizeof( WAVEFORMATEX );
+ pExtra[0] = 0x40;
+ pExtra[1] = 0x01;
+ pFmtGuid = &SPDFID_WaveFormatEx;
+ }
+ else
+ {
+ hr = E_OUTOFMEMORY;
+ }
+ }
+ else
+ {
+ *ppCoMemWaveFormatEx = NULL;
+ switch (eFormat)
+ {
+ case SPSF_NoAssignedFormat:
+ break;
+ case SPSF_Text:
+ pFmtGuid = &SPDFID_Text;
+ break;
+ default:
+ hr = E_INVALIDARG;
+ break;
+ }
+ }
+ *pFormatId = *pFmtGuid;
+ return hr;
+}
+
+class CSpStreamFormat
+{
+public:
+ GUID m_guidFormatId;
+ WAVEFORMATEX * m_pCoMemWaveFormatEx;
+
+
+ static HRESULT CoMemCopyWFEX(const WAVEFORMATEX * pSrc, WAVEFORMATEX ** ppCoMemWFEX)
+ {
+ ULONG cb = sizeof(WAVEFORMATEX) + pSrc->cbSize;
+ *ppCoMemWFEX = (WAVEFORMATEX *)::CoTaskMemAlloc(cb);
+ if (*ppCoMemWFEX)
+ {
+ memcpy(*ppCoMemWFEX, pSrc, cb);
+ return S_OK;
+ }
+ else
+ {
+ return E_OUTOFMEMORY;
+ }
+ }
+
+
+ CSpStreamFormat()
+ {
+ m_guidFormatId = GUID_NULL;
+ m_pCoMemWaveFormatEx = NULL;
+ }
+
+ CSpStreamFormat(SPSTREAMFORMAT eFormat, HRESULT * phr)
+ {
+ *phr = SpConvertStreamFormatEnum(eFormat, &m_guidFormatId, &m_pCoMemWaveFormatEx);
+ }
+
+ CSpStreamFormat(const WAVEFORMATEX * pWaveFormatEx, HRESULT * phr)
+ {
+ SPDBG_ASSERT(pWaveFormatEx);
+ *phr = CoMemCopyWFEX(pWaveFormatEx, &m_pCoMemWaveFormatEx);
+ m_guidFormatId = SUCCEEDED(*phr) ? SPDFID_WaveFormatEx : GUID_NULL;
+ }
+
+ ~CSpStreamFormat()
+ {
+ ::CoTaskMemFree(m_pCoMemWaveFormatEx);
+ }
+
+ void Clear()
+ {
+ ::CoTaskMemFree(m_pCoMemWaveFormatEx);
+ m_pCoMemWaveFormatEx = NULL;
+ memset(&m_guidFormatId, 0, sizeof(m_guidFormatId));
+ }
+
+ const GUID & FormatId() const
+ {
+ return m_guidFormatId;
+ }
+
+ const WAVEFORMATEX * WaveFormatExPtr() const
+ {
+ return m_pCoMemWaveFormatEx;
+ }
+
+
+ HRESULT AssignFormat(SPSTREAMFORMAT eFormat)
+ {
+ ::CoTaskMemFree(m_pCoMemWaveFormatEx);
+ return SpConvertStreamFormatEnum(eFormat, &m_guidFormatId, &m_pCoMemWaveFormatEx);
+ }
+
+ HRESULT AssignFormat(ISpStreamFormat * pStream)
+ {
+ ::CoTaskMemFree(m_pCoMemWaveFormatEx);
+ m_pCoMemWaveFormatEx = NULL;
+ return pStream->GetFormat(&m_guidFormatId, &m_pCoMemWaveFormatEx);
+ }
+
+ HRESULT AssignFormat(const WAVEFORMATEX * pWaveFormatEx)
+ {
+ ::CoTaskMemFree(m_pCoMemWaveFormatEx);
+ HRESULT hr = CoMemCopyWFEX(pWaveFormatEx, &m_pCoMemWaveFormatEx);
+ m_guidFormatId = SUCCEEDED(hr) ? SPDFID_WaveFormatEx : GUID_NULL;
+ return hr;
+ }
+
+ HRESULT AssignFormat(REFGUID rguidFormatId, const WAVEFORMATEX * pWaveFormatEx)
+ {
+ HRESULT hr = S_OK;
+
+ m_guidFormatId = rguidFormatId;
+ ::CoTaskMemFree(m_pCoMemWaveFormatEx);
+ m_pCoMemWaveFormatEx = NULL;
+
+ if (rguidFormatId == SPDFID_WaveFormatEx)
+ {
+ if (::IsBadReadPtr(pWaveFormatEx, sizeof(*pWaveFormatEx)))
+ {
+ hr = E_INVALIDARG;
+ }
+ else
+ {
+ hr = CoMemCopyWFEX(pWaveFormatEx, &m_pCoMemWaveFormatEx);
+ }
+
+ if (FAILED(hr))
+ {
+ m_guidFormatId = GUID_NULL;
+ }
+ }
+
+ return hr;
+ }
+
+
+ BOOL IsEqual(REFGUID rguidFormatId, const WAVEFORMATEX * pwfex) const
+ {
+ if (rguidFormatId == m_guidFormatId)
+ {
+ if (m_pCoMemWaveFormatEx)
+ {
+ if (pwfex &&
+ pwfex->cbSize == m_pCoMemWaveFormatEx->cbSize &&
+ memcmp(m_pCoMemWaveFormatEx, pwfex, sizeof(WAVEFORMATEX) + pwfex->cbSize) == 0)
+ {
+ return TRUE;
+ }
+ }
+ else
+ {
+ return (pwfex == NULL);
+ }
+ }
+ return FALSE;
+ }
+
+
+
+ HRESULT ParamValidateAssignFormat(REFGUID rguidFormatId, const WAVEFORMATEX * pWaveFormatEx, BOOL fRequireWaveFormat = FALSE)
+ {
+ if ((pWaveFormatEx && (::IsBadReadPtr(pWaveFormatEx, sizeof(*pWaveFormatEx)) || rguidFormatId != SPDFID_WaveFormatEx)) ||
+ (fRequireWaveFormat && pWaveFormatEx == NULL))
+ {
+ return E_INVALIDARG;
+ }
+ return AssignFormat(rguidFormatId, pWaveFormatEx);
+ }
+
+ SPSTREAMFORMAT ComputeFormatEnum()
+ {
+ if (m_guidFormatId == GUID_NULL)
+ {
+ return SPSF_NoAssignedFormat;
+ }
+ if (m_guidFormatId == SPDFID_Text)
+ {
+ return SPSF_Text;
+ }
+ if (m_guidFormatId != SPDFID_WaveFormatEx)
+ {
+ return SPSF_NonStandardFormat;
+ }
+ //
+ // It is a WAVEFORMATEX. Now determine which type it is and convert.
+ //
+ DWORD dwIndex = 0;
+ switch (m_pCoMemWaveFormatEx->wFormatTag)
+ {
+ case WAVE_FORMAT_PCM:
+ {
+ switch (m_pCoMemWaveFormatEx->nChannels)
+ {
+ case 1:
+ break;
+ case 2:
+ dwIndex |= 1;
+ break;
+ default:
+ return SPSF_ExtendedAudioFormat;
+ }
+
+ switch (m_pCoMemWaveFormatEx->wBitsPerSample)
+ {
+ case 8:
+ break;
+ case 16:
+ dwIndex |= 2;
+ break;
+ default:
+ return SPSF_ExtendedAudioFormat;
+ }
+
+ switch (m_pCoMemWaveFormatEx->nSamplesPerSec)
+ {
+ case 48000:
+ dwIndex += 4; // Fall through
+ case 44100:
+ dwIndex += 4; // Fall through
+ case 32000:
+ dwIndex += 4; // Fall through
+ case 24000:
+ dwIndex += 4; // Fall through
+ case 22050:
+ dwIndex += 4; // Fall through
+ case 16000:
+ dwIndex += 4; // Fall through
+ case 12000:
+ dwIndex += 4; // Fall through
+ case 11025:
+ dwIndex += 4; // Fall through
+ case 8000:
+ break;
+ default:
+ return SPSF_ExtendedAudioFormat;
+ }
+
+ return static_cast<SPSTREAMFORMAT>(SPSF_8kHz8BitMono + dwIndex);
+ }
+
+ case WAVE_FORMAT_DSPGROUP_TRUESPEECH:
+ {
+ return SPSF_TrueSpeech_8kHz1BitMono;
+ }
+
+ case WAVE_FORMAT_ALAW: // fall through
+ case WAVE_FORMAT_MULAW:
+ case WAVE_FORMAT_ADPCM:
+ {
+ switch (m_pCoMemWaveFormatEx->nChannels)
+ {
+ case 1:
+ break;
+ case 2:
+ dwIndex |= 1;
+ break;
+ default:
+ return SPSF_ExtendedAudioFormat;
+ }
+
+ if(m_pCoMemWaveFormatEx->wFormatTag == WAVE_FORMAT_ADPCM)
+ {
+ if(m_pCoMemWaveFormatEx->wBitsPerSample != 4)
+ {
+ return SPSF_ExtendedAudioFormat;
+ }
+ }
+ else if(m_pCoMemWaveFormatEx->wBitsPerSample != 8)
+ {
+ return SPSF_ExtendedAudioFormat;
+ }
+
+ switch (m_pCoMemWaveFormatEx->nSamplesPerSec)
+ {
+ case 44100:
+ dwIndex += 2; // Fall through
+ case 22050:
+ dwIndex += 2; // Fall through
+ case 11025:
+ dwIndex += 2; // Fall through
+ case 8000:
+ break;
+ default:
+ return SPSF_ExtendedAudioFormat;
+ }
+
+ switch( m_pCoMemWaveFormatEx->wFormatTag )
+ {
+ case WAVE_FORMAT_ALAW:
+ return static_cast<SPSTREAMFORMAT>(SPSF_CCITT_ALaw_8kHzMono + dwIndex);
+ case WAVE_FORMAT_MULAW:
+ return static_cast<SPSTREAMFORMAT>(SPSF_CCITT_uLaw_8kHzMono + dwIndex);
+ case WAVE_FORMAT_ADPCM:
+ return static_cast<SPSTREAMFORMAT>(SPSF_ADPCM_8kHzMono + dwIndex);
+ }
+ }
+
+ case WAVE_FORMAT_GSM610:
+ {
+ if( m_pCoMemWaveFormatEx->nChannels != 1 )
+ {
+ return SPSF_ExtendedAudioFormat;
+ }
+
+ switch (m_pCoMemWaveFormatEx->nSamplesPerSec)
+ {
+ case 44100:
+ dwIndex = 3;
+ break;
+ case 22050:
+ dwIndex = 2;
+ break;
+ case 11025:
+ dwIndex = 1;
+ break;
+ case 8000:
+ dwIndex = 0;
+ break;
+ default:
+ return SPSF_ExtendedAudioFormat;
+ }
+
+ return static_cast<SPSTREAMFORMAT>(SPSF_GSM610_8kHzMono + dwIndex);
+ }
+
+ default:
+ return SPSF_ExtendedAudioFormat;
+ break;
+ }
+ }
+
+ void DetachTo(CSpStreamFormat & Other)
+ {
+ ::CoTaskMemFree(Other.m_pCoMemWaveFormatEx);
+ Other.m_guidFormatId = m_guidFormatId;
+ Other.m_pCoMemWaveFormatEx = m_pCoMemWaveFormatEx;
+ m_pCoMemWaveFormatEx = NULL;
+ memset(&m_guidFormatId, 0, sizeof(m_guidFormatId));
+ }
+
+ void DetachTo(GUID * pFormatId, WAVEFORMATEX ** ppCoMemWaveFormatEx)
+ {
+ *pFormatId = m_guidFormatId;
+ *ppCoMemWaveFormatEx = m_pCoMemWaveFormatEx;
+ m_pCoMemWaveFormatEx = NULL;
+ memset(&m_guidFormatId, 0, sizeof(m_guidFormatId));
+ }
+
+ HRESULT CopyTo(GUID * pFormatId, WAVEFORMATEX ** ppCoMemWFEX) const
+ {
+ HRESULT hr = S_OK;
+ *pFormatId = m_guidFormatId;
+ if (m_pCoMemWaveFormatEx)
+ {
+ hr = CoMemCopyWFEX(m_pCoMemWaveFormatEx, ppCoMemWFEX);
+ if (FAILED(hr))
+ {
+ memset(pFormatId, 0, sizeof(*pFormatId));
+ }
+ }
+ else
+ {
+ *ppCoMemWFEX = NULL;
+ }
+ return hr;
+ }
+
+ HRESULT CopyTo(CSpStreamFormat & Other) const
+ {
+ ::CoTaskMemFree(Other.m_pCoMemWaveFormatEx);
+ return CopyTo(&Other.m_guidFormatId, &Other.m_pCoMemWaveFormatEx);
+ }
+
+ HRESULT AssignFormat(const CSpStreamFormat & Src)
+ {
+ return Src.CopyTo(*this);
+ }
+
+
+ HRESULT ParamValidateCopyTo(GUID * pFormatId, WAVEFORMATEX ** ppCoMemWFEX) const
+ {
+ if (::IsBadWritePtr(pFormatId, sizeof(*pFormatId)) ||
+ ::IsBadWritePtr(ppCoMemWFEX, sizeof(*ppCoMemWFEX)))
+ {
+ return E_POINTER;
+ }
+ return CopyTo(pFormatId, ppCoMemWFEX);
+ }
+
+ BOOL operator==(const CSpStreamFormat & Other) const
+ {
+ return IsEqual(Other.m_guidFormatId, Other.m_pCoMemWaveFormatEx);
+ }
+ BOOL operator!=(const CSpStreamFormat & Other) const
+ {
+ return !IsEqual(Other.m_guidFormatId, Other.m_pCoMemWaveFormatEx);
+ }
+
+ ULONG SerializeSize() const
+ {
+ ULONG cb = sizeof(ULONG) + sizeof(m_guidFormatId);
+ if (m_pCoMemWaveFormatEx)
+ {
+ cb += sizeof(WAVEFORMATEX) + m_pCoMemWaveFormatEx->cbSize + 3; // Add 3 to round up
+ cb -= cb % 4; // Round to DWORD
+ }
+ return cb;
+ }
+
+ ULONG Serialize(BYTE * pBuffer) const
+ {
+ ULONG cb = SerializeSize();
+ *((UNALIGNED ULONG *)pBuffer) = cb;
+ pBuffer += sizeof(ULONG);
+ *((UNALIGNED GUID *)pBuffer) = m_guidFormatId;
+ if (m_pCoMemWaveFormatEx)
+ {
+ pBuffer += sizeof(m_guidFormatId);
+ memcpy(pBuffer, m_pCoMemWaveFormatEx, sizeof(WAVEFORMATEX) + m_pCoMemWaveFormatEx->cbSize);
+ }
+ return cb;
+ }
+
+ HRESULT Deserialize(const BYTE * pBuffer, ULONG * pcbUsed)
+ {
+ HRESULT hr = S_OK;
+ ::CoTaskMemFree(m_pCoMemWaveFormatEx);
+ m_pCoMemWaveFormatEx = NULL;
+ *pcbUsed = *((UNALIGNED ULONG *)pBuffer);
+ pBuffer += sizeof(ULONG);
+ // Misaligment exception is generated for SHx platform.
+ // Marking pointer as UNALIGNED does not help.
+#ifndef _WIN32_WCE
+ m_guidFormatId = *((UNALIGNED GUID *)pBuffer);
+#else
+ memcpy(&m_guidFormatId, pBuffer, sizeof(GUID));
+#endif
+ if (*pcbUsed > sizeof(GUID) + sizeof(ULONG))
+ {
+ pBuffer += sizeof(m_guidFormatId);
+ hr = CoMemCopyWFEX((const WAVEFORMATEX *)pBuffer, &m_pCoMemWaveFormatEx);
+ if (FAILED(hr))
+ {
+ m_guidFormatId = GUID_NULL;
+ }
+ }
+ return hr;
+ }
+
+};
+
+
+
+// Return the default codepage given a LCID.
+// Note some of the newer locales do not have associated Windows codepages. For these, we return UTF-8.
+
+inline UINT SpCodePageFromLcid(LCID lcid)
+{
+ char achCodePage[6];
+
+ return (0 != GetLocaleInfoA(lcid, LOCALE_IDEFAULTANSICODEPAGE, achCodePage, sizeof(achCodePage))) ? atoi(achCodePage) : 65001;
+}
+
+
+inline HRESULT SPBindToFile( LPCWSTR pFileName, SPFILEMODE eMode, ISpStream ** ppStream,
+ const GUID * pFormatId = NULL, const WAVEFORMATEX * pWaveFormatEx = NULL,
+ ULONGLONG ullEventInterest = SPFEI_ALL_EVENTS)
+{
+ HRESULT hr = ::CoCreateInstance(CLSID_SpStream, NULL, CLSCTX_ALL, __uuidof(*ppStream), (void **)ppStream);
+ if (SUCCEEDED(hr))
+ {
+ hr = (*ppStream)->BindToFile(pFileName, eMode, pFormatId, pWaveFormatEx, ullEventInterest);
+ if (FAILED(hr))
+ {
+ (*ppStream)->Release();
+ *ppStream = NULL;
+ }
+ }
+ return hr;
+} /* SPBindToFile */
+
+#ifndef _UNICODE
+inline HRESULT SPBindToFile( const TCHAR * pFileName, SPFILEMODE eMode, ISpStream** ppStream,
+ const GUID * pFormatId = NULL, const WAVEFORMATEX * pWaveFormatEx = NULL,
+ ULONGLONG ullEventInterest = SPFEI_ALL_EVENTS)
+{
+ WCHAR szWcharFileName[MAX_PATH];
+ ::MultiByteToWideChar(CP_ACP, 0, pFileName, -1, szWcharFileName, sp_countof(szWcharFileName));
+ return SPBindToFile(szWcharFileName, eMode, ppStream, pFormatId, pWaveFormatEx, ullEventInterest);
+}
+#endif
+
+/****************************************************************************
+* SpClearEvent *
+*--------------*
+* Description:
+* Helper function that can be used by clients that do not use the CSpEvent
+* class.
+*
+* Returns:
+*
+*****************************************************************************/
+
+inline void SpClearEvent(SPEVENT * pe)
+{
+ if( pe->elParamType != SPEI_UNDEFINED)
+ {
+ if( pe->elParamType == SPET_LPARAM_IS_POINTER ||
+ pe->elParamType == SPET_LPARAM_IS_STRING)
+ {
+ ::CoTaskMemFree((void *)pe->lParam);
+ }
+ else if (pe->elParamType == SPET_LPARAM_IS_TOKEN ||
+ pe->elParamType == SPET_LPARAM_IS_OBJECT)
+ {
+ ((IUnknown*)pe->lParam)->Release();
+ }
+ }
+ memset(pe, 0, sizeof(*pe));
+}
+
+/****************************************************************************
+* SpInitEvent *
+*-------------*
+* Description:
+*
+* Returns:
+*
+*****************************************************************************/
+
+inline void SpInitEvent(SPEVENT * pe)
+{
+ memset(pe, 0, sizeof(*pe));
+}
+
+/****************************************************************************
+* SpEventSerializeSize *
+*----------------------*
+* Description:
+* Computes the required size of a buffer to serialize an event. The caller
+* must specify which type of serialized event is desired -- either SPSERIALIZEDEVENT
+* or SPSERIALIZEDEVENT64.
+*
+* Returns:
+* Size in bytes required to seriailze the event.
+*
+****************************************************************************/
+
+// WCE compiler does not work propertly with template
+#ifndef _WIN32_WCE
+template <class T>
+inline ULONG SpEventSerializeSize(const SPEVENT * pEvent)
+
+{
+ ULONG ulSize = sizeof(T);
+
+#else
+
+inline ULONG SpEventSerializeSize(const SPEVENT * pEvent, ULONG ulSize)
+{
+#endif //_WIN32_WCE
+
+ if( ( pEvent->elParamType == SPET_LPARAM_IS_POINTER ) && pEvent->lParam )
+ {
+ ulSize += ULONG(pEvent->wParam);
+ }
+ else if ((pEvent->elParamType == SPET_LPARAM_IS_STRING) && pEvent->lParam != NULL)
+ {
+ ulSize += (wcslen((WCHAR*)pEvent->lParam) + 1) * sizeof( WCHAR );
+ }
+ else if( pEvent->elParamType == SPET_LPARAM_IS_TOKEN )
+ {
+ CSpDynamicString dstrObjectId;
+ if( ((ISpObjectToken*)(pEvent->lParam))->GetId( &dstrObjectId ) == S_OK )
+ {
+ ulSize += (dstrObjectId.Length() + 1) * sizeof( WCHAR );
+ }
+ }
+ // Round up to nearest DWORD
+ ulSize += 3;
+ ulSize -= ulSize % 4;
+ return ulSize;
+}
+
+/****************************************************************************
+* SpSerializedEventSize *
+*-----------------------*
+* Description:
+* Returns the size, in bytes, used by a serialized event. The caller can
+* pass a pointer to either a SPSERIAILZEDEVENT or SPSERIALIZEDEVENT64 structure.
+*
+* Returns:
+* Number of bytes used by serizlied event
+*
+********************************************************************* RAL ***/
+
+// WCE compiler does not work propertly with template
+#ifndef _WIN32_WCE
+template <class T>
+inline ULONG SpSerializedEventSize(const T * pSerEvent)
+{
+ ULONG ulSize = sizeof(T);
+
+ if( ( pSerEvent->elParamType == SPET_LPARAM_IS_POINTER ) && pSerEvent->SerializedlParam )
+ {
+ ulSize += ULONG(pSerEvent->SerializedwParam);
+ }
+ else if ((pSerEvent->elParamType == SPET_LPARAM_IS_STRING || pSerEvent->elParamType == SPET_LPARAM_IS_TOKEN) &&
+ pSerEvent->SerializedlParam != NULL)
+ {
+ ulSize += (wcslen((WCHAR*)(pSerEvent + 1)) + 1) * sizeof( WCHAR );
+ }
+ // Round up to nearest DWORD
+ ulSize += 3;
+ ulSize -= ulSize % 4;
+ return ulSize;
+}
+
+#else //_WIN32_WCE
+
+inline ULONG SpSerializedEventSize(const SPSERIALIZEDEVENT * pSerEvent, ULONG ulSize)
+{
+ if( ( pSerEvent->elParamType == SPET_LPARAM_IS_POINTER ) && pSerEvent->SerializedlParam )
+ {
+ ulSize += ULONG(pSerEvent->SerializedwParam);
+ }
+ else if ((pSerEvent->elParamType == SPET_LPARAM_IS_STRING || pSerEvent->elParamType == SPET_LPARAM_IS_TOKEN) &&
+ pSerEvent->SerializedlParam != NULL)
+ {
+ ulSize += (wcslen((WCHAR*)(pSerEvent + 1)) + 1) * sizeof( WCHAR );
+ }
+ // Round up to nearest DWORD
+ ulSize += 3;
+ ulSize -= ulSize % 4;
+ return ulSize;
+}
+
+inline ULONG SpSerializedEventSize(const SPSERIALIZEDEVENT64 * pSerEvent, ULONG ulSize)
+{
+ if( ( pSerEvent->elParamType == SPET_LPARAM_IS_POINTER ) && pSerEvent->SerializedlParam )
+ {
+ ulSize += ULONG(pSerEvent->SerializedwParam);
+ }
+ else if ((pSerEvent->elParamType == SPET_LPARAM_IS_STRING || pSerEvent->elParamType == SPET_LPARAM_IS_TOKEN) &&
+ pSerEvent->SerializedlParam != NULL)
+ {
+ ulSize += (wcslen((WCHAR*)(pSerEvent + 1)) + 1) * sizeof( WCHAR );
+ }
+ // Round up to nearest DWORD
+ ulSize += 3;
+ ulSize -= ulSize % 4;
+ return ulSize;
+}
+
+#endif //_WIN32_WCE
+
+/*** CSpEvent helper class
+*
+*/
+class CSpEvent : public SPEVENT
+{
+public:
+ CSpEvent()
+ {
+ SpInitEvent(this);
+ }
+ ~CSpEvent()
+ {
+ SpClearEvent(this);
+ }
+ // If you need to take the address of a CSpEvent that is not const, use the AddrOf() method
+ // which will do debug checking of parameters. If you encounter this problem when calling
+ // GetEvents from an event source, you may want to use the GetFrom() method of this class.
+ const SPEVENT * operator&()
+ {
+ return this;
+ }
+ CSpEvent * AddrOf()
+ {
+ // Note: This method does not ASSERT since we assume the caller knows what they are doing.
+ return this;
+ }
+ void Clear()
+ {
+ SpClearEvent(this);
+ }
+ HRESULT CopyTo(SPEVENT * pDestEvent) const
+ {
+ memcpy(pDestEvent, this, sizeof(*pDestEvent));
+ if ((elParamType == SPET_LPARAM_IS_POINTER) && lParam)
+ {
+ SPDBG_ASSERT(wParam && (wParam < 0x100000)); // this is too big!
+ pDestEvent->lParam = (LPARAM)::CoTaskMemAlloc(wParam);
+ if (pDestEvent->lParam)
+ {
+ memcpy((void *)pDestEvent->lParam, (void *)lParam, wParam);
+ }
+ else
+ {
+ pDestEvent->eEventId = SPEI_UNDEFINED;
+ return E_OUTOFMEMORY;
+ }
+ }
+ else if (elParamType == SPET_LPARAM_IS_STRING && lParam != NULL)
+ {
+ pDestEvent->lParam = (LPARAM)::CoTaskMemAlloc((wcslen((WCHAR*)lParam) + 1) * sizeof(WCHAR));
+ if (pDestEvent->lParam)
+ {
+ wcscpy((WCHAR*)pDestEvent->lParam, (WCHAR*)lParam);
+ }
+ else
+ {
+ pDestEvent->eEventId = SPEI_UNDEFINED;
+ return E_OUTOFMEMORY;
+ }
+ }
+ else if (elParamType == SPET_LPARAM_IS_TOKEN ||
+ elParamType == SPET_LPARAM_IS_OBJECT)
+ {
+ ((IUnknown*)lParam)->AddRef();
+ }
+ return S_OK;
+ }
+
+ HRESULT GetFrom(ISpEventSource * pEventSrc)
+ {
+ SpClearEvent(this);
+ return pEventSrc->GetEvents(1, this, NULL);
+ }
+ HRESULT CopyFrom(const SPEVENT * pSrcEvent)
+ {
+ SpClearEvent(this);
+ return static_cast<const CSpEvent *>(pSrcEvent)->CopyTo(this);
+ }
+ void Detach(SPEVENT * pDestEvent = NULL)
+ {
+ if (pDestEvent)
+ {
+ memcpy(pDestEvent, this, sizeof(*pDestEvent));
+ }
+ memset(this, 0, sizeof(*this));
+ }
+
+ template <class T>
+ ULONG SerializeSize() const
+ {
+ return SpEventSerializeSize<T>(this);
+ }
+
+ // Call this method with either SPSERIALIZEDEVENT or SPSERIALIZEDEVENT64
+ template <class T>
+ void Serialize(T * pSerEvent) const
+ {
+ SPDBG_ASSERT(elParamType != SPET_LPARAM_IS_OBJECT);
+ pSerEvent->eEventId = this->eEventId;
+ pSerEvent->elParamType = this->elParamType;
+ pSerEvent->ulStreamNum = this->ulStreamNum;
+ pSerEvent->ullAudioStreamOffset = this->ullAudioStreamOffset;
+ pSerEvent->SerializedwParam = static_cast<ULONG>(this->wParam);
+ pSerEvent->SerializedlParam = static_cast<LONG>(this->lParam);
+ if (lParam)
+ {
+ switch(elParamType)
+ {
+ case SPET_LPARAM_IS_POINTER:
+ memcpy(pSerEvent + 1, (void *)lParam, wParam);
+ pSerEvent->SerializedlParam = sizeof(T);
+ break;
+
+ case SPET_LPARAM_IS_STRING:
+ wcscpy((WCHAR *)(pSerEvent + 1), (WCHAR*)lParam);
+ pSerEvent->SerializedlParam = sizeof(T);
+ break;
+
+ case SPET_LPARAM_IS_TOKEN:
+ {
+ CSpDynamicString dstrObjectId;
+ if( SUCCEEDED( ((ISpObjectToken*)lParam)->GetId( &dstrObjectId ) ) )
+ {
+ pSerEvent->SerializedwParam = (dstrObjectId.Length() + 1) * sizeof( WCHAR );;
+ memcpy( pSerEvent + 1, (void *)dstrObjectId.m_psz, static_cast<ULONG>(pSerEvent->SerializedwParam) );
+ }
+ pSerEvent->SerializedlParam = sizeof(T);
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+ }
+
+ template <class T>
+ HRESULT Serialize(T ** ppCoMemSerEvent, ULONG * pcbSerEvent) const
+ {
+// WCE compiler does not work propertly with template
+#ifndef _WIN32_WCE
+ *pcbSerEvent = SpEventSerializeSize<T>(this);
+#else
+ *pcbSerEvent = SpEventSerializeSize(this, sizeof(** ppCoMemSerEvent));
+#endif
+ *ppCoMemSerEvent = (T *)::CoTaskMemAlloc(*pcbSerEvent);
+ if (*ppCoMemSerEvent)
+ {
+ Serialize(*ppCoMemSerEvent);
+ return S_OK;
+ }
+ else
+ {
+ *pcbSerEvent = 0;
+ return E_OUTOFMEMORY;
+ }
+ }
+
+
+ // Call this method with either SPSERIALIZEDEVENT or SPSERIALIZEDEVENT64
+ template <class T>
+ HRESULT Deserialize(const T * pSerEvent, ULONG * pcbUsed = NULL)
+ {
+ Clear();
+ HRESULT hr = S_OK;
+ const UNALIGNED T * pTemp = pSerEvent;
+ this->eEventId = pTemp->eEventId;
+ this->elParamType = pTemp->elParamType;
+ this->ulStreamNum = pTemp->ulStreamNum;
+ this->ullAudioStreamOffset = pTemp->ullAudioStreamOffset;
+ this->wParam = static_cast<WPARAM>(pTemp->SerializedwParam);
+ this->lParam = static_cast<LPARAM>(pTemp->SerializedlParam);
+ if (pTemp->SerializedlParam)
+ {
+ ULONG cbAlloc = 0;
+ switch (pTemp->elParamType)
+ {
+ case SPET_LPARAM_IS_POINTER:
+ cbAlloc = static_cast<ULONG>(wParam);
+ break;
+
+ case SPET_LPARAM_IS_STRING:
+ cbAlloc = sizeof(WCHAR) * (1 + wcslen((const WCHAR *)(pTemp + 1)));
+ break;
+
+ case SPET_LPARAM_IS_TOKEN:
+ {
+ ULONG ulDataOffset = ULONG(lParam);
+ hr = SpGetTokenFromId( (const WCHAR*)(pTemp + 1),
+ (ISpObjectToken **)&lParam );
+ wParam = 0;
+ }
+ break;
+ }
+ if (cbAlloc)
+ {
+ void * pvBuff = ::CoTaskMemAlloc(cbAlloc);
+ this->lParam = (LPARAM)pvBuff;
+ if (pvBuff)
+ {
+ memcpy(pvBuff, pTemp + 1, cbAlloc);
+ }
+ else
+ {
+ hr = E_OUTOFMEMORY;
+ }
+ }
+ }
+
+ if( SUCCEEDED( hr ) && pcbUsed )
+ {
+// WCE compiler does not work propertly with template
+#ifndef _WIN32_WCE
+ *pcbUsed = SpEventSerializeSize<T>(this);
+#else
+ *pcbUsed = SpEventSerializeSize(this, sizeof(*pTemp));
+#endif
+ }
+ return hr;
+ }
+
+ //
+ // Helpers for access to events. Performs run-time checks in debug and casts
+ // data to the appropriate types
+ //
+ SPPHONEID Phoneme() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_PHONEME);
+ return (SPPHONEID)LOWORD(lParam);
+ }
+ SPVISEMES Viseme() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_VISEME);
+ return (SPVISEMES)LOWORD(lParam);
+ }
+ ULONG InputWordPos() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_WORD_BOUNDARY);
+ return ULONG(lParam);
+ }
+ ULONG InputWordLen() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_WORD_BOUNDARY);
+ return ULONG(wParam);
+ }
+ ULONG InputSentPos() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_SENTENCE_BOUNDARY);
+ return ULONG(lParam);
+ }
+ ULONG InputSentLen() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_SENTENCE_BOUNDARY);
+ return ULONG(wParam);
+ }
+ ISpObjectToken * ObjectToken() const
+ {
+ SPDBG_ASSERT(elParamType == SPET_LPARAM_IS_TOKEN);
+ return (ISpObjectToken *)lParam;
+ }
+ ISpObjectToken * VoiceToken() const // More explicit check than ObjectToken()
+ {
+ SPDBG_ASSERT(eEventId == SPEI_VOICE_CHANGE);
+ return ObjectToken();
+ }
+ BOOL PersistVoiceChange() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_VOICE_CHANGE);
+ return (BOOL)wParam;
+ }
+ IUnknown * Object() const
+ {
+ SPDBG_ASSERT(elParamType == SPET_LPARAM_IS_OBJECT);
+ return (IUnknown*)lParam;
+ }
+ ISpRecoResult * RecoResult() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_RECOGNITION || eEventId == SPEI_FALSE_RECOGNITION || eEventId == SPEI_HYPOTHESIS);
+ return (ISpRecoResult *)Object();
+ }
+ BOOL IsPaused()
+ {
+ SPDBG_ASSERT(eEventId == SPEI_RECOGNITION || eEventId == SPEI_SR_BOOKMARK);
+ return (BOOL)(wParam & SPREF_AutoPause);
+ }
+ BOOL IsEmulated()
+ {
+ SPDBG_ASSERT(eEventId == SPEI_RECOGNITION);
+ return (BOOL)(wParam & SPREF_Emulated);
+ }
+ const WCHAR * String() const
+ {
+ SPDBG_ASSERT(elParamType == SPET_LPARAM_IS_STRING);
+ return (const WCHAR*)lParam;
+ }
+ const WCHAR * BookmarkName() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_TTS_BOOKMARK);
+ return String();
+ }
+ const WCHAR * RequestTypeOfUI() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_REQUEST_UI);
+ return String();
+ }
+ SPRECOSTATE RecoState() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_RECO_STATE_CHANGE);
+ return static_cast<SPRECOSTATE>(wParam);
+ }
+ const WCHAR * PropertyName() const
+ {
+ SPDBG_ASSERT((eEventId == SPEI_PROPERTY_NUM_CHANGE && elParamType == SPET_LPARAM_IS_STRING) ||
+ (eEventId == SPEI_PROPERTY_STRING_CHANGE && elParamType == SPET_LPARAM_IS_POINTER));
+ // Note: Don't use String() method here since in the case of string attributes, the elParamType
+ // field specifies LPARAM_IS_POINTER, but the attribute name IS the first string in this buffer
+ return (const WCHAR*)lParam;
+ }
+ const LONG PropertyNumValue() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_PROPERTY_NUM_CHANGE);
+ return static_cast<LONG>(wParam);
+ }
+ const WCHAR * PropertyStringValue() const
+ {
+ // Search for the first NULL and return pointer to the char past it.
+ SPDBG_ASSERT(eEventId == SPEI_PROPERTY_STRING_CHANGE);
+ const WCHAR * psz;
+ for (psz = (const WCHAR *)lParam; *psz; psz++) {}
+ return psz + 1;
+ }
+ SPINTERFERENCE Interference() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_INTERFERENCE);
+ return static_cast<SPINTERFERENCE>(lParam);
+ }
+ HRESULT EndStreamResult() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_END_SR_STREAM);
+ return static_cast<HRESULT>(lParam);
+ }
+ BOOL InputStreamReleased() const
+ {
+ SPDBG_ASSERT(eEventId == SPEI_END_SR_STREAM);
+ return (wParam & SPESF_STREAM_RELEASED) ? TRUE : FALSE;
+ }
+};
+
+class CSpPhrasePtr
+{
+public:
+ SPPHRASE * m_pPhrase;
+ CSpPhrasePtr() : m_pPhrase(NULL) {}
+ CSpPhrasePtr(ISpPhrase * pPhraseObj, HRESULT * phr)
+ {
+ *phr = pPhraseObj->GetPhrase(&m_pPhrase);
+ }
+ ~CSpPhrasePtr()
+ {
+ ::CoTaskMemFree(m_pPhrase);
+ }
+ //The assert on operator& usually indicates a bug. If this is really
+ //what is needed, however, take the address of the m_pPhrase member explicitly.
+ SPPHRASE ** operator&()
+ {
+ SPDBG_ASSERT(m_pPhrase == NULL);
+ return &m_pPhrase;
+ }
+ operator SPPHRASE *() const
+ {
+ return m_pPhrase;
+ }
+ SPPHRASE & operator*() const
+ {
+ SPDBG_ASSERT(m_pPhrase);
+ return *m_pPhrase;
+ }
+ SPPHRASE * operator->() const
+ {
+ return m_pPhrase;
+ }
+ bool operator!() const
+ {
+ return (m_pPhrase == NULL);
+ }
+ void Clear()
+ {
+ if (m_pPhrase)
+ {
+ ::CoTaskMemFree(m_pPhrase);
+ m_pPhrase = NULL;
+ }
+ }
+ HRESULT GetFrom(ISpPhrase * pPhraseObj)
+ {
+ Clear();
+ return pPhraseObj->GetPhrase(&m_pPhrase);
+ }
+};
+
+
+template <class T>
+class CSpCoTaskMemPtr
+{
+public:
+ T * m_pT;
+ CSpCoTaskMemPtr() : m_pT(NULL) {}
+ CSpCoTaskMemPtr(void * pv) : m_pT((T *)pv) {}
+ CSpCoTaskMemPtr(ULONG cElements, HRESULT * phr)
+ {
+ m_pT = (T *)::CoTaskMemAlloc(cElements * sizeof(T));
+ *phr = m_pT ? S_OK : E_OUTOFMEMORY;
+ }
+ ~CSpCoTaskMemPtr()
+ {
+ ::CoTaskMemFree(m_pT);
+ }
+ void Clear()
+ {
+ if (m_pT)
+ {
+ ::CoTaskMemFree(m_pT);
+ m_pT = NULL;
+ }
+ }
+ HRESULT Alloc(ULONG cArrayElements = 1)
+ {
+ m_pT = (T *)::CoTaskMemRealloc(m_pT, sizeof(T) * cArrayElements);
+ SPDBG_ASSERT(m_pT);
+ return (m_pT ? S_OK : E_OUTOFMEMORY);
+ }
+ void Attach(void * pv)
+ {
+ Clear();
+ m_pT = (T *)pv;
+ }
+ T * Detatch()
+ {
+ T * pT = m_pT;
+ m_pT = NULL;
+ return pT;
+ }
+ //The assert on operator& usually indicates a bug. If this is really
+ //what is needed, however, take the address of the m_pT member explicitly.
+ T ** operator&()
+ {
+ SPDBG_ASSERT(m_pT == NULL);
+ return &m_pT;
+ }
+ T * operator->()
+ {
+ SPDBG_ASSERT(m_pT != NULL);
+ return m_pT;
+ }
+ operator T *()
+ {
+ return m_pT;
+ }
+ bool operator!() const
+ {
+ return (m_pT == NULL);
+ }
+};
+
+/**** Helper function used to create a new phrase object from an array of
+ test words. Each word in the string is converted to a phrase element.
+ This is useful to create a phrase to pass to the EmulateRecognition method.
+ The method can convert standard words as well as words with the
+ "/display_text/lexical_form/pronounciation;" word format.
+ You can also specify the DisplayAttributes for each element if desired.
+ If prgDispAttribs is NULL then the DisplayAttribs for each element default to
+ SPAF_ONE_TRAILING_SPACE. ****/
+inline HRESULT CreatePhraseFromWordArray(const WCHAR ** ppWords, ULONG cWords,
+ SPDISPLYATTRIBUTES * prgDispAttribs,
+ ISpPhraseBuilder **ppResultPhrase,
+ LANGID LangId = 0,
+ CComPtr<ISpPhoneConverter> cpPhoneConv = NULL)
+{
+ SPDBG_FUNC("CreatePhraseFromWordArray");
+ HRESULT hr = S_OK;
+
+ if ( cWords == 0 || ppWords == NULL || ::IsBadReadPtr(ppWords, sizeof(*ppWords) * cWords ) )
+ {
+ return E_INVALIDARG;
+ }
+
+ if ( prgDispAttribs != NULL && ::IsBadReadPtr(prgDispAttribs, sizeof(*prgDispAttribs) * cWords ) )
+ {
+ return E_INVALIDARG;
+ }
+
+ size_t cTotalChars = 0;
+ ULONG i;
+ WCHAR** pStringPtrArray = (WCHAR**)::CoTaskMemAlloc( cWords * sizeof(WCHAR *));
+ if ( !pStringPtrArray )
+ {
+ return E_OUTOFMEMORY;
+ }
+ for (i = 0; i < cWords; i++)
+ {
+ cTotalChars += wcslen(ppWords[i])+1;
+ }
+
+ CSpDynamicString dsText(cTotalChars);
+ if(dsText.m_psz == NULL)
+ {
+ ::CoTaskMemFree(pStringPtrArray);
+ return E_OUTOFMEMORY;
+ }
+ CSpDynamicString dsPhoneId(cTotalChars);
+ if(dsPhoneId.m_psz == NULL)
+ {
+ ::CoTaskMemFree(pStringPtrArray);
+ return E_OUTOFMEMORY;
+ }
+ SPPHONEID* pphoneId = (SPPHONEID*)dsPhoneId.m_psz;
+
+ SPPHRASE Phrase;
+ memset(&Phrase, 0, sizeof(Phrase));
+ Phrase.cbSize = sizeof(Phrase);
+
+ if(LangId == 0)
+ {
+ LangId = SpGetUserDefaultUILanguage();
+ }
+
+ if(cpPhoneConv == NULL)
+ {
+ hr = SpCreatePhoneConverter(LangId, NULL, NULL, &cpPhoneConv);
+ if(FAILED(hr))
+ {
+ ::CoTaskMemFree(pStringPtrArray);
+ return hr;
+ }
+ }
+
+ SPPHRASEELEMENT *pPhraseElement = new SPPHRASEELEMENT[cWords];
+ if(pPhraseElement == NULL)
+ {
+ ::CoTaskMemFree(pStringPtrArray);
+ return E_OUTOFMEMORY;
+ }
+ memset(pPhraseElement, 0, sizeof(SPPHRASEELEMENT) * cWords); // !!!
+
+ WCHAR * pText = dsText;
+ for (i = 0; SUCCEEDED(hr) && i < cWords; i++)
+ {
+ WCHAR *p = pText;
+ pStringPtrArray[i] = pText;
+ wcscpy( pText, ppWords[i] );
+ pText += wcslen( p ) + 1;
+
+ if (*p == L'/')
+ {
+ //This is a compound word
+ WCHAR* pszFirstPart = ++p;
+ WCHAR* pszSecondPart = NULL;
+ WCHAR* pszThirdPart = NULL;
+
+ while (*p && *p != L'/')
+ {
+ p++;
+ }
+ if (*p == L'/')
+ {
+ //It means we stop at the second '/'
+ *p = L'\0';
+ pszSecondPart = ++p;
+ while (*p && *p != L'/')
+ {
+ p++;
+ }
+ if (*p == L'/')
+ {
+ //It means we stop at the third '/'
+ *p = L'\0';
+ pszThirdPart = ++p;
+ }
+ }
+
+ pPhraseElement[i].pszDisplayText = pszFirstPart;
+ pPhraseElement[i].pszLexicalForm = pszSecondPart ? pszSecondPart : pszFirstPart;
+
+ if ( pszThirdPart)
+ {
+ hr = cpPhoneConv->PhoneToId(pszThirdPart, pphoneId);
+ if (SUCCEEDED(hr))
+ {
+ pPhraseElement[i].pszPronunciation = pphoneId;
+ pphoneId += wcslen( (wchar_t*)pphoneId ) + 1;
+ }
+ }
+ }
+ else
+ {
+ //It is the simple format, only have one form, use it for everything.
+ pPhraseElement[i].pszDisplayText = NULL;
+ pPhraseElement[i].pszLexicalForm = p;
+ pPhraseElement[i].pszPronunciation = NULL;
+ }
+
+ pPhraseElement[i].bDisplayAttributes = (BYTE)(prgDispAttribs ? prgDispAttribs[i] : SPAF_ONE_TRAILING_SPACE);
+ pPhraseElement[i].RequiredConfidence = SP_NORMAL_CONFIDENCE;
+ pPhraseElement[i].ActualConfidence = SP_NORMAL_CONFIDENCE;
+ }
+
+ Phrase.Rule.ulCountOfElements = cWords;
+ Phrase.pElements = pPhraseElement;
+ Phrase.LangID = LangId;
+
+ CComPtr<ISpPhraseBuilder> cpPhrase;
+ if (SUCCEEDED(hr))
+ {
+ hr = cpPhrase.CoCreateInstance(CLSID_SpPhraseBuilder);
+ }
+
+ if (SUCCEEDED(hr))
+ {
+ hr = cpPhrase->InitFromPhrase(&Phrase);
+ }
+ if (SUCCEEDED(hr))
+ {
+ *ppResultPhrase = cpPhrase.Detach();
+ }
+
+ delete [] pPhraseElement;
+ ::CoTaskMemFree(pStringPtrArray);
+
+ return hr;
+}
+
+/**** Helper function used to create a new phrase object from a
+ test string. Each word in the string is converted to a phrase element.
+ This is useful to create a phrase to pass to the EmulateRecognition method.
+ The method can convert standard words as well as words with the
+ "/display_text/lexical_form/pronounciation;" word format ****/
+inline HRESULT CreatePhraseFromText(const WCHAR *pszOriginalText,
+ ISpPhraseBuilder **ppResultPhrase,
+ LANGID LangId = 0,
+ CComPtr<ISpPhoneConverter> cpPhoneConv = NULL)
+{
+ SPDBG_FUNC("CreatePhraseFromText");
+ HRESULT hr = S_OK;
+
+ //We first trim the input text
+ CSpDynamicString dsText(pszOriginalText);
+ if(dsText.m_psz == NULL)
+ {
+ return E_OUTOFMEMORY;
+ }
+ dsText.TrimBoth();
+
+ ULONG cWords = 0;
+ BOOL fInCompoundword = FALSE;
+
+ // Set first array pointer (if *p).
+ WCHAR *p = dsText;
+ while (*p)
+ {
+ if( iswspace(*p) && !fInCompoundword)
+ {
+ cWords++;
+ *p++ = L'\0';
+ while (*p && iswspace(*p))
+ {
+ *p++ = L'\0';
+ }
+ // Add new array pointer. Use vector.
+ }
+ else if (*p == L'/' && !fInCompoundword)
+ {
+ fInCompoundword = TRUE;
+ }
+ else if (*p == L';' && fInCompoundword)
+ {
+ fInCompoundword = FALSE;
+ *p++ = L'\0';
+ // Add new array element.
+ }
+ else
+ {
+ p++;
+ }
+ }
+
+ cWords++;
+
+ WCHAR** pStringPtrArray = (WCHAR**)::CoTaskMemAlloc( cWords * sizeof(WCHAR *));
+ if ( !pStringPtrArray )
+ {
+ hr = E_OUTOFMEMORY;
+ }
+
+ if ( SUCCEEDED( hr ) )
+ {
+ p = dsText;
+ for (ULONG i=0; i<cWords; i++)
+ {
+ pStringPtrArray[i] = p;
+ p += wcslen(p)+1;
+ }
+
+ hr = CreatePhraseFromWordArray((const WCHAR **)pStringPtrArray, cWords, NULL, ppResultPhrase, LangId, cpPhoneConv);
+
+ ::CoTaskMemFree(pStringPtrArray);
+ }
+ return hr;
+}
+
+#endif /* This must be the last line in the file */
diff --git a/utils/sapi51/include/spuihelp.h b/utils/sapi51/include/spuihelp.h
new file mode 100644
index 0000000..ec8d16f
--- /dev/null
+++ b/utils/sapi51/include/spuihelp.h
@@ -0,0 +1,253 @@
+/*******************************************************************************
+* SPUIHelp.h *
+*------------*
+* Description:
+* This is the header file for user-interface helper functions. Note that
+* unlike SpHelper.H, this file requires the use of ATL.
+*-------------------------------------------------------------------------------
+* Copyright (c) Microsoft Corporation. All rights reserved.
+*******************************************************************************/
+
+#ifndef SPUIHelp_h
+#define SPUIHelp_h
+
+#ifndef __sapi_h__
+#include <sapi.h>
+#endif
+
+#ifndef SPError_h
+#include <SPError.h>
+#endif
+
+#ifndef SPDebug_h
+#include <SPDebug.h>
+#endif
+
+#ifndef SPHelper_h
+#include <SPHelper.h>
+#endif
+
+#ifndef __ATLBASE_H__
+#include <ATLBASE.h>
+#endif
+
+#ifndef __ATLCONV_H__
+#include <ATLCONV.H>
+#endif
+
+/****************************************************************************
+*
+*
+*
+********************************************************************* RAL ***/
+
+//
+// Dont call this function directly. Use SpInitTokenComboBox or SpInitTokenListBox.
+//
+inline HRESULT SpInitTokenList(UINT MsgAddString, UINT MsgSetItemData, UINT MsgSetCurSel,
+ HWND hwnd, const WCHAR * pszCatName,
+ const WCHAR * pszRequiredAttrib, const WCHAR * pszOptionalAttrib)
+{
+ HRESULT hr;
+ ISpObjectToken * pToken; // NOTE: Not a CComPtr! Be Careful.
+ CComPtr<IEnumSpObjectTokens> cpEnum;
+ hr = SpEnumTokens(pszCatName, pszRequiredAttrib, pszOptionalAttrib, &cpEnum);
+ if (hr == S_OK)
+ {
+ bool fSetDefault = false;
+ while (cpEnum->Next(1, &pToken, NULL) == S_OK)
+ {
+ CSpDynamicString dstrDesc;
+ hr = SpGetDescription(pToken, &dstrDesc);
+ if (SUCCEEDED(hr))
+ {
+ USES_CONVERSION;
+ LRESULT i = ::SendMessage(hwnd, MsgAddString, 0, (LPARAM)W2T(dstrDesc));
+ if (i == CB_ERR || i == CB_ERRSPACE) // Note: CB_ and LB_ errors are identical values...
+ {
+ hr = E_OUTOFMEMORY;
+ }
+ else
+ {
+ ::SendMessage(hwnd, MsgSetItemData, i, (LPARAM)pToken);
+ if (!fSetDefault)
+ {
+ ::SendMessage(hwnd, MsgSetCurSel, i, 0);
+ fSetDefault = true;
+ }
+ }
+ }
+ if (FAILED(hr))
+ {
+ pToken->Release();
+ }
+ }
+ }
+ else
+ {
+ hr = SPERR_NO_MORE_ITEMS;
+ }
+ return hr;
+}
+
+inline HRESULT SpInitTokenComboBox(HWND hwnd, const WCHAR * pszCatName,
+ const WCHAR * pszRequiredAttrib = NULL, const WCHAR * pszOptionalAttrib = NULL)
+{
+ return SpInitTokenList(CB_ADDSTRING, CB_SETITEMDATA, CB_SETCURSEL, hwnd, pszCatName, pszRequiredAttrib, pszOptionalAttrib);
+}
+
+inline HRESULT SpInitTokenListBox(HWND hwnd, const WCHAR * pszCatName,
+ const WCHAR * pszRequiredAttrib = NULL, const WCHAR * pszOptionalAttrib = NULL)
+{
+ return SpInitTokenList(LB_ADDSTRING, LB_SETITEMDATA, LB_SETCURSEL, hwnd, pszCatName, pszRequiredAttrib, pszOptionalAttrib);
+}
+
+//
+// Dont call this function directly. Use SpDestoyTokenComboBox or SpDestroyTokenListBox.
+//
+inline void SpDestroyTokenList(UINT MsgGetCount, UINT MsgGetItemData, HWND hwnd)
+{
+ LRESULT c = ::SendMessage(hwnd, MsgGetCount, 0, 0);
+ for (LRESULT i = 0; i < c; i++)
+ {
+ IUnknown * pUnkObj = (IUnknown *)::SendMessage(hwnd, MsgGetItemData, i, 0);
+ if (pUnkObj)
+ {
+ pUnkObj->Release();
+ }
+ }
+}
+
+inline void SpDestroyTokenComboBox(HWND hwnd)
+{
+ SpDestroyTokenList(CB_GETCOUNT, CB_GETITEMDATA, hwnd);
+}
+
+inline void SpDestroyTokenListBox(HWND hwnd)
+{
+ SpDestroyTokenList(LB_GETCOUNT, LB_GETITEMDATA, hwnd);
+}
+
+
+inline ISpObjectToken * SpGetComboBoxToken(HWND hwnd, WPARAM Index)
+{
+ return (ISpObjectToken *)::SendMessage(hwnd, CB_GETITEMDATA, Index, 0);
+}
+
+inline ISpObjectToken * SpGetListBoxToken(HWND hwnd, WPARAM Index)
+{
+ return (ISpObjectToken *)::SendMessage(hwnd, LB_GETITEMDATA, Index, 0);
+}
+
+inline ISpObjectToken * SpGetCurSelComboBoxToken(HWND hwnd)
+{
+ LRESULT i = ::SendMessage(hwnd, CB_GETCURSEL, 0, 0);
+ return (i == CB_ERR) ? NULL : SpGetComboBoxToken(hwnd, i);
+}
+
+inline ISpObjectToken * SpGetCurSelListBoxToken(HWND hwnd)
+{
+ LRESULT i = ::SendMessage(hwnd, LB_GETCURSEL, 0, 0);
+ return (i == LB_ERR) ? NULL : SpGetListBoxToken(hwnd, i);
+}
+
+//
+// Don't call this directly. Use SpUpdateCurSelComboBoxToken or SpUpdateCurSelListBoxToken
+//
+inline HRESULT SpUpdateCurSelToken(UINT MsgDelString, UINT MsgInsertString, UINT MsgGetItemData, UINT MsgSetItemData, UINT MsgGetCurSel, UINT MsgSetCurSel,
+ HWND hwnd)
+{
+ HRESULT hr = S_OK;
+ LRESULT i = ::SendMessage(hwnd, MsgGetCurSel, 0, 0);
+ if (i != CB_ERR)
+ {
+ ISpObjectToken * pToken = (ISpObjectToken *)::SendMessage(hwnd, MsgGetItemData, i, 0);
+ CSpDynamicString dstrDesc;
+ hr = SpGetDescription(pToken, &dstrDesc);
+ if (SUCCEEDED(hr))
+ {
+ USES_CONVERSION;
+ ::SendMessage(hwnd, MsgDelString, i, 0);
+ ::SendMessage(hwnd, MsgInsertString, i, (LPARAM)W2T(dstrDesc));
+ ::SendMessage(hwnd, MsgSetItemData, i, (LPARAM)pToken);
+ ::SendMessage(hwnd, MsgSetCurSel, i, 0);
+ }
+ }
+ return hr;
+}
+
+inline HRESULT SpUpdateCurSelComboBoxToken(HWND hwnd)
+{
+ return SpUpdateCurSelToken(CB_DELETESTRING, CB_INSERTSTRING, CB_GETITEMDATA, CB_SETITEMDATA, CB_GETCURSEL, CB_SETCURSEL, hwnd);
+}
+
+inline HRESULT SpUpdateCurSelListBoxToken(HWND hwnd)
+{
+ return SpUpdateCurSelToken(LB_DELETESTRING, LB_INSERTSTRING, LB_GETITEMDATA, LB_SETITEMDATA, LB_GETCURSEL, LB_SETCURSEL, hwnd);
+}
+
+inline HRESULT SpAddTokenToList(UINT MsgAddString, UINT MsgSetItemData, UINT MsgSetCurSel, HWND hwnd, ISpObjectToken * pToken)
+{
+ CSpDynamicString dstrDesc;
+ HRESULT hr = SpGetDescription(pToken, &dstrDesc);
+ if (SUCCEEDED(hr))
+ {
+ USES_CONVERSION;
+ LRESULT i = ::SendMessage(hwnd, MsgAddString, 0, (LPARAM)W2T(dstrDesc));
+ if (i == CB_ERR || i == CB_ERRSPACE) // Note: CB_ and LB_ errors are identical values...
+ {
+ hr = E_OUTOFMEMORY;
+ }
+ else
+ {
+ ::SendMessage(hwnd, MsgSetItemData, i, (LPARAM)pToken);
+ ::SendMessage(hwnd, MsgSetCurSel, i, 0);
+ pToken->AddRef();
+ }
+ }
+ return hr;
+}
+
+inline HRESULT SpAddTokenToComboBox(HWND hwnd, ISpObjectToken * pToken)
+{
+ return SpAddTokenToList(CB_ADDSTRING, CB_SETITEMDATA, CB_SETCURSEL, hwnd, pToken);
+}
+
+inline HRESULT SpAddTokenToListBox(HWND hwnd, ISpObjectToken * pToken)
+{
+ return SpAddTokenToList(LB_ADDSTRING, LB_SETITEMDATA, LB_SETCURSEL, hwnd, pToken);
+}
+
+
+inline HRESULT SpDeleteCurSelToken(UINT MsgGetCurSel, UINT MsgSetCurSel, UINT MsgGetItemData, UINT MsgDeleteString, HWND hwnd)
+{
+ HRESULT hr = S_OK;
+ LRESULT i = ::SendMessage(hwnd, MsgGetCurSel, 0, 0);
+ if (i == CB_ERR)
+ {
+ hr = S_FALSE;
+ }
+ else
+ {
+ ISpObjectToken * pToken = (ISpObjectToken *)::SendMessage(hwnd, MsgGetItemData, i, 0);
+ if (pToken)
+ {
+ pToken->Release();
+ }
+ ::SendMessage(hwnd, MsgDeleteString, i, 0);
+ ::SendMessage(hwnd, MsgSetCurSel, i, 0);
+ }
+ return hr;
+}
+
+inline HRESULT SpDeleteCurSelComboBoxToken(HWND hwnd)
+{
+ return SpDeleteCurSelToken(CB_GETCURSEL, CB_SETCURSEL, CB_GETITEMDATA, CB_DELETESTRING, hwnd);
+}
+
+inline HRESULT SpDeleteCurSelListBoxToken(HWND hwnd)
+{
+ return SpDeleteCurSelToken(LB_GETCURSEL, CB_SETCURSEL, LB_GETITEMDATA, LB_DELETESTRING, hwnd);
+}
+
+#endif /* #ifndef SPUIHelp_h -- This must be the last line in the file */