//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0021
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.Globalization.idl";
import "Windows.Phone.idl";
import "Windows.Storage.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        interface IAsyncAction;

        interface IClosable;

        typedef struct TimeSpan TimeSpan;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Globalization
    {
        runtimeclass Language;
    }
}
namespace Windows
{
    namespace Phone
    {
        apicontract PhoneContract;
    }
}
namespace Windows
{
    namespace Storage
    {
        runtimeclass StorageFile;
    }
}
namespace Windows
{
    namespace Media
    {
        namespace SpeechRecognition
        {
            typedef enum SpeechContinuousRecognitionMode SpeechContinuousRecognitionMode;

            typedef enum SpeechRecognitionAudioProblem SpeechRecognitionAudioProblem;

            typedef enum SpeechRecognitionConfidence SpeechRecognitionConfidence;

            typedef enum SpeechRecognitionConstraintProbability SpeechRecognitionConstraintProbability;

            typedef enum SpeechRecognitionConstraintType SpeechRecognitionConstraintType;

            typedef enum SpeechRecognitionResultStatus SpeechRecognitionResultStatus;

            typedef enum SpeechRecognitionScenario SpeechRecognitionScenario;

            typedef enum SpeechRecognizerState SpeechRecognizerState;

            interface ISpeechContinuousRecognitionCompletedEventArgs;

            interface ISpeechContinuousRecognitionResultGeneratedEventArgs;

            interface ISpeechContinuousRecognitionSession;

            interface ISpeechRecognitionCompilationResult;

            interface ISpeechRecognitionConstraint;

            interface ISpeechRecognitionGrammarFileConstraint;

            interface ISpeechRecognitionGrammarFileConstraintFactory;

            interface ISpeechRecognitionHypothesis;

            interface ISpeechRecognitionHypothesisGeneratedEventArgs;

            interface ISpeechRecognitionListConstraint;

            interface ISpeechRecognitionListConstraintFactory;

            interface ISpeechRecognitionQualityDegradingEventArgs;

            interface ISpeechRecognitionResult;

            interface ISpeechRecognitionResult2;

            interface ISpeechRecognitionSemanticInterpretation;

            interface ISpeechRecognitionTopicConstraint;

            interface ISpeechRecognitionTopicConstraintFactory;

            interface ISpeechRecognitionVoiceCommandDefinitionConstraint;

            interface ISpeechRecognizer;

            interface ISpeechRecognizer2;

            interface ISpeechRecognizerFactory;

            interface ISpeechRecognizerStateChangedEventArgs;

            interface ISpeechRecognizerStatics;

            interface ISpeechRecognizerStatics2;

            interface ISpeechRecognizerTimeouts;

            interface ISpeechRecognizerUIOptions;

            interface IVoiceCommandManager;

            interface IVoiceCommandSet;

            runtimeclass SpeechContinuousRecognitionCompletedEventArgs;

            runtimeclass SpeechContinuousRecognitionResultGeneratedEventArgs;

            runtimeclass SpeechContinuousRecognitionSession;

            runtimeclass SpeechRecognitionCompilationResult;

            runtimeclass SpeechRecognitionGrammarFileConstraint;

            runtimeclass SpeechRecognitionHypothesis;

            runtimeclass SpeechRecognitionHypothesisGeneratedEventArgs;

            runtimeclass SpeechRecognitionListConstraint;

            runtimeclass SpeechRecognitionQualityDegradingEventArgs;

            runtimeclass SpeechRecognitionResult;

            runtimeclass SpeechRecognitionSemanticInterpretation;

            runtimeclass SpeechRecognitionTopicConstraint;

            runtimeclass SpeechRecognitionVoiceCommandDefinitionConstraint;

            runtimeclass SpeechRecognizer;

            runtimeclass SpeechRecognizerStateChangedEventArgs;

            runtimeclass SpeechRecognizerTimeouts;

            runtimeclass SpeechRecognizerUIOptions;

            runtimeclass VoiceCommandManager;

            runtimeclass VoiceCommandSet;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Media
    {
        namespace SpeechRecognition
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Media.SpeechRecognition.VoiceCommandSet*>*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.SpeechRecognition.ISpeechRecognitionConstraint*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.SpeechRecognition.SpeechRecognitionResult*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Media.SpeechRecognition.VoiceCommandSet*>*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.SpeechRecognition.ISpeechRecognitionConstraint*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.SpeechRecognition.SpeechRecognitionResult*>;

                interface Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Media.SpeechRecognition.VoiceCommandSet*>;

                interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.Media.SpeechRecognition.VoiceCommandSet*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.SpeechRecognition.ISpeechRecognitionConstraint*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.SpeechRecognition.SpeechRecognitionResult*>;

                interface Windows.Foundation.Collections.IVector<Windows.Media.SpeechRecognition.ISpeechRecognitionConstraint*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Media.SpeechRecognition.SpeechRecognitionCompilationResult*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Media.SpeechRecognition.SpeechRecognitionResult*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.SpeechRecognition.SpeechContinuousRecognitionSession*, Windows.Media.SpeechRecognition.SpeechContinuousRecognitionCompletedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.SpeechRecognition.SpeechContinuousRecognitionSession*, Windows.Media.SpeechRecognition.SpeechContinuousRecognitionResultGeneratedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.SpeechRecognition.SpeechRecognizer*, Windows.Media.SpeechRecognition.SpeechRecognitionHypothesisGeneratedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.SpeechRecognition.SpeechRecognizer*, Windows.Media.SpeechRecognition.SpeechRecognitionQualityDegradingEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.SpeechRecognition.SpeechRecognizer*, Windows.Media.SpeechRecognition.SpeechRecognizerStateChangedEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Media
    {
        namespace SpeechRecognition
        {
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum SpeechContinuousRecognitionMode
            {
                Default            = 0,
                PauseOnRecognition = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum SpeechRecognitionAudioProblem
            {
                None     = 0,
                TooNoisy = 1,
                NoSignal = 2,
                TooLoud  = 3,
                TooQuiet = 4,
                TooFast  = 5,
                TooSlow  = 6
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum SpeechRecognitionConfidence
            {
                High     = 0,
                Medium   = 1,
                Low      = 2,
                Rejected = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum SpeechRecognitionConstraintProbability
            {
                Default = 0,
                Min     = 1,
                Max     = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum SpeechRecognitionConstraintType
            {
                Topic                  = 0,
                List                   = 1,
                Grammar                = 2,
                VoiceCommandDefinition = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum SpeechRecognitionResultStatus
            {
                Success                   = 0,
                TopicLanguageNotSupported = 1,
                GrammarLanguageMismatch   = 2,
                GrammarCompilationFailure = 3,
                AudioQualityFailure       = 4,
                UserCanceled              = 5,
                Unknown                   = 6,
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                TimeoutExceeded           = 7,
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                PauseLimitExceeded        = 8,
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                NetworkFailure            = 9,
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                MicrophoneUnavailable     = 10
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum SpeechRecognitionScenario
            {
                WebSearch   = 0,
                Dictation   = 1,
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                FormFilling = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum SpeechRecognizerState
            {
                Idle           = 0,
                Capturing      = 1,
                Processing     = 2,
                SoundStarted   = 3,
                SoundEnded     = 4,
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                SpeechDetected = 5,
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                Paused         = 6
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechContinuousRecognitionCompletedEventArgs)]
            [uuid(E3D069BB-E30C-5E18-424B-7FBE81F8FBD0)]
            interface ISpeechContinuousRecognitionCompletedEventArgs : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionResultStatus* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechContinuousRecognitionResultGeneratedEventArgs)]
            [uuid(19091E1E-6E7E-5A46-40FB-76594F786504)]
            interface ISpeechContinuousRecognitionResultGeneratedEventArgs : IInspectable
            {
                [propget] HRESULT Result([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionResult** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechContinuousRecognitionSession)]
            [uuid(6A213C04-6614-49F8-99A2-B5E9B3A085C8)]
            interface ISpeechContinuousRecognitionSession : IInspectable
            {
                [propget] HRESULT AutoStopSilenceTimeout([out] [retval] Windows.Foundation.TimeSpan* value);
                [propput] HRESULT AutoStopSilenceTimeout([in] Windows.Foundation.TimeSpan value);
                [overload("StartAsync")] HRESULT StartAsync([out] [retval] Windows.Foundation.IAsyncAction** value);
                [overload("StartAsync")] HRESULT StartWithModeAsync([in] Windows.Media.SpeechRecognition.SpeechContinuousRecognitionMode mode, [out] [retval] Windows.Foundation.IAsyncAction** value);
                HRESULT StopAsync([out] [retval] Windows.Foundation.IAsyncAction** value);
                HRESULT CancelAsync([out] [retval] Windows.Foundation.IAsyncAction** value);
                HRESULT PauseAsync([out] [retval] Windows.Foundation.IAsyncAction** value);
                HRESULT Resume();
                [eventadd] HRESULT Completed([in] Windows.Foundation.TypedEventHandler<Windows.Media.SpeechRecognition.SpeechContinuousRecognitionSession*, Windows.Media.SpeechRecognition.SpeechContinuousRecognitionCompletedEventArgs*>* value, [out] [retval] EventRegistrationToken* returnValue);
                [eventremove] HRESULT Completed([in] EventRegistrationToken value);
                [eventadd] HRESULT ResultGenerated([in] Windows.Foundation.TypedEventHandler<Windows.Media.SpeechRecognition.SpeechContinuousRecognitionSession*, Windows.Media.SpeechRecognition.SpeechContinuousRecognitionResultGeneratedEventArgs*>* value, [out] [retval] EventRegistrationToken* returnValue);
                [eventremove] HRESULT ResultGenerated([in] EventRegistrationToken value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognitionCompilationResult)]
            [uuid(407E6C5D-6AC7-4DA4-9CC1-2FCE32CF7489)]
            interface ISpeechRecognitionCompilationResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionResultStatus* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(79AC1628-4D68-43C4-8911-40DC4101B55B)]
            interface ISpeechRecognitionConstraint : IInspectable
            {
                [propget] HRESULT IsEnabled([out] [retval] boolean* value);
                [propput] HRESULT IsEnabled([in] boolean value);
                [propget] HRESULT Tag([out] [retval] HSTRING* value);
                [propput] HRESULT Tag([in] HSTRING value);
                [propget] HRESULT Type([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionConstraintType* value);
                [propget] HRESULT Probability([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionConstraintProbability* value);
                [propput] HRESULT Probability([in] Windows.Media.SpeechRecognition.SpeechRecognitionConstraintProbability value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognitionGrammarFileConstraint)]
            [uuid(B5031A8F-85CA-4FA4-B11A-474FC41B3835)]
            interface ISpeechRecognitionGrammarFileConstraint : IInspectable
                requires
                    Windows.Media.SpeechRecognition.ISpeechRecognitionConstraint
            {
                [propget] HRESULT GrammarFile([out] [retval] Windows.Storage.StorageFile** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognitionGrammarFileConstraint)]
            [uuid(3DA770EB-C479-4C27-9F19-89974EF392D1)]
            interface ISpeechRecognitionGrammarFileConstraintFactory : IInspectable
            {
                HRESULT Create([in] Windows.Storage.StorageFile* file, [out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionGrammarFileConstraint** constraint);
                HRESULT CreateWithTag([in] Windows.Storage.StorageFile* file, [in] HSTRING tag, [out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionGrammarFileConstraint** constraint);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognitionHypothesis)]
            [uuid(7A7B25B0-99C5-4F7D-BF84-10AA1302B634)]
            interface ISpeechRecognitionHypothesis : IInspectable
            {
                [propget] HRESULT Text([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognitionHypothesisGeneratedEventArgs)]
            [uuid(55161A7A-8023-5866-411D-1213BB271476)]
            interface ISpeechRecognitionHypothesisGeneratedEventArgs : IInspectable
            {
                [propget] HRESULT Hypothesis([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionHypothesis** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognitionListConstraint)]
            [uuid(09C487E9-E4AD-4526-81F2-4946FB481D98)]
            interface ISpeechRecognitionListConstraint : IInspectable
                requires
                    Windows.Media.SpeechRecognition.ISpeechRecognitionConstraint
            {
                [propget] HRESULT Commands([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognitionListConstraint)]
            [uuid(40F3CDC7-562A-426A-9F3B-3B4E282BE1D5)]
            interface ISpeechRecognitionListConstraintFactory : IInspectable
            {
                HRESULT Create([in] Windows.Foundation.Collections.IIterable<HSTRING>* commands, [out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionListConstraint** constraint);
                HRESULT CreateWithTag([in] Windows.Foundation.Collections.IIterable<HSTRING>* commands, [in] HSTRING tag, [out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionListConstraint** constraint);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognitionQualityDegradingEventArgs)]
            [uuid(4FE24105-8C3A-4C7E-8D0A-5BD4F5B14AD8)]
            interface ISpeechRecognitionQualityDegradingEventArgs : IInspectable
            {
                [propget] HRESULT Problem([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionAudioProblem* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognitionResult)]
            [uuid(4E303157-034E-4652-857E-D0454CC4BEEC)]
            interface ISpeechRecognitionResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionResultStatus* value);
                [propget] HRESULT Text([out] [retval] HSTRING* value);
                [propget] HRESULT Confidence([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionConfidence* value);
                [propget] HRESULT SemanticInterpretation([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionSemanticInterpretation** value);
                HRESULT GetAlternates([in] UINT32 maxAlternates, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.SpeechRecognition.SpeechRecognitionResult*>** alternates);
                [propget] HRESULT Constraint([out] [retval] Windows.Media.SpeechRecognition.ISpeechRecognitionConstraint** value);
                [propget] HRESULT RulePath([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                [propget] HRESULT RawConfidence([out] [retval] DOUBLE* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognitionResult)]
            [uuid(AF7ED1BA-451B-4166-A0C1-1FFE84032D03)]
            interface ISpeechRecognitionResult2 : IInspectable
            {
                [propget] HRESULT PhraseStartTime([out] [retval] Windows.Foundation.DateTime* value);
                [propget] HRESULT PhraseDuration([out] [retval] Windows.Foundation.TimeSpan* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognitionSemanticInterpretation)]
            [uuid(AAE1DA9B-7E32-4C1F-89FE-0C65F486F52E)]
            interface ISpeechRecognitionSemanticInterpretation : IInspectable
            {
                [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.IMapView<HSTRING, Windows.Foundation.Collections.IVectorView<HSTRING>*>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognitionTopicConstraint)]
            [uuid(BF6FDF19-825D-4E69-A681-36E48CF1C93E)]
            interface ISpeechRecognitionTopicConstraint : IInspectable
                requires
                    Windows.Media.SpeechRecognition.ISpeechRecognitionConstraint
            {
                [propget] HRESULT Scenario([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionScenario* value);
                [propget] HRESULT TopicHint([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognitionTopicConstraint)]
            [uuid(6E6863DF-EC05-47D7-A5DF-56A3431E58D2)]
            interface ISpeechRecognitionTopicConstraintFactory : IInspectable
            {
                HRESULT Create([in] Windows.Media.SpeechRecognition.SpeechRecognitionScenario scenario, [in] HSTRING topicHint, [out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionTopicConstraint** constraint);
                HRESULT CreateWithTag([in] Windows.Media.SpeechRecognition.SpeechRecognitionScenario scenario, [in] HSTRING topicHint, [in] HSTRING tag, [out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionTopicConstraint** constraint);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognitionVoiceCommandDefinitionConstraint)]
            [uuid(F2791C2B-1EF4-4AE7-9D77-B6FF10B8A3C2)]
            interface ISpeechRecognitionVoiceCommandDefinitionConstraint : IInspectable
                requires
                    Windows.Media.SpeechRecognition.ISpeechRecognitionConstraint
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognizer)]
            [uuid(0BC3C9CB-C26A-40F2-AEB5-8096B2E48073)]
            interface ISpeechRecognizer : IInspectable
                requires
                    Windows.Foundation.IClosable
            {
                [propget] HRESULT CurrentLanguage([out] [retval] Windows.Globalization.Language** language);
                [propget] HRESULT Constraints([out] [retval] Windows.Foundation.Collections.IVector<Windows.Media.SpeechRecognition.ISpeechRecognitionConstraint*>** value);
                [propget] HRESULT Timeouts([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognizerTimeouts** value);
                [propget] HRESULT UIOptions([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognizerUIOptions** value);
                HRESULT CompileConstraintsAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.SpeechRecognition.SpeechRecognitionCompilationResult*>** asyncOperation);
                HRESULT RecognizeAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.SpeechRecognition.SpeechRecognitionResult*>** asyncOperation);
                HRESULT RecognizeWithUIAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.SpeechRecognition.SpeechRecognitionResult*>** asyncOperation);
                [eventadd] HRESULT RecognitionQualityDegrading([in] Windows.Foundation.TypedEventHandler<Windows.Media.SpeechRecognition.SpeechRecognizer*, Windows.Media.SpeechRecognition.SpeechRecognitionQualityDegradingEventArgs*>* speechRecognitionQualityDegradingHandler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT RecognitionQualityDegrading([in] EventRegistrationToken cookie);
                [eventadd] HRESULT StateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.SpeechRecognition.SpeechRecognizer*, Windows.Media.SpeechRecognition.SpeechRecognizerStateChangedEventArgs*>* stateChangedHandler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT StateChanged([in] EventRegistrationToken cookie);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognizer)]
            [uuid(63C9BAF1-91E3-4EA4-86A1-7C3867D084A6)]
            interface ISpeechRecognizer2 : IInspectable
            {
                [propget] HRESULT ContinuousRecognitionSession([out] [retval] Windows.Media.SpeechRecognition.SpeechContinuousRecognitionSession** value);
                [propget] HRESULT State([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognizerState* value);
                HRESULT StopRecognitionAsync([out] [retval] Windows.Foundation.IAsyncAction** value);
                [eventadd] HRESULT HypothesisGenerated([in] Windows.Foundation.TypedEventHandler<Windows.Media.SpeechRecognition.SpeechRecognizer*, Windows.Media.SpeechRecognition.SpeechRecognitionHypothesisGeneratedEventArgs*>* value, [out] [retval] EventRegistrationToken* returnValue);
                [eventremove] HRESULT HypothesisGenerated([in] EventRegistrationToken value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognizer)]
            [uuid(60C488DD-7FB8-4033-AC70-D046F64818E1)]
            interface ISpeechRecognizerFactory : IInspectable
            {
                HRESULT Create([in] Windows.Globalization.Language* language, [out] [retval] Windows.Media.SpeechRecognition.SpeechRecognizer** recognizer);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognizerStateChangedEventArgs)]
            [uuid(563D4F09-BA03-4BAD-AD81-DDC6C4DAB0C3)]
            interface ISpeechRecognizerStateChangedEventArgs : IInspectable
            {
                [propget] HRESULT State([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognizerState* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognizer)]
            [uuid(87A35EAC-A7DC-4B0B-BCC9-24F47C0B7EBF)]
            interface ISpeechRecognizerStatics : IInspectable
            {
                [propget] HRESULT SystemSpeechLanguage([out] [retval] Windows.Globalization.Language** language);
                [propget] HRESULT SupportedTopicLanguages([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Globalization.Language*>** languages);
                [propget] HRESULT SupportedGrammarLanguages([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Globalization.Language*>** languages);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognizer)]
            [uuid(1D1B0D95-7565-4EF9-A2F3-BA15162A96CF)]
            interface ISpeechRecognizerStatics2 : IInspectable
            {
                HRESULT TrySetSystemSpeechLanguageAsync([in] Windows.Globalization.Language* speechLanguage, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognizerTimeouts)]
            [uuid(2EF76FCA-6A3C-4DCA-A153-DF1BC88A79AF)]
            interface ISpeechRecognizerTimeouts : IInspectable
            {
                [propget] HRESULT InitialSilenceTimeout([out] [retval] Windows.Foundation.TimeSpan* value);
                [propput] HRESULT InitialSilenceTimeout([in] Windows.Foundation.TimeSpan value);
                [propget] HRESULT EndSilenceTimeout([out] [retval] Windows.Foundation.TimeSpan* value);
                [propput] HRESULT EndSilenceTimeout([in] Windows.Foundation.TimeSpan value);
                [propget] HRESULT BabbleTimeout([out] [retval] Windows.Foundation.TimeSpan* value);
                [propput] HRESULT BabbleTimeout([in] Windows.Foundation.TimeSpan value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.SpeechRecognizerUIOptions)]
            [uuid(7888D641-B92B-44BA-A25F-D1864630641F)]
            interface ISpeechRecognizerUIOptions : IInspectable
            {
                [propget] HRESULT ExampleText([out] [retval] HSTRING* value);
                [propput] HRESULT ExampleText([in] HSTRING value);
                [propget] HRESULT AudiblePrompt([out] [retval] HSTRING* value);
                [propput] HRESULT AudiblePrompt([in] HSTRING value);
                [propget] HRESULT IsReadBackEnabled([out] [retval] boolean* value);
                [propput] HRESULT IsReadBackEnabled([in] boolean value);
                [propget] HRESULT ShowConfirmation([out] [retval] boolean* value);
                [propput] HRESULT ShowConfirmation([in] boolean value);
            }

            [contract(Windows.Phone.PhoneContract, 1.0)]
            [deprecated("Use Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinitionManager instead of Windows.Media.SpeechRecognition.VoiceComandManager. For more info, see MSDN.", deprecate, Windows.Phone.PhoneContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.VoiceCommandManager)]
            [uuid(AA3A8DD5-B6E7-4EE2-BAA9-DD6BACED0A2B)]
            interface IVoiceCommandManager : IInspectable
            {
                [deprecated("Use Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinitionManager instead of Windows.Media.SpeechRecognition.VoiceComandManager. For more info, see MSDN.", deprecate, Windows.Phone.PhoneContract, 1.0)] HRESULT InstallCommandSetsFromStorageFileAsync([in] Windows.Storage.StorageFile* file, [out] [retval] Windows.Foundation.IAsyncAction** installAction);
                [deprecated("Use Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinitionManager instead of Windows.Media.SpeechRecognition.VoiceComandManager. For more info, see MSDN.", deprecate, Windows.Phone.PhoneContract, 1.0)] [propget] HRESULT InstalledCommandSets([out] [retval] Windows.Foundation.Collections.IMapView<HSTRING, Windows.Media.SpeechRecognition.VoiceCommandSet*>** voiceCommandSets);
            }

            [contract(Windows.Phone.PhoneContract, 1.0)]
            [deprecated("Use Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinition instead of Windows.Media.SpeechRecognition.VoiceComandSet. For more info, see MSDN.", deprecate, Windows.Phone.PhoneContract, 1.0)]
            [exclusiveto(Windows.Media.SpeechRecognition.VoiceCommandSet)]
            [uuid(0BEDDA75-46E6-4B11-A088-5C68632899B5)]
            interface IVoiceCommandSet : IInspectable
            {
                [deprecated("Use Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinition instead of Windows.Media.SpeechRecognition.VoiceComandSet. For more info, see MSDN.", deprecate, Windows.Phone.PhoneContract, 1.0)] [propget] HRESULT Language([out] [retval] HSTRING* value);
                [deprecated("Use Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinition instead of Windows.Media.SpeechRecognition.VoiceComandSet. For more info, see MSDN.", deprecate, Windows.Phone.PhoneContract, 1.0)] [propget] HRESULT Name([out] [retval] HSTRING* value);
                [deprecated("Use Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinition instead of Windows.Media.SpeechRecognition.VoiceComandSet. For more info, see MSDN.", deprecate, Windows.Phone.PhoneContract, 1.0)] HRESULT SetPhraseListAsync([in] HSTRING phraseListName, [in] Windows.Foundation.Collections.IIterable<HSTRING>* phraseList, [out] [retval] Windows.Foundation.IAsyncAction** updateAction);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SpeechContinuousRecognitionCompletedEventArgs
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechContinuousRecognitionCompletedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SpeechContinuousRecognitionResultGeneratedEventArgs
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechContinuousRecognitionResultGeneratedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SpeechContinuousRecognitionSession
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechContinuousRecognitionSession;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass SpeechRecognitionCompilationResult
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechRecognitionCompilationResult;
            }

            [activatable(Windows.Media.SpeechRecognition.ISpeechRecognitionGrammarFileConstraintFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass SpeechRecognitionGrammarFileConstraint
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechRecognitionGrammarFileConstraint;
                interface Windows.Media.SpeechRecognition.ISpeechRecognitionConstraint;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SpeechRecognitionHypothesis
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechRecognitionHypothesis;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SpeechRecognitionHypothesisGeneratedEventArgs
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechRecognitionHypothesisGeneratedEventArgs;
            }

            [activatable(Windows.Media.SpeechRecognition.ISpeechRecognitionListConstraintFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass SpeechRecognitionListConstraint
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechRecognitionListConstraint;
                interface Windows.Media.SpeechRecognition.ISpeechRecognitionConstraint;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass SpeechRecognitionQualityDegradingEventArgs
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechRecognitionQualityDegradingEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass SpeechRecognitionResult
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechRecognitionResult;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.SpeechRecognition.ISpeechRecognitionResult2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass SpeechRecognitionSemanticInterpretation
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechRecognitionSemanticInterpretation;
            }

            [activatable(Windows.Media.SpeechRecognition.ISpeechRecognitionTopicConstraintFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass SpeechRecognitionTopicConstraint
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechRecognitionTopicConstraint;
                interface Windows.Media.SpeechRecognition.ISpeechRecognitionConstraint;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass SpeechRecognitionVoiceCommandDefinitionConstraint
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechRecognitionVoiceCommandDefinitionConstraint;
                interface Windows.Media.SpeechRecognition.ISpeechRecognitionConstraint;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [activatable(Windows.Media.SpeechRecognition.ISpeechRecognizerFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.SpeechRecognition.ISpeechRecognizerStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [static(Windows.Media.SpeechRecognition.ISpeechRecognizerStatics2, Windows.Foundation.UniversalApiContract, 5.0)]
            runtimeclass SpeechRecognizer
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechRecognizer;
                interface Windows.Foundation.IClosable;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.SpeechRecognition.ISpeechRecognizer2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass SpeechRecognizerStateChangedEventArgs
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechRecognizerStateChangedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass SpeechRecognizerTimeouts
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechRecognizerTimeouts;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass SpeechRecognizerUIOptions
            {
                [default] interface Windows.Media.SpeechRecognition.ISpeechRecognizerUIOptions;
            }

            [contract(Windows.Phone.PhoneContract, 1.0)]
            [deprecated("Use Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinitionManager instead of Windows.Media.SpeechRecognition.VoiceComandManager. For more info, see MSDN.", deprecate, Windows.Phone.PhoneContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.SpeechRecognition.IVoiceCommandManager, Windows.Phone.PhoneContract, 1.0)]
            runtimeclass VoiceCommandManager
            {
            }

            [contract(Windows.Phone.PhoneContract, 1.0)]
            [deprecated("Use Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinition instead of Windows.Media.SpeechRecognition.VoiceComandSet. For more info, see MSDN.", deprecate, Windows.Phone.PhoneContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass VoiceCommandSet
            {
                [default] interface Windows.Media.SpeechRecognition.IVoiceCommandSet;
            }
        }
    }
}
