1 /*** Autogenerated by WIDL 3.1 from include/evr.idl - Do not edit ***/
2 
3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
5 #endif
6 
7 #include <rpc.h>
8 #include <rpcndr.h>
9 
10 #ifndef COM_NO_WINDOWS_H
11 #include <windows.h>
12 #include <ole2.h>
13 #endif
14 
15 #ifndef __evr_h__
16 #define __evr_h__
17 
18 /* Forward declarations */
19 
20 #ifndef __IMFVideoPositionMapper_FWD_DEFINED__
21 #define __IMFVideoPositionMapper_FWD_DEFINED__
22 typedef interface IMFVideoPositionMapper IMFVideoPositionMapper;
23 #ifdef __cplusplus
24 interface IMFVideoPositionMapper;
25 #endif /* __cplusplus */
26 #endif
27 
28 #ifndef __IMFVideoDeviceID_FWD_DEFINED__
29 #define __IMFVideoDeviceID_FWD_DEFINED__
30 typedef interface IMFVideoDeviceID IMFVideoDeviceID;
31 #ifdef __cplusplus
32 interface IMFVideoDeviceID;
33 #endif /* __cplusplus */
34 #endif
35 
36 #ifndef __IMFVideoDisplayControl_FWD_DEFINED__
37 #define __IMFVideoDisplayControl_FWD_DEFINED__
38 typedef interface IMFVideoDisplayControl IMFVideoDisplayControl;
39 #ifdef __cplusplus
40 interface IMFVideoDisplayControl;
41 #endif /* __cplusplus */
42 #endif
43 
44 #ifndef __IMFVideoPresenter_FWD_DEFINED__
45 #define __IMFVideoPresenter_FWD_DEFINED__
46 typedef interface IMFVideoPresenter IMFVideoPresenter;
47 #ifdef __cplusplus
48 interface IMFVideoPresenter;
49 #endif /* __cplusplus */
50 #endif
51 
52 #ifndef __IMFDesiredSample_FWD_DEFINED__
53 #define __IMFDesiredSample_FWD_DEFINED__
54 typedef interface IMFDesiredSample IMFDesiredSample;
55 #ifdef __cplusplus
56 interface IMFDesiredSample;
57 #endif /* __cplusplus */
58 #endif
59 
60 #ifndef __IMFTrackedSample_FWD_DEFINED__
61 #define __IMFTrackedSample_FWD_DEFINED__
62 typedef interface IMFTrackedSample IMFTrackedSample;
63 #ifdef __cplusplus
64 interface IMFTrackedSample;
65 #endif /* __cplusplus */
66 #endif
67 
68 #ifndef __IMFVideoMixerControl_FWD_DEFINED__
69 #define __IMFVideoMixerControl_FWD_DEFINED__
70 typedef interface IMFVideoMixerControl IMFVideoMixerControl;
71 #ifdef __cplusplus
72 interface IMFVideoMixerControl;
73 #endif /* __cplusplus */
74 #endif
75 
76 #ifndef __IMFVideoMixerControl2_FWD_DEFINED__
77 #define __IMFVideoMixerControl2_FWD_DEFINED__
78 typedef interface IMFVideoMixerControl2 IMFVideoMixerControl2;
79 #ifdef __cplusplus
80 interface IMFVideoMixerControl2;
81 #endif /* __cplusplus */
82 #endif
83 
84 #ifndef __IMFVideoRenderer_FWD_DEFINED__
85 #define __IMFVideoRenderer_FWD_DEFINED__
86 typedef interface IMFVideoRenderer IMFVideoRenderer;
87 #ifdef __cplusplus
88 interface IMFVideoRenderer;
89 #endif /* __cplusplus */
90 #endif
91 
92 #ifndef __IEVRFilterConfig_FWD_DEFINED__
93 #define __IEVRFilterConfig_FWD_DEFINED__
94 typedef interface IEVRFilterConfig IEVRFilterConfig;
95 #ifdef __cplusplus
96 interface IEVRFilterConfig;
97 #endif /* __cplusplus */
98 #endif
99 
100 #ifndef __IEVRFilterConfigEx_FWD_DEFINED__
101 #define __IEVRFilterConfigEx_FWD_DEFINED__
102 typedef interface IEVRFilterConfigEx IEVRFilterConfigEx;
103 #ifdef __cplusplus
104 interface IEVRFilterConfigEx;
105 #endif /* __cplusplus */
106 #endif
107 
108 #ifndef __IMFTopologyServiceLookup_FWD_DEFINED__
109 #define __IMFTopologyServiceLookup_FWD_DEFINED__
110 typedef interface IMFTopologyServiceLookup IMFTopologyServiceLookup;
111 #ifdef __cplusplus
112 interface IMFTopologyServiceLookup;
113 #endif /* __cplusplus */
114 #endif
115 
116 #ifndef __IMFTopologyServiceLookupClient_FWD_DEFINED__
117 #define __IMFTopologyServiceLookupClient_FWD_DEFINED__
118 typedef interface IMFTopologyServiceLookupClient IMFTopologyServiceLookupClient;
119 #ifdef __cplusplus
120 interface IMFTopologyServiceLookupClient;
121 #endif /* __cplusplus */
122 #endif
123 
124 #ifndef __IEVRTrustedVideoPlugin_FWD_DEFINED__
125 #define __IEVRTrustedVideoPlugin_FWD_DEFINED__
126 typedef interface IEVRTrustedVideoPlugin IEVRTrustedVideoPlugin;
127 #ifdef __cplusplus
128 interface IEVRTrustedVideoPlugin;
129 #endif /* __cplusplus */
130 #endif
131 
132 /* Headers for imported files */
133 
134 #include <unknwn.h>
135 #include <propidl.h>
136 #include <mfidl.h>
137 #include <mftransform.h>
138 #include <mediaobj.h>
139 #include <strmif.h>
140 
141 #ifdef __cplusplus
142 extern "C" {
143 #endif
144 
145 /**
146  * This file is part of the mingw-w64 runtime package.
147  * No warranty is given; refer to the file DISCLAIMER within this package.
148  */
149 
150 #include <winapifamily.h>
151 
152 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
153 #ifndef __IMFTrackedSample_FWD_DEFINED__
154 #define __IMFTrackedSample_FWD_DEFINED__
155 typedef interface IMFTrackedSample IMFTrackedSample;
156 #ifdef __cplusplus
157 interface IMFTrackedSample;
158 #endif /* __cplusplus */
159 #endif
160 
161 #ifndef __IMFVideoDisplayControl_FWD_DEFINED__
162 #define __IMFVideoDisplayControl_FWD_DEFINED__
163 typedef interface IMFVideoDisplayControl IMFVideoDisplayControl;
164 #ifdef __cplusplus
165 interface IMFVideoDisplayControl;
166 #endif /* __cplusplus */
167 #endif
168 
169 #ifndef __IMFVideoPresenter_FWD_DEFINED__
170 #define __IMFVideoPresenter_FWD_DEFINED__
171 typedef interface IMFVideoPresenter IMFVideoPresenter;
172 #ifdef __cplusplus
173 interface IMFVideoPresenter;
174 #endif /* __cplusplus */
175 #endif
176 
177 #ifndef __IMFVideoPositionMapper_FWD_DEFINED__
178 #define __IMFVideoPositionMapper_FWD_DEFINED__
179 typedef interface IMFVideoPositionMapper IMFVideoPositionMapper;
180 #ifdef __cplusplus
181 interface IMFVideoPositionMapper;
182 #endif /* __cplusplus */
183 #endif
184 
185 #ifndef __IMFDesiredSample_FWD_DEFINED__
186 #define __IMFDesiredSample_FWD_DEFINED__
187 typedef interface IMFDesiredSample IMFDesiredSample;
188 #ifdef __cplusplus
189 interface IMFDesiredSample;
190 #endif /* __cplusplus */
191 #endif
192 
193 #ifndef __IMFVideoMixerControl_FWD_DEFINED__
194 #define __IMFVideoMixerControl_FWD_DEFINED__
195 typedef interface IMFVideoMixerControl IMFVideoMixerControl;
196 #ifdef __cplusplus
197 interface IMFVideoMixerControl;
198 #endif /* __cplusplus */
199 #endif
200 
201 #ifndef __IMFVideoRenderer_FWD_DEFINED__
202 #define __IMFVideoRenderer_FWD_DEFINED__
203 typedef interface IMFVideoRenderer IMFVideoRenderer;
204 #ifdef __cplusplus
205 interface IMFVideoRenderer;
206 #endif /* __cplusplus */
207 #endif
208 
209 #ifndef __IMFVideoDeviceID_FWD_DEFINED__
210 #define __IMFVideoDeviceID_FWD_DEFINED__
211 typedef interface IMFVideoDeviceID IMFVideoDeviceID;
212 #ifdef __cplusplus
213 interface IMFVideoDeviceID;
214 #endif /* __cplusplus */
215 #endif
216 
217 #ifndef __IEVRFilterConfig_FWD_DEFINED__
218 #define __IEVRFilterConfig_FWD_DEFINED__
219 typedef interface IEVRFilterConfig IEVRFilterConfig;
220 #ifdef __cplusplus
221 interface IEVRFilterConfig;
222 #endif /* __cplusplus */
223 #endif
224 
225 #if defined(__midl)
226 
227 typedef enum _D3DFORMAT {
228     D3DFMT_UNKNOWN = 0,
229     D3DFMT_R8G8B8 = 20,
230     D3DFMT_A8R8G8B8 = 21,
231     D3DFMT_X8R8G8B8 = 22,
232     D3DFMT_R5G6B5 = 23,
233     D3DFMT_X1R5G5B5 = 24,
234     D3DFMT_A1R5G5B5 = 25,
235     D3DFMT_A4R4G4B4 = 26,
236     D3DFMT_R3G3B2 = 27,
237     D3DFMT_A8 = 28,
238     D3DFMT_A8R3G3B2 = 29,
239     D3DFMT_X4R4G4B4 = 30,
240     D3DFMT_A2B10G10R10 = 31,
241     D3DFMT_G16R16 = 34,
242     D3DFMT_A8P8 = 40,
243     D3DFMT_P8 = 41,
244     D3DFMT_L8 = 50,
245     D3DFMT_A8L8 = 51,
246     D3DFMT_A4L4 = 52,
247     D3DFMT_V8U8 = 60,
248     D3DFMT_L6V5U5 = 61,
249     D3DFMT_X8L8V8U8 = 62,
250     D3DFMT_Q8W8V8U8 = 63,
251     D3DFMT_V16U16 = 64,
252     D3DFMT_W11V11U10 = 65,
253     D3DFMT_A2W10V10U10 = 67,
254     D3DFMT_D16_LOCKABLE = 70,
255     D3DFMT_D32 = 71,
256     D3DFMT_D15S1 = 73,
257     D3DFMT_D24S8 = 75,
258     D3DFMT_D16 = 80,
259     D3DFMT_D24X8 = 77,
260     D3DFMT_D24X4S4 = 79,
261     D3DFMT_VERTEXDATA = 100,
262     D3DFMT_INDEX16 = 101,
263     D3DFMT_INDEX32 = 102,
264     D3DFMT_FORCE_DWORD = 0x7fffffff
265 } D3DFORMAT;
266 #endif
267 
268 typedef enum MFVideoAspectRatioMode {
269     MFVideoARMode_None = 0x0,
270     MFVideoARMode_PreservePicture = 0x1,
271     MFVideoARMode_PreservePixel = 0x2,
272     MFVideoARMode_NonLinearStretch = 0x4,
273     MFVideoARMode_Mask = 0x7
274 } MFVideoAspectRatioMode;
275 
276 typedef enum MFVideoRenderPrefs {
277     MFVideoRenderPrefs_DoNotRenderBorder = 0x1,
278     MFVideoRenderPrefs_DoNotClipToDevice = 0x2,
279     MFVideoRenderPrefs_AllowOutputThrottling = 0x4,
280     MFVideoRenderPrefs_ForceOutputThrottling = 0x8,
281     MFVideoRenderPrefs_ForceBatching = 0x10,
282     MFVideoRenderPrefs_AllowBatching = 0x20,
283     MFVideoRenderPrefs_ForceScaling = 0x40,
284     MFVideoRenderPrefs_AllowScaling = 0x80,
285     MFVideoRenderPrefs_DoNotRepaintOnStop = 0x100,
286     MFVideoRenderPrefs_Mask = 0x1ff
287 } MFVideoRenderPrefs;
288 
289 #ifndef _MFVideoNormalizedRect_
290 #define _MFVideoNormalizedRect_
291 typedef struct MFVideoNormalizedRect {
292     float left;
293     float top;
294     float right;
295     float bottom;
296 } MFVideoNormalizedRect;
297 #endif
298 
299 typedef enum MFVP_MESSAGE_TYPE {
300     MFVP_MESSAGE_FLUSH = 0x0,
301     MFVP_MESSAGE_INVALIDATEMEDIATYPE = 0x1,
302     MFVP_MESSAGE_PROCESSINPUTNOTIFY = 0x2,
303     MFVP_MESSAGE_BEGINSTREAMING = 0x3,
304     MFVP_MESSAGE_ENDSTREAMING = 0x4,
305     MFVP_MESSAGE_ENDOFSTREAM = 0x5,
306     MFVP_MESSAGE_STEP = 0x6,
307     MFVP_MESSAGE_CANCELSTEP = 0x7
308 } MFVP_MESSAGE_TYPE;
309 
310 typedef enum _MFVideoMixPrefs {
311     MFVideoMixPrefs_ForceHalfInterlace = 0x1,
312     MFVideoMixPrefs_AllowDropToHalfInterlace = 0x2,
313     MFVideoMixPrefs_AllowDropToBob = 0x4,
314     MFVideoMixPrefs_ForceBob = 0x8,
315     MFVideoMixPrefs_EnableRotation = 0x10,
316     MFVideoMixPrefs_Mask = 0x1f
317 } MFVideoMixPrefs;
318 
319 typedef enum _EVRFilterConfig_Prefs {
320     EVRFilterConfigPrefs_EnableQoS = 0x1,
321     EVRFilterConfigPrefs_Mask = 0x1
322 } EVRFilterConfigPrefs;
323 
324 typedef enum _MF_SERVICE_LOOKUP_TYPE {
325     MF_SERVICE_LOOKUP_UPSTREAM = 0,
326     MF_SERVICE_LOOKUP_UPSTREAM_DIRECT = 1,
327     MF_SERVICE_LOOKUP_DOWNSTREAM = 2,
328     MF_SERVICE_LOOKUP_DOWNSTREAM_DIRECT = 3,
329     MF_SERVICE_LOOKUP_ALL = 4,
330     MF_SERVICE_LOOKUP_GLOBAL = 5
331 } MF_SERVICE_LOOKUP_TYPE;
332 
333 DEFINE_GUID(MR_VIDEO_RENDER_SERVICE, 0x1092a86c, 0xab1a, 0x459a, 0xa3, 0x36, 0x83, 0x1f, 0xbc, 0x4d, 0x11, 0xff);
334 DEFINE_GUID(MR_VIDEO_MIXER_SERVICE, 0x73cd2fc, 0x6cf4, 0x40b7, 0x88, 0x59, 0xe8, 0x95, 0x52, 0xc8, 0x41, 0xf8);
335 DEFINE_GUID(MR_VIDEO_ACCELERATION_SERVICE, 0xefef5175, 0x5c7d, 0x4ce2, 0xbb, 0xbd, 0x34, 0xff, 0x8b, 0xca, 0x65, 0x54);
336 DEFINE_GUID(MR_BUFFER_SERVICE, 0xa562248c, 0x9ac6, 0x4ffc, 0x9f, 0xba, 0x3a, 0xf8, 0xf8, 0xad, 0x1a, 0x4d);
337 DEFINE_GUID(VIDEO_ZOOM_RECT, 0x7aaa1638, 0x1b7f, 0x4c93, 0xbd, 0x89, 0x5b, 0x9c, 0x9f, 0xb6, 0xfc, 0xf0);
338 
339 /*****************************************************************************
340  * IMFVideoPositionMapper interface
341  */
342 #ifndef __IMFVideoPositionMapper_INTERFACE_DEFINED__
343 #define __IMFVideoPositionMapper_INTERFACE_DEFINED__
344 
345 DEFINE_GUID(IID_IMFVideoPositionMapper, 0x1f6a9f17, 0xe70b, 0x4e24, 0x8a,0xe4, 0x0b,0x2c,0x3b,0xa7,0xa4,0xae);
346 #if defined(__cplusplus) && !defined(CINTERFACE)
347 MIDL_INTERFACE("1f6a9f17-e70b-4e24-8ae4-0b2c3ba7a4ae")
348 IMFVideoPositionMapper : public IUnknown
349 {
350     virtual HRESULT STDMETHODCALLTYPE MapOutputCoordinateToInputStream(
351         float xOut,
352         float yOut,
353         DWORD dwOutputStreamIndex,
354         DWORD dwInputStreamIndex,
355         float *pxIn,
356         float *pyIn) = 0;
357 
358 };
359 #ifdef __CRT_UUID_DECL
360 __CRT_UUID_DECL(IMFVideoPositionMapper, 0x1f6a9f17, 0xe70b, 0x4e24, 0x8a,0xe4, 0x0b,0x2c,0x3b,0xa7,0xa4,0xae)
361 #endif
362 #else
363 typedef struct IMFVideoPositionMapperVtbl {
364     BEGIN_INTERFACE
365 
366     /*** IUnknown methods ***/
367     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
368         IMFVideoPositionMapper *This,
369         REFIID riid,
370         void **ppvObject);
371 
372     ULONG (STDMETHODCALLTYPE *AddRef)(
373         IMFVideoPositionMapper *This);
374 
375     ULONG (STDMETHODCALLTYPE *Release)(
376         IMFVideoPositionMapper *This);
377 
378     /*** IMFVideoPositionMapper methods ***/
379     HRESULT (STDMETHODCALLTYPE *MapOutputCoordinateToInputStream)(
380         IMFVideoPositionMapper *This,
381         float xOut,
382         float yOut,
383         DWORD dwOutputStreamIndex,
384         DWORD dwInputStreamIndex,
385         float *pxIn,
386         float *pyIn);
387 
388     END_INTERFACE
389 } IMFVideoPositionMapperVtbl;
390 
391 interface IMFVideoPositionMapper {
392     CONST_VTBL IMFVideoPositionMapperVtbl* lpVtbl;
393 };
394 
395 #ifdef COBJMACROS
396 #ifndef WIDL_C_INLINE_WRAPPERS
397 /*** IUnknown methods ***/
398 #define IMFVideoPositionMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
399 #define IMFVideoPositionMapper_AddRef(This) (This)->lpVtbl->AddRef(This)
400 #define IMFVideoPositionMapper_Release(This) (This)->lpVtbl->Release(This)
401 /*** IMFVideoPositionMapper methods ***/
402 #define IMFVideoPositionMapper_MapOutputCoordinateToInputStream(This,xOut,yOut,dwOutputStreamIndex,dwInputStreamIndex,pxIn,pyIn) (This)->lpVtbl->MapOutputCoordinateToInputStream(This,xOut,yOut,dwOutputStreamIndex,dwInputStreamIndex,pxIn,pyIn)
403 #else
404 /*** IUnknown methods ***/
405 static FORCEINLINE HRESULT IMFVideoPositionMapper_QueryInterface(IMFVideoPositionMapper* This,REFIID riid,void **ppvObject) {
406     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
407 }
408 static FORCEINLINE ULONG IMFVideoPositionMapper_AddRef(IMFVideoPositionMapper* This) {
409     return This->lpVtbl->AddRef(This);
410 }
411 static FORCEINLINE ULONG IMFVideoPositionMapper_Release(IMFVideoPositionMapper* This) {
412     return This->lpVtbl->Release(This);
413 }
414 /*** IMFVideoPositionMapper methods ***/
415 static FORCEINLINE HRESULT IMFVideoPositionMapper_MapOutputCoordinateToInputStream(IMFVideoPositionMapper* This,float xOut,float yOut,DWORD dwOutputStreamIndex,DWORD dwInputStreamIndex,float *pxIn,float *pyIn) {
416     return This->lpVtbl->MapOutputCoordinateToInputStream(This,xOut,yOut,dwOutputStreamIndex,dwInputStreamIndex,pxIn,pyIn);
417 }
418 #endif
419 #endif
420 
421 #endif
422 
423 
424 #endif  /* __IMFVideoPositionMapper_INTERFACE_DEFINED__ */
425 
426 
427 /*****************************************************************************
428  * IMFVideoDeviceID interface
429  */
430 #ifndef __IMFVideoDeviceID_INTERFACE_DEFINED__
431 #define __IMFVideoDeviceID_INTERFACE_DEFINED__
432 
433 DEFINE_GUID(IID_IMFVideoDeviceID, 0xa38d9567, 0x5a9c, 0x4f3c, 0xb2,0x93, 0x8e,0xb4,0x15,0xb2,0x79,0xba);
434 #if defined(__cplusplus) && !defined(CINTERFACE)
435 MIDL_INTERFACE("a38d9567-5a9c-4f3c-b293-8eb415b279ba")
436 IMFVideoDeviceID : public IUnknown
437 {
438     virtual HRESULT STDMETHODCALLTYPE GetDeviceID(
439         IID *pDeviceID) = 0;
440 
441 };
442 #ifdef __CRT_UUID_DECL
443 __CRT_UUID_DECL(IMFVideoDeviceID, 0xa38d9567, 0x5a9c, 0x4f3c, 0xb2,0x93, 0x8e,0xb4,0x15,0xb2,0x79,0xba)
444 #endif
445 #else
446 typedef struct IMFVideoDeviceIDVtbl {
447     BEGIN_INTERFACE
448 
449     /*** IUnknown methods ***/
450     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
451         IMFVideoDeviceID *This,
452         REFIID riid,
453         void **ppvObject);
454 
455     ULONG (STDMETHODCALLTYPE *AddRef)(
456         IMFVideoDeviceID *This);
457 
458     ULONG (STDMETHODCALLTYPE *Release)(
459         IMFVideoDeviceID *This);
460 
461     /*** IMFVideoDeviceID methods ***/
462     HRESULT (STDMETHODCALLTYPE *GetDeviceID)(
463         IMFVideoDeviceID *This,
464         IID *pDeviceID);
465 
466     END_INTERFACE
467 } IMFVideoDeviceIDVtbl;
468 
469 interface IMFVideoDeviceID {
470     CONST_VTBL IMFVideoDeviceIDVtbl* lpVtbl;
471 };
472 
473 #ifdef COBJMACROS
474 #ifndef WIDL_C_INLINE_WRAPPERS
475 /*** IUnknown methods ***/
476 #define IMFVideoDeviceID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
477 #define IMFVideoDeviceID_AddRef(This) (This)->lpVtbl->AddRef(This)
478 #define IMFVideoDeviceID_Release(This) (This)->lpVtbl->Release(This)
479 /*** IMFVideoDeviceID methods ***/
480 #define IMFVideoDeviceID_GetDeviceID(This,pDeviceID) (This)->lpVtbl->GetDeviceID(This,pDeviceID)
481 #else
482 /*** IUnknown methods ***/
483 static FORCEINLINE HRESULT IMFVideoDeviceID_QueryInterface(IMFVideoDeviceID* This,REFIID riid,void **ppvObject) {
484     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
485 }
486 static FORCEINLINE ULONG IMFVideoDeviceID_AddRef(IMFVideoDeviceID* This) {
487     return This->lpVtbl->AddRef(This);
488 }
489 static FORCEINLINE ULONG IMFVideoDeviceID_Release(IMFVideoDeviceID* This) {
490     return This->lpVtbl->Release(This);
491 }
492 /*** IMFVideoDeviceID methods ***/
493 static FORCEINLINE HRESULT IMFVideoDeviceID_GetDeviceID(IMFVideoDeviceID* This,IID *pDeviceID) {
494     return This->lpVtbl->GetDeviceID(This,pDeviceID);
495 }
496 #endif
497 #endif
498 
499 #endif
500 
501 
502 #endif  /* __IMFVideoDeviceID_INTERFACE_DEFINED__ */
503 
504 
505 /*****************************************************************************
506  * IMFVideoDisplayControl interface
507  */
508 #ifndef __IMFVideoDisplayControl_INTERFACE_DEFINED__
509 #define __IMFVideoDisplayControl_INTERFACE_DEFINED__
510 
511 DEFINE_GUID(IID_IMFVideoDisplayControl, 0xa490b1e4, 0xab84, 0x4d31, 0xa1,0xb2, 0x18,0x1e,0x03,0xb1,0x07,0x7a);
512 #if defined(__cplusplus) && !defined(CINTERFACE)
513 MIDL_INTERFACE("a490b1e4-ab84-4d31-a1b2-181e03b1077a")
514 IMFVideoDisplayControl : public IUnknown
515 {
516     virtual HRESULT STDMETHODCALLTYPE GetNativeVideoSize(
517         SIZE *pszVideo,
518         SIZE *pszARVideo) = 0;
519 
520     virtual HRESULT STDMETHODCALLTYPE GetIdealVideoSize(
521         SIZE *pszMin,
522         SIZE *pszMax) = 0;
523 
524     virtual HRESULT STDMETHODCALLTYPE SetVideoPosition(
525         const MFVideoNormalizedRect *pnrcSource,
526         const LPRECT prcDest) = 0;
527 
528     virtual HRESULT STDMETHODCALLTYPE GetVideoPosition(
529         MFVideoNormalizedRect *pnrcSource,
530         LPRECT prcDest) = 0;
531 
532     virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode(
533         DWORD dwAspectRatioMode) = 0;
534 
535     virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode(
536         DWORD *pdwAspectRatioMode) = 0;
537 
538     virtual HRESULT STDMETHODCALLTYPE SetVideoWindow(
539         HWND hwndVideo) = 0;
540 
541     virtual HRESULT STDMETHODCALLTYPE GetVideoWindow(
542         HWND *phwndVideo) = 0;
543 
544     virtual HRESULT STDMETHODCALLTYPE RepaintVideo(
545         ) = 0;
546 
547     virtual HRESULT STDMETHODCALLTYPE GetCurrentImage(
548         BITMAPINFOHEADER *pBih,
549         BYTE **pDib,
550         DWORD *pcbDib,
551         LONGLONG *pTimeStamp) = 0;
552 
553     virtual HRESULT STDMETHODCALLTYPE SetBorderColor(
554         COLORREF Clr) = 0;
555 
556     virtual HRESULT STDMETHODCALLTYPE GetBorderColor(
557         COLORREF *pClr) = 0;
558 
559     virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs(
560         DWORD dwRenderFlags) = 0;
561 
562     virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs(
563         DWORD *pdwRenderFlags) = 0;
564 
565     virtual HRESULT STDMETHODCALLTYPE SetFullscreen(
566         WINBOOL fFullscreen) = 0;
567 
568     virtual HRESULT STDMETHODCALLTYPE GetFullscreen(
569         WINBOOL *pfFullscreen) = 0;
570 
571 };
572 #ifdef __CRT_UUID_DECL
573 __CRT_UUID_DECL(IMFVideoDisplayControl, 0xa490b1e4, 0xab84, 0x4d31, 0xa1,0xb2, 0x18,0x1e,0x03,0xb1,0x07,0x7a)
574 #endif
575 #else
576 typedef struct IMFVideoDisplayControlVtbl {
577     BEGIN_INTERFACE
578 
579     /*** IUnknown methods ***/
580     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
581         IMFVideoDisplayControl *This,
582         REFIID riid,
583         void **ppvObject);
584 
585     ULONG (STDMETHODCALLTYPE *AddRef)(
586         IMFVideoDisplayControl *This);
587 
588     ULONG (STDMETHODCALLTYPE *Release)(
589         IMFVideoDisplayControl *This);
590 
591     /*** IMFVideoDisplayControl methods ***/
592     HRESULT (STDMETHODCALLTYPE *GetNativeVideoSize)(
593         IMFVideoDisplayControl *This,
594         SIZE *pszVideo,
595         SIZE *pszARVideo);
596 
597     HRESULT (STDMETHODCALLTYPE *GetIdealVideoSize)(
598         IMFVideoDisplayControl *This,
599         SIZE *pszMin,
600         SIZE *pszMax);
601 
602     HRESULT (STDMETHODCALLTYPE *SetVideoPosition)(
603         IMFVideoDisplayControl *This,
604         const MFVideoNormalizedRect *pnrcSource,
605         const LPRECT prcDest);
606 
607     HRESULT (STDMETHODCALLTYPE *GetVideoPosition)(
608         IMFVideoDisplayControl *This,
609         MFVideoNormalizedRect *pnrcSource,
610         LPRECT prcDest);
611 
612     HRESULT (STDMETHODCALLTYPE *SetAspectRatioMode)(
613         IMFVideoDisplayControl *This,
614         DWORD dwAspectRatioMode);
615 
616     HRESULT (STDMETHODCALLTYPE *GetAspectRatioMode)(
617         IMFVideoDisplayControl *This,
618         DWORD *pdwAspectRatioMode);
619 
620     HRESULT (STDMETHODCALLTYPE *SetVideoWindow)(
621         IMFVideoDisplayControl *This,
622         HWND hwndVideo);
623 
624     HRESULT (STDMETHODCALLTYPE *GetVideoWindow)(
625         IMFVideoDisplayControl *This,
626         HWND *phwndVideo);
627 
628     HRESULT (STDMETHODCALLTYPE *RepaintVideo)(
629         IMFVideoDisplayControl *This);
630 
631     HRESULT (STDMETHODCALLTYPE *GetCurrentImage)(
632         IMFVideoDisplayControl *This,
633         BITMAPINFOHEADER *pBih,
634         BYTE **pDib,
635         DWORD *pcbDib,
636         LONGLONG *pTimeStamp);
637 
638     HRESULT (STDMETHODCALLTYPE *SetBorderColor)(
639         IMFVideoDisplayControl *This,
640         COLORREF Clr);
641 
642     HRESULT (STDMETHODCALLTYPE *GetBorderColor)(
643         IMFVideoDisplayControl *This,
644         COLORREF *pClr);
645 
646     HRESULT (STDMETHODCALLTYPE *SetRenderingPrefs)(
647         IMFVideoDisplayControl *This,
648         DWORD dwRenderFlags);
649 
650     HRESULT (STDMETHODCALLTYPE *GetRenderingPrefs)(
651         IMFVideoDisplayControl *This,
652         DWORD *pdwRenderFlags);
653 
654     HRESULT (STDMETHODCALLTYPE *SetFullscreen)(
655         IMFVideoDisplayControl *This,
656         WINBOOL fFullscreen);
657 
658     HRESULT (STDMETHODCALLTYPE *GetFullscreen)(
659         IMFVideoDisplayControl *This,
660         WINBOOL *pfFullscreen);
661 
662     END_INTERFACE
663 } IMFVideoDisplayControlVtbl;
664 
665 interface IMFVideoDisplayControl {
666     CONST_VTBL IMFVideoDisplayControlVtbl* lpVtbl;
667 };
668 
669 #ifdef COBJMACROS
670 #ifndef WIDL_C_INLINE_WRAPPERS
671 /*** IUnknown methods ***/
672 #define IMFVideoDisplayControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
673 #define IMFVideoDisplayControl_AddRef(This) (This)->lpVtbl->AddRef(This)
674 #define IMFVideoDisplayControl_Release(This) (This)->lpVtbl->Release(This)
675 /*** IMFVideoDisplayControl methods ***/
676 #define IMFVideoDisplayControl_GetNativeVideoSize(This,pszVideo,pszARVideo) (This)->lpVtbl->GetNativeVideoSize(This,pszVideo,pszARVideo)
677 #define IMFVideoDisplayControl_GetIdealVideoSize(This,pszMin,pszMax) (This)->lpVtbl->GetIdealVideoSize(This,pszMin,pszMax)
678 #define IMFVideoDisplayControl_SetVideoPosition(This,pnrcSource,prcDest) (This)->lpVtbl->SetVideoPosition(This,pnrcSource,prcDest)
679 #define IMFVideoDisplayControl_GetVideoPosition(This,pnrcSource,prcDest) (This)->lpVtbl->GetVideoPosition(This,pnrcSource,prcDest)
680 #define IMFVideoDisplayControl_SetAspectRatioMode(This,dwAspectRatioMode) (This)->lpVtbl->SetAspectRatioMode(This,dwAspectRatioMode)
681 #define IMFVideoDisplayControl_GetAspectRatioMode(This,pdwAspectRatioMode) (This)->lpVtbl->GetAspectRatioMode(This,pdwAspectRatioMode)
682 #define IMFVideoDisplayControl_SetVideoWindow(This,hwndVideo) (This)->lpVtbl->SetVideoWindow(This,hwndVideo)
683 #define IMFVideoDisplayControl_GetVideoWindow(This,phwndVideo) (This)->lpVtbl->GetVideoWindow(This,phwndVideo)
684 #define IMFVideoDisplayControl_RepaintVideo(This) (This)->lpVtbl->RepaintVideo(This)
685 #define IMFVideoDisplayControl_GetCurrentImage(This,pBih,pDib,pcbDib,pTimeStamp) (This)->lpVtbl->GetCurrentImage(This,pBih,pDib,pcbDib,pTimeStamp)
686 #define IMFVideoDisplayControl_SetBorderColor(This,Clr) (This)->lpVtbl->SetBorderColor(This,Clr)
687 #define IMFVideoDisplayControl_GetBorderColor(This,pClr) (This)->lpVtbl->GetBorderColor(This,pClr)
688 #define IMFVideoDisplayControl_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
689 #define IMFVideoDisplayControl_GetRenderingPrefs(This,pdwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags)
690 #define IMFVideoDisplayControl_SetFullscreen(This,fFullscreen) (This)->lpVtbl->SetFullscreen(This,fFullscreen)
691 #define IMFVideoDisplayControl_GetFullscreen(This,pfFullscreen) (This)->lpVtbl->GetFullscreen(This,pfFullscreen)
692 #else
693 /*** IUnknown methods ***/
694 static FORCEINLINE HRESULT IMFVideoDisplayControl_QueryInterface(IMFVideoDisplayControl* This,REFIID riid,void **ppvObject) {
695     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
696 }
697 static FORCEINLINE ULONG IMFVideoDisplayControl_AddRef(IMFVideoDisplayControl* This) {
698     return This->lpVtbl->AddRef(This);
699 }
700 static FORCEINLINE ULONG IMFVideoDisplayControl_Release(IMFVideoDisplayControl* This) {
701     return This->lpVtbl->Release(This);
702 }
703 /*** IMFVideoDisplayControl methods ***/
704 static FORCEINLINE HRESULT IMFVideoDisplayControl_GetNativeVideoSize(IMFVideoDisplayControl* This,SIZE *pszVideo,SIZE *pszARVideo) {
705     return This->lpVtbl->GetNativeVideoSize(This,pszVideo,pszARVideo);
706 }
707 static FORCEINLINE HRESULT IMFVideoDisplayControl_GetIdealVideoSize(IMFVideoDisplayControl* This,SIZE *pszMin,SIZE *pszMax) {
708     return This->lpVtbl->GetIdealVideoSize(This,pszMin,pszMax);
709 }
710 static FORCEINLINE HRESULT IMFVideoDisplayControl_SetVideoPosition(IMFVideoDisplayControl* This,const MFVideoNormalizedRect *pnrcSource,const LPRECT prcDest) {
711     return This->lpVtbl->SetVideoPosition(This,pnrcSource,prcDest);
712 }
713 static FORCEINLINE HRESULT IMFVideoDisplayControl_GetVideoPosition(IMFVideoDisplayControl* This,MFVideoNormalizedRect *pnrcSource,LPRECT prcDest) {
714     return This->lpVtbl->GetVideoPosition(This,pnrcSource,prcDest);
715 }
716 static FORCEINLINE HRESULT IMFVideoDisplayControl_SetAspectRatioMode(IMFVideoDisplayControl* This,DWORD dwAspectRatioMode) {
717     return This->lpVtbl->SetAspectRatioMode(This,dwAspectRatioMode);
718 }
719 static FORCEINLINE HRESULT IMFVideoDisplayControl_GetAspectRatioMode(IMFVideoDisplayControl* This,DWORD *pdwAspectRatioMode) {
720     return This->lpVtbl->GetAspectRatioMode(This,pdwAspectRatioMode);
721 }
722 static FORCEINLINE HRESULT IMFVideoDisplayControl_SetVideoWindow(IMFVideoDisplayControl* This,HWND hwndVideo) {
723     return This->lpVtbl->SetVideoWindow(This,hwndVideo);
724 }
725 static FORCEINLINE HRESULT IMFVideoDisplayControl_GetVideoWindow(IMFVideoDisplayControl* This,HWND *phwndVideo) {
726     return This->lpVtbl->GetVideoWindow(This,phwndVideo);
727 }
728 static FORCEINLINE HRESULT IMFVideoDisplayControl_RepaintVideo(IMFVideoDisplayControl* This) {
729     return This->lpVtbl->RepaintVideo(This);
730 }
731 static FORCEINLINE HRESULT IMFVideoDisplayControl_GetCurrentImage(IMFVideoDisplayControl* This,BITMAPINFOHEADER *pBih,BYTE **pDib,DWORD *pcbDib,LONGLONG *pTimeStamp) {
732     return This->lpVtbl->GetCurrentImage(This,pBih,pDib,pcbDib,pTimeStamp);
733 }
734 static FORCEINLINE HRESULT IMFVideoDisplayControl_SetBorderColor(IMFVideoDisplayControl* This,COLORREF Clr) {
735     return This->lpVtbl->SetBorderColor(This,Clr);
736 }
737 static FORCEINLINE HRESULT IMFVideoDisplayControl_GetBorderColor(IMFVideoDisplayControl* This,COLORREF *pClr) {
738     return This->lpVtbl->GetBorderColor(This,pClr);
739 }
740 static FORCEINLINE HRESULT IMFVideoDisplayControl_SetRenderingPrefs(IMFVideoDisplayControl* This,DWORD dwRenderFlags) {
741     return This->lpVtbl->SetRenderingPrefs(This,dwRenderFlags);
742 }
743 static FORCEINLINE HRESULT IMFVideoDisplayControl_GetRenderingPrefs(IMFVideoDisplayControl* This,DWORD *pdwRenderFlags) {
744     return This->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags);
745 }
746 static FORCEINLINE HRESULT IMFVideoDisplayControl_SetFullscreen(IMFVideoDisplayControl* This,WINBOOL fFullscreen) {
747     return This->lpVtbl->SetFullscreen(This,fFullscreen);
748 }
749 static FORCEINLINE HRESULT IMFVideoDisplayControl_GetFullscreen(IMFVideoDisplayControl* This,WINBOOL *pfFullscreen) {
750     return This->lpVtbl->GetFullscreen(This,pfFullscreen);
751 }
752 #endif
753 #endif
754 
755 #endif
756 
757 
758 #endif  /* __IMFVideoDisplayControl_INTERFACE_DEFINED__ */
759 
760 
761 /*****************************************************************************
762  * IMFVideoPresenter interface
763  */
764 #ifndef __IMFVideoPresenter_INTERFACE_DEFINED__
765 #define __IMFVideoPresenter_INTERFACE_DEFINED__
766 
767 DEFINE_GUID(IID_IMFVideoPresenter, 0x29aff080, 0x182a, 0x4a5d, 0xaf,0x3b, 0x44,0x8f,0x3a,0x63,0x46,0xcb);
768 #if defined(__cplusplus) && !defined(CINTERFACE)
769 MIDL_INTERFACE("29aff080-182a-4a5d-af3b-448f3a6346cb")
770 IMFVideoPresenter : public IMFClockStateSink
771 {
772     virtual HRESULT STDMETHODCALLTYPE ProcessMessage(
773         MFVP_MESSAGE_TYPE eMessage,
774         ULONG_PTR ulParam) = 0;
775 
776     virtual HRESULT STDMETHODCALLTYPE GetCurrentMediaType(
777         IMFVideoMediaType **ppMediaType) = 0;
778 
779 };
780 #ifdef __CRT_UUID_DECL
781 __CRT_UUID_DECL(IMFVideoPresenter, 0x29aff080, 0x182a, 0x4a5d, 0xaf,0x3b, 0x44,0x8f,0x3a,0x63,0x46,0xcb)
782 #endif
783 #else
784 typedef struct IMFVideoPresenterVtbl {
785     BEGIN_INTERFACE
786 
787     /*** IUnknown methods ***/
788     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
789         IMFVideoPresenter *This,
790         REFIID riid,
791         void **ppvObject);
792 
793     ULONG (STDMETHODCALLTYPE *AddRef)(
794         IMFVideoPresenter *This);
795 
796     ULONG (STDMETHODCALLTYPE *Release)(
797         IMFVideoPresenter *This);
798 
799     /*** IMFClockStateSink methods ***/
800     HRESULT (STDMETHODCALLTYPE *OnClockStart)(
801         IMFVideoPresenter *This,
802         MFTIME hnsSystemTime,
803         LONGLONG llClockStartOffset);
804 
805     HRESULT (STDMETHODCALLTYPE *OnClockStop)(
806         IMFVideoPresenter *This,
807         MFTIME hnsSystemTime);
808 
809     HRESULT (STDMETHODCALLTYPE *OnClockPause)(
810         IMFVideoPresenter *This,
811         MFTIME hnsSystemTime);
812 
813     HRESULT (STDMETHODCALLTYPE *OnClockRestart)(
814         IMFVideoPresenter *This,
815         MFTIME hnsSystemTime);
816 
817     HRESULT (STDMETHODCALLTYPE *OnClockSetRate)(
818         IMFVideoPresenter *This,
819         MFTIME hnsSystemTime,
820         float flRate);
821 
822     /*** IMFVideoPresenter methods ***/
823     HRESULT (STDMETHODCALLTYPE *ProcessMessage)(
824         IMFVideoPresenter *This,
825         MFVP_MESSAGE_TYPE eMessage,
826         ULONG_PTR ulParam);
827 
828     HRESULT (STDMETHODCALLTYPE *GetCurrentMediaType)(
829         IMFVideoPresenter *This,
830         IMFVideoMediaType **ppMediaType);
831 
832     END_INTERFACE
833 } IMFVideoPresenterVtbl;
834 
835 interface IMFVideoPresenter {
836     CONST_VTBL IMFVideoPresenterVtbl* lpVtbl;
837 };
838 
839 #ifdef COBJMACROS
840 #ifndef WIDL_C_INLINE_WRAPPERS
841 /*** IUnknown methods ***/
842 #define IMFVideoPresenter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
843 #define IMFVideoPresenter_AddRef(This) (This)->lpVtbl->AddRef(This)
844 #define IMFVideoPresenter_Release(This) (This)->lpVtbl->Release(This)
845 /*** IMFClockStateSink methods ***/
846 #define IMFVideoPresenter_OnClockStart(This,hnsSystemTime,llClockStartOffset) (This)->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset)
847 #define IMFVideoPresenter_OnClockStop(This,hnsSystemTime) (This)->lpVtbl->OnClockStop(This,hnsSystemTime)
848 #define IMFVideoPresenter_OnClockPause(This,hnsSystemTime) (This)->lpVtbl->OnClockPause(This,hnsSystemTime)
849 #define IMFVideoPresenter_OnClockRestart(This,hnsSystemTime) (This)->lpVtbl->OnClockRestart(This,hnsSystemTime)
850 #define IMFVideoPresenter_OnClockSetRate(This,hnsSystemTime,flRate) (This)->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate)
851 /*** IMFVideoPresenter methods ***/
852 #define IMFVideoPresenter_ProcessMessage(This,eMessage,ulParam) (This)->lpVtbl->ProcessMessage(This,eMessage,ulParam)
853 #define IMFVideoPresenter_GetCurrentMediaType(This,ppMediaType) (This)->lpVtbl->GetCurrentMediaType(This,ppMediaType)
854 #else
855 /*** IUnknown methods ***/
856 static FORCEINLINE HRESULT IMFVideoPresenter_QueryInterface(IMFVideoPresenter* This,REFIID riid,void **ppvObject) {
857     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
858 }
859 static FORCEINLINE ULONG IMFVideoPresenter_AddRef(IMFVideoPresenter* This) {
860     return This->lpVtbl->AddRef(This);
861 }
862 static FORCEINLINE ULONG IMFVideoPresenter_Release(IMFVideoPresenter* This) {
863     return This->lpVtbl->Release(This);
864 }
865 /*** IMFClockStateSink methods ***/
866 static FORCEINLINE HRESULT IMFVideoPresenter_OnClockStart(IMFVideoPresenter* This,MFTIME hnsSystemTime,LONGLONG llClockStartOffset) {
867     return This->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset);
868 }
869 static FORCEINLINE HRESULT IMFVideoPresenter_OnClockStop(IMFVideoPresenter* This,MFTIME hnsSystemTime) {
870     return This->lpVtbl->OnClockStop(This,hnsSystemTime);
871 }
872 static FORCEINLINE HRESULT IMFVideoPresenter_OnClockPause(IMFVideoPresenter* This,MFTIME hnsSystemTime) {
873     return This->lpVtbl->OnClockPause(This,hnsSystemTime);
874 }
875 static FORCEINLINE HRESULT IMFVideoPresenter_OnClockRestart(IMFVideoPresenter* This,MFTIME hnsSystemTime) {
876     return This->lpVtbl->OnClockRestart(This,hnsSystemTime);
877 }
878 static FORCEINLINE HRESULT IMFVideoPresenter_OnClockSetRate(IMFVideoPresenter* This,MFTIME hnsSystemTime,float flRate) {
879     return This->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate);
880 }
881 /*** IMFVideoPresenter methods ***/
882 static FORCEINLINE HRESULT IMFVideoPresenter_ProcessMessage(IMFVideoPresenter* This,MFVP_MESSAGE_TYPE eMessage,ULONG_PTR ulParam) {
883     return This->lpVtbl->ProcessMessage(This,eMessage,ulParam);
884 }
885 static FORCEINLINE HRESULT IMFVideoPresenter_GetCurrentMediaType(IMFVideoPresenter* This,IMFVideoMediaType **ppMediaType) {
886     return This->lpVtbl->GetCurrentMediaType(This,ppMediaType);
887 }
888 #endif
889 #endif
890 
891 #endif
892 
893 
894 #endif  /* __IMFVideoPresenter_INTERFACE_DEFINED__ */
895 
896 
897 /*****************************************************************************
898  * IMFDesiredSample interface
899  */
900 #ifndef __IMFDesiredSample_INTERFACE_DEFINED__
901 #define __IMFDesiredSample_INTERFACE_DEFINED__
902 
903 DEFINE_GUID(IID_IMFDesiredSample, 0x56c294d0, 0x753e, 0x4260, 0x8d,0x61, 0xa3,0xd8,0x82,0x0b,0x1d,0x54);
904 #if defined(__cplusplus) && !defined(CINTERFACE)
905 MIDL_INTERFACE("56c294d0-753e-4260-8d61-a3d8820b1d54")
906 IMFDesiredSample : public IUnknown
907 {
908     virtual HRESULT STDMETHODCALLTYPE GetDesiredSampleTimeAndDuration(
909         LONGLONG *phnsSampleTime,
910         LONGLONG *phnsSampleDuration) = 0;
911 
912     virtual void STDMETHODCALLTYPE SetDesiredSampleTimeAndDuration(
913         LONGLONG hnsSampleTime,
914         LONGLONG hnsSampleDuration) = 0;
915 
916     virtual void STDMETHODCALLTYPE Clear(
917         ) = 0;
918 
919 };
920 #ifdef __CRT_UUID_DECL
921 __CRT_UUID_DECL(IMFDesiredSample, 0x56c294d0, 0x753e, 0x4260, 0x8d,0x61, 0xa3,0xd8,0x82,0x0b,0x1d,0x54)
922 #endif
923 #else
924 typedef struct IMFDesiredSampleVtbl {
925     BEGIN_INTERFACE
926 
927     /*** IUnknown methods ***/
928     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
929         IMFDesiredSample *This,
930         REFIID riid,
931         void **ppvObject);
932 
933     ULONG (STDMETHODCALLTYPE *AddRef)(
934         IMFDesiredSample *This);
935 
936     ULONG (STDMETHODCALLTYPE *Release)(
937         IMFDesiredSample *This);
938 
939     /*** IMFDesiredSample methods ***/
940     HRESULT (STDMETHODCALLTYPE *GetDesiredSampleTimeAndDuration)(
941         IMFDesiredSample *This,
942         LONGLONG *phnsSampleTime,
943         LONGLONG *phnsSampleDuration);
944 
945     void (STDMETHODCALLTYPE *SetDesiredSampleTimeAndDuration)(
946         IMFDesiredSample *This,
947         LONGLONG hnsSampleTime,
948         LONGLONG hnsSampleDuration);
949 
950     void (STDMETHODCALLTYPE *Clear)(
951         IMFDesiredSample *This);
952 
953     END_INTERFACE
954 } IMFDesiredSampleVtbl;
955 
956 interface IMFDesiredSample {
957     CONST_VTBL IMFDesiredSampleVtbl* lpVtbl;
958 };
959 
960 #ifdef COBJMACROS
961 #ifndef WIDL_C_INLINE_WRAPPERS
962 /*** IUnknown methods ***/
963 #define IMFDesiredSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
964 #define IMFDesiredSample_AddRef(This) (This)->lpVtbl->AddRef(This)
965 #define IMFDesiredSample_Release(This) (This)->lpVtbl->Release(This)
966 /*** IMFDesiredSample methods ***/
967 #define IMFDesiredSample_GetDesiredSampleTimeAndDuration(This,phnsSampleTime,phnsSampleDuration) (This)->lpVtbl->GetDesiredSampleTimeAndDuration(This,phnsSampleTime,phnsSampleDuration)
968 #define IMFDesiredSample_SetDesiredSampleTimeAndDuration(This,hnsSampleTime,hnsSampleDuration) (This)->lpVtbl->SetDesiredSampleTimeAndDuration(This,hnsSampleTime,hnsSampleDuration)
969 #define IMFDesiredSample_Clear(This) (This)->lpVtbl->Clear(This)
970 #else
971 /*** IUnknown methods ***/
972 static FORCEINLINE HRESULT IMFDesiredSample_QueryInterface(IMFDesiredSample* This,REFIID riid,void **ppvObject) {
973     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
974 }
975 static FORCEINLINE ULONG IMFDesiredSample_AddRef(IMFDesiredSample* This) {
976     return This->lpVtbl->AddRef(This);
977 }
978 static FORCEINLINE ULONG IMFDesiredSample_Release(IMFDesiredSample* This) {
979     return This->lpVtbl->Release(This);
980 }
981 /*** IMFDesiredSample methods ***/
982 static FORCEINLINE HRESULT IMFDesiredSample_GetDesiredSampleTimeAndDuration(IMFDesiredSample* This,LONGLONG *phnsSampleTime,LONGLONG *phnsSampleDuration) {
983     return This->lpVtbl->GetDesiredSampleTimeAndDuration(This,phnsSampleTime,phnsSampleDuration);
984 }
985 static FORCEINLINE void IMFDesiredSample_SetDesiredSampleTimeAndDuration(IMFDesiredSample* This,LONGLONG hnsSampleTime,LONGLONG hnsSampleDuration) {
986     This->lpVtbl->SetDesiredSampleTimeAndDuration(This,hnsSampleTime,hnsSampleDuration);
987 }
988 static FORCEINLINE void IMFDesiredSample_Clear(IMFDesiredSample* This) {
989     This->lpVtbl->Clear(This);
990 }
991 #endif
992 #endif
993 
994 #endif
995 
996 
997 #endif  /* __IMFDesiredSample_INTERFACE_DEFINED__ */
998 
999 
1000 /*****************************************************************************
1001  * IMFTrackedSample interface
1002  */
1003 #ifndef __IMFTrackedSample_INTERFACE_DEFINED__
1004 #define __IMFTrackedSample_INTERFACE_DEFINED__
1005 
1006 DEFINE_GUID(IID_IMFTrackedSample, 0x245bf8e9, 0x0755, 0x40f7, 0x88,0xa5, 0xae,0x0f,0x18,0xd5,0x5e,0x17);
1007 #if defined(__cplusplus) && !defined(CINTERFACE)
1008 MIDL_INTERFACE("245bf8e9-0755-40f7-88a5-ae0f18d55e17")
1009 IMFTrackedSample : public IUnknown
1010 {
1011     virtual HRESULT STDMETHODCALLTYPE SetAllocator(
1012         IMFAsyncCallback *pSampleAllocator,
1013         IUnknown *pUnkState) = 0;
1014 
1015 };
1016 #ifdef __CRT_UUID_DECL
1017 __CRT_UUID_DECL(IMFTrackedSample, 0x245bf8e9, 0x0755, 0x40f7, 0x88,0xa5, 0xae,0x0f,0x18,0xd5,0x5e,0x17)
1018 #endif
1019 #else
1020 typedef struct IMFTrackedSampleVtbl {
1021     BEGIN_INTERFACE
1022 
1023     /*** IUnknown methods ***/
1024     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1025         IMFTrackedSample *This,
1026         REFIID riid,
1027         void **ppvObject);
1028 
1029     ULONG (STDMETHODCALLTYPE *AddRef)(
1030         IMFTrackedSample *This);
1031 
1032     ULONG (STDMETHODCALLTYPE *Release)(
1033         IMFTrackedSample *This);
1034 
1035     /*** IMFTrackedSample methods ***/
1036     HRESULT (STDMETHODCALLTYPE *SetAllocator)(
1037         IMFTrackedSample *This,
1038         IMFAsyncCallback *pSampleAllocator,
1039         IUnknown *pUnkState);
1040 
1041     END_INTERFACE
1042 } IMFTrackedSampleVtbl;
1043 
1044 interface IMFTrackedSample {
1045     CONST_VTBL IMFTrackedSampleVtbl* lpVtbl;
1046 };
1047 
1048 #ifdef COBJMACROS
1049 #ifndef WIDL_C_INLINE_WRAPPERS
1050 /*** IUnknown methods ***/
1051 #define IMFTrackedSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1052 #define IMFTrackedSample_AddRef(This) (This)->lpVtbl->AddRef(This)
1053 #define IMFTrackedSample_Release(This) (This)->lpVtbl->Release(This)
1054 /*** IMFTrackedSample methods ***/
1055 #define IMFTrackedSample_SetAllocator(This,pSampleAllocator,pUnkState) (This)->lpVtbl->SetAllocator(This,pSampleAllocator,pUnkState)
1056 #else
1057 /*** IUnknown methods ***/
1058 static FORCEINLINE HRESULT IMFTrackedSample_QueryInterface(IMFTrackedSample* This,REFIID riid,void **ppvObject) {
1059     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1060 }
1061 static FORCEINLINE ULONG IMFTrackedSample_AddRef(IMFTrackedSample* This) {
1062     return This->lpVtbl->AddRef(This);
1063 }
1064 static FORCEINLINE ULONG IMFTrackedSample_Release(IMFTrackedSample* This) {
1065     return This->lpVtbl->Release(This);
1066 }
1067 /*** IMFTrackedSample methods ***/
1068 static FORCEINLINE HRESULT IMFTrackedSample_SetAllocator(IMFTrackedSample* This,IMFAsyncCallback *pSampleAllocator,IUnknown *pUnkState) {
1069     return This->lpVtbl->SetAllocator(This,pSampleAllocator,pUnkState);
1070 }
1071 #endif
1072 #endif
1073 
1074 #endif
1075 
1076 
1077 #endif  /* __IMFTrackedSample_INTERFACE_DEFINED__ */
1078 
1079 
1080 /*****************************************************************************
1081  * IMFVideoMixerControl interface
1082  */
1083 #ifndef __IMFVideoMixerControl_INTERFACE_DEFINED__
1084 #define __IMFVideoMixerControl_INTERFACE_DEFINED__
1085 
1086 DEFINE_GUID(IID_IMFVideoMixerControl, 0xa5c6c53f, 0xc202, 0x4aa5, 0x96,0x95, 0x17,0x5b,0xa8,0xc5,0x08,0xa5);
1087 #if defined(__cplusplus) && !defined(CINTERFACE)
1088 MIDL_INTERFACE("a5c6c53f-c202-4aa5-9695-175ba8c508a5")
1089 IMFVideoMixerControl : public IUnknown
1090 {
1091     virtual HRESULT STDMETHODCALLTYPE SetStreamZOrder(
1092         DWORD dwStreamID,
1093         DWORD dwZ) = 0;
1094 
1095     virtual HRESULT STDMETHODCALLTYPE GetStreamZOrder(
1096         DWORD dwStreamID,
1097         DWORD *pdwZ) = 0;
1098 
1099     virtual HRESULT STDMETHODCALLTYPE SetStreamOutputRect(
1100         DWORD dwStreamID,
1101         const MFVideoNormalizedRect *pnrcOutput) = 0;
1102 
1103     virtual HRESULT STDMETHODCALLTYPE GetStreamOutputRect(
1104         DWORD dwStreamID,
1105         MFVideoNormalizedRect *pnrcOutput) = 0;
1106 
1107 };
1108 #ifdef __CRT_UUID_DECL
1109 __CRT_UUID_DECL(IMFVideoMixerControl, 0xa5c6c53f, 0xc202, 0x4aa5, 0x96,0x95, 0x17,0x5b,0xa8,0xc5,0x08,0xa5)
1110 #endif
1111 #else
1112 typedef struct IMFVideoMixerControlVtbl {
1113     BEGIN_INTERFACE
1114 
1115     /*** IUnknown methods ***/
1116     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1117         IMFVideoMixerControl *This,
1118         REFIID riid,
1119         void **ppvObject);
1120 
1121     ULONG (STDMETHODCALLTYPE *AddRef)(
1122         IMFVideoMixerControl *This);
1123 
1124     ULONG (STDMETHODCALLTYPE *Release)(
1125         IMFVideoMixerControl *This);
1126 
1127     /*** IMFVideoMixerControl methods ***/
1128     HRESULT (STDMETHODCALLTYPE *SetStreamZOrder)(
1129         IMFVideoMixerControl *This,
1130         DWORD dwStreamID,
1131         DWORD dwZ);
1132 
1133     HRESULT (STDMETHODCALLTYPE *GetStreamZOrder)(
1134         IMFVideoMixerControl *This,
1135         DWORD dwStreamID,
1136         DWORD *pdwZ);
1137 
1138     HRESULT (STDMETHODCALLTYPE *SetStreamOutputRect)(
1139         IMFVideoMixerControl *This,
1140         DWORD dwStreamID,
1141         const MFVideoNormalizedRect *pnrcOutput);
1142 
1143     HRESULT (STDMETHODCALLTYPE *GetStreamOutputRect)(
1144         IMFVideoMixerControl *This,
1145         DWORD dwStreamID,
1146         MFVideoNormalizedRect *pnrcOutput);
1147 
1148     END_INTERFACE
1149 } IMFVideoMixerControlVtbl;
1150 
1151 interface IMFVideoMixerControl {
1152     CONST_VTBL IMFVideoMixerControlVtbl* lpVtbl;
1153 };
1154 
1155 #ifdef COBJMACROS
1156 #ifndef WIDL_C_INLINE_WRAPPERS
1157 /*** IUnknown methods ***/
1158 #define IMFVideoMixerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1159 #define IMFVideoMixerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
1160 #define IMFVideoMixerControl_Release(This) (This)->lpVtbl->Release(This)
1161 /*** IMFVideoMixerControl methods ***/
1162 #define IMFVideoMixerControl_SetStreamZOrder(This,dwStreamID,dwZ) (This)->lpVtbl->SetStreamZOrder(This,dwStreamID,dwZ)
1163 #define IMFVideoMixerControl_GetStreamZOrder(This,dwStreamID,pdwZ) (This)->lpVtbl->GetStreamZOrder(This,dwStreamID,pdwZ)
1164 #define IMFVideoMixerControl_SetStreamOutputRect(This,dwStreamID,pnrcOutput) (This)->lpVtbl->SetStreamOutputRect(This,dwStreamID,pnrcOutput)
1165 #define IMFVideoMixerControl_GetStreamOutputRect(This,dwStreamID,pnrcOutput) (This)->lpVtbl->GetStreamOutputRect(This,dwStreamID,pnrcOutput)
1166 #else
1167 /*** IUnknown methods ***/
1168 static FORCEINLINE HRESULT IMFVideoMixerControl_QueryInterface(IMFVideoMixerControl* This,REFIID riid,void **ppvObject) {
1169     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1170 }
1171 static FORCEINLINE ULONG IMFVideoMixerControl_AddRef(IMFVideoMixerControl* This) {
1172     return This->lpVtbl->AddRef(This);
1173 }
1174 static FORCEINLINE ULONG IMFVideoMixerControl_Release(IMFVideoMixerControl* This) {
1175     return This->lpVtbl->Release(This);
1176 }
1177 /*** IMFVideoMixerControl methods ***/
1178 static FORCEINLINE HRESULT IMFVideoMixerControl_SetStreamZOrder(IMFVideoMixerControl* This,DWORD dwStreamID,DWORD dwZ) {
1179     return This->lpVtbl->SetStreamZOrder(This,dwStreamID,dwZ);
1180 }
1181 static FORCEINLINE HRESULT IMFVideoMixerControl_GetStreamZOrder(IMFVideoMixerControl* This,DWORD dwStreamID,DWORD *pdwZ) {
1182     return This->lpVtbl->GetStreamZOrder(This,dwStreamID,pdwZ);
1183 }
1184 static FORCEINLINE HRESULT IMFVideoMixerControl_SetStreamOutputRect(IMFVideoMixerControl* This,DWORD dwStreamID,const MFVideoNormalizedRect *pnrcOutput) {
1185     return This->lpVtbl->SetStreamOutputRect(This,dwStreamID,pnrcOutput);
1186 }
1187 static FORCEINLINE HRESULT IMFVideoMixerControl_GetStreamOutputRect(IMFVideoMixerControl* This,DWORD dwStreamID,MFVideoNormalizedRect *pnrcOutput) {
1188     return This->lpVtbl->GetStreamOutputRect(This,dwStreamID,pnrcOutput);
1189 }
1190 #endif
1191 #endif
1192 
1193 #endif
1194 
1195 
1196 #endif  /* __IMFVideoMixerControl_INTERFACE_DEFINED__ */
1197 
1198 
1199 /*****************************************************************************
1200  * IMFVideoMixerControl2 interface
1201  */
1202 #ifndef __IMFVideoMixerControl2_INTERFACE_DEFINED__
1203 #define __IMFVideoMixerControl2_INTERFACE_DEFINED__
1204 
1205 DEFINE_GUID(IID_IMFVideoMixerControl2, 0x8459616d, 0x966e, 0x4930, 0xb6,0x58, 0x54,0xfa,0x7e,0x5a,0x16,0xd3);
1206 #if defined(__cplusplus) && !defined(CINTERFACE)
1207 MIDL_INTERFACE("8459616d-966e-4930-b658-54fa7e5a16d3")
1208 IMFVideoMixerControl2 : public IMFVideoMixerControl
1209 {
1210     virtual HRESULT STDMETHODCALLTYPE SetMixingPrefs(
1211         DWORD dwMixFlags) = 0;
1212 
1213     virtual HRESULT STDMETHODCALLTYPE GetMixingPrefs(
1214         DWORD *pdwMixFlags) = 0;
1215 
1216 };
1217 #ifdef __CRT_UUID_DECL
1218 __CRT_UUID_DECL(IMFVideoMixerControl2, 0x8459616d, 0x966e, 0x4930, 0xb6,0x58, 0x54,0xfa,0x7e,0x5a,0x16,0xd3)
1219 #endif
1220 #else
1221 typedef struct IMFVideoMixerControl2Vtbl {
1222     BEGIN_INTERFACE
1223 
1224     /*** IUnknown methods ***/
1225     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1226         IMFVideoMixerControl2 *This,
1227         REFIID riid,
1228         void **ppvObject);
1229 
1230     ULONG (STDMETHODCALLTYPE *AddRef)(
1231         IMFVideoMixerControl2 *This);
1232 
1233     ULONG (STDMETHODCALLTYPE *Release)(
1234         IMFVideoMixerControl2 *This);
1235 
1236     /*** IMFVideoMixerControl methods ***/
1237     HRESULT (STDMETHODCALLTYPE *SetStreamZOrder)(
1238         IMFVideoMixerControl2 *This,
1239         DWORD dwStreamID,
1240         DWORD dwZ);
1241 
1242     HRESULT (STDMETHODCALLTYPE *GetStreamZOrder)(
1243         IMFVideoMixerControl2 *This,
1244         DWORD dwStreamID,
1245         DWORD *pdwZ);
1246 
1247     HRESULT (STDMETHODCALLTYPE *SetStreamOutputRect)(
1248         IMFVideoMixerControl2 *This,
1249         DWORD dwStreamID,
1250         const MFVideoNormalizedRect *pnrcOutput);
1251 
1252     HRESULT (STDMETHODCALLTYPE *GetStreamOutputRect)(
1253         IMFVideoMixerControl2 *This,
1254         DWORD dwStreamID,
1255         MFVideoNormalizedRect *pnrcOutput);
1256 
1257     /*** IMFVideoMixerControl2 methods ***/
1258     HRESULT (STDMETHODCALLTYPE *SetMixingPrefs)(
1259         IMFVideoMixerControl2 *This,
1260         DWORD dwMixFlags);
1261 
1262     HRESULT (STDMETHODCALLTYPE *GetMixingPrefs)(
1263         IMFVideoMixerControl2 *This,
1264         DWORD *pdwMixFlags);
1265 
1266     END_INTERFACE
1267 } IMFVideoMixerControl2Vtbl;
1268 
1269 interface IMFVideoMixerControl2 {
1270     CONST_VTBL IMFVideoMixerControl2Vtbl* lpVtbl;
1271 };
1272 
1273 #ifdef COBJMACROS
1274 #ifndef WIDL_C_INLINE_WRAPPERS
1275 /*** IUnknown methods ***/
1276 #define IMFVideoMixerControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1277 #define IMFVideoMixerControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
1278 #define IMFVideoMixerControl2_Release(This) (This)->lpVtbl->Release(This)
1279 /*** IMFVideoMixerControl methods ***/
1280 #define IMFVideoMixerControl2_SetStreamZOrder(This,dwStreamID,dwZ) (This)->lpVtbl->SetStreamZOrder(This,dwStreamID,dwZ)
1281 #define IMFVideoMixerControl2_GetStreamZOrder(This,dwStreamID,pdwZ) (This)->lpVtbl->GetStreamZOrder(This,dwStreamID,pdwZ)
1282 #define IMFVideoMixerControl2_SetStreamOutputRect(This,dwStreamID,pnrcOutput) (This)->lpVtbl->SetStreamOutputRect(This,dwStreamID,pnrcOutput)
1283 #define IMFVideoMixerControl2_GetStreamOutputRect(This,dwStreamID,pnrcOutput) (This)->lpVtbl->GetStreamOutputRect(This,dwStreamID,pnrcOutput)
1284 /*** IMFVideoMixerControl2 methods ***/
1285 #define IMFVideoMixerControl2_SetMixingPrefs(This,dwMixFlags) (This)->lpVtbl->SetMixingPrefs(This,dwMixFlags)
1286 #define IMFVideoMixerControl2_GetMixingPrefs(This,pdwMixFlags) (This)->lpVtbl->GetMixingPrefs(This,pdwMixFlags)
1287 #else
1288 /*** IUnknown methods ***/
1289 static FORCEINLINE HRESULT IMFVideoMixerControl2_QueryInterface(IMFVideoMixerControl2* This,REFIID riid,void **ppvObject) {
1290     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1291 }
1292 static FORCEINLINE ULONG IMFVideoMixerControl2_AddRef(IMFVideoMixerControl2* This) {
1293     return This->lpVtbl->AddRef(This);
1294 }
1295 static FORCEINLINE ULONG IMFVideoMixerControl2_Release(IMFVideoMixerControl2* This) {
1296     return This->lpVtbl->Release(This);
1297 }
1298 /*** IMFVideoMixerControl methods ***/
1299 static FORCEINLINE HRESULT IMFVideoMixerControl2_SetStreamZOrder(IMFVideoMixerControl2* This,DWORD dwStreamID,DWORD dwZ) {
1300     return This->lpVtbl->SetStreamZOrder(This,dwStreamID,dwZ);
1301 }
1302 static FORCEINLINE HRESULT IMFVideoMixerControl2_GetStreamZOrder(IMFVideoMixerControl2* This,DWORD dwStreamID,DWORD *pdwZ) {
1303     return This->lpVtbl->GetStreamZOrder(This,dwStreamID,pdwZ);
1304 }
1305 static FORCEINLINE HRESULT IMFVideoMixerControl2_SetStreamOutputRect(IMFVideoMixerControl2* This,DWORD dwStreamID,const MFVideoNormalizedRect *pnrcOutput) {
1306     return This->lpVtbl->SetStreamOutputRect(This,dwStreamID,pnrcOutput);
1307 }
1308 static FORCEINLINE HRESULT IMFVideoMixerControl2_GetStreamOutputRect(IMFVideoMixerControl2* This,DWORD dwStreamID,MFVideoNormalizedRect *pnrcOutput) {
1309     return This->lpVtbl->GetStreamOutputRect(This,dwStreamID,pnrcOutput);
1310 }
1311 /*** IMFVideoMixerControl2 methods ***/
1312 static FORCEINLINE HRESULT IMFVideoMixerControl2_SetMixingPrefs(IMFVideoMixerControl2* This,DWORD dwMixFlags) {
1313     return This->lpVtbl->SetMixingPrefs(This,dwMixFlags);
1314 }
1315 static FORCEINLINE HRESULT IMFVideoMixerControl2_GetMixingPrefs(IMFVideoMixerControl2* This,DWORD *pdwMixFlags) {
1316     return This->lpVtbl->GetMixingPrefs(This,pdwMixFlags);
1317 }
1318 #endif
1319 #endif
1320 
1321 #endif
1322 
1323 
1324 #endif  /* __IMFVideoMixerControl2_INTERFACE_DEFINED__ */
1325 
1326 
1327 /*****************************************************************************
1328  * IMFVideoRenderer interface
1329  */
1330 #ifndef __IMFVideoRenderer_INTERFACE_DEFINED__
1331 #define __IMFVideoRenderer_INTERFACE_DEFINED__
1332 
1333 DEFINE_GUID(IID_IMFVideoRenderer, 0xdfdfd197, 0xa9ca, 0x43d8, 0xb3,0x41, 0x6a,0xf3,0x50,0x37,0x92,0xcd);
1334 #if defined(__cplusplus) && !defined(CINTERFACE)
1335 MIDL_INTERFACE("dfdfd197-a9ca-43d8-b341-6af3503792cd")
1336 IMFVideoRenderer : public IUnknown
1337 {
1338     virtual HRESULT STDMETHODCALLTYPE InitializeRenderer(
1339         IMFTransform *pVideoMixer,
1340         IMFVideoPresenter *pVideoPresenter) = 0;
1341 
1342 };
1343 #ifdef __CRT_UUID_DECL
1344 __CRT_UUID_DECL(IMFVideoRenderer, 0xdfdfd197, 0xa9ca, 0x43d8, 0xb3,0x41, 0x6a,0xf3,0x50,0x37,0x92,0xcd)
1345 #endif
1346 #else
1347 typedef struct IMFVideoRendererVtbl {
1348     BEGIN_INTERFACE
1349 
1350     /*** IUnknown methods ***/
1351     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1352         IMFVideoRenderer *This,
1353         REFIID riid,
1354         void **ppvObject);
1355 
1356     ULONG (STDMETHODCALLTYPE *AddRef)(
1357         IMFVideoRenderer *This);
1358 
1359     ULONG (STDMETHODCALLTYPE *Release)(
1360         IMFVideoRenderer *This);
1361 
1362     /*** IMFVideoRenderer methods ***/
1363     HRESULT (STDMETHODCALLTYPE *InitializeRenderer)(
1364         IMFVideoRenderer *This,
1365         IMFTransform *pVideoMixer,
1366         IMFVideoPresenter *pVideoPresenter);
1367 
1368     END_INTERFACE
1369 } IMFVideoRendererVtbl;
1370 
1371 interface IMFVideoRenderer {
1372     CONST_VTBL IMFVideoRendererVtbl* lpVtbl;
1373 };
1374 
1375 #ifdef COBJMACROS
1376 #ifndef WIDL_C_INLINE_WRAPPERS
1377 /*** IUnknown methods ***/
1378 #define IMFVideoRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1379 #define IMFVideoRenderer_AddRef(This) (This)->lpVtbl->AddRef(This)
1380 #define IMFVideoRenderer_Release(This) (This)->lpVtbl->Release(This)
1381 /*** IMFVideoRenderer methods ***/
1382 #define IMFVideoRenderer_InitializeRenderer(This,pVideoMixer,pVideoPresenter) (This)->lpVtbl->InitializeRenderer(This,pVideoMixer,pVideoPresenter)
1383 #else
1384 /*** IUnknown methods ***/
1385 static FORCEINLINE HRESULT IMFVideoRenderer_QueryInterface(IMFVideoRenderer* This,REFIID riid,void **ppvObject) {
1386     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1387 }
1388 static FORCEINLINE ULONG IMFVideoRenderer_AddRef(IMFVideoRenderer* This) {
1389     return This->lpVtbl->AddRef(This);
1390 }
1391 static FORCEINLINE ULONG IMFVideoRenderer_Release(IMFVideoRenderer* This) {
1392     return This->lpVtbl->Release(This);
1393 }
1394 /*** IMFVideoRenderer methods ***/
1395 static FORCEINLINE HRESULT IMFVideoRenderer_InitializeRenderer(IMFVideoRenderer* This,IMFTransform *pVideoMixer,IMFVideoPresenter *pVideoPresenter) {
1396     return This->lpVtbl->InitializeRenderer(This,pVideoMixer,pVideoPresenter);
1397 }
1398 #endif
1399 #endif
1400 
1401 #endif
1402 
1403 
1404 #endif  /* __IMFVideoRenderer_INTERFACE_DEFINED__ */
1405 
1406 
1407 /*****************************************************************************
1408  * IEVRFilterConfig interface
1409  */
1410 #ifndef __IEVRFilterConfig_INTERFACE_DEFINED__
1411 #define __IEVRFilterConfig_INTERFACE_DEFINED__
1412 
1413 DEFINE_GUID(IID_IEVRFilterConfig, 0x83e91e85, 0x82c1, 0x4ea7, 0x80,0x1d, 0x85,0xdc,0x50,0xb7,0x50,0x86);
1414 #if defined(__cplusplus) && !defined(CINTERFACE)
1415 MIDL_INTERFACE("83e91e85-82c1-4ea7-801d-85dc50b75086")
1416 IEVRFilterConfig : public IUnknown
1417 {
1418     virtual HRESULT STDMETHODCALLTYPE SetNumberOfStreams(
1419         DWORD dwMaxStreams) = 0;
1420 
1421     virtual HRESULT STDMETHODCALLTYPE GetNumberOfStreams(
1422         DWORD *pdwMaxStreams) = 0;
1423 
1424 };
1425 #ifdef __CRT_UUID_DECL
1426 __CRT_UUID_DECL(IEVRFilterConfig, 0x83e91e85, 0x82c1, 0x4ea7, 0x80,0x1d, 0x85,0xdc,0x50,0xb7,0x50,0x86)
1427 #endif
1428 #else
1429 typedef struct IEVRFilterConfigVtbl {
1430     BEGIN_INTERFACE
1431 
1432     /*** IUnknown methods ***/
1433     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1434         IEVRFilterConfig *This,
1435         REFIID riid,
1436         void **ppvObject);
1437 
1438     ULONG (STDMETHODCALLTYPE *AddRef)(
1439         IEVRFilterConfig *This);
1440 
1441     ULONG (STDMETHODCALLTYPE *Release)(
1442         IEVRFilterConfig *This);
1443 
1444     /*** IEVRFilterConfig methods ***/
1445     HRESULT (STDMETHODCALLTYPE *SetNumberOfStreams)(
1446         IEVRFilterConfig *This,
1447         DWORD dwMaxStreams);
1448 
1449     HRESULT (STDMETHODCALLTYPE *GetNumberOfStreams)(
1450         IEVRFilterConfig *This,
1451         DWORD *pdwMaxStreams);
1452 
1453     END_INTERFACE
1454 } IEVRFilterConfigVtbl;
1455 
1456 interface IEVRFilterConfig {
1457     CONST_VTBL IEVRFilterConfigVtbl* lpVtbl;
1458 };
1459 
1460 #ifdef COBJMACROS
1461 #ifndef WIDL_C_INLINE_WRAPPERS
1462 /*** IUnknown methods ***/
1463 #define IEVRFilterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1464 #define IEVRFilterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
1465 #define IEVRFilterConfig_Release(This) (This)->lpVtbl->Release(This)
1466 /*** IEVRFilterConfig methods ***/
1467 #define IEVRFilterConfig_SetNumberOfStreams(This,dwMaxStreams) (This)->lpVtbl->SetNumberOfStreams(This,dwMaxStreams)
1468 #define IEVRFilterConfig_GetNumberOfStreams(This,pdwMaxStreams) (This)->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams)
1469 #else
1470 /*** IUnknown methods ***/
1471 static FORCEINLINE HRESULT IEVRFilterConfig_QueryInterface(IEVRFilterConfig* This,REFIID riid,void **ppvObject) {
1472     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1473 }
1474 static FORCEINLINE ULONG IEVRFilterConfig_AddRef(IEVRFilterConfig* This) {
1475     return This->lpVtbl->AddRef(This);
1476 }
1477 static FORCEINLINE ULONG IEVRFilterConfig_Release(IEVRFilterConfig* This) {
1478     return This->lpVtbl->Release(This);
1479 }
1480 /*** IEVRFilterConfig methods ***/
1481 static FORCEINLINE HRESULT IEVRFilterConfig_SetNumberOfStreams(IEVRFilterConfig* This,DWORD dwMaxStreams) {
1482     return This->lpVtbl->SetNumberOfStreams(This,dwMaxStreams);
1483 }
1484 static FORCEINLINE HRESULT IEVRFilterConfig_GetNumberOfStreams(IEVRFilterConfig* This,DWORD *pdwMaxStreams) {
1485     return This->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams);
1486 }
1487 #endif
1488 #endif
1489 
1490 #endif
1491 
1492 
1493 #endif  /* __IEVRFilterConfig_INTERFACE_DEFINED__ */
1494 
1495 
1496 /*****************************************************************************
1497  * IEVRFilterConfigEx interface
1498  */
1499 #ifndef __IEVRFilterConfigEx_INTERFACE_DEFINED__
1500 #define __IEVRFilterConfigEx_INTERFACE_DEFINED__
1501 
1502 DEFINE_GUID(IID_IEVRFilterConfigEx, 0xaea36028, 0x796d, 0x454f, 0xbe,0xee, 0xb4,0x80,0x71,0xe2,0x43,0x04);
1503 #if defined(__cplusplus) && !defined(CINTERFACE)
1504 MIDL_INTERFACE("aea36028-796d-454f-beee-b48071e24304")
1505 IEVRFilterConfigEx : public IEVRFilterConfig
1506 {
1507     virtual HRESULT STDMETHODCALLTYPE SetConfigPrefs(
1508         DWORD dwConfigFlags) = 0;
1509 
1510     virtual HRESULT STDMETHODCALLTYPE GetConfigPrefs(
1511         DWORD *pdwConfigFlags) = 0;
1512 
1513 };
1514 #ifdef __CRT_UUID_DECL
1515 __CRT_UUID_DECL(IEVRFilterConfigEx, 0xaea36028, 0x796d, 0x454f, 0xbe,0xee, 0xb4,0x80,0x71,0xe2,0x43,0x04)
1516 #endif
1517 #else
1518 typedef struct IEVRFilterConfigExVtbl {
1519     BEGIN_INTERFACE
1520 
1521     /*** IUnknown methods ***/
1522     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1523         IEVRFilterConfigEx *This,
1524         REFIID riid,
1525         void **ppvObject);
1526 
1527     ULONG (STDMETHODCALLTYPE *AddRef)(
1528         IEVRFilterConfigEx *This);
1529 
1530     ULONG (STDMETHODCALLTYPE *Release)(
1531         IEVRFilterConfigEx *This);
1532 
1533     /*** IEVRFilterConfig methods ***/
1534     HRESULT (STDMETHODCALLTYPE *SetNumberOfStreams)(
1535         IEVRFilterConfigEx *This,
1536         DWORD dwMaxStreams);
1537 
1538     HRESULT (STDMETHODCALLTYPE *GetNumberOfStreams)(
1539         IEVRFilterConfigEx *This,
1540         DWORD *pdwMaxStreams);
1541 
1542     /*** IEVRFilterConfigEx methods ***/
1543     HRESULT (STDMETHODCALLTYPE *SetConfigPrefs)(
1544         IEVRFilterConfigEx *This,
1545         DWORD dwConfigFlags);
1546 
1547     HRESULT (STDMETHODCALLTYPE *GetConfigPrefs)(
1548         IEVRFilterConfigEx *This,
1549         DWORD *pdwConfigFlags);
1550 
1551     END_INTERFACE
1552 } IEVRFilterConfigExVtbl;
1553 
1554 interface IEVRFilterConfigEx {
1555     CONST_VTBL IEVRFilterConfigExVtbl* lpVtbl;
1556 };
1557 
1558 #ifdef COBJMACROS
1559 #ifndef WIDL_C_INLINE_WRAPPERS
1560 /*** IUnknown methods ***/
1561 #define IEVRFilterConfigEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1562 #define IEVRFilterConfigEx_AddRef(This) (This)->lpVtbl->AddRef(This)
1563 #define IEVRFilterConfigEx_Release(This) (This)->lpVtbl->Release(This)
1564 /*** IEVRFilterConfig methods ***/
1565 #define IEVRFilterConfigEx_SetNumberOfStreams(This,dwMaxStreams) (This)->lpVtbl->SetNumberOfStreams(This,dwMaxStreams)
1566 #define IEVRFilterConfigEx_GetNumberOfStreams(This,pdwMaxStreams) (This)->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams)
1567 /*** IEVRFilterConfigEx methods ***/
1568 #define IEVRFilterConfigEx_SetConfigPrefs(This,dwConfigFlags) (This)->lpVtbl->SetConfigPrefs(This,dwConfigFlags)
1569 #define IEVRFilterConfigEx_GetConfigPrefs(This,pdwConfigFlags) (This)->lpVtbl->GetConfigPrefs(This,pdwConfigFlags)
1570 #else
1571 /*** IUnknown methods ***/
1572 static FORCEINLINE HRESULT IEVRFilterConfigEx_QueryInterface(IEVRFilterConfigEx* This,REFIID riid,void **ppvObject) {
1573     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1574 }
1575 static FORCEINLINE ULONG IEVRFilterConfigEx_AddRef(IEVRFilterConfigEx* This) {
1576     return This->lpVtbl->AddRef(This);
1577 }
1578 static FORCEINLINE ULONG IEVRFilterConfigEx_Release(IEVRFilterConfigEx* This) {
1579     return This->lpVtbl->Release(This);
1580 }
1581 /*** IEVRFilterConfig methods ***/
1582 static FORCEINLINE HRESULT IEVRFilterConfigEx_SetNumberOfStreams(IEVRFilterConfigEx* This,DWORD dwMaxStreams) {
1583     return This->lpVtbl->SetNumberOfStreams(This,dwMaxStreams);
1584 }
1585 static FORCEINLINE HRESULT IEVRFilterConfigEx_GetNumberOfStreams(IEVRFilterConfigEx* This,DWORD *pdwMaxStreams) {
1586     return This->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams);
1587 }
1588 /*** IEVRFilterConfigEx methods ***/
1589 static FORCEINLINE HRESULT IEVRFilterConfigEx_SetConfigPrefs(IEVRFilterConfigEx* This,DWORD dwConfigFlags) {
1590     return This->lpVtbl->SetConfigPrefs(This,dwConfigFlags);
1591 }
1592 static FORCEINLINE HRESULT IEVRFilterConfigEx_GetConfigPrefs(IEVRFilterConfigEx* This,DWORD *pdwConfigFlags) {
1593     return This->lpVtbl->GetConfigPrefs(This,pdwConfigFlags);
1594 }
1595 #endif
1596 #endif
1597 
1598 #endif
1599 
1600 
1601 #endif  /* __IEVRFilterConfigEx_INTERFACE_DEFINED__ */
1602 
1603 
1604 /*****************************************************************************
1605  * IMFTopologyServiceLookup interface
1606  */
1607 #ifndef __IMFTopologyServiceLookup_INTERFACE_DEFINED__
1608 #define __IMFTopologyServiceLookup_INTERFACE_DEFINED__
1609 
1610 DEFINE_GUID(IID_IMFTopologyServiceLookup, 0xfa993889, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7);
1611 #if defined(__cplusplus) && !defined(CINTERFACE)
1612 MIDL_INTERFACE("fa993889-4383-415a-a930-dd472a8cf6f7")
1613 IMFTopologyServiceLookup : public IUnknown
1614 {
1615     virtual HRESULT STDMETHODCALLTYPE LookupService(
1616         MF_SERVICE_LOOKUP_TYPE Type,
1617         DWORD dwIndex,
1618         REFGUID guidService,
1619         REFIID riid,
1620         LPVOID *ppvObjects,
1621         DWORD *pnObjects) = 0;
1622 
1623 };
1624 #ifdef __CRT_UUID_DECL
1625 __CRT_UUID_DECL(IMFTopologyServiceLookup, 0xfa993889, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7)
1626 #endif
1627 #else
1628 typedef struct IMFTopologyServiceLookupVtbl {
1629     BEGIN_INTERFACE
1630 
1631     /*** IUnknown methods ***/
1632     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1633         IMFTopologyServiceLookup *This,
1634         REFIID riid,
1635         void **ppvObject);
1636 
1637     ULONG (STDMETHODCALLTYPE *AddRef)(
1638         IMFTopologyServiceLookup *This);
1639 
1640     ULONG (STDMETHODCALLTYPE *Release)(
1641         IMFTopologyServiceLookup *This);
1642 
1643     /*** IMFTopologyServiceLookup methods ***/
1644     HRESULT (STDMETHODCALLTYPE *LookupService)(
1645         IMFTopologyServiceLookup *This,
1646         MF_SERVICE_LOOKUP_TYPE Type,
1647         DWORD dwIndex,
1648         REFGUID guidService,
1649         REFIID riid,
1650         LPVOID *ppvObjects,
1651         DWORD *pnObjects);
1652 
1653     END_INTERFACE
1654 } IMFTopologyServiceLookupVtbl;
1655 
1656 interface IMFTopologyServiceLookup {
1657     CONST_VTBL IMFTopologyServiceLookupVtbl* lpVtbl;
1658 };
1659 
1660 #ifdef COBJMACROS
1661 #ifndef WIDL_C_INLINE_WRAPPERS
1662 /*** IUnknown methods ***/
1663 #define IMFTopologyServiceLookup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1664 #define IMFTopologyServiceLookup_AddRef(This) (This)->lpVtbl->AddRef(This)
1665 #define IMFTopologyServiceLookup_Release(This) (This)->lpVtbl->Release(This)
1666 /*** IMFTopologyServiceLookup methods ***/
1667 #define IMFTopologyServiceLookup_LookupService(This,Type,dwIndex,guidService,riid,ppvObjects,pnObjects) (This)->lpVtbl->LookupService(This,Type,dwIndex,guidService,riid,ppvObjects,pnObjects)
1668 #else
1669 /*** IUnknown methods ***/
1670 static FORCEINLINE HRESULT IMFTopologyServiceLookup_QueryInterface(IMFTopologyServiceLookup* This,REFIID riid,void **ppvObject) {
1671     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1672 }
1673 static FORCEINLINE ULONG IMFTopologyServiceLookup_AddRef(IMFTopologyServiceLookup* This) {
1674     return This->lpVtbl->AddRef(This);
1675 }
1676 static FORCEINLINE ULONG IMFTopologyServiceLookup_Release(IMFTopologyServiceLookup* This) {
1677     return This->lpVtbl->Release(This);
1678 }
1679 /*** IMFTopologyServiceLookup methods ***/
1680 static FORCEINLINE HRESULT IMFTopologyServiceLookup_LookupService(IMFTopologyServiceLookup* This,MF_SERVICE_LOOKUP_TYPE Type,DWORD dwIndex,REFGUID guidService,REFIID riid,LPVOID *ppvObjects,DWORD *pnObjects) {
1681     return This->lpVtbl->LookupService(This,Type,dwIndex,guidService,riid,ppvObjects,pnObjects);
1682 }
1683 #endif
1684 #endif
1685 
1686 #endif
1687 
1688 
1689 #endif  /* __IMFTopologyServiceLookup_INTERFACE_DEFINED__ */
1690 
1691 
1692 /*****************************************************************************
1693  * IMFTopologyServiceLookupClient interface
1694  */
1695 #ifndef __IMFTopologyServiceLookupClient_INTERFACE_DEFINED__
1696 #define __IMFTopologyServiceLookupClient_INTERFACE_DEFINED__
1697 
1698 DEFINE_GUID(IID_IMFTopologyServiceLookupClient, 0xfa99388a, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7);
1699 #if defined(__cplusplus) && !defined(CINTERFACE)
1700 MIDL_INTERFACE("fa99388a-4383-415a-a930-dd472a8cf6f7")
1701 IMFTopologyServiceLookupClient : public IUnknown
1702 {
1703     virtual HRESULT STDMETHODCALLTYPE InitServicePointers(
1704         IMFTopologyServiceLookup *pLookup) = 0;
1705 
1706     virtual HRESULT STDMETHODCALLTYPE ReleaseServicePointers(
1707         ) = 0;
1708 
1709 };
1710 #ifdef __CRT_UUID_DECL
1711 __CRT_UUID_DECL(IMFTopologyServiceLookupClient, 0xfa99388a, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7)
1712 #endif
1713 #else
1714 typedef struct IMFTopologyServiceLookupClientVtbl {
1715     BEGIN_INTERFACE
1716 
1717     /*** IUnknown methods ***/
1718     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1719         IMFTopologyServiceLookupClient *This,
1720         REFIID riid,
1721         void **ppvObject);
1722 
1723     ULONG (STDMETHODCALLTYPE *AddRef)(
1724         IMFTopologyServiceLookupClient *This);
1725 
1726     ULONG (STDMETHODCALLTYPE *Release)(
1727         IMFTopologyServiceLookupClient *This);
1728 
1729     /*** IMFTopologyServiceLookupClient methods ***/
1730     HRESULT (STDMETHODCALLTYPE *InitServicePointers)(
1731         IMFTopologyServiceLookupClient *This,
1732         IMFTopologyServiceLookup *pLookup);
1733 
1734     HRESULT (STDMETHODCALLTYPE *ReleaseServicePointers)(
1735         IMFTopologyServiceLookupClient *This);
1736 
1737     END_INTERFACE
1738 } IMFTopologyServiceLookupClientVtbl;
1739 
1740 interface IMFTopologyServiceLookupClient {
1741     CONST_VTBL IMFTopologyServiceLookupClientVtbl* lpVtbl;
1742 };
1743 
1744 #ifdef COBJMACROS
1745 #ifndef WIDL_C_INLINE_WRAPPERS
1746 /*** IUnknown methods ***/
1747 #define IMFTopologyServiceLookupClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1748 #define IMFTopologyServiceLookupClient_AddRef(This) (This)->lpVtbl->AddRef(This)
1749 #define IMFTopologyServiceLookupClient_Release(This) (This)->lpVtbl->Release(This)
1750 /*** IMFTopologyServiceLookupClient methods ***/
1751 #define IMFTopologyServiceLookupClient_InitServicePointers(This,pLookup) (This)->lpVtbl->InitServicePointers(This,pLookup)
1752 #define IMFTopologyServiceLookupClient_ReleaseServicePointers(This) (This)->lpVtbl->ReleaseServicePointers(This)
1753 #else
1754 /*** IUnknown methods ***/
1755 static FORCEINLINE HRESULT IMFTopologyServiceLookupClient_QueryInterface(IMFTopologyServiceLookupClient* This,REFIID riid,void **ppvObject) {
1756     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1757 }
1758 static FORCEINLINE ULONG IMFTopologyServiceLookupClient_AddRef(IMFTopologyServiceLookupClient* This) {
1759     return This->lpVtbl->AddRef(This);
1760 }
1761 static FORCEINLINE ULONG IMFTopologyServiceLookupClient_Release(IMFTopologyServiceLookupClient* This) {
1762     return This->lpVtbl->Release(This);
1763 }
1764 /*** IMFTopologyServiceLookupClient methods ***/
1765 static FORCEINLINE HRESULT IMFTopologyServiceLookupClient_InitServicePointers(IMFTopologyServiceLookupClient* This,IMFTopologyServiceLookup *pLookup) {
1766     return This->lpVtbl->InitServicePointers(This,pLookup);
1767 }
1768 static FORCEINLINE HRESULT IMFTopologyServiceLookupClient_ReleaseServicePointers(IMFTopologyServiceLookupClient* This) {
1769     return This->lpVtbl->ReleaseServicePointers(This);
1770 }
1771 #endif
1772 #endif
1773 
1774 #endif
1775 
1776 
1777 #endif  /* __IMFTopologyServiceLookupClient_INTERFACE_DEFINED__ */
1778 
1779 
1780 /*****************************************************************************
1781  * IEVRTrustedVideoPlugin interface
1782  */
1783 #ifndef __IEVRTrustedVideoPlugin_INTERFACE_DEFINED__
1784 #define __IEVRTrustedVideoPlugin_INTERFACE_DEFINED__
1785 
1786 DEFINE_GUID(IID_IEVRTrustedVideoPlugin, 0x83a4ce40, 0x7710, 0x494b, 0xa8,0x93, 0xa4,0x72,0x04,0x9a,0xf6,0x30);
1787 #if defined(__cplusplus) && !defined(CINTERFACE)
1788 MIDL_INTERFACE("83a4ce40-7710-494b-a893-a472049af630")
1789 IEVRTrustedVideoPlugin : public IUnknown
1790 {
1791     virtual HRESULT STDMETHODCALLTYPE IsInTrustedVideoMode(
1792         WINBOOL *pYes) = 0;
1793 
1794     virtual HRESULT STDMETHODCALLTYPE CanConstrict(
1795         WINBOOL *pYes) = 0;
1796 
1797     virtual HRESULT STDMETHODCALLTYPE SetConstriction(
1798         DWORD dwKPix) = 0;
1799 
1800     virtual HRESULT STDMETHODCALLTYPE DisableImageExport(
1801         WINBOOL bDisable) = 0;
1802 
1803 };
1804 #ifdef __CRT_UUID_DECL
1805 __CRT_UUID_DECL(IEVRTrustedVideoPlugin, 0x83a4ce40, 0x7710, 0x494b, 0xa8,0x93, 0xa4,0x72,0x04,0x9a,0xf6,0x30)
1806 #endif
1807 #else
1808 typedef struct IEVRTrustedVideoPluginVtbl {
1809     BEGIN_INTERFACE
1810 
1811     /*** IUnknown methods ***/
1812     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1813         IEVRTrustedVideoPlugin *This,
1814         REFIID riid,
1815         void **ppvObject);
1816 
1817     ULONG (STDMETHODCALLTYPE *AddRef)(
1818         IEVRTrustedVideoPlugin *This);
1819 
1820     ULONG (STDMETHODCALLTYPE *Release)(
1821         IEVRTrustedVideoPlugin *This);
1822 
1823     /*** IEVRTrustedVideoPlugin methods ***/
1824     HRESULT (STDMETHODCALLTYPE *IsInTrustedVideoMode)(
1825         IEVRTrustedVideoPlugin *This,
1826         WINBOOL *pYes);
1827 
1828     HRESULT (STDMETHODCALLTYPE *CanConstrict)(
1829         IEVRTrustedVideoPlugin *This,
1830         WINBOOL *pYes);
1831 
1832     HRESULT (STDMETHODCALLTYPE *SetConstriction)(
1833         IEVRTrustedVideoPlugin *This,
1834         DWORD dwKPix);
1835 
1836     HRESULT (STDMETHODCALLTYPE *DisableImageExport)(
1837         IEVRTrustedVideoPlugin *This,
1838         WINBOOL bDisable);
1839 
1840     END_INTERFACE
1841 } IEVRTrustedVideoPluginVtbl;
1842 
1843 interface IEVRTrustedVideoPlugin {
1844     CONST_VTBL IEVRTrustedVideoPluginVtbl* lpVtbl;
1845 };
1846 
1847 #ifdef COBJMACROS
1848 #ifndef WIDL_C_INLINE_WRAPPERS
1849 /*** IUnknown methods ***/
1850 #define IEVRTrustedVideoPlugin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1851 #define IEVRTrustedVideoPlugin_AddRef(This) (This)->lpVtbl->AddRef(This)
1852 #define IEVRTrustedVideoPlugin_Release(This) (This)->lpVtbl->Release(This)
1853 /*** IEVRTrustedVideoPlugin methods ***/
1854 #define IEVRTrustedVideoPlugin_IsInTrustedVideoMode(This,pYes) (This)->lpVtbl->IsInTrustedVideoMode(This,pYes)
1855 #define IEVRTrustedVideoPlugin_CanConstrict(This,pYes) (This)->lpVtbl->CanConstrict(This,pYes)
1856 #define IEVRTrustedVideoPlugin_SetConstriction(This,dwKPix) (This)->lpVtbl->SetConstriction(This,dwKPix)
1857 #define IEVRTrustedVideoPlugin_DisableImageExport(This,bDisable) (This)->lpVtbl->DisableImageExport(This,bDisable)
1858 #else
1859 /*** IUnknown methods ***/
1860 static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_QueryInterface(IEVRTrustedVideoPlugin* This,REFIID riid,void **ppvObject) {
1861     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1862 }
1863 static FORCEINLINE ULONG IEVRTrustedVideoPlugin_AddRef(IEVRTrustedVideoPlugin* This) {
1864     return This->lpVtbl->AddRef(This);
1865 }
1866 static FORCEINLINE ULONG IEVRTrustedVideoPlugin_Release(IEVRTrustedVideoPlugin* This) {
1867     return This->lpVtbl->Release(This);
1868 }
1869 /*** IEVRTrustedVideoPlugin methods ***/
1870 static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_IsInTrustedVideoMode(IEVRTrustedVideoPlugin* This,WINBOOL *pYes) {
1871     return This->lpVtbl->IsInTrustedVideoMode(This,pYes);
1872 }
1873 static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_CanConstrict(IEVRTrustedVideoPlugin* This,WINBOOL *pYes) {
1874     return This->lpVtbl->CanConstrict(This,pYes);
1875 }
1876 static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_SetConstriction(IEVRTrustedVideoPlugin* This,DWORD dwKPix) {
1877     return This->lpVtbl->SetConstriction(This,dwKPix);
1878 }
1879 static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_DisableImageExport(IEVRTrustedVideoPlugin* This,WINBOOL bDisable) {
1880     return This->lpVtbl->DisableImageExport(This,bDisable);
1881 }
1882 #endif
1883 #endif
1884 
1885 #endif
1886 
1887 
1888 #endif  /* __IEVRTrustedVideoPlugin_INTERFACE_DEFINED__ */
1889 
1890 
1891 HRESULT WINAPI MFCreateVideoPresenter(IUnknown *pOwner, REFIID riidDevice, REFIID riid, void **ppVideoPresenter);
1892 HRESULT WINAPI MFCreateVideoMixer(IUnknown *pOwner, REFIID riidDevice, REFIID riid, void **ppv);
1893 HRESULT WINAPI MFCreateVideoMixerAndPresenter(IUnknown *pMixerOwner, IUnknown *pPresenterOwner, REFIID riidMixer, void **ppvVideoMixer, REFIID riidPresenter, void **ppvVideoPresenter);
1894 HRESULT WINAPI MFCreateVideoRenderer( REFIID riidRenderer, void **ppVideoRenderer );
1895 HRESULT WINAPI MFCreateVideoSampleFromSurface(IUnknown *pUnkSurface, IMFSample **ppSample);
1896 HRESULT WINAPI MFCreateVideoSampleAllocator(REFIID riid, void **ppSampleAllocator);
1897 #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
1898 
1899 /* Begin additional prototypes for all interfaces */
1900 
1901 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
1902 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
1903 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
1904 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
1905 
1906 /* End additional prototypes */
1907 
1908 #ifdef __cplusplus
1909 }
1910 #endif
1911 
1912 #endif /* __evr_h__ */
1913