//
// 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
    {
        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Management
    {
        namespace Workplace
        {
            apicontract WorkplaceSettingsContract;

            typedef enum MessagingSyncPolicy MessagingSyncPolicy;

            interface IMdmAllowPolicyStatics;

            interface IMdmPolicyStatics2;

            interface IWorkplaceSettingsStatics;

            runtimeclass MdmPolicy;

            runtimeclass WorkplaceSettings;
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace Management
    {
        namespace Workplace
        {
            [contractversion(1.0)]
            apicontract WorkplaceSettingsContract
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            enum MessagingSyncPolicy
            {
                Disallowed = 0,
                Allowed    = 1,
                Required   = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Management.Workplace.MdmPolicy)]
            [uuid(C39709E7-741C-41F2-A4B6-314C31502586)]
            interface IMdmAllowPolicyStatics : IInspectable
            {
                HRESULT IsBrowserAllowed([out] [retval] boolean* value);
                HRESULT IsCameraAllowed([out] [retval] boolean* value);
                HRESULT IsMicrosoftAccountAllowed([out] [retval] boolean* value);
                HRESULT IsStoreAllowed([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Management.Workplace.MdmPolicy)]
            [uuid(C99C7526-03D4-49F9-A993-43EFCCD265C4)]
            interface IMdmPolicyStatics2 : IInspectable
            {
                HRESULT GetMessagingSyncPolicy([out] [retval] Windows.Management.Workplace.MessagingSyncPolicy* value);
            }

            [contract(Windows.Management.Workplace.WorkplaceSettingsContract, 1.0)]
            [exclusiveto(Windows.Management.Workplace.WorkplaceSettings)]
            [uuid(E4676FFD-2D92-4C08-BAD4-F6590B54A6D3)]
            interface IWorkplaceSettingsStatics : IInspectable
            {
                [propget] HRESULT IsMicrosoftAccountOptional([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Management.Workplace.IMdmAllowPolicyStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [static(Windows.Management.Workplace.IMdmPolicyStatics2, Windows.Foundation.UniversalApiContract, 3.0)]
            [threading(both)]
            runtimeclass MdmPolicy
            {
            }

            [contract(Windows.Management.Workplace.WorkplaceSettingsContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Management.Workplace.IWorkplaceSettingsStatics, Windows.Management.Workplace.WorkplaceSettingsContract, 1.0)]
            [threading(both)]
            runtimeclass WorkplaceSettings
            {
            }
        }
    }
}
