--------------------------------------------------------------------------------
-- <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            --
--                                                                            --
--------------------------------------------------------------------------------
with Windows.Foundation;
with Windows.Foundation.Collections;
limited with Windows.System;
limited with Windows.UI.Composition;
--------------------------------------------------------------------------------
package Windows.UI.WindowManagement is

   pragma preelaborate;
   
   ------------------------------------------------------------------------
   -- Enums
   ------------------------------------------------------------------------
   
   type AppWindowClosedReason is (
      Other,
      AppInitiated,
      UserInitiated
   );
   for AppWindowClosedReason use (
      Other => 0,
      AppInitiated => 1,
      UserInitiated => 2
   );
   for AppWindowClosedReason'Size use 32;
   
   type AppWindowClosedReason_Ptr is access AppWindowClosedReason;
   
   type AppWindowFrameStyle is (
      Default,
      NoFrame
   );
   for AppWindowFrameStyle use (
      Default => 0,
      NoFrame => 1
   );
   for AppWindowFrameStyle'Size use 32;
   
   type AppWindowFrameStyle_Ptr is access AppWindowFrameStyle;
   
   type AppWindowPresentationKind is (
      Default,
      CompactOverlay,
      FullScreen
   );
   for AppWindowPresentationKind use (
      Default => 0,
      CompactOverlay => 1,
      FullScreen => 2
   );
   for AppWindowPresentationKind'Size use 32;
   
   type AppWindowPresentationKind_Ptr is access AppWindowPresentationKind;
   
   type AppWindowTitleBarVisibility is (
      Default,
      AlwaysHidden
   );
   for AppWindowTitleBarVisibility use (
      Default => 0,
      AlwaysHidden => 1
   );
   for AppWindowTitleBarVisibility'Size use 32;
   
   type AppWindowTitleBarVisibility_Ptr is access AppWindowTitleBarVisibility;
   
   type WindowingEnvironmentKind is (
      Unknown,
      Overlapped,
      Tiled
   );
   for WindowingEnvironmentKind use (
      Unknown => 0,
      Overlapped => 1,
      Tiled => 2
   );
   for WindowingEnvironmentKind'Size use 32;
   
   type WindowingEnvironmentKind_Ptr is access WindowingEnvironmentKind;
   
   ------------------------------------------------------------------------
   -- Forward Declaration - Delegates/Events
   ------------------------------------------------------------------------
   
   type AsyncOperationCompletedHandler_IAppWindow_Interface;
   type AsyncOperationCompletedHandler_IAppWindow is access all AsyncOperationCompletedHandler_IAppWindow_Interface'Class;
   type AsyncOperationCompletedHandler_IAppWindow_Ptr is access all AsyncOperationCompletedHandler_IAppWindow;
   type TypedEventHandler_IAppWindow_add_Changed_Interface;
   type TypedEventHandler_IAppWindow_add_Changed is access all TypedEventHandler_IAppWindow_add_Changed_Interface'Class;
   type TypedEventHandler_IAppWindow_add_Changed_Ptr is access all TypedEventHandler_IAppWindow_add_Changed;
   type TypedEventHandler_IAppWindow_add_Closed_Interface;
   type TypedEventHandler_IAppWindow_add_Closed is access all TypedEventHandler_IAppWindow_add_Closed_Interface'Class;
   type TypedEventHandler_IAppWindow_add_Closed_Ptr is access all TypedEventHandler_IAppWindow_add_Closed;
   type TypedEventHandler_IAppWindow_add_CloseRequested_Interface;
   type TypedEventHandler_IAppWindow_add_CloseRequested is access all TypedEventHandler_IAppWindow_add_CloseRequested_Interface'Class;
   type TypedEventHandler_IAppWindow_add_CloseRequested_Ptr is access all TypedEventHandler_IAppWindow_add_CloseRequested;
   type TypedEventHandler_IDisplayRegion_add_Changed_Interface;
   type TypedEventHandler_IDisplayRegion_add_Changed is access all TypedEventHandler_IDisplayRegion_add_Changed_Interface'Class;
   type TypedEventHandler_IDisplayRegion_add_Changed_Ptr is access all TypedEventHandler_IDisplayRegion_add_Changed;
   type TypedEventHandler_IWindowingEnvironment_add_Changed_Interface;
   type TypedEventHandler_IWindowingEnvironment_add_Changed is access all TypedEventHandler_IWindowingEnvironment_add_Changed_Interface'Class;
   type TypedEventHandler_IWindowingEnvironment_add_Changed_Ptr is access all TypedEventHandler_IWindowingEnvironment_add_Changed;
   
   ------------------------------------------------------------------------
   -- Forward Declaration - Interfaces
   ------------------------------------------------------------------------
   
   type IAppWindow_Interface;
   type IAppWindow is access all IAppWindow_Interface'Class;
   type IAppWindow_Ptr is access all IAppWindow;
   type IAppWindowChangedEventArgs_Interface;
   type IAppWindowChangedEventArgs is access all IAppWindowChangedEventArgs_Interface'Class;
   type IAppWindowChangedEventArgs_Ptr is access all IAppWindowChangedEventArgs;
   type IAppWindowClosedEventArgs_Interface;
   type IAppWindowClosedEventArgs is access all IAppWindowClosedEventArgs_Interface'Class;
   type IAppWindowClosedEventArgs_Ptr is access all IAppWindowClosedEventArgs;
   type IAppWindowCloseRequestedEventArgs_Interface;
   type IAppWindowCloseRequestedEventArgs is access all IAppWindowCloseRequestedEventArgs_Interface'Class;
   type IAppWindowCloseRequestedEventArgs_Ptr is access all IAppWindowCloseRequestedEventArgs;
   type IAppWindowFrame_Interface;
   type IAppWindowFrame is access all IAppWindowFrame_Interface'Class;
   type IAppWindowFrame_Ptr is access all IAppWindowFrame;
   type IAppWindowFrameStyle_Interface;
   type IAppWindowFrameStyle is access all IAppWindowFrameStyle_Interface'Class;
   type IAppWindowFrameStyle_Ptr is access all IAppWindowFrameStyle;
   type IAppWindowPlacement_Interface;
   type IAppWindowPlacement is access all IAppWindowPlacement_Interface'Class;
   type IAppWindowPlacement_Ptr is access all IAppWindowPlacement;
   type IAppWindowPresentationConfiguration_Interface;
   type IAppWindowPresentationConfiguration is access all IAppWindowPresentationConfiguration_Interface'Class;
   type IAppWindowPresentationConfiguration_Ptr is access all IAppWindowPresentationConfiguration;
   type IAppWindowPresentationConfigurationFactory_Interface;
   type IAppWindowPresentationConfigurationFactory is access all IAppWindowPresentationConfigurationFactory_Interface'Class;
   type IAppWindowPresentationConfigurationFactory_Ptr is access all IAppWindowPresentationConfigurationFactory;
   type IAppWindowPresenter_Interface;
   type IAppWindowPresenter is access all IAppWindowPresenter_Interface'Class;
   type IAppWindowPresenter_Ptr is access all IAppWindowPresenter;
   type IAppWindowStatics_Interface;
   type IAppWindowStatics is access all IAppWindowStatics_Interface'Class;
   type IAppWindowStatics_Ptr is access all IAppWindowStatics;
   type IAppWindowTitleBar_Interface;
   type IAppWindowTitleBar is access all IAppWindowTitleBar_Interface'Class;
   type IAppWindowTitleBar_Ptr is access all IAppWindowTitleBar;
   type IAppWindowTitleBarOcclusion_Interface;
   type IAppWindowTitleBarOcclusion is access all IAppWindowTitleBarOcclusion_Interface'Class;
   type IAppWindowTitleBarOcclusion_Ptr is access all IAppWindowTitleBarOcclusion;
   type IAppWindowTitleBarVisibility_Interface;
   type IAppWindowTitleBarVisibility is access all IAppWindowTitleBarVisibility_Interface'Class;
   type IAppWindowTitleBarVisibility_Ptr is access all IAppWindowTitleBarVisibility;
   type IAsyncOperation_IAppWindow_Interface;
   type IAsyncOperation_IAppWindow is access all IAsyncOperation_IAppWindow_Interface'Class;
   type IAsyncOperation_IAppWindow_Ptr is access all IAsyncOperation_IAppWindow;
   type ICompactOverlayPresentationConfiguration_Interface;
   type ICompactOverlayPresentationConfiguration is access all ICompactOverlayPresentationConfiguration_Interface'Class;
   type ICompactOverlayPresentationConfiguration_Ptr is access all ICompactOverlayPresentationConfiguration;
   type IDefaultPresentationConfiguration_Interface;
   type IDefaultPresentationConfiguration is access all IDefaultPresentationConfiguration_Interface'Class;
   type IDefaultPresentationConfiguration_Ptr is access all IDefaultPresentationConfiguration;
   type IDisplayRegion_Interface;
   type IDisplayRegion is access all IDisplayRegion_Interface'Class;
   type IDisplayRegion_Ptr is access all IDisplayRegion;
   type IFullScreenPresentationConfiguration_Interface;
   type IFullScreenPresentationConfiguration is access all IFullScreenPresentationConfiguration_Interface'Class;
   type IFullScreenPresentationConfiguration_Ptr is access all IFullScreenPresentationConfiguration;
   type IIterable_IAppWindowTitleBarOcclusion_Interface;
   type IIterable_IAppWindowTitleBarOcclusion is access all IIterable_IAppWindowTitleBarOcclusion_Interface'Class;
   type IIterable_IAppWindowTitleBarOcclusion_Ptr is access all IIterable_IAppWindowTitleBarOcclusion;
   type IIterable_IDisplayRegion_Interface;
   type IIterable_IDisplayRegion is access all IIterable_IDisplayRegion_Interface'Class;
   type IIterable_IDisplayRegion_Ptr is access all IIterable_IDisplayRegion;
   type IIterable_IWindowingEnvironment_Interface;
   type IIterable_IWindowingEnvironment is access all IIterable_IWindowingEnvironment_Interface'Class;
   type IIterable_IWindowingEnvironment_Ptr is access all IIterable_IWindowingEnvironment;
   type IIterator_IAppWindowTitleBarOcclusion_Interface;
   type IIterator_IAppWindowTitleBarOcclusion is access all IIterator_IAppWindowTitleBarOcclusion_Interface'Class;
   type IIterator_IAppWindowTitleBarOcclusion_Ptr is access all IIterator_IAppWindowTitleBarOcclusion;
   type IIterator_IDisplayRegion_Interface;
   type IIterator_IDisplayRegion is access all IIterator_IDisplayRegion_Interface'Class;
   type IIterator_IDisplayRegion_Ptr is access all IIterator_IDisplayRegion;
   type IIterator_IWindowingEnvironment_Interface;
   type IIterator_IWindowingEnvironment is access all IIterator_IWindowingEnvironment_Interface'Class;
   type IIterator_IWindowingEnvironment_Ptr is access all IIterator_IWindowingEnvironment;
   type IVectorView_IAppWindowTitleBarOcclusion_Interface;
   type IVectorView_IAppWindowTitleBarOcclusion is access all IVectorView_IAppWindowTitleBarOcclusion_Interface'Class;
   type IVectorView_IAppWindowTitleBarOcclusion_Ptr is access all IVectorView_IAppWindowTitleBarOcclusion;
   type IVectorView_IDisplayRegion_Interface;
   type IVectorView_IDisplayRegion is access all IVectorView_IDisplayRegion_Interface'Class;
   type IVectorView_IDisplayRegion_Ptr is access all IVectorView_IDisplayRegion;
   type IVectorView_IWindowingEnvironment_Interface;
   type IVectorView_IWindowingEnvironment is access all IVectorView_IWindowingEnvironment_Interface'Class;
   type IVectorView_IWindowingEnvironment_Ptr is access all IVectorView_IWindowingEnvironment;
   type IWindowingEnvironment_Interface;
   type IWindowingEnvironment is access all IWindowingEnvironment_Interface'Class;
   type IWindowingEnvironment_Ptr is access all IWindowingEnvironment;
   type IWindowingEnvironmentAddedEventArgs_Interface;
   type IWindowingEnvironmentAddedEventArgs is access all IWindowingEnvironmentAddedEventArgs_Interface'Class;
   type IWindowingEnvironmentAddedEventArgs_Ptr is access all IWindowingEnvironmentAddedEventArgs;
   type IWindowingEnvironmentChangedEventArgs_Interface;
   type IWindowingEnvironmentChangedEventArgs is access all IWindowingEnvironmentChangedEventArgs_Interface'Class;
   type IWindowingEnvironmentChangedEventArgs_Ptr is access all IWindowingEnvironmentChangedEventArgs;
   type IWindowingEnvironmentRemovedEventArgs_Interface;
   type IWindowingEnvironmentRemovedEventArgs is access all IWindowingEnvironmentRemovedEventArgs_Interface'Class;
   type IWindowingEnvironmentRemovedEventArgs_Ptr is access all IWindowingEnvironmentRemovedEventArgs;
   type IWindowingEnvironmentStatics_Interface;
   type IWindowingEnvironmentStatics is access all IWindowingEnvironmentStatics_Interface'Class;
   type IWindowingEnvironmentStatics_Ptr is access all IWindowingEnvironmentStatics;
   
   ------------------------------------------------------------------------
   -- Interfaces
   ------------------------------------------------------------------------
   
   ------------------------------------------------------------------------
   
   IID_IAppWindow : aliased constant Windows.IID := (1714427046, 46942, 23997, (153, 92, 240, 17, 127, 163, 251, 97 ));
   
   type IAppWindow_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Content
   (
      This       : access IAppWindow_Interface
      ; RetVal : access Windows.UI.IUIContentRoot
   )
   return Windows.HRESULT is abstract;
   
   function get_DispatcherQueue
   (
      This       : access IAppWindow_Interface
      ; RetVal : access Windows.System.IDispatcherQueue
   )
   return Windows.HRESULT is abstract;
   
   function get_Frame
   (
      This       : access IAppWindow_Interface
      ; RetVal : access Windows.UI.WindowManagement.IAppWindowFrame
   )
   return Windows.HRESULT is abstract;
   
   function get_IsVisible
   (
      This       : access IAppWindow_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_PersistedStateId
   (
      This       : access IAppWindow_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function put_PersistedStateId
   (
      This       : access IAppWindow_Interface
      ; value : Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_Presenter
   (
      This       : access IAppWindow_Interface
      ; RetVal : access Windows.UI.WindowManagement.IAppWindowPresenter
   )
   return Windows.HRESULT is abstract;
   
   function get_Title
   (
      This       : access IAppWindow_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function put_Title
   (
      This       : access IAppWindow_Interface
      ; value : Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_TitleBar
   (
      This       : access IAppWindow_Interface
      ; RetVal : access Windows.UI.WindowManagement.IAppWindowTitleBar
   )
   return Windows.HRESULT is abstract;
   
   function get_UIContext
   (
      This       : access IAppWindow_Interface
      ; RetVal : access Windows.UI.IUIContext
   )
   return Windows.HRESULT is abstract;
   
   function get_WindowingEnvironment
   (
      This       : access IAppWindow_Interface
      ; RetVal : access Windows.UI.WindowManagement.IWindowingEnvironment
   )
   return Windows.HRESULT is abstract;
   
   function CloseAsync
   (
      This       : access IAppWindow_Interface
      ; RetVal : access Windows.Foundation.IAsyncAction
   )
   return Windows.HRESULT is abstract;
   
   function GetPlacement
   (
      This       : access IAppWindow_Interface
      ; RetVal : access Windows.UI.WindowManagement.IAppWindowPlacement
   )
   return Windows.HRESULT is abstract;
   
   function GetDisplayRegions
   (
      This       : access IAppWindow_Interface
      ; RetVal : access Windows.UI.WindowManagement.IVectorView_IDisplayRegion -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function RequestMoveToDisplayRegion
   (
      This       : access IAppWindow_Interface
      ; displayRegion : Windows.UI.WindowManagement.IDisplayRegion
   )
   return Windows.HRESULT is abstract;
   
   function RequestMoveAdjacentToCurrentView
   (
      This       : access IAppWindow_Interface
   )
   return Windows.HRESULT is abstract;
   
   function RequestMoveAdjacentToWindow
   (
      This       : access IAppWindow_Interface
      ; anchorWindow : Windows.UI.WindowManagement.IAppWindow
   )
   return Windows.HRESULT is abstract;
   
   function RequestMoveRelativeToWindowContent
   (
      This       : access IAppWindow_Interface
      ; anchorWindow : Windows.UI.WindowManagement.IAppWindow
      ; contentOffset : Windows.Foundation.Point
   )
   return Windows.HRESULT is abstract;
   
   function RequestMoveRelativeToCurrentViewContent
   (
      This       : access IAppWindow_Interface
      ; contentOffset : Windows.Foundation.Point
   )
   return Windows.HRESULT is abstract;
   
   function RequestMoveRelativeToDisplayRegion
   (
      This       : access IAppWindow_Interface
      ; displayRegion : Windows.UI.WindowManagement.IDisplayRegion
      ; displayRegionOffset : Windows.Foundation.Point
   )
   return Windows.HRESULT is abstract;
   
   function RequestSize
   (
      This       : access IAppWindow_Interface
      ; frameSize : Windows.Foundation.Size
   )
   return Windows.HRESULT is abstract;
   
   function TryShowAsync
   (
      This       : access IAppWindow_Interface
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function add_Changed
   (
      This       : access IAppWindow_Interface
      ; handler : TypedEventHandler_IAppWindow_add_Changed
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_Changed
   (
      This       : access IAppWindow_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function add_Closed
   (
      This       : access IAppWindow_Interface
      ; handler : TypedEventHandler_IAppWindow_add_Closed
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_Closed
   (
      This       : access IAppWindow_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function add_CloseRequested
   (
      This       : access IAppWindow_Interface
      ; handler : TypedEventHandler_IAppWindow_add_CloseRequested
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_CloseRequested
   (
      This       : access IAppWindow_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAppWindowChangedEventArgs : aliased constant Windows.IID := (501347262, 42581, 21933, (178, 182, 235, 36, 15, 136, 3, 86 ));
   
   type IAppWindowChangedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   function get_DidAvailableWindowPresentationsChange
   (
      This       : access IAppWindowChangedEventArgs_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_DidDisplayRegionsChange
   (
      This       : access IAppWindowChangedEventArgs_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_DidFrameChange
   (
      This       : access IAppWindowChangedEventArgs_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_DidSizeChange
   (
      This       : access IAppWindowChangedEventArgs_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_DidTitleBarChange
   (
      This       : access IAppWindowChangedEventArgs_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_DidVisibilityChange
   (
      This       : access IAppWindowChangedEventArgs_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_DidWindowingEnvironmentChange
   (
      This       : access IAppWindowChangedEventArgs_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_DidWindowPresentationChange
   (
      This       : access IAppWindowChangedEventArgs_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAppWindowClosedEventArgs : aliased constant Windows.IID := (3430807574, 38176, 23046, (130, 30, 69, 106, 216, 179, 88, 170 ));
   
   type IAppWindowClosedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Reason
   (
      This       : access IAppWindowClosedEventArgs_Interface
      ; RetVal : access Windows.UI.WindowManagement.AppWindowClosedReason
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAppWindowCloseRequestedEventArgs : aliased constant Windows.IID := (3925803482, 59298, 22440, (139, 94, 57, 196, 0, 58, 253, 187 ));
   
   type IAppWindowCloseRequestedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Cancel
   (
      This       : access IAppWindowCloseRequestedEventArgs_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function put_Cancel
   (
      This       : access IAppWindowCloseRequestedEventArgs_Interface
      ; value : Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetDeferral
   (
      This       : access IAppWindowCloseRequestedEventArgs_Interface
      ; RetVal : access Windows.Foundation.IDeferral
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAppWindowFrame : aliased constant Windows.IID := (2665620993, 32349, 21167, (132, 107, 1, 220, 108, 41, 101, 103 ));
   
   type IAppWindowFrame_Interface is interface and Windows.IInspectable_Interface;
   
   function get_DragRegionVisuals
   (
      This       : access IAppWindowFrame_Interface
      ; RetVal : access Windows.UI.Composition.IVector_IVisualElement -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAppWindowFrameStyle : aliased constant Windows.IID := (2889951558, 57772, 21040, (148, 74, 198, 8, 115, 220, 244, 169 ));
   
   type IAppWindowFrameStyle_Interface is interface and Windows.IInspectable_Interface;
   
   function GetFrameStyle
   (
      This       : access IAppWindowFrameStyle_Interface
      ; RetVal : access Windows.UI.WindowManagement.AppWindowFrameStyle
   )
   return Windows.HRESULT is abstract;
   
   function SetFrameStyle
   (
      This       : access IAppWindowFrameStyle_Interface
      ; frameStyle : Windows.UI.WindowManagement.AppWindowFrameStyle
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAppWindowPlacement : aliased constant Windows.IID := (64782686, 59305, 22615, (156, 3, 125, 103, 5, 148, 65, 14 ));
   
   type IAppWindowPlacement_Interface is interface and Windows.IInspectable_Interface;
   
   function get_DisplayRegion
   (
      This       : access IAppWindowPlacement_Interface
      ; RetVal : access Windows.UI.WindowManagement.IDisplayRegion
   )
   return Windows.HRESULT is abstract;
   
   function get_Offset
   (
      This       : access IAppWindowPlacement_Interface
      ; RetVal : access Windows.Foundation.Point
   )
   return Windows.HRESULT is abstract;
   
   function get_Size
   (
      This       : access IAppWindowPlacement_Interface
      ; RetVal : access Windows.Foundation.Size
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAppWindowPresentationConfiguration : aliased constant Windows.IID := (3047440099, 57139, 24167, (189, 49, 16, 114, 69, 115, 0, 223 ));
   
   type IAppWindowPresentationConfiguration_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Kind
   (
      This       : access IAppWindowPresentationConfiguration_Interface
      ; RetVal : access Windows.UI.WindowManagement.AppWindowPresentationKind
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAppWindowPresentationConfigurationFactory : aliased constant Windows.IID := (4248176294, 30837, 24040, (132, 255, 99, 81, 238, 19, 221, 13 ));
   
   type IAppWindowPresentationConfigurationFactory_Interface is interface and Windows.IInspectable_Interface;
   
   ------------------------------------------------------------------------
   
   IID_IAppWindowPresenter : aliased constant Windows.IID := (1525280115, 57853, 21271, (173, 120, 90, 62, 210, 113, 187, 222 ));
   
   type IAppWindowPresenter_Interface is interface and Windows.IInspectable_Interface;
   
   function GetConfiguration
   (
      This       : access IAppWindowPresenter_Interface
      ; RetVal : access Windows.UI.WindowManagement.IAppWindowPresentationConfiguration
   )
   return Windows.HRESULT is abstract;
   
   function IsPresentationSupported
   (
      This       : access IAppWindowPresenter_Interface
      ; presentationKind : Windows.UI.WindowManagement.AppWindowPresentationKind
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function RequestPresentation
   (
      This       : access IAppWindowPresenter_Interface
      ; configuration : Windows.UI.WindowManagement.IAppWindowPresentationConfiguration
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function RequestPresentationByKind
   (
      This       : access IAppWindowPresenter_Interface
      ; presentationKind : Windows.UI.WindowManagement.AppWindowPresentationKind
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAppWindowStatics : aliased constant Windows.IID := (4280237731, 46953, 20719, (152, 115, 16, 140, 208, 232, 151, 70 ));
   
   type IAppWindowStatics_Interface is interface and Windows.IInspectable_Interface;
   
   function TryCreateAsync
   (
      This       : access IAppWindowStatics_Interface
      ; RetVal : access Windows.UI.WindowManagement.IAsyncOperation_IAppWindow -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function ClearAllPersistedState
   (
      This       : access IAppWindowStatics_Interface
   )
   return Windows.HRESULT is abstract;
   
   function ClearPersistedState
   (
      This       : access IAppWindowStatics_Interface
      ; key : Windows.String
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAppWindowTitleBar : aliased constant Windows.IID := (1855138948, 63044, 21533, (162, 215, 12, 38, 36, 55, 132, 45 ));
   
   type IAppWindowTitleBar_Interface is interface and Windows.IInspectable_Interface;
   
   function get_BackgroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.UI.IReference_Color -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_BackgroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; value : Windows.UI.IReference_Color
   )
   return Windows.HRESULT is abstract;
   
   function get_ButtonBackgroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.UI.IReference_Color -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_ButtonBackgroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; value : Windows.UI.IReference_Color
   )
   return Windows.HRESULT is abstract;
   
   function get_ButtonForegroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.UI.IReference_Color -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_ButtonForegroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; value : Windows.UI.IReference_Color
   )
   return Windows.HRESULT is abstract;
   
   function get_ButtonHoverBackgroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.UI.IReference_Color -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_ButtonHoverBackgroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; value : Windows.UI.IReference_Color
   )
   return Windows.HRESULT is abstract;
   
   function get_ButtonHoverForegroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.UI.IReference_Color -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_ButtonHoverForegroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; value : Windows.UI.IReference_Color
   )
   return Windows.HRESULT is abstract;
   
   function get_ButtonInactiveBackgroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.UI.IReference_Color -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_ButtonInactiveBackgroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; value : Windows.UI.IReference_Color
   )
   return Windows.HRESULT is abstract;
   
   function get_ButtonInactiveForegroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.UI.IReference_Color -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_ButtonInactiveForegroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; value : Windows.UI.IReference_Color
   )
   return Windows.HRESULT is abstract;
   
   function get_ButtonPressedBackgroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.UI.IReference_Color -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_ButtonPressedBackgroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; value : Windows.UI.IReference_Color
   )
   return Windows.HRESULT is abstract;
   
   function get_ButtonPressedForegroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.UI.IReference_Color -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_ButtonPressedForegroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; value : Windows.UI.IReference_Color
   )
   return Windows.HRESULT is abstract;
   
   function get_ExtendsContentIntoTitleBar
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function put_ExtendsContentIntoTitleBar
   (
      This       : access IAppWindowTitleBar_Interface
      ; value : Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_ForegroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.UI.IReference_Color -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_ForegroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; value : Windows.UI.IReference_Color
   )
   return Windows.HRESULT is abstract;
   
   function get_InactiveBackgroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.UI.IReference_Color -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_InactiveBackgroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; value : Windows.UI.IReference_Color
   )
   return Windows.HRESULT is abstract;
   
   function get_InactiveForegroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.UI.IReference_Color -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_InactiveForegroundColor
   (
      This       : access IAppWindowTitleBar_Interface
      ; value : Windows.UI.IReference_Color
   )
   return Windows.HRESULT is abstract;
   
   function get_IsVisible
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetTitleBarOcclusions
   (
      This       : access IAppWindowTitleBar_Interface
      ; RetVal : access Windows.UI.WindowManagement.IVectorView_IAppWindowTitleBarOcclusion -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAppWindowTitleBarOcclusion : aliased constant Windows.IID := (4272148477, 11471, 24515, (174, 174, 248, 67, 135, 107, 243, 126 ));
   
   type IAppWindowTitleBarOcclusion_Interface is interface and Windows.IInspectable_Interface;
   
   function get_OccludingRect
   (
      This       : access IAppWindowTitleBarOcclusion_Interface
      ; RetVal : access Windows.Foundation.Rect
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAppWindowTitleBarVisibility : aliased constant Windows.IID := (2719327459, 28286, 22097, (140, 59, 98, 72, 25, 82, 129, 84 ));
   
   type IAppWindowTitleBarVisibility_Interface is interface and Windows.IInspectable_Interface;
   
   function GetPreferredVisibility
   (
      This       : access IAppWindowTitleBarVisibility_Interface
      ; RetVal : access Windows.UI.WindowManagement.AppWindowTitleBarVisibility
   )
   return Windows.HRESULT is abstract;
   
   function SetPreferredVisibility
   (
      This       : access IAppWindowTitleBarVisibility_Interface
      ; visibilityMode : Windows.UI.WindowManagement.AppWindowTitleBarVisibility
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAsyncOperation_IAppWindow : aliased constant Windows.IID := (1097298554, 24048, 24275, (182, 36, 22, 124, 129, 190, 255, 107 ));
   
   type IAsyncOperation_IAppWindow_Interface is interface and Windows.IInspectable_Interface;
   
   function put_Completed
   (
      This       : access IAsyncOperation_IAppWindow_Interface
      ; handler : Windows.UI.WindowManagement.AsyncOperationCompletedHandler_IAppWindow
   )
   return Windows.HRESULT is abstract;
   
   function get_Completed
   (
      This       : access IAsyncOperation_IAppWindow_Interface
      ; RetVal : access Windows.UI.WindowManagement.AsyncOperationCompletedHandler_IAppWindow
   )
   return Windows.HRESULT is abstract;
   
   function GetResults
   (
      This       : access IAsyncOperation_IAppWindow_Interface
      ; RetVal : access Windows.UI.WindowManagement.IAppWindow
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_ICompactOverlayPresentationConfiguration : aliased constant Windows.IID := (2816832783, 22320, 22214, (142, 31, 214, 63, 244, 215, 152, 13 ));
   
   type ICompactOverlayPresentationConfiguration_Interface is interface and Windows.IInspectable_Interface;
   
   ------------------------------------------------------------------------
   
   IID_IDefaultPresentationConfiguration : aliased constant Windows.IID := (3636639035, 8552, 22275, (168, 83, 213, 37, 88, 159, 226, 185 ));
   
   type IDefaultPresentationConfiguration_Interface is interface and Windows.IInspectable_Interface;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayRegion : aliased constant Windows.IID := (3679503266, 16532, 24391, (140, 177, 234, 1, 221, 175, 170, 148 ));
   
   type IDisplayRegion_Interface is interface and Windows.IInspectable_Interface;
   
   function get_DisplayMonitorDeviceId
   (
      This       : access IDisplayRegion_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_IsVisible
   (
      This       : access IDisplayRegion_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_WorkAreaOffset
   (
      This       : access IDisplayRegion_Interface
      ; RetVal : access Windows.Foundation.Point
   )
   return Windows.HRESULT is abstract;
   
   function get_WorkAreaSize
   (
      This       : access IDisplayRegion_Interface
      ; RetVal : access Windows.Foundation.Size
   )
   return Windows.HRESULT is abstract;
   
   function get_WindowingEnvironment
   (
      This       : access IDisplayRegion_Interface
      ; RetVal : access Windows.UI.WindowManagement.IWindowingEnvironment
   )
   return Windows.HRESULT is abstract;
   
   function add_Changed
   (
      This       : access IDisplayRegion_Interface
      ; handler : TypedEventHandler_IDisplayRegion_add_Changed
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_Changed
   (
      This       : access IDisplayRegion_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IFullScreenPresentationConfiguration : aliased constant Windows.IID := (1137958104, 53928, 20541, (166, 38, 21, 83, 61, 109, 95, 98 ));
   
   type IFullScreenPresentationConfiguration_Interface is interface and Windows.IInspectable_Interface;
   
   function get_IsExclusive
   (
      This       : access IFullScreenPresentationConfiguration_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function put_IsExclusive
   (
      This       : access IFullScreenPresentationConfiguration_Interface
      ; value : Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterable_IAppWindowTitleBarOcclusion : aliased constant Windows.IID := (889440195, 53302, 20818, (146, 221, 222, 151, 50, 32, 84, 32 ));
   
   type IIterable_IAppWindowTitleBarOcclusion_Interface is interface and Windows.IInspectable_Interface;
   
   function First
   (
      This       : access IIterable_IAppWindowTitleBarOcclusion_Interface
      ; RetVal : access Windows.UI.WindowManagement.IIterator_IAppWindowTitleBarOcclusion
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterable_IDisplayRegion : aliased constant Windows.IID := (40317099, 9485, 20540, (168, 118, 67, 187, 183, 84, 173, 68 ));
   
   type IIterable_IDisplayRegion_Interface is interface and Windows.IInspectable_Interface;
   
   function First
   (
      This       : access IIterable_IDisplayRegion_Interface
      ; RetVal : access Windows.UI.WindowManagement.IIterator_IDisplayRegion
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterable_IWindowingEnvironment : aliased constant Windows.IID := (1651139713, 372, 23126, (132, 201, 232, 212, 196, 140, 251, 27 ));
   
   type IIterable_IWindowingEnvironment_Interface is interface and Windows.IInspectable_Interface;
   
   function First
   (
      This       : access IIterable_IWindowingEnvironment_Interface
      ; RetVal : access Windows.UI.WindowManagement.IIterator_IWindowingEnvironment
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterator_IAppWindowTitleBarOcclusion : aliased constant Windows.IID := (334058203, 62803, 23619, (143, 210, 14, 27, 157, 243, 238, 63 ));
   
   type IIterator_IAppWindowTitleBarOcclusion_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Current
   (
      This       : access IIterator_IAppWindowTitleBarOcclusion_Interface
      ; RetVal : access Windows.UI.WindowManagement.IAppWindowTitleBarOcclusion
   )
   return Windows.HRESULT is abstract;
   
   function get_HasCurrent
   (
      This       : access IIterator_IAppWindowTitleBarOcclusion_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function MoveNext
   (
      This       : access IIterator_IAppWindowTitleBarOcclusion_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IIterator_IAppWindowTitleBarOcclusion_Interface
      ; items : Windows.UI.WindowManagement.IAppWindowTitleBarOcclusion_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterator_IDisplayRegion : aliased constant Windows.IID := (286084478, 12073, 20920, (150, 145, 139, 32, 106, 209, 215, 59 ));
   
   type IIterator_IDisplayRegion_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Current
   (
      This       : access IIterator_IDisplayRegion_Interface
      ; RetVal : access Windows.UI.WindowManagement.IDisplayRegion
   )
   return Windows.HRESULT is abstract;
   
   function get_HasCurrent
   (
      This       : access IIterator_IDisplayRegion_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function MoveNext
   (
      This       : access IIterator_IDisplayRegion_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IIterator_IDisplayRegion_Interface
      ; items : Windows.UI.WindowManagement.IDisplayRegion_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterator_IWindowingEnvironment : aliased constant Windows.IID := (2740721962, 37977, 23500, (157, 179, 35, 36, 55, 22, 25, 127 ));
   
   type IIterator_IWindowingEnvironment_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Current
   (
      This       : access IIterator_IWindowingEnvironment_Interface
      ; RetVal : access Windows.UI.WindowManagement.IWindowingEnvironment
   )
   return Windows.HRESULT is abstract;
   
   function get_HasCurrent
   (
      This       : access IIterator_IWindowingEnvironment_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function MoveNext
   (
      This       : access IIterator_IWindowingEnvironment_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IIterator_IWindowingEnvironment_Interface
      ; items : Windows.UI.WindowManagement.IWindowingEnvironment_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IVectorView_IAppWindowTitleBarOcclusion : aliased constant Windows.IID := (1483560311, 32002, 23671, (187, 67, 57, 82, 47, 128, 151, 46 ));
   
   type IVectorView_IAppWindowTitleBarOcclusion_Interface is interface and Windows.IInspectable_Interface;
   
   function GetAt
   (
      This       : access IVectorView_IAppWindowTitleBarOcclusion_Interface
      ; index : Windows.UInt32
      ; RetVal : access Windows.UI.WindowManagement.IAppWindowTitleBarOcclusion
   )
   return Windows.HRESULT is abstract;
   
   function get_Size
   (
      This       : access IVectorView_IAppWindowTitleBarOcclusion_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function IndexOf
   (
      This       : access IVectorView_IAppWindowTitleBarOcclusion_Interface
      ; value : Windows.UI.WindowManagement.IAppWindowTitleBarOcclusion
      ; index : access Windows.UInt32
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IVectorView_IAppWindowTitleBarOcclusion_Interface
      ; startIndex : Windows.UInt32
      ; items : Windows.UI.WindowManagement.IAppWindowTitleBarOcclusion_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IVectorView_IDisplayRegion : aliased constant Windows.IID := (2489376443, 41174, 23224, (132, 245, 144, 135, 242, 166, 187, 103 ));
   
   type IVectorView_IDisplayRegion_Interface is interface and Windows.IInspectable_Interface;
   
   function GetAt
   (
      This       : access IVectorView_IDisplayRegion_Interface
      ; index : Windows.UInt32
      ; RetVal : access Windows.UI.WindowManagement.IDisplayRegion
   )
   return Windows.HRESULT is abstract;
   
   function get_Size
   (
      This       : access IVectorView_IDisplayRegion_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function IndexOf
   (
      This       : access IVectorView_IDisplayRegion_Interface
      ; value : Windows.UI.WindowManagement.IDisplayRegion
      ; index : access Windows.UInt32
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IVectorView_IDisplayRegion_Interface
      ; startIndex : Windows.UInt32
      ; items : Windows.UI.WindowManagement.IDisplayRegion_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IVectorView_IWindowingEnvironment : aliased constant Windows.IID := (3358835136, 31174, 21038, (183, 27, 216, 69, 224, 246, 102, 142 ));
   
   type IVectorView_IWindowingEnvironment_Interface is interface and Windows.IInspectable_Interface;
   
   function GetAt
   (
      This       : access IVectorView_IWindowingEnvironment_Interface
      ; index : Windows.UInt32
      ; RetVal : access Windows.UI.WindowManagement.IWindowingEnvironment
   )
   return Windows.HRESULT is abstract;
   
   function get_Size
   (
      This       : access IVectorView_IWindowingEnvironment_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function IndexOf
   (
      This       : access IVectorView_IWindowingEnvironment_Interface
      ; value : Windows.UI.WindowManagement.IWindowingEnvironment
      ; index : access Windows.UInt32
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IVectorView_IWindowingEnvironment_Interface
      ; startIndex : Windows.UInt32
      ; items : Windows.UI.WindowManagement.IWindowingEnvironment_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IWindowingEnvironment : aliased constant Windows.IID := (641950656, 10825, 21527, (179, 174, 72, 167, 28, 99, 163, 189 ));
   
   type IWindowingEnvironment_Interface is interface and Windows.IInspectable_Interface;
   
   function get_IsEnabled
   (
      This       : access IWindowingEnvironment_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_Kind
   (
      This       : access IWindowingEnvironment_Interface
      ; RetVal : access Windows.UI.WindowManagement.WindowingEnvironmentKind
   )
   return Windows.HRESULT is abstract;
   
   function GetDisplayRegions
   (
      This       : access IWindowingEnvironment_Interface
      ; RetVal : access Windows.UI.WindowManagement.IVectorView_IDisplayRegion -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function add_Changed
   (
      This       : access IWindowingEnvironment_Interface
      ; handler : TypedEventHandler_IWindowingEnvironment_add_Changed
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_Changed
   (
      This       : access IWindowingEnvironment_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IWindowingEnvironmentAddedEventArgs : aliased constant Windows.IID := (4280966015, 61827, 23654, (153, 178, 66, 144, 130, 6, 146, 153 ));
   
   type IWindowingEnvironmentAddedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   function get_WindowingEnvironment
   (
      This       : access IWindowingEnvironmentAddedEventArgs_Interface
      ; RetVal : access Windows.UI.WindowManagement.IWindowingEnvironment
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IWindowingEnvironmentChangedEventArgs : aliased constant Windows.IID := (1096863686, 573, 24218, (180, 49, 53, 14, 103, 220, 151, 138 ));
   
   type IWindowingEnvironmentChangedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   ------------------------------------------------------------------------
   
   IID_IWindowingEnvironmentRemovedEventArgs : aliased constant Windows.IID := (777737331, 48895, 24147, (147, 22, 126, 119, 95, 229, 104, 179 ));
   
   type IWindowingEnvironmentRemovedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   function get_WindowingEnvironment
   (
      This       : access IWindowingEnvironmentRemovedEventArgs_Interface
      ; RetVal : access Windows.UI.WindowManagement.IWindowingEnvironment
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IWindowingEnvironmentStatics : aliased constant Windows.IID := (2270076855, 50754, 21931, (138, 162, 22, 47, 115, 74, 154, 114 ));
   
   type IWindowingEnvironmentStatics_Interface is interface and Windows.IInspectable_Interface;
   
   function FindAll
   (
      This       : access IWindowingEnvironmentStatics_Interface
      ; RetVal : access Windows.UI.WindowManagement.IVectorView_IWindowingEnvironment -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function FindAllWithKind
   (
      This       : access IWindowingEnvironmentStatics_Interface
      ; kind : Windows.UI.WindowManagement.WindowingEnvironmentKind
      ; RetVal : access Windows.UI.WindowManagement.IVectorView_IWindowingEnvironment -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   -- Delegates/Events
   ------------------------------------------------------------------------
   
   ------------------------------------------------------------------------
   
   IID_AsyncOperationCompletedHandler_IAppWindow : aliased constant Windows.IID := (1002349542, 13496, 24304, (160, 147, 156, 199, 31, 164, 11, 110 ));
   
   type AsyncOperationCompletedHandler_IAppWindow_Interface(Callback : access procedure (asyncInfo : Windows.UI.WindowManagement.IAsyncOperation_IAppWindow ; asyncStatus : Windows.Foundation.AsyncStatus)) is new Windows.IMulticastDelegate_Interface(IID_AsyncOperationCompletedHandler_IAppWindow'access) with null record;
   function Invoke
   (
      This       : access AsyncOperationCompletedHandler_IAppWindow_Interface
      ; asyncInfo : Windows.UI.WindowManagement.IAsyncOperation_IAppWindow
      ; asyncStatus : Windows.Foundation.AsyncStatus
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IAppWindow_add_Changed : aliased constant Windows.IID := (3332573319, 28512, 22911, (185, 24, 117, 124, 171, 95, 58, 118 ));
   
   type TypedEventHandler_IAppWindow_add_Changed_Interface(Callback : access procedure (sender : Windows.UI.WindowManagement.IAppWindow ; args : Windows.UI.WindowManagement.IAppWindowChangedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IAppWindow_add_Changed'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IAppWindow_add_Changed_Interface
      ; sender : Windows.UI.WindowManagement.IAppWindow
      ; args : Windows.UI.WindowManagement.IAppWindowChangedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IAppWindow_add_Closed : aliased constant Windows.IID := (2137179184, 35251, 22643, (147, 202, 187, 77, 113, 163, 144, 228 ));
   
   type TypedEventHandler_IAppWindow_add_Closed_Interface(Callback : access procedure (sender : Windows.UI.WindowManagement.IAppWindow ; args : Windows.UI.WindowManagement.IAppWindowClosedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IAppWindow_add_Closed'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IAppWindow_add_Closed_Interface
      ; sender : Windows.UI.WindowManagement.IAppWindow
      ; args : Windows.UI.WindowManagement.IAppWindowClosedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IAppWindow_add_CloseRequested : aliased constant Windows.IID := (3224737560, 5949, 24345, (183, 106, 145, 146, 155, 43, 4, 81 ));
   
   type TypedEventHandler_IAppWindow_add_CloseRequested_Interface(Callback : access procedure (sender : Windows.UI.WindowManagement.IAppWindow ; args : Windows.UI.WindowManagement.IAppWindowCloseRequestedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IAppWindow_add_CloseRequested'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IAppWindow_add_CloseRequested_Interface
      ; sender : Windows.UI.WindowManagement.IAppWindow
      ; args : Windows.UI.WindowManagement.IAppWindowCloseRequestedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IDisplayRegion_add_Changed : aliased constant Windows.IID := (742445451, 29752, 24244, (147, 89, 120, 151, 252, 231, 227, 252 ));
   
   type TypedEventHandler_IDisplayRegion_add_Changed_Interface(Callback : access procedure (sender : Windows.UI.WindowManagement.IDisplayRegion ; args : Windows.Object)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IDisplayRegion_add_Changed'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IDisplayRegion_add_Changed_Interface
      ; sender : Windows.UI.WindowManagement.IDisplayRegion
      ; args : Windows.Object
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IWindowingEnvironment_add_Changed : aliased constant Windows.IID := (988986694, 16933, 23187, (133, 237, 115, 160, 30, 145, 208, 181 ));
   
   type TypedEventHandler_IWindowingEnvironment_add_Changed_Interface(Callback : access procedure (sender : Windows.UI.WindowManagement.IWindowingEnvironment ; args : Windows.UI.WindowManagement.IWindowingEnvironmentChangedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IWindowingEnvironment_add_Changed'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IWindowingEnvironment_add_Changed_Interface
      ; sender : Windows.UI.WindowManagement.IWindowingEnvironment
      ; args : Windows.UI.WindowManagement.IWindowingEnvironmentChangedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   -- Classes
   ------------------------------------------------------------------------
   
   subtype AppWindow is Windows.UI.WindowManagement.IAppWindow;
   subtype AppWindowChangedEventArgs is Windows.UI.WindowManagement.IAppWindowChangedEventArgs;
   subtype AppWindowClosedEventArgs is Windows.UI.WindowManagement.IAppWindowClosedEventArgs;
   subtype AppWindowCloseRequestedEventArgs is Windows.UI.WindowManagement.IAppWindowCloseRequestedEventArgs;
   subtype AppWindowFrame is Windows.UI.WindowManagement.IAppWindowFrame;
   subtype AppWindowPlacement is Windows.UI.WindowManagement.IAppWindowPlacement;
   subtype AppWindowPresentationConfiguration is Windows.UI.WindowManagement.IAppWindowPresentationConfiguration;
   subtype AppWindowPresenter is Windows.UI.WindowManagement.IAppWindowPresenter;
   subtype AppWindowTitleBar is Windows.UI.WindowManagement.IAppWindowTitleBar;
   subtype AppWindowTitleBarOcclusion is Windows.UI.WindowManagement.IAppWindowTitleBarOcclusion;
   subtype CompactOverlayPresentationConfiguration is Windows.UI.WindowManagement.ICompactOverlayPresentationConfiguration;
   function Create return Windows.UI.WindowManagement.ICompactOverlayPresentationConfiguration;
   
   subtype DefaultPresentationConfiguration is Windows.UI.WindowManagement.IDefaultPresentationConfiguration;
   function Create return Windows.UI.WindowManagement.IDefaultPresentationConfiguration;
   
   subtype DisplayRegion is Windows.UI.WindowManagement.IDisplayRegion;
   subtype FullScreenPresentationConfiguration is Windows.UI.WindowManagement.IFullScreenPresentationConfiguration;
   function Create return Windows.UI.WindowManagement.IFullScreenPresentationConfiguration;
   
   subtype WindowingEnvironment is Windows.UI.WindowManagement.IWindowingEnvironment;
   subtype WindowingEnvironmentAddedEventArgs is Windows.UI.WindowManagement.IWindowingEnvironmentAddedEventArgs;
   subtype WindowingEnvironmentChangedEventArgs is Windows.UI.WindowManagement.IWindowingEnvironmentChangedEventArgs;
   subtype WindowingEnvironmentRemovedEventArgs is Windows.UI.WindowManagement.IWindowingEnvironmentRemovedEventArgs;
   
   ------------------------------------------------------------------------
   -- Static Procedures/functions
   ------------------------------------------------------------------------
   
   procedure ClearAllPersistedState
   ;
   
   procedure ClearPersistedState
   (
      key : Windows.String
   )
   ;
   
   function TryCreateAsync
   return Windows.UI.WindowManagement.IAsyncOperation_IAppWindow;
   
   function FindAll
   return Windows.UI.WindowManagement.IVectorView_IWindowingEnvironment;
   
   function FindAllWithKind
   (
      kind : Windows.UI.WindowManagement.WindowingEnvironmentKind
   )
   return Windows.UI.WindowManagement.IVectorView_IWindowingEnvironment;
   
end;
