mfplat: Add MFCreateAMMediaTypeFromMFMediaType stub.
[wine.git] / include / windows.media.idl
blob35aa64a1937a5e5bfd9844c4f9411ca9a9327a97
1 /*
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
19 #ifdef __WIDL__
20 #pragma winrt ns_prefix
21 #endif
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;
60 declare
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)
73 enum AudioProcessing
75 Default = 0,
76 Raw = 1,
80 contract(Windows.Foundation.UniversalApiContract, 1.0)
82 enum MediaPlaybackStatus
84 Closed = 0,
85 Changing = 1,
86 Stopped = 2,
87 Playing = 3,
88 Paused = 4,
92 contract(Windows.Foundation.UniversalApiContract, 1.0)
94 enum MediaPlaybackType
96 Unknown = 0,
97 Music = 1,
98 Video = 2,
99 Image = 3,
103 contract(Windows.Foundation.UniversalApiContract, 1.0)
105 enum SoundLevel
107 Muted = 0,
108 Low = 1,
109 Full = 2,
113 contract(Windows.Foundation.UniversalApiContract, 1.0)
115 enum SystemMediaTransportControlsButton
117 Play = 0,
118 Pause = 1,
119 Stop = 2,
120 Record = 3,
121 FastForward = 4,
122 Rewind = 5,
123 Next = 6,
124 Previous = 7,
125 ChannelUp = 8,
126 ChannelDown = 9,
130 contract(Windows.Foundation.UniversalApiContract, 1.0)
132 enum SystemMediaTransportControlsProperty
134 SoundLevel = 0,
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
242 HRESULT ClearAll();
243 HRESULT Update();
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),
269 threading(both)
271 runtimeclass ImageDisplayProperties
273 [default] interface Windows.Media.IImageDisplayProperties;
277 contract(Windows.Foundation.UniversalApiContract, 1.0),
278 marshaling_behavior(agile),
279 threading(both)
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),
292 threading(mta)
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),
312 threading(both)
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),
331 threading(both)
333 runtimeclass VideoDisplayProperties
335 [default] interface Windows.Media.IVideoDisplayProperties;
336 [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.IVideoDisplayProperties2;