2 * Copyright 2021 Paul Gofman for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #pragma winrt ns_prefix
23 import
"inspectable.idl";
24 import
"windows.foundation.idl";
25 import
"windows.storage.idl";
26 import
"windows.storage.streams.idl";
28 namespace Windows.Media
30 typedef enum AudioProcessing AudioProcessing
;
31 typedef enum MediaPlaybackStatus MediaPlaybackStatus
;
32 typedef enum MediaPlaybackType MediaPlaybackType
;
33 typedef enum SoundLevel SoundLevel
;
34 typedef enum SystemMediaTransportControlsButton SystemMediaTransportControlsButton
;
35 typedef enum SystemMediaTransportControlsProperty SystemMediaTransportControlsProperty
;
37 interface IImageDisplayProperties
;
38 interface IMediaControl
;
39 interface IMediaMarker
;
40 interface IMusicDisplayProperties
;
41 interface IMusicDisplayProperties2
;
42 interface IMusicDisplayProperties3
;
43 interface ISystemMediaTransportControls
;
44 interface ISystemMediaTransportControls2
;
45 interface ISystemMediaTransportControlsButtonPressedEventArgs
;
46 interface ISystemMediaTransportControlsDisplayUpdater
;
47 interface ISystemMediaTransportControlsPropertyChangedEventArgs
;
48 interface ISystemMediaTransportControlsStatics
;
49 interface IVideoDisplayProperties
;
50 interface IVideoDisplayProperties2
;
52 runtimeclass ImageDisplayProperties
;
53 runtimeclass MusicDisplayProperties
;
54 runtimeclass SystemMediaTransportControls
;
55 runtimeclass SystemMediaTransportControlsButtonPressedEventArgs
;
56 runtimeclass SystemMediaTransportControlsDisplayUpdater
;
57 runtimeclass SystemMediaTransportControlsPropertyChangedEventArgs
;
58 runtimeclass VideoDisplayProperties
;
62 interface Windows.Foundation.Collections.IIterable
<Windows.Media.IMediaMarker
*>;
63 interface Windows.Foundation.Collections.IIterator
<Windows.Media.IMediaMarker
*>;
64 interface Windows.Foundation.Collections.IVectorView
<Windows.Media.IMediaMarker
*>;
65 interface Windows.Foundation.Collections.IVector
<Windows.Media.IMediaMarker
*>;
66 interface Windows.Foundation.TypedEventHandler
<Windows.Media.SystemMediaTransportControls
*, Windows.Media.SystemMediaTransportControlsButtonPressedEventArgs
*>;
67 interface Windows.Foundation.TypedEventHandler
<Windows.Media.SystemMediaTransportControls
*, Windows.Media.SystemMediaTransportControlsPropertyChangedEventArgs
*>;
71 contract
(Windows.Foundation.UniversalApiContract
, 1.0)
80 contract
(Windows.Foundation.UniversalApiContract
, 1.0)
82 enum MediaPlaybackStatus
92 contract
(Windows.Foundation.UniversalApiContract
, 1.0)
94 enum MediaPlaybackType
103 contract
(Windows.Foundation.UniversalApiContract
, 1.0)
113 contract
(Windows.Foundation.UniversalApiContract
, 1.0)
115 enum SystemMediaTransportControlsButton
130 contract
(Windows.Foundation.UniversalApiContract
, 1.0)
132 enum SystemMediaTransportControlsProperty
138 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
139 uuid(1803def8
-dca5
-4b6f
-9c20
-e3d3c0643625
)
141 interface IMediaMarker
: IInspectable
143 [propget] HRESULT Time
([out, retval] Windows.Foundation.TimeSpan
*value
);
144 [propget] HRESULT MediaMarkerType
([out, retval] HSTRING
*value
);
145 [propget] HRESULT Text
([out, retval] HSTRING
*value
);
149 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
150 exclusiveto
(Windows.Media.MusicDisplayProperties
),
151 uuid(6bbf0c59
-d0a0
-4d26
-92a0
-f978e1d18e7b
)
153 interface IMusicDisplayProperties
: IInspectable
155 [propget] HRESULT Title
([out, retval] HSTRING
*value
);
156 [propput] HRESULT Title
([in] HSTRING value
);
157 [propget] HRESULT AlbumArtist
([out, retval] HSTRING
*value
);
158 [propput] HRESULT AlbumArtist
([in] HSTRING value
);
159 [propget] HRESULT Artist
([out, retval] HSTRING
*value
);
160 [propput] HRESULT Artist
([in] HSTRING value
);
164 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
165 exclusiveto
(Windows.Media.MusicDisplayProperties
),
166 uuid(00368462-97d3
-44b9
-b00f
-008afcefaf18
)
168 interface IMusicDisplayProperties2
: IInspectable
170 [propget] HRESULT AlbumTitle
([out, retval] HSTRING
*value
);
171 [propput] HRESULT AlbumTitle
([in] HSTRING value
);
172 [propget] HRESULT TrackNumber
([out, retval] UINT32
*value
);
173 [propput] HRESULT TrackNumber
([in] UINT32 value
);
174 [propget] HRESULT Genres
([out, retval] Windows.Foundation.Collections.IVector
<HSTRING
> **value
);
178 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
179 exclusiveto
(Windows.Media.SystemMediaTransportControls
),
180 uuid(99fa3ff4
-1742-42a6
-902e-087d41f965ec
)
182 interface ISystemMediaTransportControls
: IInspectable
184 [propget] HRESULT PlaybackStatus
([out, retval] Windows.Media.MediaPlaybackStatus
*value
);
185 [propput] HRESULT PlaybackStatus
([in] Windows.Media.MediaPlaybackStatus value
);
186 [propget] HRESULT DisplayUpdater
([out, retval] Windows.Media.SystemMediaTransportControlsDisplayUpdater
**value
);
187 [propget] HRESULT SoundLevel
([out, retval] Windows.Media.SoundLevel
*value
);
188 [propget] HRESULT IsEnabled
([out, retval] boolean *value
);
189 [propput] HRESULT IsEnabled
([in] boolean value
);
190 [propget] HRESULT IsPlayEnabled
([out, retval] boolean *value
);
191 [propput] HRESULT IsPlayEnabled
([in] boolean value
);
192 [propget] HRESULT IsStopEnabled
([out, retval] boolean *value
);
193 [propput] HRESULT IsStopEnabled
([in] boolean value
);
194 [propget] HRESULT IsPauseEnabled
([out, retval] boolean *value
);
195 [propput] HRESULT IsPauseEnabled
([in] boolean value
);
196 [propget] HRESULT IsRecordEnabled
([out, retval] boolean *value
);
197 [propput] HRESULT IsRecordEnabled
([in] boolean value
);
198 [propget] HRESULT IsFastForwardEnabled
([out, retval] boolean *value
);
199 [propput] HRESULT IsFastForwardEnabled
([in] boolean value
);
200 [propget] HRESULT IsRewindEnabled
([out, retval] boolean *value
);
201 [propput] HRESULT IsRewindEnabled
([in] boolean value
);
202 [propget] HRESULT IsPreviousEnabled
([out, retval] boolean *value
);
203 [propput] HRESULT IsPreviousEnabled
([in] boolean value
);
204 [propget] HRESULT IsNextEnabled
([out, retval] boolean *value
);
205 [propput] HRESULT IsNextEnabled
([in] boolean value
);
206 [propget] HRESULT IsChannelUpEnabled
([out, retval] boolean *value
);
207 [propput] HRESULT IsChannelUpEnabled
([in] boolean value
);
208 [propget] HRESULT IsChannelDownEnabled
([out, retval] boolean *value
);
209 [propput] HRESULT IsChannelDownEnabled
([in] boolean value
);
210 [eventadd
] HRESULT ButtonPressed
(
211 [in] Windows.Foundation.TypedEventHandler
<Windows.Media.SystemMediaTransportControls
*, Windows.Media.SystemMediaTransportControlsButtonPressedEventArgs
*> *handler
,
212 [out, retval] EventRegistrationToken
*token
214 [eventremove
] HRESULT ButtonPressed
([in] EventRegistrationToken token
);
215 [eventadd
] HRESULT PropertyChanged
(
216 [in] Windows.Foundation.TypedEventHandler
<Windows.Media.SystemMediaTransportControls
*, Windows.Media.SystemMediaTransportControlsPropertyChangedEventArgs
*> *handler
,
217 [out, retval] EventRegistrationToken
*token
219 [eventremove
] HRESULT PropertyChanged
([in] EventRegistrationToken token
);
223 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
224 exclusiveto
(Windows.Media.SystemMediaTransportControlsDisplayUpdater
),
225 uuid(8abbc53e
-fa55
-4ecf
-ad8e
-c984e5dd1550
)
227 interface ISystemMediaTransportControlsDisplayUpdater
: IInspectable
229 [propget] HRESULT Type
([out, retval] Windows.Media.MediaPlaybackType
*value
);
230 [propput] HRESULT Type
([in] Windows.Media.MediaPlaybackType value
);
231 [propget] HRESULT AppMediaId
([out, retval] HSTRING
*value
);
232 [propput] HRESULT AppMediaId
([in] HSTRING value
);
233 [propget] HRESULT Thumbnail
([out, retval] Windows.Storage.Streams.RandomAccessStreamReference
**value
);
234 [propput] HRESULT Thumbnail
([in] Windows.Storage.Streams.RandomAccessStreamReference
*value
);
235 [propget] HRESULT MusicProperties
([out, retval] Windows.Media.MusicDisplayProperties
**value
);
236 [propget] HRESULT VideoProperties
([out, retval] Windows.Media.VideoDisplayProperties
**value
);
237 [propget] HRESULT ImageProperties
([out, retval] Windows.Media.ImageDisplayProperties
**value
);
238 HRESULT CopyFromFileAsync
(
239 [in] Windows.Media.MediaPlaybackType type
, [in] Windows.Storage.StorageFile
*source,
240 [out, retval] Windows.Foundation.IAsyncOperation
<boolean> **operation
247 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
248 exclusiveto
(Windows.Media.SystemMediaTransportControlsButtonPressedEventArgs
),
249 uuid(b7f47116
-a56f
-4dc8
-9e11
-92031f4a87c2
)
251 interface ISystemMediaTransportControlsButtonPressedEventArgs
: IInspectable
253 [propget] HRESULT Button
([out, retval] Windows.Media.SystemMediaTransportControlsButton
*value
);
257 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
258 exclusiveto
(Windows.Media.SystemMediaTransportControlsPropertyChangedEventArgs
),
259 uuid(d0ca0936
-339b
-4cb3
-8eeb
-737607f56e08
)
261 interface ISystemMediaTransportControlsPropertyChangedEventArgs
: IInspectable
263 [propget] HRESULT Property
([out, retval] Windows.Media.SystemMediaTransportControlsProperty
*value
);
267 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
268 marshaling_behavior
(agile
),
271 runtimeclass ImageDisplayProperties
273 [default] interface Windows.Media.IImageDisplayProperties
;
277 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
278 marshaling_behavior
(agile
),
281 runtimeclass MusicDisplayProperties
283 [default] interface Windows.Media.IMusicDisplayProperties
;
284 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)] interface Windows.Media.IMusicDisplayProperties2
;
285 [contract
(Windows.Foundation.UniversalApiContract
, 3.0)] interface Windows.Media.IMusicDisplayProperties3
;
289 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
290 marshaling_behavior
(agile
),
291 static
(Windows.Media.ISystemMediaTransportControlsStatics
, Windows.Foundation.UniversalApiContract
, 1.0),
294 runtimeclass SystemMediaTransportControls
296 [default] interface Windows.Media.ISystemMediaTransportControls
;
297 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)] interface Windows.Media.ISystemMediaTransportControls2
;
301 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
302 marshaling_behavior
(agile
)
304 runtimeclass SystemMediaTransportControlsButtonPressedEventArgs
306 [default] interface Windows.Media.ISystemMediaTransportControlsButtonPressedEventArgs
;
310 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
311 marshaling_behavior
(agile
),
314 runtimeclass SystemMediaTransportControlsDisplayUpdater
316 [default] interface Windows.Media.ISystemMediaTransportControlsDisplayUpdater
;
320 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
321 marshaling_behavior
(agile
)
323 runtimeclass SystemMediaTransportControlsPropertyChangedEventArgs
325 [default] interface Windows.Media.ISystemMediaTransportControlsPropertyChangedEventArgs
;
329 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
330 marshaling_behavior
(agile
),
333 runtimeclass VideoDisplayProperties
335 [default] interface Windows.Media.IVideoDisplayProperties
;
336 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)] interface Windows.Media.IVideoDisplayProperties2
;