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

   pragma preelaborate;
   
   ------------------------------------------------------------------------
   -- Enums
   ------------------------------------------------------------------------
   
   type MiracastReceiverApplySettingsStatus is (
      Success,
      UnknownFailure,
      MiracastNotSupported,
      AccessDenied,
      FriendlyNameTooLong,
      ModelNameTooLong,
      ModelNumberTooLong,
      InvalidSettings
   );
   for MiracastReceiverApplySettingsStatus use (
      Success => 0,
      UnknownFailure => 1,
      MiracastNotSupported => 2,
      AccessDenied => 3,
      FriendlyNameTooLong => 4,
      ModelNameTooLong => 5,
      ModelNumberTooLong => 6,
      InvalidSettings => 7
   );
   for MiracastReceiverApplySettingsStatus'Size use 32;
   
   type MiracastReceiverApplySettingsStatus_Ptr is access MiracastReceiverApplySettingsStatus;
   
   type MiracastReceiverAuthorizationMethod is (
      None,
      ConfirmConnection,
      PinDisplayIfRequested,
      PinDisplayRequired
   );
   for MiracastReceiverAuthorizationMethod use (
      None => 0,
      ConfirmConnection => 1,
      PinDisplayIfRequested => 2,
      PinDisplayRequired => 3
   );
   for MiracastReceiverAuthorizationMethod'Size use 32;
   
   type MiracastReceiverAuthorizationMethod_Ptr is access MiracastReceiverAuthorizationMethod;
   
   type MiracastReceiverDisconnectReason is (
      Finished,
      AppSpecificError,
      ConnectionNotAccepted,
      DisconnectedByUser,
      FailedToStartStreaming,
      MediaDecodingError,
      MediaStreamingError,
      MediaDecryptionError
   );
   for MiracastReceiverDisconnectReason use (
      Finished => 0,
      AppSpecificError => 1,
      ConnectionNotAccepted => 2,
      DisconnectedByUser => 3,
      FailedToStartStreaming => 4,
      MediaDecodingError => 5,
      MediaStreamingError => 6,
      MediaDecryptionError => 7
   );
   for MiracastReceiverDisconnectReason'Size use 32;
   
   type MiracastReceiverDisconnectReason_Ptr is access MiracastReceiverDisconnectReason;
   
   type MiracastReceiverGameControllerDeviceUsageMode is (
      AsGameController,
      AsMouseAndKeyboard
   );
   for MiracastReceiverGameControllerDeviceUsageMode use (
      AsGameController => 0,
      AsMouseAndKeyboard => 1
   );
   for MiracastReceiverGameControllerDeviceUsageMode'Size use 32;
   
   type MiracastReceiverGameControllerDeviceUsageMode_Ptr is access MiracastReceiverGameControllerDeviceUsageMode;
   
   type MiracastReceiverListeningStatus is (
      NotListening,
      Listening,
      ConnectionPending,
      Connected,
      DisabledByPolicy,
      TemporarilyDisabled
   );
   for MiracastReceiverListeningStatus use (
      NotListening => 0,
      Listening => 1,
      ConnectionPending => 2,
      Connected => 3,
      DisabledByPolicy => 4,
      TemporarilyDisabled => 5
   );
   for MiracastReceiverListeningStatus'Size use 32;
   
   type MiracastReceiverListeningStatus_Ptr is access MiracastReceiverListeningStatus;
   
   type MiracastReceiverSessionStartStatus is (
      Success,
      UnknownFailure,
      MiracastNotSupported,
      AccessDenied
   );
   for MiracastReceiverSessionStartStatus use (
      Success => 0,
      UnknownFailure => 1,
      MiracastNotSupported => 2,
      AccessDenied => 3
   );
   for MiracastReceiverSessionStartStatus'Size use 32;
   
   type MiracastReceiverSessionStartStatus_Ptr is access MiracastReceiverSessionStartStatus;
   
   type MiracastReceiverWiFiStatus is (
      MiracastSupportUndetermined,
      MiracastNotSupported,
      MiracastSupportNotOptimized,
      MiracastSupported
   );
   for MiracastReceiverWiFiStatus use (
      MiracastSupportUndetermined => 0,
      MiracastNotSupported => 1,
      MiracastSupportNotOptimized => 2,
      MiracastSupported => 3
   );
   for MiracastReceiverWiFiStatus'Size use 32;
   
   type MiracastReceiverWiFiStatus_Ptr is access MiracastReceiverWiFiStatus;
   
   type MiracastTransmitterAuthorizationStatus is (
      Undecided,
      Allowed,
      AlwaysPrompt,
      Blocked
   );
   for MiracastTransmitterAuthorizationStatus use (
      Undecided => 0,
      Allowed => 1,
      AlwaysPrompt => 2,
      Blocked => 3
   );
   for MiracastTransmitterAuthorizationStatus'Size use 32;
   
   type MiracastTransmitterAuthorizationStatus_Ptr is access MiracastTransmitterAuthorizationStatus;
   
   ------------------------------------------------------------------------
   -- Forward Declaration - Delegates/Events
   ------------------------------------------------------------------------
   
   type AsyncOperationCompletedHandler_IMiracastReceiverApplySettingsResult_Interface;
   type AsyncOperationCompletedHandler_IMiracastReceiverApplySettingsResult is access all AsyncOperationCompletedHandler_IMiracastReceiverApplySettingsResult_Interface'Class;
   type AsyncOperationCompletedHandler_IMiracastReceiverApplySettingsResult_Ptr is access all AsyncOperationCompletedHandler_IMiracastReceiverApplySettingsResult;
   type AsyncOperationCompletedHandler_IMiracastReceiverSession_Interface;
   type AsyncOperationCompletedHandler_IMiracastReceiverSession is access all AsyncOperationCompletedHandler_IMiracastReceiverSession_Interface'Class;
   type AsyncOperationCompletedHandler_IMiracastReceiverSession_Ptr is access all AsyncOperationCompletedHandler_IMiracastReceiverSession;
   type AsyncOperationCompletedHandler_IMiracastReceiverSessionStartResult_Interface;
   type AsyncOperationCompletedHandler_IMiracastReceiverSessionStartResult is access all AsyncOperationCompletedHandler_IMiracastReceiverSessionStartResult_Interface'Class;
   type AsyncOperationCompletedHandler_IMiracastReceiverSessionStartResult_Ptr is access all AsyncOperationCompletedHandler_IMiracastReceiverSessionStartResult;
   type AsyncOperationCompletedHandler_IMiracastReceiverSettings_Interface;
   type AsyncOperationCompletedHandler_IMiracastReceiverSettings is access all AsyncOperationCompletedHandler_IMiracastReceiverSettings_Interface'Class;
   type AsyncOperationCompletedHandler_IMiracastReceiverSettings_Ptr is access all AsyncOperationCompletedHandler_IMiracastReceiverSettings;
   type AsyncOperationCompletedHandler_IMiracastReceiverStatus_Interface;
   type AsyncOperationCompletedHandler_IMiracastReceiverStatus is access all AsyncOperationCompletedHandler_IMiracastReceiverStatus_Interface'Class;
   type AsyncOperationCompletedHandler_IMiracastReceiverStatus_Ptr is access all AsyncOperationCompletedHandler_IMiracastReceiverStatus;
   type AsyncOperationCompletedHandler_IMiracastReceiverVideoStreamSettings_Interface;
   type AsyncOperationCompletedHandler_IMiracastReceiverVideoStreamSettings is access all AsyncOperationCompletedHandler_IMiracastReceiverVideoStreamSettings_Interface'Class;
   type AsyncOperationCompletedHandler_IMiracastReceiverVideoStreamSettings_Ptr is access all AsyncOperationCompletedHandler_IMiracastReceiverVideoStreamSettings;
   type TypedEventHandler_IMiracastReceiver_add_StatusChanged_Interface;
   type TypedEventHandler_IMiracastReceiver_add_StatusChanged is access all TypedEventHandler_IMiracastReceiver_add_StatusChanged_Interface'Class;
   type TypedEventHandler_IMiracastReceiver_add_StatusChanged_Ptr is access all TypedEventHandler_IMiracastReceiver_add_StatusChanged;
   type TypedEventHandler_IMiracastReceiverCursorImageChannel_add_ImageStreamChanged_Interface;
   type TypedEventHandler_IMiracastReceiverCursorImageChannel_add_ImageStreamChanged is access all TypedEventHandler_IMiracastReceiverCursorImageChannel_add_ImageStreamChanged_Interface'Class;
   type TypedEventHandler_IMiracastReceiverCursorImageChannel_add_ImageStreamChanged_Ptr is access all TypedEventHandler_IMiracastReceiverCursorImageChannel_add_ImageStreamChanged;
   type TypedEventHandler_IMiracastReceiverCursorImageChannel_add_PositionChanged_Interface;
   type TypedEventHandler_IMiracastReceiverCursorImageChannel_add_PositionChanged is access all TypedEventHandler_IMiracastReceiverCursorImageChannel_add_PositionChanged_Interface'Class;
   type TypedEventHandler_IMiracastReceiverCursorImageChannel_add_PositionChanged_Ptr is access all TypedEventHandler_IMiracastReceiverCursorImageChannel_add_PositionChanged;
   type TypedEventHandler_IMiracastReceiverGameControllerDevice_add_Changed_Interface;
   type TypedEventHandler_IMiracastReceiverGameControllerDevice_add_Changed is access all TypedEventHandler_IMiracastReceiverGameControllerDevice_add_Changed_Interface'Class;
   type TypedEventHandler_IMiracastReceiverGameControllerDevice_add_Changed_Ptr is access all TypedEventHandler_IMiracastReceiverGameControllerDevice_add_Changed;
   type TypedEventHandler_IMiracastReceiverKeyboardDevice_add_Changed_Interface;
   type TypedEventHandler_IMiracastReceiverKeyboardDevice_add_Changed is access all TypedEventHandler_IMiracastReceiverKeyboardDevice_add_Changed_Interface'Class;
   type TypedEventHandler_IMiracastReceiverKeyboardDevice_add_Changed_Ptr is access all TypedEventHandler_IMiracastReceiverKeyboardDevice_add_Changed;
   type TypedEventHandler_IMiracastReceiverSession_add_ConnectionCreated_Interface;
   type TypedEventHandler_IMiracastReceiverSession_add_ConnectionCreated is access all TypedEventHandler_IMiracastReceiverSession_add_ConnectionCreated_Interface'Class;
   type TypedEventHandler_IMiracastReceiverSession_add_ConnectionCreated_Ptr is access all TypedEventHandler_IMiracastReceiverSession_add_ConnectionCreated;
   type TypedEventHandler_IMiracastReceiverSession_add_Disconnected_Interface;
   type TypedEventHandler_IMiracastReceiverSession_add_Disconnected is access all TypedEventHandler_IMiracastReceiverSession_add_Disconnected_Interface'Class;
   type TypedEventHandler_IMiracastReceiverSession_add_Disconnected_Ptr is access all TypedEventHandler_IMiracastReceiverSession_add_Disconnected;
   type TypedEventHandler_IMiracastReceiverSession_add_MediaSourceCreated_Interface;
   type TypedEventHandler_IMiracastReceiverSession_add_MediaSourceCreated is access all TypedEventHandler_IMiracastReceiverSession_add_MediaSourceCreated_Interface'Class;
   type TypedEventHandler_IMiracastReceiverSession_add_MediaSourceCreated_Ptr is access all TypedEventHandler_IMiracastReceiverSession_add_MediaSourceCreated;
   
   ------------------------------------------------------------------------
   -- Forward Declaration - Interfaces
   ------------------------------------------------------------------------
   
   type IAsyncOperation_IMiracastReceiverApplySettingsResult_Interface;
   type IAsyncOperation_IMiracastReceiverApplySettingsResult is access all IAsyncOperation_IMiracastReceiverApplySettingsResult_Interface'Class;
   type IAsyncOperation_IMiracastReceiverApplySettingsResult_Ptr is access all IAsyncOperation_IMiracastReceiverApplySettingsResult;
   type IAsyncOperation_IMiracastReceiverSession_Interface;
   type IAsyncOperation_IMiracastReceiverSession is access all IAsyncOperation_IMiracastReceiverSession_Interface'Class;
   type IAsyncOperation_IMiracastReceiverSession_Ptr is access all IAsyncOperation_IMiracastReceiverSession;
   type IAsyncOperation_IMiracastReceiverSessionStartResult_Interface;
   type IAsyncOperation_IMiracastReceiverSessionStartResult is access all IAsyncOperation_IMiracastReceiverSessionStartResult_Interface'Class;
   type IAsyncOperation_IMiracastReceiverSessionStartResult_Ptr is access all IAsyncOperation_IMiracastReceiverSessionStartResult;
   type IAsyncOperation_IMiracastReceiverSettings_Interface;
   type IAsyncOperation_IMiracastReceiverSettings is access all IAsyncOperation_IMiracastReceiverSettings_Interface'Class;
   type IAsyncOperation_IMiracastReceiverSettings_Ptr is access all IAsyncOperation_IMiracastReceiverSettings;
   type IAsyncOperation_IMiracastReceiverStatus_Interface;
   type IAsyncOperation_IMiracastReceiverStatus is access all IAsyncOperation_IMiracastReceiverStatus_Interface'Class;
   type IAsyncOperation_IMiracastReceiverStatus_Ptr is access all IAsyncOperation_IMiracastReceiverStatus;
   type IAsyncOperation_IMiracastReceiverVideoStreamSettings_Interface;
   type IAsyncOperation_IMiracastReceiverVideoStreamSettings is access all IAsyncOperation_IMiracastReceiverVideoStreamSettings_Interface'Class;
   type IAsyncOperation_IMiracastReceiverVideoStreamSettings_Ptr is access all IAsyncOperation_IMiracastReceiverVideoStreamSettings;
   type IIterable_IMiracastReceiverConnection_Interface;
   type IIterable_IMiracastReceiverConnection is access all IIterable_IMiracastReceiverConnection_Interface'Class;
   type IIterable_IMiracastReceiverConnection_Ptr is access all IIterable_IMiracastReceiverConnection;
   type IIterable_IMiracastTransmitter_Interface;
   type IIterable_IMiracastTransmitter is access all IIterable_IMiracastTransmitter_Interface'Class;
   type IIterable_IMiracastTransmitter_Ptr is access all IIterable_IMiracastTransmitter;
   type IIterator_IMiracastReceiverConnection_Interface;
   type IIterator_IMiracastReceiverConnection is access all IIterator_IMiracastReceiverConnection_Interface'Class;
   type IIterator_IMiracastReceiverConnection_Ptr is access all IIterator_IMiracastReceiverConnection;
   type IIterator_IMiracastTransmitter_Interface;
   type IIterator_IMiracastTransmitter is access all IIterator_IMiracastTransmitter_Interface'Class;
   type IIterator_IMiracastTransmitter_Ptr is access all IIterator_IMiracastTransmitter;
   type IMiracastReceiver_Interface;
   type IMiracastReceiver is access all IMiracastReceiver_Interface'Class;
   type IMiracastReceiver_Ptr is access all IMiracastReceiver;
   type IMiracastReceiverApplySettingsResult_Interface;
   type IMiracastReceiverApplySettingsResult is access all IMiracastReceiverApplySettingsResult_Interface'Class;
   type IMiracastReceiverApplySettingsResult_Ptr is access all IMiracastReceiverApplySettingsResult;
   type IMiracastReceiverConnection_Interface;
   type IMiracastReceiverConnection is access all IMiracastReceiverConnection_Interface'Class;
   type IMiracastReceiverConnection_Ptr is access all IMiracastReceiverConnection;
   type IMiracastReceiverConnectionCreatedEventArgs_Interface;
   type IMiracastReceiverConnectionCreatedEventArgs is access all IMiracastReceiverConnectionCreatedEventArgs_Interface'Class;
   type IMiracastReceiverConnectionCreatedEventArgs_Ptr is access all IMiracastReceiverConnectionCreatedEventArgs;
   type IMiracastReceiverCursorImageChannel_Interface;
   type IMiracastReceiverCursorImageChannel is access all IMiracastReceiverCursorImageChannel_Interface'Class;
   type IMiracastReceiverCursorImageChannel_Ptr is access all IMiracastReceiverCursorImageChannel;
   type IMiracastReceiverCursorImageChannelSettings_Interface;
   type IMiracastReceiverCursorImageChannelSettings is access all IMiracastReceiverCursorImageChannelSettings_Interface'Class;
   type IMiracastReceiverCursorImageChannelSettings_Ptr is access all IMiracastReceiverCursorImageChannelSettings;
   type IMiracastReceiverDisconnectedEventArgs_Interface;
   type IMiracastReceiverDisconnectedEventArgs is access all IMiracastReceiverDisconnectedEventArgs_Interface'Class;
   type IMiracastReceiverDisconnectedEventArgs_Ptr is access all IMiracastReceiverDisconnectedEventArgs;
   type IMiracastReceiverGameControllerDevice_Interface;
   type IMiracastReceiverGameControllerDevice is access all IMiracastReceiverGameControllerDevice_Interface'Class;
   type IMiracastReceiverGameControllerDevice_Ptr is access all IMiracastReceiverGameControllerDevice;
   type IMiracastReceiverInputDevices_Interface;
   type IMiracastReceiverInputDevices is access all IMiracastReceiverInputDevices_Interface'Class;
   type IMiracastReceiverInputDevices_Ptr is access all IMiracastReceiverInputDevices;
   type IMiracastReceiverKeyboardDevice_Interface;
   type IMiracastReceiverKeyboardDevice is access all IMiracastReceiverKeyboardDevice_Interface'Class;
   type IMiracastReceiverKeyboardDevice_Ptr is access all IMiracastReceiverKeyboardDevice;
   type IMiracastReceiverMediaSourceCreatedEventArgs_Interface;
   type IMiracastReceiverMediaSourceCreatedEventArgs is access all IMiracastReceiverMediaSourceCreatedEventArgs_Interface'Class;
   type IMiracastReceiverMediaSourceCreatedEventArgs_Ptr is access all IMiracastReceiverMediaSourceCreatedEventArgs;
   type IMiracastReceiverSession_Interface;
   type IMiracastReceiverSession is access all IMiracastReceiverSession_Interface'Class;
   type IMiracastReceiverSession_Ptr is access all IMiracastReceiverSession;
   type IMiracastReceiverSessionStartResult_Interface;
   type IMiracastReceiverSessionStartResult is access all IMiracastReceiverSessionStartResult_Interface'Class;
   type IMiracastReceiverSessionStartResult_Ptr is access all IMiracastReceiverSessionStartResult;
   type IMiracastReceiverSettings_Interface;
   type IMiracastReceiverSettings is access all IMiracastReceiverSettings_Interface'Class;
   type IMiracastReceiverSettings_Ptr is access all IMiracastReceiverSettings;
   type IMiracastReceiverStatus_Interface;
   type IMiracastReceiverStatus is access all IMiracastReceiverStatus_Interface'Class;
   type IMiracastReceiverStatus_Ptr is access all IMiracastReceiverStatus;
   type IMiracastReceiverStreamControl_Interface;
   type IMiracastReceiverStreamControl is access all IMiracastReceiverStreamControl_Interface'Class;
   type IMiracastReceiverStreamControl_Ptr is access all IMiracastReceiverStreamControl;
   type IMiracastReceiverVideoStreamSettings_Interface;
   type IMiracastReceiverVideoStreamSettings is access all IMiracastReceiverVideoStreamSettings_Interface'Class;
   type IMiracastReceiverVideoStreamSettings_Ptr is access all IMiracastReceiverVideoStreamSettings;
   type IMiracastTransmitter_Interface;
   type IMiracastTransmitter is access all IMiracastTransmitter_Interface'Class;
   type IMiracastTransmitter_Ptr is access all IMiracastTransmitter;
   type IVectorView_IMiracastReceiverConnection_Interface;
   type IVectorView_IMiracastReceiverConnection is access all IVectorView_IMiracastReceiverConnection_Interface'Class;
   type IVectorView_IMiracastReceiverConnection_Ptr is access all IVectorView_IMiracastReceiverConnection;
   type IVectorView_IMiracastTransmitter_Interface;
   type IVectorView_IMiracastTransmitter is access all IVectorView_IMiracastTransmitter_Interface'Class;
   type IVectorView_IMiracastTransmitter_Ptr is access all IVectorView_IMiracastTransmitter;
   
   ------------------------------------------------------------------------
   -- Interfaces
   ------------------------------------------------------------------------
   
   ------------------------------------------------------------------------
   
   IID_IAsyncOperation_IMiracastReceiverApplySettingsResult : aliased constant Windows.IID := (1877766987, 33341, 23302, (173, 129, 4, 85, 249, 127, 85, 111 ));
   
   type IAsyncOperation_IMiracastReceiverApplySettingsResult_Interface is interface and Windows.IInspectable_Interface;
   
   function put_Completed
   (
      This       : access IAsyncOperation_IMiracastReceiverApplySettingsResult_Interface
      ; handler : Windows.Media.Miracast.AsyncOperationCompletedHandler_IMiracastReceiverApplySettingsResult
   )
   return Windows.HRESULT is abstract;
   
   function get_Completed
   (
      This       : access IAsyncOperation_IMiracastReceiverApplySettingsResult_Interface
      ; RetVal : access Windows.Media.Miracast.AsyncOperationCompletedHandler_IMiracastReceiverApplySettingsResult
   )
   return Windows.HRESULT is abstract;
   
   function GetResults
   (
      This       : access IAsyncOperation_IMiracastReceiverApplySettingsResult_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverApplySettingsResult
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAsyncOperation_IMiracastReceiverSession : aliased constant Windows.IID := (1522041057, 11277, 23855, (191, 149, 3, 117, 21, 98, 74, 140 ));
   
   type IAsyncOperation_IMiracastReceiverSession_Interface is interface and Windows.IInspectable_Interface;
   
   function put_Completed
   (
      This       : access IAsyncOperation_IMiracastReceiverSession_Interface
      ; handler : Windows.Media.Miracast.AsyncOperationCompletedHandler_IMiracastReceiverSession
   )
   return Windows.HRESULT is abstract;
   
   function get_Completed
   (
      This       : access IAsyncOperation_IMiracastReceiverSession_Interface
      ; RetVal : access Windows.Media.Miracast.AsyncOperationCompletedHandler_IMiracastReceiverSession
   )
   return Windows.HRESULT is abstract;
   
   function GetResults
   (
      This       : access IAsyncOperation_IMiracastReceiverSession_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverSession
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAsyncOperation_IMiracastReceiverSessionStartResult : aliased constant Windows.IID := (2756841248, 6532, 21221, (155, 112, 21, 169, 206, 148, 174, 248 ));
   
   type IAsyncOperation_IMiracastReceiverSessionStartResult_Interface is interface and Windows.IInspectable_Interface;
   
   function put_Completed
   (
      This       : access IAsyncOperation_IMiracastReceiverSessionStartResult_Interface
      ; handler : Windows.Media.Miracast.AsyncOperationCompletedHandler_IMiracastReceiverSessionStartResult
   )
   return Windows.HRESULT is abstract;
   
   function get_Completed
   (
      This       : access IAsyncOperation_IMiracastReceiverSessionStartResult_Interface
      ; RetVal : access Windows.Media.Miracast.AsyncOperationCompletedHandler_IMiracastReceiverSessionStartResult
   )
   return Windows.HRESULT is abstract;
   
   function GetResults
   (
      This       : access IAsyncOperation_IMiracastReceiverSessionStartResult_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverSessionStartResult
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAsyncOperation_IMiracastReceiverSettings : aliased constant Windows.IID := (2452378919, 17152, 22933, (141, 220, 146, 61, 212, 186, 112, 16 ));
   
   type IAsyncOperation_IMiracastReceiverSettings_Interface is interface and Windows.IInspectable_Interface;
   
   function put_Completed
   (
      This       : access IAsyncOperation_IMiracastReceiverSettings_Interface
      ; handler : Windows.Media.Miracast.AsyncOperationCompletedHandler_IMiracastReceiverSettings
   )
   return Windows.HRESULT is abstract;
   
   function get_Completed
   (
      This       : access IAsyncOperation_IMiracastReceiverSettings_Interface
      ; RetVal : access Windows.Media.Miracast.AsyncOperationCompletedHandler_IMiracastReceiverSettings
   )
   return Windows.HRESULT is abstract;
   
   function GetResults
   (
      This       : access IAsyncOperation_IMiracastReceiverSettings_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverSettings
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAsyncOperation_IMiracastReceiverStatus : aliased constant Windows.IID := (2854642846, 9821, 24185, (142, 239, 167, 254, 137, 77, 201, 242 ));
   
   type IAsyncOperation_IMiracastReceiverStatus_Interface is interface and Windows.IInspectable_Interface;
   
   function put_Completed
   (
      This       : access IAsyncOperation_IMiracastReceiverStatus_Interface
      ; handler : Windows.Media.Miracast.AsyncOperationCompletedHandler_IMiracastReceiverStatus
   )
   return Windows.HRESULT is abstract;
   
   function get_Completed
   (
      This       : access IAsyncOperation_IMiracastReceiverStatus_Interface
      ; RetVal : access Windows.Media.Miracast.AsyncOperationCompletedHandler_IMiracastReceiverStatus
   )
   return Windows.HRESULT is abstract;
   
   function GetResults
   (
      This       : access IAsyncOperation_IMiracastReceiverStatus_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverStatus
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAsyncOperation_IMiracastReceiverVideoStreamSettings : aliased constant Windows.IID := (1741302075, 51217, 22450, (180, 252, 0, 123, 126, 251, 100, 160 ));
   
   type IAsyncOperation_IMiracastReceiverVideoStreamSettings_Interface is interface and Windows.IInspectable_Interface;
   
   function put_Completed
   (
      This       : access IAsyncOperation_IMiracastReceiverVideoStreamSettings_Interface
      ; handler : Windows.Media.Miracast.AsyncOperationCompletedHandler_IMiracastReceiverVideoStreamSettings
   )
   return Windows.HRESULT is abstract;
   
   function get_Completed
   (
      This       : access IAsyncOperation_IMiracastReceiverVideoStreamSettings_Interface
      ; RetVal : access Windows.Media.Miracast.AsyncOperationCompletedHandler_IMiracastReceiverVideoStreamSettings
   )
   return Windows.HRESULT is abstract;
   
   function GetResults
   (
      This       : access IAsyncOperation_IMiracastReceiverVideoStreamSettings_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverVideoStreamSettings
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterable_IMiracastReceiverConnection : aliased constant Windows.IID := (3918130064, 8047, 20612, (155, 251, 26, 93, 236, 202, 79, 35 ));
   
   type IIterable_IMiracastReceiverConnection_Interface is interface and Windows.IInspectable_Interface;
   
   function First
   (
      This       : access IIterable_IMiracastReceiverConnection_Interface
      ; RetVal : access Windows.Media.Miracast.IIterator_IMiracastReceiverConnection
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterable_IMiracastTransmitter : aliased constant Windows.IID := (1514094921, 39787, 24560, (133, 160, 254, 163, 123, 9, 144, 235 ));
   
   type IIterable_IMiracastTransmitter_Interface is interface and Windows.IInspectable_Interface;
   
   function First
   (
      This       : access IIterable_IMiracastTransmitter_Interface
      ; RetVal : access Windows.Media.Miracast.IIterator_IMiracastTransmitter
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterator_IMiracastReceiverConnection : aliased constant Windows.IID := (1636472505, 35643, 23995, (172, 246, 176, 21, 255, 101, 23, 133 ));
   
   type IIterator_IMiracastReceiverConnection_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Current
   (
      This       : access IIterator_IMiracastReceiverConnection_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverConnection
   )
   return Windows.HRESULT is abstract;
   
   function get_HasCurrent
   (
      This       : access IIterator_IMiracastReceiverConnection_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function MoveNext
   (
      This       : access IIterator_IMiracastReceiverConnection_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IIterator_IMiracastReceiverConnection_Interface
      ; items : Windows.Media.Miracast.IMiracastReceiverConnection_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterator_IMiracastTransmitter : aliased constant Windows.IID := (4177761899, 7301, 22310, (175, 91, 175, 194, 138, 59, 60, 244 ));
   
   type IIterator_IMiracastTransmitter_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Current
   (
      This       : access IIterator_IMiracastTransmitter_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastTransmitter
   )
   return Windows.HRESULT is abstract;
   
   function get_HasCurrent
   (
      This       : access IIterator_IMiracastTransmitter_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function MoveNext
   (
      This       : access IIterator_IMiracastTransmitter_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IIterator_IMiracastTransmitter_Interface
      ; items : Windows.Media.Miracast.IMiracastTransmitter_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiver : aliased constant Windows.IID := (2050052696, 58436, 20916, (175, 247, 184, 141, 170, 18, 41, 224 ));
   
   type IMiracastReceiver_Interface is interface and Windows.IInspectable_Interface;
   
   function GetDefaultSettings
   (
      This       : access IMiracastReceiver_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverSettings
   )
   return Windows.HRESULT is abstract;
   
   function GetCurrentSettings
   (
      This       : access IMiracastReceiver_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverSettings
   )
   return Windows.HRESULT is abstract;
   
   function GetCurrentSettingsAsync
   (
      This       : access IMiracastReceiver_Interface
      ; RetVal : access Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverSettings -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function DisconnectAllAndApplySettings
   (
      This       : access IMiracastReceiver_Interface
      ; settings : Windows.Media.Miracast.IMiracastReceiverSettings
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverApplySettingsResult
   )
   return Windows.HRESULT is abstract;
   
   function DisconnectAllAndApplySettingsAsync
   (
      This       : access IMiracastReceiver_Interface
      ; settings : Windows.Media.Miracast.IMiracastReceiverSettings
      ; RetVal : access Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverApplySettingsResult -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function GetStatus
   (
      This       : access IMiracastReceiver_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverStatus
   )
   return Windows.HRESULT is abstract;
   
   function GetStatusAsync
   (
      This       : access IMiracastReceiver_Interface
      ; RetVal : access Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverStatus -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function add_StatusChanged
   (
      This       : access IMiracastReceiver_Interface
      ; handler : TypedEventHandler_IMiracastReceiver_add_StatusChanged
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_StatusChanged
   (
      This       : access IMiracastReceiver_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function CreateSession
   (
      This       : access IMiracastReceiver_Interface
      ; view : Windows.ApplicationModel.Core.ICoreApplicationView
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverSession
   )
   return Windows.HRESULT is abstract;
   
   function CreateSessionAsync
   (
      This       : access IMiracastReceiver_Interface
      ; view : Windows.ApplicationModel.Core.ICoreApplicationView
      ; RetVal : access Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverSession -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function ClearKnownTransmitters
   (
      This       : access IMiracastReceiver_Interface
   )
   return Windows.HRESULT is abstract;
   
   function RemoveKnownTransmitter
   (
      This       : access IMiracastReceiver_Interface
      ; transmitter : Windows.Media.Miracast.IMiracastTransmitter
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverApplySettingsResult : aliased constant Windows.IID := (3500827250, 2509, 22753, (164, 242, 93, 81, 67, 211, 18, 249 ));
   
   type IMiracastReceiverApplySettingsResult_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Status
   (
      This       : access IMiracastReceiverApplySettingsResult_Interface
      ; RetVal : access Windows.Media.Miracast.MiracastReceiverApplySettingsStatus
   )
   return Windows.HRESULT is abstract;
   
   function get_ExtendedError
   (
      This       : access IMiracastReceiverApplySettingsResult_Interface
      ; RetVal : access Windows.HResult
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverConnection : aliased constant Windows.IID := (1883975478, 53989, 21791, (168, 84, 248, 34, 183, 145, 125, 40 ));
   
   type IMiracastReceiverConnection_Interface is interface and Windows.IInspectable_Interface;
   
   function Disconnect
   (
      This       : access IMiracastReceiverConnection_Interface
      ; reason : Windows.Media.Miracast.MiracastReceiverDisconnectReason
   )
   return Windows.HRESULT is abstract;
   
   function DisconnectWithMessage
   (
      This       : access IMiracastReceiverConnection_Interface
      ; reason : Windows.Media.Miracast.MiracastReceiverDisconnectReason
      ; message : Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function Pause
   (
      This       : access IMiracastReceiverConnection_Interface
   )
   return Windows.HRESULT is abstract;
   
   function PauseAsync
   (
      This       : access IMiracastReceiverConnection_Interface
      ; RetVal : access Windows.Foundation.IAsyncAction
   )
   return Windows.HRESULT is abstract;
   
   function Resume
   (
      This       : access IMiracastReceiverConnection_Interface
   )
   return Windows.HRESULT is abstract;
   
   function ResumeAsync
   (
      This       : access IMiracastReceiverConnection_Interface
      ; RetVal : access Windows.Foundation.IAsyncAction
   )
   return Windows.HRESULT is abstract;
   
   function get_Transmitter
   (
      This       : access IMiracastReceiverConnection_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastTransmitter
   )
   return Windows.HRESULT is abstract;
   
   function get_InputDevices
   (
      This       : access IMiracastReceiverConnection_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverInputDevices
   )
   return Windows.HRESULT is abstract;
   
   function get_CursorImageChannel
   (
      This       : access IMiracastReceiverConnection_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverCursorImageChannel
   )
   return Windows.HRESULT is abstract;
   
   function get_StreamControl
   (
      This       : access IMiracastReceiverConnection_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverStreamControl
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverConnectionCreatedEventArgs : aliased constant Windows.IID := (2106456633, 12410, 23567, (148, 189, 208, 198, 157, 22, 153, 130 ));
   
   type IMiracastReceiverConnectionCreatedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Connection
   (
      This       : access IMiracastReceiverConnectionCreatedEventArgs_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverConnection
   )
   return Windows.HRESULT is abstract;
   
   function get_Pin
   (
      This       : access IMiracastReceiverConnectionCreatedEventArgs_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function GetDeferral
   (
      This       : access IMiracastReceiverConnectionCreatedEventArgs_Interface
      ; RetVal : access Windows.Foundation.IDeferral
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverCursorImageChannel : aliased constant Windows.IID := (3651941165, 29242, 23197, (185, 10, 129, 21, 62, 250, 42, 15 ));
   
   type IMiracastReceiverCursorImageChannel_Interface is interface and Windows.IInspectable_Interface;
   
   function get_IsEnabled
   (
      This       : access IMiracastReceiverCursorImageChannel_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_MaxImageSize
   (
      This       : access IMiracastReceiverCursorImageChannel_Interface
      ; RetVal : access Windows.Graphics.SizeInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_Position
   (
      This       : access IMiracastReceiverCursorImageChannel_Interface
      ; RetVal : access Windows.Graphics.PointInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_ImageStream
   (
      This       : access IMiracastReceiverCursorImageChannel_Interface
      ; RetVal : access Windows.Storage.Streams.IRandomAccessStreamWithContentType
   )
   return Windows.HRESULT is abstract;
   
   function add_ImageStreamChanged
   (
      This       : access IMiracastReceiverCursorImageChannel_Interface
      ; handler : TypedEventHandler_IMiracastReceiverCursorImageChannel_add_ImageStreamChanged
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_ImageStreamChanged
   (
      This       : access IMiracastReceiverCursorImageChannel_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function add_PositionChanged
   (
      This       : access IMiracastReceiverCursorImageChannel_Interface
      ; handler : TypedEventHandler_IMiracastReceiverCursorImageChannel_add_PositionChanged
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_PositionChanged
   (
      This       : access IMiracastReceiverCursorImageChannel_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverCursorImageChannelSettings : aliased constant Windows.IID := (3436965375, 48384, 23452, (142, 76, 0, 202, 207, 134, 182, 52 ));
   
   type IMiracastReceiverCursorImageChannelSettings_Interface is interface and Windows.IInspectable_Interface;
   
   function get_IsEnabled
   (
      This       : access IMiracastReceiverCursorImageChannelSettings_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function put_IsEnabled
   (
      This       : access IMiracastReceiverCursorImageChannelSettings_Interface
      ; value : Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_MaxImageSize
   (
      This       : access IMiracastReceiverCursorImageChannelSettings_Interface
      ; RetVal : access Windows.Graphics.SizeInt32
   )
   return Windows.HRESULT is abstract;
   
   function put_MaxImageSize
   (
      This       : access IMiracastReceiverCursorImageChannelSettings_Interface
      ; value : Windows.Graphics.SizeInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverDisconnectedEventArgs : aliased constant Windows.IID := (3651231326, 24558, 22502, (180, 176, 4, 114, 125, 185, 50, 41 ));
   
   type IMiracastReceiverDisconnectedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Connection
   (
      This       : access IMiracastReceiverDisconnectedEventArgs_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverConnection
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverGameControllerDevice : aliased constant Windows.IID := (762409448, 48852, 20760, (160, 88, 226, 71, 126, 181, 136, 141 ));
   
   type IMiracastReceiverGameControllerDevice_Interface is interface and Windows.IInspectable_Interface;
   
   function get_TransmitInput
   (
      This       : access IMiracastReceiverGameControllerDevice_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function put_TransmitInput
   (
      This       : access IMiracastReceiverGameControllerDevice_Interface
      ; value : Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsRequestedByTransmitter
   (
      This       : access IMiracastReceiverGameControllerDevice_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsTransmittingInput
   (
      This       : access IMiracastReceiverGameControllerDevice_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_Mode
   (
      This       : access IMiracastReceiverGameControllerDevice_Interface
      ; RetVal : access Windows.Media.Miracast.MiracastReceiverGameControllerDeviceUsageMode
   )
   return Windows.HRESULT is abstract;
   
   function put_Mode
   (
      This       : access IMiracastReceiverGameControllerDevice_Interface
      ; value : Windows.Media.Miracast.MiracastReceiverGameControllerDeviceUsageMode
   )
   return Windows.HRESULT is abstract;
   
   function add_Changed
   (
      This       : access IMiracastReceiverGameControllerDevice_Interface
      ; handler : TypedEventHandler_IMiracastReceiverGameControllerDevice_add_Changed
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_Changed
   (
      This       : access IMiracastReceiverGameControllerDevice_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverInputDevices : aliased constant Windows.IID := (3660954370, 10410, 24296, (150, 245, 164, 41, 1, 198, 111, 0 ));
   
   type IMiracastReceiverInputDevices_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Keyboard
   (
      This       : access IMiracastReceiverInputDevices_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverKeyboardDevice
   )
   return Windows.HRESULT is abstract;
   
   function get_GameController
   (
      This       : access IMiracastReceiverInputDevices_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverGameControllerDevice
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverKeyboardDevice : aliased constant Windows.IID := (3199627890, 1728, 21759, (172, 150, 33, 116, 100, 255, 37, 1 ));
   
   type IMiracastReceiverKeyboardDevice_Interface is interface and Windows.IInspectable_Interface;
   
   function get_TransmitInput
   (
      This       : access IMiracastReceiverKeyboardDevice_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function put_TransmitInput
   (
      This       : access IMiracastReceiverKeyboardDevice_Interface
      ; value : Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsRequestedByTransmitter
   (
      This       : access IMiracastReceiverKeyboardDevice_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsTransmittingInput
   (
      This       : access IMiracastReceiverKeyboardDevice_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function add_Changed
   (
      This       : access IMiracastReceiverKeyboardDevice_Interface
      ; handler : TypedEventHandler_IMiracastReceiverKeyboardDevice_add_Changed
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_Changed
   (
      This       : access IMiracastReceiverKeyboardDevice_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverMediaSourceCreatedEventArgs : aliased constant Windows.IID := (399462814, 4678, 21277, (148, 90, 107, 21, 142, 57, 195, 170 ));
   
   type IMiracastReceiverMediaSourceCreatedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Connection
   (
      This       : access IMiracastReceiverMediaSourceCreatedEventArgs_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverConnection
   )
   return Windows.HRESULT is abstract;
   
   function get_MediaSource
   (
      This       : access IMiracastReceiverMediaSourceCreatedEventArgs_Interface
      ; RetVal : access Windows.Media.Core.IMediaSource2
   )
   return Windows.HRESULT is abstract;
   
   function get_CursorImageChannelSettings
   (
      This       : access IMiracastReceiverMediaSourceCreatedEventArgs_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverCursorImageChannelSettings
   )
   return Windows.HRESULT is abstract;
   
   function GetDeferral
   (
      This       : access IMiracastReceiverMediaSourceCreatedEventArgs_Interface
      ; RetVal : access Windows.Foundation.IDeferral
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverSession : aliased constant Windows.IID := (489409972, 61323, 21001, (191, 201, 195, 33, 22, 80, 72, 3 ));
   
   type IMiracastReceiverSession_Interface is interface and Windows.IInspectable_Interface;
   
   function add_ConnectionCreated
   (
      This       : access IMiracastReceiverSession_Interface
      ; handler : TypedEventHandler_IMiracastReceiverSession_add_ConnectionCreated
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_ConnectionCreated
   (
      This       : access IMiracastReceiverSession_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function add_MediaSourceCreated
   (
      This       : access IMiracastReceiverSession_Interface
      ; handler : TypedEventHandler_IMiracastReceiverSession_add_MediaSourceCreated
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_MediaSourceCreated
   (
      This       : access IMiracastReceiverSession_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function add_Disconnected
   (
      This       : access IMiracastReceiverSession_Interface
      ; handler : TypedEventHandler_IMiracastReceiverSession_add_Disconnected
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_Disconnected
   (
      This       : access IMiracastReceiverSession_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function get_AllowConnectionTakeover
   (
      This       : access IMiracastReceiverSession_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function put_AllowConnectionTakeover
   (
      This       : access IMiracastReceiverSession_Interface
      ; value : Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_MaxSimultaneousConnections
   (
      This       : access IMiracastReceiverSession_Interface
      ; RetVal : access Windows.Int32
   )
   return Windows.HRESULT is abstract;
   
   function put_MaxSimultaneousConnections
   (
      This       : access IMiracastReceiverSession_Interface
      ; value : Windows.Int32
   )
   return Windows.HRESULT is abstract;
   
   function Start
   (
      This       : access IMiracastReceiverSession_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverSessionStartResult
   )
   return Windows.HRESULT is abstract;
   
   function StartAsync
   (
      This       : access IMiracastReceiverSession_Interface
      ; RetVal : access Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverSessionStartResult -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverSessionStartResult : aliased constant Windows.IID := (3083170798, 16586, 20991, (149, 242, 201, 222, 52, 242, 233, 14 ));
   
   type IMiracastReceiverSessionStartResult_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Status
   (
      This       : access IMiracastReceiverSessionStartResult_Interface
      ; RetVal : access Windows.Media.Miracast.MiracastReceiverSessionStartStatus
   )
   return Windows.HRESULT is abstract;
   
   function get_ExtendedError
   (
      This       : access IMiracastReceiverSessionStartResult_Interface
      ; RetVal : access Windows.HResult
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverSettings : aliased constant Windows.IID := (1473064740, 50522, 24510, (148, 100, 235, 5, 48, 119, 5, 221 ));
   
   type IMiracastReceiverSettings_Interface is interface and Windows.IInspectable_Interface;
   
   function get_FriendlyName
   (
      This       : access IMiracastReceiverSettings_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function put_FriendlyName
   (
      This       : access IMiracastReceiverSettings_Interface
      ; value : Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_ModelName
   (
      This       : access IMiracastReceiverSettings_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function put_ModelName
   (
      This       : access IMiracastReceiverSettings_Interface
      ; value : Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_ModelNumber
   (
      This       : access IMiracastReceiverSettings_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function put_ModelNumber
   (
      This       : access IMiracastReceiverSettings_Interface
      ; value : Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_AuthorizationMethod
   (
      This       : access IMiracastReceiverSettings_Interface
      ; RetVal : access Windows.Media.Miracast.MiracastReceiverAuthorizationMethod
   )
   return Windows.HRESULT is abstract;
   
   function put_AuthorizationMethod
   (
      This       : access IMiracastReceiverSettings_Interface
      ; value : Windows.Media.Miracast.MiracastReceiverAuthorizationMethod
   )
   return Windows.HRESULT is abstract;
   
   function get_RequireAuthorizationFromKnownTransmitters
   (
      This       : access IMiracastReceiverSettings_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function put_RequireAuthorizationFromKnownTransmitters
   (
      This       : access IMiracastReceiverSettings_Interface
      ; value : Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverStatus : aliased constant Windows.IID := (3263845777, 9131, 20894, (173, 9, 144, 191, 246, 220, 200, 126 ));
   
   type IMiracastReceiverStatus_Interface is interface and Windows.IInspectable_Interface;
   
   function get_ListeningStatus
   (
      This       : access IMiracastReceiverStatus_Interface
      ; RetVal : access Windows.Media.Miracast.MiracastReceiverListeningStatus
   )
   return Windows.HRESULT is abstract;
   
   function get_WiFiStatus
   (
      This       : access IMiracastReceiverStatus_Interface
      ; RetVal : access Windows.Media.Miracast.MiracastReceiverWiFiStatus
   )
   return Windows.HRESULT is abstract;
   
   function get_IsConnectionTakeoverSupported
   (
      This       : access IMiracastReceiverStatus_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_MaxSimultaneousConnections
   (
      This       : access IMiracastReceiverStatus_Interface
      ; RetVal : access Windows.Int32
   )
   return Windows.HRESULT is abstract;
   
   function get_KnownTransmitters
   (
      This       : access IMiracastReceiverStatus_Interface
      ; RetVal : access Windows.Media.Miracast.IVectorView_IMiracastTransmitter -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverStreamControl : aliased constant Windows.IID := (954871179, 10089, 23255, (138, 138, 37, 75, 157, 247, 186, 130 ));
   
   type IMiracastReceiverStreamControl_Interface is interface and Windows.IInspectable_Interface;
   
   function GetVideoStreamSettings
   (
      This       : access IMiracastReceiverStreamControl_Interface
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverVideoStreamSettings
   )
   return Windows.HRESULT is abstract;
   
   function GetVideoStreamSettingsAsync
   (
      This       : access IMiracastReceiverStreamControl_Interface
      ; RetVal : access Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverVideoStreamSettings -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function SuggestVideoStreamSettings
   (
      This       : access IMiracastReceiverStreamControl_Interface
      ; settings : Windows.Media.Miracast.IMiracastReceiverVideoStreamSettings
   )
   return Windows.HRESULT is abstract;
   
   function SuggestVideoStreamSettingsAsync
   (
      This       : access IMiracastReceiverStreamControl_Interface
      ; settings : Windows.Media.Miracast.IMiracastReceiverVideoStreamSettings
      ; RetVal : access Windows.Foundation.IAsyncAction
   )
   return Windows.HRESULT is abstract;
   
   function get_MuteAudio
   (
      This       : access IMiracastReceiverStreamControl_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function put_MuteAudio
   (
      This       : access IMiracastReceiverStreamControl_Interface
      ; value : Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastReceiverVideoStreamSettings : aliased constant Windows.IID := (379280923, 5277, 21200, (177, 38, 111, 137, 116, 78, 79, 80 ));
   
   type IMiracastReceiverVideoStreamSettings_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Size
   (
      This       : access IMiracastReceiverVideoStreamSettings_Interface
      ; RetVal : access Windows.Graphics.SizeInt32
   )
   return Windows.HRESULT is abstract;
   
   function put_Size
   (
      This       : access IMiracastReceiverVideoStreamSettings_Interface
      ; value : Windows.Graphics.SizeInt32
   )
   return Windows.HRESULT is abstract;
   
   function get_Bitrate
   (
      This       : access IMiracastReceiverVideoStreamSettings_Interface
      ; RetVal : access Windows.Int32
   )
   return Windows.HRESULT is abstract;
   
   function put_Bitrate
   (
      This       : access IMiracastReceiverVideoStreamSettings_Interface
      ; value : Windows.Int32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMiracastTransmitter : aliased constant Windows.IID := (875395581, 11876, 21768, (138, 48, 131, 61, 30, 172, 112, 208 ));
   
   type IMiracastTransmitter_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Name
   (
      This       : access IMiracastTransmitter_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function put_Name
   (
      This       : access IMiracastTransmitter_Interface
      ; value : Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_AuthorizationStatus
   (
      This       : access IMiracastTransmitter_Interface
      ; RetVal : access Windows.Media.Miracast.MiracastTransmitterAuthorizationStatus
   )
   return Windows.HRESULT is abstract;
   
   function put_AuthorizationStatus
   (
      This       : access IMiracastTransmitter_Interface
      ; value : Windows.Media.Miracast.MiracastTransmitterAuthorizationStatus
   )
   return Windows.HRESULT is abstract;
   
   function GetConnections
   (
      This       : access IMiracastTransmitter_Interface
      ; RetVal : access Windows.Media.Miracast.IVectorView_IMiracastReceiverConnection -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function get_MacAddress
   (
      This       : access IMiracastTransmitter_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_LastConnectionTime
   (
      This       : access IMiracastTransmitter_Interface
      ; RetVal : access Windows.Foundation.DateTime
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IVectorView_IMiracastReceiverConnection : aliased constant Windows.IID := (2561445772, 8994, 21711, (178, 198, 122, 86, 169, 210, 34, 11 ));
   
   type IVectorView_IMiracastReceiverConnection_Interface is interface and Windows.IInspectable_Interface;
   
   function GetAt
   (
      This       : access IVectorView_IMiracastReceiverConnection_Interface
      ; index : Windows.UInt32
      ; RetVal : access Windows.Media.Miracast.IMiracastReceiverConnection
   )
   return Windows.HRESULT is abstract;
   
   function get_Size
   (
      This       : access IVectorView_IMiracastReceiverConnection_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function IndexOf
   (
      This       : access IVectorView_IMiracastReceiverConnection_Interface
      ; value : Windows.Media.Miracast.IMiracastReceiverConnection
      ; index : access Windows.UInt32
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IVectorView_IMiracastReceiverConnection_Interface
      ; startIndex : Windows.UInt32
      ; items : Windows.Media.Miracast.IMiracastReceiverConnection_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IVectorView_IMiracastTransmitter : aliased constant Windows.IID := (1310454892, 18934, 22674, (188, 247, 128, 86, 78, 162, 182, 6 ));
   
   type IVectorView_IMiracastTransmitter_Interface is interface and Windows.IInspectable_Interface;
   
   function GetAt
   (
      This       : access IVectorView_IMiracastTransmitter_Interface
      ; index : Windows.UInt32
      ; RetVal : access Windows.Media.Miracast.IMiracastTransmitter
   )
   return Windows.HRESULT is abstract;
   
   function get_Size
   (
      This       : access IVectorView_IMiracastTransmitter_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function IndexOf
   (
      This       : access IVectorView_IMiracastTransmitter_Interface
      ; value : Windows.Media.Miracast.IMiracastTransmitter
      ; index : access Windows.UInt32
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IVectorView_IMiracastTransmitter_Interface
      ; startIndex : Windows.UInt32
      ; items : Windows.Media.Miracast.IMiracastTransmitter_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   -- Delegates/Events
   ------------------------------------------------------------------------
   
   ------------------------------------------------------------------------
   
   IID_AsyncOperationCompletedHandler_IMiracastReceiverApplySettingsResult : aliased constant Windows.IID := (2949334388, 31427, 22250, (154, 106, 207, 83, 95, 12, 240, 30 ));
   
   type AsyncOperationCompletedHandler_IMiracastReceiverApplySettingsResult_Interface(Callback : access procedure (asyncInfo : Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverApplySettingsResult ; asyncStatus : Windows.Foundation.AsyncStatus)) is new Windows.IMulticastDelegate_Interface(IID_AsyncOperationCompletedHandler_IMiracastReceiverApplySettingsResult'access) with null record;
   function Invoke
   (
      This       : access AsyncOperationCompletedHandler_IMiracastReceiverApplySettingsResult_Interface
      ; asyncInfo : Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverApplySettingsResult
      ; asyncStatus : Windows.Foundation.AsyncStatus
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_AsyncOperationCompletedHandler_IMiracastReceiverSession : aliased constant Windows.IID := (2638416075, 19407, 23323, (184, 179, 4, 132, 222, 159, 53, 55 ));
   
   type AsyncOperationCompletedHandler_IMiracastReceiverSession_Interface(Callback : access procedure (asyncInfo : Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverSession ; asyncStatus : Windows.Foundation.AsyncStatus)) is new Windows.IMulticastDelegate_Interface(IID_AsyncOperationCompletedHandler_IMiracastReceiverSession'access) with null record;
   function Invoke
   (
      This       : access AsyncOperationCompletedHandler_IMiracastReceiverSession_Interface
      ; asyncInfo : Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverSession
      ; asyncStatus : Windows.Foundation.AsyncStatus
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_AsyncOperationCompletedHandler_IMiracastReceiverSessionStartResult : aliased constant Windows.IID := (3945881299, 63819, 24524, (149, 18, 152, 172, 157, 138, 66, 63 ));
   
   type AsyncOperationCompletedHandler_IMiracastReceiverSessionStartResult_Interface(Callback : access procedure (asyncInfo : Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverSessionStartResult ; asyncStatus : Windows.Foundation.AsyncStatus)) is new Windows.IMulticastDelegate_Interface(IID_AsyncOperationCompletedHandler_IMiracastReceiverSessionStartResult'access) with null record;
   function Invoke
   (
      This       : access AsyncOperationCompletedHandler_IMiracastReceiverSessionStartResult_Interface
      ; asyncInfo : Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverSessionStartResult
      ; asyncStatus : Windows.Foundation.AsyncStatus
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_AsyncOperationCompletedHandler_IMiracastReceiverSettings : aliased constant Windows.IID := (1586088456, 16609, 21238, (134, 73, 4, 132, 30, 1, 130, 13 ));
   
   type AsyncOperationCompletedHandler_IMiracastReceiverSettings_Interface(Callback : access procedure (asyncInfo : Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverSettings ; asyncStatus : Windows.Foundation.AsyncStatus)) is new Windows.IMulticastDelegate_Interface(IID_AsyncOperationCompletedHandler_IMiracastReceiverSettings'access) with null record;
   function Invoke
   (
      This       : access AsyncOperationCompletedHandler_IMiracastReceiverSettings_Interface
      ; asyncInfo : Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverSettings
      ; asyncStatus : Windows.Foundation.AsyncStatus
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_AsyncOperationCompletedHandler_IMiracastReceiverStatus : aliased constant Windows.IID := (2185491134, 33443, 21301, (179, 201, 174, 101, 59, 59, 105, 92 ));
   
   type AsyncOperationCompletedHandler_IMiracastReceiverStatus_Interface(Callback : access procedure (asyncInfo : Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverStatus ; asyncStatus : Windows.Foundation.AsyncStatus)) is new Windows.IMulticastDelegate_Interface(IID_AsyncOperationCompletedHandler_IMiracastReceiverStatus'access) with null record;
   function Invoke
   (
      This       : access AsyncOperationCompletedHandler_IMiracastReceiverStatus_Interface
      ; asyncInfo : Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverStatus
      ; asyncStatus : Windows.Foundation.AsyncStatus
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_AsyncOperationCompletedHandler_IMiracastReceiverVideoStreamSettings : aliased constant Windows.IID := (3096231058, 46614, 22481, (159, 155, 107, 186, 93, 90, 207, 169 ));
   
   type AsyncOperationCompletedHandler_IMiracastReceiverVideoStreamSettings_Interface(Callback : access procedure (asyncInfo : Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverVideoStreamSettings ; asyncStatus : Windows.Foundation.AsyncStatus)) is new Windows.IMulticastDelegate_Interface(IID_AsyncOperationCompletedHandler_IMiracastReceiverVideoStreamSettings'access) with null record;
   function Invoke
   (
      This       : access AsyncOperationCompletedHandler_IMiracastReceiverVideoStreamSettings_Interface
      ; asyncInfo : Windows.Media.Miracast.IAsyncOperation_IMiracastReceiverVideoStreamSettings
      ; asyncStatus : Windows.Foundation.AsyncStatus
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IMiracastReceiver_add_StatusChanged : aliased constant Windows.IID := (1156253418, 20, 23277, (131, 161, 149, 210, 37, 208, 102, 136 ));
   
   type TypedEventHandler_IMiracastReceiver_add_StatusChanged_Interface(Callback : access procedure (sender : Windows.Media.Miracast.IMiracastReceiver ; args : Windows.Object)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IMiracastReceiver_add_StatusChanged'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IMiracastReceiver_add_StatusChanged_Interface
      ; sender : Windows.Media.Miracast.IMiracastReceiver
      ; args : Windows.Object
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IMiracastReceiverCursorImageChannel_add_ImageStreamChanged : aliased constant Windows.IID := (1075670884, 52016, 22979, (166, 99, 248, 74, 182, 237, 241, 250 ));
   
   type TypedEventHandler_IMiracastReceiverCursorImageChannel_add_ImageStreamChanged_Interface(Callback : access procedure (sender : Windows.Media.Miracast.IMiracastReceiverCursorImageChannel ; args : Windows.Object)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IMiracastReceiverCursorImageChannel_add_ImageStreamChanged'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IMiracastReceiverCursorImageChannel_add_ImageStreamChanged_Interface
      ; sender : Windows.Media.Miracast.IMiracastReceiverCursorImageChannel
      ; args : Windows.Object
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IMiracastReceiverCursorImageChannel_add_PositionChanged : aliased constant Windows.IID := (1075670884, 52016, 22979, (166, 99, 248, 74, 182, 237, 241, 250 ));
   
   type TypedEventHandler_IMiracastReceiverCursorImageChannel_add_PositionChanged_Interface(Callback : access procedure (sender : Windows.Media.Miracast.IMiracastReceiverCursorImageChannel ; args : Windows.Object)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IMiracastReceiverCursorImageChannel_add_PositionChanged'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IMiracastReceiverCursorImageChannel_add_PositionChanged_Interface
      ; sender : Windows.Media.Miracast.IMiracastReceiverCursorImageChannel
      ; args : Windows.Object
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IMiracastReceiverGameControllerDevice_add_Changed : aliased constant Windows.IID := (279564967, 20553, 24089, (157, 34, 114, 218, 125, 107, 182, 67 ));
   
   type TypedEventHandler_IMiracastReceiverGameControllerDevice_add_Changed_Interface(Callback : access procedure (sender : Windows.Media.Miracast.IMiracastReceiverGameControllerDevice ; args : Windows.Object)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IMiracastReceiverGameControllerDevice_add_Changed'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IMiracastReceiverGameControllerDevice_add_Changed_Interface
      ; sender : Windows.Media.Miracast.IMiracastReceiverGameControllerDevice
      ; args : Windows.Object
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IMiracastReceiverKeyboardDevice_add_Changed : aliased constant Windows.IID := (2547553991, 42474, 21001, (146, 192, 160, 39, 128, 135, 175, 209 ));
   
   type TypedEventHandler_IMiracastReceiverKeyboardDevice_add_Changed_Interface(Callback : access procedure (sender : Windows.Media.Miracast.IMiracastReceiverKeyboardDevice ; args : Windows.Object)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IMiracastReceiverKeyboardDevice_add_Changed'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IMiracastReceiverKeyboardDevice_add_Changed_Interface
      ; sender : Windows.Media.Miracast.IMiracastReceiverKeyboardDevice
      ; args : Windows.Object
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IMiracastReceiverSession_add_ConnectionCreated : aliased constant Windows.IID := (1775253544, 31370, 21658, (130, 83, 120, 80, 228, 219, 96, 90 ));
   
   type TypedEventHandler_IMiracastReceiverSession_add_ConnectionCreated_Interface(Callback : access procedure (sender : Windows.Media.Miracast.IMiracastReceiverSession ; args : Windows.Media.Miracast.IMiracastReceiverConnectionCreatedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IMiracastReceiverSession_add_ConnectionCreated'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IMiracastReceiverSession_add_ConnectionCreated_Interface
      ; sender : Windows.Media.Miracast.IMiracastReceiverSession
      ; args : Windows.Media.Miracast.IMiracastReceiverConnectionCreatedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IMiracastReceiverSession_add_Disconnected : aliased constant Windows.IID := (2761313119, 5244, 22499, (130, 208, 204, 125, 229, 255, 45, 239 ));
   
   type TypedEventHandler_IMiracastReceiverSession_add_Disconnected_Interface(Callback : access procedure (sender : Windows.Media.Miracast.IMiracastReceiverSession ; args : Windows.Media.Miracast.IMiracastReceiverDisconnectedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IMiracastReceiverSession_add_Disconnected'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IMiracastReceiverSession_add_Disconnected_Interface
      ; sender : Windows.Media.Miracast.IMiracastReceiverSession
      ; args : Windows.Media.Miracast.IMiracastReceiverDisconnectedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IMiracastReceiverSession_add_MediaSourceCreated : aliased constant Windows.IID := (2459878778, 37580, 20728, (174, 74, 187, 106, 103, 21, 46, 130 ));
   
   type TypedEventHandler_IMiracastReceiverSession_add_MediaSourceCreated_Interface(Callback : access procedure (sender : Windows.Media.Miracast.IMiracastReceiverSession ; args : Windows.Media.Miracast.IMiracastReceiverMediaSourceCreatedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IMiracastReceiverSession_add_MediaSourceCreated'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IMiracastReceiverSession_add_MediaSourceCreated_Interface
      ; sender : Windows.Media.Miracast.IMiracastReceiverSession
      ; args : Windows.Media.Miracast.IMiracastReceiverMediaSourceCreatedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   -- Classes
   ------------------------------------------------------------------------
   
   subtype MiracastReceiver is Windows.Media.Miracast.IMiracastReceiver;
   function Create return Windows.Media.Miracast.IMiracastReceiver;
   
   subtype MiracastReceiverApplySettingsResult is Windows.Media.Miracast.IMiracastReceiverApplySettingsResult;
   subtype MiracastReceiverConnection is Windows.Media.Miracast.IMiracastReceiverConnection;
   subtype MiracastReceiverConnectionCreatedEventArgs is Windows.Media.Miracast.IMiracastReceiverConnectionCreatedEventArgs;
   subtype MiracastReceiverCursorImageChannel is Windows.Media.Miracast.IMiracastReceiverCursorImageChannel;
   subtype MiracastReceiverCursorImageChannelSettings is Windows.Media.Miracast.IMiracastReceiverCursorImageChannelSettings;
   subtype MiracastReceiverDisconnectedEventArgs is Windows.Media.Miracast.IMiracastReceiverDisconnectedEventArgs;
   subtype MiracastReceiverGameControllerDevice is Windows.Media.Miracast.IMiracastReceiverGameControllerDevice;
   subtype MiracastReceiverInputDevices is Windows.Media.Miracast.IMiracastReceiverInputDevices;
   subtype MiracastReceiverKeyboardDevice is Windows.Media.Miracast.IMiracastReceiverKeyboardDevice;
   subtype MiracastReceiverMediaSourceCreatedEventArgs is Windows.Media.Miracast.IMiracastReceiverMediaSourceCreatedEventArgs;
   subtype MiracastReceiverSession is Windows.Media.Miracast.IMiracastReceiverSession;
   subtype MiracastReceiverSessionStartResult is Windows.Media.Miracast.IMiracastReceiverSessionStartResult;
   subtype MiracastReceiverSettings is Windows.Media.Miracast.IMiracastReceiverSettings;
   subtype MiracastReceiverStatus is Windows.Media.Miracast.IMiracastReceiverStatus;
   subtype MiracastReceiverStreamControl is Windows.Media.Miracast.IMiracastReceiverStreamControl;
   subtype MiracastReceiverVideoStreamSettings is Windows.Media.Miracast.IMiracastReceiverVideoStreamSettings;
   subtype MiracastTransmitter is Windows.Media.Miracast.IMiracastTransmitter;
   
   ------------------------------------------------------------------------
   -- Static Procedures/functions
   ------------------------------------------------------------------------
   
end;
