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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.UI.idl";
import "Windows.UI.Shell.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;

        interface IClosable;

        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
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 IUserActivityAttribution;

            interface IUserActivityAttributionFactory;

            interface IUserActivityChannel;

            interface IUserActivityChannelStatics;

            interface IUserActivityContentInfo;

            interface IUserActivityContentInfoStatics;

            interface IUserActivitySession;

            interface IUserActivityVisualElements;

            runtimeclass UserActivity;

            runtimeclass UserActivityAttribution;

            runtimeclass UserActivityChannel;

            runtimeclass UserActivityContentInfo;

            runtimeclass UserActivitySession;

            runtimeclass UserActivityVisualElements;
        }
    }
}

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

// 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, 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, 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, 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, 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, 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, 5.0)]
            [marshaling_behavior(agile)]
            runtimeclass UserActivity
            {
                [default] interface Windows.ApplicationModel.UserActivities.IUserActivity;
            }

            [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)]
            runtimeclass UserActivityChannel
            {
                [default] interface Windows.ApplicationModel.UserActivities.IUserActivityChannel;
            }

            [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, 5.0)]
            [marshaling_behavior(agile)]
            runtimeclass UserActivitySession
            {
                [default] interface Windows.ApplicationModel.UserActivities.IUserActivitySession;
                interface Windows.Foundation.IClosable;
            }

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