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

   pragma preelaborate;
   
   ------------------------------------------------------------------------
   -- Enums
   ------------------------------------------------------------------------
   
   type GlobalSystemMediaTransportControlsSessionPlaybackStatus is (
      Closed,
      Opened,
      Changing,
      Stopped,
      Playing,
      Paused
   );
   for GlobalSystemMediaTransportControlsSessionPlaybackStatus use (
      Closed => 0,
      Opened => 1,
      Changing => 2,
      Stopped => 3,
      Playing => 4,
      Paused => 5
   );
   for GlobalSystemMediaTransportControlsSessionPlaybackStatus'Size use 32;
   
   type GlobalSystemMediaTransportControlsSessionPlaybackStatus_Ptr is access GlobalSystemMediaTransportControlsSessionPlaybackStatus;
   
   ------------------------------------------------------------------------
   -- Forward Declaration - Delegates/Events
   ------------------------------------------------------------------------
   
   type AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionManager_Interface;
   type AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionManager is access all AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionManager_Interface'Class;
   type AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionManager_Ptr is access all AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionManager;
   type AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface;
   type AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionMediaProperties is access all AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface'Class;
   type AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionMediaProperties_Ptr is access all AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionMediaProperties;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_MediaPropertiesChanged_Interface;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_MediaPropertiesChanged is access all TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_MediaPropertiesChanged_Interface'Class;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_MediaPropertiesChanged_Ptr is access all TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_MediaPropertiesChanged;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_PlaybackInfoChanged_Interface;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_PlaybackInfoChanged is access all TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_PlaybackInfoChanged_Interface'Class;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_PlaybackInfoChanged_Ptr is access all TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_PlaybackInfoChanged;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_TimelinePropertiesChanged_Interface;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_TimelinePropertiesChanged is access all TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_TimelinePropertiesChanged_Interface'Class;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_TimelinePropertiesChanged_Ptr is access all TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_TimelinePropertiesChanged;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_CurrentSessionChanged_Interface;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_CurrentSessionChanged is access all TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_CurrentSessionChanged_Interface'Class;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_CurrentSessionChanged_Ptr is access all TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_CurrentSessionChanged;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_SessionsChanged_Interface;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_SessionsChanged is access all TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_SessionsChanged_Interface'Class;
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_SessionsChanged_Ptr is access all TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_SessionsChanged;
   
   ------------------------------------------------------------------------
   -- Forward Declaration - Interfaces
   ------------------------------------------------------------------------
   
   type IAsyncOperation_IGlobalSystemMediaTransportControlsSessionManager_Interface;
   type IAsyncOperation_IGlobalSystemMediaTransportControlsSessionManager is access all IAsyncOperation_IGlobalSystemMediaTransportControlsSessionManager_Interface'Class;
   type IAsyncOperation_IGlobalSystemMediaTransportControlsSessionManager_Ptr is access all IAsyncOperation_IGlobalSystemMediaTransportControlsSessionManager;
   type IAsyncOperation_IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface;
   type IAsyncOperation_IGlobalSystemMediaTransportControlsSessionMediaProperties is access all IAsyncOperation_IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface'Class;
   type IAsyncOperation_IGlobalSystemMediaTransportControlsSessionMediaProperties_Ptr is access all IAsyncOperation_IGlobalSystemMediaTransportControlsSessionMediaProperties;
   type ICurrentSessionChangedEventArgs_Interface;
   type ICurrentSessionChangedEventArgs is access all ICurrentSessionChangedEventArgs_Interface'Class;
   type ICurrentSessionChangedEventArgs_Ptr is access all ICurrentSessionChangedEventArgs;
   type IGlobalSystemMediaTransportControlsSession_Interface;
   type IGlobalSystemMediaTransportControlsSession is access all IGlobalSystemMediaTransportControlsSession_Interface'Class;
   type IGlobalSystemMediaTransportControlsSession_Ptr is access all IGlobalSystemMediaTransportControlsSession;
   type IGlobalSystemMediaTransportControlsSessionManager_Interface;
   type IGlobalSystemMediaTransportControlsSessionManager is access all IGlobalSystemMediaTransportControlsSessionManager_Interface'Class;
   type IGlobalSystemMediaTransportControlsSessionManager_Ptr is access all IGlobalSystemMediaTransportControlsSessionManager;
   type IGlobalSystemMediaTransportControlsSessionManagerStatics_Interface;
   type IGlobalSystemMediaTransportControlsSessionManagerStatics is access all IGlobalSystemMediaTransportControlsSessionManagerStatics_Interface'Class;
   type IGlobalSystemMediaTransportControlsSessionManagerStatics_Ptr is access all IGlobalSystemMediaTransportControlsSessionManagerStatics;
   type IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface;
   type IGlobalSystemMediaTransportControlsSessionMediaProperties is access all IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface'Class;
   type IGlobalSystemMediaTransportControlsSessionMediaProperties_Ptr is access all IGlobalSystemMediaTransportControlsSessionMediaProperties;
   type IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface;
   type IGlobalSystemMediaTransportControlsSessionPlaybackControls is access all IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface'Class;
   type IGlobalSystemMediaTransportControlsSessionPlaybackControls_Ptr is access all IGlobalSystemMediaTransportControlsSessionPlaybackControls;
   type IGlobalSystemMediaTransportControlsSessionPlaybackInfo_Interface;
   type IGlobalSystemMediaTransportControlsSessionPlaybackInfo is access all IGlobalSystemMediaTransportControlsSessionPlaybackInfo_Interface'Class;
   type IGlobalSystemMediaTransportControlsSessionPlaybackInfo_Ptr is access all IGlobalSystemMediaTransportControlsSessionPlaybackInfo;
   type IGlobalSystemMediaTransportControlsSessionTimelineProperties_Interface;
   type IGlobalSystemMediaTransportControlsSessionTimelineProperties is access all IGlobalSystemMediaTransportControlsSessionTimelineProperties_Interface'Class;
   type IGlobalSystemMediaTransportControlsSessionTimelineProperties_Ptr is access all IGlobalSystemMediaTransportControlsSessionTimelineProperties;
   type IIterable_IGlobalSystemMediaTransportControlsSession_Interface;
   type IIterable_IGlobalSystemMediaTransportControlsSession is access all IIterable_IGlobalSystemMediaTransportControlsSession_Interface'Class;
   type IIterable_IGlobalSystemMediaTransportControlsSession_Ptr is access all IIterable_IGlobalSystemMediaTransportControlsSession;
   type IIterator_IGlobalSystemMediaTransportControlsSession_Interface;
   type IIterator_IGlobalSystemMediaTransportControlsSession is access all IIterator_IGlobalSystemMediaTransportControlsSession_Interface'Class;
   type IIterator_IGlobalSystemMediaTransportControlsSession_Ptr is access all IIterator_IGlobalSystemMediaTransportControlsSession;
   type IMediaPropertiesChangedEventArgs_Interface;
   type IMediaPropertiesChangedEventArgs is access all IMediaPropertiesChangedEventArgs_Interface'Class;
   type IMediaPropertiesChangedEventArgs_Ptr is access all IMediaPropertiesChangedEventArgs;
   type IPlaybackInfoChangedEventArgs_Interface;
   type IPlaybackInfoChangedEventArgs is access all IPlaybackInfoChangedEventArgs_Interface'Class;
   type IPlaybackInfoChangedEventArgs_Ptr is access all IPlaybackInfoChangedEventArgs;
   type ISessionsChangedEventArgs_Interface;
   type ISessionsChangedEventArgs is access all ISessionsChangedEventArgs_Interface'Class;
   type ISessionsChangedEventArgs_Ptr is access all ISessionsChangedEventArgs;
   type ITimelinePropertiesChangedEventArgs_Interface;
   type ITimelinePropertiesChangedEventArgs is access all ITimelinePropertiesChangedEventArgs_Interface'Class;
   type ITimelinePropertiesChangedEventArgs_Ptr is access all ITimelinePropertiesChangedEventArgs;
   type IVectorView_IGlobalSystemMediaTransportControlsSession_Interface;
   type IVectorView_IGlobalSystemMediaTransportControlsSession is access all IVectorView_IGlobalSystemMediaTransportControlsSession_Interface'Class;
   type IVectorView_IGlobalSystemMediaTransportControlsSession_Ptr is access all IVectorView_IGlobalSystemMediaTransportControlsSession;
   
   ------------------------------------------------------------------------
   -- Interfaces
   ------------------------------------------------------------------------
   
   ------------------------------------------------------------------------
   
   IID_IAsyncOperation_IGlobalSystemMediaTransportControlsSessionManager : aliased constant Windows.IID := (1055658334, 29510, 23591, (140, 95, 218, 120, 81, 74, 39, 123 ));
   
   type IAsyncOperation_IGlobalSystemMediaTransportControlsSessionManager_Interface is interface and Windows.IInspectable_Interface;
   
   function put_Completed
   (
      This       : access IAsyncOperation_IGlobalSystemMediaTransportControlsSessionManager_Interface
      ; handler : Windows.Media.Control.AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionManager
   )
   return Windows.HRESULT is abstract;
   
   function get_Completed
   (
      This       : access IAsyncOperation_IGlobalSystemMediaTransportControlsSessionManager_Interface
      ; RetVal : access Windows.Media.Control.AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionManager
   )
   return Windows.HRESULT is abstract;
   
   function GetResults
   (
      This       : access IAsyncOperation_IGlobalSystemMediaTransportControlsSessionManager_Interface
      ; RetVal : access Windows.Media.Control.IGlobalSystemMediaTransportControlsSessionManager
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IAsyncOperation_IGlobalSystemMediaTransportControlsSessionMediaProperties : aliased constant Windows.IID := (2978342643, 57560, 20939, (145, 63, 201, 141, 72, 201, 60, 70 ));
   
   type IAsyncOperation_IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface is interface and Windows.IInspectable_Interface;
   
   function put_Completed
   (
      This       : access IAsyncOperation_IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface
      ; handler : Windows.Media.Control.AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionMediaProperties
   )
   return Windows.HRESULT is abstract;
   
   function get_Completed
   (
      This       : access IAsyncOperation_IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface
      ; RetVal : access Windows.Media.Control.AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionMediaProperties
   )
   return Windows.HRESULT is abstract;
   
   function GetResults
   (
      This       : access IAsyncOperation_IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface
      ; RetVal : access Windows.Media.Control.IGlobalSystemMediaTransportControlsSessionMediaProperties
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_ICurrentSessionChangedEventArgs : aliased constant Windows.IID := (1768540985, 3066, 24544, (141, 115, 9, 204, 94, 84, 8, 225 ));
   
   type ICurrentSessionChangedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   ------------------------------------------------------------------------
   
   IID_IGlobalSystemMediaTransportControlsSession : aliased constant Windows.IID := (1900595253, 39700, 23266, (171, 133, 220, 155, 28, 20, 225, 168 ));
   
   type IGlobalSystemMediaTransportControlsSession_Interface is interface and Windows.IInspectable_Interface;
   
   function get_SourceAppUserModelId
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function TryGetMediaPropertiesAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Media.Control.IAsyncOperation_IGlobalSystemMediaTransportControlsSessionMediaProperties -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function GetTimelineProperties
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Media.Control.IGlobalSystemMediaTransportControlsSessionTimelineProperties
   )
   return Windows.HRESULT is abstract;
   
   function GetPlaybackInfo
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Media.Control.IGlobalSystemMediaTransportControlsSessionPlaybackInfo
   )
   return Windows.HRESULT is abstract;
   
   function TryPlayAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TryPauseAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TryStopAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TryRecordAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TryFastForwardAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TryRewindAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TrySkipNextAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TrySkipPreviousAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TryChangeChannelUpAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TryChangeChannelDownAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TryTogglePlayPauseAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TryChangeAutoRepeatModeAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; requestedAutoRepeatMode : Windows.Media.MediaPlaybackAutoRepeatMode
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TryChangePlaybackRateAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; requestedPlaybackRate : Windows.Double
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TryChangeShuffleActiveAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; requestedShuffleState : Windows.Boolean
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function TryChangePlaybackPositionAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; requestedPlaybackPosition : Windows.Int64
      ; RetVal : access Windows.Foundation.IAsyncOperation_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function add_TimelinePropertiesChanged
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; handler : TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_TimelinePropertiesChanged
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_TimelinePropertiesChanged
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function add_PlaybackInfoChanged
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; handler : TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_PlaybackInfoChanged
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_PlaybackInfoChanged
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function add_MediaPropertiesChanged
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; handler : TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_MediaPropertiesChanged
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_MediaPropertiesChanged
   (
      This       : access IGlobalSystemMediaTransportControlsSession_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IGlobalSystemMediaTransportControlsSessionManager : aliased constant Windows.IID := (3402534572, 59502, 20554, (171, 49, 95, 248, 255, 27, 206, 73 ));
   
   type IGlobalSystemMediaTransportControlsSessionManager_Interface is interface and Windows.IInspectable_Interface;
   
   function GetCurrentSession
   (
      This       : access IGlobalSystemMediaTransportControlsSessionManager_Interface
      ; RetVal : access Windows.Media.Control.IGlobalSystemMediaTransportControlsSession
   )
   return Windows.HRESULT is abstract;
   
   function GetSessions
   (
      This       : access IGlobalSystemMediaTransportControlsSessionManager_Interface
      ; RetVal : access Windows.Media.Control.IVectorView_IGlobalSystemMediaTransportControlsSession -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function add_CurrentSessionChanged
   (
      This       : access IGlobalSystemMediaTransportControlsSessionManager_Interface
      ; handler : TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_CurrentSessionChanged
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_CurrentSessionChanged
   (
      This       : access IGlobalSystemMediaTransportControlsSessionManager_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function add_SessionsChanged
   (
      This       : access IGlobalSystemMediaTransportControlsSessionManager_Interface
      ; handler : TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_SessionsChanged
      ; RetVal : access Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   function remove_SessionsChanged
   (
      This       : access IGlobalSystemMediaTransportControlsSessionManager_Interface
      ; token : Windows.Foundation.EventRegistrationToken
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IGlobalSystemMediaTransportControlsSessionManagerStatics : aliased constant Windows.IID := (542164206, 4512, 22494, (174, 215, 201, 124, 112, 51, 130, 69 ));
   
   type IGlobalSystemMediaTransportControlsSessionManagerStatics_Interface is interface and Windows.IInspectable_Interface;
   
   function RequestAsync
   (
      This       : access IGlobalSystemMediaTransportControlsSessionManagerStatics_Interface
      ; RetVal : access Windows.Media.Control.IAsyncOperation_IGlobalSystemMediaTransportControlsSessionManager -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IGlobalSystemMediaTransportControlsSessionMediaProperties : aliased constant Windows.IID := (1753574646, 44468, 21682, (172, 22, 5, 131, 121, 7, 172, 182 ));
   
   type IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Title
   (
      This       : access IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_Subtitle
   (
      This       : access IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_AlbumArtist
   (
      This       : access IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_Artist
   (
      This       : access IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_AlbumTitle
   (
      This       : access IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface
      ; RetVal : access Windows.String
   )
   return Windows.HRESULT is abstract;
   
   function get_TrackNumber
   (
      This       : access IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface
      ; RetVal : access Windows.Int32
   )
   return Windows.HRESULT is abstract;
   
   function get_Genres
   (
      This       : access IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface
      ; RetVal : access Windows.Foundation.Collections.IVectorView_String -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function get_AlbumTrackCount
   (
      This       : access IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface
      ; RetVal : access Windows.Int32
   )
   return Windows.HRESULT is abstract;
   
   function get_PlaybackType
   (
      This       : access IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface
      ; RetVal : access Windows.Media.IReference_MediaPlaybackType -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function get_Thumbnail
   (
      This       : access IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface
      ; RetVal : access Windows.Storage.Streams.IRandomAccessStreamReference
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IGlobalSystemMediaTransportControlsSessionPlaybackControls : aliased constant Windows.IID := (1694606310, 48250, 20538, (187, 27, 104, 241, 88, 243, 251, 3 ));
   
   type IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface is interface and Windows.IInspectable_Interface;
   
   function get_IsPlayEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsPauseEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsStopEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsRecordEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsFastForwardEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsRewindEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsNextEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsPreviousEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsChannelUpEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsChannelDownEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsPlayPauseToggleEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsShuffleEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsRepeatEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsPlaybackRateEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function get_IsPlaybackPositionEnabled
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackControls_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IGlobalSystemMediaTransportControlsSessionPlaybackInfo : aliased constant Windows.IID := (2494871247, 59578, 20909, (135, 167, 193, 10, 222, 16, 97, 39 ));
   
   type IGlobalSystemMediaTransportControlsSessionPlaybackInfo_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Controls
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackInfo_Interface
      ; RetVal : access Windows.Media.Control.IGlobalSystemMediaTransportControlsSessionPlaybackControls
   )
   return Windows.HRESULT is abstract;
   
   function get_PlaybackStatus
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackInfo_Interface
      ; RetVal : access Windows.Media.Control.GlobalSystemMediaTransportControlsSessionPlaybackStatus
   )
   return Windows.HRESULT is abstract;
   
   function get_PlaybackType
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackInfo_Interface
      ; RetVal : access Windows.Media.IReference_MediaPlaybackType -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function get_AutoRepeatMode
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackInfo_Interface
      ; RetVal : access Windows.Media.IReference_MediaPlaybackAutoRepeatMode -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function get_PlaybackRate
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackInfo_Interface
      ; RetVal : access Windows.Foundation.IReference_Double -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   function get_IsShuffleActive
   (
      This       : access IGlobalSystemMediaTransportControlsSessionPlaybackInfo_Interface
      ; RetVal : access Windows.Foundation.IReference_Boolean -- Generic Parameter Type
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IGlobalSystemMediaTransportControlsSessionTimelineProperties : aliased constant Windows.IID := (3991093558, 28453, 22669, (142, 207, 234, 91, 103, 53, 170, 165 ));
   
   type IGlobalSystemMediaTransportControlsSessionTimelineProperties_Interface is interface and Windows.IInspectable_Interface;
   
   function get_StartTime
   (
      This       : access IGlobalSystemMediaTransportControlsSessionTimelineProperties_Interface
      ; RetVal : access Windows.Foundation.TimeSpan
   )
   return Windows.HRESULT is abstract;
   
   function get_EndTime
   (
      This       : access IGlobalSystemMediaTransportControlsSessionTimelineProperties_Interface
      ; RetVal : access Windows.Foundation.TimeSpan
   )
   return Windows.HRESULT is abstract;
   
   function get_MinSeekTime
   (
      This       : access IGlobalSystemMediaTransportControlsSessionTimelineProperties_Interface
      ; RetVal : access Windows.Foundation.TimeSpan
   )
   return Windows.HRESULT is abstract;
   
   function get_MaxSeekTime
   (
      This       : access IGlobalSystemMediaTransportControlsSessionTimelineProperties_Interface
      ; RetVal : access Windows.Foundation.TimeSpan
   )
   return Windows.HRESULT is abstract;
   
   function get_Position
   (
      This       : access IGlobalSystemMediaTransportControlsSessionTimelineProperties_Interface
      ; RetVal : access Windows.Foundation.TimeSpan
   )
   return Windows.HRESULT is abstract;
   
   function get_LastUpdatedTime
   (
      This       : access IGlobalSystemMediaTransportControlsSessionTimelineProperties_Interface
      ; RetVal : access Windows.Foundation.DateTime
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterable_IGlobalSystemMediaTransportControlsSession : aliased constant Windows.IID := (1817791486, 46045, 24349, (167, 143, 58, 45, 158, 147, 124, 163 ));
   
   type IIterable_IGlobalSystemMediaTransportControlsSession_Interface is interface and Windows.IInspectable_Interface;
   
   function First
   (
      This       : access IIterable_IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Media.Control.IIterator_IGlobalSystemMediaTransportControlsSession
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IIterator_IGlobalSystemMediaTransportControlsSession : aliased constant Windows.IID := (3962444867, 26587, 22917, (178, 250, 145, 253, 106, 156, 30, 191 ));
   
   type IIterator_IGlobalSystemMediaTransportControlsSession_Interface is interface and Windows.IInspectable_Interface;
   
   function get_Current
   (
      This       : access IIterator_IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Media.Control.IGlobalSystemMediaTransportControlsSession
   )
   return Windows.HRESULT is abstract;
   
   function get_HasCurrent
   (
      This       : access IIterator_IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function MoveNext
   (
      This       : access IIterator_IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IIterator_IGlobalSystemMediaTransportControlsSession_Interface
      ; items : Windows.Media.Control.IGlobalSystemMediaTransportControlsSession_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   
   IID_IMediaPropertiesChangedEventArgs : aliased constant Windows.IID := (2100773323, 44528, 23791, (145, 186, 207, 171, 205, 215, 118, 120 ));
   
   type IMediaPropertiesChangedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   ------------------------------------------------------------------------
   
   IID_IPlaybackInfoChangedEventArgs : aliased constant Windows.IID := (2020038338, 48141, 20645, (136, 7, 5, 66, 145, 254, 241, 57 ));
   
   type IPlaybackInfoChangedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   ------------------------------------------------------------------------
   
   IID_ISessionsChangedEventArgs : aliased constant Windows.IID := (3153120562, 17092, 23128, (179, 23, 243, 75, 191, 189, 38, 224 ));
   
   type ISessionsChangedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   ------------------------------------------------------------------------
   
   IID_ITimelinePropertiesChangedEventArgs : aliased constant Windows.IID := (688077359, 51491, 23159, (188, 175, 5, 95, 244, 21, 173, 50 ));
   
   type ITimelinePropertiesChangedEventArgs_Interface is interface and Windows.IInspectable_Interface;
   
   ------------------------------------------------------------------------
   
   IID_IVectorView_IGlobalSystemMediaTransportControlsSession : aliased constant Windows.IID := (2602988250, 20616, 23069, (172, 217, 163, 252, 94, 241, 207, 164 ));
   
   type IVectorView_IGlobalSystemMediaTransportControlsSession_Interface is interface and Windows.IInspectable_Interface;
   
   function GetAt
   (
      This       : access IVectorView_IGlobalSystemMediaTransportControlsSession_Interface
      ; index : Windows.UInt32
      ; RetVal : access Windows.Media.Control.IGlobalSystemMediaTransportControlsSession
   )
   return Windows.HRESULT is abstract;
   
   function get_Size
   (
      This       : access IVectorView_IGlobalSystemMediaTransportControlsSession_Interface
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   function IndexOf
   (
      This       : access IVectorView_IGlobalSystemMediaTransportControlsSession_Interface
      ; value : Windows.Media.Control.IGlobalSystemMediaTransportControlsSession
      ; index : access Windows.UInt32
      ; RetVal : access Windows.Boolean
   )
   return Windows.HRESULT is abstract;
   
   function GetMany
   (
      This       : access IVectorView_IGlobalSystemMediaTransportControlsSession_Interface
      ; startIndex : Windows.UInt32
      ; items : Windows.Media.Control.IGlobalSystemMediaTransportControlsSession_Ptr
      ; RetVal : access Windows.UInt32
   )
   return Windows.HRESULT is abstract;
   
   ------------------------------------------------------------------------
   -- Delegates/Events
   ------------------------------------------------------------------------
   
   ------------------------------------------------------------------------
   
   IID_AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionManager : aliased constant Windows.IID := (284165966, 37437, 21776, (143, 74, 221, 227, 119, 84, 202, 14 ));
   
   type AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionManager_Interface(Callback : access procedure (asyncInfo : Windows.Media.Control.IAsyncOperation_IGlobalSystemMediaTransportControlsSessionManager ; asyncStatus : Windows.Foundation.AsyncStatus)) is new Windows.IMulticastDelegate_Interface(IID_AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionManager'access) with null record;
   function Invoke
   (
      This       : access AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionManager_Interface
      ; asyncInfo : Windows.Media.Control.IAsyncOperation_IGlobalSystemMediaTransportControlsSessionManager
      ; asyncStatus : Windows.Foundation.AsyncStatus
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionMediaProperties : aliased constant Windows.IID := (2220440125, 38170, 21942, (131, 83, 82, 5, 229, 119, 121, 123 ));
   
   type AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface(Callback : access procedure (asyncInfo : Windows.Media.Control.IAsyncOperation_IGlobalSystemMediaTransportControlsSessionMediaProperties ; asyncStatus : Windows.Foundation.AsyncStatus)) is new Windows.IMulticastDelegate_Interface(IID_AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionMediaProperties'access) with null record;
   function Invoke
   (
      This       : access AsyncOperationCompletedHandler_IGlobalSystemMediaTransportControlsSessionMediaProperties_Interface
      ; asyncInfo : Windows.Media.Control.IAsyncOperation_IGlobalSystemMediaTransportControlsSessionMediaProperties
      ; asyncStatus : Windows.Foundation.AsyncStatus
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_MediaPropertiesChanged : aliased constant Windows.IID := (254599863, 44967, 24272, (140, 182, 140, 64, 207, 155, 58, 95 ));
   
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_MediaPropertiesChanged_Interface(Callback : access procedure (sender : Windows.Media.Control.IGlobalSystemMediaTransportControlsSession ; args : Windows.Media.Control.IMediaPropertiesChangedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_MediaPropertiesChanged'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_MediaPropertiesChanged_Interface
      ; sender : Windows.Media.Control.IGlobalSystemMediaTransportControlsSession
      ; args : Windows.Media.Control.IMediaPropertiesChangedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_PlaybackInfoChanged : aliased constant Windows.IID := (736039974, 54303, 22678, (137, 127, 239, 192, 176, 250, 115, 146 ));
   
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_PlaybackInfoChanged_Interface(Callback : access procedure (sender : Windows.Media.Control.IGlobalSystemMediaTransportControlsSession ; args : Windows.Media.Control.IPlaybackInfoChangedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_PlaybackInfoChanged'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_PlaybackInfoChanged_Interface
      ; sender : Windows.Media.Control.IGlobalSystemMediaTransportControlsSession
      ; args : Windows.Media.Control.IPlaybackInfoChangedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_TimelinePropertiesChanged : aliased constant Windows.IID := (3904856751, 64193, 24575, (144, 83, 11, 241, 145, 174, 119, 126 ));
   
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_TimelinePropertiesChanged_Interface(Callback : access procedure (sender : Windows.Media.Control.IGlobalSystemMediaTransportControlsSession ; args : Windows.Media.Control.ITimelinePropertiesChangedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_TimelinePropertiesChanged'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IGlobalSystemMediaTransportControlsSession_add_TimelinePropertiesChanged_Interface
      ; sender : Windows.Media.Control.IGlobalSystemMediaTransportControlsSession
      ; args : Windows.Media.Control.ITimelinePropertiesChangedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_CurrentSessionChanged : aliased constant Windows.IID := (579588333, 8098, 24219, (166, 236, 66, 86, 97, 115, 16, 59 ));
   
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_CurrentSessionChanged_Interface(Callback : access procedure (sender : Windows.Media.Control.IGlobalSystemMediaTransportControlsSessionManager ; args : Windows.Media.Control.ICurrentSessionChangedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_CurrentSessionChanged'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_CurrentSessionChanged_Interface
      ; sender : Windows.Media.Control.IGlobalSystemMediaTransportControlsSessionManager
      ; args : Windows.Media.Control.ICurrentSessionChangedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   
   IID_TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_SessionsChanged : aliased constant Windows.IID := (774538800, 56460, 21258, (151, 70, 188, 152, 77, 75, 2, 158 ));
   
   type TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_SessionsChanged_Interface(Callback : access procedure (sender : Windows.Media.Control.IGlobalSystemMediaTransportControlsSessionManager ; args : Windows.Media.Control.ISessionsChangedEventArgs)) is new Windows.IMulticastDelegate_Interface(IID_TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_SessionsChanged'access) with null record;
   function Invoke
   (
      This       : access TypedEventHandler_IGlobalSystemMediaTransportControlsSessionManager_add_SessionsChanged_Interface
      ; sender : Windows.Media.Control.IGlobalSystemMediaTransportControlsSessionManager
      ; args : Windows.Media.Control.ISessionsChangedEventArgs
   )
   return Windows.HRESULT;
   
   ------------------------------------------------------------------------
   -- Classes
   ------------------------------------------------------------------------
   
   subtype CurrentSessionChangedEventArgs is Windows.Media.Control.ICurrentSessionChangedEventArgs;
   subtype GlobalSystemMediaTransportControlsSession is Windows.Media.Control.IGlobalSystemMediaTransportControlsSession;
   subtype GlobalSystemMediaTransportControlsSessionManager is Windows.Media.Control.IGlobalSystemMediaTransportControlsSessionManager;
   subtype GlobalSystemMediaTransportControlsSessionMediaProperties is Windows.Media.Control.IGlobalSystemMediaTransportControlsSessionMediaProperties;
   subtype GlobalSystemMediaTransportControlsSessionPlaybackControls is Windows.Media.Control.IGlobalSystemMediaTransportControlsSessionPlaybackControls;
   subtype GlobalSystemMediaTransportControlsSessionPlaybackInfo is Windows.Media.Control.IGlobalSystemMediaTransportControlsSessionPlaybackInfo;
   subtype GlobalSystemMediaTransportControlsSessionTimelineProperties is Windows.Media.Control.IGlobalSystemMediaTransportControlsSessionTimelineProperties;
   subtype MediaPropertiesChangedEventArgs is Windows.Media.Control.IMediaPropertiesChangedEventArgs;
   subtype PlaybackInfoChangedEventArgs is Windows.Media.Control.IPlaybackInfoChangedEventArgs;
   subtype SessionsChangedEventArgs is Windows.Media.Control.ISessionsChangedEventArgs;
   subtype TimelinePropertiesChangedEventArgs is Windows.Media.Control.ITimelinePropertiesChangedEventArgs;
   
   ------------------------------------------------------------------------
   -- Static Procedures/functions
   ------------------------------------------------------------------------
   
   function RequestAsync
   return Windows.Media.Control.IAsyncOperation_IGlobalSystemMediaTransportControlsSessionManager;
   
end;
