bcrypt: Export ECDSA/ECDH blobs with the correct header magic.
[wine.git] / include / mfmediaengine.idl
blobb914cb3600bc392e88aa88bab77717db662d9cca
1 /*
2 * Copyright 2019 Jactry Zeng 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 import "mfidl.idl";
21 cpp_quote("EXTERN_GUID(CLSID_MFMediaEngineClassFactory, 0xb44392da, 0x499b, 0x446b, 0xa4, 0xcb, 0x00, 0x5f, 0xea, 0xd0, 0xe6, 0xd5);")
23 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_AUDIO_CATEGORY, 0xc8d4c51d, 0x350e, 0x41f2, 0xba, 0x46, 0xfa, 0xeb, 0xbb, 0x08, 0x57, 0xf6);")
24 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_AUDIO_ENDPOINT_ROLE, 0xd2cb93d1, 0x116a, 0x44f2, 0x93, 0x85, 0xf7, 0xd0, 0xfd, 0xa2, 0xfb, 0x46);")
25 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE, 0x4e0212e2, 0xe18f, 0x41e1, 0x95, 0xe5, 0xc0, 0xe7, 0xe9, 0x23, 0x5b, 0xc3);")
26 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE_IE9, 0x052c2d39, 0x40c0, 0x4188, 0xab, 0x86, 0xf8, 0x28, 0x27, 0x3b, 0x75, 0x22);")
27 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE_IE10, 0x11a47afd, 0x6589, 0x4124, 0xb3, 0x12, 0x61, 0x58, 0xec, 0x51, 0x7f, 0xc3);")
28 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE_IE11, 0x1cf1315f, 0xce3f, 0x4035, 0x93, 0x91, 0x16, 0x14, 0x2f, 0x77, 0x51, 0x89);")
29 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE_IE_EDGE, 0xa6f3e465, 0x3aca, 0x442c, 0xa3, 0xf0, 0xad, 0x6d, 0xda, 0xd8, 0x39, 0xae);")
30 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_CALLBACK, 0xc60381b8, 0x83a4, 0x41f8, 0xa3, 0xd0, 0xde, 0x05, 0x07, 0x68, 0x49, 0xa9);")
31 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_COMPATIBILITY_MODE, 0x3ef26ad4, 0xdc54, 0x45de, 0xb9, 0xaf, 0x76, 0xc8, 0xc6, 0x6b, 0xfa, 0x8e);")
32 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_COMPATIBILITY_MODE_WIN10, 0x5b25e089, 0x6ca7, 0x4139, 0xa2, 0xcb, 0xfc, 0xaa, 0xb3, 0x95, 0x52, 0xa3);")
33 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_COMPATIBILITY_MODE_WWA_EDGE, 0x15b29098, 0x9f01, 0x4e4d, 0xb6, 0x5a, 0xc0, 0x6c, 0x6c, 0x89, 0xda, 0x2a);")
34 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_CONTENT_PROTECTION_FLAGS, 0xe0350223, 0x5aaf, 0x4d76, 0xa7, 0xc3, 0x06, 0xde, 0x70, 0x89, 0x4d, 0xb4);")
35 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_CONTENT_PROTECTION_MANAGER, 0xfdd6dfaa, 0xbd85, 0x4af3, 0x9e, 0x0f, 0xa0, 0x1d, 0x53, 0x9d, 0x87, 0x6a);")
36 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_CONTINUE_ON_CODEC_ERROR, 0xdbcdb7f9, 0x48e4, 0x4295, 0xb7, 0x0d, 0xd5, 0x18, 0x23, 0x4e, 0xeb, 0x38);")
37 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_COREWINDOW, 0xfccae4dc, 0x0b7f, 0x41c2, 0x9f, 0x96, 0x46, 0x59, 0x94, 0x8a, 0xcd, 0xdc);")
38 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_DXGI_MANAGER, 0x065702da, 0x1094, 0x486d, 0x86, 0x17, 0xee, 0x7c, 0xc4, 0xee, 0x46, 0x48);")
39 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_EME_CALLBACK, 0x494553a7, 0xa481, 0x4cb7, 0xbe, 0xc5, 0x38, 0x09, 0x03, 0x51, 0x37, 0x31);")
40 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_EXTENSION, 0x3109fd46, 0x060d, 0x4b62, 0x8d, 0xcf, 0xfa, 0xff, 0x81, 0x13, 0x18, 0xd2);")
41 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_MEDIA_PLAYER_MODE, 0x3ddd8d45, 0x5aa1, 0x4112, 0x82, 0xe5, 0x36, 0xf6, 0xa2, 0x19, 0x7e, 0x6e);")
42 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_NEEDKEY_CALLBACK, 0x7ea80843, 0xb6e4, 0x432c, 0x8e, 0xa4, 0x78, 0x48, 0xff, 0xe4, 0x22, 0x0e);")
43 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_OPM_HWND, 0xa0be8ee7, 0x0572, 0x4f2c, 0xa8, 0x01, 0x2a, 0x15, 0x1b, 0xd3, 0xe7, 0x26);")
44 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_PLAYBACK_HWND, 0xd988879b, 0x67c9, 0x4d92, 0xba, 0xa7, 0x6e, 0xad, 0xd4, 0x46, 0x03, 0x9d);")
45 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_PLAYBACK_VISUAL, 0x6debd26f, 0x6ab9, 0x4d7e, 0xb0, 0xee, 0xc6, 0x1a, 0x73, 0xff, 0xad, 0x15);")
46 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_SOURCE_RESOLVER_CONFIG_STORE, 0x0ac0c497, 0xb3c4, 0x48c9, 0x9c, 0xde, 0xbb, 0x8c, 0xa2, 0x44, 0x2c, 0xa3);")
47 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_STREAM_CONTAINS_ALPHA_CHANNEL, 0x5cbfaf44, 0xd2b2, 0x4cfb, 0x80, 0xa7, 0xd4, 0x29, 0xc7, 0x4c, 0x78, 0x9d);")
48 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_SYNCHRONOUS_CLOSE, 0xc3c2e12f, 0x7e0e, 0x4e43, 0xb9, 0x1c, 0xdc, 0x99, 0x2c, 0xcd, 0xfa, 0x5e);")
49 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_TELEMETRY_APPLICATION_ID, 0x1e7b273b, 0xa7e4, 0x402a, 0x8f, 0x51, 0xc4, 0x8e, 0x88, 0xa2, 0xca, 0xbc);")
50 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_TRACK_ID, 0x65bea312, 0x4043, 0x4815, 0x8e, 0xab, 0x44, 0xdc, 0xe2, 0xef, 0x8f, 0x2a);")
51 cpp_quote("EXTERN_GUID(MF_MEDIA_ENGINE_VIDEO_OUTPUT_FORMAT, 0x5066893c, 0x8cf9, 0x42bc, 0x8b, 0x8a, 0x47, 0x22, 0x12, 0xe5, 0x27, 0x26);")
53 typedef enum MF_MEDIA_ENGINE_ERR
55 MF_MEDIA_ENGINE_ERR_NOERROR,
56 MF_MEDIA_ENGINE_ERR_ABORTED,
57 MF_MEDIA_ENGINE_ERR_NETWORK,
58 MF_MEDIA_ENGINE_ERR_DECODE,
59 MF_MEDIA_ENGINE_ERR_SRC_NOT_SUPPORTED,
60 MF_MEDIA_ENGINE_ERR_ENCRYPTED
61 } MF_MEDIA_ENGINE_ERR;
63 typedef enum MF_MEDIA_ENGINE_PRELOAD
65 MF_MEDIA_ENGINE_PRELOAD_MISSING,
66 MF_MEDIA_ENGINE_PRELOAD_EMPTY,
67 MF_MEDIA_ENGINE_PRELOAD_NONE,
68 MF_MEDIA_ENGINE_PRELOAD_METADATA,
69 MF_MEDIA_ENGINE_PRELOAD_AUTOMATIC
70 } MF_MEDIA_ENGINE_PRELOAD;
72 typedef enum MF_MEDIA_ENGINE_CANPLAY
74 MF_MEDIA_ENGINE_CANPLAY_NOT_SUPPORTED,
75 MF_MEDIA_ENGINE_CANPLAY_MAYBE,
76 MF_MEDIA_ENGINE_CANPLAY_PROBABLY,
77 } MF_MEDIA_ENGINE_CANPLAY;
79 typedef struct MFVideoNormalizedRect
81 float left;
82 float top;
83 float right;
84 float bottom;
85 } MFVideoNormalizedRect;
87 typedef enum MF_MEDIA_ENGINE_CREATEFLAGS
89 MF_MEDIA_ENGINE_AUDIOONLY = 0x1,
90 MF_MEDIA_ENGINE_WAITFORSTABLE_STATE = 0x2,
91 MF_MEDIA_ENGINE_FORCEMUTE = 0x4,
92 MF_MEDIA_ENGINE_REAL_TIME_MODE = 0x8,
93 MF_MEDIA_ENGINE_DISABLE_LOCAL_PLUGINS = 0x10,
94 MF_MEDIA_ENGINE_CREATEFLAGS_MASK = 0x1f
95 } MF_MEDIA_ENGINE_CREATEFLAGS;
97 typedef enum MF_MEDIA_ENGINE_EVENT
99 MF_MEDIA_ENGINE_EVENT_LOADSTART = 1,
100 MF_MEDIA_ENGINE_EVENT_PROGRESS = 2,
101 MF_MEDIA_ENGINE_EVENT_SUSPEND = 3,
102 MF_MEDIA_ENGINE_EVENT_ABORT = 4,
103 MF_MEDIA_ENGINE_EVENT_ERROR = 5,
104 MF_MEDIA_ENGINE_EVENT_EMPTIED = 6,
105 MF_MEDIA_ENGINE_EVENT_STALLED = 7,
106 MF_MEDIA_ENGINE_EVENT_PLAY = 8,
107 MF_MEDIA_ENGINE_EVENT_PAUSE = 9,
108 MF_MEDIA_ENGINE_EVENT_LOADEDMETADATA = 10,
109 MF_MEDIA_ENGINE_EVENT_LOADEDDATA = 11,
110 MF_MEDIA_ENGINE_EVENT_WAITING = 12,
111 MF_MEDIA_ENGINE_EVENT_PLAYING = 13,
112 MF_MEDIA_ENGINE_EVENT_CANPLAY = 14,
113 MF_MEDIA_ENGINE_EVENT_CANPLAYTHROUGH = 15,
114 MF_MEDIA_ENGINE_EVENT_SEEKING = 16,
115 MF_MEDIA_ENGINE_EVENT_SEEKED = 17,
116 MF_MEDIA_ENGINE_EVENT_TIMEUPDATE = 18,
117 MF_MEDIA_ENGINE_EVENT_ENDED = 19,
118 MF_MEDIA_ENGINE_EVENT_RATECHANGE = 20,
119 MF_MEDIA_ENGINE_EVENT_DURATIONCHANGE = 21,
120 MF_MEDIA_ENGINE_EVENT_VOLUMECHANGE = 22,
121 MF_MEDIA_ENGINE_EVENT_FORMATCHANGE = 1000,
122 MF_MEDIA_ENGINE_EVENT_PURGEQUEUEDEVENTS = 1001,
123 MF_MEDIA_ENGINE_EVENT_TIMELINE_MARKER = 1002,
124 MF_MEDIA_ENGINE_EVENT_BALANCECHANGE = 1003,
125 MF_MEDIA_ENGINE_EVENT_DOWNLOADCOMPLETE = 1004,
126 MF_MEDIA_ENGINE_EVENT_BUFFERINGSTARTED = 1005,
127 MF_MEDIA_ENGINE_EVENT_BUFFERINGENDED = 1006,
128 MF_MEDIA_ENGINE_EVENT_FRAMESTEPCOMPLETED = 1007,
129 MF_MEDIA_ENGINE_EVENT_NOTIFYSTABLESTATE = 1008,
130 MF_MEDIA_ENGINE_EVENT_FIRSTFRAMEREADY = 1009,
131 MF_MEDIA_ENGINE_EVENT_TRACKSCHANGE = 1010,
132 MF_MEDIA_ENGINE_EVENT_OPMINFO = 1011,
133 MF_MEDIA_ENGINE_EVENT_RESOURCELOST = 1012,
134 MF_MEDIA_ENGINE_EVENT_DELAYLOADEVENT_CHANGED = 1013,
135 MF_MEDIA_ENGINE_EVENT_STREAMRENDERINGERROR = 1014,
136 MF_MEDIA_ENGINE_EVENT_SUPPORTEDRATES_CHANGED = 1015,
137 MF_MEDIA_ENGINE_EVENT_AUDIOENDPOINTCHANGE = 1016,
138 } MF_MEDIA_ENGINE_EVENT;
140 typedef enum MF_MEDIA_ENGINE_READY
142 MF_MEDIA_ENGINE_READY_HAVE_NOTHING,
143 MF_MEDIA_ENGINE_READY_HAVE_METADATA,
144 MF_MEDIA_ENGINE_READY_HAVE_CURRENT_DATA,
145 MF_MEDIA_ENGINE_READY_HAVE_FUTURE_DATA,
146 MF_MEDIA_ENGINE_READY_HAVE_ENOUGH_DATA,
147 } MF_MEDIA_ENGINE_READY;
150 object,
151 uuid(fc0e10d2-ab2a-4501-a951-06bb1075184c),
152 local,
153 pointer_default(unique)
155 interface IMFMediaError : IUnknown
157 USHORT GetErrorCode();
158 HRESULT GetExtendedErrorCode();
159 HRESULT SetErrorCode([in] MF_MEDIA_ENGINE_ERR error);
160 HRESULT SetExtendedErrorCode([in] HRESULT error);
164 object,
165 uuid(7a5e5354-b114-4c72-b991-3131d75032ea),
166 local,
167 pointer_default(unique)
169 interface IMFMediaEngineSrcElements : IUnknown
171 DWORD GetLength();
172 HRESULT GetURL([in] DWORD index, [out] BSTR *url);
173 HRESULT GetType([in] DWORD index, [out] BSTR *type);
174 HRESULT GetMedia([in] DWORD index, [out] BSTR *media);
175 HRESULT AddElement([in] BSTR url, [in] BSTR type, [in] BSTR media);
176 HRESULT RemoveAllElements();
180 object,
181 uuid(db71a2fc-078a-414e-9df9-8c2531b0aa6c),
182 local,
183 pointer_default(unique)
185 interface IMFMediaTimeRange : IUnknown
187 DWORD GetLength();
188 HRESULT GetStart([in] DWORD index, [out] double *start);
189 HRESULT GetEnd([in] DWORD index, [out] double *end);
190 BOOL ContainsTime([in] double time);
191 HRESULT AddRange([in] double start, [in] double end);
192 HRESULT Clear();
196 object,
197 uuid(98a1b0bb-03eb-4935-ae7c-93c1fa0e1c93),
198 local,
199 pointer_default(unique)
201 interface IMFMediaEngine : IUnknown
203 HRESULT GetError([out] IMFMediaError **error);
204 HRESULT SetErrorCode([in] MF_MEDIA_ENGINE_ERR error);
205 HRESULT SetSourceElements([in] IMFMediaEngineSrcElements *elements);
206 HRESULT SetSource([in] BSTR url);
207 HRESULT GetCurrentSource([out] BSTR *url);
208 USHORT GetNetworkState();
209 MF_MEDIA_ENGINE_PRELOAD GetPreload();
210 HRESULT SetPreload([in] MF_MEDIA_ENGINE_PRELOAD preload);
211 HRESULT GetBuffered([out] IMFMediaTimeRange **buffered);
212 HRESULT Load();
213 HRESULT CanPlayType([in] BSTR type, [out] MF_MEDIA_ENGINE_CANPLAY *answer);
214 USHORT GetReadyState();
215 BOOL IsSeeking();
216 cpp_quote("#undef GetCurrentTime")
217 double GetCurrentTime();
218 HRESULT SetCurrentTime([in] double time);
219 double GetStartTime();
220 double GetDuration();
221 BOOL IsPaused();
222 double GetDefaultPlaybackRate();
223 HRESULT SetDefaultPlaybackRate([in] double rate);
224 double GetPlaybackRate();
225 HRESULT SetPlaybackRate([in] double rate);
226 HRESULT GetPlayed([out] IMFMediaTimeRange **played);
227 HRESULT GetSeekable([out] IMFMediaTimeRange **seekable);
228 BOOL IsEnded();
229 BOOL GetAutoPlay();
230 HRESULT SetAutoPlay([in] BOOL autoplay);
231 BOOL GetLoop();
232 HRESULT SetLoop([in] BOOL loop);
233 HRESULT Play();
234 HRESULT Pause();
235 BOOL GetMuted();
236 HRESULT SetMuted([in] BOOL muted);
237 double GetVolume();
238 HRESULT SetVolume([in] double volume);
239 BOOL HasVideo();
240 BOOL HasAudio();
241 HRESULT GetNativeVideoSize([out] DWORD *cx, [out] DWORD *cy);
242 HRESULT GetVideoAspectRatio([out] DWORD *cx, [out] DWORD *cy);
243 HRESULT Shutdown();
244 HRESULT TransferVideoFrame([in] IUnknown *surface, [in] const MFVideoNormalizedRect *src,
245 [in] const RECT *dst, [in] const MFARGB *color);
246 HRESULT OnVideoStreamTick([out] LONGLONG *time);
249 typedef enum MF_MEDIA_ENGINE_STATISTIC
251 MF_MEDIA_ENGINE_STATISTIC_FRAMES_RENDERED,
252 MF_MEDIA_ENGINE_STATISTIC_FRAMES_DROPPED,
253 MF_MEDIA_ENGINE_STATISTIC_BYTES_DOWNLOADED,
254 MF_MEDIA_ENGINE_STATISTIC_BUFFER_PROGRESS,
255 MF_MEDIA_ENGINE_STATISTIC_FRAMES_PER_SECOND,
256 MF_MEDIA_ENGINE_STATISTIC_PLAYBACK_JITTER,
257 MF_MEDIA_ENGINE_STATISTIC_FRAMES_CORRUPTED,
258 MF_MEDIA_ENGINE_STATISTIC_TOTAL_FRAME_DELAY,
259 } MF_MEDIA_ENGINE_STATISTIC;
261 typedef enum MF_MEDIA_ENGINE_S3D_PACKING_MODE
263 MF_MEDIA_ENGINE_S3D_PACKING_MODE_NONE,
264 MF_MEDIA_ENGINE_S3D_PACKING_MODE_SIDE_BY_SIDE,
265 MF_MEDIA_ENGINE_S3D_PACKING_MODE_TOP_BOTTOM
266 } MF_MEDIA_ENGINE_S3D_PACKING_MODE;
268 typedef enum MF_MEDIA_ENGINE_SEEK_MODE
270 MF_MEDIA_ENGINE_SEEK_MODE_NORMAL,
271 MF_MEDIA_ENGINE_SEEK_MODE_APPROXIMATE,
272 } MF_MEDIA_ENGINE_SEEK_MODE;
275 object,
276 uuid(83015ead-b1e6-40d0-a98a-37145ffe1ad1),
277 local,
278 pointer_default(unique)
280 interface IMFMediaEngineEx : IMFMediaEngine
282 HRESULT SetSourceFromByteStream([in] IMFByteStream *bytestream, [in] BSTR url);
283 HRESULT GetStatistics([in] MF_MEDIA_ENGINE_STATISTIC stat_id, [out] PROPVARIANT *stat);
284 HRESULT UpdateVideoStream([in] const MFVideoNormalizedRect *src,
285 [in] const RECT *dst, [in] const MFARGB *border_color);
286 double GetBalance();
287 HRESULT SetBalance([in] double balance);
288 BOOL IsPlaybackRateSupported([in] double rate);
289 HRESULT FrameStep([in] BOOL forward);
290 HRESULT GetResourceCharacteristics([out] DWORD *flags);
291 HRESULT GetPresentationAttribute([in] REFGUID attribute, [out] PROPVARIANT *value);
292 HRESULT GetNumberOfStreams([out] DWORD *stream_count);
293 HRESULT GetStreamAttribute([in] DWORD stream_index, [in] REFGUID attribute, [out] PROPVARIANT *value);
294 HRESULT GetStreamSelection([in] DWORD stream_index, [out] BOOL *enabled);
295 HRESULT SetStreamSelection([in] DWORD stream_index, [in] BOOL enabled);
296 HRESULT ApplyStreamSelections();
297 HRESULT IsProtected([out] BOOL *protected);
298 HRESULT InsertVideoEffect([in] IUnknown *effect, [in] BOOL is_optional);
299 HRESULT InsertAudioEffect([in] IUnknown *effect, [in] BOOL is_optional);
300 HRESULT RemoveAllEffects();
301 HRESULT SetTimelineMarkerTimer([in] double timeout);
302 HRESULT GetTimelineMarkerTimer([out] double *timeout);
303 HRESULT CancelTimelineMarkerTimer();
304 BOOL IsStereo3D();
305 HRESULT GetStereo3DFramePackingMode([out] MF_MEDIA_ENGINE_S3D_PACKING_MODE *mode);
306 HRESULT SetStereo3DFramePackingMode([in] MF_MEDIA_ENGINE_S3D_PACKING_MODE mode);
307 HRESULT GetStereo3DRenderMode([out] MF3DVideoOutputType *output_type);
308 HRESULT SetStereo3DRenderMode([in] MF3DVideoOutputType output_type);
309 HRESULT EnableWindowlessSwapchainMode([in] BOOL enable);
310 HRESULT GetVideoSwapchainHandle([out] HANDLE *swapchain);
311 HRESULT EnableHorizontalMirrorMode([in] BOOL enable);
312 HRESULT GetAudioStreamCategory([out] UINT32 *category);
313 HRESULT SetAudioStreamCategory([in] UINT32 category);
314 HRESULT GetAudioEndpointRole([out] UINT32 *role);
315 HRESULT SetAudioEndpointRole([in] UINT32 role);
316 HRESULT GetRealTimeMode([out] BOOL *enabled);
317 HRESULT SetRealTimeMode([in] BOOL enable);
318 HRESULT SetCurrentTimeEx([in] double seektime, [in] MF_MEDIA_ENGINE_SEEK_MODE mode);
319 HRESULT EnableTimeUpdateTimer([in] BOOL enable);
323 object,
324 uuid(4d645ace-26aa-4688-9be1-df3516990b93),
325 local,
326 pointer_default(unique)
328 interface IMFMediaEngineClassFactory : IUnknown
330 HRESULT CreateInstance([in] DWORD flags, [in] IMFAttributes *attributes, [out] IMFMediaEngine **engine);
331 HRESULT CreateTimeRange([out] IMFMediaTimeRange **range);
332 HRESULT CreateError([out] IMFMediaError **error);
336 object,
337 uuid(fee7c112-e776-42b5-9bbf-0048524e2bd5),
338 local,
339 pointer_default(unique)
341 interface IMFMediaEngineNotify : IUnknown
343 HRESULT EventNotify([in] DWORD event, [in] DWORD_PTR param1, [in] DWORD param2);