--------------------------------------------------------------------------------
-- <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            --
--                                                                            --
--------------------------------------------------------------------------------
limited with Windows.ApplicationModel.Activation;
with Windows.Foundation;
with Windows.Foundation.Collections;
--------------------------------------------------------------------------------
package Windows.Gaming.UI is

   pragma preelaborate;
   
   ------------------------------------------------------------------------
   -- Enums
   ------------------------------------------------------------------------
   
   type GameChatMessageOrigin is (
      Voice,
      Text
   );
   for GameChatMessageOrigin use (
      Voice => 0,
      Text => 1
   );
   for GameChatMessageOrigin'Size use 32;
   
   type GameChatMessageOrigin_Ptr is access GameChatMessageOrigin;
   
   type GameChatOverlayPosition is (
      BottomCenter,
      BottomLeft,
      BottomRight,
      MiddleRight,
      MiddleLeft,
      TopCenter,
      TopLeft,
      TopRight
   );
   for GameChatOverlayPosition use (
      BottomCenter => 0,
      BottomLeft => 1,
      BottomRight => 2,
      MiddleRight => 3,
      MiddleLeft => 4,
      TopCenter => 5,
      TopLeft => 6,
      TopRight => 7
   );
   for GameChatOverlayPosition'Size use 32;
   
   type GameChatOverlayPosition_Ptr is access GameChatOverlayPosition;
   
   ------------------------------------------------------------------------
   -- Record types
   ------------------------------------------------------------------------
   
   type GameChatOverlayContract is null record;
   pragma Convention (C_Pass_By_Copy , GameChatOverlayContract);
   
   type GameChatOverlayContract_Ptr is access GameChatOverlayContract;
   
   type GamingUIProviderContract is null record;
   pragma Convention (C_Pass_By_Copy , GamingUIProviderContract);
   
   type GamingUIProviderContract_Ptr is access GamingUIProviderContract;
   
   ------------------------------------------------------------------------
   -- Forward Declaration - Delegates/Events
   ------------------------------------------------------------------------
   
   type TypedEventHandler_IGameChatOverlayMessageSource_add_MessageReceived_Interface;
   type TypedEventHandler_IGameChatOverlayMessageSource_add_MessageReceived is access all TypedEventHandler_IGameChatOverlayMessageSource_add_MessageReceived_Interface'Class;
   type TypedEventHandler_IGameChatOverlayMessageSource_add_MessageReceived_Ptr is access all TypedEventHandler_IGameChatOverlayMessageSource_add_MessageReceived;
   
   ------------------------------------------------------------------------
   -- Forward Declaration - Interfaces
   ------------------------------------------------------------------------
   
   type IActivatedEventArgs_Imported_Interface;
   type IActivatedEventArgs_Imported is access all IActivatedEventArgs_Imported_Interface'Class;
   type IActivatedEventArgs_Imported_Ptr is access all IActivatedEventArgs_Imported;
   type IGameBarStatics_Interface;
   type IGameBarStatics is access all IGameBarStatics_Interface'Class;
   type IGameBarStatics_Ptr is access all IGameBarStatics;
   type IGameChatMessageReceivedEventArgs_Interface;
   type IGameChatMessageReceivedEventArgs is access all IGameChatMessageReceivedEventArgs_Interface'Class;
   type IGameChatMessageReceivedEventArgs_Ptr is access all IGameChatMessageReceivedEventArgs;
   type IGameChatOverlay_Interface;
   type IGameChatOverlay is access all IGameChatOverlay_Interface'Class;
   type IGameChatOverlay_Ptr is access all IGameChatOverlay;
   type IGameChatOverlayMessageSource_Interface;
   type IGameChatOverlayMessageSource is access all IGameChatOverlayMessageSource_Interface'Class;
   type IGameChatOverlayMessageSource_Ptr is access all IGameChatOverlayMessageSource;
   type IGameChatOverlayStatics_Interface;
   type IGameChatOverlayStatics is access all IGameChatOverlayStatics_Interface'Class;
   type IGameChatOverlayStatics_Ptr is access all IGameChatOverlayStatics;
   type IGameUIProviderActivatedEventArgs_Interface;
   type IGameUIProviderActivatedEventArgs is access all IGameUIProviderActivatedEventArgs_Interface'Class;
   type IGameUIProviderActivatedEventArgs_Ptr is access all IGameUIProviderActivatedEventArgs;
   
   ------------------------------------------------------------------------
   -- Interfaces
   ------------------------------------------------------------------------
   
   ------------------------------------------------------------------------
   
   type IActivatedEventArgs_Imported_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Kind
   (
      This       : access IActivatedEventArgs_Imported_Interface
      ; RetVal : access Windows.ApplicationModel.Activation.ActivationKind
   )
   return Windows.HRESULT is abstract;
   
   function get_PreviousExecutionState
   (
      This       : access IActivatedEventArgs_Imported_Interface
      ; RetVal : access Windows.ApplicationModel.Activation.ApplicationExecutionState
   )
   return Windows.HRESULT is abstract;
   
   function get_SplashScreen
   (
      This       : access IActivatedEventArgs_Imported_Interface
      ; RetVal : access Windows.ApplicationModel.Activation.ISplashScreen
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IGameBarStatics : aliased constant Windows.IID := (498705042, 52344, 16755, (190, 69, 182, 30, 103, 40, 62, 167 ));
   
   type IGameBarStatics_Interface is interface and Windows.IInspectable_Interface;
   
   function add_VisibilityChanged
   (
      This       : access IGameBarStatics_Interface
      ; handler : Windows.Foundation.EventHandler_Object
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_VisibilityChanged
   (
      This       : access IGameBarStatics_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function add_IsInputRedirectedChanged
   (
      This       : access IGameBarStatics_Interface
      ; handler : Windows.Foundation.EventHandler_Object
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_IsInputRedirectedChanged
   (
      This       : access IGameBarStatics_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function get_Visible
   (
      This       : access IGameBarStatics_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsInputRedirected
   (
      This       : access IGameBarStatics_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IGameChatMessageReceivedEventArgs : aliased constant Windows.IID := (2726429169, 16313, 20034, (164, 3, 122, 252, 226, 2, 59, 30 ));
   
   type IGameChatMessageReceivedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   function get_AppId
   (
      This       : access IGameChatMessageReceivedEventArgs_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_AppDisplayName
   (
      This       : access IGameChatMessageReceivedEventArgs_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_SenderName
   (
      This       : access IGameChatMessageReceivedEventArgs_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_Message
   (
      This       : access IGameChatMessageReceivedEventArgs_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_Origin
   (
      This       : access IGameChatMessageReceivedEventArgs_Interface
      ; RetVal : access Windows.Gaming.UI.GameChatMessageOrigin
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IGameChatOverlay : aliased constant Windows.IID := (4224075877, 63228, 19016, (174, 7, 3, 172, 110, 212, 55, 4 ));
   
   type IGameChatOverlay_Interface is interface and Windows.IInspectable_Interface;
   
   function get_DesiredPosition
   (
      This       : access IGameChatOverlay_Interface
      ; RetVal : access Windows.Gaming.UI.GameChatOverlayPosition
   )
   return Windows.HRESULT is abstract;
   
   function put_DesiredPosition
   (
      This       : access IGameChatOverlay_Interface
      ; value : Windows.Gaming.UI.GameChatOverlayPosition
   )
   return Windows.HRESULT is abstract;
   
   function AddMessage
   (
      This       : access IGameChatOverlay_Interface
      ; sender : Windows.String
      ; message : Windows.String
      ; origin : Windows.Gaming.UI.GameChatMessageOrigin
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IGameChatOverlayMessageSource : aliased constant Windows.IID := (504853399, 23035, 20303, (142, 154, 128, 172, 248, 23, 116, 60 ));
   
   type IGameChatOverlayMessageSource_Interface is interface and Windows.IInspectable_Interface;
   
   function add_MessageReceived
   (
      This       : access IGameChatOverlayMessageSource_Interface
      ; handler : TypedEventHandler_IGameChatOverlayMessageSource_add_MessageReceived
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_MessageReceived
   (
      This       : access IGameChatOverlayMessageSource_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function SetDelayBeforeClosingAfterMessageReceived
   (
      This       : access IGameChatOverlayMessageSource_Interface
      ; value : Windows.Foundation.TimeSpan
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IGameChatOverlayStatics : aliased constant Windows.IID := (2309813780, 30823, 18935, (150, 135, 37, 217, 219, 244, 68, 209 ));
   
   type IGameChatOverlayStatics_Interface is interface and Windows.IInspectable_Interface;
   
   function GetDefault
   (
      This       : access IGameChatOverlayStatics_Interface
      ; RetVal : access Windows.Gaming.UI.IGameChatOverlay
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IGameUIProviderActivatedEventArgs : aliased constant Windows.IID := (2813534270, 51959, 19949, (187, 210, 71, 222, 67, 187, 109, 213 ));
   
   type IGameUIProviderActivatedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   function get_GameUIArgs
   (
      This       : access IGameUIProviderActivatedEventArgs_Interface
      ; RetVal : access Windows.Foundation.Collections.IPropertySet
   )
   return Windows.HRESULT is abstract;
   
   function ReportCompleted
   (
      This       : access IGameUIProviderActivatedEventArgs_Interface
      ; results : Windows.Foundation.Collections.IPropertySet
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   -- Delegates/Events
   ------------------------------------------------------------------------
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IGameChatOverlayMessageSource_add_MessageReceived : aliased constant Windows.IID := (4266595263, 26780, 24547, (183, 173, 85, 188, 87, 249, 36, 102 ));
   
   type TypedEventHandler_IGameChatOverlayMessageSource_add_MessageReceived_Interface(Callback : access procedure (sender : Windows.Gaming.UI.IGameChatOverlayMessageSource ; args : Windows.Gaming.UI.IGameChatMessageReceivedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IGameChatOverlayMessageSource_add_MessageReceived'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IGameChatOverlayMessageSource_add_MessageReceived_Interface
      ; sender : Windows.Gaming.UI.IGameChatOverlayMessageSource
      ; args : Windows.Gaming.UI.IGameChatMessageReceivedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   -- Classes
   ------------------------------------------------------------------------
   
   subtype GameChatMessageReceivedEventArgs is Windows.Gaming.UI.IGameChatMessageReceivedEventArgs;
   subtype GameChatOverlay is Windows.Gaming.UI.IGameChatOverlay;
   subtype GameChatOverlayMessageSource is Windows.Gaming.UI.IGameChatOverlayMessageSource;
   function Create return Windows.Gaming.UI.IGameChatOverlayMessageSource;
   
   subtype GameUIProviderActivatedEventArgs is Windows.Gaming.UI.IGameUIProviderActivatedEventArgs;
   
   ------------------------------------------------------------------------
   -- Static Procedures/functions
   ------------------------------------------------------------------------
   
   function add_IsInputRedirectedChanged
   (
      handler : Windows.Foundation.EventHandler_Object
   )
   return Windows.Foundation.EventRegistrationToken;
   
   function add_VisibilityChanged
   (
      handler : Windows.Foundation.EventHandler_Object
   )
   return Windows.Foundation.EventRegistrationToken;
   
   function get_IsInputRedirected
   return Windows.Boolean;
   
   function get_Visible
   return Windows.Boolean;
   
   procedure remove_IsInputRedirectedChanged
   (
      token : Windows.Foundation.EventRegistrationToken
   )
   ;
   
   procedure remove_VisibilityChanged
   (
      token : Windows.Foundation.EventRegistrationToken
   )
   ;
   
   function GetDefault
   return Windows.Gaming.UI.IGameChatOverlay;
   
end;
