//
// 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";

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

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Shell
        {
            namespace Tasks
            {
                apicontract AppTaskContract;

                typedef enum AppTaskState AppTaskState;

                interface IAppTaskContent;

                interface IAppTaskContentStatics;

                interface IAppTaskInfo;

                interface IAppTaskInfo2;

                interface IAppTaskInfoStatics;

                interface IAppTaskResultAsset;

                interface IAppTaskResultAssetFactory;

                runtimeclass AppTaskContent;

                runtimeclass AppTaskInfo;

                runtimeclass AppTaskResultAsset;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Shell
        {
            namespace Tasks
            {
                [contractversion(2.0)]
                apicontract AppTaskContract
                {
                }

                [contract(Windows.UI.Shell.Tasks.AppTaskContract, 1.0)]
                [experimental]
                enum AppTaskState
                {
                    Running        = 0,
                    Completed      = 1,
                    NeedsAttention = 2,
                    Paused         = 3,
                    Error          = 4
                };

                [contract(Windows.UI.Shell.Tasks.AppTaskContract, 1.0)]
                [exclusiveto(Windows.UI.Shell.Tasks.AppTaskContent)]
                [experimental]
                [uuid(2411BF59-1B2D-5B63-8181-03D6C2248A68)]
                interface IAppTaskContent : IInspectable
                {
                    HRESULT AddButton([in] HSTRING text, [in] Windows.Foundation.Uri* actionUri);
                    HRESULT SetTextInput([in] HSTRING placeholderText, [in] HSTRING actionUriTemplate);
                    HRESULT SetQuestion([in] HSTRING question);
                }

                [contract(Windows.UI.Shell.Tasks.AppTaskContract, 1.0)]
                [exclusiveto(Windows.UI.Shell.Tasks.AppTaskContent)]
                [experimental]
                [uuid(AABD19F6-7AFC-5B1B-94F6-5DC9DC9AF9E7)]
                interface IAppTaskContentStatics : IInspectable
                {
                    HRESULT CreateSequenceOfSteps([in] UINT32 __completedStepsSize, [in] [size_is(__completedStepsSize)] HSTRING* completedSteps, [in] HSTRING executingStep, [out] [retval] Windows.UI.Shell.Tasks.AppTaskContent** result);
                    HRESULT CreatePreviewThumbnail([in] Windows.Foundation.Uri* imageUri, [in] HSTRING executingStep, [out] [retval] Windows.UI.Shell.Tasks.AppTaskContent** result);
                    HRESULT CreateTextSummaryResult([in] HSTRING text, [out] [retval] Windows.UI.Shell.Tasks.AppTaskContent** result);
                    HRESULT CreateGeneratedAssetsResult([in] UINT32 __assetsSize, [in] [size_is(__assetsSize)] Windows.UI.Shell.Tasks.AppTaskResultAsset** assets, [out] [retval] Windows.UI.Shell.Tasks.AppTaskContent** result);
                    [propget] HRESULT MaxButtons([out] [retval] UINT32* value);
                }

                [contract(Windows.UI.Shell.Tasks.AppTaskContract, 1.0)]
                [exclusiveto(Windows.UI.Shell.Tasks.AppTaskInfo)]
                [experimental]
                [uuid(6720EED6-435B-5DB9-BE66-9343B70654F7)]
                interface IAppTaskInfo : IInspectable
                {
                    HRESULT Remove();
                    HRESULT Update([in] Windows.UI.Shell.Tasks.AppTaskState state, [in] Windows.UI.Shell.Tasks.AppTaskContent* content);
                    HRESULT UpdateState([in] Windows.UI.Shell.Tasks.AppTaskState state);
                    HRESULT UpdateTitles([in] HSTRING title, [in] HSTRING subtitle);
                    HRESULT GetCompletedSteps([out] UINT32* __resultSize, [out] [retval] [size_is(, *__resultSize)] HSTRING** result);
                    HRESULT GetExecutingStep([out] [retval] HSTRING* result);
                    [propget] HRESULT Title([out] [retval] HSTRING* value);
                    [propget] HRESULT Subtitle([out] [retval] HSTRING* value);
                    [propget] HRESULT DeepLink([out] [retval] Windows.Foundation.Uri** value);
                    [propget] HRESULT IconUri([out] [retval] Windows.Foundation.Uri** value);
                    [propget] HRESULT State([out] [retval] Windows.UI.Shell.Tasks.AppTaskState* value);
                    [propget] HRESULT StartTime([out] [retval] Windows.Foundation.DateTime* value);
                    [propget] HRESULT EndTime([out] [retval] Windows.Foundation.IReference<Windows.Foundation.DateTime>** value);
                }

                [contract(Windows.UI.Shell.Tasks.AppTaskContract, 2.0)]
                [exclusiveto(Windows.UI.Shell.Tasks.AppTaskInfo)]
                [experimental]
                [uuid(AD724D71-F137-51C0-8111-3552436BF447)]
                interface IAppTaskInfo2 : IInspectable
                {
                    [propget] HRESULT Id([out] [retval] HSTRING* value);
                    [propget] HRESULT HiddenByUser([out] [retval] boolean* value);
                    HRESULT UpdateDeepLink([in] Windows.Foundation.Uri* deepLink);
                }

                [contract(Windows.UI.Shell.Tasks.AppTaskContract, 1.0)]
                [exclusiveto(Windows.UI.Shell.Tasks.AppTaskInfo)]
                [experimental]
                [uuid(A0B0434F-C640-5800-88C9-D7691AC2F48F)]
                interface IAppTaskInfoStatics : IInspectable
                {
                    HRESULT IsSupported([out] [retval] boolean* result);
                    HRESULT FindAll([out] UINT32* __resultSize, [out] [retval] [size_is(, *__resultSize)] Windows.UI.Shell.Tasks.AppTaskInfo*** result);
                    HRESULT Create([in] HSTRING title, [in] HSTRING subtitle, [in] Windows.Foundation.Uri* deepLink, [in] Windows.Foundation.Uri* iconUri, [in] Windows.UI.Shell.Tasks.AppTaskContent* content, [out] [retval] Windows.UI.Shell.Tasks.AppTaskInfo** result);
                }

                [contract(Windows.UI.Shell.Tasks.AppTaskContract, 1.0)]
                [exclusiveto(Windows.UI.Shell.Tasks.AppTaskResultAsset)]
                [experimental]
                [uuid(75D0C2B3-8A31-5F8F-BDA4-BDCA96E95532)]
                interface IAppTaskResultAsset : IInspectable
                {
                }

                [contract(Windows.UI.Shell.Tasks.AppTaskContract, 1.0)]
                [exclusiveto(Windows.UI.Shell.Tasks.AppTaskResultAsset)]
                [experimental]
                [uuid(0334D9DF-0E06-5999-BA41-85D72E980085)]
                interface IAppTaskResultAssetFactory : IInspectable
                {
                    HRESULT CreateInstance([in] HSTRING name, [in] HSTRING context, [in] Windows.Foundation.Uri* iconUri, [in] Windows.Foundation.Uri* assetUri, [out] [retval] Windows.UI.Shell.Tasks.AppTaskResultAsset** value);
                }

                [contract(Windows.UI.Shell.Tasks.AppTaskContract, 1.0)]
                [experimental]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Shell.Tasks.IAppTaskContentStatics, Windows.UI.Shell.Tasks.AppTaskContract, 1.0)]
                [threading(both)]
                runtimeclass AppTaskContent
                {
                    [default] [experimental] interface Windows.UI.Shell.Tasks.IAppTaskContent;
                }

                [contract(Windows.UI.Shell.Tasks.AppTaskContract, 1.0)]
                [experimental]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Shell.Tasks.IAppTaskInfoStatics, Windows.UI.Shell.Tasks.AppTaskContract, 1.0)]
                [threading(both)]
                runtimeclass AppTaskInfo
                {
                    [default] [experimental] interface Windows.UI.Shell.Tasks.IAppTaskInfo;
                    [contract(Windows.UI.Shell.Tasks.AppTaskContract, 2.0)] [experimental] interface Windows.UI.Shell.Tasks.IAppTaskInfo2;
                }

                [activatable(Windows.UI.Shell.Tasks.IAppTaskResultAssetFactory, Windows.UI.Shell.Tasks.AppTaskContract, 1.0)]
                [contract(Windows.UI.Shell.Tasks.AppTaskContract, 1.0)]
                [experimental]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass AppTaskResultAsset
                {
                    [default] [experimental] interface Windows.UI.Shell.Tasks.IAppTaskResultAsset;
                }
            }
        }
    }
}
