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

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;
        }
    }
}
namespace Windows
{
    namespace System
    {
        runtimeclass User;
    }
}
namespace Windows
{
    namespace System
    {
        namespace Profile
        {
            apicontract PlatformAutomaticAppSignInContract;

            apicontract ProfileHardwareTokenContract;

            apicontract ProfileRetailInfoContract;

            apicontract ProfileSharedModeContract;

            typedef enum PlatformAutomaticAppSignInPolicy PlatformAutomaticAppSignInPolicy;

            typedef enum PlatformDataCollectionLevel PlatformDataCollectionLevel;

            typedef enum SystemIdentificationSource SystemIdentificationSource;

            typedef enum SystemOutOfBoxExperienceState SystemOutOfBoxExperienceState;

            typedef enum UnsupportedAppRequirementReasons UnsupportedAppRequirementReasons;

            interface IAnalyticsInfoStatics;

            interface IAnalyticsInfoStatics2;

            interface IAnalyticsVersionInfo;

            interface IAnalyticsVersionInfo2;

            interface IAppApplicabilityStatics;

            interface IEducationSettingsStatics;

            interface IHardwareIdentificationStatics;

            interface IHardwareToken;

            interface IKnownRetailInfoPropertiesStatics;

            interface IPlatformAutomaticAppSignInManagerStatics;

            interface IPlatformDiagnosticsAndUsageDataSettingsStatics;

            interface IRetailInfoStatics;

            interface ISharedModeSettingsStatics;

            interface ISharedModeSettingsStatics2;

            interface ISmartAppControlPolicyStatics;

            interface ISystemIdentificationInfo;

            interface ISystemIdentificationStatics;

            interface ISystemSetupInfoStatics;

            interface IUnsupportedAppRequirement;

            interface IWindowsIntegrityPolicyStatics;

            runtimeclass AnalyticsInfo;

            runtimeclass AnalyticsVersionInfo;

            runtimeclass AppApplicability;

            runtimeclass EducationSettings;

            runtimeclass HardwareIdentification;

            runtimeclass HardwareToken;

            runtimeclass KnownRetailInfoProperties;

            runtimeclass PlatformAutomaticAppSignInManager;

            runtimeclass PlatformDiagnosticsAndUsageDataSettings;

            runtimeclass RetailInfo;

            runtimeclass SharedModeSettings;

            runtimeclass SmartAppControlPolicy;

            runtimeclass SystemIdentification;

            runtimeclass SystemIdentificationInfo;

            runtimeclass SystemSetupInfo;

            runtimeclass UnsupportedAppRequirement;

            runtimeclass WindowsIntegrityPolicy;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace System
    {
        namespace Profile
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.System.Profile.UnsupportedAppRequirement*>;

                interface Windows.Foundation.Collections.IIterator<Windows.System.Profile.UnsupportedAppRequirement*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.System.Profile.UnsupportedAppRequirement*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace System
    {
        namespace Profile
        {
            [contractversion(1.0)]
            apicontract PlatformAutomaticAppSignInContract
            {
            }

            [contractversion(1.0)]
            apicontract ProfileHardwareTokenContract
            {
            }

            [contractversion(1.0)]
            apicontract ProfileRetailInfoContract
            {
            }

            [contractversion(2.0)]
            apicontract ProfileSharedModeContract
            {
            }

            [contract(Windows.System.Profile.PlatformAutomaticAppSignInContract, 1.0)]
            enum PlatformAutomaticAppSignInPolicy
            {
                Unknown            = 0,
                PermissionRequired = 1,
                AlwaysAllowed      = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            enum PlatformDataCollectionLevel
            {
                Security = 0,
                Basic    = 1,
                Enhanced = 2,
                Full     = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            enum SystemIdentificationSource
            {
                None     = 0,
                Tpm      = 1,
                Uefi     = 2,
                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                Registry = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            enum SystemOutOfBoxExperienceState
            {
                NotStarted = 0,
                InProgress = 1,
                Completed  = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [flags]
            enum UnsupportedAppRequirementReasons
            {
                Unknown        = 0x0,
                DeniedBySystem = 0x1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.System.Profile.AnalyticsInfo)]
            [uuid(1D5EE066-188D-5BA9-4387-ACAEB0E7E305)]
            interface IAnalyticsInfoStatics : IInspectable
            {
                [propget] HRESULT VersionInfo([out] [retval] Windows.System.Profile.AnalyticsVersionInfo** value);
                [propget] HRESULT DeviceForm([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.System.Profile.AnalyticsInfo)]
            [uuid(101704EA-A7F9-46D2-AB94-016865AFDB25)]
            interface IAnalyticsInfoStatics2 : IInspectable
            {
                HRESULT GetSystemPropertiesAsync([in] Windows.Foundation.Collections.IIterable<HSTRING>* attributeNames, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IMapView<HSTRING, HSTRING>*>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.System.Profile.AnalyticsVersionInfo)]
            [uuid(926130B8-9955-4C74-BDC1-7CD0DECF9B03)]
            interface IAnalyticsVersionInfo : IInspectable
            {
                [propget] HRESULT DeviceFamily([out] [retval] HSTRING* value);
                [propget] HRESULT DeviceFamilyVersion([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 11.0)]
            [exclusiveto(Windows.System.Profile.AnalyticsVersionInfo)]
            [uuid(76E915B1-FF36-407C-9F57-160D3E540747)]
            interface IAnalyticsVersionInfo2 : IInspectable
            {
                [propget] HRESULT ProductName([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.System.Profile.AppApplicability)]
            [uuid(1664A082-0F38-5C99-83E4-48995970861C)]
            interface IAppApplicabilityStatics : IInspectable
            {
                HRESULT GetUnsupportedAppRequirements([in] Windows.Foundation.Collections.IIterable<HSTRING>* capabilities, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.System.Profile.UnsupportedAppRequirement*>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.System.Profile.EducationSettings)]
            [uuid(FC53F0EF-4D3E-4E13-9B23-505F4D091E92)]
            interface IEducationSettingsStatics : IInspectable
            {
                [propget] HRESULT IsEducationEnvironment([out] [retval] boolean* value);
            }

            [contract(Windows.System.Profile.ProfileHardwareTokenContract, 1.0)]
            [exclusiveto(Windows.System.Profile.HardwareIdentification)]
            [uuid(971260E0-F170-4A42-BD55-A900B212DAE2)]
            interface IHardwareIdentificationStatics : IInspectable
            {
                HRESULT GetPackageSpecificToken([in] Windows.Storage.Streams.IBuffer* nonce, [out] [retval] Windows.System.Profile.HardwareToken** packageSpecificHardwareToken);
            }

            [contract(Windows.System.Profile.ProfileHardwareTokenContract, 1.0)]
            [exclusiveto(Windows.System.Profile.HardwareToken)]
            [uuid(28F6D4C0-FB12-40A4-8167-7F4E03D2724C)]
            interface IHardwareToken : IInspectable
            {
                [propget] HRESULT Id([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propget] HRESULT Signature([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propget] HRESULT Certificate([out] [retval] Windows.Storage.Streams.IBuffer** value);
            }

            [contract(Windows.System.Profile.ProfileRetailInfoContract, 1.0)]
            [exclusiveto(Windows.System.Profile.KnownRetailInfoProperties)]
            [uuid(99571178-500F-487E-8E75-29E551728712)]
            interface IKnownRetailInfoPropertiesStatics : IInspectable
            {
                [propget] HRESULT RetailAccessCode([out] [retval] HSTRING* value);
                [propget] HRESULT ManufacturerName([out] [retval] HSTRING* value);
                [propget] HRESULT ModelName([out] [retval] HSTRING* value);
                [propget] HRESULT DisplayModelName([out] [retval] HSTRING* value);
                [propget] HRESULT Price([out] [retval] HSTRING* value);
                [propget] HRESULT IsFeatured([out] [retval] HSTRING* value);
                [propget] HRESULT FormFactor([out] [retval] HSTRING* value);
                [propget] HRESULT ScreenSize([out] [retval] HSTRING* value);
                [propget] HRESULT Weight([out] [retval] HSTRING* value);
                [propget] HRESULT DisplayDescription([out] [retval] HSTRING* value);
                [propget] HRESULT BatteryLifeDescription([out] [retval] HSTRING* value);
                [propget] HRESULT ProcessorDescription([out] [retval] HSTRING* value);
                [propget] HRESULT Memory([out] [retval] HSTRING* value);
                [propget] HRESULT StorageDescription([out] [retval] HSTRING* value);
                [propget] HRESULT GraphicsDescription([out] [retval] HSTRING* value);
                [propget] HRESULT FrontCameraDescription([out] [retval] HSTRING* value);
                [propget] HRESULT RearCameraDescription([out] [retval] HSTRING* value);
                [propget] HRESULT HasNfc([out] [retval] HSTRING* value);
                [propget] HRESULT HasSdSlot([out] [retval] HSTRING* value);
                [propget] HRESULT HasOpticalDrive([out] [retval] HSTRING* value);
                [propget] HRESULT IsOfficeInstalled([out] [retval] HSTRING* value);
                [propget] HRESULT WindowsEdition([out] [retval] HSTRING* value);
            }

            [contract(Windows.System.Profile.PlatformAutomaticAppSignInContract, 1.0)]
            [exclusiveto(Windows.System.Profile.PlatformAutomaticAppSignInManager)]
            [uuid(1AC9AFCE-8DD5-5C2D-B420-767D1F3B7D03)]
            interface IPlatformAutomaticAppSignInManagerStatics : IInspectable
            {
                [propget] HRESULT Policy([out] [retval] Windows.System.Profile.PlatformAutomaticAppSignInPolicy* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.System.Profile.PlatformDiagnosticsAndUsageDataSettings)]
            [uuid(B6E24C1B-7B1C-4B32-8C62-A66597CE723A)]
            interface IPlatformDiagnosticsAndUsageDataSettingsStatics : IInspectable
            {
                [propget] HRESULT CollectionLevel([out] [retval] Windows.System.Profile.PlatformDataCollectionLevel* value);
                [eventadd] HRESULT CollectionLevelChanged([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT CollectionLevelChanged([in] EventRegistrationToken token);
                HRESULT CanCollectDiagnostics([in] Windows.System.Profile.PlatformDataCollectionLevel level, [out] [retval] boolean* result);
            }

            [contract(Windows.System.Profile.ProfileRetailInfoContract, 1.0)]
            [exclusiveto(Windows.System.Profile.RetailInfo)]
            [uuid(0712C6B8-8B92-4F2A-8499-031F1798D6EF)]
            interface IRetailInfoStatics : IInspectable
            {
                [propget] HRESULT IsDemoModeEnabled([out] [retval] boolean* value);
                [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.IMapView<HSTRING, IInspectable*>** value);
            }

            [contract(Windows.System.Profile.ProfileSharedModeContract, 1.0)]
            [exclusiveto(Windows.System.Profile.SharedModeSettings)]
            [uuid(893DF40E-CAD6-4D50-8C49-6FCFC03EDB29)]
            interface ISharedModeSettingsStatics : IInspectable
            {
                [propget] HRESULT IsEnabled([out] [retval] boolean* value);
            }

            [contract(Windows.System.Profile.ProfileSharedModeContract, 2.0)]
            [exclusiveto(Windows.System.Profile.SharedModeSettings)]
            [uuid(608988A4-CCF1-4EE8-A5E2-FD6A1D0CFAC8)]
            interface ISharedModeSettingsStatics2 : IInspectable
            {
                [propget] HRESULT ShouldAvoidLocalStorage([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 15.0)]
            [exclusiveto(Windows.System.Profile.SmartAppControlPolicy)]
            [uuid(5FF8C75B-073E-5015-8D98-5FF224180A0B)]
            interface ISmartAppControlPolicyStatics : IInspectable
            {
                [propget] HRESULT IsEnabled([out] [retval] boolean* value);
                [eventadd] HRESULT Changed([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT Changed([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.System.Profile.SystemIdentificationInfo)]
            [uuid(0C659E7D-C3C2-4D33-A2DF-21BC41916EB3)]
            interface ISystemIdentificationInfo : IInspectable
            {
                [propget] HRESULT Id([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propget] HRESULT Source([out] [retval] Windows.System.Profile.SystemIdentificationSource* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.System.Profile.SystemIdentification)]
            [uuid(5581F42A-D3DF-4D93-A37D-C41A616C6D01)]
            interface ISystemIdentificationStatics : IInspectable
            {
                HRESULT GetSystemIdForPublisher([out] [retval] Windows.System.Profile.SystemIdentificationInfo** result);
                HRESULT GetSystemIdForUser([in] Windows.System.User* user, [out] [retval] Windows.System.Profile.SystemIdentificationInfo** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.System.Profile.SystemSetupInfo)]
            [uuid(B8366A4B-FB6A-4571-BE0A-9A0F67954123)]
            interface ISystemSetupInfoStatics : IInspectable
            {
                [propget] HRESULT OutOfBoxExperienceState([out] [retval] Windows.System.Profile.SystemOutOfBoxExperienceState* value);
                [eventadd] HRESULT OutOfBoxExperienceStateChanged([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT OutOfBoxExperienceStateChanged([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.System.Profile.UnsupportedAppRequirement)]
            [uuid(6182445C-894B-5CBC-8976-A98E0A9B998D)]
            interface IUnsupportedAppRequirement : IInspectable
            {
                [propget] HRESULT Requirement([out] [retval] HSTRING* value);
                [propget] HRESULT Reasons([out] [retval] Windows.System.Profile.UnsupportedAppRequirementReasons* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.System.Profile.WindowsIntegrityPolicy)]
            [uuid(7D1D81DB-8D63-4789-9EA5-DDCF65A94F3C)]
            interface IWindowsIntegrityPolicyStatics : IInspectable
            {
                [propget] HRESULT IsEnabled([out] [retval] boolean* value);
                [propget] HRESULT IsEnabledForTrial([out] [retval] boolean* value);
                [propget] HRESULT CanDisable([out] [retval] boolean* value);
                [propget] HRESULT IsDisableSupported([out] [retval] boolean* value);
                [eventadd] HRESULT PolicyChanged([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT PolicyChanged([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.Profile.IAnalyticsInfoStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [static(Windows.System.Profile.IAnalyticsInfoStatics2, Windows.Foundation.UniversalApiContract, 6.0)]
            [threading(both)]
            runtimeclass AnalyticsInfo
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AnalyticsVersionInfo
            {
                [default] interface Windows.System.Profile.IAnalyticsVersionInfo;
                [contract(Windows.Foundation.UniversalApiContract, 11.0)] interface Windows.System.Profile.IAnalyticsVersionInfo2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.Profile.IAppApplicabilityStatics, Windows.Foundation.UniversalApiContract, 8.0)]
            [threading(both)]
            runtimeclass AppApplicability
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.Profile.IEducationSettingsStatics, Windows.Foundation.UniversalApiContract, 4.0)]
            runtimeclass EducationSettings
            {
            }

            [contract(Windows.System.Profile.ProfileHardwareTokenContract, 1.0)]
            [marshaling_behavior(standard)]
            [static(Windows.System.Profile.IHardwareIdentificationStatics, Windows.System.Profile.ProfileHardwareTokenContract, 1.0)]
            runtimeclass HardwareIdentification
            {
            }

            [contract(Windows.System.Profile.ProfileHardwareTokenContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass HardwareToken
            {
                [default] interface Windows.System.Profile.IHardwareToken;
            }

            [contract(Windows.System.Profile.ProfileRetailInfoContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.Profile.IKnownRetailInfoPropertiesStatics, Windows.System.Profile.ProfileRetailInfoContract, 1.0)]
            [threading(both)]
            runtimeclass KnownRetailInfoProperties
            {
            }

            [contract(Windows.System.Profile.PlatformAutomaticAppSignInContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.Profile.IPlatformAutomaticAppSignInManagerStatics, Windows.System.Profile.PlatformAutomaticAppSignInContract, 1.0)]
            [threading(both)]
            runtimeclass PlatformAutomaticAppSignInManager
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.Profile.IPlatformDiagnosticsAndUsageDataSettingsStatics, Windows.Foundation.UniversalApiContract, 2.0)]
            [threading(both)]
            runtimeclass PlatformDiagnosticsAndUsageDataSettings
            {
            }

            [contract(Windows.System.Profile.ProfileRetailInfoContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.Profile.IRetailInfoStatics, Windows.System.Profile.ProfileRetailInfoContract, 1.0)]
            [threading(both)]
            runtimeclass RetailInfo
            {
            }

            [contract(Windows.System.Profile.ProfileSharedModeContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.Profile.ISharedModeSettingsStatics, Windows.System.Profile.ProfileSharedModeContract, 1.0)]
            [static(Windows.System.Profile.ISharedModeSettingsStatics2, Windows.System.Profile.ProfileSharedModeContract, 2.0)]
            runtimeclass SharedModeSettings
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 15.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.Profile.ISmartAppControlPolicyStatics, Windows.Foundation.UniversalApiContract, 15.0)]
            [threading(both)]
            runtimeclass SmartAppControlPolicy
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.Profile.ISystemIdentificationStatics, Windows.Foundation.UniversalApiContract, 3.0)]
            [threading(both)]
            runtimeclass SystemIdentification
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SystemIdentificationInfo
            {
                [default] interface Windows.System.Profile.ISystemIdentificationInfo;
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.Profile.ISystemSetupInfoStatics, Windows.Foundation.UniversalApiContract, 7.0)]
            [threading(both)]
            runtimeclass SystemSetupInfo
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [marshaling_behavior(agile)]
            runtimeclass UnsupportedAppRequirement
            {
                [default] interface Windows.System.Profile.IUnsupportedAppRequirement;
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [marshaling_behavior(agile)]
            [static(Windows.System.Profile.IWindowsIntegrityPolicyStatics, Windows.Foundation.UniversalApiContract, 7.0)]
            [threading(both)]
            runtimeclass WindowsIntegrityPolicy
            {
            }
        }
    }
}
