diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am index 68102d1fb..10f760f62 100644 --- a/mingw-w64-headers/Makefile.am +++ b/mingw-w64-headers/Makefile.am @@ -94,6 +94,7 @@ IDL_SRCS = \ include/drmexternals.idl \ include/dxva2api.idl \ include/endpointvolume.idl \ + include/evr.idl \ include/exdisp.idl \ include/filter.idl \ include/fsrm.idl \ diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in index 73d901788..c0f1cb4b8 100644 --- a/mingw-w64-headers/Makefile.in +++ b/mingw-w64-headers/Makefile.in @@ -395,6 +395,7 @@ EXTRA_HEADERS = \ @HAVE_WIDL_TRUE@ include/drmexternals.idl \ @HAVE_WIDL_TRUE@ include/dxva2api.idl \ @HAVE_WIDL_TRUE@ include/endpointvolume.idl \ +@HAVE_WIDL_TRUE@ include/evr.idl \ @HAVE_WIDL_TRUE@ include/exdisp.idl \ @HAVE_WIDL_TRUE@ include/filter.idl \ @HAVE_WIDL_TRUE@ include/fsrm.idl \ diff --git a/mingw-w64-headers/include/evr.h b/mingw-w64-headers/include/evr.h index 7729ae15e..cf8d4fc04 100644 --- a/mingw-w64-headers/include/evr.h +++ b/mingw-w64-headers/include/evr.h @@ -1,323 +1,1912 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#ifndef _INC_EVR -#define _INC_EVR +/*** Autogenerated by WIDL 3.1 from include/evr.idl - Do not edit ***/ -#if (_WIN32_WINNT >= 0x0600) +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif + +#include +#include + +#ifndef COM_NO_WINDOWS_H +#include +#include +#endif + +#ifndef __evr_h__ +#define __evr_h__ + +/* Forward declarations */ + +#ifndef __IMFVideoPositionMapper_FWD_DEFINED__ +#define __IMFVideoPositionMapper_FWD_DEFINED__ +typedef interface IMFVideoPositionMapper IMFVideoPositionMapper; +#ifdef __cplusplus +interface IMFVideoPositionMapper; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoDeviceID_FWD_DEFINED__ +#define __IMFVideoDeviceID_FWD_DEFINED__ +typedef interface IMFVideoDeviceID IMFVideoDeviceID; +#ifdef __cplusplus +interface IMFVideoDeviceID; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoDisplayControl_FWD_DEFINED__ +#define __IMFVideoDisplayControl_FWD_DEFINED__ +typedef interface IMFVideoDisplayControl IMFVideoDisplayControl; +#ifdef __cplusplus +interface IMFVideoDisplayControl; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoPresenter_FWD_DEFINED__ +#define __IMFVideoPresenter_FWD_DEFINED__ +typedef interface IMFVideoPresenter IMFVideoPresenter; +#ifdef __cplusplus +interface IMFVideoPresenter; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFDesiredSample_FWD_DEFINED__ +#define __IMFDesiredSample_FWD_DEFINED__ +typedef interface IMFDesiredSample IMFDesiredSample; +#ifdef __cplusplus +interface IMFDesiredSample; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFTrackedSample_FWD_DEFINED__ +#define __IMFTrackedSample_FWD_DEFINED__ +typedef interface IMFTrackedSample IMFTrackedSample; +#ifdef __cplusplus +interface IMFTrackedSample; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoMixerControl_FWD_DEFINED__ +#define __IMFVideoMixerControl_FWD_DEFINED__ +typedef interface IMFVideoMixerControl IMFVideoMixerControl; +#ifdef __cplusplus +interface IMFVideoMixerControl; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoMixerControl2_FWD_DEFINED__ +#define __IMFVideoMixerControl2_FWD_DEFINED__ +typedef interface IMFVideoMixerControl2 IMFVideoMixerControl2; +#ifdef __cplusplus +interface IMFVideoMixerControl2; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoRenderer_FWD_DEFINED__ +#define __IMFVideoRenderer_FWD_DEFINED__ +typedef interface IMFVideoRenderer IMFVideoRenderer; +#ifdef __cplusplus +interface IMFVideoRenderer; +#endif /* __cplusplus */ +#endif + +#ifndef __IEVRFilterConfig_FWD_DEFINED__ +#define __IEVRFilterConfig_FWD_DEFINED__ +typedef interface IEVRFilterConfig IEVRFilterConfig; +#ifdef __cplusplus +interface IEVRFilterConfig; +#endif /* __cplusplus */ +#endif + +#ifndef __IEVRFilterConfigEx_FWD_DEFINED__ +#define __IEVRFilterConfigEx_FWD_DEFINED__ +typedef interface IEVRFilterConfigEx IEVRFilterConfigEx; +#ifdef __cplusplus +interface IEVRFilterConfigEx; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFTopologyServiceLookup_FWD_DEFINED__ +#define __IMFTopologyServiceLookup_FWD_DEFINED__ +typedef interface IMFTopologyServiceLookup IMFTopologyServiceLookup; +#ifdef __cplusplus +interface IMFTopologyServiceLookup; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFTopologyServiceLookupClient_FWD_DEFINED__ +#define __IMFTopologyServiceLookupClient_FWD_DEFINED__ +typedef interface IMFTopologyServiceLookupClient IMFTopologyServiceLookupClient; +#ifdef __cplusplus +interface IMFTopologyServiceLookupClient; +#endif /* __cplusplus */ +#endif + +#ifndef __IEVRTrustedVideoPlugin_FWD_DEFINED__ +#define __IEVRTrustedVideoPlugin_FWD_DEFINED__ +typedef interface IEVRTrustedVideoPlugin IEVRTrustedVideoPlugin; +#ifdef __cplusplus +interface IEVRTrustedVideoPlugin; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include +#include +#include +#include +#include +#include #ifdef __cplusplus extern "C" { #endif -DEFINE_GUID(MR_VIDEO_RENDER_SERVICE,0x1092a86c,0xab1a,0x459a,0xa3,0x36,0x83,0x1f,0xbc,0x4d,0x11,0xff); -DEFINE_GUID(MR_VIDEO_MIXER_SERVICE,0x73cd2fc,0x6cf4,0x40b7,0x88,0x59,0xe8,0x95,0x52,0xc8,0x41,0xf8); -DEFINE_GUID(MR_VIDEO_ACCELERATION_SERVICE,0xefef5175,0x5c7d,0x4ce2,0xbb,0xbd,0x34,0xff,0x8b,0xca,0x65,0x54); -DEFINE_GUID(MR_BUFFER_SERVICE,0xa562248c,0x9ac6,0x4ffc,0x9f,0xba,0x3a,0xf8,0xf8,0xad,0x1a,0x4d); -DEFINE_GUID(VIDEO_ZOOM_RECT,0x7aaa1638,0x1b7f,0x4c93,0xbd,0x89,0x5b,0x9c,0x9f,0xb6,0xfc,0xf0); +/** + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER within this package. + */ -#if (_WIN32_WINNT >= 0x0601) -typedef enum _EVRFilterConfig_Prefs { - EVRFilterConfigPrefs_EnableQoS = 0x00000001, - EVRFilterConfigPrefs_Mask = 0x00000001 -} EVRFilterConfigPrefs; -#endif /*(_WIN32_WINNT >= 0x0601)*/ +#include + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +#ifndef __IMFTrackedSample_FWD_DEFINED__ +#define __IMFTrackedSample_FWD_DEFINED__ +typedef interface IMFTrackedSample IMFTrackedSample; +#ifdef __cplusplus +interface IMFTrackedSample; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoDisplayControl_FWD_DEFINED__ +#define __IMFVideoDisplayControl_FWD_DEFINED__ +typedef interface IMFVideoDisplayControl IMFVideoDisplayControl; +#ifdef __cplusplus +interface IMFVideoDisplayControl; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoPresenter_FWD_DEFINED__ +#define __IMFVideoPresenter_FWD_DEFINED__ +typedef interface IMFVideoPresenter IMFVideoPresenter; +#ifdef __cplusplus +interface IMFVideoPresenter; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoPositionMapper_FWD_DEFINED__ +#define __IMFVideoPositionMapper_FWD_DEFINED__ +typedef interface IMFVideoPositionMapper IMFVideoPositionMapper; +#ifdef __cplusplus +interface IMFVideoPositionMapper; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFDesiredSample_FWD_DEFINED__ +#define __IMFDesiredSample_FWD_DEFINED__ +typedef interface IMFDesiredSample IMFDesiredSample; +#ifdef __cplusplus +interface IMFDesiredSample; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoMixerControl_FWD_DEFINED__ +#define __IMFVideoMixerControl_FWD_DEFINED__ +typedef interface IMFVideoMixerControl IMFVideoMixerControl; +#ifdef __cplusplus +interface IMFVideoMixerControl; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoRenderer_FWD_DEFINED__ +#define __IMFVideoRenderer_FWD_DEFINED__ +typedef interface IMFVideoRenderer IMFVideoRenderer; +#ifdef __cplusplus +interface IMFVideoRenderer; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoDeviceID_FWD_DEFINED__ +#define __IMFVideoDeviceID_FWD_DEFINED__ +typedef interface IMFVideoDeviceID IMFVideoDeviceID; +#ifdef __cplusplus +interface IMFVideoDeviceID; +#endif /* __cplusplus */ +#endif + +#ifndef __IEVRFilterConfig_FWD_DEFINED__ +#define __IEVRFilterConfig_FWD_DEFINED__ +typedef interface IEVRFilterConfig IEVRFilterConfig; +#ifdef __cplusplus +interface IEVRFilterConfig; +#endif /* __cplusplus */ +#endif + +#if defined(__midl) + +typedef enum _D3DFORMAT { + D3DFMT_UNKNOWN = 0, + D3DFMT_R8G8B8 = 20, + D3DFMT_A8R8G8B8 = 21, + D3DFMT_X8R8G8B8 = 22, + D3DFMT_R5G6B5 = 23, + D3DFMT_X1R5G5B5 = 24, + D3DFMT_A1R5G5B5 = 25, + D3DFMT_A4R4G4B4 = 26, + D3DFMT_R3G3B2 = 27, + D3DFMT_A8 = 28, + D3DFMT_A8R3G3B2 = 29, + D3DFMT_X4R4G4B4 = 30, + D3DFMT_A2B10G10R10 = 31, + D3DFMT_G16R16 = 34, + D3DFMT_A8P8 = 40, + D3DFMT_P8 = 41, + D3DFMT_L8 = 50, + D3DFMT_A8L8 = 51, + D3DFMT_A4L4 = 52, + D3DFMT_V8U8 = 60, + D3DFMT_L6V5U5 = 61, + D3DFMT_X8L8V8U8 = 62, + D3DFMT_Q8W8V8U8 = 63, + D3DFMT_V16U16 = 64, + D3DFMT_W11V11U10 = 65, + D3DFMT_A2W10V10U10 = 67, + D3DFMT_D16_LOCKABLE = 70, + D3DFMT_D32 = 71, + D3DFMT_D15S1 = 73, + D3DFMT_D24S8 = 75, + D3DFMT_D16 = 80, + D3DFMT_D24X8 = 77, + D3DFMT_D24X4S4 = 79, + D3DFMT_VERTEXDATA = 100, + D3DFMT_INDEX16 = 101, + D3DFMT_INDEX32 = 102, + D3DFMT_FORCE_DWORD = 0x7fffffff +} D3DFORMAT; +#endif typedef enum MFVideoAspectRatioMode { - MFVideoARMode_None = 0x00000000, - MFVideoARMode_PreservePicture = 0x00000001, - MFVideoARMode_PreservePixel = 0x00000002, - MFVideoARMode_NonLinearStretch = 0x00000004, - MFVideoARMode_Mask = 0x00000007 + MFVideoARMode_None = 0x0, + MFVideoARMode_PreservePicture = 0x1, + MFVideoARMode_PreservePixel = 0x2, + MFVideoARMode_NonLinearStretch = 0x4, + MFVideoARMode_Mask = 0x7 } MFVideoAspectRatioMode; -#if (_WIN32_WINNT >= 0x0601) -typedef enum _MFVideoMixPrefs { - MFVideoMixPrefs_ForceHalfInterlace = 0x00000001, - MFVideoMixPrefs_AllowDropToHalfInterlace = 0x00000002, - MFVideoMixPrefs_AllowDropToBob = 0x00000004, - MFVideoMixPrefs_ForceBob = 0x00000008, - MFVideoMixPrefs_Mask = 0x0000000f -} MFVideoMixPrefs; -#endif /*(_WIN32_WINNT >= 0x0601)*/ - typedef enum MFVideoRenderPrefs { - MFVideoRenderPrefs_DoNotRenderBorder = 0x00000001, - MFVideoRenderPrefs_DoNotClipToDevice = 0x00000002, - MFVideoRenderPrefs_AllowOutputThrottling = 0x00000004, - MFVideoRenderPrefs_ForceOutputThrottling = 0x00000008, - MFVideoRenderPrefs_ForceBatching = 0x00000010, - MFVideoRenderPrefs_AllowBatching = 0x00000020, - MFVideoRenderPrefs_ForceScaling = 0x00000040, - MFVideoRenderPrefs_AllowScaling = 0x00000080, - MFVideoRenderPrefs_DoNotRepaintOnStop = 0x00000100, - MFVideoRenderPrefs_Mask = 0x000001ff + MFVideoRenderPrefs_DoNotRenderBorder = 0x1, + MFVideoRenderPrefs_DoNotClipToDevice = 0x2, + MFVideoRenderPrefs_AllowOutputThrottling = 0x4, + MFVideoRenderPrefs_ForceOutputThrottling = 0x8, + MFVideoRenderPrefs_ForceBatching = 0x10, + MFVideoRenderPrefs_AllowBatching = 0x20, + MFVideoRenderPrefs_ForceScaling = 0x40, + MFVideoRenderPrefs_AllowScaling = 0x80, + MFVideoRenderPrefs_DoNotRepaintOnStop = 0x100, + MFVideoRenderPrefs_Mask = 0x1ff } MFVideoRenderPrefs; -typedef enum _MFVP_MESSAGE_TYPE { - MFVP_MESSAGE_FLUSH = 0x00000000, - MFVP_MESSAGE_INVALIDATEMEDIATYPE = 0x00000001, - MFVP_MESSAGE_PROCESSINPUTNOTIFY = 0x00000002, - MFVP_MESSAGE_BEGINSTREAMING = 0x00000003, - MFVP_MESSAGE_ENDSTREAMING = 0x00000004, - MFVP_MESSAGE_ENDOFSTREAM = 0x00000005, - MFVP_MESSAGE_STEP = 0x00000006, - MFVP_MESSAGE_CANCELSTEP = 0x00000007 +#ifndef _MFVideoNormalizedRect_ +#define _MFVideoNormalizedRect_ +typedef struct MFVideoNormalizedRect { + float left; + float top; + float right; + float bottom; +} MFVideoNormalizedRect; +#endif + +typedef enum MFVP_MESSAGE_TYPE { + MFVP_MESSAGE_FLUSH = 0x0, + MFVP_MESSAGE_INVALIDATEMEDIATYPE = 0x1, + MFVP_MESSAGE_PROCESSINPUTNOTIFY = 0x2, + MFVP_MESSAGE_BEGINSTREAMING = 0x3, + MFVP_MESSAGE_ENDSTREAMING = 0x4, + MFVP_MESSAGE_ENDOFSTREAM = 0x5, + MFVP_MESSAGE_STEP = 0x6, + MFVP_MESSAGE_CANCELSTEP = 0x7 } MFVP_MESSAGE_TYPE; -typedef struct MFVideoNormalizedRect { - float left; - float top; - float right; - float bottom; -} MFVideoNormalizedRect; +typedef enum _MFVideoMixPrefs { + MFVideoMixPrefs_ForceHalfInterlace = 0x1, + MFVideoMixPrefs_AllowDropToHalfInterlace = 0x2, + MFVideoMixPrefs_AllowDropToBob = 0x4, + MFVideoMixPrefs_ForceBob = 0x8, + MFVideoMixPrefs_EnableRotation = 0x10, + MFVideoMixPrefs_Mask = 0x1f +} MFVideoMixPrefs; -#ifdef __cplusplus -} +typedef enum _EVRFilterConfig_Prefs { + EVRFilterConfigPrefs_EnableQoS = 0x1, + EVRFilterConfigPrefs_Mask = 0x1 +} EVRFilterConfigPrefs; + +typedef enum _MF_SERVICE_LOOKUP_TYPE { + MF_SERVICE_LOOKUP_UPSTREAM = 0, + MF_SERVICE_LOOKUP_UPSTREAM_DIRECT = 1, + MF_SERVICE_LOOKUP_DOWNSTREAM = 2, + MF_SERVICE_LOOKUP_DOWNSTREAM_DIRECT = 3, + MF_SERVICE_LOOKUP_ALL = 4, + MF_SERVICE_LOOKUP_GLOBAL = 5 +} MF_SERVICE_LOOKUP_TYPE; + +DEFINE_GUID(MR_VIDEO_RENDER_SERVICE, 0x1092a86c, 0xab1a, 0x459a, 0xa3, 0x36, 0x83, 0x1f, 0xbc, 0x4d, 0x11, 0xff); +DEFINE_GUID(MR_VIDEO_MIXER_SERVICE, 0x73cd2fc, 0x6cf4, 0x40b7, 0x88, 0x59, 0xe8, 0x95, 0x52, 0xc8, 0x41, 0xf8); +DEFINE_GUID(MR_VIDEO_ACCELERATION_SERVICE, 0xefef5175, 0x5c7d, 0x4ce2, 0xbb, 0xbd, 0x34, 0xff, 0x8b, 0xca, 0x65, 0x54); +DEFINE_GUID(MR_BUFFER_SERVICE, 0xa562248c, 0x9ac6, 0x4ffc, 0x9f, 0xba, 0x3a, 0xf8, 0xf8, 0xad, 0x1a, 0x4d); +DEFINE_GUID(VIDEO_ZOOM_RECT, 0x7aaa1638, 0x1b7f, 0x4c93, 0xbd, 0x89, 0x5b, 0x9c, 0x9f, 0xb6, 0xfc, 0xf0); + +/***************************************************************************** + * IMFVideoPositionMapper interface + */ +#ifndef __IMFVideoPositionMapper_INTERFACE_DEFINED__ +#define __IMFVideoPositionMapper_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoPositionMapper, 0x1f6a9f17, 0xe70b, 0x4e24, 0x8a,0xe4, 0x0b,0x2c,0x3b,0xa7,0xa4,0xae); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("1f6a9f17-e70b-4e24-8ae4-0b2c3ba7a4ae") +IMFVideoPositionMapper : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE MapOutputCoordinateToInputStream( + float xOut, + float yOut, + DWORD dwOutputStreamIndex, + DWORD dwInputStreamIndex, + float *pxIn, + float *pyIn) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoPositionMapper, 0x1f6a9f17, 0xe70b, 0x4e24, 0x8a,0xe4, 0x0b,0x2c,0x3b,0xa7,0xa4,0xae) #endif - -#undef INTERFACE -#define INTERFACE IMFVideoPresenter -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IMFVideoPresenter,IMFClockStateSink) -{ +#else +typedef struct IMFVideoPositionMapperVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoPositionMapper *This, + REFIID riid, + void **ppvObject); - /* IMFClockStateSink methods */ - STDMETHOD_(HRESULT,OnClockPause)(THIS_ MFTIME hnsSystemTime) PURE; - STDMETHOD_(HRESULT,OnClockRestart)(THIS_ MFTIME hnsSystemTime) PURE; - STDMETHOD_(HRESULT,OnClockSetRate)(THIS_ MFTIME hnsSystemTime,float flRate) PURE; - STDMETHOD_(HRESULT,OnClockStart)(THIS_ MFTIME hnsSystemTime,LONGLONG llClockStartOffset) PURE; - STDMETHOD_(HRESULT,OnClockStop)(THIS_ MFTIME hnssSystemTime) PURE; + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoPositionMapper *This); - /* IMFVideoPresenter methods */ - STDMETHOD_(HRESULT,GetCurrentMediaType)(THIS_ IMFVideoMediaType **ppMediaType) PURE; - STDMETHOD_(HRESULT,ProcessMessage)(THIS_ MFVP_MESSAGE_TYPE eMessage,ULONG_PTR ulParam) PURE; + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoPositionMapper *This); + + /*** IMFVideoPositionMapper methods ***/ + HRESULT (STDMETHODCALLTYPE *MapOutputCoordinateToInputStream)( + IMFVideoPositionMapper *This, + float xOut, + float yOut, + DWORD dwOutputStreamIndex, + DWORD dwInputStreamIndex, + float *pxIn, + float *pyIn); END_INTERFACE +} IMFVideoPositionMapperVtbl; + +interface IMFVideoPositionMapper { + CONST_VTBL IMFVideoPositionMapperVtbl* lpVtbl; }; #ifdef COBJMACROS -#define IMFVideoPresenter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMFVideoPresenter_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMFVideoPresenter_Release(This) (This)->lpVtbl->Release(This) -#define IMFVideoPresenter_OnClockPause(This,hnsSystemTime) (This)->lpVtbl->OnClockPause(This,hnsSystemTime) -#define IMFVideoPresenter_OnClockRestart(This,hnsSystemTime) (This)->lpVtbl->OnClockRestart(This,hnsSystemTime) -#define IMFVideoPresenter_OnClockSetRate(This,hnsSystemTime,flRate) (This)->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate) -#define IMFVideoPresenter_OnClockStart(This,hnsSystemTime,llClockStartOffset) (This)->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset) -#define IMFVideoPresenter_OnClockStop(This,hnssSystemTime) (This)->lpVtbl->OnClockStop(This,hnssSystemTime) -#define IMFVideoPresenter_GetCurrentMediaType(This,ppMediaType) (This)->lpVtbl->GetCurrentMediaType(This,ppMediaType) -#define IMFVideoPresenter_ProcessMessage(This,eMessage,ulParam) (This)->lpVtbl->ProcessMessage(This,eMessage,ulParam) -#endif /*COBJMACROS*/ - -#undef INTERFACE -#define INTERFACE IMFDesiredSample -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IMFDesiredSample,IUnknown) -{ - BEGIN_INTERFACE - - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IMFDesiredSample methods */ - STDMETHOD(Clear)(THIS) PURE; - STDMETHOD_(HRESULT,GetDesiredSampleTimeAndDuration)(THIS_ LONGLONG *phnsSampleTime,LONGLONG *phnsSampleDuration) PURE; - STDMETHOD(SetDesiredSampleTimeAndDuration)(THIS_ LONGLONG hnsSampleTime,LONGLONG hnsSampleDuration) PURE; - - END_INTERFACE -}; -#ifdef COBJMACROS -#define IMFDesiredSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMFDesiredSample_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMFDesiredSample_Release(This) (This)->lpVtbl->Release(This) -#define IMFDesiredSample_Clear() (This)->lpVtbl->Clear(This) -#define IMFDesiredSample_GetDesiredSampleTimeAndDuration(This,phnsSampleTime,phnsSampleDuration) (This)->lpVtbl->GetDesiredSampleTimeAndDuration(This,phnsSampleTime,phnsSampleDuration) -#define IMFDesiredSample_SetDesiredSampleTimeAndDuration(This,hnsSampleTime,hnsSampleDuration) (This)->lpVtbl->SetDesiredSampleTimeAndDuration(This,hnsSampleTime,hnsSampleDuration) -#endif /*COBJMACROS*/ - -#undef INTERFACE -#define INTERFACE IMFTrackedSample -DECLARE_INTERFACE_(IMFTrackedSample,IUnknown) -{ - BEGIN_INTERFACE - - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IMFTrackedSample methods */ - STDMETHOD_(HRESULT,SetAllocator)(THIS_ IMFAsyncCallback *pSampleAllocator,IUnknown *pUnkState) PURE; - - END_INTERFACE -}; - -#ifdef COBJMACROS -#define IMFTrackedSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMFTrackedSample_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMFTrackedSample_Release(This) (This)->lpVtbl->Release(This) -#define IMFTrackedSample_SetAllocator(This,pSampleAllocator,pUnkState) (This)->lpVtbl->SetAllocator(This,pSampleAllocator,pUnkState) -#endif /*COBJMACROS*/ - -#undef INTERFACE -#define INTERFACE IMFVideoDeviceID -DECLARE_INTERFACE_(IMFVideoDeviceID,IUnknown) -{ - BEGIN_INTERFACE - - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IMFVideoDeviceID methods */ - STDMETHOD_(HRESULT,GetDeviceID)(THIS_ IID *pDeviceID) PURE; - - END_INTERFACE -}; -#ifdef COBJMACROS -#define IMFVideoDeviceID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMFVideoDeviceID_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMFVideoDeviceID_Release(This) (This)->lpVtbl->Release(This) -#define IMFVideoDeviceID_GetDeviceID(This,pDeviceID) (This)->lpVtbl->GetDeviceID(This,pDeviceID) -#endif /*COBJMACROS*/ - -#undef INTERFACE -#define INTERFACE IMFVideoPositionMapper -DECLARE_INTERFACE_(IMFVideoPositionMapper,IUnknown) -{ - BEGIN_INTERFACE - - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IMFVideoPositionMapper methods */ - STDMETHOD_(HRESULT,MapOutputCoordinateToInputStream)(THIS_ float xOut,float yOut,DWORD dwOutputStreamIndex,DWORD dwInputStreamIndex,float *pxIn,float *pyIn) PURE; - - END_INTERFACE -}; -#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IMFVideoPositionMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IMFVideoPositionMapper_AddRef(This) (This)->lpVtbl->AddRef(This) #define IMFVideoPositionMapper_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoPositionMapper methods ***/ #define IMFVideoPositionMapper_MapOutputCoordinateToInputStream(This,xOut,yOut,dwOutputStreamIndex,dwInputStreamIndex,pxIn,pyIn) (This)->lpVtbl->MapOutputCoordinateToInputStream(This,xOut,yOut,dwOutputStreamIndex,dwInputStreamIndex,pxIn,pyIn) -#endif /*COBJMACROS*/ - -#undef INTERFACE -#define INTERFACE IMFVideoRenderer -DECLARE_INTERFACE_(IMFVideoRenderer,IUnknown) -{ - BEGIN_INTERFACE - - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IMFVideoRenderer methods */ - STDMETHOD_(HRESULT,InitializeRenderer)(THIS_ IMFTransform *pVideoMixer,IMFVideoPresenter *pVideoPresenter) PURE; - - END_INTERFACE -}; -#ifdef COBJMACROS -#define IMFVideoRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMFVideoRenderer_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMFVideoRenderer_Release(This) (This)->lpVtbl->Release(This) -#define IMFVideoRenderer_InitializeRenderer(This,pVideoMixer,pVideoPresenter) (This)->lpVtbl->InitializeRenderer(This,pVideoMixer,pVideoPresenter) -#endif /*COBJMACROS*/ - -#undef INTERFACE -#define INTERFACE IMFVideoDisplayControl -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoPositionMapper_QueryInterface(IMFVideoPositionMapper* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoPositionMapper_AddRef(IMFVideoPositionMapper* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoPositionMapper_Release(IMFVideoPositionMapper* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoPositionMapper methods ***/ +static FORCEINLINE HRESULT IMFVideoPositionMapper_MapOutputCoordinateToInputStream(IMFVideoPositionMapper* This,float xOut,float yOut,DWORD dwOutputStreamIndex,DWORD dwInputStreamIndex,float *pxIn,float *pyIn) { + return This->lpVtbl->MapOutputCoordinateToInputStream(This,xOut,yOut,dwOutputStreamIndex,dwInputStreamIndex,pxIn,pyIn); +} #endif -DECLARE_INTERFACE_(IMFVideoDisplayControl,IUnknown) +#endif + +#endif + + +#endif /* __IMFVideoPositionMapper_INTERFACE_DEFINED__ */ + + +/***************************************************************************** + * IMFVideoDeviceID interface + */ +#ifndef __IMFVideoDeviceID_INTERFACE_DEFINED__ +#define __IMFVideoDeviceID_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoDeviceID, 0xa38d9567, 0x5a9c, 0x4f3c, 0xb2,0x93, 0x8e,0xb4,0x15,0xb2,0x79,0xba); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a38d9567-5a9c-4f3c-b293-8eb415b279ba") +IMFVideoDeviceID : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE GetDeviceID( + IID *pDeviceID) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoDeviceID, 0xa38d9567, 0x5a9c, 0x4f3c, 0xb2,0x93, 0x8e,0xb4,0x15,0xb2,0x79,0xba) +#endif +#else +typedef struct IMFVideoDeviceIDVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoDeviceID *This, + REFIID riid, + void **ppvObject); - /* IMFVideoDisplayControl methods */ - STDMETHOD_(HRESULT,GetAspectRatioMode)(THIS_ DWORD *pdwAspectRatioMode) PURE; - STDMETHOD_(HRESULT,GetBorderColor)(THIS_ COLORREF *pClr) PURE; - STDMETHOD_(HRESULT,GetCurrentImage)(THIS_ LONGLONG *pTimeStamp) PURE; - STDMETHOD_(HRESULT,GetFullscreen)(THIS_ BOOL *pfFullscreen) PURE; - STDMETHOD_(HRESULT,GetIdealVideoSize)(THIS_ SIZE *pszMax) PURE; - STDMETHOD_(HRESULT,GetNativeVideoSize)(THIS_ SIZE *pszARVideo) PURE; - STDMETHOD_(HRESULT,GetRenderingPrefs)(THIS_ DWORD *pdwRenderFlags) PURE; - STDMETHOD_(HRESULT,GetVideoPosition)(THIS_ MFVideoNormalizedRect *pnrcSource,LPRECT prcDest) PURE; - STDMETHOD_(HRESULT,GetVideoWindow)(THIS_ HWND *phwndVideo) PURE; - STDMETHOD_(HRESULT,RepaintVideo)(THIS) PURE; - STDMETHOD_(HRESULT,SetAspectRatioMode)(THIS_ DWORD dwAspectRatioMode) PURE; - STDMETHOD_(HRESULT,SetBorderColor)(THIS_ COLORREF Clr) PURE; - STDMETHOD_(HRESULT,SetFullscreen)(THIS_ BOOL fFullscreen) PURE; - STDMETHOD_(HRESULT,SetRenderingPrefs)(THIS_ DWORD dwRenderFlags) PURE; - STDMETHOD_(HRESULT,SetVideoPosition)(THIS_ const MFVideoNormalizedRect *pnrcSource,const LPRECT prcDest) PURE; - STDMETHOD_(HRESULT,SetVideoWindow)(THIS_ HWND hwndVideo) PURE; + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoDeviceID *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoDeviceID *This); + + /*** IMFVideoDeviceID methods ***/ + HRESULT (STDMETHODCALLTYPE *GetDeviceID)( + IMFVideoDeviceID *This, + IID *pDeviceID); END_INTERFACE +} IMFVideoDeviceIDVtbl; + +interface IMFVideoDeviceID { + CONST_VTBL IMFVideoDeviceIDVtbl* lpVtbl; }; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoDeviceID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoDeviceID_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoDeviceID_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoDeviceID methods ***/ +#define IMFVideoDeviceID_GetDeviceID(This,pDeviceID) (This)->lpVtbl->GetDeviceID(This,pDeviceID) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoDeviceID_QueryInterface(IMFVideoDeviceID* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoDeviceID_AddRef(IMFVideoDeviceID* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoDeviceID_Release(IMFVideoDeviceID* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoDeviceID methods ***/ +static FORCEINLINE HRESULT IMFVideoDeviceID_GetDeviceID(IMFVideoDeviceID* This,IID *pDeviceID) { + return This->lpVtbl->GetDeviceID(This,pDeviceID); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoDeviceID_INTERFACE_DEFINED__ */ + + +/***************************************************************************** + * IMFVideoDisplayControl interface + */ +#ifndef __IMFVideoDisplayControl_INTERFACE_DEFINED__ +#define __IMFVideoDisplayControl_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoDisplayControl, 0xa490b1e4, 0xab84, 0x4d31, 0xa1,0xb2, 0x18,0x1e,0x03,0xb1,0x07,0x7a); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a490b1e4-ab84-4d31-a1b2-181e03b1077a") +IMFVideoDisplayControl : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetNativeVideoSize( + SIZE *pszVideo, + SIZE *pszARVideo) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetIdealVideoSize( + SIZE *pszMin, + SIZE *pszMax) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoPosition( + const MFVideoNormalizedRect *pnrcSource, + const LPRECT prcDest) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVideoPosition( + MFVideoNormalizedRect *pnrcSource, + LPRECT prcDest) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode( + DWORD dwAspectRatioMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode( + DWORD *pdwAspectRatioMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoWindow( + HWND hwndVideo) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVideoWindow( + HWND *phwndVideo) = 0; + + virtual HRESULT STDMETHODCALLTYPE RepaintVideo( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentImage( + BITMAPINFOHEADER *pBih, + BYTE **pDib, + DWORD *pcbDib, + LONGLONG *pTimeStamp) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBorderColor( + COLORREF Clr) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBorderColor( + COLORREF *pClr) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs( + DWORD dwRenderFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs( + DWORD *pdwRenderFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFullscreen( + WINBOOL fFullscreen) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFullscreen( + WINBOOL *pfFullscreen) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoDisplayControl, 0xa490b1e4, 0xab84, 0x4d31, 0xa1,0xb2, 0x18,0x1e,0x03,0xb1,0x07,0x7a) +#endif +#else +typedef struct IMFVideoDisplayControlVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoDisplayControl *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoDisplayControl *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoDisplayControl *This); + + /*** IMFVideoDisplayControl methods ***/ + HRESULT (STDMETHODCALLTYPE *GetNativeVideoSize)( + IMFVideoDisplayControl *This, + SIZE *pszVideo, + SIZE *pszARVideo); + + HRESULT (STDMETHODCALLTYPE *GetIdealVideoSize)( + IMFVideoDisplayControl *This, + SIZE *pszMin, + SIZE *pszMax); + + HRESULT (STDMETHODCALLTYPE *SetVideoPosition)( + IMFVideoDisplayControl *This, + const MFVideoNormalizedRect *pnrcSource, + const LPRECT prcDest); + + HRESULT (STDMETHODCALLTYPE *GetVideoPosition)( + IMFVideoDisplayControl *This, + MFVideoNormalizedRect *pnrcSource, + LPRECT prcDest); + + HRESULT (STDMETHODCALLTYPE *SetAspectRatioMode)( + IMFVideoDisplayControl *This, + DWORD dwAspectRatioMode); + + HRESULT (STDMETHODCALLTYPE *GetAspectRatioMode)( + IMFVideoDisplayControl *This, + DWORD *pdwAspectRatioMode); + + HRESULT (STDMETHODCALLTYPE *SetVideoWindow)( + IMFVideoDisplayControl *This, + HWND hwndVideo); + + HRESULT (STDMETHODCALLTYPE *GetVideoWindow)( + IMFVideoDisplayControl *This, + HWND *phwndVideo); + + HRESULT (STDMETHODCALLTYPE *RepaintVideo)( + IMFVideoDisplayControl *This); + + HRESULT (STDMETHODCALLTYPE *GetCurrentImage)( + IMFVideoDisplayControl *This, + BITMAPINFOHEADER *pBih, + BYTE **pDib, + DWORD *pcbDib, + LONGLONG *pTimeStamp); + + HRESULT (STDMETHODCALLTYPE *SetBorderColor)( + IMFVideoDisplayControl *This, + COLORREF Clr); + + HRESULT (STDMETHODCALLTYPE *GetBorderColor)( + IMFVideoDisplayControl *This, + COLORREF *pClr); + + HRESULT (STDMETHODCALLTYPE *SetRenderingPrefs)( + IMFVideoDisplayControl *This, + DWORD dwRenderFlags); + + HRESULT (STDMETHODCALLTYPE *GetRenderingPrefs)( + IMFVideoDisplayControl *This, + DWORD *pdwRenderFlags); + + HRESULT (STDMETHODCALLTYPE *SetFullscreen)( + IMFVideoDisplayControl *This, + WINBOOL fFullscreen); + + HRESULT (STDMETHODCALLTYPE *GetFullscreen)( + IMFVideoDisplayControl *This, + WINBOOL *pfFullscreen); + + END_INTERFACE +} IMFVideoDisplayControlVtbl; + +interface IMFVideoDisplayControl { + CONST_VTBL IMFVideoDisplayControlVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IMFVideoDisplayControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IMFVideoDisplayControl_AddRef(This) (This)->lpVtbl->AddRef(This) #define IMFVideoDisplayControl_Release(This) (This)->lpVtbl->Release(This) -#define IMFVideoDisplayControl_GetAspectRatioMode(This,pdwAspectRatioMode) (This)->lpVtbl->GetAspectRatioMode(This,pdwAspectRatioMode) -#define IMFVideoDisplayControl_GetBorderColor(This,pClr) (This)->lpVtbl->GetBorderColor(This,pClr) -#define IMFVideoDisplayControl_GetCurrentImage(This,pTimeStamp) (This)->lpVtbl->GetCurrentImage(This,pTimeStamp) -#define IMFVideoDisplayControl_GetFullscreen(This,pfFullscreen) (This)->lpVtbl->GetFullscreen(This,pfFullscreen) -#define IMFVideoDisplayControl_GetIdealVideoSize(This,pszMax) (This)->lpVtbl->GetIdealVideoSize(This,pszMax) -#define IMFVideoDisplayControl_GetNativeVideoSize(This,pszARVideo) (This)->lpVtbl->GetNativeVideoSize(This,pszARVideo) -#define IMFVideoDisplayControl_GetRenderingPrefs(This,pdwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags) -#define IMFVideoDisplayControl_GetVideoPosition(This,pnrcSource,prcDest) (This)->lpVtbl->GetVideoPosition(This,pnrcSource,prcDest) -#define IMFVideoDisplayControl_GetVideoWindow(This,phwndVideo) (This)->lpVtbl->GetVideoWindow(This,phwndVideo) -#define IMFVideoDisplayControl_RepaintVideo() (This)->lpVtbl->RepaintVideo(This) -#define IMFVideoDisplayControl_SetAspectRatioMode(This,dwAspectRatioMode) (This)->lpVtbl->SetAspectRatioMode(This,dwAspectRatioMode) -#define IMFVideoDisplayControl_SetBorderColor(This,Clr) (This)->lpVtbl->SetBorderColor(This,Clr) -#define IMFVideoDisplayControl_SetFullscreen(This,fFullscreen) (This)->lpVtbl->SetFullscreen(This,fFullscreen) -#define IMFVideoDisplayControl_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags) +/*** IMFVideoDisplayControl methods ***/ +#define IMFVideoDisplayControl_GetNativeVideoSize(This,pszVideo,pszARVideo) (This)->lpVtbl->GetNativeVideoSize(This,pszVideo,pszARVideo) +#define IMFVideoDisplayControl_GetIdealVideoSize(This,pszMin,pszMax) (This)->lpVtbl->GetIdealVideoSize(This,pszMin,pszMax) #define IMFVideoDisplayControl_SetVideoPosition(This,pnrcSource,prcDest) (This)->lpVtbl->SetVideoPosition(This,pnrcSource,prcDest) +#define IMFVideoDisplayControl_GetVideoPosition(This,pnrcSource,prcDest) (This)->lpVtbl->GetVideoPosition(This,pnrcSource,prcDest) +#define IMFVideoDisplayControl_SetAspectRatioMode(This,dwAspectRatioMode) (This)->lpVtbl->SetAspectRatioMode(This,dwAspectRatioMode) +#define IMFVideoDisplayControl_GetAspectRatioMode(This,pdwAspectRatioMode) (This)->lpVtbl->GetAspectRatioMode(This,pdwAspectRatioMode) #define IMFVideoDisplayControl_SetVideoWindow(This,hwndVideo) (This)->lpVtbl->SetVideoWindow(This,hwndVideo) -#endif /*COBJMACROS*/ - -#ifdef __cplusplus -extern "C" { +#define IMFVideoDisplayControl_GetVideoWindow(This,phwndVideo) (This)->lpVtbl->GetVideoWindow(This,phwndVideo) +#define IMFVideoDisplayControl_RepaintVideo(This) (This)->lpVtbl->RepaintVideo(This) +#define IMFVideoDisplayControl_GetCurrentImage(This,pBih,pDib,pcbDib,pTimeStamp) (This)->lpVtbl->GetCurrentImage(This,pBih,pDib,pcbDib,pTimeStamp) +#define IMFVideoDisplayControl_SetBorderColor(This,Clr) (This)->lpVtbl->SetBorderColor(This,Clr) +#define IMFVideoDisplayControl_GetBorderColor(This,pClr) (This)->lpVtbl->GetBorderColor(This,pClr) +#define IMFVideoDisplayControl_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags) +#define IMFVideoDisplayControl_GetRenderingPrefs(This,pdwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags) +#define IMFVideoDisplayControl_SetFullscreen(This,fFullscreen) (This)->lpVtbl->SetFullscreen(This,fFullscreen) +#define IMFVideoDisplayControl_GetFullscreen(This,pfFullscreen) (This)->lpVtbl->GetFullscreen(This,pfFullscreen) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoDisplayControl_QueryInterface(IMFVideoDisplayControl* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoDisplayControl_AddRef(IMFVideoDisplayControl* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoDisplayControl_Release(IMFVideoDisplayControl* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoDisplayControl methods ***/ +static FORCEINLINE HRESULT IMFVideoDisplayControl_GetNativeVideoSize(IMFVideoDisplayControl* This,SIZE *pszVideo,SIZE *pszARVideo) { + return This->lpVtbl->GetNativeVideoSize(This,pszVideo,pszARVideo); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_GetIdealVideoSize(IMFVideoDisplayControl* This,SIZE *pszMin,SIZE *pszMax) { + return This->lpVtbl->GetIdealVideoSize(This,pszMin,pszMax); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_SetVideoPosition(IMFVideoDisplayControl* This,const MFVideoNormalizedRect *pnrcSource,const LPRECT prcDest) { + return This->lpVtbl->SetVideoPosition(This,pnrcSource,prcDest); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_GetVideoPosition(IMFVideoDisplayControl* This,MFVideoNormalizedRect *pnrcSource,LPRECT prcDest) { + return This->lpVtbl->GetVideoPosition(This,pnrcSource,prcDest); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_SetAspectRatioMode(IMFVideoDisplayControl* This,DWORD dwAspectRatioMode) { + return This->lpVtbl->SetAspectRatioMode(This,dwAspectRatioMode); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_GetAspectRatioMode(IMFVideoDisplayControl* This,DWORD *pdwAspectRatioMode) { + return This->lpVtbl->GetAspectRatioMode(This,pdwAspectRatioMode); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_SetVideoWindow(IMFVideoDisplayControl* This,HWND hwndVideo) { + return This->lpVtbl->SetVideoWindow(This,hwndVideo); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_GetVideoWindow(IMFVideoDisplayControl* This,HWND *phwndVideo) { + return This->lpVtbl->GetVideoWindow(This,phwndVideo); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_RepaintVideo(IMFVideoDisplayControl* This) { + return This->lpVtbl->RepaintVideo(This); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_GetCurrentImage(IMFVideoDisplayControl* This,BITMAPINFOHEADER *pBih,BYTE **pDib,DWORD *pcbDib,LONGLONG *pTimeStamp) { + return This->lpVtbl->GetCurrentImage(This,pBih,pDib,pcbDib,pTimeStamp); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_SetBorderColor(IMFVideoDisplayControl* This,COLORREF Clr) { + return This->lpVtbl->SetBorderColor(This,Clr); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_GetBorderColor(IMFVideoDisplayControl* This,COLORREF *pClr) { + return This->lpVtbl->GetBorderColor(This,pClr); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_SetRenderingPrefs(IMFVideoDisplayControl* This,DWORD dwRenderFlags) { + return This->lpVtbl->SetRenderingPrefs(This,dwRenderFlags); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_GetRenderingPrefs(IMFVideoDisplayControl* This,DWORD *pdwRenderFlags) { + return This->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_SetFullscreen(IMFVideoDisplayControl* This,WINBOOL fFullscreen) { + return This->lpVtbl->SetFullscreen(This,fFullscreen); +} +static FORCEINLINE HRESULT IMFVideoDisplayControl_GetFullscreen(IMFVideoDisplayControl* This,WINBOOL *pfFullscreen) { + return This->lpVtbl->GetFullscreen(This,pfFullscreen); +} +#endif #endif -HRESULT WINAPI MFCreateVideoMixer(IUnknown *pOwner,REFIID riidDevice,REFIID riid,void **ppVideoMixer); -HRESULT WINAPI MFCreateVideoMixerAndPresenter(IUnknown *pMixerOwner,IUnknown *pPresenterOwner,REFIID riidMixer,void **ppvVideoMixer,REFIID riidPresenter,void **ppvVideoPresenter); -HRESULT WINAPI MFCreateVideoPresenter(IUnknown *pOwner,REFIID riidDevice,REFIID riid,void **ppvVideoPresenter); -HRESULT WINAPI MFCreateVideoSampleAllocator(REFIID riid,void** ppSampleAllocator); -HRESULT WINAPI MFCreateVideoSampleFromSurface(IUnknown *pUnkSurface,IMFSample **ppSample); +#endif + + +#endif /* __IMFVideoDisplayControl_INTERFACE_DEFINED__ */ + + +/***************************************************************************** + * IMFVideoPresenter interface + */ +#ifndef __IMFVideoPresenter_INTERFACE_DEFINED__ +#define __IMFVideoPresenter_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoPresenter, 0x29aff080, 0x182a, 0x4a5d, 0xaf,0x3b, 0x44,0x8f,0x3a,0x63,0x46,0xcb); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("29aff080-182a-4a5d-af3b-448f3a6346cb") +IMFVideoPresenter : public IMFClockStateSink +{ + virtual HRESULT STDMETHODCALLTYPE ProcessMessage( + MFVP_MESSAGE_TYPE eMessage, + ULONG_PTR ulParam) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentMediaType( + IMFVideoMediaType **ppMediaType) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoPresenter, 0x29aff080, 0x182a, 0x4a5d, 0xaf,0x3b, 0x44,0x8f,0x3a,0x63,0x46,0xcb) +#endif +#else +typedef struct IMFVideoPresenterVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoPresenter *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoPresenter *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoPresenter *This); + + /*** IMFClockStateSink methods ***/ + HRESULT (STDMETHODCALLTYPE *OnClockStart)( + IMFVideoPresenter *This, + MFTIME hnsSystemTime, + LONGLONG llClockStartOffset); + + HRESULT (STDMETHODCALLTYPE *OnClockStop)( + IMFVideoPresenter *This, + MFTIME hnsSystemTime); + + HRESULT (STDMETHODCALLTYPE *OnClockPause)( + IMFVideoPresenter *This, + MFTIME hnsSystemTime); + + HRESULT (STDMETHODCALLTYPE *OnClockRestart)( + IMFVideoPresenter *This, + MFTIME hnsSystemTime); + + HRESULT (STDMETHODCALLTYPE *OnClockSetRate)( + IMFVideoPresenter *This, + MFTIME hnsSystemTime, + float flRate); + + /*** IMFVideoPresenter methods ***/ + HRESULT (STDMETHODCALLTYPE *ProcessMessage)( + IMFVideoPresenter *This, + MFVP_MESSAGE_TYPE eMessage, + ULONG_PTR ulParam); + + HRESULT (STDMETHODCALLTYPE *GetCurrentMediaType)( + IMFVideoPresenter *This, + IMFVideoMediaType **ppMediaType); + + END_INTERFACE +} IMFVideoPresenterVtbl; + +interface IMFVideoPresenter { + CONST_VTBL IMFVideoPresenterVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoPresenter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoPresenter_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoPresenter_Release(This) (This)->lpVtbl->Release(This) +/*** IMFClockStateSink methods ***/ +#define IMFVideoPresenter_OnClockStart(This,hnsSystemTime,llClockStartOffset) (This)->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset) +#define IMFVideoPresenter_OnClockStop(This,hnsSystemTime) (This)->lpVtbl->OnClockStop(This,hnsSystemTime) +#define IMFVideoPresenter_OnClockPause(This,hnsSystemTime) (This)->lpVtbl->OnClockPause(This,hnsSystemTime) +#define IMFVideoPresenter_OnClockRestart(This,hnsSystemTime) (This)->lpVtbl->OnClockRestart(This,hnsSystemTime) +#define IMFVideoPresenter_OnClockSetRate(This,hnsSystemTime,flRate) (This)->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate) +/*** IMFVideoPresenter methods ***/ +#define IMFVideoPresenter_ProcessMessage(This,eMessage,ulParam) (This)->lpVtbl->ProcessMessage(This,eMessage,ulParam) +#define IMFVideoPresenter_GetCurrentMediaType(This,ppMediaType) (This)->lpVtbl->GetCurrentMediaType(This,ppMediaType) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoPresenter_QueryInterface(IMFVideoPresenter* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoPresenter_AddRef(IMFVideoPresenter* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoPresenter_Release(IMFVideoPresenter* This) { + return This->lpVtbl->Release(This); +} +/*** IMFClockStateSink methods ***/ +static FORCEINLINE HRESULT IMFVideoPresenter_OnClockStart(IMFVideoPresenter* This,MFTIME hnsSystemTime,LONGLONG llClockStartOffset) { + return This->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset); +} +static FORCEINLINE HRESULT IMFVideoPresenter_OnClockStop(IMFVideoPresenter* This,MFTIME hnsSystemTime) { + return This->lpVtbl->OnClockStop(This,hnsSystemTime); +} +static FORCEINLINE HRESULT IMFVideoPresenter_OnClockPause(IMFVideoPresenter* This,MFTIME hnsSystemTime) { + return This->lpVtbl->OnClockPause(This,hnsSystemTime); +} +static FORCEINLINE HRESULT IMFVideoPresenter_OnClockRestart(IMFVideoPresenter* This,MFTIME hnsSystemTime) { + return This->lpVtbl->OnClockRestart(This,hnsSystemTime); +} +static FORCEINLINE HRESULT IMFVideoPresenter_OnClockSetRate(IMFVideoPresenter* This,MFTIME hnsSystemTime,float flRate) { + return This->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate); +} +/*** IMFVideoPresenter methods ***/ +static FORCEINLINE HRESULT IMFVideoPresenter_ProcessMessage(IMFVideoPresenter* This,MFVP_MESSAGE_TYPE eMessage,ULONG_PTR ulParam) { + return This->lpVtbl->ProcessMessage(This,eMessage,ulParam); +} +static FORCEINLINE HRESULT IMFVideoPresenter_GetCurrentMediaType(IMFVideoPresenter* This,IMFVideoMediaType **ppMediaType) { + return This->lpVtbl->GetCurrentMediaType(This,ppMediaType); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoPresenter_INTERFACE_DEFINED__ */ + + +/***************************************************************************** + * IMFDesiredSample interface + */ +#ifndef __IMFDesiredSample_INTERFACE_DEFINED__ +#define __IMFDesiredSample_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFDesiredSample, 0x56c294d0, 0x753e, 0x4260, 0x8d,0x61, 0xa3,0xd8,0x82,0x0b,0x1d,0x54); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("56c294d0-753e-4260-8d61-a3d8820b1d54") +IMFDesiredSample : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetDesiredSampleTimeAndDuration( + LONGLONG *phnsSampleTime, + LONGLONG *phnsSampleDuration) = 0; + + virtual void STDMETHODCALLTYPE SetDesiredSampleTimeAndDuration( + LONGLONG hnsSampleTime, + LONGLONG hnsSampleDuration) = 0; + + virtual void STDMETHODCALLTYPE Clear( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFDesiredSample, 0x56c294d0, 0x753e, 0x4260, 0x8d,0x61, 0xa3,0xd8,0x82,0x0b,0x1d,0x54) +#endif +#else +typedef struct IMFDesiredSampleVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFDesiredSample *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFDesiredSample *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFDesiredSample *This); + + /*** IMFDesiredSample methods ***/ + HRESULT (STDMETHODCALLTYPE *GetDesiredSampleTimeAndDuration)( + IMFDesiredSample *This, + LONGLONG *phnsSampleTime, + LONGLONG *phnsSampleDuration); + + void (STDMETHODCALLTYPE *SetDesiredSampleTimeAndDuration)( + IMFDesiredSample *This, + LONGLONG hnsSampleTime, + LONGLONG hnsSampleDuration); + + void (STDMETHODCALLTYPE *Clear)( + IMFDesiredSample *This); + + END_INTERFACE +} IMFDesiredSampleVtbl; + +interface IMFDesiredSample { + CONST_VTBL IMFDesiredSampleVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFDesiredSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFDesiredSample_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFDesiredSample_Release(This) (This)->lpVtbl->Release(This) +/*** IMFDesiredSample methods ***/ +#define IMFDesiredSample_GetDesiredSampleTimeAndDuration(This,phnsSampleTime,phnsSampleDuration) (This)->lpVtbl->GetDesiredSampleTimeAndDuration(This,phnsSampleTime,phnsSampleDuration) +#define IMFDesiredSample_SetDesiredSampleTimeAndDuration(This,hnsSampleTime,hnsSampleDuration) (This)->lpVtbl->SetDesiredSampleTimeAndDuration(This,hnsSampleTime,hnsSampleDuration) +#define IMFDesiredSample_Clear(This) (This)->lpVtbl->Clear(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFDesiredSample_QueryInterface(IMFDesiredSample* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFDesiredSample_AddRef(IMFDesiredSample* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFDesiredSample_Release(IMFDesiredSample* This) { + return This->lpVtbl->Release(This); +} +/*** IMFDesiredSample methods ***/ +static FORCEINLINE HRESULT IMFDesiredSample_GetDesiredSampleTimeAndDuration(IMFDesiredSample* This,LONGLONG *phnsSampleTime,LONGLONG *phnsSampleDuration) { + return This->lpVtbl->GetDesiredSampleTimeAndDuration(This,phnsSampleTime,phnsSampleDuration); +} +static FORCEINLINE void IMFDesiredSample_SetDesiredSampleTimeAndDuration(IMFDesiredSample* This,LONGLONG hnsSampleTime,LONGLONG hnsSampleDuration) { + This->lpVtbl->SetDesiredSampleTimeAndDuration(This,hnsSampleTime,hnsSampleDuration); +} +static FORCEINLINE void IMFDesiredSample_Clear(IMFDesiredSample* This) { + This->lpVtbl->Clear(This); +} +#endif +#endif + +#endif + + +#endif /* __IMFDesiredSample_INTERFACE_DEFINED__ */ + + +/***************************************************************************** + * IMFTrackedSample interface + */ +#ifndef __IMFTrackedSample_INTERFACE_DEFINED__ +#define __IMFTrackedSample_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFTrackedSample, 0x245bf8e9, 0x0755, 0x40f7, 0x88,0xa5, 0xae,0x0f,0x18,0xd5,0x5e,0x17); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("245bf8e9-0755-40f7-88a5-ae0f18d55e17") +IMFTrackedSample : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetAllocator( + IMFAsyncCallback *pSampleAllocator, + IUnknown *pUnkState) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFTrackedSample, 0x245bf8e9, 0x0755, 0x40f7, 0x88,0xa5, 0xae,0x0f,0x18,0xd5,0x5e,0x17) +#endif +#else +typedef struct IMFTrackedSampleVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFTrackedSample *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFTrackedSample *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFTrackedSample *This); + + /*** IMFTrackedSample methods ***/ + HRESULT (STDMETHODCALLTYPE *SetAllocator)( + IMFTrackedSample *This, + IMFAsyncCallback *pSampleAllocator, + IUnknown *pUnkState); + + END_INTERFACE +} IMFTrackedSampleVtbl; + +interface IMFTrackedSample { + CONST_VTBL IMFTrackedSampleVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFTrackedSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFTrackedSample_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFTrackedSample_Release(This) (This)->lpVtbl->Release(This) +/*** IMFTrackedSample methods ***/ +#define IMFTrackedSample_SetAllocator(This,pSampleAllocator,pUnkState) (This)->lpVtbl->SetAllocator(This,pSampleAllocator,pUnkState) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFTrackedSample_QueryInterface(IMFTrackedSample* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFTrackedSample_AddRef(IMFTrackedSample* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFTrackedSample_Release(IMFTrackedSample* This) { + return This->lpVtbl->Release(This); +} +/*** IMFTrackedSample methods ***/ +static FORCEINLINE HRESULT IMFTrackedSample_SetAllocator(IMFTrackedSample* This,IMFAsyncCallback *pSampleAllocator,IUnknown *pUnkState) { + return This->lpVtbl->SetAllocator(This,pSampleAllocator,pUnkState); +} +#endif +#endif + +#endif + + +#endif /* __IMFTrackedSample_INTERFACE_DEFINED__ */ + + +/***************************************************************************** + * IMFVideoMixerControl interface + */ +#ifndef __IMFVideoMixerControl_INTERFACE_DEFINED__ +#define __IMFVideoMixerControl_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoMixerControl, 0xa5c6c53f, 0xc202, 0x4aa5, 0x96,0x95, 0x17,0x5b,0xa8,0xc5,0x08,0xa5); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a5c6c53f-c202-4aa5-9695-175ba8c508a5") +IMFVideoMixerControl : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetStreamZOrder( + DWORD dwStreamID, + DWORD dwZ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStreamZOrder( + DWORD dwStreamID, + DWORD *pdwZ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStreamOutputRect( + DWORD dwStreamID, + const MFVideoNormalizedRect *pnrcOutput) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStreamOutputRect( + DWORD dwStreamID, + MFVideoNormalizedRect *pnrcOutput) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoMixerControl, 0xa5c6c53f, 0xc202, 0x4aa5, 0x96,0x95, 0x17,0x5b,0xa8,0xc5,0x08,0xa5) +#endif +#else +typedef struct IMFVideoMixerControlVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoMixerControl *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoMixerControl *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoMixerControl *This); + + /*** IMFVideoMixerControl methods ***/ + HRESULT (STDMETHODCALLTYPE *SetStreamZOrder)( + IMFVideoMixerControl *This, + DWORD dwStreamID, + DWORD dwZ); + + HRESULT (STDMETHODCALLTYPE *GetStreamZOrder)( + IMFVideoMixerControl *This, + DWORD dwStreamID, + DWORD *pdwZ); + + HRESULT (STDMETHODCALLTYPE *SetStreamOutputRect)( + IMFVideoMixerControl *This, + DWORD dwStreamID, + const MFVideoNormalizedRect *pnrcOutput); + + HRESULT (STDMETHODCALLTYPE *GetStreamOutputRect)( + IMFVideoMixerControl *This, + DWORD dwStreamID, + MFVideoNormalizedRect *pnrcOutput); + + END_INTERFACE +} IMFVideoMixerControlVtbl; + +interface IMFVideoMixerControl { + CONST_VTBL IMFVideoMixerControlVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoMixerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoMixerControl_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoMixerControl_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoMixerControl methods ***/ +#define IMFVideoMixerControl_SetStreamZOrder(This,dwStreamID,dwZ) (This)->lpVtbl->SetStreamZOrder(This,dwStreamID,dwZ) +#define IMFVideoMixerControl_GetStreamZOrder(This,dwStreamID,pdwZ) (This)->lpVtbl->GetStreamZOrder(This,dwStreamID,pdwZ) +#define IMFVideoMixerControl_SetStreamOutputRect(This,dwStreamID,pnrcOutput) (This)->lpVtbl->SetStreamOutputRect(This,dwStreamID,pnrcOutput) +#define IMFVideoMixerControl_GetStreamOutputRect(This,dwStreamID,pnrcOutput) (This)->lpVtbl->GetStreamOutputRect(This,dwStreamID,pnrcOutput) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoMixerControl_QueryInterface(IMFVideoMixerControl* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoMixerControl_AddRef(IMFVideoMixerControl* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoMixerControl_Release(IMFVideoMixerControl* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoMixerControl methods ***/ +static FORCEINLINE HRESULT IMFVideoMixerControl_SetStreamZOrder(IMFVideoMixerControl* This,DWORD dwStreamID,DWORD dwZ) { + return This->lpVtbl->SetStreamZOrder(This,dwStreamID,dwZ); +} +static FORCEINLINE HRESULT IMFVideoMixerControl_GetStreamZOrder(IMFVideoMixerControl* This,DWORD dwStreamID,DWORD *pdwZ) { + return This->lpVtbl->GetStreamZOrder(This,dwStreamID,pdwZ); +} +static FORCEINLINE HRESULT IMFVideoMixerControl_SetStreamOutputRect(IMFVideoMixerControl* This,DWORD dwStreamID,const MFVideoNormalizedRect *pnrcOutput) { + return This->lpVtbl->SetStreamOutputRect(This,dwStreamID,pnrcOutput); +} +static FORCEINLINE HRESULT IMFVideoMixerControl_GetStreamOutputRect(IMFVideoMixerControl* This,DWORD dwStreamID,MFVideoNormalizedRect *pnrcOutput) { + return This->lpVtbl->GetStreamOutputRect(This,dwStreamID,pnrcOutput); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoMixerControl_INTERFACE_DEFINED__ */ + + +/***************************************************************************** + * IMFVideoMixerControl2 interface + */ +#ifndef __IMFVideoMixerControl2_INTERFACE_DEFINED__ +#define __IMFVideoMixerControl2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoMixerControl2, 0x8459616d, 0x966e, 0x4930, 0xb6,0x58, 0x54,0xfa,0x7e,0x5a,0x16,0xd3); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("8459616d-966e-4930-b658-54fa7e5a16d3") +IMFVideoMixerControl2 : public IMFVideoMixerControl +{ + virtual HRESULT STDMETHODCALLTYPE SetMixingPrefs( + DWORD dwMixFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMixingPrefs( + DWORD *pdwMixFlags) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoMixerControl2, 0x8459616d, 0x966e, 0x4930, 0xb6,0x58, 0x54,0xfa,0x7e,0x5a,0x16,0xd3) +#endif +#else +typedef struct IMFVideoMixerControl2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoMixerControl2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoMixerControl2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoMixerControl2 *This); + + /*** IMFVideoMixerControl methods ***/ + HRESULT (STDMETHODCALLTYPE *SetStreamZOrder)( + IMFVideoMixerControl2 *This, + DWORD dwStreamID, + DWORD dwZ); + + HRESULT (STDMETHODCALLTYPE *GetStreamZOrder)( + IMFVideoMixerControl2 *This, + DWORD dwStreamID, + DWORD *pdwZ); + + HRESULT (STDMETHODCALLTYPE *SetStreamOutputRect)( + IMFVideoMixerControl2 *This, + DWORD dwStreamID, + const MFVideoNormalizedRect *pnrcOutput); + + HRESULT (STDMETHODCALLTYPE *GetStreamOutputRect)( + IMFVideoMixerControl2 *This, + DWORD dwStreamID, + MFVideoNormalizedRect *pnrcOutput); + + /*** IMFVideoMixerControl2 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetMixingPrefs)( + IMFVideoMixerControl2 *This, + DWORD dwMixFlags); + + HRESULT (STDMETHODCALLTYPE *GetMixingPrefs)( + IMFVideoMixerControl2 *This, + DWORD *pdwMixFlags); + + END_INTERFACE +} IMFVideoMixerControl2Vtbl; + +interface IMFVideoMixerControl2 { + CONST_VTBL IMFVideoMixerControl2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoMixerControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoMixerControl2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoMixerControl2_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoMixerControl methods ***/ +#define IMFVideoMixerControl2_SetStreamZOrder(This,dwStreamID,dwZ) (This)->lpVtbl->SetStreamZOrder(This,dwStreamID,dwZ) +#define IMFVideoMixerControl2_GetStreamZOrder(This,dwStreamID,pdwZ) (This)->lpVtbl->GetStreamZOrder(This,dwStreamID,pdwZ) +#define IMFVideoMixerControl2_SetStreamOutputRect(This,dwStreamID,pnrcOutput) (This)->lpVtbl->SetStreamOutputRect(This,dwStreamID,pnrcOutput) +#define IMFVideoMixerControl2_GetStreamOutputRect(This,dwStreamID,pnrcOutput) (This)->lpVtbl->GetStreamOutputRect(This,dwStreamID,pnrcOutput) +/*** IMFVideoMixerControl2 methods ***/ +#define IMFVideoMixerControl2_SetMixingPrefs(This,dwMixFlags) (This)->lpVtbl->SetMixingPrefs(This,dwMixFlags) +#define IMFVideoMixerControl2_GetMixingPrefs(This,pdwMixFlags) (This)->lpVtbl->GetMixingPrefs(This,pdwMixFlags) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoMixerControl2_QueryInterface(IMFVideoMixerControl2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoMixerControl2_AddRef(IMFVideoMixerControl2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoMixerControl2_Release(IMFVideoMixerControl2* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoMixerControl methods ***/ +static FORCEINLINE HRESULT IMFVideoMixerControl2_SetStreamZOrder(IMFVideoMixerControl2* This,DWORD dwStreamID,DWORD dwZ) { + return This->lpVtbl->SetStreamZOrder(This,dwStreamID,dwZ); +} +static FORCEINLINE HRESULT IMFVideoMixerControl2_GetStreamZOrder(IMFVideoMixerControl2* This,DWORD dwStreamID,DWORD *pdwZ) { + return This->lpVtbl->GetStreamZOrder(This,dwStreamID,pdwZ); +} +static FORCEINLINE HRESULT IMFVideoMixerControl2_SetStreamOutputRect(IMFVideoMixerControl2* This,DWORD dwStreamID,const MFVideoNormalizedRect *pnrcOutput) { + return This->lpVtbl->SetStreamOutputRect(This,dwStreamID,pnrcOutput); +} +static FORCEINLINE HRESULT IMFVideoMixerControl2_GetStreamOutputRect(IMFVideoMixerControl2* This,DWORD dwStreamID,MFVideoNormalizedRect *pnrcOutput) { + return This->lpVtbl->GetStreamOutputRect(This,dwStreamID,pnrcOutput); +} +/*** IMFVideoMixerControl2 methods ***/ +static FORCEINLINE HRESULT IMFVideoMixerControl2_SetMixingPrefs(IMFVideoMixerControl2* This,DWORD dwMixFlags) { + return This->lpVtbl->SetMixingPrefs(This,dwMixFlags); +} +static FORCEINLINE HRESULT IMFVideoMixerControl2_GetMixingPrefs(IMFVideoMixerControl2* This,DWORD *pdwMixFlags) { + return This->lpVtbl->GetMixingPrefs(This,pdwMixFlags); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoMixerControl2_INTERFACE_DEFINED__ */ + + +/***************************************************************************** + * IMFVideoRenderer interface + */ +#ifndef __IMFVideoRenderer_INTERFACE_DEFINED__ +#define __IMFVideoRenderer_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoRenderer, 0xdfdfd197, 0xa9ca, 0x43d8, 0xb3,0x41, 0x6a,0xf3,0x50,0x37,0x92,0xcd); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("dfdfd197-a9ca-43d8-b341-6af3503792cd") +IMFVideoRenderer : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE InitializeRenderer( + IMFTransform *pVideoMixer, + IMFVideoPresenter *pVideoPresenter) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoRenderer, 0xdfdfd197, 0xa9ca, 0x43d8, 0xb3,0x41, 0x6a,0xf3,0x50,0x37,0x92,0xcd) +#endif +#else +typedef struct IMFVideoRendererVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoRenderer *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoRenderer *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoRenderer *This); + + /*** IMFVideoRenderer methods ***/ + HRESULT (STDMETHODCALLTYPE *InitializeRenderer)( + IMFVideoRenderer *This, + IMFTransform *pVideoMixer, + IMFVideoPresenter *pVideoPresenter); + + END_INTERFACE +} IMFVideoRendererVtbl; + +interface IMFVideoRenderer { + CONST_VTBL IMFVideoRendererVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoRenderer_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoRenderer_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoRenderer methods ***/ +#define IMFVideoRenderer_InitializeRenderer(This,pVideoMixer,pVideoPresenter) (This)->lpVtbl->InitializeRenderer(This,pVideoMixer,pVideoPresenter) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoRenderer_QueryInterface(IMFVideoRenderer* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoRenderer_AddRef(IMFVideoRenderer* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoRenderer_Release(IMFVideoRenderer* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoRenderer methods ***/ +static FORCEINLINE HRESULT IMFVideoRenderer_InitializeRenderer(IMFVideoRenderer* This,IMFTransform *pVideoMixer,IMFVideoPresenter *pVideoPresenter) { + return This->lpVtbl->InitializeRenderer(This,pVideoMixer,pVideoPresenter); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoRenderer_INTERFACE_DEFINED__ */ + + +/***************************************************************************** + * IEVRFilterConfig interface + */ +#ifndef __IEVRFilterConfig_INTERFACE_DEFINED__ +#define __IEVRFilterConfig_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IEVRFilterConfig, 0x83e91e85, 0x82c1, 0x4ea7, 0x80,0x1d, 0x85,0xdc,0x50,0xb7,0x50,0x86); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("83e91e85-82c1-4ea7-801d-85dc50b75086") +IEVRFilterConfig : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetNumberOfStreams( + DWORD dwMaxStreams) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetNumberOfStreams( + DWORD *pdwMaxStreams) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IEVRFilterConfig, 0x83e91e85, 0x82c1, 0x4ea7, 0x80,0x1d, 0x85,0xdc,0x50,0xb7,0x50,0x86) +#endif +#else +typedef struct IEVRFilterConfigVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IEVRFilterConfig *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IEVRFilterConfig *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IEVRFilterConfig *This); + + /*** IEVRFilterConfig methods ***/ + HRESULT (STDMETHODCALLTYPE *SetNumberOfStreams)( + IEVRFilterConfig *This, + DWORD dwMaxStreams); + + HRESULT (STDMETHODCALLTYPE *GetNumberOfStreams)( + IEVRFilterConfig *This, + DWORD *pdwMaxStreams); + + END_INTERFACE +} IEVRFilterConfigVtbl; + +interface IEVRFilterConfig { + CONST_VTBL IEVRFilterConfigVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IEVRFilterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IEVRFilterConfig_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IEVRFilterConfig_Release(This) (This)->lpVtbl->Release(This) +/*** IEVRFilterConfig methods ***/ +#define IEVRFilterConfig_SetNumberOfStreams(This,dwMaxStreams) (This)->lpVtbl->SetNumberOfStreams(This,dwMaxStreams) +#define IEVRFilterConfig_GetNumberOfStreams(This,pdwMaxStreams) (This)->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IEVRFilterConfig_QueryInterface(IEVRFilterConfig* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IEVRFilterConfig_AddRef(IEVRFilterConfig* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IEVRFilterConfig_Release(IEVRFilterConfig* This) { + return This->lpVtbl->Release(This); +} +/*** IEVRFilterConfig methods ***/ +static FORCEINLINE HRESULT IEVRFilterConfig_SetNumberOfStreams(IEVRFilterConfig* This,DWORD dwMaxStreams) { + return This->lpVtbl->SetNumberOfStreams(This,dwMaxStreams); +} +static FORCEINLINE HRESULT IEVRFilterConfig_GetNumberOfStreams(IEVRFilterConfig* This,DWORD *pdwMaxStreams) { + return This->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams); +} +#endif +#endif + +#endif + + +#endif /* __IEVRFilterConfig_INTERFACE_DEFINED__ */ + + +/***************************************************************************** + * IEVRFilterConfigEx interface + */ +#ifndef __IEVRFilterConfigEx_INTERFACE_DEFINED__ +#define __IEVRFilterConfigEx_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IEVRFilterConfigEx, 0xaea36028, 0x796d, 0x454f, 0xbe,0xee, 0xb4,0x80,0x71,0xe2,0x43,0x04); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("aea36028-796d-454f-beee-b48071e24304") +IEVRFilterConfigEx : public IEVRFilterConfig +{ + virtual HRESULT STDMETHODCALLTYPE SetConfigPrefs( + DWORD dwConfigFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetConfigPrefs( + DWORD *pdwConfigFlags) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IEVRFilterConfigEx, 0xaea36028, 0x796d, 0x454f, 0xbe,0xee, 0xb4,0x80,0x71,0xe2,0x43,0x04) +#endif +#else +typedef struct IEVRFilterConfigExVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IEVRFilterConfigEx *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IEVRFilterConfigEx *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IEVRFilterConfigEx *This); + + /*** IEVRFilterConfig methods ***/ + HRESULT (STDMETHODCALLTYPE *SetNumberOfStreams)( + IEVRFilterConfigEx *This, + DWORD dwMaxStreams); + + HRESULT (STDMETHODCALLTYPE *GetNumberOfStreams)( + IEVRFilterConfigEx *This, + DWORD *pdwMaxStreams); + + /*** IEVRFilterConfigEx methods ***/ + HRESULT (STDMETHODCALLTYPE *SetConfigPrefs)( + IEVRFilterConfigEx *This, + DWORD dwConfigFlags); + + HRESULT (STDMETHODCALLTYPE *GetConfigPrefs)( + IEVRFilterConfigEx *This, + DWORD *pdwConfigFlags); + + END_INTERFACE +} IEVRFilterConfigExVtbl; + +interface IEVRFilterConfigEx { + CONST_VTBL IEVRFilterConfigExVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IEVRFilterConfigEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IEVRFilterConfigEx_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IEVRFilterConfigEx_Release(This) (This)->lpVtbl->Release(This) +/*** IEVRFilterConfig methods ***/ +#define IEVRFilterConfigEx_SetNumberOfStreams(This,dwMaxStreams) (This)->lpVtbl->SetNumberOfStreams(This,dwMaxStreams) +#define IEVRFilterConfigEx_GetNumberOfStreams(This,pdwMaxStreams) (This)->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams) +/*** IEVRFilterConfigEx methods ***/ +#define IEVRFilterConfigEx_SetConfigPrefs(This,dwConfigFlags) (This)->lpVtbl->SetConfigPrefs(This,dwConfigFlags) +#define IEVRFilterConfigEx_GetConfigPrefs(This,pdwConfigFlags) (This)->lpVtbl->GetConfigPrefs(This,pdwConfigFlags) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IEVRFilterConfigEx_QueryInterface(IEVRFilterConfigEx* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IEVRFilterConfigEx_AddRef(IEVRFilterConfigEx* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IEVRFilterConfigEx_Release(IEVRFilterConfigEx* This) { + return This->lpVtbl->Release(This); +} +/*** IEVRFilterConfig methods ***/ +static FORCEINLINE HRESULT IEVRFilterConfigEx_SetNumberOfStreams(IEVRFilterConfigEx* This,DWORD dwMaxStreams) { + return This->lpVtbl->SetNumberOfStreams(This,dwMaxStreams); +} +static FORCEINLINE HRESULT IEVRFilterConfigEx_GetNumberOfStreams(IEVRFilterConfigEx* This,DWORD *pdwMaxStreams) { + return This->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams); +} +/*** IEVRFilterConfigEx methods ***/ +static FORCEINLINE HRESULT IEVRFilterConfigEx_SetConfigPrefs(IEVRFilterConfigEx* This,DWORD dwConfigFlags) { + return This->lpVtbl->SetConfigPrefs(This,dwConfigFlags); +} +static FORCEINLINE HRESULT IEVRFilterConfigEx_GetConfigPrefs(IEVRFilterConfigEx* This,DWORD *pdwConfigFlags) { + return This->lpVtbl->GetConfigPrefs(This,pdwConfigFlags); +} +#endif +#endif + +#endif + + +#endif /* __IEVRFilterConfigEx_INTERFACE_DEFINED__ */ + + +/***************************************************************************** + * IMFTopologyServiceLookup interface + */ +#ifndef __IMFTopologyServiceLookup_INTERFACE_DEFINED__ +#define __IMFTopologyServiceLookup_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFTopologyServiceLookup, 0xfa993889, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("fa993889-4383-415a-a930-dd472a8cf6f7") +IMFTopologyServiceLookup : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE LookupService( + MF_SERVICE_LOOKUP_TYPE Type, + DWORD dwIndex, + REFGUID guidService, + REFIID riid, + LPVOID *ppvObjects, + DWORD *pnObjects) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFTopologyServiceLookup, 0xfa993889, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7) +#endif +#else +typedef struct IMFTopologyServiceLookupVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFTopologyServiceLookup *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFTopologyServiceLookup *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFTopologyServiceLookup *This); + + /*** IMFTopologyServiceLookup methods ***/ + HRESULT (STDMETHODCALLTYPE *LookupService)( + IMFTopologyServiceLookup *This, + MF_SERVICE_LOOKUP_TYPE Type, + DWORD dwIndex, + REFGUID guidService, + REFIID riid, + LPVOID *ppvObjects, + DWORD *pnObjects); + + END_INTERFACE +} IMFTopologyServiceLookupVtbl; + +interface IMFTopologyServiceLookup { + CONST_VTBL IMFTopologyServiceLookupVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFTopologyServiceLookup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFTopologyServiceLookup_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFTopologyServiceLookup_Release(This) (This)->lpVtbl->Release(This) +/*** IMFTopologyServiceLookup methods ***/ +#define IMFTopologyServiceLookup_LookupService(This,Type,dwIndex,guidService,riid,ppvObjects,pnObjects) (This)->lpVtbl->LookupService(This,Type,dwIndex,guidService,riid,ppvObjects,pnObjects) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFTopologyServiceLookup_QueryInterface(IMFTopologyServiceLookup* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFTopologyServiceLookup_AddRef(IMFTopologyServiceLookup* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFTopologyServiceLookup_Release(IMFTopologyServiceLookup* This) { + return This->lpVtbl->Release(This); +} +/*** IMFTopologyServiceLookup methods ***/ +static FORCEINLINE HRESULT IMFTopologyServiceLookup_LookupService(IMFTopologyServiceLookup* This,MF_SERVICE_LOOKUP_TYPE Type,DWORD dwIndex,REFGUID guidService,REFIID riid,LPVOID *ppvObjects,DWORD *pnObjects) { + return This->lpVtbl->LookupService(This,Type,dwIndex,guidService,riid,ppvObjects,pnObjects); +} +#endif +#endif + +#endif + + +#endif /* __IMFTopologyServiceLookup_INTERFACE_DEFINED__ */ + + +/***************************************************************************** + * IMFTopologyServiceLookupClient interface + */ +#ifndef __IMFTopologyServiceLookupClient_INTERFACE_DEFINED__ +#define __IMFTopologyServiceLookupClient_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFTopologyServiceLookupClient, 0xfa99388a, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("fa99388a-4383-415a-a930-dd472a8cf6f7") +IMFTopologyServiceLookupClient : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE InitServicePointers( + IMFTopologyServiceLookup *pLookup) = 0; + + virtual HRESULT STDMETHODCALLTYPE ReleaseServicePointers( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFTopologyServiceLookupClient, 0xfa99388a, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7) +#endif +#else +typedef struct IMFTopologyServiceLookupClientVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFTopologyServiceLookupClient *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFTopologyServiceLookupClient *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFTopologyServiceLookupClient *This); + + /*** IMFTopologyServiceLookupClient methods ***/ + HRESULT (STDMETHODCALLTYPE *InitServicePointers)( + IMFTopologyServiceLookupClient *This, + IMFTopologyServiceLookup *pLookup); + + HRESULT (STDMETHODCALLTYPE *ReleaseServicePointers)( + IMFTopologyServiceLookupClient *This); + + END_INTERFACE +} IMFTopologyServiceLookupClientVtbl; + +interface IMFTopologyServiceLookupClient { + CONST_VTBL IMFTopologyServiceLookupClientVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFTopologyServiceLookupClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFTopologyServiceLookupClient_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFTopologyServiceLookupClient_Release(This) (This)->lpVtbl->Release(This) +/*** IMFTopologyServiceLookupClient methods ***/ +#define IMFTopologyServiceLookupClient_InitServicePointers(This,pLookup) (This)->lpVtbl->InitServicePointers(This,pLookup) +#define IMFTopologyServiceLookupClient_ReleaseServicePointers(This) (This)->lpVtbl->ReleaseServicePointers(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFTopologyServiceLookupClient_QueryInterface(IMFTopologyServiceLookupClient* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFTopologyServiceLookupClient_AddRef(IMFTopologyServiceLookupClient* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFTopologyServiceLookupClient_Release(IMFTopologyServiceLookupClient* This) { + return This->lpVtbl->Release(This); +} +/*** IMFTopologyServiceLookupClient methods ***/ +static FORCEINLINE HRESULT IMFTopologyServiceLookupClient_InitServicePointers(IMFTopologyServiceLookupClient* This,IMFTopologyServiceLookup *pLookup) { + return This->lpVtbl->InitServicePointers(This,pLookup); +} +static FORCEINLINE HRESULT IMFTopologyServiceLookupClient_ReleaseServicePointers(IMFTopologyServiceLookupClient* This) { + return This->lpVtbl->ReleaseServicePointers(This); +} +#endif +#endif + +#endif + + +#endif /* __IMFTopologyServiceLookupClient_INTERFACE_DEFINED__ */ + + +/***************************************************************************** + * IEVRTrustedVideoPlugin interface + */ +#ifndef __IEVRTrustedVideoPlugin_INTERFACE_DEFINED__ +#define __IEVRTrustedVideoPlugin_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IEVRTrustedVideoPlugin, 0x83a4ce40, 0x7710, 0x494b, 0xa8,0x93, 0xa4,0x72,0x04,0x9a,0xf6,0x30); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("83a4ce40-7710-494b-a893-a472049af630") +IEVRTrustedVideoPlugin : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE IsInTrustedVideoMode( + WINBOOL *pYes) = 0; + + virtual HRESULT STDMETHODCALLTYPE CanConstrict( + WINBOOL *pYes) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetConstriction( + DWORD dwKPix) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableImageExport( + WINBOOL bDisable) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IEVRTrustedVideoPlugin, 0x83a4ce40, 0x7710, 0x494b, 0xa8,0x93, 0xa4,0x72,0x04,0x9a,0xf6,0x30) +#endif +#else +typedef struct IEVRTrustedVideoPluginVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IEVRTrustedVideoPlugin *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IEVRTrustedVideoPlugin *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IEVRTrustedVideoPlugin *This); + + /*** IEVRTrustedVideoPlugin methods ***/ + HRESULT (STDMETHODCALLTYPE *IsInTrustedVideoMode)( + IEVRTrustedVideoPlugin *This, + WINBOOL *pYes); + + HRESULT (STDMETHODCALLTYPE *CanConstrict)( + IEVRTrustedVideoPlugin *This, + WINBOOL *pYes); + + HRESULT (STDMETHODCALLTYPE *SetConstriction)( + IEVRTrustedVideoPlugin *This, + DWORD dwKPix); + + HRESULT (STDMETHODCALLTYPE *DisableImageExport)( + IEVRTrustedVideoPlugin *This, + WINBOOL bDisable); + + END_INTERFACE +} IEVRTrustedVideoPluginVtbl; + +interface IEVRTrustedVideoPlugin { + CONST_VTBL IEVRTrustedVideoPluginVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IEVRTrustedVideoPlugin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IEVRTrustedVideoPlugin_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IEVRTrustedVideoPlugin_Release(This) (This)->lpVtbl->Release(This) +/*** IEVRTrustedVideoPlugin methods ***/ +#define IEVRTrustedVideoPlugin_IsInTrustedVideoMode(This,pYes) (This)->lpVtbl->IsInTrustedVideoMode(This,pYes) +#define IEVRTrustedVideoPlugin_CanConstrict(This,pYes) (This)->lpVtbl->CanConstrict(This,pYes) +#define IEVRTrustedVideoPlugin_SetConstriction(This,dwKPix) (This)->lpVtbl->SetConstriction(This,dwKPix) +#define IEVRTrustedVideoPlugin_DisableImageExport(This,bDisable) (This)->lpVtbl->DisableImageExport(This,bDisable) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_QueryInterface(IEVRTrustedVideoPlugin* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IEVRTrustedVideoPlugin_AddRef(IEVRTrustedVideoPlugin* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IEVRTrustedVideoPlugin_Release(IEVRTrustedVideoPlugin* This) { + return This->lpVtbl->Release(This); +} +/*** IEVRTrustedVideoPlugin methods ***/ +static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_IsInTrustedVideoMode(IEVRTrustedVideoPlugin* This,WINBOOL *pYes) { + return This->lpVtbl->IsInTrustedVideoMode(This,pYes); +} +static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_CanConstrict(IEVRTrustedVideoPlugin* This,WINBOOL *pYes) { + return This->lpVtbl->CanConstrict(This,pYes); +} +static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_SetConstriction(IEVRTrustedVideoPlugin* This,DWORD dwKPix) { + return This->lpVtbl->SetConstriction(This,dwKPix); +} +static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_DisableImageExport(IEVRTrustedVideoPlugin* This,WINBOOL bDisable) { + return This->lpVtbl->DisableImageExport(This,bDisable); +} +#endif +#endif + +#endif + + +#endif /* __IEVRTrustedVideoPlugin_INTERFACE_DEFINED__ */ + + +HRESULT WINAPI MFCreateVideoPresenter(IUnknown *pOwner, REFIID riidDevice, REFIID riid, void **ppVideoPresenter); +HRESULT WINAPI MFCreateVideoMixer(IUnknown *pOwner, REFIID riidDevice, REFIID riid, void **ppv); +HRESULT WINAPI MFCreateVideoMixerAndPresenter(IUnknown *pMixerOwner, IUnknown *pPresenterOwner, REFIID riidMixer, void **ppvVideoMixer, REFIID riidPresenter, void **ppvVideoPresenter); +HRESULT WINAPI MFCreateVideoRenderer( REFIID riidRenderer, void **ppVideoRenderer ); +HRESULT WINAPI MFCreateVideoSampleFromSurface(IUnknown *pUnkSurface, IMFSample **ppSample); +HRESULT WINAPI MFCreateVideoSampleAllocator(REFIID riid, void **ppSampleAllocator); +#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ + +/* Begin additional prototypes for all interfaces */ + +ULONG __RPC_USER HWND_UserSize (ULONG *, ULONG, HWND *); +unsigned char * __RPC_USER HWND_UserMarshal (ULONG *, unsigned char *, HWND *); +unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *); +void __RPC_USER HWND_UserFree (ULONG *, HWND *); + +/* End additional prototypes */ #ifdef __cplusplus } #endif -#endif /*(_WIN32_WINNT >= 0x0600)*/ - -#endif /*_INC_EVR*/ +#endif /* __evr_h__ */ diff --git a/mingw-w64-headers/include/evr.idl b/mingw-w64-headers/include/evr.idl new file mode 100644 index 000000000..d2a54bd4a --- /dev/null +++ b/mingw-w64-headers/include/evr.idl @@ -0,0 +1,279 @@ +cpp_quote("/**") +cpp_quote(" * This file is part of the mingw-w64 runtime package.") +cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.") +cpp_quote(" */") +cpp_quote("") +cpp_quote("#include ") +cpp_quote("") +cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") + +import "unknwn.idl"; +import "propidl.idl"; +import "mfidl.idl"; +import "mftransform.idl"; +import "mediaobj.idl"; +import "strmif.idl"; + +interface IMFTrackedSample; +interface IMFVideoDisplayControl; +interface IMFVideoPresenter; +interface IMFVideoPositionMapper; +interface IMFDesiredSample; +interface IMFVideoMixerControl; +interface IMFVideoRenderer; +interface IMFVideoDeviceID; +interface IEVRFilterConfig; + +cpp_quote("#if defined(__midl)") + +#ifndef MAKEFOURCC +#define MAKEFOURCC(ch0, ch1, ch2, ch3) \ + ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \ + ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 )) +#endif + +#ifndef D3DFORMAT +cpp_quote("") +typedef enum _D3DFORMAT { + D3DFMT_UNKNOWN = 0, + D3DFMT_R8G8B8 = 20, + D3DFMT_A8R8G8B8 = 21, + D3DFMT_X8R8G8B8 = 22, + D3DFMT_R5G6B5 = 23, + D3DFMT_X1R5G5B5 = 24, + D3DFMT_A1R5G5B5 = 25, + D3DFMT_A4R4G4B4 = 26, + D3DFMT_R3G3B2 = 27, + D3DFMT_A8 = 28, + D3DFMT_A8R3G3B2 = 29, + D3DFMT_X4R4G4B4 = 30, + D3DFMT_A2B10G10R10 = 31, + D3DFMT_G16R16 = 34, + D3DFMT_A8P8 = 40, + D3DFMT_P8 = 41, + D3DFMT_L8 = 50, + D3DFMT_A8L8 = 51, + D3DFMT_A4L4 = 52, + D3DFMT_V8U8 = 60, + D3DFMT_L6V5U5 = 61, + D3DFMT_X8L8V8U8 = 62, + D3DFMT_Q8W8V8U8 = 63, + D3DFMT_V16U16 = 64, + D3DFMT_W11V11U10 = 65, + D3DFMT_A2W10V10U10 = 67, + D3DFMT_D16_LOCKABLE = 70, + D3DFMT_D32 = 71, + D3DFMT_D15S1 = 73, + D3DFMT_D24S8 = 75, + D3DFMT_D16 = 80, + D3DFMT_D24X8 = 77, + D3DFMT_D24X4S4 = 79, + D3DFMT_VERTEXDATA = 100, + D3DFMT_INDEX16 = 101, + D3DFMT_INDEX32 = 102, + D3DFMT_FORCE_DWORD = 0x7fffffff +} D3DFORMAT; +#endif +cpp_quote("#endif") + +cpp_quote("") +typedef enum MFVideoAspectRatioMode { + MFVideoARMode_None = 0x00, + MFVideoARMode_PreservePicture = 0x01, + MFVideoARMode_PreservePixel = 0x02, + MFVideoARMode_NonLinearStretch = 0x04, + MFVideoARMode_Mask = 0x07 +} MFVideoAspectRatioMode; + +cpp_quote("") +typedef enum MFVideoRenderPrefs { + MFVideoRenderPrefs_DoNotRenderBorder = 0x01, + MFVideoRenderPrefs_DoNotClipToDevice = 0x02, + MFVideoRenderPrefs_AllowOutputThrottling = 0x04, + MFVideoRenderPrefs_ForceOutputThrottling = 0x08, + MFVideoRenderPrefs_ForceBatching = 0x10, + MFVideoRenderPrefs_AllowBatching = 0x20, + MFVideoRenderPrefs_ForceScaling = 0x40, + MFVideoRenderPrefs_AllowScaling = 0x80, + MFVideoRenderPrefs_DoNotRepaintOnStop = 0x100, + MFVideoRenderPrefs_Mask = 0x1ff +} MFVideoRenderPrefs; + +cpp_quote("") +cpp_quote("#ifndef _MFVideoNormalizedRect_") +cpp_quote("#define _MFVideoNormalizedRect_") +typedef struct MFVideoNormalizedRect { + float left; + float top; + float right; + float bottom; +} MFVideoNormalizedRect; +cpp_quote("#endif") + +cpp_quote("") +typedef enum MFVP_MESSAGE_TYPE { + MFVP_MESSAGE_FLUSH = 0x00, + MFVP_MESSAGE_INVALIDATEMEDIATYPE = 0x01, + MFVP_MESSAGE_PROCESSINPUTNOTIFY = 0x02, + MFVP_MESSAGE_BEGINSTREAMING = 0x03, + MFVP_MESSAGE_ENDSTREAMING = 0x04, + MFVP_MESSAGE_ENDOFSTREAM = 0x05, + MFVP_MESSAGE_STEP = 0x06, + MFVP_MESSAGE_CANCELSTEP = 0x07 +} MFVP_MESSAGE_TYPE; + +cpp_quote("") +typedef enum _MFVideoMixPrefs { + MFVideoMixPrefs_ForceHalfInterlace = 0x01, + MFVideoMixPrefs_AllowDropToHalfInterlace = 0x02, + MFVideoMixPrefs_AllowDropToBob = 0x04, + MFVideoMixPrefs_ForceBob = 0x08, + MFVideoMixPrefs_EnableRotation = 0x10, + MFVideoMixPrefs_Mask = 0x1f +} MFVideoMixPrefs; + +cpp_quote("") +typedef enum _EVRFilterConfig_Prefs { + EVRFilterConfigPrefs_EnableQoS = 0x01, + EVRFilterConfigPrefs_Mask = 0x01 +} EVRFilterConfigPrefs; + +cpp_quote("") +typedef enum _MF_SERVICE_LOOKUP_TYPE { + MF_SERVICE_LOOKUP_UPSTREAM, + MF_SERVICE_LOOKUP_UPSTREAM_DIRECT, + MF_SERVICE_LOOKUP_DOWNSTREAM, + MF_SERVICE_LOOKUP_DOWNSTREAM_DIRECT, + MF_SERVICE_LOOKUP_ALL, + MF_SERVICE_LOOKUP_GLOBAL +} MF_SERVICE_LOOKUP_TYPE; + +cpp_quote("") +cpp_quote("DEFINE_GUID(MR_VIDEO_RENDER_SERVICE, 0x1092a86c, 0xab1a, 0x459a, 0xa3, 0x36, 0x83, 0x1f, 0xbc, 0x4d, 0x11, 0xff);") +cpp_quote("DEFINE_GUID(MR_VIDEO_MIXER_SERVICE, 0x73cd2fc, 0x6cf4, 0x40b7, 0x88, 0x59, 0xe8, 0x95, 0x52, 0xc8, 0x41, 0xf8);") +cpp_quote("DEFINE_GUID(MR_VIDEO_ACCELERATION_SERVICE, 0xefef5175, 0x5c7d, 0x4ce2, 0xbb, 0xbd, 0x34, 0xff, 0x8b, 0xca, 0x65, 0x54);") +cpp_quote("DEFINE_GUID(MR_BUFFER_SERVICE, 0xa562248c, 0x9ac6, 0x4ffc, 0x9f, 0xba, 0x3a, 0xf8, 0xf8, 0xad, 0x1a, 0x4d);") +cpp_quote("DEFINE_GUID(VIDEO_ZOOM_RECT, 0x7aaa1638, 0x1b7f, 0x4c93, 0xbd, 0x89, 0x5b, 0x9c, 0x9f, 0xb6, 0xfc, 0xf0);") + +cpp_quote("") +[object, uuid(1F6A9F17-E70B-4e24-8AE4-0B2C3BA7A4AE), helpstring("IMFVideoPositionMapper Interface"), local] +interface IMFVideoPositionMapper : IUnknown { + HRESULT MapOutputCoordinateToInputStream ([in] float xOut, [in] float yOut, [in] DWORD dwOutputStreamIndex, [in] DWORD dwInputStreamIndex, [out] float* pxIn, [out] float* pyIn); +}; + +cpp_quote("") +[object, uuid(A38D9567-5A9C-4f3c-B293-8EB415B279BA), helpstring("IMFVideoDeviceID Interface"), local] +interface IMFVideoDeviceID : IUnknown { + HRESULT GetDeviceID ([out] IID* pDeviceID); +}; + +cpp_quote("") +[object, uuid(a490b1e4-ab84-4d31-a1b2-181e03b1077a), helpstring("IMFVideoDisplayControl Interface")] +interface IMFVideoDisplayControl : IUnknown { + HRESULT GetNativeVideoSize ([in, out, unique] SIZE* pszVideo, [in, out, unique] SIZE* pszARVideo); + HRESULT GetIdealVideoSize ([in, out, unique] SIZE* pszMin, [in, out, unique] SIZE* pszMax); + HRESULT SetVideoPosition ([in, unique] const MFVideoNormalizedRect* pnrcSource, [in, unique] const LPRECT prcDest); + HRESULT GetVideoPosition ([out] MFVideoNormalizedRect* pnrcSource, [out] LPRECT prcDest); + HRESULT SetAspectRatioMode ([in] DWORD dwAspectRatioMode); + HRESULT GetAspectRatioMode ([out] DWORD* pdwAspectRatioMode); + HRESULT SetVideoWindow ([in] HWND hwndVideo); + HRESULT GetVideoWindow ([out] HWND* phwndVideo); + HRESULT RepaintVideo (); + HRESULT GetCurrentImage ([in, out] BITMAPINFOHEADER* pBih,[out, size_is(, *pcbDib)] BYTE** pDib, [out] DWORD* pcbDib, [in, out, unique] LONGLONG* pTimeStamp); + HRESULT SetBorderColor ([in] COLORREF Clr); + HRESULT GetBorderColor ([out] COLORREF* pClr); + HRESULT SetRenderingPrefs ([in] DWORD dwRenderFlags); + HRESULT GetRenderingPrefs ([out] DWORD* pdwRenderFlags); + HRESULT SetFullscreen ([in] BOOL fFullscreen); + HRESULT GetFullscreen ([out] BOOL* pfFullscreen); +}; + +cpp_quote("") +[object, uuid(29AFF080-182A-4a5d-AF3B-448F3A6346CB), helpstring("IMFVideoPresenter Interface"), local] +interface IMFVideoPresenter : IMFClockStateSink { + HRESULT ProcessMessage (MFVP_MESSAGE_TYPE eMessage, ULONG_PTR ulParam); + HRESULT GetCurrentMediaType ([out] IMFVideoMediaType** ppMediaType); +}; + +cpp_quote("") +[object, uuid(56C294D0-753E-4260-8D61-A3D8820B1D54), helpstring("IMFDesiredSample Interface"), local] +interface IMFDesiredSample : IUnknown { + HRESULT GetDesiredSampleTimeAndDuration ([out] LONGLONG *phnsSampleTime, [out] LONGLONG *phnsSampleDuration); + void SetDesiredSampleTimeAndDuration ([in] LONGLONG hnsSampleTime, [in] LONGLONG hnsSampleDuration); + void Clear(); +}; + +cpp_quote("") +[object, uuid(245BF8E9-0755-40f7-88A5-AE0F18D55E17), helpstring("IMFTrackedSample Interface"), local] +interface IMFTrackedSample : IUnknown { + HRESULT SetAllocator ([in] IMFAsyncCallback *pSampleAllocator, [in, unique] IUnknown *pUnkState); +}; + +cpp_quote("") +[object, uuid(A5C6C53F-C202-4aa5-9695-175BA8C508A5), helpstring("IMFVideoMixerControl Interface")] +interface IMFVideoMixerControl : IUnknown { + HRESULT SetStreamZOrder ([in] DWORD dwStreamID, [in] DWORD dwZ); + HRESULT GetStreamZOrder ([in] DWORD dwStreamID, [out] DWORD *pdwZ); + HRESULT SetStreamOutputRect ([in] DWORD dwStreamID, [in] const MFVideoNormalizedRect *pnrcOutput); + HRESULT GetStreamOutputRect ([in] DWORD dwStreamID, [out] MFVideoNormalizedRect *pnrcOutput); +}; + +cpp_quote("") +[object, uuid(8459616d-966e-4930-b658-54fa7e5a16d3), helpstring("IMFVideoMixerControl2 Interface")] +interface IMFVideoMixerControl2 : IMFVideoMixerControl { + HRESULT SetMixingPrefs ([in] DWORD dwMixFlags); + HRESULT GetMixingPrefs ([out] DWORD *pdwMixFlags); +}; + +cpp_quote("") +[object, uuid(DFDFD197-A9CA-43d8-B341-6AF3503792CD), helpstring("IMFVideoRenderer Interface"), local] +interface IMFVideoRenderer : IUnknown { + HRESULT InitializeRenderer ([in, unique] IMFTransform* pVideoMixer, [in, unique] IMFVideoPresenter* pVideoPresenter); +}; + +cpp_quote("") +[object, uuid(83E91E85-82C1-4ea7-801D-85DC50B75086), helpstring("IEVRFilterConfig Interface"), local] +interface IEVRFilterConfig : IUnknown { + HRESULT SetNumberOfStreams ([in] DWORD dwMaxStreams); + HRESULT GetNumberOfStreams ([out,] DWORD* pdwMaxStreams); +}; + +cpp_quote("") +[object, uuid(aea36028-796d-454f-beee-b48071e24304), helpstring("IEVRFilterConfigEx Interface")] +interface IEVRFilterConfigEx : IEVRFilterConfig { + HRESULT SetConfigPrefs ([in] DWORD dwConfigFlags); + HRESULT GetConfigPrefs ([out] DWORD* pdwConfigFlags); +}; + +cpp_quote("") +[object, uuid(fa993889-4383-415a-a930-dd472a8cf6f7), helpstring("IMFTopologyServiceLookup Interface"), local] +interface IMFTopologyServiceLookup : IUnknown { + HRESULT LookupService([in] MF_SERVICE_LOOKUP_TYPE Type, [in] DWORD dwIndex, [in] REFGUID guidService, [in] REFIID riid, [out, iid_is(riid)] LPVOID *ppvObjects, [in, out] DWORD *pnObjects); +}; + +cpp_quote("") +[local, object, uuid(fa99388a-4383-415a-a930-dd472a8cf6f7)] +interface IMFTopologyServiceLookupClient : IUnknown { + HRESULT InitServicePointers ([in] IMFTopologyServiceLookup * pLookup); + HRESULT ReleaseServicePointers (); +}; + +cpp_quote("") +[object, uuid(83A4CE40-7710-494b-A893-A472049AF630), helpstring("IEVRTrustedVideoPlugin Interface"), local] +interface IEVRTrustedVideoPlugin: IUnknown { + HRESULT IsInTrustedVideoMode ([out] BOOL *pYes); + HRESULT CanConstrict ([out] BOOL *pYes); + HRESULT SetConstriction (DWORD dwKPix); + HRESULT DisableImageExport (BOOL bDisable); +}; + +cpp_quote("") +cpp_quote("HRESULT WINAPI MFCreateVideoPresenter(IUnknown *pOwner, REFIID riidDevice, REFIID riid, void **ppVideoPresenter);") +cpp_quote("HRESULT WINAPI MFCreateVideoMixer(IUnknown *pOwner, REFIID riidDevice, REFIID riid, void **ppv);") +cpp_quote("HRESULT WINAPI MFCreateVideoMixerAndPresenter(IUnknown *pMixerOwner, IUnknown *pPresenterOwner, REFIID riidMixer, void **ppvVideoMixer, REFIID riidPresenter, void **ppvVideoPresenter);") +cpp_quote("HRESULT WINAPI MFCreateVideoRenderer( REFIID riidRenderer, void **ppVideoRenderer );") +cpp_quote("HRESULT WINAPI MFCreateVideoSampleFromSurface(IUnknown *pUnkSurface, IMFSample **ppSample);") +cpp_quote("HRESULT WINAPI MFCreateVideoSampleAllocator(REFIID riid, void **ppSampleAllocator);") + +cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */") +cpp_quote("")