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

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

        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Globalization
    {
        typedef enum DayOfWeek DayOfWeek;
    }
}
namespace Windows
{
    namespace Storage
    {
        interface IStorageFile;

        runtimeclass StorageFile;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IRandomAccessStream;
        }
    }
}
namespace Windows
{
    namespace System
    {
        runtimeclass User;
    }
}
namespace Windows
{
    namespace System
    {
        namespace UserProfile
        {
            apicontract UserProfileContract;

            apicontract UserProfileLockScreenContract;

            typedef enum AccountPictureKind AccountPictureKind;

            typedef enum SetAccountPictureResult SetAccountPictureResult;

            typedef enum SetImageFeedResult SetImageFeedResult;

            interface IAdvertisingManagerForUser;

            interface IAdvertisingManagerStatics;

            interface IAdvertisingManagerStatics2;

            interface IAssignedAccessSettings;

            interface IAssignedAccessSettingsStatics;

            interface IDiagnosticsSettings;

            interface IDiagnosticsSettingsStatics;

            interface IFirstSignInSettings;

            interface IFirstSignInSettingsStatics;

            interface IGlobalizationPreferencesForUser;

            interface IGlobalizationPreferencesStatics;

            interface IGlobalizationPreferencesStatics2;

            interface IGlobalizationPreferencesStatics3;

            interface ILockScreenImageFeedStatics;

            interface ILockScreenStatics;

            interface IUserInformationStatics;

            interface IUserProfilePersonalizationSettings;

            interface IUserProfilePersonalizationSettingsStatics;

            runtimeclass AdvertisingManager;

            runtimeclass AdvertisingManagerForUser;

            runtimeclass AssignedAccessSettings;

            runtimeclass DiagnosticsSettings;

            runtimeclass FirstSignInSettings;

            runtimeclass GlobalizationPreferences;

            runtimeclass GlobalizationPreferencesForUser;

            runtimeclass LockScreen;

            runtimeclass UserInformation;

            runtimeclass UserProfilePersonalizationSettings;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace System
    {
        namespace UserProfile
        {
            declare
            {
                interface Windows.Foundation.IAsyncOperation<Windows.System.UserProfile.SetAccountPictureResult>;

                interface Windows.Foundation.IAsyncOperation<Windows.System.UserProfile.SetImageFeedResult>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace System
    {
        namespace UserProfile
        {
            [contractversion(2.0)]
            apicontract UserProfileContract
            {
            }

            [contractversion(1.0)]
            apicontract UserProfileLockScreenContract
            {
            }

            [contract(Windows.System.UserProfile.UserProfileContract, 1.0)]
            [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)]
            enum AccountPictureKind
            {
                SmallImage = 0,
                LargeImage = 1,
                Video      = 2
            };

            [contract(Windows.System.UserProfile.UserProfileContract, 1.0)]
            [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)]
            enum SetAccountPictureResult
            {
                Success             = 0,
                ChangeDisabled      = 1,
                LargeOrDynamicError = 2,
                VideoFrameSizeError = 3,
                FileSizeError       = 4,
                Failure             = 5
            };

            [contract(Windows.System.UserProfile.UserProfileContract, 1.0)]
            enum SetImageFeedResult
            {
                Success        = 0,
                ChangeDisabled = 1,
                UserCanceled   = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.System.UserProfile.AdvertisingManagerForUser)]
            [uuid(928BF3D0-CF7C-4AB0-A7DC-6DC5BCD44252)]
            interface IAdvertisingManagerForUser : IInspectable
            {
                [propget] HRESULT AdvertisingId([out] [retval] HSTRING* value);
                [propget] HRESULT User([out] [retval] Windows.System.User** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.System.UserProfile.AdvertisingManager)]
            [uuid(ADD3468C-A273-48CB-B346-3544522D5581)]
            interface IAdvertisingManagerStatics : IInspectable
            {
                [propget] HRESULT AdvertisingId([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.System.UserProfile.AdvertisingManager)]
            [uuid(DD0947AF-1A6D-46B0-95BC-F3F9D6BEB9FB)]
            interface IAdvertisingManagerStatics2 : IInspectable
            {
                HRESULT GetForUser([in] Windows.System.User* user, [out] [retval] Windows.System.UserProfile.AdvertisingManagerForUser** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.System.UserProfile.AssignedAccessSettings)]
            [uuid(1BC57F1C-E971-5757-B8E0-512F8B8C46D2)]
            interface IAssignedAccessSettings : IInspectable
            {
                [propget] HRESULT IsEnabled([out] [retval] boolean* value);
                [propget] HRESULT IsSingleAppKioskMode([out] [retval] boolean* value);
                [propget] HRESULT User([out] [retval] Windows.System.User** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.System.UserProfile.AssignedAccessSettings)]
            [uuid(34A81D0D-8A29-5EF3-A7BE-618E6AC3BD01)]
            interface IAssignedAccessSettingsStatics : IInspectable
            {
                HRESULT GetDefault([out] [retval] Windows.System.UserProfile.AssignedAccessSettings** result);
                HRESULT GetForUser([in] Windows.System.User* user, [out] [retval] Windows.System.UserProfile.AssignedAccessSettings** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.System.UserProfile.DiagnosticsSettings)]
            [uuid(E5E9ECCD-2711-44E0-973C-491D78048D24)]
            interface IDiagnosticsSettings : IInspectable
            {
                [propget] HRESULT CanUseDiagnosticsToTailorExperiences([out] [retval] boolean* value);
                [propget] HRESULT User([out] [retval] Windows.System.User** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.System.UserProfile.DiagnosticsSettings)]
            [uuid(72D2E80F-5390-4793-990B-3CCC7D6AC9C8)]
            interface IDiagnosticsSettingsStatics : IInspectable
            {
                HRESULT GetDefault([out] [retval] Windows.System.UserProfile.DiagnosticsSettings** value);
                HRESULT GetForUser([in] Windows.System.User* user, [out] [retval] Windows.System.UserProfile.DiagnosticsSettings** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.System.UserProfile.FirstSignInSettings)]
            [uuid(3E945153-3A5E-452E-A601-F5BAAD2A4870)]
            interface IFirstSignInSettings : IInspectable
                requires
                    Windows.Foundation.Collections.IMapView<HSTRING, IInspectable*>,
                    Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, IInspectable*>*>
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.System.UserProfile.FirstSignInSettings)]
            [uuid(1CE18F0F-1C41-4EA0-B7A2-6F0C1C7E8438)]
            interface IFirstSignInSettingsStatics : IInspectable
            {
                HRESULT GetDefault([out] [retval] Windows.System.UserProfile.FirstSignInSettings** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.System.UserProfile.GlobalizationPreferencesForUser)]
            [uuid(150F0795-4F6E-40BA-A010-E27D81BDA7F5)]
            interface IGlobalizationPreferencesForUser : IInspectable
            {
                [propget] HRESULT User([out] [retval] Windows.System.User** value);
                [propget] HRESULT Calendars([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                [propget] HRESULT Clocks([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                [propget] HRESULT Currencies([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                [propget] HRESULT Languages([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                [propget] HRESULT HomeGeographicRegion([out] [retval] HSTRING* value);
                [propget] HRESULT WeekStartsOn([out] [retval] Windows.Globalization.DayOfWeek* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.System.UserProfile.GlobalizationPreferences)]
            [uuid(01BF4326-ED37-4E96-B0E9-C1340D1EA158)]
            interface IGlobalizationPreferencesStatics : IInspectable
            {
                [propget] HRESULT Calendars([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                [propget] HRESULT Clocks([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                [propget] HRESULT Currencies([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                [propget] HRESULT Languages([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                [propget] HRESULT HomeGeographicRegion([out] [retval] HSTRING* value);
                [propget] HRESULT WeekStartsOn([out] [retval] Windows.Globalization.DayOfWeek* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.System.UserProfile.GlobalizationPreferences)]
            [uuid(FCCE85F1-4300-4CD0-9CAC-1A8E7B7E18F4)]
            interface IGlobalizationPreferencesStatics2 : IInspectable
            {
                HRESULT TrySetHomeGeographicRegion([in] HSTRING region, [out] [retval] boolean* result);
                HRESULT TrySetLanguages([in] Windows.Foundation.Collections.IIterable<HSTRING>* languageTags, [out] [retval] boolean* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.System.UserProfile.GlobalizationPreferences)]
            [uuid(1E059733-35F5-40D8-B9E8-AEF3EF856FCE)]
            interface IGlobalizationPreferencesStatics3 : IInspectable
            {
                HRESULT GetForUser([in] Windows.System.User* user, [out] [retval] Windows.System.UserProfile.GlobalizationPreferencesForUser** value);
            }

            [contract(Windows.System.UserProfile.UserProfileLockScreenContract, 1.0)]
            [exclusiveto(Windows.System.UserProfile.LockScreen)]
            [uuid(2C0D73F6-03A9-41A6-9B01-495251FF51D5)]
            interface ILockScreenImageFeedStatics : IInspectable
            {
                HRESULT RequestSetImageFeedAsync([in] Windows.Foundation.Uri* syndicationFeedUri, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.System.UserProfile.SetImageFeedResult>** value);
                HRESULT TryRemoveImageFeed([out] [retval] boolean* result);
            }

            [contract(Windows.System.UserProfile.UserProfileLockScreenContract, 1.0)]
            [exclusiveto(Windows.System.UserProfile.LockScreen)]
            [uuid(3EE9D3AD-B607-40AE-B426-7631D9821269)]
            interface ILockScreenStatics : IInspectable
            {
                [propget] HRESULT OriginalImageFile([out] [retval] Windows.Foundation.Uri** value);
                HRESULT GetImageStream([out] [retval] Windows.Storage.Streams.IRandomAccessStream** value);
                HRESULT SetImageFileAsync([in] Windows.Storage.IStorageFile* value, [out] [retval] Windows.Foundation.IAsyncAction** Operation);
                HRESULT SetImageStreamAsync([in] Windows.Storage.Streams.IRandomAccessStream* value, [out] [retval] Windows.Foundation.IAsyncAction** Operation);
            }

            [contract(Windows.System.UserProfile.UserProfileContract, 1.0)]
            [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)]
            [exclusiveto(Windows.System.UserProfile.UserInformation)]
            [uuid(77F3A910-48FA-489C-934E-2AE85BA8F772)]
            interface IUserInformationStatics : IInspectable
            {
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] [propget] HRESULT AccountPictureChangeEnabled([out] [retval] boolean* value);
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] [propget] HRESULT NameAccessAllowed([out] [retval] boolean* value);
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] HRESULT GetAccountPicture([in] Windows.System.UserProfile.AccountPictureKind kind, [out] [retval] Windows.Storage.IStorageFile** storageFile);
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] HRESULT SetAccountPictureAsync([in] Windows.Storage.IStorageFile* image, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.System.UserProfile.SetAccountPictureResult>** operation);
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] HRESULT SetAccountPicturesAsync([in] Windows.Storage.IStorageFile* smallImage, [in] Windows.Storage.IStorageFile* largeImage, [in] Windows.Storage.IStorageFile* video, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.System.UserProfile.SetAccountPictureResult>** operation);
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] HRESULT SetAccountPictureFromStreamAsync([in] Windows.Storage.Streams.IRandomAccessStream* image, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.System.UserProfile.SetAccountPictureResult>** operation);
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] HRESULT SetAccountPicturesFromStreamsAsync([in] Windows.Storage.Streams.IRandomAccessStream* smallImage, [in] Windows.Storage.Streams.IRandomAccessStream* largeImage, [in] Windows.Storage.Streams.IRandomAccessStream* video, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.System.UserProfile.SetAccountPictureResult>** operation);
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] [eventadd] HRESULT AccountPictureChanged([in] Windows.Foundation.EventHandler<IInspectable*>* changeHandler, [out] [retval] EventRegistrationToken* token);
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] [eventremove] HRESULT AccountPictureChanged([in] EventRegistrationToken token);
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] HRESULT GetDisplayNameAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** operation);
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] HRESULT GetFirstNameAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** operation);
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] HRESULT GetLastNameAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** operation);
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] HRESULT GetPrincipalNameAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** operation);
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] HRESULT GetSessionInitiationProtocolUriAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Uri*>** operation);
                [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)] HRESULT GetDomainNameAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.System.UserProfile.UserProfilePersonalizationSettings)]
            [uuid(8CEDDAB4-7998-46D5-8DD3-184F1C5F9AB9)]
            interface IUserProfilePersonalizationSettings : IInspectable
            {
                HRESULT TrySetLockScreenImageAsync([in] Windows.Storage.StorageFile* imageFile, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                HRESULT TrySetWallpaperImageAsync([in] Windows.Storage.StorageFile* imageFile, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.System.UserProfile.UserProfilePersonalizationSettings)]
            [uuid(91ACB841-5037-454B-9883-BB772D08DD16)]
            interface IUserProfilePersonalizationSettingsStatics : IInspectable
            {
                [propget] HRESULT Current([out] [retval] Windows.System.UserProfile.UserProfilePersonalizationSettings** value);
                HRESULT IsSupported([out] [retval] boolean* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [static(Windows.System.UserProfile.IAdvertisingManagerStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [static(Windows.System.UserProfile.IAdvertisingManagerStatics2, Windows.Foundation.UniversalApiContract, 3.0)]
            runtimeclass AdvertisingManager
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AdvertisingManagerForUser
            {
                [default] interface Windows.System.UserProfile.IAdvertisingManagerForUser;
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.UserProfile.IAssignedAccessSettingsStatics, Windows.Foundation.UniversalApiContract, 7.0)]
            [threading(both)]
            runtimeclass AssignedAccessSettings
            {
                [default] interface Windows.System.UserProfile.IAssignedAccessSettings;
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.UserProfile.IDiagnosticsSettingsStatics, Windows.Foundation.UniversalApiContract, 4.0)]
            [threading(both)]
            runtimeclass DiagnosticsSettings
            {
                [default] interface Windows.System.UserProfile.IDiagnosticsSettings;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.UserProfile.IFirstSignInSettingsStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [threading(both)]
            runtimeclass FirstSignInSettings
            {
                [default] interface Windows.System.UserProfile.IFirstSignInSettings;
                interface Windows.Foundation.Collections.IMapView<HSTRING, IInspectable*>;
                interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, IInspectable*>*>;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.UserProfile.IGlobalizationPreferencesStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [static(Windows.System.UserProfile.IGlobalizationPreferencesStatics2, Windows.Foundation.UniversalApiContract, 5.0)]
            [static(Windows.System.UserProfile.IGlobalizationPreferencesStatics3, Windows.Foundation.UniversalApiContract, 6.0)]
            runtimeclass GlobalizationPreferences
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass GlobalizationPreferencesForUser
            {
                [default] interface Windows.System.UserProfile.IGlobalizationPreferencesForUser;
            }

            [contract(Windows.System.UserProfile.UserProfileLockScreenContract, 1.0)]
            [static(Windows.System.UserProfile.ILockScreenImageFeedStatics, Windows.System.UserProfile.UserProfileLockScreenContract, 1.0)]
            [static(Windows.System.UserProfile.ILockScreenStatics, Windows.System.UserProfile.UserProfileLockScreenContract, 1.0)]
            runtimeclass LockScreen
            {
            }

            [contract(Windows.System.UserProfile.UserProfileContract, 1.0)]
            [deprecated("Use User instead of UserInformation. For more info, see MSDN.", deprecate, Windows.System.UserProfile.UserProfileContract, 2.0)]
            [static(Windows.System.UserProfile.IUserInformationStatics, Windows.System.UserProfile.UserProfileContract, 1.0)]
            runtimeclass UserInformation
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.UserProfile.IUserProfilePersonalizationSettingsStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [threading(both)]
            runtimeclass UserProfilePersonalizationSettings
            {
                [default] interface Windows.System.UserProfile.IUserProfilePersonalizationSettings;
            }
        }
    }
}
