zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

evr.h (69340B) - Raw


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