//
// 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.Security.Credentials.idl";
import "Windows.UI.idl";
import "Windows.UI.Shell.idl";

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

        runtimeclass Deferral;

        interface IAsyncAction;

        interface IClosable;

        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Credentials
        {
            runtimeclass WebAccount;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        typedef struct Color Color;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Shell
        {
            interface IAdaptiveCard;
        }
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace UserActivities
        {
            typedef enum UserActivityState UserActivityState;

            interface IUserActivity;

            interface IUserActivity2;

            interface IUserActivityAttribution;

            interface IUserActivityAttributionFactory;

            interface IUserActivityChannel;

            interface IUserActivityChannel2;

            interface IUserActivityChannelStatics;

            interface IUserActivityChannelStatics2;

            interface IUserActivityContentInfo;

            interface IUserActivityContentInfoStatics;

            interface IUserActivityFactory;

            interface IUserActivityRequest;

            interface IUserActivityRequestManager;

            interface IUserActivityRequestManagerStatics;

            interface IUserActivityRequestedEventArgs;

            interface IUserActivitySession;

            interface IUserActivitySessionHistoryItem;

            interface IUserActivityStatics;

            interface IUserActivityVisualElements;

            interface IUserActivityVisualElements2;

            runtimeclass UserActivity;

            runtimeclass UserActivityAttribution;

            runtimeclass UserActivityChannel;

            runtimeclass UserActivityContentInfo;

            runtimeclass UserActivityRequest;

            runtimeclass UserActivityRequestManager;

            runtimeclass UserActivityRequestedEventArgs;

            runtimeclass UserActivitySession;

            runtimeclass UserActivitySessionHistoryItem;

            runtimeclass UserActivityVisualElements;
        }
    }
}

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

                interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.UserActivities.UserActivitySessionHistoryItem*>;

                interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.UserActivities.UserActivity*>;

                interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.UserActivities.UserActivitySessionHistoryItem*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.UserActivities.UserActivity*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.UserActivities.UserActivitySessionHistoryItem*>;

                interface Windows.Foundation.Collections.IVector<Windows.ApplicationModel.UserActivities.UserActivity*>;

                interface Windows.Foundation.Collections.IVector<Windows.ApplicationModel.UserActivities.UserActivitySessionHistoryItem*>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.UserActivities.UserActivity*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVector<Windows.ApplicationModel.UserActivities.UserActivitySessionHistoryItem*>*>;

                interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.UserActivities.UserActivityRequestManager*, Windows.ApplicationModel.UserActivities.UserActivityRequestedEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace UserActivities
        {
            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            enum UserActivityState
            {
                New       = 0,
                Published = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivity)]
            [uuid(FC103E9E-2CAB-4D36-AEA2-B4BB556CEF0F)]
            interface IUserActivity : IInspectable
            {
                [propget] HRESULT State([out] [retval] Windows.ApplicationModel.UserActivities.UserActivityState* value);
                [propget] HRESULT ActivityId([out] [retval] HSTRING* value);
                [propget] HRESULT VisualElements([out] [retval] Windows.ApplicationModel.UserActivities.UserActivityVisualElements** value);
                [propget] HRESULT ContentUri([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT ContentUri([in] Windows.Foundation.Uri* value);
                [propget] HRESULT ContentType([out] [retval] HSTRING* value);
                [propput] HRESULT ContentType([in] HSTRING value);
                [propget] HRESULT FallbackUri([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT FallbackUri([in] Windows.Foundation.Uri* value);
                [propget] HRESULT ActivationUri([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT ActivationUri([in] Windows.Foundation.Uri* value);
                [propget] HRESULT ContentInfo([out] [retval] Windows.ApplicationModel.UserActivities.IUserActivityContentInfo** value);
                [propput] HRESULT ContentInfo([in] Windows.ApplicationModel.UserActivities.IUserActivityContentInfo* value);
                HRESULT SaveAsync([out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT CreateSession([out] [retval] Windows.ApplicationModel.UserActivities.UserActivitySession** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivity)]
            [uuid(9DC40C62-08C4-47AC-AA9C-2BB2221C55FD)]
            interface IUserActivity2 : IInspectable
            {
                HRESULT ToJson([out] [retval] HSTRING* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivityAttribution)]
            [uuid(34A5C8B5-86DD-4AEC-A491-6A4FAEA5D22E)]
            interface IUserActivityAttribution : IInspectable
            {
                [propget] HRESULT IconUri([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT IconUri([in] Windows.Foundation.Uri* value);
                [propget] HRESULT AlternateText([out] [retval] HSTRING* value);
                [propput] HRESULT AlternateText([in] HSTRING value);
                [propget] HRESULT AddImageQuery([out] [retval] boolean* value);
                [propput] HRESULT AddImageQuery([in] boolean value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivityAttribution)]
            [uuid(E62BD252-C566-4F42-9974-916C4D76377E)]
            interface IUserActivityAttributionFactory : IInspectable
            {
                HRESULT CreateWithUri([in] Windows.Foundation.Uri* iconUri, [out] [retval] Windows.ApplicationModel.UserActivities.UserActivityAttribution** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivityChannel)]
            [uuid(BAC0F8B8-A0E4-483B-B948-9CBABD06070C)]
            interface IUserActivityChannel : IInspectable
            {
                [overload("GetOrCreateUserActivityAsync")] HRESULT GetOrCreateUserActivityAsync([in] HSTRING activityId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.UserActivities.UserActivity*>** operation);
                HRESULT DeleteActivityAsync([in] HSTRING activityId, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT DeleteAllActivitiesAsync([out] [retval] Windows.Foundation.IAsyncAction** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivityChannel)]
            [uuid(1698E35B-EB7E-4EA0-BF17-A459E8BE706C)]
            interface IUserActivityChannel2 : IInspectable
            {
                HRESULT GetRecentUserActivitiesAsync([in] INT32 maxUniqueActivities, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVector<Windows.ApplicationModel.UserActivities.UserActivitySessionHistoryItem*>*>** operation);
                HRESULT GetSessionHistoryItemsForUserActivityAsync([in] HSTRING activityId, [in] Windows.Foundation.DateTime startTime, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVector<Windows.ApplicationModel.UserActivities.UserActivitySessionHistoryItem*>*>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivityChannel)]
            [uuid(C8C005AB-198D-4D80-ABB2-C9775EC4A729)]
            interface IUserActivityChannelStatics : IInspectable
            {
                HRESULT GetDefault([out] [retval] Windows.ApplicationModel.UserActivities.UserActivityChannel** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivityChannel)]
            [uuid(8E87DE30-AA4F-4624-9AD0-D40F3BA0317C)]
            interface IUserActivityChannelStatics2 : IInspectable
                requires
                    Windows.ApplicationModel.UserActivities.IUserActivityChannelStatics
            {
                HRESULT DisableAutoSessionCreation();
                HRESULT TryGetForWebAccount([in] Windows.Security.Credentials.WebAccount* account, [out] [retval] Windows.ApplicationModel.UserActivities.UserActivityChannel** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [uuid(B399E5AD-137F-409D-822D-E1AF27CE08DC)]
            interface IUserActivityContentInfo : IInspectable
            {
                HRESULT ToJson([out] [retval] HSTRING* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivityContentInfo)]
            [uuid(9988C34B-0386-4BC9-968A-8200B004144F)]
            interface IUserActivityContentInfoStatics : IInspectable
            {
                HRESULT FromJson([in] HSTRING value, [out] [retval] Windows.ApplicationModel.UserActivities.UserActivityContentInfo** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivity)]
            [uuid(7C385758-361D-4A67-8A3B-34CA2978F9A3)]
            interface IUserActivityFactory : IInspectable
            {
                HRESULT CreateWithActivityId([in] HSTRING activityId, [out] [retval] Windows.ApplicationModel.UserActivities.UserActivity** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivityRequest)]
            [uuid(A0EF6355-CF35-4FF0-8833-50CB4B72E06D)]
            interface IUserActivityRequest : IInspectable
            {
                HRESULT SetUserActivity([in] Windows.ApplicationModel.UserActivities.UserActivity* activity);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivityRequestManager)]
            [uuid(0C30BE4E-903D-48D6-82D4-4043ED57791B)]
            interface IUserActivityRequestManager : IInspectable
            {
                [eventadd] HRESULT UserActivityRequested([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.UserActivities.UserActivityRequestManager*, Windows.ApplicationModel.UserActivities.UserActivityRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT UserActivityRequested([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivityRequestManager)]
            [uuid(C0392DF1-224A-432C-81E5-0C76B4C4CEFA)]
            interface IUserActivityRequestManagerStatics : IInspectable
            {
                HRESULT GetForCurrentView([out] [retval] Windows.ApplicationModel.UserActivities.UserActivityRequestManager** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivityRequestedEventArgs)]
            [uuid(A4CC7A4C-8229-4CFD-A3BC-C61D318575A4)]
            interface IUserActivityRequestedEventArgs : IInspectable
            {
                [propget] HRESULT Request([out] [retval] Windows.ApplicationModel.UserActivities.UserActivityRequest** value);
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivitySession)]
            [uuid(AE434D78-24FA-44A3-AD48-6EDA61AA1924)]
            interface IUserActivitySession : IInspectable
                requires
                    Windows.Foundation.IClosable
            {
                [propget] HRESULT ActivityId([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivitySessionHistoryItem)]
            [uuid(E8D59BD3-3E5D-49FD-98D7-6DA97521E255)]
            interface IUserActivitySessionHistoryItem : IInspectable
            {
                [propget] HRESULT UserActivity([out] [retval] Windows.ApplicationModel.UserActivities.UserActivity** value);
                [propget] HRESULT StartTime([out] [retval] Windows.Foundation.DateTime* value);
                [propget] HRESULT EndTime([out] [retval] Windows.Foundation.IReference<Windows.Foundation.DateTime>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivity)]
            [uuid(8C8FD333-0E09-47F6-9AC7-95CF5C39367B)]
            interface IUserActivityStatics : IInspectable
            {
                HRESULT TryParseFromJson([in] HSTRING json, [out] [retval] Windows.ApplicationModel.UserActivities.UserActivity** result);
                HRESULT TryParseFromJsonArray([in] HSTRING json, [out] [retval] Windows.Foundation.Collections.IVector<Windows.ApplicationModel.UserActivities.UserActivity*>** result);
                HRESULT ToJsonArray([in] Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.UserActivities.UserActivity*>* activities, [out] [retval] HSTRING* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivityVisualElements)]
            [uuid(94757513-262F-49EF-BBBF-9B75D2E85250)]
            interface IUserActivityVisualElements : IInspectable
            {
                [propget] HRESULT DisplayText([out] [retval] HSTRING* value);
                [propput] HRESULT DisplayText([in] HSTRING value);
                [propget] HRESULT Description([out] [retval] HSTRING* value);
                [propput] HRESULT Description([in] HSTRING value);
                [propget] HRESULT BackgroundColor([out] [retval] Windows.UI.Color* value);
                [propput] HRESULT BackgroundColor([in] Windows.UI.Color value);
                [propget] HRESULT Attribution([out] [retval] Windows.ApplicationModel.UserActivities.UserActivityAttribution** value);
                [propput] HRESULT Attribution([in] Windows.ApplicationModel.UserActivities.UserActivityAttribution* value);
                [propput] HRESULT Content([in] Windows.UI.Shell.IAdaptiveCard* value);
                [propget] HRESULT Content([out] [retval] Windows.UI.Shell.IAdaptiveCard** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.ApplicationModel.UserActivities.UserActivityVisualElements)]
            [uuid(CAAE7FC7-3EEF-4359-825C-9D51B9220DE3)]
            interface IUserActivityVisualElements2 : IInspectable
            {
                [propget] HRESULT AttributionDisplayText([out] [retval] HSTRING* value);
                [propput] HRESULT AttributionDisplayText([in] HSTRING value);
            }

            [activatable(Windows.ApplicationModel.UserActivities.IUserActivityFactory, Windows.Foundation.UniversalApiContract, 6.0)]
            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [marshaling_behavior(agile)]
            [static(Windows.ApplicationModel.UserActivities.IUserActivityStatics, Windows.Foundation.UniversalApiContract, 6.0)]
            runtimeclass UserActivity
            {
                [default] interface Windows.ApplicationModel.UserActivities.IUserActivity;
                [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.ApplicationModel.UserActivities.IUserActivity2;
            }

            [activatable(Windows.ApplicationModel.UserActivities.IUserActivityAttributionFactory, Windows.Foundation.UniversalApiContract, 5.0)]
            [activatable(Windows.Foundation.UniversalApiContract, 5.0)]
            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass UserActivityAttribution
            {
                [default] interface Windows.ApplicationModel.UserActivities.IUserActivityAttribution;
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [marshaling_behavior(agile)]
            [static(Windows.ApplicationModel.UserActivities.IUserActivityChannelStatics, Windows.Foundation.UniversalApiContract, 5.0)]
            [static(Windows.ApplicationModel.UserActivities.IUserActivityChannelStatics2, Windows.Foundation.UniversalApiContract, 6.0)]
            runtimeclass UserActivityChannel
            {
                [default] interface Windows.ApplicationModel.UserActivities.IUserActivityChannel;
                [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.ApplicationModel.UserActivities.IUserActivityChannel2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [marshaling_behavior(agile)]
            [static(Windows.ApplicationModel.UserActivities.IUserActivityContentInfoStatics, Windows.Foundation.UniversalApiContract, 5.0)]
            [threading(both)]
            runtimeclass UserActivityContentInfo
            {
                [default] interface Windows.ApplicationModel.UserActivities.IUserActivityContentInfo;
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [marshaling_behavior(agile)]
            runtimeclass UserActivityRequest
            {
                [default] interface Windows.ApplicationModel.UserActivities.IUserActivityRequest;
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [marshaling_behavior(standard)]
            [static(Windows.ApplicationModel.UserActivities.IUserActivityRequestManagerStatics, Windows.Foundation.UniversalApiContract, 6.0)]
            runtimeclass UserActivityRequestManager
            {
                [default] interface Windows.ApplicationModel.UserActivities.IUserActivityRequestManager;
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [marshaling_behavior(agile)]
            runtimeclass UserActivityRequestedEventArgs
            {
                [default] interface Windows.ApplicationModel.UserActivities.IUserActivityRequestedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [marshaling_behavior(agile)]
            runtimeclass UserActivitySession
            {
                [default] interface Windows.ApplicationModel.UserActivities.IUserActivitySession;
                interface Windows.Foundation.IClosable;
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass UserActivitySessionHistoryItem
            {
                [default] interface Windows.ApplicationModel.UserActivities.IUserActivitySessionHistoryItem;
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [marshaling_behavior(agile)]
            runtimeclass UserActivityVisualElements
            {
                [default] interface Windows.ApplicationModel.UserActivities.IUserActivityVisualElements;
                [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.ApplicationModel.UserActivities.IUserActivityVisualElements2;
            }
        }
    }
}
