//
// 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.DataTransfer.idl";
import "Windows.Storage.Streams.idl";
import "Windows.System.idl";

// Forward Declare
namespace Windows
{
    namespace ApplicationModel
    {
        namespace DataTransfer
        {
            runtimeclass DataPackage;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;

        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IRandomAccessStreamReference;
        }
    }
}
namespace Windows
{
    namespace System
    {
        apicontract SystemManagementContract;

        runtimeclass User;
    }
}
namespace Windows
{
    namespace Services
    {
        namespace Cortana
        {
            typedef enum CortanaPermission CortanaPermission;

            typedef enum CortanaPermissionsChangeResult CortanaPermissionsChangeResult;

            interface ICortanaActionableInsights;

            interface ICortanaActionableInsightsOptions;

            interface ICortanaActionableInsightsStatics;

            interface ICortanaPermissionsManager;

            interface ICortanaPermissionsManagerStatics;

            interface ICortanaSettings;

            interface ICortanaSettingsStatics;

            runtimeclass CortanaActionableInsights;

            runtimeclass CortanaActionableInsightsOptions;

            runtimeclass CortanaPermissionsManager;

            runtimeclass CortanaSettings;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Services
    {
        namespace Cortana
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Services.Cortana.CortanaPermission>;

                interface Windows.Foundation.Collections.IIterator<Windows.Services.Cortana.CortanaPermission>;

                interface Windows.Foundation.IAsyncOperation<Windows.Services.Cortana.CortanaPermissionsChangeResult>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Services
    {
        namespace Cortana
        {
            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [deprecated("CortanaPermission is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)]
            enum CortanaPermission
            {
                BrowsingHistory      = 0,
                Calendar             = 1,
                CallHistory          = 2,
                Contacts             = 3,
                Email                = 4,
                InputPersonalization = 5,
                Location             = 6,
                Messaging            = 7,
                Microphone           = 8,
                Personalization      = 9,
                PhoneCall            = 10
            };

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [deprecated("CortanaPermissionsChangeResult is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)]
            enum CortanaPermissionsChangeResult
            {
                Success          = 0,
                Unavailable      = 1,
                DisabledByPolicy = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [deprecated("CortanaActionableInsights is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Services.Cortana.CortanaActionableInsights)]
            [uuid(951EC6B1-FC83-586D-8B84-2452C8981625)]
            interface ICortanaActionableInsights : IInspectable
            {
                [deprecated("CortanaActionableInsights is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [propget] HRESULT User([out] [retval] Windows.System.User** value);
                [deprecated("CortanaActionableInsights is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] HRESULT IsAvailableAsync([out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                [deprecated("CortanaActionableInsights is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [overload("ShowInsightsForImageAsync")] HRESULT ShowInsightsForImageAsync([in] Windows.Storage.Streams.IRandomAccessStreamReference* imageStream, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                [deprecated("CortanaActionableInsights is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [overload("ShowInsightsForImageAsync")] HRESULT ShowInsightsForImageWithOptionsAsync([in] Windows.Storage.Streams.IRandomAccessStreamReference* imageStream, [in] Windows.Services.Cortana.CortanaActionableInsightsOptions* options, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                [deprecated("CortanaActionableInsights is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [overload("ShowInsightsForTextAsync")] HRESULT ShowInsightsForTextAsync([in] HSTRING text, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                [deprecated("CortanaActionableInsights is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [overload("ShowInsightsForTextAsync")] HRESULT ShowInsightsForTextWithOptionsAsync([in] HSTRING text, [in] Windows.Services.Cortana.CortanaActionableInsightsOptions* options, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                [deprecated("CortanaActionableInsights is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [overload("ShowInsightsAsync")] HRESULT ShowInsightsAsync([in] Windows.ApplicationModel.DataTransfer.DataPackage* datapackage, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                [deprecated("CortanaActionableInsights is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [overload("ShowInsightsAsync")] HRESULT ShowInsightsWithOptionsAsync([in] Windows.ApplicationModel.DataTransfer.DataPackage* datapackage, [in] Windows.Services.Cortana.CortanaActionableInsightsOptions* options, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [deprecated("CortanaActionableInsightsOptions is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Services.Cortana.CortanaActionableInsightsOptions)]
            [uuid(AAC2BBCF-9782-5420-B81E-7AE56AF31815)]
            interface ICortanaActionableInsightsOptions : IInspectable
            {
                [deprecated("CortanaActionableInsightsOptions is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [propget] HRESULT ContentSourceWebLink([out] [retval] Windows.Foundation.Uri** value);
                [deprecated("CortanaActionableInsightsOptions is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [propput] HRESULT ContentSourceWebLink([in] Windows.Foundation.Uri* value);
                [deprecated("CortanaActionableInsightsOptions is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [propget] HRESULT SurroundingText([out] [retval] HSTRING* value);
                [deprecated("CortanaActionableInsightsOptions is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [propput] HRESULT SurroundingText([in] HSTRING value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [deprecated("CortanaActionableInsights is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Services.Cortana.CortanaActionableInsights)]
            [uuid(B5DED412-9D2F-5CB5-9B05-356A0B836C10)]
            interface ICortanaActionableInsightsStatics : IInspectable
            {
                [deprecated("CortanaActionableInsights is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] HRESULT GetDefault([out] [retval] Windows.Services.Cortana.CortanaActionableInsights** result);
                [deprecated("CortanaActionableInsights is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] HRESULT GetForUser([in] Windows.System.User* user, [out] [retval] Windows.Services.Cortana.CortanaActionableInsights** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [deprecated("ICortanaPermissionsManager is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Services.Cortana.CortanaPermissionsManager)]
            [uuid(191330E0-8695-438A-9545-3DA4E822DDB4)]
            interface ICortanaPermissionsManager : IInspectable
            {
                [deprecated("ICortanaPermissionsManager is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] HRESULT IsSupported([out] [retval] boolean* result);
                [deprecated("ICortanaPermissionsManager is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] HRESULT ArePermissionsGrantedAsync([in] Windows.Foundation.Collections.IIterable<Windows.Services.Cortana.CortanaPermission>* permissions, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** getGrantedPermissionsOperation);
                [deprecated("ICortanaPermissionsManager is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] HRESULT GrantPermissionsAsync([in] Windows.Foundation.Collections.IIterable<Windows.Services.Cortana.CortanaPermission>* permissions, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Services.Cortana.CortanaPermissionsChangeResult>** grantOperation);
                [deprecated("ICortanaPermissionsManager is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] HRESULT RevokePermissionsAsync([in] Windows.Foundation.Collections.IIterable<Windows.Services.Cortana.CortanaPermission>* permissions, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Services.Cortana.CortanaPermissionsChangeResult>** revokeOperation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [deprecated("ICortanaPermissionsManagerStatics is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Services.Cortana.CortanaPermissionsManager)]
            [uuid(76B1E67A-B045-4414-9D6D-2AD3A5FE3A7E)]
            interface ICortanaPermissionsManagerStatics : IInspectable
            {
                [deprecated("ICortanaPermissionsManagerStatics is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] HRESULT GetDefault([out] [retval] Windows.Services.Cortana.CortanaPermissionsManager** result);
            }

            [contract(Windows.System.SystemManagementContract, 3.0)]
            [deprecated("ICortanaSettings is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.System.SystemManagementContract, 7.0)]
            [exclusiveto(Windows.Services.Cortana.CortanaSettings)]
            [uuid(54D571A7-8062-40F4-ABE7-DEDFD697B019)]
            interface ICortanaSettings : IInspectable
            {
                [deprecated("ICortanaSettings is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.System.SystemManagementContract, 7.0)] [propget] HRESULT HasUserConsentToVoiceActivation([out] [retval] boolean* value);
                [deprecated("ICortanaSettings is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.System.SystemManagementContract, 7.0)] [propget] HRESULT IsVoiceActivationEnabled([out] [retval] boolean* value);
                [deprecated("ICortanaSettings is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.System.SystemManagementContract, 7.0)] [propput] HRESULT IsVoiceActivationEnabled([in] boolean value);
            }

            [contract(Windows.System.SystemManagementContract, 3.0)]
            [deprecated("ICortanaSettingsStatics is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.System.SystemManagementContract, 7.0)]
            [exclusiveto(Windows.Services.Cortana.CortanaSettings)]
            [uuid(8B2CCD7E-2EC0-446D-9285-33F07CE8AC04)]
            interface ICortanaSettingsStatics : IInspectable
            {
                [deprecated("ICortanaSettingsStatics is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.System.SystemManagementContract, 7.0)] HRESULT IsSupported([out] [retval] boolean* value);
                [deprecated("ICortanaSettingsStatics is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.System.SystemManagementContract, 7.0)] HRESULT GetDefault([out] [retval] Windows.Services.Cortana.CortanaSettings** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [deprecated("CortanaActionableInsights is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Services.Cortana.ICortanaActionableInsightsStatics, Windows.Foundation.UniversalApiContract, 7.0)]
            [threading(both)]
            runtimeclass CortanaActionableInsights
            {
                [default] interface Windows.Services.Cortana.ICortanaActionableInsights;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 7.0)]
            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [deprecated("CortanaActionableInsightsOptions is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CortanaActionableInsightsOptions
            {
                [default] interface Windows.Services.Cortana.ICortanaActionableInsightsOptions;
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [deprecated("CortanaPermissionsManager is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Services.Cortana.ICortanaPermissionsManagerStatics, Windows.Foundation.UniversalApiContract, 4.0)]
            runtimeclass CortanaPermissionsManager
            {
                [default] interface Windows.Services.Cortana.ICortanaPermissionsManager;
            }

            [contract(Windows.System.SystemManagementContract, 3.0)]
            [deprecated("CortanaSettings is deprecated and might not work on all platforms. For more info, see MSDN.", deprecate, Windows.System.SystemManagementContract, 7.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Services.Cortana.ICortanaSettingsStatics, Windows.System.SystemManagementContract, 3.0)]
            [threading(both)]
            runtimeclass CortanaSettings
            {
                [default] interface Windows.Services.Cortana.ICortanaSettings;
            }
        }
    }
}
