--------------------------------------------------------------------------------
-- <auto-generated>                                                           --
--     This code was generated by a tool.                                     --
--                                                                            --
--     Changes to this file may cause incorrect behavior and will be lost if  --
--     the code is regenerated.                                               --
-- </auto-generated>                                                          --
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--                                                                            --
--    Copyright(c) 2018 Alexander Gamper, All Rights Reserved.                --
--                                                                            --
--    Ada-WinRT                                                               --
--                                                                            --
-- This program is free software: you can redistribute it and / or modify     --
-- it under the terms of the GNU Lesser General Public License as published by--
-- the Free Software Foundation, either version 3 of the License, or          --
-- (at your option) any later version.                                        --
--                                                                            --
-- This program is distributed in the hope that it will be useful,            --
-- but WITHOUT ANY WARRANTY; without even the implied warranty of             --
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the               --
-- GNU Lesser General Public License for more details.                        --
--                                                                            --
-- You should have received a copy of the GNU Lesser General Public License   --
-- along with this program.If not, see http://www.gnu.org/licenses            --
--                                                                            --
--------------------------------------------------------------------------------
package Windows.Management.Workplace is

   pragma preelaborate;
   
   ------------------------------------------------------------------------
   -- Enums
   ------------------------------------------------------------------------
   
   type MessagingSyncPolicy is (
      Disallowed,
      Allowed,
      Required
   );
   for MessagingSyncPolicy use (
      Disallowed => 0,
      Allowed => 1,
      Required => 2
   );
   for MessagingSyncPolicy'Size use 32;
   
   type MessagingSyncPolicy_Ptr is access MessagingSyncPolicy;
   
   ------------------------------------------------------------------------
   -- Record types
   ------------------------------------------------------------------------
   
   type WorkplaceSettingsContract is null record;
   pragma Convention (C_Pass_By_Copy , WorkplaceSettingsContract);
   
   type WorkplaceSettingsContract_Ptr is access WorkplaceSettingsContract;
   
   ------------------------------------------------------------------------
   -- Forward Declaration - Interfaces
   ------------------------------------------------------------------------
   
   type IMdmAllowPolicyStatics_Interface;
   type IMdmAllowPolicyStatics is access all IMdmAllowPolicyStatics_Interface'Class;
   type IMdmAllowPolicyStatics_Ptr is access all IMdmAllowPolicyStatics;
   type IMdmPolicyStatics2_Interface;
   type IMdmPolicyStatics2 is access all IMdmPolicyStatics2_Interface'Class;
   type IMdmPolicyStatics2_Ptr is access all IMdmPolicyStatics2;
   type IWorkplaceSettingsStatics_Interface;
   type IWorkplaceSettingsStatics is access all IWorkplaceSettingsStatics_Interface'Class;
   type IWorkplaceSettingsStatics_Ptr is access all IWorkplaceSettingsStatics;
   
   ------------------------------------------------------------------------
   -- Interfaces
   ------------------------------------------------------------------------
   
   ------------------------------------------------------------------------
   
   IID_IMdmAllowPolicyStatics : aliased constant Windows.IID := (3281455591, 29724, 16882, (164, 182, 49, 76, 49, 80, 37, 134 ));
   
   type IMdmAllowPolicyStatics_Interface is interface and Windows.IInspectable_Interface;
   
   function IsBrowserAllowed
   (
      This       : access IMdmAllowPolicyStatics_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function IsCameraAllowed
   (
      This       : access IMdmAllowPolicyStatics_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function IsMicrosoftAccountAllowed
   (
      This       : access IMdmAllowPolicyStatics_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function IsStoreAllowed
   (
      This       : access IMdmAllowPolicyStatics_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMdmPolicyStatics2 : aliased constant Windows.IID := (3382474022, 980, 18937, (169, 147, 67, 239, 204, 210, 101, 196 ));
   
   type IMdmPolicyStatics2_Interface is interface and Windows.IInspectable_Interface;
   
   function GetMessagingSyncPolicy
   (
      This       : access IMdmPolicyStatics2_Interface
      ; RetVal : access Windows.Management.Workplace.MessagingSyncPolicy
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IWorkplaceSettingsStatics : aliased constant Windows.IID := (3831984125, 11666, 19464, (186, 212, 246, 89, 11, 84, 166, 211 ));
   
   type IWorkplaceSettingsStatics_Interface is interface and Windows.IInspectable_Interface;
   
   function get_IsMicrosoftAccountOptional
   (
      This       : access IWorkplaceSettingsStatics_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   -- Classes
   ------------------------------------------------------------------------
   
   
   ------------------------------------------------------------------------
   -- Static Procedures/functions
   ------------------------------------------------------------------------
   
   function IsBrowserAllowed
   return Windows.Boolean;
   
   function IsCameraAllowed
   return Windows.Boolean;
   
   function IsMicrosoftAccountAllowed
   return Windows.Boolean;
   
   function IsStoreAllowed
   return Windows.Boolean;
   
   function GetMessagingSyncPolicy
   return Windows.Management.Workplace.MessagingSyncPolicy;
   
   function get_IsMicrosoftAccountOptional
   return Windows.Boolean;
   
end;
