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__
  23typedef interface IMFVideoPositionMapper IMFVideoPositionMapper;
  24#ifdef __cplusplus
  25interface IMFVideoPositionMapper;
  26#endif /* __cplusplus */
  27#endif
  28
  29#ifndef __IMFVideoDeviceID_FWD_DEFINED__
  30#define __IMFVideoDeviceID_FWD_DEFINED__
  31typedef interface IMFVideoDeviceID IMFVideoDeviceID;
  32#ifdef __cplusplus
  33interface IMFVideoDeviceID;
  34#endif /* __cplusplus */
  35#endif
  36
  37#ifndef __IMFVideoDisplayControl_FWD_DEFINED__
  38#define __IMFVideoDisplayControl_FWD_DEFINED__
  39typedef interface IMFVideoDisplayControl IMFVideoDisplayControl;
  40#ifdef __cplusplus
  41interface IMFVideoDisplayControl;
  42#endif /* __cplusplus */
  43#endif
  44
  45#ifndef __IMFVideoPresenter_FWD_DEFINED__
  46#define __IMFVideoPresenter_FWD_DEFINED__
  47typedef interface IMFVideoPresenter IMFVideoPresenter;
  48#ifdef __cplusplus
  49interface IMFVideoPresenter;
  50#endif /* __cplusplus */
  51#endif
  52
  53#ifndef __IMFDesiredSample_FWD_DEFINED__
  54#define __IMFDesiredSample_FWD_DEFINED__
  55typedef interface IMFDesiredSample IMFDesiredSample;
  56#ifdef __cplusplus
  57interface IMFDesiredSample;
  58#endif /* __cplusplus */
  59#endif
  60
  61#ifndef __IMFTrackedSample_FWD_DEFINED__
  62#define __IMFTrackedSample_FWD_DEFINED__
  63typedef interface IMFTrackedSample IMFTrackedSample;
  64#ifdef __cplusplus
  65interface IMFTrackedSample;
  66#endif /* __cplusplus */
  67#endif
  68
  69#ifndef __IMFVideoMixerControl_FWD_DEFINED__
  70#define __IMFVideoMixerControl_FWD_DEFINED__
  71typedef interface IMFVideoMixerControl IMFVideoMixerControl;
  72#ifdef __cplusplus
  73interface IMFVideoMixerControl;
  74#endif /* __cplusplus */
  75#endif
  76
  77#ifndef __IMFVideoMixerControl2_FWD_DEFINED__
  78#define __IMFVideoMixerControl2_FWD_DEFINED__
  79typedef interface IMFVideoMixerControl2 IMFVideoMixerControl2;
  80#ifdef __cplusplus
  81interface IMFVideoMixerControl2;
  82#endif /* __cplusplus */
  83#endif
  84
  85#ifndef __IMFVideoRenderer_FWD_DEFINED__
  86#define __IMFVideoRenderer_FWD_DEFINED__
  87typedef interface IMFVideoRenderer IMFVideoRenderer;
  88#ifdef __cplusplus
  89interface IMFVideoRenderer;
  90#endif /* __cplusplus */
  91#endif
  92
  93#ifndef __IEVRFilterConfig_FWD_DEFINED__
  94#define __IEVRFilterConfig_FWD_DEFINED__
  95typedef interface IEVRFilterConfig IEVRFilterConfig;
  96#ifdef __cplusplus
  97interface IEVRFilterConfig;
  98#endif /* __cplusplus */
  99#endif
 100
 101#ifndef __IEVRFilterConfigEx_FWD_DEFINED__
 102#define __IEVRFilterConfigEx_FWD_DEFINED__
 103typedef interface IEVRFilterConfigEx IEVRFilterConfigEx;
 104#ifdef __cplusplus
 105interface IEVRFilterConfigEx;
 106#endif /* __cplusplus */
 107#endif
 108
 109#ifndef __IMFTopologyServiceLookup_FWD_DEFINED__
 110#define __IMFTopologyServiceLookup_FWD_DEFINED__
 111typedef interface IMFTopologyServiceLookup IMFTopologyServiceLookup;
 112#ifdef __cplusplus
 113interface IMFTopologyServiceLookup;
 114#endif /* __cplusplus */
 115#endif
 116
 117#ifndef __IMFTopologyServiceLookupClient_FWD_DEFINED__
 118#define __IMFTopologyServiceLookupClient_FWD_DEFINED__
 119typedef interface IMFTopologyServiceLookupClient IMFTopologyServiceLookupClient;
 120#ifdef __cplusplus
 121interface IMFTopologyServiceLookupClient;
 122#endif /* __cplusplus */
 123#endif
 124
 125#ifndef __IEVRTrustedVideoPlugin_FWD_DEFINED__
 126#define __IEVRTrustedVideoPlugin_FWD_DEFINED__
 127typedef interface IEVRTrustedVideoPlugin IEVRTrustedVideoPlugin;
 128#ifdef __cplusplus
 129interface 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
 143extern "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__
 156typedef interface IMFTrackedSample IMFTrackedSample;
 157#ifdef __cplusplus
 158interface IMFTrackedSample;
 159#endif /* __cplusplus */
 160#endif
 161
 162#ifndef __IMFVideoDisplayControl_FWD_DEFINED__
 163#define __IMFVideoDisplayControl_FWD_DEFINED__
 164typedef interface IMFVideoDisplayControl IMFVideoDisplayControl;
 165#ifdef __cplusplus
 166interface IMFVideoDisplayControl;
 167#endif /* __cplusplus */
 168#endif
 169
 170#ifndef __IMFVideoPresenter_FWD_DEFINED__
 171#define __IMFVideoPresenter_FWD_DEFINED__
 172typedef interface IMFVideoPresenter IMFVideoPresenter;
 173#ifdef __cplusplus
 174interface IMFVideoPresenter;
 175#endif /* __cplusplus */
 176#endif
 177
 178#ifndef __IMFVideoPositionMapper_FWD_DEFINED__
 179#define __IMFVideoPositionMapper_FWD_DEFINED__
 180typedef interface IMFVideoPositionMapper IMFVideoPositionMapper;
 181#ifdef __cplusplus
 182interface IMFVideoPositionMapper;
 183#endif /* __cplusplus */
 184#endif
 185
 186#ifndef __IMFDesiredSample_FWD_DEFINED__
 187#define __IMFDesiredSample_FWD_DEFINED__
 188typedef interface IMFDesiredSample IMFDesiredSample;
 189#ifdef __cplusplus
 190interface IMFDesiredSample;
 191#endif /* __cplusplus */
 192#endif
 193
 194#ifndef __IMFVideoMixerControl_FWD_DEFINED__
 195#define __IMFVideoMixerControl_FWD_DEFINED__
 196typedef interface IMFVideoMixerControl IMFVideoMixerControl;
 197#ifdef __cplusplus
 198interface IMFVideoMixerControl;
 199#endif /* __cplusplus */
 200#endif
 201
 202#ifndef __IMFVideoRenderer_FWD_DEFINED__
 203#define __IMFVideoRenderer_FWD_DEFINED__
 204typedef interface IMFVideoRenderer IMFVideoRenderer;
 205#ifdef __cplusplus
 206interface IMFVideoRenderer;
 207#endif /* __cplusplus */
 208#endif
 209
 210#ifndef __IMFVideoDeviceID_FWD_DEFINED__
 211#define __IMFVideoDeviceID_FWD_DEFINED__
 212typedef interface IMFVideoDeviceID IMFVideoDeviceID;
 213#ifdef __cplusplus
 214interface IMFVideoDeviceID;
 215#endif /* __cplusplus */
 216#endif
 217
 218#ifndef __IEVRFilterConfig_FWD_DEFINED__
 219#define __IEVRFilterConfig_FWD_DEFINED__
 220typedef interface IEVRFilterConfig IEVRFilterConfig;
 221#ifdef __cplusplus
 222interface IEVRFilterConfig;
 223#endif /* __cplusplus */
 224#endif
 225
 226#if defined(__midl)
 227
 228typedef 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
 269typedef 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
 277typedef 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_
 292typedef struct MFVideoNormalizedRect {
 293    float left;
 294    float top;
 295    float right;
 296    float bottom;
 297} MFVideoNormalizedRect;
 298#endif
 299
 300typedef 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
 311typedef 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
 320typedef enum _EVRFilterConfig_Prefs {
 321    EVRFilterConfigPrefs_EnableQoS = 0x1,
 322    EVRFilterConfigPrefs_Mask = 0x1
 323} EVRFilterConfigPrefs;
 324
 325typedef 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
 334DEFINE_GUID(MR_VIDEO_RENDER_SERVICE, 0x1092a86c, 0xab1a, 0x459a, 0xa3, 0x36, 0x83, 0x1f, 0xbc, 0x4d, 0x11, 0xff);
 335DEFINE_GUID(MR_VIDEO_MIXER_SERVICE, 0x73cd2fc, 0x6cf4, 0x40b7, 0x88, 0x59, 0xe8, 0x95, 0x52, 0xc8, 0x41, 0xf8);
 336DEFINE_GUID(MR_VIDEO_ACCELERATION_SERVICE, 0xefef5175, 0x5c7d, 0x4ce2, 0xbb, 0xbd, 0x34, 0xff, 0x8b, 0xca, 0x65, 0x54);
 337DEFINE_GUID(MR_BUFFER_SERVICE, 0xa562248c, 0x9ac6, 0x4ffc, 0x9f, 0xba, 0x3a, 0xf8, 0xf8, 0xad, 0x1a, 0x4d);
 338DEFINE_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
 346DEFINE_GUID(IID_IMFVideoPositionMapper, 0x1f6a9f17, 0xe70b, 0x4e24, 0x8a,0xe4, 0x0b,0x2c,0x3b,0xa7,0xa4,0xae);
 347#if defined(__cplusplus) && !defined(CINTERFACE)
 348MIDL_INTERFACE("1f6a9f17-e70b-4e24-8ae4-0b2c3ba7a4ae")
 349IMFVideoPositionMapper : 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
 364typedef 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
 392interface 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 ***/
 406static inline HRESULT IMFVideoPositionMapper_QueryInterface(IMFVideoPositionMapper* This,REFIID riid,void **ppvObject) {
 407    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 408}
 409static inline ULONG IMFVideoPositionMapper_AddRef(IMFVideoPositionMapper* This) {
 410    return This->lpVtbl->AddRef(This);
 411}
 412static inline ULONG IMFVideoPositionMapper_Release(IMFVideoPositionMapper* This) {
 413    return This->lpVtbl->Release(This);
 414}
 415/*** IMFVideoPositionMapper methods ***/
 416static 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
 434DEFINE_GUID(IID_IMFVideoDeviceID, 0xa38d9567, 0x5a9c, 0x4f3c, 0xb2,0x93, 0x8e,0xb4,0x15,0xb2,0x79,0xba);
 435#if defined(__cplusplus) && !defined(CINTERFACE)
 436MIDL_INTERFACE("a38d9567-5a9c-4f3c-b293-8eb415b279ba")
 437IMFVideoDeviceID : 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
 447typedef 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
 470interface 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 ***/
 484static inline HRESULT IMFVideoDeviceID_QueryInterface(IMFVideoDeviceID* This,REFIID riid,void **ppvObject) {
 485    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 486}
 487static inline ULONG IMFVideoDeviceID_AddRef(IMFVideoDeviceID* This) {
 488    return This->lpVtbl->AddRef(This);
 489}
 490static inline ULONG IMFVideoDeviceID_Release(IMFVideoDeviceID* This) {
 491    return This->lpVtbl->Release(This);
 492}
 493/*** IMFVideoDeviceID methods ***/
 494static 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
 512DEFINE_GUID(IID_IMFVideoDisplayControl, 0xa490b1e4, 0xab84, 0x4d31, 0xa1,0xb2, 0x18,0x1e,0x03,0xb1,0x07,0x7a);
 513#if defined(__cplusplus) && !defined(CINTERFACE)
 514MIDL_INTERFACE("a490b1e4-ab84-4d31-a1b2-181e03b1077a")
 515IMFVideoDisplayControl : 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
 577typedef 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
 666interface 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 ***/
 695static inline HRESULT IMFVideoDisplayControl_QueryInterface(IMFVideoDisplayControl* This,REFIID riid,void **ppvObject) {
 696    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 697}
 698static inline ULONG IMFVideoDisplayControl_AddRef(IMFVideoDisplayControl* This) {
 699    return This->lpVtbl->AddRef(This);
 700}
 701static inline ULONG IMFVideoDisplayControl_Release(IMFVideoDisplayControl* This) {
 702    return This->lpVtbl->Release(This);
 703}
 704/*** IMFVideoDisplayControl methods ***/
 705static inline HRESULT IMFVideoDisplayControl_GetNativeVideoSize(IMFVideoDisplayControl* This,SIZE *pszVideo,SIZE *pszARVideo) {
 706    return This->lpVtbl->GetNativeVideoSize(This,pszVideo,pszARVideo);
 707}
 708static inline HRESULT IMFVideoDisplayControl_GetIdealVideoSize(IMFVideoDisplayControl* This,SIZE *pszMin,SIZE *pszMax) {
 709    return This->lpVtbl->GetIdealVideoSize(This,pszMin,pszMax);
 710}
 711static inline HRESULT IMFVideoDisplayControl_SetVideoPosition(IMFVideoDisplayControl* This,const MFVideoNormalizedRect *pnrcSource,const LPRECT prcDest) {
 712    return This->lpVtbl->SetVideoPosition(This,pnrcSource,prcDest);
 713}
 714static inline HRESULT IMFVideoDisplayControl_GetVideoPosition(IMFVideoDisplayControl* This,MFVideoNormalizedRect *pnrcSource,LPRECT prcDest) {
 715    return This->lpVtbl->GetVideoPosition(This,pnrcSource,prcDest);
 716}
 717static inline HRESULT IMFVideoDisplayControl_SetAspectRatioMode(IMFVideoDisplayControl* This,DWORD dwAspectRatioMode) {
 718    return This->lpVtbl->SetAspectRatioMode(This,dwAspectRatioMode);
 719}
 720static inline HRESULT IMFVideoDisplayControl_GetAspectRatioMode(IMFVideoDisplayControl* This,DWORD *pdwAspectRatioMode) {
 721    return This->lpVtbl->GetAspectRatioMode(This,pdwAspectRatioMode);
 722}
 723static inline HRESULT IMFVideoDisplayControl_SetVideoWindow(IMFVideoDisplayControl* This,HWND hwndVideo) {
 724    return This->lpVtbl->SetVideoWindow(This,hwndVideo);
 725}
 726static inline HRESULT IMFVideoDisplayControl_GetVideoWindow(IMFVideoDisplayControl* This,HWND *phwndVideo) {
 727    return This->lpVtbl->GetVideoWindow(This,phwndVideo);
 728}
 729static inline HRESULT IMFVideoDisplayControl_RepaintVideo(IMFVideoDisplayControl* This) {
 730    return This->lpVtbl->RepaintVideo(This);
 731}
 732static 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}
 735static inline HRESULT IMFVideoDisplayControl_SetBorderColor(IMFVideoDisplayControl* This,COLORREF Clr) {
 736    return This->lpVtbl->SetBorderColor(This,Clr);
 737}
 738static inline HRESULT IMFVideoDisplayControl_GetBorderColor(IMFVideoDisplayControl* This,COLORREF *pClr) {
 739    return This->lpVtbl->GetBorderColor(This,pClr);
 740}
 741static inline HRESULT IMFVideoDisplayControl_SetRenderingPrefs(IMFVideoDisplayControl* This,DWORD dwRenderFlags) {
 742    return This->lpVtbl->SetRenderingPrefs(This,dwRenderFlags);
 743}
 744static inline HRESULT IMFVideoDisplayControl_GetRenderingPrefs(IMFVideoDisplayControl* This,DWORD *pdwRenderFlags) {
 745    return This->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags);
 746}
 747static inline HRESULT IMFVideoDisplayControl_SetFullscreen(IMFVideoDisplayControl* This,WINBOOL fFullscreen) {
 748    return This->lpVtbl->SetFullscreen(This,fFullscreen);
 749}
 750static 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
 768DEFINE_GUID(IID_IMFVideoPresenter, 0x29aff080, 0x182a, 0x4a5d, 0xaf,0x3b, 0x44,0x8f,0x3a,0x63,0x46,0xcb);
 769#if defined(__cplusplus) && !defined(CINTERFACE)
 770MIDL_INTERFACE("29aff080-182a-4a5d-af3b-448f3a6346cb")
 771IMFVideoPresenter : 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
 785typedef 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
 836interface 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 ***/
 857static inline HRESULT IMFVideoPresenter_QueryInterface(IMFVideoPresenter* This,REFIID riid,void **ppvObject) {
 858    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 859}
 860static inline ULONG IMFVideoPresenter_AddRef(IMFVideoPresenter* This) {
 861    return This->lpVtbl->AddRef(This);
 862}
 863static inline ULONG IMFVideoPresenter_Release(IMFVideoPresenter* This) {
 864    return This->lpVtbl->Release(This);
 865}
 866/*** IMFClockStateSink methods ***/
 867static inline HRESULT IMFVideoPresenter_OnClockStart(IMFVideoPresenter* This,MFTIME hnsSystemTime,LONGLONG llClockStartOffset) {
 868    return This->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset);
 869}
 870static inline HRESULT IMFVideoPresenter_OnClockStop(IMFVideoPresenter* This,MFTIME hnsSystemTime) {
 871    return This->lpVtbl->OnClockStop(This,hnsSystemTime);
 872}
 873static inline HRESULT IMFVideoPresenter_OnClockPause(IMFVideoPresenter* This,MFTIME hnsSystemTime) {
 874    return This->lpVtbl->OnClockPause(This,hnsSystemTime);
 875}
 876static inline HRESULT IMFVideoPresenter_OnClockRestart(IMFVideoPresenter* This,MFTIME hnsSystemTime) {
 877    return This->lpVtbl->OnClockRestart(This,hnsSystemTime);
 878}
 879static inline HRESULT IMFVideoPresenter_OnClockSetRate(IMFVideoPresenter* This,MFTIME hnsSystemTime,float flRate) {
 880    return This->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate);
 881}
 882/*** IMFVideoPresenter methods ***/
 883static inline HRESULT IMFVideoPresenter_ProcessMessage(IMFVideoPresenter* This,MFVP_MESSAGE_TYPE eMessage,ULONG_PTR ulParam) {
 884    return This->lpVtbl->ProcessMessage(This,eMessage,ulParam);
 885}
 886static 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
 904DEFINE_GUID(IID_IMFDesiredSample, 0x56c294d0, 0x753e, 0x4260, 0x8d,0x61, 0xa3,0xd8,0x82,0x0b,0x1d,0x54);
 905#if defined(__cplusplus) && !defined(CINTERFACE)
 906MIDL_INTERFACE("56c294d0-753e-4260-8d61-a3d8820b1d54")
 907IMFDesiredSample : 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
 925typedef 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
 957interface 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 ***/
 973static inline HRESULT IMFDesiredSample_QueryInterface(IMFDesiredSample* This,REFIID riid,void **ppvObject) {
 974    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 975}
 976static inline ULONG IMFDesiredSample_AddRef(IMFDesiredSample* This) {
 977    return This->lpVtbl->AddRef(This);
 978}
 979static inline ULONG IMFDesiredSample_Release(IMFDesiredSample* This) {
 980    return This->lpVtbl->Release(This);
 981}
 982/*** IMFDesiredSample methods ***/
 983static inline HRESULT IMFDesiredSample_GetDesiredSampleTimeAndDuration(IMFDesiredSample* This,LONGLONG *phnsSampleTime,LONGLONG *phnsSampleDuration) {
 984    return This->lpVtbl->GetDesiredSampleTimeAndDuration(This,phnsSampleTime,phnsSampleDuration);
 985}
 986static inline void IMFDesiredSample_SetDesiredSampleTimeAndDuration(IMFDesiredSample* This,LONGLONG hnsSampleTime,LONGLONG hnsSampleDuration) {
 987    This->lpVtbl->SetDesiredSampleTimeAndDuration(This,hnsSampleTime,hnsSampleDuration);
 988}
 989static 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
1007DEFINE_GUID(IID_IMFTrackedSample, 0x245bf8e9, 0x0755, 0x40f7, 0x88,0xa5, 0xae,0x0f,0x18,0xd5,0x5e,0x17);
1008#if defined(__cplusplus) && !defined(CINTERFACE)
1009MIDL_INTERFACE("245bf8e9-0755-40f7-88a5-ae0f18d55e17")
1010IMFTrackedSample : 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
1021typedef 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
1045interface 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 ***/
1059static inline HRESULT IMFTrackedSample_QueryInterface(IMFTrackedSample* This,REFIID riid,void **ppvObject) {
1060    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1061}
1062static inline ULONG IMFTrackedSample_AddRef(IMFTrackedSample* This) {
1063    return This->lpVtbl->AddRef(This);
1064}
1065static inline ULONG IMFTrackedSample_Release(IMFTrackedSample* This) {
1066    return This->lpVtbl->Release(This);
1067}
1068/*** IMFTrackedSample methods ***/
1069static 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
1087DEFINE_GUID(IID_IMFVideoMixerControl, 0xa5c6c53f, 0xc202, 0x4aa5, 0x96,0x95, 0x17,0x5b,0xa8,0xc5,0x08,0xa5);
1088#if defined(__cplusplus) && !defined(CINTERFACE)
1089MIDL_INTERFACE("a5c6c53f-c202-4aa5-9695-175ba8c508a5")
1090IMFVideoMixerControl : 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
1113typedef 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
1152interface 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 ***/
1169static inline HRESULT IMFVideoMixerControl_QueryInterface(IMFVideoMixerControl* This,REFIID riid,void **ppvObject) {
1170    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1171}
1172static inline ULONG IMFVideoMixerControl_AddRef(IMFVideoMixerControl* This) {
1173    return This->lpVtbl->AddRef(This);
1174}
1175static inline ULONG IMFVideoMixerControl_Release(IMFVideoMixerControl* This) {
1176    return This->lpVtbl->Release(This);
1177}
1178/*** IMFVideoMixerControl methods ***/
1179static inline HRESULT IMFVideoMixerControl_SetStreamZOrder(IMFVideoMixerControl* This,DWORD dwStreamID,DWORD dwZ) {
1180    return This->lpVtbl->SetStreamZOrder(This,dwStreamID,dwZ);
1181}
1182static inline HRESULT IMFVideoMixerControl_GetStreamZOrder(IMFVideoMixerControl* This,DWORD dwStreamID,DWORD *pdwZ) {
1183    return This->lpVtbl->GetStreamZOrder(This,dwStreamID,pdwZ);
1184}
1185static inline HRESULT IMFVideoMixerControl_SetStreamOutputRect(IMFVideoMixerControl* This,DWORD dwStreamID,const MFVideoNormalizedRect *pnrcOutput) {
1186    return This->lpVtbl->SetStreamOutputRect(This,dwStreamID,pnrcOutput);
1187}
1188static 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
1206DEFINE_GUID(IID_IMFVideoMixerControl2, 0x8459616d, 0x966e, 0x4930, 0xb6,0x58, 0x54,0xfa,0x7e,0x5a,0x16,0xd3);
1207#if defined(__cplusplus) && !defined(CINTERFACE)
1208MIDL_INTERFACE("8459616d-966e-4930-b658-54fa7e5a16d3")
1209IMFVideoMixerControl2 : 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
1222typedef 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
1270interface 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 ***/
1290static inline HRESULT IMFVideoMixerControl2_QueryInterface(IMFVideoMixerControl2* This,REFIID riid,void **ppvObject) {
1291    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1292}
1293static inline ULONG IMFVideoMixerControl2_AddRef(IMFVideoMixerControl2* This) {
1294    return This->lpVtbl->AddRef(This);
1295}
1296static inline ULONG IMFVideoMixerControl2_Release(IMFVideoMixerControl2* This) {
1297    return This->lpVtbl->Release(This);
1298}
1299/*** IMFVideoMixerControl methods ***/
1300static inline HRESULT IMFVideoMixerControl2_SetStreamZOrder(IMFVideoMixerControl2* This,DWORD dwStreamID,DWORD dwZ) {
1301    return This->lpVtbl->SetStreamZOrder(This,dwStreamID,dwZ);
1302}
1303static inline HRESULT IMFVideoMixerControl2_GetStreamZOrder(IMFVideoMixerControl2* This,DWORD dwStreamID,DWORD *pdwZ) {
1304    return This->lpVtbl->GetStreamZOrder(This,dwStreamID,pdwZ);
1305}
1306static inline HRESULT IMFVideoMixerControl2_SetStreamOutputRect(IMFVideoMixerControl2* This,DWORD dwStreamID,const MFVideoNormalizedRect *pnrcOutput) {
1307    return This->lpVtbl->SetStreamOutputRect(This,dwStreamID,pnrcOutput);
1308}
1309static inline HRESULT IMFVideoMixerControl2_GetStreamOutputRect(IMFVideoMixerControl2* This,DWORD dwStreamID,MFVideoNormalizedRect *pnrcOutput) {
1310    return This->lpVtbl->GetStreamOutputRect(This,dwStreamID,pnrcOutput);
1311}
1312/*** IMFVideoMixerControl2 methods ***/
1313static inline HRESULT IMFVideoMixerControl2_SetMixingPrefs(IMFVideoMixerControl2* This,DWORD dwMixFlags) {
1314    return This->lpVtbl->SetMixingPrefs(This,dwMixFlags);
1315}
1316static 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
1334DEFINE_GUID(IID_IMFVideoRenderer, 0xdfdfd197, 0xa9ca, 0x43d8, 0xb3,0x41, 0x6a,0xf3,0x50,0x37,0x92,0xcd);
1335#if defined(__cplusplus) && !defined(CINTERFACE)
1336MIDL_INTERFACE("dfdfd197-a9ca-43d8-b341-6af3503792cd")
1337IMFVideoRenderer : 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
1348typedef 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
1372interface 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 ***/
1386static inline HRESULT IMFVideoRenderer_QueryInterface(IMFVideoRenderer* This,REFIID riid,void **ppvObject) {
1387    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1388}
1389static inline ULONG IMFVideoRenderer_AddRef(IMFVideoRenderer* This) {
1390    return This->lpVtbl->AddRef(This);
1391}
1392static inline ULONG IMFVideoRenderer_Release(IMFVideoRenderer* This) {
1393    return This->lpVtbl->Release(This);
1394}
1395/*** IMFVideoRenderer methods ***/
1396static 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
1414DEFINE_GUID(IID_IEVRFilterConfig, 0x83e91e85, 0x82c1, 0x4ea7, 0x80,0x1d, 0x85,0xdc,0x50,0xb7,0x50,0x86);
1415#if defined(__cplusplus) && !defined(CINTERFACE)
1416MIDL_INTERFACE("83e91e85-82c1-4ea7-801d-85dc50b75086")
1417IEVRFilterConfig : 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
1430typedef 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
1457interface 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 ***/
1472static inline HRESULT IEVRFilterConfig_QueryInterface(IEVRFilterConfig* This,REFIID riid,void **ppvObject) {
1473    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1474}
1475static inline ULONG IEVRFilterConfig_AddRef(IEVRFilterConfig* This) {
1476    return This->lpVtbl->AddRef(This);
1477}
1478static inline ULONG IEVRFilterConfig_Release(IEVRFilterConfig* This) {
1479    return This->lpVtbl->Release(This);
1480}
1481/*** IEVRFilterConfig methods ***/
1482static inline HRESULT IEVRFilterConfig_SetNumberOfStreams(IEVRFilterConfig* This,DWORD dwMaxStreams) {
1483    return This->lpVtbl->SetNumberOfStreams(This,dwMaxStreams);
1484}
1485static 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
1503DEFINE_GUID(IID_IEVRFilterConfigEx, 0xaea36028, 0x796d, 0x454f, 0xbe,0xee, 0xb4,0x80,0x71,0xe2,0x43,0x04);
1504#if defined(__cplusplus) && !defined(CINTERFACE)
1505MIDL_INTERFACE("aea36028-796d-454f-beee-b48071e24304")
1506IEVRFilterConfigEx : 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
1519typedef 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
1555interface 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 ***/
1573static inline HRESULT IEVRFilterConfigEx_QueryInterface(IEVRFilterConfigEx* This,REFIID riid,void **ppvObject) {
1574    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1575}
1576static inline ULONG IEVRFilterConfigEx_AddRef(IEVRFilterConfigEx* This) {
1577    return This->lpVtbl->AddRef(This);
1578}
1579static inline ULONG IEVRFilterConfigEx_Release(IEVRFilterConfigEx* This) {
1580    return This->lpVtbl->Release(This);
1581}
1582/*** IEVRFilterConfig methods ***/
1583static inline HRESULT IEVRFilterConfigEx_SetNumberOfStreams(IEVRFilterConfigEx* This,DWORD dwMaxStreams) {
1584    return This->lpVtbl->SetNumberOfStreams(This,dwMaxStreams);
1585}
1586static inline HRESULT IEVRFilterConfigEx_GetNumberOfStreams(IEVRFilterConfigEx* This,DWORD *pdwMaxStreams) {
1587    return This->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams);
1588}
1589/*** IEVRFilterConfigEx methods ***/
1590static inline HRESULT IEVRFilterConfigEx_SetConfigPrefs(IEVRFilterConfigEx* This,DWORD dwConfigFlags) {
1591    return This->lpVtbl->SetConfigPrefs(This,dwConfigFlags);
1592}
1593static 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
1611DEFINE_GUID(IID_IMFTopologyServiceLookup, 0xfa993889, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7);
1612#if defined(__cplusplus) && !defined(CINTERFACE)
1613MIDL_INTERFACE("fa993889-4383-415a-a930-dd472a8cf6f7")
1614IMFTopologyServiceLookup : 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
1629typedef 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
1657interface 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 ***/
1671static inline HRESULT IMFTopologyServiceLookup_QueryInterface(IMFTopologyServiceLookup* This,REFIID riid,void **ppvObject) {
1672    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1673}
1674static inline ULONG IMFTopologyServiceLookup_AddRef(IMFTopologyServiceLookup* This) {
1675    return This->lpVtbl->AddRef(This);
1676}
1677static inline ULONG IMFTopologyServiceLookup_Release(IMFTopologyServiceLookup* This) {
1678    return This->lpVtbl->Release(This);
1679}
1680/*** IMFTopologyServiceLookup methods ***/
1681static 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
1699DEFINE_GUID(IID_IMFTopologyServiceLookupClient, 0xfa99388a, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7);
1700#if defined(__cplusplus) && !defined(CINTERFACE)
1701MIDL_INTERFACE("fa99388a-4383-415a-a930-dd472a8cf6f7")
1702IMFTopologyServiceLookupClient : 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
1715typedef 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
1741interface 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 ***/
1756static inline HRESULT IMFTopologyServiceLookupClient_QueryInterface(IMFTopologyServiceLookupClient* This,REFIID riid,void **ppvObject) {
1757    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1758}
1759static inline ULONG IMFTopologyServiceLookupClient_AddRef(IMFTopologyServiceLookupClient* This) {
1760    return This->lpVtbl->AddRef(This);
1761}
1762static inline ULONG IMFTopologyServiceLookupClient_Release(IMFTopologyServiceLookupClient* This) {
1763    return This->lpVtbl->Release(This);
1764}
1765/*** IMFTopologyServiceLookupClient methods ***/
1766static inline HRESULT IMFTopologyServiceLookupClient_InitServicePointers(IMFTopologyServiceLookupClient* This,IMFTopologyServiceLookup *pLookup) {
1767    return This->lpVtbl->InitServicePointers(This,pLookup);
1768}
1769static 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
1787DEFINE_GUID(IID_IEVRTrustedVideoPlugin, 0x83a4ce40, 0x7710, 0x494b, 0xa8,0x93, 0xa4,0x72,0x04,0x9a,0xf6,0x30);
1788#if defined(__cplusplus) && !defined(CINTERFACE)
1789MIDL_INTERFACE("83a4ce40-7710-494b-a893-a472049af630")
1790IEVRTrustedVideoPlugin : 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
1809typedef 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
1844interface 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 ***/
1861static inline HRESULT IEVRTrustedVideoPlugin_QueryInterface(IEVRTrustedVideoPlugin* This,REFIID riid,void **ppvObject) {
1862    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1863}
1864static inline ULONG IEVRTrustedVideoPlugin_AddRef(IEVRTrustedVideoPlugin* This) {
1865    return This->lpVtbl->AddRef(This);
1866}
1867static inline ULONG IEVRTrustedVideoPlugin_Release(IEVRTrustedVideoPlugin* This) {
1868    return This->lpVtbl->Release(This);
1869}
1870/*** IEVRTrustedVideoPlugin methods ***/
1871static inline HRESULT IEVRTrustedVideoPlugin_IsInTrustedVideoMode(IEVRTrustedVideoPlugin* This,WINBOOL *pYes) {
1872    return This->lpVtbl->IsInTrustedVideoMode(This,pYes);
1873}
1874static inline HRESULT IEVRTrustedVideoPlugin_CanConstrict(IEVRTrustedVideoPlugin* This,WINBOOL *pYes) {
1875    return This->lpVtbl->CanConstrict(This,pYes);
1876}
1877static inline HRESULT IEVRTrustedVideoPlugin_SetConstriction(IEVRTrustedVideoPlugin* This,DWORD dwKPix) {
1878    return This->lpVtbl->SetConstriction(This,dwKPix);
1879}
1880static 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
1892HRESULT WINAPI MFCreateVideoPresenter(IUnknown *pOwner, REFIID riidDevice, REFIID riid, void **ppVideoPresenter);
1893HRESULT WINAPI MFCreateVideoMixer(IUnknown *pOwner, REFIID riidDevice, REFIID riid, void **ppv);
1894HRESULT WINAPI MFCreateVideoMixerAndPresenter(IUnknown *pMixerOwner, IUnknown *pPresenterOwner, REFIID riidMixer, void **ppvVideoMixer, REFIID riidPresenter, void **ppvVideoPresenter);
1895HRESULT WINAPI MFCreateVideoRenderer( REFIID riidRenderer, void **ppVideoRenderer );
1896HRESULT WINAPI MFCreateVideoSampleFromSurface(IUnknown *pUnkSurface, IMFSample **ppSample);
1897HRESULT WINAPI MFCreateVideoSampleAllocator(REFIID riid, void **ppSampleAllocator);
1898#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
1899
1900/* Begin additional prototypes for all interfaces */
1901
1902ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
1903unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
1904unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
1905void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
1906
1907/* End additional prototypes */
1908
1909#ifdef __cplusplus
1910}
1911#endif
1912
1913#endif /* __evr_h__ */