--------------------------------------------------------------------------------
-- <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; use Windows;
with Windows.Foundation;
with Windows.Foundation.Collections;
limited with Windows.Graphics;
limited with Windows.Graphics.DirectX;
limited with Windows.Graphics.DirectX.Direct3D11;
limited with Windows.Storage.Streams;
with Windows.Foundation.Numerics;
--------------------------------------------------------------------------------
package Windows.Devices.Display.Core is

   pragma preelaborate;
   
   ------------------------------------------------------------------------
   -- Enums
   ------------------------------------------------------------------------
   
   type DisplayBitsPerChannel is (
      None,
      Bpc6,
      Bpc8,
      Bpc10,
      Bpc12,
      Bpc14,
      Bpc16
   );
   for DisplayBitsPerChannel use (
      None => 0,
      Bpc6 => 1,
      Bpc8 => 2,
      Bpc10 => 4,
      Bpc12 => 8,
      Bpc14 => 16,
      Bpc16 => 32
   );
   for DisplayBitsPerChannel'Size use 32;
   
   type DisplayBitsPerChannel_Ptr is access DisplayBitsPerChannel;
   
   type DisplayDeviceCapability is (
      FlipOverride
   );
   for DisplayDeviceCapability use (
      FlipOverride => 0
   );
   for DisplayDeviceCapability'Size use 32;
   
   type DisplayDeviceCapability_Ptr is access DisplayDeviceCapability;
   
   type DisplayManagerOptions is (
      None,
      EnforceSourceOwnership
   );
   for DisplayManagerOptions use (
      None => 0,
      EnforceSourceOwnership => 1
   );
   for DisplayManagerOptions'Size use 32;
   
   type DisplayManagerOptions_Ptr is access DisplayManagerOptions;
   
   type DisplayManagerResult is (
      Success,
      UnknownFailure,
      TargetAccessDenied,
      TargetStale,
      RemoteSessionNotSupported
   );
   for DisplayManagerResult use (
      Success => 0,
      UnknownFailure => 1,
      TargetAccessDenied => 2,
      TargetStale => 3,
      RemoteSessionNotSupported => 4
   );
   for DisplayManagerResult'Size use 32;
   
   type DisplayManagerResult_Ptr is access DisplayManagerResult;
   
   type DisplayModeQueryOptions is (
      None,
      OnlyPreferredResolution
   );
   for DisplayModeQueryOptions use (
      None => 0,
      OnlyPreferredResolution => 1
   );
   for DisplayModeQueryOptions'Size use 32;
   
   type DisplayModeQueryOptions_Ptr is access DisplayModeQueryOptions;
   
   type DisplayPathScaling is (
      Identity,
      Centered,
      Stretched,
      AspectRatioStretched,
      Custom,
      DriverPreferred
   );
   for DisplayPathScaling use (
      Identity => 0,
      Centered => 1,
      Stretched => 2,
      AspectRatioStretched => 3,
      Custom => 4,
      DriverPreferred => 5
   );
   for DisplayPathScaling'Size use 32;
   
   type DisplayPathScaling_Ptr is access DisplayPathScaling;
   
   type DisplayPathStatus is (
      Unknown,
      Succeeded,
      Pending,
      Failed,
      FailedAsync,
      InvalidatedAsync
   );
   for DisplayPathStatus use (
      Unknown => 0,
      Succeeded => 1,
      Pending => 2,
      Failed => 3,
      FailedAsync => 4,
      InvalidatedAsync => 5
   );
   for DisplayPathStatus'Size use 32;
   
   type DisplayPathStatus_Ptr is access DisplayPathStatus;
   
   type DisplayRotation is (
      None,
      Clockwise90Degrees,
      Clockwise180Degrees,
      Clockwise270Degrees
   );
   for DisplayRotation use (
      None => 0,
      Clockwise90Degrees => 1,
      Clockwise180Degrees => 2,
      Clockwise270Degrees => 3
   );
   for DisplayRotation'Size use 32;
   
   type DisplayRotation_Ptr is access DisplayRotation;
   
   type DisplayStateApplyOptions is (
      None,
      FailIfStateChanged,
      ForceReapply,
      ForceModeEnumeration
   );
   for DisplayStateApplyOptions use (
      None => 0,
      FailIfStateChanged => 1,
      ForceReapply => 2,
      ForceModeEnumeration => 4
   );
   for DisplayStateApplyOptions'Size use 32;
   
   type DisplayStateApplyOptions_Ptr is access DisplayStateApplyOptions;
   
   type DisplayStateFunctionalizeOptions is (
      None,
      FailIfStateChanged,
      ValidateTopologyOnly
   );
   for DisplayStateFunctionalizeOptions use (
      None => 0,
      FailIfStateChanged => 1,
      ValidateTopologyOnly => 2
   );
   for DisplayStateFunctionalizeOptions'Size use 32;
   
   type DisplayStateFunctionalizeOptions_Ptr is access DisplayStateFunctionalizeOptions;
   
   type DisplayStateOperationStatus is (
      Success,
      PartialFailure,
      UnknownFailure,
      TargetOwnershipLost,
      SystemStateChanged,
      TooManyPathsForAdapter,
      ModesNotSupported,
      RemoteSessionNotSupported
   );
   for DisplayStateOperationStatus use (
      Success => 0,
      PartialFailure => 1,
      UnknownFailure => 2,
      TargetOwnershipLost => 3,
      SystemStateChanged => 4,
      TooManyPathsForAdapter => 5,
      ModesNotSupported => 6,
      RemoteSessionNotSupported => 7
   );
   for DisplayStateOperationStatus'Size use 32;
   
   type DisplayStateOperationStatus_Ptr is access DisplayStateOperationStatus;
   
   type DisplayTargetPersistence is (
      None,
      BootPersisted,
      TemporaryPersisted,
      PathPersisted
   );
   for DisplayTargetPersistence use (
      None => 0,
      BootPersisted => 1,
      TemporaryPersisted => 2,
      PathPersisted => 3
   );
   for DisplayTargetPersistence'Size use 32;
   
   type DisplayTargetPersistence_Ptr is access DisplayTargetPersistence;
   
   type DisplayTaskSignalKind is (
      OnPresentFlipAway
   );
   for DisplayTaskSignalKind use (
      OnPresentFlipAway => 0
   );
   for DisplayTaskSignalKind'Size use 32;
   
   type DisplayTaskSignalKind_Ptr is access DisplayTaskSignalKind;
   
   type DisplayWireFormatColorSpace is (
      BT709,
      BT2020,
      ProfileDefinedWideColorGamut
   );
   for DisplayWireFormatColorSpace use (
      BT709 => 0,
      BT2020 => 1,
      ProfileDefinedWideColorGamut => 2
   );
   for DisplayWireFormatColorSpace'Size use 32;
   
   type DisplayWireFormatColorSpace_Ptr is access DisplayWireFormatColorSpace;
   
   type DisplayWireFormatEotf is (
      Sdr,
      HdrSmpte2084
   );
   for DisplayWireFormatEotf use (
      Sdr => 0,
      HdrSmpte2084 => 1
   );
   for DisplayWireFormatEotf'Size use 32;
   
   type DisplayWireFormatEotf_Ptr is access DisplayWireFormatEotf;
   
   type DisplayWireFormatHdrMetadata is (
      None,
      Hdr10,
      Hdr10Plus,
      DolbyVisionLowLatency
   );
   for DisplayWireFormatHdrMetadata use (
      None => 0,
      Hdr10 => 1,
      Hdr10Plus => 2,
      DolbyVisionLowLatency => 3
   );
   for DisplayWireFormatHdrMetadata'Size use 32;
   
   type DisplayWireFormatHdrMetadata_Ptr is access DisplayWireFormatHdrMetadata;
   
   type DisplayWireFormatPixelEncoding is (
      Rgb444,
      Ycc444,
      Ycc422,
      Ycc420,
      Intensity
   );
   for DisplayWireFormatPixelEncoding use (
      Rgb444 => 0,
      Ycc444 => 1,
      Ycc422 => 2,
      Ycc420 => 3,
      Intensity => 4
   );
   for DisplayWireFormatPixelEncoding'Size use 32;
   
   type DisplayWireFormatPixelEncoding_Ptr is access DisplayWireFormatPixelEncoding;
   
   ------------------------------------------------------------------------
   -- Record types
   ------------------------------------------------------------------------
   
   type DisplayPresentationRate is record
      VerticalSyncRate : Windows.Foundation.Numerics.Rational;
      VerticalSyncsPerPresentation : Windows.Int32;
   end record;
   pragma Convention (C_Pass_By_Copy , DisplayPresentationRate);
   
   type DisplayPresentationRate_Ptr is access DisplayPresentationRate;
   
   ------------------------------------------------------------------------
   -- Forward Declaration - Delegates/Events
   ------------------------------------------------------------------------
   
   type TypedEventHandler_IDisplayManager_add_Changed_Interface;
   type TypedEventHandler_IDisplayManager_add_Changed is access all TypedEventHandler_IDisplayManager_add_Changed_Interface'Class;
   type TypedEventHandler_IDisplayManager_add_Changed_Ptr is access all TypedEventHandler_IDisplayManager_add_Changed;
   type TypedEventHandler_IDisplayManager_add_Disabled_Interface;
   type TypedEventHandler_IDisplayManager_add_Disabled is access all TypedEventHandler_IDisplayManager_add_Disabled_Interface'Class;
   type TypedEventHandler_IDisplayManager_add_Disabled_Ptr is access all TypedEventHandler_IDisplayManager_add_Disabled;
   type TypedEventHandler_IDisplayManager_add_Enabled_Interface;
   type TypedEventHandler_IDisplayManager_add_Enabled is access all TypedEventHandler_IDisplayManager_add_Enabled_Interface'Class;
   type TypedEventHandler_IDisplayManager_add_Enabled_Ptr is access all TypedEventHandler_IDisplayManager_add_Enabled;
   type TypedEventHandler_IDisplayManager_add_PathsFailedOrInvalidated_Interface;
   type TypedEventHandler_IDisplayManager_add_PathsFailedOrInvalidated is access all TypedEventHandler_IDisplayManager_add_PathsFailedOrInvalidated_Interface'Class;
   type TypedEventHandler_IDisplayManager_add_PathsFailedOrInvalidated_Ptr is access all TypedEventHandler_IDisplayManager_add_PathsFailedOrInvalidated;
   
   ------------------------------------------------------------------------
   -- Forward Declaration - Interfaces
   ------------------------------------------------------------------------
   
   type IDisplayAdapter_Interface;
   type IDisplayAdapter is access all IDisplayAdapter_Interface'Class;
   type IDisplayAdapter_Ptr is access all IDisplayAdapter;
   type IDisplayAdapterStatics_Interface;
   type IDisplayAdapterStatics is access all IDisplayAdapterStatics_Interface'Class;
   type IDisplayAdapterStatics_Ptr is access all IDisplayAdapterStatics;
   type IDisplayDevice_Interface;
   type IDisplayDevice is access all IDisplayDevice_Interface'Class;
   type IDisplayDevice_Ptr is access all IDisplayDevice;
   type IDisplayFence_Interface;
   type IDisplayFence is access all IDisplayFence_Interface'Class;
   type IDisplayFence_Ptr is access all IDisplayFence;
   type IDisplayManager_Interface;
   type IDisplayManager is access all IDisplayManager_Interface'Class;
   type IDisplayManager_Ptr is access all IDisplayManager;
   type IDisplayManagerChangedEventArgs_Interface;
   type IDisplayManagerChangedEventArgs is access all IDisplayManagerChangedEventArgs_Interface'Class;
   type IDisplayManagerChangedEventArgs_Ptr is access all IDisplayManagerChangedEventArgs;
   type IDisplayManagerDisabledEventArgs_Interface;
   type IDisplayManagerDisabledEventArgs is access all IDisplayManagerDisabledEventArgs_Interface'Class;
   type IDisplayManagerDisabledEventArgs_Ptr is access all IDisplayManagerDisabledEventArgs;
   type IDisplayManagerEnabledEventArgs_Interface;
   type IDisplayManagerEnabledEventArgs is access all IDisplayManagerEnabledEventArgs_Interface'Class;
   type IDisplayManagerEnabledEventArgs_Ptr is access all IDisplayManagerEnabledEventArgs;
   type IDisplayManagerPathsFailedOrInvalidatedEventArgs_Interface;
   type IDisplayManagerPathsFailedOrInvalidatedEventArgs is access all IDisplayManagerPathsFailedOrInvalidatedEventArgs_Interface'Class;
   type IDisplayManagerPathsFailedOrInvalidatedEventArgs_Ptr is access all IDisplayManagerPathsFailedOrInvalidatedEventArgs;
   type IDisplayManagerResultWithState_Interface;
   type IDisplayManagerResultWithState is access all IDisplayManagerResultWithState_Interface'Class;
   type IDisplayManagerResultWithState_Ptr is access all IDisplayManagerResultWithState;
   type IDisplayManagerStatics_Interface;
   type IDisplayManagerStatics is access all IDisplayManagerStatics_Interface'Class;
   type IDisplayManagerStatics_Ptr is access all IDisplayManagerStatics;
   type IDisplayModeInfo_Interface;
   type IDisplayModeInfo is access all IDisplayModeInfo_Interface'Class;
   type IDisplayModeInfo_Ptr is access all IDisplayModeInfo;
   type IDisplayPath_Interface;
   type IDisplayPath is access all IDisplayPath_Interface'Class;
   type IDisplayPath_Ptr is access all IDisplayPath;
   type IDisplayPrimaryDescription_Interface;
   type IDisplayPrimaryDescription is access all IDisplayPrimaryDescription_Interface'Class;
   type IDisplayPrimaryDescription_Ptr is access all IDisplayPrimaryDescription;
   type IDisplayPrimaryDescriptionFactory_Interface;
   type IDisplayPrimaryDescriptionFactory is access all IDisplayPrimaryDescriptionFactory_Interface'Class;
   type IDisplayPrimaryDescriptionFactory_Ptr is access all IDisplayPrimaryDescriptionFactory;
   type IDisplayPrimaryDescriptionStatics_Interface;
   type IDisplayPrimaryDescriptionStatics is access all IDisplayPrimaryDescriptionStatics_Interface'Class;
   type IDisplayPrimaryDescriptionStatics_Ptr is access all IDisplayPrimaryDescriptionStatics;
   type IDisplayScanout_Interface;
   type IDisplayScanout is access all IDisplayScanout_Interface'Class;
   type IDisplayScanout_Ptr is access all IDisplayScanout;
   type IDisplaySource_Interface;
   type IDisplaySource is access all IDisplaySource_Interface'Class;
   type IDisplaySource_Ptr is access all IDisplaySource;
   type IDisplayState_Interface;
   type IDisplayState is access all IDisplayState_Interface'Class;
   type IDisplayState_Ptr is access all IDisplayState;
   type IDisplayStateOperationResult_Interface;
   type IDisplayStateOperationResult is access all IDisplayStateOperationResult_Interface'Class;
   type IDisplayStateOperationResult_Ptr is access all IDisplayStateOperationResult;
   type IDisplaySurface_Interface;
   type IDisplaySurface is access all IDisplaySurface_Interface'Class;
   type IDisplaySurface_Ptr is access all IDisplaySurface;
   type IDisplayTarget_Interface;
   type IDisplayTarget is access all IDisplayTarget_Interface'Class;
   type IDisplayTarget_Ptr is access all IDisplayTarget;
   type IDisplayTask_Interface;
   type IDisplayTask is access all IDisplayTask_Interface'Class;
   type IDisplayTask_Ptr is access all IDisplayTask;
   type IDisplayTaskPool_Interface;
   type IDisplayTaskPool is access all IDisplayTaskPool_Interface'Class;
   type IDisplayTaskPool_Ptr is access all IDisplayTaskPool;
   type IDisplayView_Interface;
   type IDisplayView is access all IDisplayView_Interface'Class;
   type IDisplayView_Ptr is access all IDisplayView;
   type IDisplayWireFormat_Interface;
   type IDisplayWireFormat is access all IDisplayWireFormat_Interface'Class;
   type IDisplayWireFormat_Ptr is access all IDisplayWireFormat;
   type IDisplayWireFormatFactory_Interface;
   type IDisplayWireFormatFactory is access all IDisplayWireFormatFactory_Interface'Class;
   type IDisplayWireFormatFactory_Ptr is access all IDisplayWireFormatFactory;
   type IDisplayWireFormatStatics_Interface;
   type IDisplayWireFormatStatics is access all IDisplayWireFormatStatics_Interface'Class;
   type IDisplayWireFormatStatics_Ptr is access all IDisplayWireFormatStatics;
   type IIterable_IDisplayAdapter_Interface;
   type IIterable_IDisplayAdapter is access all IIterable_IDisplayAdapter_Interface'Class;
   type IIterable_IDisplayAdapter_Ptr is access all IIterable_IDisplayAdapter;
   type IIterable_IDisplayModeInfo_Interface;
   type IIterable_IDisplayModeInfo is access all IIterable_IDisplayModeInfo_Interface'Class;
   type IIterable_IDisplayModeInfo_Ptr is access all IIterable_IDisplayModeInfo;
   type IIterable_IDisplayPath_Interface;
   type IIterable_IDisplayPath is access all IIterable_IDisplayPath_Interface'Class;
   type IIterable_IDisplayPath_Ptr is access all IIterable_IDisplayPath;
   type IIterable_IDisplayTarget_Interface;
   type IIterable_IDisplayTarget is access all IIterable_IDisplayTarget_Interface'Class;
   type IIterable_IDisplayTarget_Ptr is access all IIterable_IDisplayTarget;
   type IIterable_IDisplayView_Interface;
   type IIterable_IDisplayView is access all IIterable_IDisplayView_Interface'Class;
   type IIterable_IDisplayView_Ptr is access all IIterable_IDisplayView;
   type IIterator_IDisplayAdapter_Interface;
   type IIterator_IDisplayAdapter is access all IIterator_IDisplayAdapter_Interface'Class;
   type IIterator_IDisplayAdapter_Ptr is access all IIterator_IDisplayAdapter;
   type IIterator_IDisplayModeInfo_Interface;
   type IIterator_IDisplayModeInfo is access all IIterator_IDisplayModeInfo_Interface'Class;
   type IIterator_IDisplayModeInfo_Ptr is access all IIterator_IDisplayModeInfo;
   type IIterator_IDisplayPath_Interface;
   type IIterator_IDisplayPath is access all IIterator_IDisplayPath_Interface'Class;
   type IIterator_IDisplayPath_Ptr is access all IIterator_IDisplayPath;
   type IIterator_IDisplayTarget_Interface;
   type IIterator_IDisplayTarget is access all IIterator_IDisplayTarget_Interface'Class;
   type IIterator_IDisplayTarget_Ptr is access all IIterator_IDisplayTarget;
   type IIterator_IDisplayView_Interface;
   type IIterator_IDisplayView is access all IIterator_IDisplayView_Interface'Class;
   type IIterator_IDisplayView_Ptr is access all IIterator_IDisplayView;
   type IReference_DisplayPresentationRate_Interface;
   type IReference_DisplayPresentationRate is access all IReference_DisplayPresentationRate_Interface'Class;
   type IReference_DisplayPresentationRate_Ptr is access all IReference_DisplayPresentationRate;
   type IVectorView_IDisplayAdapter_Interface;
   type IVectorView_IDisplayAdapter is access all IVectorView_IDisplayAdapter_Interface'Class;
   type IVectorView_IDisplayAdapter_Ptr is access all IVectorView_IDisplayAdapter;
   type IVectorView_IDisplayModeInfo_Interface;
   type IVectorView_IDisplayModeInfo is access all IVectorView_IDisplayModeInfo_Interface'Class;
   type IVectorView_IDisplayModeInfo_Ptr is access all IVectorView_IDisplayModeInfo;
   type IVectorView_IDisplayPath_Interface;
   type IVectorView_IDisplayPath is access all IVectorView_IDisplayPath_Interface'Class;
   type IVectorView_IDisplayPath_Ptr is access all IVectorView_IDisplayPath;
   type IVectorView_IDisplayTarget_Interface;
   type IVectorView_IDisplayTarget is access all IVectorView_IDisplayTarget_Interface'Class;
   type IVectorView_IDisplayTarget_Ptr is access all IVectorView_IDisplayTarget;
   type IVectorView_IDisplayView_Interface;
   type IVectorView_IDisplayView is access all IVectorView_IDisplayView_Interface'Class;
   type IVectorView_IDisplayView_Ptr is access all IVectorView_IDisplayView;
   
   ------------------------------------------------------------------------
   -- Interfaces
   ------------------------------------------------------------------------
   
   ------------------------------------------------------------------------
   
   IID_IDisplayAdapter : aliased constant Windows.IID := (2775536263, 61440, 24366, (181, 172, 55, 131, 162, 182, 154, 245 ));
   
   type IDisplayAdapter_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Id
   (
      This       : access IDisplayAdapter_Interface
      ; RetVal : access Windows.Graphics.DisplayAdapterId
   )
   return Windows.HRESULT is abstract;
   
   function get_DeviceInterfacePath
   (
      This       : access IDisplayAdapter_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_SourceCount
   (
      This       : access IDisplayAdapter_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_PciVendorId
   (
      This       : access IDisplayAdapter_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_PciDeviceId
   (
      This       : access IDisplayAdapter_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_PciSubSystemId
   (
      This       : access IDisplayAdapter_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_PciRevision
   (
      This       : access IDisplayAdapter_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_Properties
   (
      This       : access IDisplayAdapter_Interface
      ; RetVal : access Windows.Address -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayAdapterStatics : aliased constant Windows.IID := (497827034, 18463, 21609, (132, 112, 130, 196, 186, 104, 10, 40 ));
   
   type IDisplayAdapterStatics_Interface is interface and Windows.IInspectable_Interface;
   
   function FromId
   (
      This       : access IDisplayAdapterStatics_Interface
      ; id : Windows.Graphics.DisplayAdapterId
      ; RetVal : access Windows.Devices.Display.Core.IDisplayAdapter
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayDevice : aliased constant Windows.IID := (2764682796, 13151, 22321, (140, 180, 193, 204, 212, 115, 16, 112 ));
   
   type IDisplayDevice_Interface is interface and Windows.IInspectable_Interface;
   
   function CreateScanoutSource
   (
      This       : access IDisplayDevice_Interface
      ; target : Windows.Devices.Display.Core.IDisplayTarget
      ; RetVal : access Windows.Devices.Display.Core.IDisplaySource
   )
   return Windows.HRESULT is abstract;
   
   function CreatePrimary
   (
      This       : access IDisplayDevice_Interface
      ; target : Windows.Devices.Display.Core.IDisplayTarget
      ; desc : Windows.Devices.Display.Core.IDisplayPrimaryDescription
      ; RetVal : access Windows.Devices.Display.Core.IDisplaySurface
   )
   return Windows.HRESULT is abstract;
   
   function CreateTaskPool
   (
      This       : access IDisplayDevice_Interface
      ; RetVal : access Windows.Devices.Display.Core.IDisplayTaskPool
   )
   return Windows.HRESULT is abstract;
   
   function CreatePeriodicFence
   (
      This       : access IDisplayDevice_Interface
      ; target : Windows.Devices.Display.Core.IDisplayTarget
      ; offsetFromVBlank : Windows.Foundation.TimeSpan
      ; RetVal : access Windows.Devices.Display.Core.IDisplayFence
   )
   return Windows.HRESULT is abstract;
   
   function WaitForVBlank
   (
      This       : access IDisplayDevice_Interface
      ; source : Windows.Devices.Display.Core.IDisplaySource
   )
   return Windows.HRESULT is abstract;
   
   function CreateSimpleScanout
   (
      This       : access IDisplayDevice_Interface
      ; pSource : Windows.Devices.Display.Core.IDisplaySource
      ; pSurface : Windows.Devices.Display.Core.IDisplaySurface
      ; SubResourceIndex : Windows.UInt32
      ; SyncInterval : Windows.UInt32
      ; RetVal : access Windows.Devices.Display.Core.IDisplayScanout
   )
   return Windows.HRESULT is abstract;
   
   function IsCapabilitySupported
   (
      This       : access IDisplayDevice_Interface
      ; capability : Windows.Devices.Display.Core.DisplayDeviceCapability
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayFence : aliased constant Windows.IID := (81590767, 13318, 22272, (143, 236, 119, 235, 164, 197, 167, 75 ));
   
   type IDisplayFence_Interface is interface and Windows.IInspectable_Interface;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayManager : aliased constant Windows.IID := (1322853467, 5612, 22242, (144, 114, 127, 229, 8, 74, 49, 167 ));
   
   type IDisplayManager_Interface is interface and Windows.IInspectable_Interface;
   
   function GetCurrentTargets
   (
      This       : access IDisplayManager_Interface
      ; RetVal : access Windows.Devices.Display.Core.IVectorView_IDisplayTarget -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function GetCurrentAdapters
   (
      This       : access IDisplayManager_Interface
      ; RetVal : access Windows.Devices.Display.Core.IVectorView_IDisplayAdapter -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TryAcquireTarget
   (
      This       : access IDisplayManager_Interface
      ; target : Windows.Devices.Display.Core.IDisplayTarget
      ; RetVal : access Windows.Devices.Display.Core.DisplayManagerResult
   )
   return Windows.HRESULT is abstract;
   
   function ReleaseTarget
   (
      This       : access IDisplayManager_Interface
      ; target : Windows.Devices.Display.Core.IDisplayTarget
   )
   return Windows.HRESULT is abstract;
   
   function TryReadCurrentStateForAllTargets
   (
      This       : access IDisplayManager_Interface
      ; RetVal : access Windows.Devices.Display.Core.IDisplayManagerResultWithState
   )
   return Windows.HRESULT is abstract;
   
   function TryAcquireTargetsAndReadCurrentState
   (
      This       : access IDisplayManager_Interface
      ; targets : Windows.Devices.Display.Core.IIterable_IDisplayTarget
      ; RetVal : access Windows.Devices.Display.Core.IDisplayManagerResultWithState
   )
   return Windows.HRESULT is abstract;
   
   function TryAcquireTargetsAndCreateEmptyState
   (
      This       : access IDisplayManager_Interface
      ; targets : Windows.Devices.Display.Core.IIterable_IDisplayTarget
      ; RetVal : access Windows.Devices.Display.Core.IDisplayManagerResultWithState
   )
   return Windows.HRESULT is abstract;
   
   function TryAcquireTargetsAndCreateSubstate
   (
      This       : access IDisplayManager_Interface
      ; existingState : Windows.Devices.Display.Core.IDisplayState
      ; targets : Windows.Devices.Display.Core.IIterable_IDisplayTarget
      ; RetVal : access Windows.Devices.Display.Core.IDisplayManagerResultWithState
   )
   return Windows.HRESULT is abstract;
   
   function CreateDisplayDevice
   (
      This       : access IDisplayManager_Interface
      ; adapter : Windows.Devices.Display.Core.IDisplayAdapter
      ; RetVal : access Windows.Devices.Display.Core.IDisplayDevice
   )
   return Windows.HRESULT is abstract;
   
   function add_Enabled
   (
      This       : access IDisplayManager_Interface
      ; handler : TypedEventHandler_IDisplayManager_add_Enabled
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_Enabled
   (
      This       : access IDisplayManager_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function add_Disabled
   (
      This       : access IDisplayManager_Interface
      ; handler : TypedEventHandler_IDisplayManager_add_Disabled
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_Disabled
   (
      This       : access IDisplayManager_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function add_Changed
   (
      This       : access IDisplayManager_Interface
      ; handler : TypedEventHandler_IDisplayManager_add_Changed
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_Changed
   (
      This       : access IDisplayManager_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function add_PathsFailedOrInvalidated
   (
      This       : access IDisplayManager_Interface
      ; handler : TypedEventHandler_IDisplayManager_add_PathsFailedOrInvalidated
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_PathsFailedOrInvalidated
   (
      This       : access IDisplayManager_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function Start
   (
      This       : access IDisplayManager_Interface
   )
   return Windows.HRESULT is abstract;
   
   function Stop
   (
      This       : access IDisplayManager_Interface
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayManagerChangedEventArgs : aliased constant Windows.IID := (1790943877, 27850, 22321, (188, 220, 66, 229, 210, 245, 197, 15 ));
   
   type IDisplayManagerChangedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Handled
   (
      This       : access IDisplayManagerChangedEventArgs_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function put_Handled
   (
      This       : access IDisplayManagerChangedEventArgs_Interface
      ; value : Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetDeferral
   (
      This       : access IDisplayManagerChangedEventArgs_Interface
      ; RetVal : access Windows.Foundation.IDeferral
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayManagerDisabledEventArgs : aliased constant Windows.IID := (2267471332, 26515, 22899, (161, 31, 95, 251, 201, 63, 219, 144 ));
   
   type IDisplayManagerDisabledEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Handled
   (
      This       : access IDisplayManagerDisabledEventArgs_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function put_Handled
   (
      This       : access IDisplayManagerDisabledEventArgs_Interface
      ; value : Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetDeferral
   (
      This       : access IDisplayManagerDisabledEventArgs_Interface
      ; RetVal : access Windows.Foundation.IDeferral
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayManagerEnabledEventArgs : aliased constant Windows.IID := (4040114031, 17146, 22946, (178, 151, 38, 225, 113, 61, 232, 72 ));
   
   type IDisplayManagerEnabledEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Handled
   (
      This       : access IDisplayManagerEnabledEventArgs_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function put_Handled
   (
      This       : access IDisplayManagerEnabledEventArgs_Interface
      ; value : Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetDeferral
   (
      This       : access IDisplayManagerEnabledEventArgs_Interface
      ; RetVal : access Windows.Foundation.IDeferral
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayManagerPathsFailedOrInvalidatedEventArgs : aliased constant Windows.IID := (61232729, 7660, 23573, (178, 162, 143, 233, 18, 152, 105, 254 ));
   
   type IDisplayManagerPathsFailedOrInvalidatedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Handled
   (
      This       : access IDisplayManagerPathsFailedOrInvalidatedEventArgs_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function put_Handled
   (
      This       : access IDisplayManagerPathsFailedOrInvalidatedEventArgs_Interface
      ; value : Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetDeferral
   (
      This       : access IDisplayManagerPathsFailedOrInvalidatedEventArgs_Interface
      ; RetVal : access Windows.Foundation.IDeferral
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayManagerResultWithState : aliased constant Windows.IID := (2389011110, 26132, 21694, (191, 239, 73, 148, 84, 127, 123, 225 ));
   
   type IDisplayManagerResultWithState_Interface is interface and Windows.IInspectable_Interface;
   
   function get_ErrorCode
   (
      This       : access IDisplayManagerResultWithState_Interface
      ; RetVal : access Windows.Devices.Display.Core.DisplayManagerResult
   )
   return Windows.HRESULT is abstract;
   
   function get_ExtendedErrorCode
   (
      This       : access IDisplayManagerResultWithState_Interface
      ; RetVal : access Windows.HResult
   )
   return Windows.HRESULT is abstract;
   
   function get_State
   (
      This       : access IDisplayManagerResultWithState_Interface
      ; RetVal : access Windows.Devices.Display.Core.IDisplayState
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayManagerStatics : aliased constant Windows.IID := (728470598, 47513, 21813, (157, 105, 83, 240, 146, 199, 128, 161 ));
   
   type IDisplayManagerStatics_Interface is interface and Windows.IInspectable_Interface;
   
   function Create
   (
      This       : access IDisplayManagerStatics_Interface
      ; options : Windows.Devices.Display.Core.DisplayManagerOptions
      ; RetVal : access Windows.Devices.Display.Core.IDisplayManager
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayModeInfo : aliased constant Windows.IID := (1221923744, 63387, 23156, (160, 94, 218, 130, 31, 71, 8, 104 ));
   
   type IDisplayModeInfo_Interface is interface and Windows.IInspectable_Interface;
   
   function get_SourceResolution
   (
      This       : access IDisplayModeInfo_Interface
      ; RetVal : access Windows.Graphics.SizeInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_IsStereo
   (
      This       : access IDisplayModeInfo_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_SourcePixelFormat
   (
      This       : access IDisplayModeInfo_Interface
      ; RetVal : access Windows.Graphics.DirectX.DirectXPixelFormat
   )
   return Windows.HRESULT is abstract;
   
   function get_TargetResolution
   (
      This       : access IDisplayModeInfo_Interface
      ; RetVal : access Windows.Graphics.SizeInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_PresentationRate
   (
      This       : access IDisplayModeInfo_Interface
      ; RetVal : access Windows.Devices.Display.Core.DisplayPresentationRate
   )
   return Windows.HRESULT is abstract;
   
   function get_IsInterlaced
   (
      This       : access IDisplayModeInfo_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetWireFormatSupportedBitsPerChannel
   (
      This       : access IDisplayModeInfo_Interface
      ; encoding : Windows.Devices.Display.Core.DisplayWireFormatPixelEncoding
      ; RetVal : access Windows.Devices.Display.Core.DisplayBitsPerChannel
   )
   return Windows.HRESULT is abstract;
   
   function IsWireFormatSupported
   (
      This       : access IDisplayModeInfo_Interface
      ; wireFormat : Windows.Devices.Display.Core.IDisplayWireFormat
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_Properties
   (
      This       : access IDisplayModeInfo_Interface
      ; RetVal : access Windows.Address -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayPath : aliased constant Windows.IID := (3017791050, 29792, 23774, (129, 27, 213, 174, 159, 61, 159, 132 ));
   
   type IDisplayPath_Interface is interface and Windows.IInspectable_Interface;
   
   function get_View
   (
      This       : access IDisplayPath_Interface
      ; RetVal : access Windows.Devices.Display.Core.IDisplayView
   )
   return Windows.HRESULT is abstract;
   
   function get_Target
   (
      This       : access IDisplayPath_Interface
      ; RetVal : access Windows.Devices.Display.Core.IDisplayTarget
   )
   return Windows.HRESULT is abstract;
   
   function get_Status
   (
      This       : access IDisplayPath_Interface
      ; RetVal : access Windows.Devices.Display.Core.DisplayPathStatus
   )
   return Windows.HRESULT is abstract;
   
   function get_SourceResolution
   (
      This       : access IDisplayPath_Interface
      ; RetVal : access Windows.Graphics.IReference_SizeInt32 -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_SourceResolution
   (
      This       : access IDisplayPath_Interface
      ; value : Windows.Graphics.IReference_SizeInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_SourcePixelFormat
   (
      This       : access IDisplayPath_Interface
      ; RetVal : access Windows.Graphics.DirectX.DirectXPixelFormat
   )
   return Windows.HRESULT is abstract;
   
   function put_SourcePixelFormat
   (
      This       : access IDisplayPath_Interface
      ; value : Windows.Graphics.DirectX.DirectXPixelFormat
   )
   return Windows.HRESULT is abstract;
   
   function get_IsStereo
   (
      This       : access IDisplayPath_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function put_IsStereo
   (
      This       : access IDisplayPath_Interface
      ; value : Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_TargetResolution
   (
      This       : access IDisplayPath_Interface
      ; RetVal : access Windows.Graphics.IReference_SizeInt32 -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_TargetResolution
   (
      This       : access IDisplayPath_Interface
      ; value : Windows.Graphics.IReference_SizeInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_PresentationRate
   (
      This       : access IDisplayPath_Interface
      ; RetVal : access Windows.Devices.Display.Core.IReference_DisplayPresentationRate -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_PresentationRate
   (
      This       : access IDisplayPath_Interface
      ; value : Windows.Devices.Display.Core.IReference_DisplayPresentationRate
   )
   return Windows.HRESULT is abstract;
   
   function get_IsInterlaced
   (
      This       : access IDisplayPath_Interface
      ; RetVal : access Windows.Foundation.IReference_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_IsInterlaced
   (
      This       : access IDisplayPath_Interface
      ; value : Windows.Foundation.IReference_Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_WireFormat
   (
      This       : access IDisplayPath_Interface
      ; RetVal : access Windows.Devices.Display.Core.IDisplayWireFormat
   )
   return Windows.HRESULT is abstract;
   
   function put_WireFormat
   (
      This       : access IDisplayPath_Interface
      ; value : Windows.Devices.Display.Core.IDisplayWireFormat
   )
   return Windows.HRESULT is abstract;
   
   function get_Rotation
   (
      This       : access IDisplayPath_Interface
      ; RetVal : access Windows.Devices.Display.Core.DisplayRotation
   )
   return Windows.HRESULT is abstract;
   
   function put_Rotation
   (
      This       : access IDisplayPath_Interface
      ; value : Windows.Devices.Display.Core.DisplayRotation
   )
   return Windows.HRESULT is abstract;
   
   function get_Scaling
   (
      This       : access IDisplayPath_Interface
      ; RetVal : access Windows.Devices.Display.Core.DisplayPathScaling
   )
   return Windows.HRESULT is abstract;
   
   function put_Scaling
   (
      This       : access IDisplayPath_Interface
      ; value : Windows.Devices.Display.Core.DisplayPathScaling
   )
   return Windows.HRESULT is abstract;
   
   function FindModes
   (
      This       : access IDisplayPath_Interface
      ; flags : Windows.Devices.Display.Core.DisplayModeQueryOptions
      ; RetVal : access Windows.Devices.Display.Core.IVectorView_IDisplayModeInfo -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function ApplyPropertiesFromMode
   (
      This       : access IDisplayPath_Interface
      ; modeResult : Windows.Devices.Display.Core.IDisplayModeInfo
   )
   return Windows.HRESULT is abstract;
   
   function get_Properties
   (
      This       : access IDisplayPath_Interface
      ; RetVal : access Windows.Address -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayPrimaryDescription : aliased constant Windows.IID := (2267386322, 54579, 20735, (168, 94, 6, 105, 97, 148, 183, 124 ));
   
   type IDisplayPrimaryDescription_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Width
   (
      This       : access IDisplayPrimaryDescription_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_Height
   (
      This       : access IDisplayPrimaryDescription_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_Format
   (
      This       : access IDisplayPrimaryDescription_Interface
      ; RetVal : access Windows.Graphics.DirectX.DirectXPixelFormat
   )
   return Windows.HRESULT is abstract;
   
   function get_ColorSpace
   (
      This       : access IDisplayPrimaryDescription_Interface
      ; RetVal : access Windows.Graphics.DirectX.DirectXColorSpace
   )
   return Windows.HRESULT is abstract;
   
   function get_IsStereo
   (
      This       : access IDisplayPrimaryDescription_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_MultisampleDescription
   (
      This       : access IDisplayPrimaryDescription_Interface
      ; RetVal : access Windows.Graphics.DirectX.Direct3D11.Direct3DMultisampleDescription
   )
   return Windows.HRESULT is abstract;
   
   function get_Properties
   (
      This       : access IDisplayPrimaryDescription_Interface
      ; RetVal : access Windows.Address -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayPrimaryDescriptionFactory : aliased constant Windows.IID := (443219835, 13879, 23622, (180, 121, 118, 213, 118, 33, 110, 101 ));
   
   type IDisplayPrimaryDescriptionFactory_Interface is interface and Windows.IInspectable_Interface;
   
   function CreateInstance
   (
      This       : access IDisplayPrimaryDescriptionFactory_Interface
      ; width : Windows.UInt32
      ; height : Windows.UInt32
      ; pixelFormat : Windows.Graphics.DirectX.DirectXPixelFormat
      ; colorSpace : Windows.Graphics.DirectX.DirectXColorSpace
      ; isStereo : Windows.Boolean
      ; multisampleDescription : Windows.Graphics.DirectX.Direct3D11.Direct3DMultisampleDescription
      ; RetVal : access Windows.Devices.Display.Core.IDisplayPrimaryDescription
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayPrimaryDescriptionStatics : aliased constant Windows.IID := (3859696891, 14025, 22237, (143, 161, 111, 248, 196, 224, 255, 7 ));
   
   type IDisplayPrimaryDescriptionStatics_Interface is interface and Windows.IInspectable_Interface;
   
   function CreateWithProperties
   (
      This       : access IDisplayPrimaryDescriptionStatics_Interface
      ; extraProperties : Windows.Address
      ; width : Windows.UInt32
      ; height : Windows.UInt32
      ; pixelFormat : Windows.Graphics.DirectX.DirectXPixelFormat
      ; colorSpace : Windows.Graphics.DirectX.DirectXColorSpace
      ; isStereo : Windows.Boolean
      ; multisampleDescription : Windows.Graphics.DirectX.Direct3D11.Direct3DMultisampleDescription
      ; RetVal : access Windows.Devices.Display.Core.IDisplayPrimaryDescription
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayScanout : aliased constant Windows.IID := (3808761896, 7077, 20711, (138, 57, 187, 31, 210, 244, 248, 185 ));
   
   type IDisplayScanout_Interface is interface and Windows.IInspectable_Interface;
   
   ------------------------------------------------------------------------
   
   IID_IDisplaySource : aliased constant Windows.IID := (3973144513, 60124, 20924, (151, 29, 59, 198, 40, 219, 45, 212 ));
   
   type IDisplaySource_Interface is interface and Windows.IInspectable_Interface;
   
   function get_AdapterId
   (
      This       : access IDisplaySource_Interface
      ; RetVal : access Windows.Graphics.DisplayAdapterId
   )
   return Windows.HRESULT is abstract;
   
   function get_SourceId
   (
      This       : access IDisplaySource_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function GetMetadata
   (
      This       : access IDisplaySource_Interface
      ; Key : Windows.Guid
      ; RetVal : access Windows.Storage.Streams.IBuffer
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayState : aliased constant Windows.IID := (135435041, 4533, 23730, (153, 248, 233, 11, 71, 154, 138, 29 ));
   
   type IDisplayState_Interface is interface and Windows.IInspectable_Interface;
   
   function get_IsReadOnly
   (
      This       : access IDisplayState_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsStale
   (
      This       : access IDisplayState_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_Targets
   (
      This       : access IDisplayState_Interface
      ; RetVal : access Windows.Devices.Display.Core.IVectorView_IDisplayTarget -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function get_Views
   (
      This       : access IDisplayState_Interface
      ; RetVal : access Windows.Devices.Display.Core.IVectorView_IDisplayView -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function get_Properties
   (
      This       : access IDisplayState_Interface
      ; RetVal : access Windows.Address -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function ConnectTarget
   (
      This       : access IDisplayState_Interface
      ; target : Windows.Devices.Display.Core.IDisplayTarget
      ; RetVal : access Windows.Devices.Display.Core.IDisplayPath
   )
   return Windows.HRESULT is abstract;
   
   function ConnectTargetToView
   (
      This       : access IDisplayState_Interface
      ; target : Windows.Devices.Display.Core.IDisplayTarget
      ; view : Windows.Devices.Display.Core.IDisplayView
      ; RetVal : access Windows.Devices.Display.Core.IDisplayPath
   )
   return Windows.HRESULT is abstract;
   
   function CanConnectTargetToView
   (
      This       : access IDisplayState_Interface
      ; target : Windows.Devices.Display.Core.IDisplayTarget
      ; view : Windows.Devices.Display.Core.IDisplayView
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetViewForTarget
   (
      This       : access IDisplayState_Interface
      ; target : Windows.Devices.Display.Core.IDisplayTarget
      ; RetVal : access Windows.Devices.Display.Core.IDisplayView
   )
   return Windows.HRESULT is abstract;
   
   function GetPathForTarget
   (
      This       : access IDisplayState_Interface
      ; target : Windows.Devices.Display.Core.IDisplayTarget
      ; RetVal : access Windows.Devices.Display.Core.IDisplayPath
   )
   return Windows.HRESULT is abstract;
   
   function DisconnectTarget
   (
      This       : access IDisplayState_Interface
      ; target : Windows.Devices.Display.Core.IDisplayTarget
   )
   return Windows.HRESULT is abstract;
   
   function TryFunctionalize
   (
      This       : access IDisplayState_Interface
      ; options : Windows.Devices.Display.Core.DisplayStateFunctionalizeOptions
      ; RetVal : access Windows.Devices.Display.Core.IDisplayStateOperationResult
   )
   return Windows.HRESULT is abstract;
   
   function TryApply
   (
      This       : access IDisplayState_Interface
      ; options : Windows.Devices.Display.Core.DisplayStateApplyOptions
      ; RetVal : access Windows.Devices.Display.Core.IDisplayStateOperationResult
   )
   return Windows.HRESULT is abstract;
   
   function Clone
   (
      This       : access IDisplayState_Interface
      ; RetVal : access Windows.Devices.Display.Core.IDisplayState
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayStateOperationResult : aliased constant Windows.IID := (4239245279, 56359, 22072, (183, 242, 235, 223, 164, 247, 234, 147 ));
   
   type IDisplayStateOperationResult_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Status
   (
      This       : access IDisplayStateOperationResult_Interface
      ; RetVal : access Windows.Devices.Display.Core.DisplayStateOperationStatus
   )
   return Windows.HRESULT is abstract;
   
   function get_ExtendedErrorCode
   (
      This       : access IDisplayStateOperationResult_Interface
      ; RetVal : access Windows.HResult
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplaySurface : aliased constant Windows.IID := (1498377414, 5018, 22230, (164, 177, 21, 254, 44, 183, 106, 219 ));
   
   type IDisplaySurface_Interface is interface and Windows.IInspectable_Interface;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayTarget : aliased constant Windows.IID := (2932178031, 18356, 21611, (152, 124, 231, 63, 167, 145, 254, 58 ));
   
   type IDisplayTarget_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Adapter
   (
      This       : access IDisplayTarget_Interface
      ; RetVal : access Windows.Devices.Display.Core.IDisplayAdapter
   )
   return Windows.HRESULT is abstract;
   
   function get_DeviceInterfacePath
   (
      This       : access IDisplayTarget_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_AdapterRelativeId
   (
      This       : access IDisplayTarget_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_IsConnected
   (
      This       : access IDisplayTarget_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsVirtualModeEnabled
   (
      This       : access IDisplayTarget_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsVirtualTopologyEnabled
   (
      This       : access IDisplayTarget_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_UsageKind
   (
      This       : access IDisplayTarget_Interface
      ; RetVal : access Windows.Devices.Display.DisplayMonitorUsageKind
   )
   return Windows.HRESULT is abstract;
   
   function get_MonitorPersistence
   (
      This       : access IDisplayTarget_Interface
      ; RetVal : access Windows.Devices.Display.Core.DisplayTargetPersistence
   )
   return Windows.HRESULT is abstract;
   
   function get_StableMonitorId
   (
      This       : access IDisplayTarget_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function TryGetMonitor
   (
      This       : access IDisplayTarget_Interface
      ; RetVal : access Windows.Devices.Display.IDisplayMonitor
   )
   return Windows.HRESULT is abstract;
   
   function get_Properties
   (
      This       : access IDisplayTarget_Interface
      ; RetVal : access Windows.Address -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function get_IsStale
   (
      This       : access IDisplayTarget_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function IsSame
   (
      This       : access IDisplayTarget_Interface
      ; otherTarget : Windows.Devices.Display.Core.IDisplayTarget
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function IsEqual
   (
      This       : access IDisplayTarget_Interface
      ; otherTarget : Windows.Devices.Display.Core.IDisplayTarget
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayTask : aliased constant Windows.IID := (1577612360, 4955, 23472, (191, 99, 99, 127, 132, 34, 124, 122 ));
   
   type IDisplayTask_Interface is interface and Windows.IInspectable_Interface;
   
   function SetScanout
   (
      This       : access IDisplayTask_Interface
      ; scanout : Windows.Devices.Display.Core.IDisplayScanout
   )
   return Windows.HRESULT is abstract;
   
   function SetWait
   (
      This       : access IDisplayTask_Interface
      ; readyFence : Windows.Devices.Display.Core.IDisplayFence
      ; readyFenceValue : Windows.UInt64
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayTaskPool : aliased constant Windows.IID := (3329631549, 9085, 21832, (170, 250, 62, 81, 127, 239, 239, 28 ));
   
   type IDisplayTaskPool_Interface is interface and Windows.IInspectable_Interface;
   
   function CreateTask
   (
      This       : access IDisplayTaskPool_Interface
      ; RetVal : access Windows.Devices.Display.Core.IDisplayTask
   )
   return Windows.HRESULT is abstract;
   
   function ExecuteTask
   (
      This       : access IDisplayTaskPool_Interface
      ; task_x : Windows.Devices.Display.Core.IDisplayTask
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayView : aliased constant Windows.IID := (2965998753, 46937, 23385, (177, 173, 240, 120, 106, 169, 229, 61 ));
   
   type IDisplayView_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Paths
   (
      This       : access IDisplayView_Interface
      ; RetVal : access Windows.Devices.Display.Core.IVectorView_IDisplayPath -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function get_ContentResolution
   (
      This       : access IDisplayView_Interface
      ; RetVal : access Windows.Graphics.IReference_SizeInt32 -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function put_ContentResolution
   (
      This       : access IDisplayView_Interface
      ; value : Windows.Graphics.IReference_SizeInt32
   )
   return Windows.HRESULT is abstract;
   
   function SetPrimaryPath
   (
      This       : access IDisplayView_Interface
      ; path : Windows.Devices.Display.Core.IDisplayPath
   )
   return Windows.HRESULT is abstract;
   
   function get_Properties
   (
      This       : access IDisplayView_Interface
      ; RetVal : access Windows.Address -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayWireFormat : aliased constant Windows.IID := (449615485, 34604, 23096, (187, 185, 29, 72, 114, 183, 98, 85 ));
   
   type IDisplayWireFormat_Interface is interface and Windows.IInspectable_Interface;
   
   function get_PixelEncoding
   (
      This       : access IDisplayWireFormat_Interface
      ; RetVal : access Windows.Devices.Display.Core.DisplayWireFormatPixelEncoding
   )
   return Windows.HRESULT is abstract;
   
   function get_BitsPerChannel
   (
      This       : access IDisplayWireFormat_Interface
      ; RetVal : access Windows.Int32
   )
   return Windows.HRESULT is abstract;
   
   function get_ColorSpace
   (
      This       : access IDisplayWireFormat_Interface
      ; RetVal : access Windows.Devices.Display.Core.DisplayWireFormatColorSpace
   )
   return Windows.HRESULT is abstract;
   
   function get_Eotf
   (
      This       : access IDisplayWireFormat_Interface
      ; RetVal : access Windows.Devices.Display.Core.DisplayWireFormatEotf
   )
   return Windows.HRESULT is abstract;
   
   function get_HdrMetadata
   (
      This       : access IDisplayWireFormat_Interface
      ; RetVal : access Windows.Devices.Display.Core.DisplayWireFormatHdrMetadata
   )
   return Windows.HRESULT is abstract;
   
   function get_Properties
   (
      This       : access IDisplayWireFormat_Interface
      ; RetVal : access Windows.Address -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayWireFormatFactory : aliased constant Windows.IID := (3002058965, 2518, 21990, (173, 34, 144, 20, 179, 210, 82, 41 ));
   
   type IDisplayWireFormatFactory_Interface is interface and Windows.IInspectable_Interface;
   
   function CreateInstance
   (
      This       : access IDisplayWireFormatFactory_Interface
      ; pixelEncoding : Windows.Devices.Display.Core.DisplayWireFormatPixelEncoding
      ; bitsPerChannel : Windows.Int32
      ; colorSpace : Windows.Devices.Display.Core.DisplayWireFormatColorSpace
      ; eotf : Windows.Devices.Display.Core.DisplayWireFormatEotf
      ; hdrMetadata : Windows.Devices.Display.Core.DisplayWireFormatHdrMetadata
      ; RetVal : access Windows.Devices.Display.Core.IDisplayWireFormat
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IDisplayWireFormatStatics : aliased constant Windows.IID := (3312820781, 50150, 24442, (189, 251, 135, 198, 171, 134, 97, 213 ));
   
   type IDisplayWireFormatStatics_Interface is interface and Windows.IInspectable_Interface;
   
   function CreateWithProperties
   (
      This       : access IDisplayWireFormatStatics_Interface
      ; extraProperties : Windows.Address
      ; pixelEncoding : Windows.Devices.Display.Core.DisplayWireFormatPixelEncoding
      ; bitsPerChannel : Windows.Int32
      ; colorSpace : Windows.Devices.Display.Core.DisplayWireFormatColorSpace
      ; eotf : Windows.Devices.Display.Core.DisplayWireFormatEotf
      ; hdrMetadata : Windows.Devices.Display.Core.DisplayWireFormatHdrMetadata
      ; RetVal : access Windows.Devices.Display.Core.IDisplayWireFormat
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterable_IDisplayAdapter : aliased constant Windows.IID := (3683163077, 16341, 23298, (162, 234, 216, 218, 171, 108, 51, 242 ));
   
   type IIterable_IDisplayAdapter_Interface is interface and Windows.IInspectable_Interface;
   
   function First
   (
      This       : access IIterable_IDisplayAdapter_Interface
      ; RetVal : access Windows.Devices.Display.Core.IIterator_IDisplayAdapter
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterable_IDisplayModeInfo : aliased constant Windows.IID := (3669944393, 61896, 23979, (171, 229, 239, 250, 81, 16, 137, 76 ));
   
   type IIterable_IDisplayModeInfo_Interface is interface and Windows.IInspectable_Interface;
   
   function First
   (
      This       : access IIterable_IDisplayModeInfo_Interface
      ; RetVal : access Windows.Devices.Display.Core.IIterator_IDisplayModeInfo
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterable_IDisplayPath : aliased constant Windows.IID := (1275286195, 48030, 21159, (175, 167, 201, 70, 146, 140, 18, 201 ));
   
   type IIterable_IDisplayPath_Interface is interface and Windows.IInspectable_Interface;
   
   function First
   (
      This       : access IIterable_IDisplayPath_Interface
      ; RetVal : access Windows.Devices.Display.Core.IIterator_IDisplayPath
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterable_IDisplayTarget : aliased constant Windows.IID := (3434276135, 14903, 20733, (141, 40, 89, 233, 219, 140, 249, 217 ));
   
   type IIterable_IDisplayTarget_Interface is interface and Windows.IInspectable_Interface;
   
   function First
   (
      This       : access IIterable_IDisplayTarget_Interface
      ; RetVal : access Windows.Devices.Display.Core.IIterator_IDisplayTarget
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterable_IDisplayView : aliased constant Windows.IID := (2333632415, 14893, 23928, (132, 9, 42, 246, 130, 231, 67, 60 ));
   
   type IIterable_IDisplayView_Interface is interface and Windows.IInspectable_Interface;
   
   function First
   (
      This       : access IIterable_IDisplayView_Interface
      ; RetVal : access Windows.Devices.Display.Core.IIterator_IDisplayView
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterator_IDisplayAdapter : aliased constant Windows.IID := (4004153332, 16680, 24437, (158, 171, 215, 200, 162, 233, 225, 77 ));
   
   type IIterator_IDisplayAdapter_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Current
   (
      This       : access IIterator_IDisplayAdapter_Interface
      ; RetVal : access Windows.Devices.Display.Core.IDisplayAdapter
   )
   return Windows.HRESULT is abstract;
   
   function get_HasCurrent
   (
      This       : access IIterator_IDisplayAdapter_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function MoveNext
   (
      This       : access IIterator_IDisplayAdapter_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IIterator_IDisplayAdapter_Interface
      ; items : Windows.Devices.Display.Core.IDisplayAdapter_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterator_IDisplayModeInfo : aliased constant Windows.IID := (3986790721, 5041, 22341, (184, 102, 78, 179, 157, 10, 214, 44 ));
   
   type IIterator_IDisplayModeInfo_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Current
   (
      This       : access IIterator_IDisplayModeInfo_Interface
      ; RetVal : access Windows.Devices.Display.Core.IDisplayModeInfo
   )
   return Windows.HRESULT is abstract;
   
   function get_HasCurrent
   (
      This       : access IIterator_IDisplayModeInfo_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function MoveNext
   (
      This       : access IIterator_IDisplayModeInfo_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IIterator_IDisplayModeInfo_Interface
      ; items : Windows.Devices.Display.Core.IDisplayModeInfo_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterator_IDisplayPath : aliased constant Windows.IID := (2507988338, 59489, 24548, (151, 72, 33, 110, 235, 89, 169, 177 ));
   
   type IIterator_IDisplayPath_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Current
   (
      This       : access IIterator_IDisplayPath_Interface
      ; RetVal : access Windows.Devices.Display.Core.IDisplayPath
   )
   return Windows.HRESULT is abstract;
   
   function get_HasCurrent
   (
      This       : access IIterator_IDisplayPath_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function MoveNext
   (
      This       : access IIterator_IDisplayPath_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IIterator_IDisplayPath_Interface
      ; items : Windows.Devices.Display.Core.IDisplayPath_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterator_IDisplayTarget : aliased constant Windows.IID := (111121415, 33205, 21099, (140, 99, 205, 248, 237, 32, 126, 222 ));
   
   type IIterator_IDisplayTarget_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Current
   (
      This       : access IIterator_IDisplayTarget_Interface
      ; RetVal : access Windows.Devices.Display.Core.IDisplayTarget
   )
   return Windows.HRESULT is abstract;
   
   function get_HasCurrent
   (
      This       : access IIterator_IDisplayTarget_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function MoveNext
   (
      This       : access IIterator_IDisplayTarget_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IIterator_IDisplayTarget_Interface
      ; items : Windows.Devices.Display.Core.IDisplayTarget_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterator_IDisplayView : aliased constant Windows.IID := (2801521767, 17600, 23220, (154, 209, 37, 198, 234, 199, 4, 211 ));
   
   type IIterator_IDisplayView_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Current
   (
      This       : access IIterator_IDisplayView_Interface
      ; RetVal : access Windows.Devices.Display.Core.IDisplayView
   )
   return Windows.HRESULT is abstract;
   
   function get_HasCurrent
   (
      This       : access IIterator_IDisplayView_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function MoveNext
   (
      This       : access IIterator_IDisplayView_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IIterator_IDisplayView_Interface
      ; items : Windows.Devices.Display.Core.IDisplayView_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IReference_DisplayPresentationRate : aliased constant Windows.IID := (143142363, 43393, 22663, (183, 81, 16, 105, 147, 214, 98, 41 ));
   
   type IReference_DisplayPresentationRate_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Value
   (
      This       : access IReference_DisplayPresentationRate_Interface
      ; RetVal : access Windows.Devices.Display.Core.DisplayPresentationRate
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IVectorView_IDisplayAdapter : aliased constant Windows.IID := (3029448991, 8455, 23580, (170, 100, 7, 243, 152, 3, 230, 76 ));
   
   type IVectorView_IDisplayAdapter_Interface is interface and Windows.IInspectable_Interface;
   
   function GetAt
   (
      This       : access IVectorView_IDisplayAdapter_Interface
      ; index : Windows.UInt32
      ; RetVal : access Windows.Devices.Display.Core.IDisplayAdapter
   )
   return Windows.HRESULT is abstract;
   
   function get_Size
   (
      This       : access IVectorView_IDisplayAdapter_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function IndexOf
   (
      This       : access IVectorView_IDisplayAdapter_Interface
      ; value : Windows.Devices.Display.Core.IDisplayAdapter
      ; index : access Windows.UInt32
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IVectorView_IDisplayAdapter_Interface
      ; startIndex : Windows.UInt32
      ; items : Windows.Devices.Display.Core.IDisplayAdapter_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IVectorView_IDisplayModeInfo : aliased constant Windows.IID := (865855012, 63452, 22060, (181, 210, 27, 68, 5, 189, 183, 226 ));
   
   type IVectorView_IDisplayModeInfo_Interface is interface and Windows.IInspectable_Interface;
   
   function GetAt
   (
      This       : access IVectorView_IDisplayModeInfo_Interface
      ; index : Windows.UInt32
      ; RetVal : access Windows.Devices.Display.Core.IDisplayModeInfo
   )
   return Windows.HRESULT is abstract;
   
   function get_Size
   (
      This       : access IVectorView_IDisplayModeInfo_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function IndexOf
   (
      This       : access IVectorView_IDisplayModeInfo_Interface
      ; value : Windows.Devices.Display.Core.IDisplayModeInfo
      ; index : access Windows.UInt32
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IVectorView_IDisplayModeInfo_Interface
      ; startIndex : Windows.UInt32
      ; items : Windows.Devices.Display.Core.IDisplayModeInfo_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IVectorView_IDisplayPath : aliased constant Windows.IID := (3952841156, 15738, 21238, (136, 43, 75, 133, 1, 86, 225, 43 ));
   
   type IVectorView_IDisplayPath_Interface is interface and Windows.IInspectable_Interface;
   
   function GetAt
   (
      This       : access IVectorView_IDisplayPath_Interface
      ; index : Windows.UInt32
      ; RetVal : access Windows.Devices.Display.Core.IDisplayPath
   )
   return Windows.HRESULT is abstract;
   
   function get_Size
   (
      This       : access IVectorView_IDisplayPath_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function IndexOf
   (
      This       : access IVectorView_IDisplayPath_Interface
      ; value : Windows.Devices.Display.Core.IDisplayPath
      ; index : access Windows.UInt32
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IVectorView_IDisplayPath_Interface
      ; startIndex : Windows.UInt32
      ; items : Windows.Devices.Display.Core.IDisplayPath_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IVectorView_IDisplayTarget : aliased constant Windows.IID := (1343300173, 6189, 23944, (165, 107, 213, 67, 198, 190, 54, 33 ));
   
   type IVectorView_IDisplayTarget_Interface is interface and Windows.IInspectable_Interface;
   
   function GetAt
   (
      This       : access IVectorView_IDisplayTarget_Interface
      ; index : Windows.UInt32
      ; RetVal : access Windows.Devices.Display.Core.IDisplayTarget
   )
   return Windows.HRESULT is abstract;
   
   function get_Size
   (
      This       : access IVectorView_IDisplayTarget_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function IndexOf
   (
      This       : access IVectorView_IDisplayTarget_Interface
      ; value : Windows.Devices.Display.Core.IDisplayTarget
      ; index : access Windows.UInt32
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IVectorView_IDisplayTarget_Interface
      ; startIndex : Windows.UInt32
      ; items : Windows.Devices.Display.Core.IDisplayTarget_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IVectorView_IDisplayView : aliased constant Windows.IID := (1143616505, 31545, 23710, (132, 215, 180, 60, 245, 81, 113, 212 ));
   
   type IVectorView_IDisplayView_Interface is interface and Windows.IInspectable_Interface;
   
   function GetAt
   (
      This       : access IVectorView_IDisplayView_Interface
      ; index : Windows.UInt32
      ; RetVal : access Windows.Devices.Display.Core.IDisplayView
   )
   return Windows.HRESULT is abstract;
   
   function get_Size
   (
      This       : access IVectorView_IDisplayView_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function IndexOf
   (
      This       : access IVectorView_IDisplayView_Interface
      ; value : Windows.Devices.Display.Core.IDisplayView
      ; index : access Windows.UInt32
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IVectorView_IDisplayView_Interface
      ; startIndex : Windows.UInt32
      ; items : Windows.Devices.Display.Core.IDisplayView_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   -- Delegates/Events
   ------------------------------------------------------------------------
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IDisplayManager_add_Changed : aliased constant Windows.IID := (81221021, 23485, 23411, (135, 130, 194, 206, 234, 112, 189, 93 ));
   
   type TypedEventHandler_IDisplayManager_add_Changed_Interface(Callback : access procedure (sender : Windows.Devices.Display.Core.IDisplayManager ; args : Windows.Devices.Display.Core.IDisplayManagerChangedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IDisplayManager_add_Changed'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IDisplayManager_add_Changed_Interface
      ; sender : Windows.Devices.Display.Core.IDisplayManager
      ; args : Windows.Devices.Display.Core.IDisplayManagerChangedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IDisplayManager_add_Disabled : aliased constant Windows.IID := (3627478273, 45934, 22348, (146, 216, 134, 161, 184, 11, 165, 109 ));
   
   type TypedEventHandler_IDisplayManager_add_Disabled_Interface(Callback : access procedure (sender : Windows.Devices.Display.Core.IDisplayManager ; args : Windows.Devices.Display.Core.IDisplayManagerDisabledEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IDisplayManager_add_Disabled'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IDisplayManager_add_Disabled_Interface
      ; sender : Windows.Devices.Display.Core.IDisplayManager
      ; args : Windows.Devices.Display.Core.IDisplayManagerDisabledEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IDisplayManager_add_Enabled : aliased constant Windows.IID := (2838105131, 62217, 23496, (191, 105, 71, 200, 68, 214, 218, 65 ));
   
   type TypedEventHandler_IDisplayManager_add_Enabled_Interface(Callback : access procedure (sender : Windows.Devices.Display.Core.IDisplayManager ; args : Windows.Devices.Display.Core.IDisplayManagerEnabledEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IDisplayManager_add_Enabled'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IDisplayManager_add_Enabled_Interface
      ; sender : Windows.Devices.Display.Core.IDisplayManager
      ; args : Windows.Devices.Display.Core.IDisplayManagerEnabledEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IDisplayManager_add_PathsFailedOrInvalidated : aliased constant Windows.IID := (684117467, 30031, 22349, (172, 125, 190, 141, 119, 61, 212, 221 ));
   
   type TypedEventHandler_IDisplayManager_add_PathsFailedOrInvalidated_Interface(Callback : access procedure (sender : Windows.Devices.Display.Core.IDisplayManager ; args : Windows.Devices.Display.Core.IDisplayManagerPathsFailedOrInvalidatedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IDisplayManager_add_PathsFailedOrInvalidated'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IDisplayManager_add_PathsFailedOrInvalidated_Interface
      ; sender : Windows.Devices.Display.Core.IDisplayManager
      ; args : Windows.Devices.Display.Core.IDisplayManagerPathsFailedOrInvalidatedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   -- Classes
   ------------------------------------------------------------------------
   
   subtype DisplayAdapter is Windows.Devices.Display.Core.IDisplayAdapter;
   subtype DisplayDevice is Windows.Devices.Display.Core.IDisplayDevice;
   subtype DisplayFence is Windows.Devices.Display.Core.IDisplayFence;
   subtype DisplayManager is Windows.Devices.Display.Core.IDisplayManager;
   subtype DisplayManagerChangedEventArgs is Windows.Devices.Display.Core.IDisplayManagerChangedEventArgs;
   subtype DisplayManagerDisabledEventArgs is Windows.Devices.Display.Core.IDisplayManagerDisabledEventArgs;
   subtype DisplayManagerEnabledEventArgs is Windows.Devices.Display.Core.IDisplayManagerEnabledEventArgs;
   subtype DisplayManagerPathsFailedOrInvalidatedEventArgs is Windows.Devices.Display.Core.IDisplayManagerPathsFailedOrInvalidatedEventArgs;
   subtype DisplayManagerResultWithState is Windows.Devices.Display.Core.IDisplayManagerResultWithState;
   subtype DisplayModeInfo is Windows.Devices.Display.Core.IDisplayModeInfo;
   subtype DisplayPath is Windows.Devices.Display.Core.IDisplayPath;
   subtype DisplayPrimaryDescription is Windows.Devices.Display.Core.IDisplayPrimaryDescription;
   function CreateInstance
   (
      width : Windows.UInt32
      ; height : Windows.UInt32
      ; pixelFormat : Windows.Graphics.DirectX.DirectXPixelFormat
      ; colorSpace : Windows.Graphics.DirectX.DirectXColorSpace
      ; isStereo : Windows.Boolean
      ; multisampleDescription : Windows.Graphics.DirectX.Direct3D11.Direct3DMultisampleDescription
   )
   return Windows.Devices.Display.Core.IDisplayPrimaryDescription;
   
   subtype DisplayScanout is Windows.Devices.Display.Core.IDisplayScanout;
   subtype DisplaySource is Windows.Devices.Display.Core.IDisplaySource;
   subtype DisplayState is Windows.Devices.Display.Core.IDisplayState;
   subtype DisplayStateOperationResult is Windows.Devices.Display.Core.IDisplayStateOperationResult;
   subtype DisplaySurface is Windows.Devices.Display.Core.IDisplaySurface;
   subtype DisplayTarget is Windows.Devices.Display.Core.IDisplayTarget;
   subtype DisplayTask is Windows.Devices.Display.Core.IDisplayTask;
   subtype DisplayTaskPool is Windows.Devices.Display.Core.IDisplayTaskPool;
   subtype DisplayView is Windows.Devices.Display.Core.IDisplayView;
   subtype DisplayWireFormat is Windows.Devices.Display.Core.IDisplayWireFormat;
   function CreateInstance
   (
      pixelEncoding : Windows.Devices.Display.Core.DisplayWireFormatPixelEncoding
      ; bitsPerChannel : Windows.Int32
      ; colorSpace : Windows.Devices.Display.Core.DisplayWireFormatColorSpace
      ; eotf : Windows.Devices.Display.Core.DisplayWireFormatEotf
      ; hdrMetadata : Windows.Devices.Display.Core.DisplayWireFormatHdrMetadata
   )
   return Windows.Devices.Display.Core.IDisplayWireFormat;
   
   
   ------------------------------------------------------------------------
   -- Static Procedures/functions
   ------------------------------------------------------------------------
   
   function FromId
   (
      id : Windows.Graphics.DisplayAdapterId
   )
   return Windows.Devices.Display.Core.IDisplayAdapter;
   
   function Create
   (
      options : Windows.Devices.Display.Core.DisplayManagerOptions
   )
   return Windows.Devices.Display.Core.IDisplayManager;
   
   function CreateWithProperties
   (
      extraProperties : Windows.Address
      ; width : Windows.UInt32
      ; height : Windows.UInt32
      ; pixelFormat : Windows.Graphics.DirectX.DirectXPixelFormat
      ; colorSpace : Windows.Graphics.DirectX.DirectXColorSpace
      ; isStereo : Windows.Boolean
      ; multisampleDescription : Windows.Graphics.DirectX.Direct3D11.Direct3DMultisampleDescription
   )
   return Windows.Devices.Display.Core.IDisplayPrimaryDescription;
   
   function CreateWithProperties
   (
      extraProperties : Windows.Address
      ; pixelEncoding : Windows.Devices.Display.Core.DisplayWireFormatPixelEncoding
      ; bitsPerChannel : Windows.Int32
      ; colorSpace : Windows.Devices.Display.Core.DisplayWireFormatColorSpace
      ; eotf : Windows.Devices.Display.Core.DisplayWireFormatEotf
      ; hdrMetadata : Windows.Devices.Display.Core.DisplayWireFormatHdrMetadata
   )
   return Windows.Devices.Display.Core.IDisplayWireFormat;
   
end;
