//
// 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.ApplicationModel.AppService.idl";
import "Windows.Globalization.idl";
import "Windows.Media.SpeechRecognition.idl";
import "Windows.Storage.idl";

// Forward Declare
namespace Windows
{
    namespace ApplicationModel
    {
        namespace AppService
        {
            runtimeclass AppServiceTriggerDetails;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Globalization
    {
        runtimeclass Language;
    }
}
namespace Windows
{
    namespace Media
    {
        namespace SpeechRecognition
        {
            runtimeclass SpeechRecognitionResult;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        interface IStorageFile;

        runtimeclass StorageFile;
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace VoiceCommands
        {
            typedef enum VoiceCommandCompletionReason VoiceCommandCompletionReason;

            typedef enum VoiceCommandContentTileType VoiceCommandContentTileType;

            interface IVoiceCommand;

            interface IVoiceCommandCompletedEventArgs;

            interface IVoiceCommandConfirmationResult;

            interface IVoiceCommandContentTile;

            interface IVoiceCommandDefinition;

            interface IVoiceCommandDefinitionManagerStatics;

            interface IVoiceCommandDisambiguationResult;

            interface IVoiceCommandResponse;

            interface IVoiceCommandResponseStatics;

            interface IVoiceCommandServiceConnection;

            interface IVoiceCommandServiceConnectionStatics;

            interface IVoiceCommandUserMessage;

            runtimeclass VoiceCommand;

            runtimeclass VoiceCommandCompletedEventArgs;

            runtimeclass VoiceCommandConfirmationResult;

            runtimeclass VoiceCommandContentTile;

            runtimeclass VoiceCommandDefinition;

            runtimeclass VoiceCommandDefinitionManager;

            runtimeclass VoiceCommandDisambiguationResult;

            runtimeclass VoiceCommandResponse;

            runtimeclass VoiceCommandServiceConnection;

            runtimeclass VoiceCommandUserMessage;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace ApplicationModel
    {
        namespace VoiceCommands
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.VoiceCommands.VoiceCommandContentTile*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinition*>*>;

                interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.VoiceCommands.VoiceCommandContentTile*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinition*>*>;

                interface Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinition*>;

                interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinition*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.VoiceCommands.VoiceCommandContentTile*>;

                interface Windows.Foundation.Collections.IVector<Windows.ApplicationModel.VoiceCommands.VoiceCommandContentTile*>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.VoiceCommands.VoiceCommand*>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.VoiceCommands.VoiceCommandConfirmationResult*>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.VoiceCommands.VoiceCommandDisambiguationResult*>;

                interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.VoiceCommands.VoiceCommandServiceConnection*, Windows.ApplicationModel.VoiceCommands.VoiceCommandCompletedEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace VoiceCommands
        {
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VoiceCommandCompletionReason
            {
                Unknown                = 0,
                CommunicationFailed    = 1,
                ResourceLimitsExceeded = 2,
                Canceled               = 3,
                TimeoutExceeded        = 4,
                AppLaunched            = 5,
                Completed              = 6
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VoiceCommandContentTileType
            {
                TitleOnly                   = 0,
                TitleWithText               = 1,
                TitleWith68x68Icon          = 2,
                TitleWith68x68IconAndText   = 3,
                TitleWith68x92Icon          = 4,
                TitleWith68x92IconAndText   = 5,
                TitleWith280x140Icon        = 6,
                TitleWith280x140IconAndText = 7
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.VoiceCommands.VoiceCommand)]
            [uuid(936F5273-EC82-42A6-A55C-D2D79EC6F920)]
            interface IVoiceCommand : IInspectable
            {
                [propget] HRESULT CommandName([out] [retval] HSTRING* value);
                [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.IMapView<HSTRING, Windows.Foundation.Collections.IVectorView<HSTRING>*>** value);
                [propget] HRESULT SpeechRecognitionResult([out] [retval] Windows.Media.SpeechRecognition.SpeechRecognitionResult** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.VoiceCommands.VoiceCommandCompletedEventArgs)]
            [uuid(C85E675D-FE42-432C-9907-09DF9FCF64E8)]
            interface IVoiceCommandCompletedEventArgs : IInspectable
            {
                [propget] HRESULT Reason([out] [retval] Windows.ApplicationModel.VoiceCommands.VoiceCommandCompletionReason* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.VoiceCommands.VoiceCommandConfirmationResult)]
            [uuid(A022593E-8221-4526-B083-840972262247)]
            interface IVoiceCommandConfirmationResult : IInspectable
            {
                [propget] HRESULT Confirmed([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.VoiceCommands.VoiceCommandContentTile)]
            [uuid(3EEFE9F0-B8C7-4C76-A0DE-1607895EE327)]
            interface IVoiceCommandContentTile : IInspectable
            {
                [propget] HRESULT Title([out] [retval] HSTRING* value);
                [propput] HRESULT Title([in] HSTRING value);
                [propget] HRESULT TextLine1([out] [retval] HSTRING* value);
                [propput] HRESULT TextLine1([in] HSTRING value);
                [propget] HRESULT TextLine2([out] [retval] HSTRING* value);
                [propput] HRESULT TextLine2([in] HSTRING value);
                [propget] HRESULT TextLine3([out] [retval] HSTRING* value);
                [propput] HRESULT TextLine3([in] HSTRING value);
                [propget] HRESULT Image([out] [retval] Windows.Storage.IStorageFile** value);
                [propput] HRESULT Image([in] Windows.Storage.IStorageFile* value);
                [propget] HRESULT AppContext([out] [retval] IInspectable** value);
                [propput] HRESULT AppContext([in] IInspectable* value);
                [propget] HRESULT AppLaunchArgument([out] [retval] HSTRING* value);
                [propput] HRESULT AppLaunchArgument([in] HSTRING value);
                [propget] HRESULT ContentTileType([out] [retval] Windows.ApplicationModel.VoiceCommands.VoiceCommandContentTileType* value);
                [propput] HRESULT ContentTileType([in] Windows.ApplicationModel.VoiceCommands.VoiceCommandContentTileType value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinition)]
            [uuid(7972AAD0-0974-4979-984B-CB8959CD61AE)]
            interface IVoiceCommandDefinition : IInspectable
            {
                [propget] HRESULT Language([out] [retval] HSTRING* value);
                [propget] HRESULT Name([out] [retval] HSTRING* value);
                HRESULT SetPhraseListAsync([in] HSTRING phraseListName, [in] Windows.Foundation.Collections.IIterable<HSTRING>* phraseList, [out] [retval] Windows.Foundation.IAsyncAction** updateAction);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinitionManager)]
            [uuid(8FE7A69E-067E-4F16-A18C-5B17E9499940)]
            interface IVoiceCommandDefinitionManagerStatics : IInspectable
            {
                HRESULT InstallCommandDefinitionsFromStorageFileAsync([in] Windows.Storage.StorageFile* file, [out] [retval] Windows.Foundation.IAsyncAction** installAction);
                [propget] HRESULT InstalledCommandDefinitions([out] [retval] Windows.Foundation.Collections.IMapView<HSTRING, Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinition*>** voiceCommandDefinitions);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.VoiceCommands.VoiceCommandDisambiguationResult)]
            [uuid(ECC68CFE-C9AC-45DF-A8EA-FEEA08EF9C5E)]
            interface IVoiceCommandDisambiguationResult : IInspectable
            {
                [propget] HRESULT SelectedItem([out] [retval] Windows.ApplicationModel.VoiceCommands.VoiceCommandContentTile** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.VoiceCommands.VoiceCommandResponse)]
            [uuid(0284B30E-8A3B-4CC4-A6A1-CAD5BE2716B5)]
            interface IVoiceCommandResponse : IInspectable
            {
                [propget] HRESULT Message([out] [retval] Windows.ApplicationModel.VoiceCommands.VoiceCommandUserMessage** value);
                [propput] HRESULT Message([in] Windows.ApplicationModel.VoiceCommands.VoiceCommandUserMessage* value);
                [propget] HRESULT RepeatMessage([out] [retval] Windows.ApplicationModel.VoiceCommands.VoiceCommandUserMessage** value);
                [propput] HRESULT RepeatMessage([in] Windows.ApplicationModel.VoiceCommands.VoiceCommandUserMessage* value);
                [propget] HRESULT AppLaunchArgument([out] [retval] HSTRING* value);
                [propput] HRESULT AppLaunchArgument([in] HSTRING value);
                [propget] HRESULT VoiceCommandContentTiles([out] [retval] Windows.Foundation.Collections.IVector<Windows.ApplicationModel.VoiceCommands.VoiceCommandContentTile*>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.VoiceCommands.VoiceCommandResponse)]
            [uuid(2932F813-0D3B-49F2-96DD-625019BD3B5D)]
            interface IVoiceCommandResponseStatics : IInspectable
            {
                [propget] HRESULT MaxSupportedVoiceCommandContentTiles([out] [retval] UINT32* value);
                [overload("CreateResponse")] HRESULT CreateResponse([in] Windows.ApplicationModel.VoiceCommands.VoiceCommandUserMessage* userMessage, [out] [retval] Windows.ApplicationModel.VoiceCommands.VoiceCommandResponse** response);
                [overload("CreateResponse")] HRESULT CreateResponseWithTiles([in] Windows.ApplicationModel.VoiceCommands.VoiceCommandUserMessage* message, [in] Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.VoiceCommands.VoiceCommandContentTile*>* contentTiles, [out] [retval] Windows.ApplicationModel.VoiceCommands.VoiceCommandResponse** response);
                [overload("CreateResponseForPrompt")] HRESULT CreateResponseForPrompt([in] Windows.ApplicationModel.VoiceCommands.VoiceCommandUserMessage* message, [in] Windows.ApplicationModel.VoiceCommands.VoiceCommandUserMessage* repeatMessage, [out] [retval] Windows.ApplicationModel.VoiceCommands.VoiceCommandResponse** response);
                [overload("CreateResponseForPrompt")] HRESULT CreateResponseForPromptWithTiles([in] Windows.ApplicationModel.VoiceCommands.VoiceCommandUserMessage* message, [in] Windows.ApplicationModel.VoiceCommands.VoiceCommandUserMessage* repeatMessage, [in] Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.VoiceCommands.VoiceCommandContentTile*>* contentTiles, [out] [retval] Windows.ApplicationModel.VoiceCommands.VoiceCommandResponse** response);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.VoiceCommands.VoiceCommandServiceConnection)]
            [uuid(D894BB9F-21DA-44A4-98A2-FB131920A9CC)]
            interface IVoiceCommandServiceConnection : IInspectable
            {
                HRESULT GetVoiceCommandAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.VoiceCommands.VoiceCommand*>** operation);
                HRESULT RequestConfirmationAsync([in] Windows.ApplicationModel.VoiceCommands.VoiceCommandResponse* response, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.VoiceCommands.VoiceCommandConfirmationResult*>** operation);
                HRESULT RequestDisambiguationAsync([in] Windows.ApplicationModel.VoiceCommands.VoiceCommandResponse* response, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.VoiceCommands.VoiceCommandDisambiguationResult*>** operation);
                HRESULT ReportProgressAsync([in] Windows.ApplicationModel.VoiceCommands.VoiceCommandResponse* response, [out] [retval] Windows.Foundation.IAsyncAction** action);
                HRESULT ReportSuccessAsync([in] Windows.ApplicationModel.VoiceCommands.VoiceCommandResponse* response, [out] [retval] Windows.Foundation.IAsyncAction** action);
                HRESULT ReportFailureAsync([in] Windows.ApplicationModel.VoiceCommands.VoiceCommandResponse* response, [out] [retval] Windows.Foundation.IAsyncAction** action);
                HRESULT RequestAppLaunchAsync([in] Windows.ApplicationModel.VoiceCommands.VoiceCommandResponse* response, [out] [retval] Windows.Foundation.IAsyncAction** action);
                [propget] HRESULT Language([out] [retval] Windows.Globalization.Language** language);
                [eventadd] HRESULT VoiceCommandCompleted([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.VoiceCommands.VoiceCommandServiceConnection*, Windows.ApplicationModel.VoiceCommands.VoiceCommandCompletedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT VoiceCommandCompleted([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.VoiceCommands.VoiceCommandServiceConnection)]
            [uuid(370EBFFB-2D34-42DF-8770-074D0F334697)]
            interface IVoiceCommandServiceConnectionStatics : IInspectable
            {
                HRESULT FromAppServiceTriggerDetails([in] Windows.ApplicationModel.AppService.AppServiceTriggerDetails* triggerDetails, [out] [retval] Windows.ApplicationModel.VoiceCommands.VoiceCommandServiceConnection** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.VoiceCommands.VoiceCommandUserMessage)]
            [uuid(674EB3C0-44F6-4F07-B979-4C723FC08597)]
            interface IVoiceCommandUserMessage : IInspectable
            {
                [propget] HRESULT DisplayMessage([out] [retval] HSTRING* value);
                [propput] HRESULT DisplayMessage([in] HSTRING value);
                [propget] HRESULT SpokenMessage([out] [retval] HSTRING* value);
                [propput] HRESULT SpokenMessage([in] HSTRING value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass VoiceCommand
            {
                [default] interface Windows.ApplicationModel.VoiceCommands.IVoiceCommand;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass VoiceCommandCompletedEventArgs
            {
                [default] interface Windows.ApplicationModel.VoiceCommands.IVoiceCommandCompletedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass VoiceCommandConfirmationResult
            {
                [default] interface Windows.ApplicationModel.VoiceCommands.IVoiceCommandConfirmationResult;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass VoiceCommandContentTile
            {
                [default] interface Windows.ApplicationModel.VoiceCommands.IVoiceCommandContentTile;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass VoiceCommandDefinition
            {
                [default] interface Windows.ApplicationModel.VoiceCommands.IVoiceCommandDefinition;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.ApplicationModel.VoiceCommands.IVoiceCommandDefinitionManagerStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass VoiceCommandDefinitionManager
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass VoiceCommandDisambiguationResult
            {
                [default] interface Windows.ApplicationModel.VoiceCommands.IVoiceCommandDisambiguationResult;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.ApplicationModel.VoiceCommands.IVoiceCommandResponseStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass VoiceCommandResponse
            {
                [default] interface Windows.ApplicationModel.VoiceCommands.IVoiceCommandResponse;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.ApplicationModel.VoiceCommands.IVoiceCommandServiceConnectionStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass VoiceCommandServiceConnection
            {
                [default] interface Windows.ApplicationModel.VoiceCommands.IVoiceCommandServiceConnection;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass VoiceCommandUserMessage
            {
                [default] interface Windows.ApplicationModel.VoiceCommands.IVoiceCommandUserMessage;
            }
        }
    }
}
