2018-11-10 05:40:43 +08:00
|
|
|
/*** Autogenerated by WIDL 3.20 from direct-x/include/vmr9.idl - Do not edit ***/
|
2010-02-12 22:10:48 +08:00
|
|
|
|
2011-10-13 01:18:21 +08:00
|
|
|
#ifndef __REQUIRED_RPCNDR_H_VERSION__
|
|
|
|
#define __REQUIRED_RPCNDR_H_VERSION__ 475
|
|
|
|
#endif
|
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
#include <rpc.h>
|
|
|
|
#include <rpcndr.h>
|
|
|
|
|
2012-01-26 20:38:11 +08:00
|
|
|
#ifndef COM_NO_WINDOWS_H
|
2011-06-30 18:17:34 +08:00
|
|
|
#include <windows.h>
|
|
|
|
#include <ole2.h>
|
|
|
|
#endif
|
|
|
|
|
2012-03-09 20:48:29 +08:00
|
|
|
#ifndef __vmr9_h__
|
|
|
|
#define __vmr9_h__
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/* Forward declarations */
|
|
|
|
|
|
|
|
#ifndef __IVMRImagePresenter9_FWD_DEFINED__
|
|
|
|
#define __IVMRImagePresenter9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRImagePresenter9 IVMRImagePresenter9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRImagePresenter9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRSurfaceAllocator9_FWD_DEFINED__
|
|
|
|
#define __IVMRSurfaceAllocator9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRSurfaceAllocator9 IVMRSurfaceAllocator9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRSurfaceAllocator9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
|
|
|
|
#define __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRSurfaceAllocatorEx9 IVMRSurfaceAllocatorEx9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRSurfaceAllocatorEx9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
|
|
|
|
#define __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRSurfaceAllocatorNotify9 IVMRSurfaceAllocatorNotify9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRSurfaceAllocatorNotify9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRWindowlessControl9_FWD_DEFINED__
|
|
|
|
#define __IVMRWindowlessControl9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRWindowlessControl9 IVMRWindowlessControl9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRWindowlessControl9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRMixerControl9_FWD_DEFINED__
|
|
|
|
#define __IVMRMixerControl9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRMixerControl9 IVMRMixerControl9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRMixerControl9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRMixerBitmap9_FWD_DEFINED__
|
|
|
|
#define __IVMRMixerBitmap9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRMixerBitmap9 IVMRMixerBitmap9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRMixerBitmap9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRSurface9_FWD_DEFINED__
|
|
|
|
#define __IVMRSurface9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRSurface9 IVMRSurface9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRSurface9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRImagePresenterConfig9_FWD_DEFINED__
|
|
|
|
#define __IVMRImagePresenterConfig9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRImagePresenterConfig9 IVMRImagePresenterConfig9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRImagePresenterConfig9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRVideoStreamControl9_FWD_DEFINED__
|
|
|
|
#define __IVMRVideoStreamControl9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRVideoStreamControl9 IVMRVideoStreamControl9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRVideoStreamControl9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRFilterConfig9_FWD_DEFINED__
|
|
|
|
#define __IVMRFilterConfig9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRFilterConfig9 IVMRFilterConfig9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRFilterConfig9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRAspectRatioControl9_FWD_DEFINED__
|
|
|
|
#define __IVMRAspectRatioControl9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRAspectRatioControl9 IVMRAspectRatioControl9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRAspectRatioControl9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRMonitorConfig9_FWD_DEFINED__
|
|
|
|
#define __IVMRMonitorConfig9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRMonitorConfig9 IVMRMonitorConfig9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRMonitorConfig9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRDeinterlaceControl9_FWD_DEFINED__
|
|
|
|
#define __IVMRDeinterlaceControl9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRDeinterlaceControl9 IVMRDeinterlaceControl9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRDeinterlaceControl9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRImageCompositor9_FWD_DEFINED__
|
|
|
|
#define __IVMRImageCompositor9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRImageCompositor9 IVMRImageCompositor9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRImageCompositor9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
2011-05-28 21:53:57 +08:00
|
|
|
/* Headers for imported files */
|
|
|
|
|
|
|
|
#include <unknwn.h>
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
#if 0
|
|
|
|
#ifndef __IDirect3DSurface9_FWD_DEFINED__
|
|
|
|
#define __IDirect3DSurface9_FWD_DEFINED__
|
|
|
|
typedef interface IDirect3DSurface9 IDirect3DSurface9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IDirect3DSurface9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IDirect3DDevice9_FWD_DEFINED__
|
|
|
|
#define __IDirect3DDevice9_FWD_DEFINED__
|
|
|
|
typedef interface IDirect3DDevice9 IDirect3DDevice9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IDirect3DDevice9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
typedef LONGLONG REFERENCE_TIME;
|
|
|
|
typedef DWORD D3DFORMAT;
|
|
|
|
typedef DWORD D3DPOOL;
|
|
|
|
typedef HANDLE HMONITOR;
|
2014-12-12 22:09:04 +08:00
|
|
|
typedef struct __WIDL_vmr9_generated_name_00000002 {
|
2010-02-12 22:10:48 +08:00
|
|
|
char dummy;
|
|
|
|
} AM_MEDIA_TYPE;
|
2014-12-12 22:09:04 +08:00
|
|
|
typedef struct __WIDL_vmr9_generated_name_00000003 {
|
2010-02-12 22:10:48 +08:00
|
|
|
char dummy;
|
|
|
|
} D3DCOLOR;
|
|
|
|
#endif
|
|
|
|
#ifndef __IVMRSurface9_FWD_DEFINED__
|
|
|
|
#define __IVMRSurface9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRSurface9 IVMRSurface9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRSurface9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRSurfaceAllocator9_FWD_DEFINED__
|
|
|
|
#define __IVMRSurfaceAllocator9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRSurfaceAllocator9 IVMRSurfaceAllocator9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRSurfaceAllocator9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
|
|
|
|
#define __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRSurfaceAllocatorEx9 IVMRSurfaceAllocatorEx9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRSurfaceAllocatorEx9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
|
|
|
|
#define __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRSurfaceAllocatorNotify9 IVMRSurfaceAllocatorNotify9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRSurfaceAllocatorNotify9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRImagePresenter9_FWD_DEFINED__
|
|
|
|
#define __IVMRImagePresenter9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRImagePresenter9 IVMRImagePresenter9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRImagePresenter9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRImagePresenterConfig9_FWD_DEFINED__
|
|
|
|
#define __IVMRImagePresenterConfig9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRImagePresenterConfig9 IVMRImagePresenterConfig9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRImagePresenterConfig9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRMonitorConfig9_FWD_DEFINED__
|
|
|
|
#define __IVMRMonitorConfig9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRMonitorConfig9 IVMRMonitorConfig9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRMonitorConfig9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRWindowlessControl9_FWD_DEFINED__
|
|
|
|
#define __IVMRWindowlessControl9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRWindowlessControl9 IVMRWindowlessControl9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRWindowlessControl9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRMixerControl9_FWD_DEFINED__
|
|
|
|
#define __IVMRMixerControl9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRMixerControl9 IVMRMixerControl9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRMixerControl9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRImageCompositor9_FWD_DEFINED__
|
|
|
|
#define __IVMRImageCompositor9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRImageCompositor9 IVMRImageCompositor9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRImageCompositor9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRMixerBitmap9_FWD_DEFINED__
|
|
|
|
#define __IVMRMixerBitmap9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRMixerBitmap9 IVMRMixerBitmap9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRMixerBitmap9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRFilterConfig9_FWD_DEFINED__
|
|
|
|
#define __IVMRFilterConfig9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRFilterConfig9 IVMRFilterConfig9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRFilterConfig9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRAspectRatioControl9_FWD_DEFINED__
|
|
|
|
#define __IVMRAspectRatioControl9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRAspectRatioControl9 IVMRAspectRatioControl9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRAspectRatioControl9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __IVMRVideoStreamControl9_FWD_DEFINED__
|
|
|
|
#define __IVMRVideoStreamControl9_FWD_DEFINED__
|
|
|
|
typedef interface IVMRVideoStreamControl9 IVMRVideoStreamControl9;
|
2018-11-10 05:40:43 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
interface IVMRVideoStreamControl9;
|
|
|
|
#endif /* __cplusplus */
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
typedef enum _VMR9PresentationFlags {
|
|
|
|
VMR9Sample_SyncPoint = 0x1,
|
|
|
|
VMR9Sample_Preroll = 0x2,
|
|
|
|
VMR9Sample_Discontinuity = 0x4,
|
|
|
|
VMR9Sample_TimeValid = 0x8,
|
|
|
|
VMR9Sample_SrcDstRectsValid = 0x10
|
|
|
|
} VMR9PresentationFlags;
|
|
|
|
typedef struct _VMR9PresentationInfo {
|
|
|
|
DWORD dwFlags;
|
|
|
|
IDirect3DSurface9 *lpSurf;
|
|
|
|
REFERENCE_TIME rtStart;
|
|
|
|
REFERENCE_TIME rtEnd;
|
|
|
|
SIZE szAspectRatio;
|
|
|
|
RECT rcSrc;
|
|
|
|
RECT rcDst;
|
|
|
|
DWORD dwReserved1;
|
|
|
|
DWORD dwReserved2;
|
|
|
|
} VMR9PresentationInfo;
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRImagePresenter9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRImagePresenter9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRImagePresenter9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRImagePresenter9, 0x69188c61, 0x12a3, 0x40f0, 0x8f,0xfc, 0x34,0x2e,0x7b,0x43,0x3f,0xd7);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("69188c61-12a3-40f0-8ffc-342e7b433fd7")
|
|
|
|
IVMRImagePresenter9 : public IUnknown
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE StartPresenting(
|
|
|
|
DWORD_PTR id) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE StopPresenting(
|
|
|
|
DWORD_PTR id) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE PresentImage(
|
|
|
|
DWORD_PTR id,
|
|
|
|
VMR9PresentationInfo *info) = 0;
|
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRImagePresenter9, 0x69188c61, 0x12a3, 0x40f0, 0x8f,0xfc, 0x34,0x2e,0x7b,0x43,0x3f,0xd7)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRImagePresenter9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImagePresenter9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImagePresenter9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImagePresenter9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRImagePresenter9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *StartPresenting)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImagePresenter9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD_PTR id);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *StopPresenting)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImagePresenter9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD_PTR id);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *PresentImage)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImagePresenter9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD_PTR id,
|
|
|
|
VMR9PresentationInfo *info);
|
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRImagePresenter9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRImagePresenter9 {
|
|
|
|
CONST_VTBL IVMRImagePresenter9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRImagePresenter9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRImagePresenter9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRImagePresenter9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRImagePresenter9 methods ***/
|
|
|
|
#define IVMRImagePresenter9_StartPresenting(This,id) (This)->lpVtbl->StartPresenting(This,id)
|
|
|
|
#define IVMRImagePresenter9_StopPresenting(This,id) (This)->lpVtbl->StopPresenting(This,id)
|
|
|
|
#define IVMRImagePresenter9_PresentImage(This,id,info) (This)->lpVtbl->PresentImage(This,id,info)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRImagePresenter9_QueryInterface(IVMRImagePresenter9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRImagePresenter9_AddRef(IVMRImagePresenter9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRImagePresenter9_Release(IVMRImagePresenter9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRImagePresenter9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRImagePresenter9_StartPresenting(IVMRImagePresenter9* This,DWORD_PTR id) {
|
|
|
|
return This->lpVtbl->StartPresenting(This,id);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRImagePresenter9_StopPresenting(IVMRImagePresenter9* This,DWORD_PTR id) {
|
|
|
|
return This->lpVtbl->StopPresenting(This,id);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRImagePresenter9_PresentImage(IVMRImagePresenter9* This,DWORD_PTR id,VMR9PresentationInfo *info) {
|
|
|
|
return This->lpVtbl->PresentImage(This,id,info);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRImagePresenter9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
typedef enum _VMR9SurfaceAllocationFlags {
|
|
|
|
VMR9AllocFlag_3DRenderTarget = 0x1,
|
|
|
|
VMR9AllocFlag_DXVATarget = 0x2,
|
|
|
|
VMR9AllocFlag_TextureSurface = 0x4,
|
|
|
|
VMR9AllocFlag_OffscreenSurface = 0x8,
|
|
|
|
VMR9AllocFlag_RGBDynamicSwitch = 0x10,
|
|
|
|
VMR9AllocFlag_UsageReserved = 0xe0,
|
|
|
|
VMR9AllocFlag_UsageMask = 0xff
|
|
|
|
} VMR9SurfaceAllocationFlags;
|
|
|
|
typedef struct _VMR9AllocationInfo {
|
|
|
|
DWORD dwFlags;
|
|
|
|
DWORD dwWidth;
|
|
|
|
DWORD dwHeight;
|
|
|
|
D3DFORMAT Format;
|
|
|
|
D3DPOOL Pool;
|
|
|
|
DWORD MinBuffers;
|
|
|
|
SIZE szAspectRatio;
|
|
|
|
SIZE szNativeSize;
|
|
|
|
} VMR9AllocationInfo;
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRSurfaceAllocator9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRSurfaceAllocator9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRSurfaceAllocator9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRSurfaceAllocator9, 0x8d5148ea, 0x3f5d, 0x46cf, 0x9d,0xf1, 0xd1,0xb8,0x96,0xee,0xdb,0x1f);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("8d5148ea-3f5d-46cf-9df1-d1b896eedb1f")
|
|
|
|
IVMRSurfaceAllocator9 : public IUnknown
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE InitializeDevice(
|
|
|
|
DWORD_PTR id,
|
|
|
|
VMR9AllocationInfo *allocinfo,
|
|
|
|
DWORD *numbuffers) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE TerminateDevice(
|
|
|
|
DWORD_PTR id) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetSurface(
|
|
|
|
DWORD_PTR id,
|
|
|
|
DWORD surfaceindex,
|
|
|
|
DWORD flags,
|
|
|
|
IDirect3DSurface9 **surface) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE AdviseNotify(
|
|
|
|
IVMRSurfaceAllocatorNotify9 *allocnotify) = 0;
|
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRSurfaceAllocator9, 0x8d5148ea, 0x3f5d, 0x46cf, 0x9d,0xf1, 0xd1,0xb8,0x96,0xee,0xdb,0x1f)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRSurfaceAllocator9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocator9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocator9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocator9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRSurfaceAllocator9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *InitializeDevice)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocator9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD_PTR id,
|
|
|
|
VMR9AllocationInfo *allocinfo,
|
|
|
|
DWORD *numbuffers);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *TerminateDevice)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocator9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD_PTR id);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetSurface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocator9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD_PTR id,
|
|
|
|
DWORD surfaceindex,
|
|
|
|
DWORD flags,
|
|
|
|
IDirect3DSurface9 **surface);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *AdviseNotify)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocator9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
IVMRSurfaceAllocatorNotify9 *allocnotify);
|
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRSurfaceAllocator9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRSurfaceAllocator9 {
|
|
|
|
CONST_VTBL IVMRSurfaceAllocator9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRSurfaceAllocator9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRSurfaceAllocator9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRSurfaceAllocator9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRSurfaceAllocator9 methods ***/
|
|
|
|
#define IVMRSurfaceAllocator9_InitializeDevice(This,id,allocinfo,numbuffers) (This)->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers)
|
|
|
|
#define IVMRSurfaceAllocator9_TerminateDevice(This,id) (This)->lpVtbl->TerminateDevice(This,id)
|
|
|
|
#define IVMRSurfaceAllocator9_GetSurface(This,id,surfaceindex,flags,surface) (This)->lpVtbl->GetSurface(This,id,surfaceindex,flags,surface)
|
|
|
|
#define IVMRSurfaceAllocator9_AdviseNotify(This,allocnotify) (This)->lpVtbl->AdviseNotify(This,allocnotify)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocator9_QueryInterface(IVMRSurfaceAllocator9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRSurfaceAllocator9_AddRef(IVMRSurfaceAllocator9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRSurfaceAllocator9_Release(IVMRSurfaceAllocator9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRSurfaceAllocator9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocator9_InitializeDevice(IVMRSurfaceAllocator9* This,DWORD_PTR id,VMR9AllocationInfo *allocinfo,DWORD *numbuffers) {
|
|
|
|
return This->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocator9_TerminateDevice(IVMRSurfaceAllocator9* This,DWORD_PTR id) {
|
|
|
|
return This->lpVtbl->TerminateDevice(This,id);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocator9_GetSurface(IVMRSurfaceAllocator9* This,DWORD_PTR id,DWORD surfaceindex,DWORD flags,IDirect3DSurface9 **surface) {
|
|
|
|
return This->lpVtbl->GetSurface(This,id,surfaceindex,flags,surface);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocator9_AdviseNotify(IVMRSurfaceAllocator9* This,IVMRSurfaceAllocatorNotify9 *allocnotify) {
|
|
|
|
return This->lpVtbl->AdviseNotify(This,allocnotify);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRSurfaceAllocator9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRSurfaceAllocatorEx9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRSurfaceAllocatorEx9, 0x6de9a68a, 0xa928, 0x4522, 0xbf,0x57, 0x65,0x5a,0xe3,0x86,0x64,0x56);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("6de9a68a-a928-4522-bf57-655ae3866456")
|
|
|
|
IVMRSurfaceAllocatorEx9 : public IVMRSurfaceAllocator9
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetSurfaceEx(
|
|
|
|
DWORD_PTR id,
|
|
|
|
DWORD surfaceindex,
|
|
|
|
DWORD flags,
|
|
|
|
IDirect3DSurface9 **surface,
|
|
|
|
RECT *dest) = 0;
|
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRSurfaceAllocatorEx9, 0x6de9a68a, 0xa928, 0x4522, 0xbf,0x57, 0x65,0x5a,0xe3,0x86,0x64,0x56)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRSurfaceAllocatorEx9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorEx9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorEx9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorEx9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRSurfaceAllocator9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *InitializeDevice)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorEx9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD_PTR id,
|
|
|
|
VMR9AllocationInfo *allocinfo,
|
|
|
|
DWORD *numbuffers);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *TerminateDevice)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorEx9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD_PTR id);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetSurface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorEx9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD_PTR id,
|
|
|
|
DWORD surfaceindex,
|
|
|
|
DWORD flags,
|
|
|
|
IDirect3DSurface9 **surface);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *AdviseNotify)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorEx9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
IVMRSurfaceAllocatorNotify9 *allocnotify);
|
|
|
|
|
|
|
|
/*** IVMRSurfaceAllocatorEx9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetSurfaceEx)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorEx9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD_PTR id,
|
|
|
|
DWORD surfaceindex,
|
|
|
|
DWORD flags,
|
|
|
|
IDirect3DSurface9 **surface,
|
|
|
|
RECT *dest);
|
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRSurfaceAllocatorEx9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRSurfaceAllocatorEx9 {
|
|
|
|
CONST_VTBL IVMRSurfaceAllocatorEx9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRSurfaceAllocatorEx9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRSurfaceAllocatorEx9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRSurfaceAllocatorEx9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRSurfaceAllocator9 methods ***/
|
|
|
|
#define IVMRSurfaceAllocatorEx9_InitializeDevice(This,id,allocinfo,numbuffers) (This)->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers)
|
|
|
|
#define IVMRSurfaceAllocatorEx9_TerminateDevice(This,id) (This)->lpVtbl->TerminateDevice(This,id)
|
|
|
|
#define IVMRSurfaceAllocatorEx9_GetSurface(This,id,surfaceindex,flags,surface) (This)->lpVtbl->GetSurface(This,id,surfaceindex,flags,surface)
|
|
|
|
#define IVMRSurfaceAllocatorEx9_AdviseNotify(This,allocnotify) (This)->lpVtbl->AdviseNotify(This,allocnotify)
|
|
|
|
/*** IVMRSurfaceAllocatorEx9 methods ***/
|
|
|
|
#define IVMRSurfaceAllocatorEx9_GetSurfaceEx(This,id,surfaceindex,flags,surface,dest) (This)->lpVtbl->GetSurfaceEx(This,id,surfaceindex,flags,surface,dest)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_QueryInterface(IVMRSurfaceAllocatorEx9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRSurfaceAllocatorEx9_AddRef(IVMRSurfaceAllocatorEx9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRSurfaceAllocatorEx9_Release(IVMRSurfaceAllocatorEx9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRSurfaceAllocator9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_InitializeDevice(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id,VMR9AllocationInfo *allocinfo,DWORD *numbuffers) {
|
|
|
|
return This->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_TerminateDevice(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id) {
|
|
|
|
return This->lpVtbl->TerminateDevice(This,id);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_GetSurface(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id,DWORD surfaceindex,DWORD flags,IDirect3DSurface9 **surface) {
|
|
|
|
return This->lpVtbl->GetSurface(This,id,surfaceindex,flags,surface);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_AdviseNotify(IVMRSurfaceAllocatorEx9* This,IVMRSurfaceAllocatorNotify9 *allocnotify) {
|
|
|
|
return This->lpVtbl->AdviseNotify(This,allocnotify);
|
|
|
|
}
|
|
|
|
/*** IVMRSurfaceAllocatorEx9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_GetSurfaceEx(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id,DWORD surfaceindex,DWORD flags,IDirect3DSurface9 **surface,RECT *dest) {
|
|
|
|
return This->lpVtbl->GetSurfaceEx(This,id,surfaceindex,flags,surface,dest);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRSurfaceAllocatorNotify9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRSurfaceAllocatorNotify9, 0xdca3f5df, 0xbb3a, 0x4d03, 0xbd,0x81, 0x84,0x61,0x4b,0xfb,0xfa,0x0c);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("dca3f5df-bb3a-4d03-bd81-84614bfbfa0c")
|
|
|
|
IVMRSurfaceAllocatorNotify9 : public IUnknown
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE AdviseSurfaceAllocator(
|
|
|
|
DWORD_PTR id,
|
|
|
|
IVMRSurfaceAllocator9 *alloc) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetD3DDevice(
|
|
|
|
IDirect3DDevice9 *device,
|
|
|
|
HMONITOR monitor) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE ChangeD3DDevice(
|
|
|
|
IDirect3DDevice9 *device,
|
|
|
|
HMONITOR monitor) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE AllocateSurfaceHelper(
|
|
|
|
VMR9AllocationInfo *allocinfo,
|
|
|
|
DWORD *numbuffers,
|
|
|
|
IDirect3DSurface9 **surface) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE NotifyEvent(
|
|
|
|
LONG code,
|
|
|
|
LONG_PTR param1,
|
|
|
|
LONG_PTR param2) = 0;
|
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRSurfaceAllocatorNotify9, 0xdca3f5df, 0xbb3a, 0x4d03, 0xbd,0x81, 0x84,0x61,0x4b,0xfb,0xfa,0x0c)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRSurfaceAllocatorNotify9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorNotify9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorNotify9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorNotify9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRSurfaceAllocatorNotify9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *AdviseSurfaceAllocator)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorNotify9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD_PTR id,
|
|
|
|
IVMRSurfaceAllocator9 *alloc);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetD3DDevice)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorNotify9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
IDirect3DDevice9 *device,
|
|
|
|
HMONITOR monitor);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *ChangeD3DDevice)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorNotify9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
IDirect3DDevice9 *device,
|
|
|
|
HMONITOR monitor);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *AllocateSurfaceHelper)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorNotify9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
VMR9AllocationInfo *allocinfo,
|
|
|
|
DWORD *numbuffers,
|
|
|
|
IDirect3DSurface9 **surface);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *NotifyEvent)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurfaceAllocatorNotify9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
LONG code,
|
|
|
|
LONG_PTR param1,
|
|
|
|
LONG_PTR param2);
|
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRSurfaceAllocatorNotify9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRSurfaceAllocatorNotify9 {
|
|
|
|
CONST_VTBL IVMRSurfaceAllocatorNotify9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRSurfaceAllocatorNotify9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRSurfaceAllocatorNotify9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRSurfaceAllocatorNotify9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRSurfaceAllocatorNotify9 methods ***/
|
|
|
|
#define IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator(This,id,alloc) (This)->lpVtbl->AdviseSurfaceAllocator(This,id,alloc)
|
|
|
|
#define IVMRSurfaceAllocatorNotify9_SetD3DDevice(This,device,monitor) (This)->lpVtbl->SetD3DDevice(This,device,monitor)
|
|
|
|
#define IVMRSurfaceAllocatorNotify9_ChangeD3DDevice(This,device,monitor) (This)->lpVtbl->ChangeD3DDevice(This,device,monitor)
|
|
|
|
#define IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper(This,allocinfo,numbuffers,surface) (This)->lpVtbl->AllocateSurfaceHelper(This,allocinfo,numbuffers,surface)
|
|
|
|
#define IVMRSurfaceAllocatorNotify9_NotifyEvent(This,code,param1,param2) (This)->lpVtbl->NotifyEvent(This,code,param1,param2)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_QueryInterface(IVMRSurfaceAllocatorNotify9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRSurfaceAllocatorNotify9_AddRef(IVMRSurfaceAllocatorNotify9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRSurfaceAllocatorNotify9_Release(IVMRSurfaceAllocatorNotify9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRSurfaceAllocatorNotify9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator(IVMRSurfaceAllocatorNotify9* This,DWORD_PTR id,IVMRSurfaceAllocator9 *alloc) {
|
|
|
|
return This->lpVtbl->AdviseSurfaceAllocator(This,id,alloc);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_SetD3DDevice(IVMRSurfaceAllocatorNotify9* This,IDirect3DDevice9 *device,HMONITOR monitor) {
|
|
|
|
return This->lpVtbl->SetD3DDevice(This,device,monitor);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_ChangeD3DDevice(IVMRSurfaceAllocatorNotify9* This,IDirect3DDevice9 *device,HMONITOR monitor) {
|
|
|
|
return This->lpVtbl->ChangeD3DDevice(This,device,monitor);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper(IVMRSurfaceAllocatorNotify9* This,VMR9AllocationInfo *allocinfo,DWORD *numbuffers,IDirect3DSurface9 **surface) {
|
|
|
|
return This->lpVtbl->AllocateSurfaceHelper(This,allocinfo,numbuffers,surface);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_NotifyEvent(IVMRSurfaceAllocatorNotify9* This,LONG code,LONG_PTR param1,LONG_PTR param2) {
|
|
|
|
return This->lpVtbl->NotifyEvent(This,code,param1,param2);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
typedef enum _VMR9AspectRatioMode {
|
|
|
|
VMR9ARMode_None = 0,
|
|
|
|
VMR9ARMode_LetterBox = 1
|
|
|
|
} VMR9AspectRatioMode;
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRWindowlessControl9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRWindowlessControl9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRWindowlessControl9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRWindowlessControl9, 0x8f537d09, 0xf85e, 0x4414, 0xb2,0x3b, 0x50,0x2e,0x54,0xc7,0x99,0x27);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("8f537d09-f85e-4414-b23b-502e54c79927")
|
|
|
|
IVMRWindowlessControl9 : public IUnknown
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetNativeVideoSize(
|
|
|
|
LONG *width,
|
|
|
|
LONG *height,
|
|
|
|
LONG *arwidth,
|
|
|
|
LONG *arheight) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetMinIdealVideoSize(
|
|
|
|
LONG *width,
|
|
|
|
LONG *height) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetMaxIdealVideoSize(
|
|
|
|
LONG *width,
|
|
|
|
LONG *height) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetVideoPosition(
|
|
|
|
const RECT *source,
|
|
|
|
const RECT *dest) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetVideoPosition(
|
|
|
|
RECT *source,
|
|
|
|
RECT *dest) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode(
|
|
|
|
DWORD *mode) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode(
|
|
|
|
DWORD mode) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetVideoClippingWindow(
|
|
|
|
HWND hwnd) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE RepaintVideo(
|
|
|
|
HWND hwnd,
|
|
|
|
HDC hdc) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE DisplayModeChanged(
|
|
|
|
) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetCurrentImage(
|
|
|
|
BYTE **dib) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetBorderColor(
|
|
|
|
COLORREF color) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetBorderColor(
|
|
|
|
COLORREF *color) = 0;
|
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRWindowlessControl9, 0x8f537d09, 0xf85e, 0x4414, 0xb2,0x3b, 0x50,0x2e,0x54,0xc7,0x99,0x27)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRWindowlessControl9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRWindowlessControl9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetNativeVideoSize)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
LONG *width,
|
|
|
|
LONG *height,
|
|
|
|
LONG *arwidth,
|
|
|
|
LONG *arheight);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetMinIdealVideoSize)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
LONG *width,
|
|
|
|
LONG *height);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetMaxIdealVideoSize)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
LONG *width,
|
|
|
|
LONG *height);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetVideoPosition)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
const RECT *source,
|
|
|
|
const RECT *dest);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetVideoPosition)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
RECT *source,
|
|
|
|
RECT *dest);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetAspectRatioMode)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD *mode);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetAspectRatioMode)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD mode);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetVideoClippingWindow)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
HWND hwnd);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *RepaintVideo)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
HWND hwnd,
|
|
|
|
HDC hdc);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *DisplayModeChanged)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetCurrentImage)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
BYTE **dib);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetBorderColor)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
COLORREF color);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetBorderColor)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRWindowlessControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
COLORREF *color);
|
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRWindowlessControl9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRWindowlessControl9 {
|
|
|
|
CONST_VTBL IVMRWindowlessControl9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRWindowlessControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRWindowlessControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRWindowlessControl9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRWindowlessControl9 methods ***/
|
|
|
|
#define IVMRWindowlessControl9_GetNativeVideoSize(This,width,height,arwidth,arheight) (This)->lpVtbl->GetNativeVideoSize(This,width,height,arwidth,arheight)
|
|
|
|
#define IVMRWindowlessControl9_GetMinIdealVideoSize(This,width,height) (This)->lpVtbl->GetMinIdealVideoSize(This,width,height)
|
|
|
|
#define IVMRWindowlessControl9_GetMaxIdealVideoSize(This,width,height) (This)->lpVtbl->GetMaxIdealVideoSize(This,width,height)
|
|
|
|
#define IVMRWindowlessControl9_SetVideoPosition(This,source,dest) (This)->lpVtbl->SetVideoPosition(This,source,dest)
|
|
|
|
#define IVMRWindowlessControl9_GetVideoPosition(This,source,dest) (This)->lpVtbl->GetVideoPosition(This,source,dest)
|
|
|
|
#define IVMRWindowlessControl9_GetAspectRatioMode(This,mode) (This)->lpVtbl->GetAspectRatioMode(This,mode)
|
|
|
|
#define IVMRWindowlessControl9_SetAspectRatioMode(This,mode) (This)->lpVtbl->SetAspectRatioMode(This,mode)
|
|
|
|
#define IVMRWindowlessControl9_SetVideoClippingWindow(This,hwnd) (This)->lpVtbl->SetVideoClippingWindow(This,hwnd)
|
|
|
|
#define IVMRWindowlessControl9_RepaintVideo(This,hwnd,hdc) (This)->lpVtbl->RepaintVideo(This,hwnd,hdc)
|
|
|
|
#define IVMRWindowlessControl9_DisplayModeChanged(This) (This)->lpVtbl->DisplayModeChanged(This)
|
|
|
|
#define IVMRWindowlessControl9_GetCurrentImage(This,dib) (This)->lpVtbl->GetCurrentImage(This,dib)
|
|
|
|
#define IVMRWindowlessControl9_SetBorderColor(This,color) (This)->lpVtbl->SetBorderColor(This,color)
|
|
|
|
#define IVMRWindowlessControl9_GetBorderColor(This,color) (This)->lpVtbl->GetBorderColor(This,color)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRWindowlessControl9_QueryInterface(IVMRWindowlessControl9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRWindowlessControl9_AddRef(IVMRWindowlessControl9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRWindowlessControl9_Release(IVMRWindowlessControl9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRWindowlessControl9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRWindowlessControl9_GetNativeVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height,LONG *arwidth,LONG *arheight) {
|
|
|
|
return This->lpVtbl->GetNativeVideoSize(This,width,height,arwidth,arheight);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRWindowlessControl9_GetMinIdealVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height) {
|
|
|
|
return This->lpVtbl->GetMinIdealVideoSize(This,width,height);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRWindowlessControl9_GetMaxIdealVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height) {
|
|
|
|
return This->lpVtbl->GetMaxIdealVideoSize(This,width,height);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRWindowlessControl9_SetVideoPosition(IVMRWindowlessControl9* This,const RECT *source,const RECT *dest) {
|
|
|
|
return This->lpVtbl->SetVideoPosition(This,source,dest);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRWindowlessControl9_GetVideoPosition(IVMRWindowlessControl9* This,RECT *source,RECT *dest) {
|
|
|
|
return This->lpVtbl->GetVideoPosition(This,source,dest);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRWindowlessControl9_GetAspectRatioMode(IVMRWindowlessControl9* This,DWORD *mode) {
|
|
|
|
return This->lpVtbl->GetAspectRatioMode(This,mode);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRWindowlessControl9_SetAspectRatioMode(IVMRWindowlessControl9* This,DWORD mode) {
|
|
|
|
return This->lpVtbl->SetAspectRatioMode(This,mode);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRWindowlessControl9_SetVideoClippingWindow(IVMRWindowlessControl9* This,HWND hwnd) {
|
|
|
|
return This->lpVtbl->SetVideoClippingWindow(This,hwnd);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRWindowlessControl9_RepaintVideo(IVMRWindowlessControl9* This,HWND hwnd,HDC hdc) {
|
|
|
|
return This->lpVtbl->RepaintVideo(This,hwnd,hdc);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRWindowlessControl9_DisplayModeChanged(IVMRWindowlessControl9* This) {
|
|
|
|
return This->lpVtbl->DisplayModeChanged(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRWindowlessControl9_GetCurrentImage(IVMRWindowlessControl9* This,BYTE **dib) {
|
|
|
|
return This->lpVtbl->GetCurrentImage(This,dib);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRWindowlessControl9_SetBorderColor(IVMRWindowlessControl9* This,COLORREF color) {
|
|
|
|
return This->lpVtbl->SetBorderColor(This,color);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRWindowlessControl9_GetBorderColor(IVMRWindowlessControl9* This,COLORREF *color) {
|
|
|
|
return This->lpVtbl->GetBorderColor(This,color);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRWindowlessControl9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
typedef enum _VMR9MixerPrefs {
|
|
|
|
MixerPref9_NoDecimation = 0x1,
|
|
|
|
MixerPref9_DecimateOutput = 0x2,
|
|
|
|
MixerPref9_ARAdjustXorY = 0x4,
|
|
|
|
MixerPref9_NonSquareMixing = 0x8,
|
|
|
|
MixerPref9_DecimateMask = 0xf,
|
|
|
|
MixerPref9_BiLinearFiltering = 0x10,
|
|
|
|
MixerPref9_PointFiltering = 0x20,
|
|
|
|
MixerPref9_AnisotropicFiltering = 0x40,
|
|
|
|
MixerPref9_PyramidalQuadFiltering = 0x80,
|
|
|
|
MixerPref9_GaussianQuadFiltering = 0x100,
|
|
|
|
MixerPref9_FilteringReserved = 0xe00,
|
|
|
|
MixerPref9_FilteringMask = 0xff0,
|
|
|
|
MixerPref9_RenderTargetRGB = 0x1000,
|
|
|
|
MixerPref9_RenderTargetYUV = 0x2000,
|
|
|
|
MixerPref9_RenderTargetReserved = 0xfc000,
|
|
|
|
MixerPref9_DynamicSwitchToBOB = 0x100000,
|
|
|
|
MixerPref9_DynamicDecimateBy2 = 0x200000,
|
|
|
|
MixerPref9_DynamicReserved = 0xc00000,
|
|
|
|
MixerPref9_DynamicMask = 0xf00000
|
|
|
|
} VMR9MixerPrefs;
|
|
|
|
typedef struct _VMR9NormalizedRect {
|
|
|
|
FLOAT left;
|
|
|
|
FLOAT top;
|
|
|
|
FLOAT right;
|
|
|
|
FLOAT bottom;
|
|
|
|
} VMR9NormalizedRect;
|
|
|
|
typedef enum _VMR9ProcAmpControlFlags {
|
|
|
|
ProcAmpControl9_Brightness = 0x1,
|
|
|
|
ProcAmpControl9_Contrast = 0x2,
|
|
|
|
ProcAmpControl9_Hue = 0x4,
|
|
|
|
ProcAmpControl9_Saturation = 0x8,
|
|
|
|
ProcAmpControl9_Mask = 0xf
|
|
|
|
} VMR9ProcAmpControlFlags;
|
|
|
|
typedef struct _VMR9ProcAmpControl {
|
|
|
|
DWORD dwSize;
|
|
|
|
DWORD dwFlags;
|
|
|
|
FLOAT Brightness;
|
|
|
|
FLOAT Contrast;
|
|
|
|
FLOAT Hue;
|
|
|
|
FLOAT Saturation;
|
|
|
|
} VMR9ProcAmpControl;
|
|
|
|
typedef struct _VMR9ProcAmpControlRange {
|
|
|
|
DWORD dwSize;
|
|
|
|
VMR9ProcAmpControlFlags dwProperty;
|
|
|
|
FLOAT MinValue;
|
|
|
|
FLOAT MaxValue;
|
|
|
|
FLOAT DefaultValue;
|
|
|
|
FLOAT StepSize;
|
|
|
|
} VMR9ProcAmpControlRange;
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRMixerControl9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRMixerControl9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRMixerControl9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRMixerControl9, 0x1a777eaa, 0x47c8, 0x4930, 0xb2,0xc9, 0x8f,0xee,0x1c,0x1b,0x0f,0x3b);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("1a777eaa-47c8-4930-b2c9-8fee1c1b0f3b")
|
|
|
|
IVMRMixerControl9 : public IUnknown
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetAlpha(
|
|
|
|
DWORD streamid,
|
|
|
|
FLOAT alpha) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetAlpha(
|
|
|
|
DWORD streamid,
|
|
|
|
FLOAT *alpha) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetZOrder(
|
|
|
|
DWORD streamid,
|
|
|
|
DWORD zorder) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetZOrder(
|
|
|
|
DWORD streamid,
|
|
|
|
DWORD *zorder) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetOutputRect(
|
|
|
|
DWORD streamid,
|
|
|
|
const VMR9NormalizedRect *rect) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetOutputRect(
|
|
|
|
DWORD streamid,
|
|
|
|
VMR9NormalizedRect *rect) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetBackgroundClr(
|
|
|
|
COLORREF back) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetBackgroundClr(
|
|
|
|
COLORREF *back) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetMixingPrefs(
|
|
|
|
DWORD mixingprefs) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetMixingPrefs(
|
|
|
|
DWORD *mixingprefs) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetProcAmpControl(
|
|
|
|
DWORD streamid,
|
|
|
|
VMR9ProcAmpControl *control) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetProcAmpControl(
|
|
|
|
DWORD streamid,
|
|
|
|
VMR9ProcAmpControl *control) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetProcAmpControlRange(
|
|
|
|
DWORD streamid,
|
|
|
|
VMR9ProcAmpControlRange *controlrange) = 0;
|
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRMixerControl9, 0x1a777eaa, 0x47c8, 0x4930, 0xb2,0xc9, 0x8f,0xee,0x1c,0x1b,0x0f,0x3b)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRMixerControl9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRMixerControl9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetAlpha)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD streamid,
|
|
|
|
FLOAT alpha);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetAlpha)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD streamid,
|
|
|
|
FLOAT *alpha);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetZOrder)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD streamid,
|
|
|
|
DWORD zorder);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetZOrder)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD streamid,
|
|
|
|
DWORD *zorder);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetOutputRect)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD streamid,
|
|
|
|
const VMR9NormalizedRect *rect);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetOutputRect)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD streamid,
|
|
|
|
VMR9NormalizedRect *rect);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetBackgroundClr)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
COLORREF back);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetBackgroundClr)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
COLORREF *back);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetMixingPrefs)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD mixingprefs);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetMixingPrefs)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD *mixingprefs);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetProcAmpControl)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD streamid,
|
|
|
|
VMR9ProcAmpControl *control);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetProcAmpControl)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD streamid,
|
|
|
|
VMR9ProcAmpControl *control);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetProcAmpControlRange)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD streamid,
|
|
|
|
VMR9ProcAmpControlRange *controlrange);
|
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRMixerControl9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRMixerControl9 {
|
|
|
|
CONST_VTBL IVMRMixerControl9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRMixerControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRMixerControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRMixerControl9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRMixerControl9 methods ***/
|
|
|
|
#define IVMRMixerControl9_SetAlpha(This,streamid,alpha) (This)->lpVtbl->SetAlpha(This,streamid,alpha)
|
|
|
|
#define IVMRMixerControl9_GetAlpha(This,streamid,alpha) (This)->lpVtbl->GetAlpha(This,streamid,alpha)
|
|
|
|
#define IVMRMixerControl9_SetZOrder(This,streamid,zorder) (This)->lpVtbl->SetZOrder(This,streamid,zorder)
|
|
|
|
#define IVMRMixerControl9_GetZOrder(This,streamid,zorder) (This)->lpVtbl->GetZOrder(This,streamid,zorder)
|
|
|
|
#define IVMRMixerControl9_SetOutputRect(This,streamid,rect) (This)->lpVtbl->SetOutputRect(This,streamid,rect)
|
|
|
|
#define IVMRMixerControl9_GetOutputRect(This,streamid,rect) (This)->lpVtbl->GetOutputRect(This,streamid,rect)
|
|
|
|
#define IVMRMixerControl9_SetBackgroundClr(This,back) (This)->lpVtbl->SetBackgroundClr(This,back)
|
|
|
|
#define IVMRMixerControl9_GetBackgroundClr(This,back) (This)->lpVtbl->GetBackgroundClr(This,back)
|
|
|
|
#define IVMRMixerControl9_SetMixingPrefs(This,mixingprefs) (This)->lpVtbl->SetMixingPrefs(This,mixingprefs)
|
|
|
|
#define IVMRMixerControl9_GetMixingPrefs(This,mixingprefs) (This)->lpVtbl->GetMixingPrefs(This,mixingprefs)
|
|
|
|
#define IVMRMixerControl9_SetProcAmpControl(This,streamid,control) (This)->lpVtbl->SetProcAmpControl(This,streamid,control)
|
|
|
|
#define IVMRMixerControl9_GetProcAmpControl(This,streamid,control) (This)->lpVtbl->GetProcAmpControl(This,streamid,control)
|
|
|
|
#define IVMRMixerControl9_GetProcAmpControlRange(This,streamid,controlrange) (This)->lpVtbl->GetProcAmpControlRange(This,streamid,controlrange)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerControl9_QueryInterface(IVMRMixerControl9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRMixerControl9_AddRef(IVMRMixerControl9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRMixerControl9_Release(IVMRMixerControl9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRMixerControl9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerControl9_SetAlpha(IVMRMixerControl9* This,DWORD streamid,FLOAT alpha) {
|
|
|
|
return This->lpVtbl->SetAlpha(This,streamid,alpha);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerControl9_GetAlpha(IVMRMixerControl9* This,DWORD streamid,FLOAT *alpha) {
|
|
|
|
return This->lpVtbl->GetAlpha(This,streamid,alpha);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerControl9_SetZOrder(IVMRMixerControl9* This,DWORD streamid,DWORD zorder) {
|
|
|
|
return This->lpVtbl->SetZOrder(This,streamid,zorder);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerControl9_GetZOrder(IVMRMixerControl9* This,DWORD streamid,DWORD *zorder) {
|
|
|
|
return This->lpVtbl->GetZOrder(This,streamid,zorder);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerControl9_SetOutputRect(IVMRMixerControl9* This,DWORD streamid,const VMR9NormalizedRect *rect) {
|
|
|
|
return This->lpVtbl->SetOutputRect(This,streamid,rect);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerControl9_GetOutputRect(IVMRMixerControl9* This,DWORD streamid,VMR9NormalizedRect *rect) {
|
|
|
|
return This->lpVtbl->GetOutputRect(This,streamid,rect);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerControl9_SetBackgroundClr(IVMRMixerControl9* This,COLORREF back) {
|
|
|
|
return This->lpVtbl->SetBackgroundClr(This,back);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerControl9_GetBackgroundClr(IVMRMixerControl9* This,COLORREF *back) {
|
|
|
|
return This->lpVtbl->GetBackgroundClr(This,back);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerControl9_SetMixingPrefs(IVMRMixerControl9* This,DWORD mixingprefs) {
|
|
|
|
return This->lpVtbl->SetMixingPrefs(This,mixingprefs);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerControl9_GetMixingPrefs(IVMRMixerControl9* This,DWORD *mixingprefs) {
|
|
|
|
return This->lpVtbl->GetMixingPrefs(This,mixingprefs);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerControl9_SetProcAmpControl(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControl *control) {
|
|
|
|
return This->lpVtbl->SetProcAmpControl(This,streamid,control);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerControl9_GetProcAmpControl(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControl *control) {
|
|
|
|
return This->lpVtbl->GetProcAmpControl(This,streamid,control);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerControl9_GetProcAmpControlRange(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControlRange *controlrange) {
|
|
|
|
return This->lpVtbl->GetProcAmpControlRange(This,streamid,controlrange);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRMixerControl9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
typedef struct _VMR9AlphaBitmap {
|
|
|
|
DWORD dwFlags;
|
|
|
|
HDC hdc;
|
|
|
|
IDirect3DSurface9 *pDDS;
|
|
|
|
RECT rSrc;
|
|
|
|
VMR9NormalizedRect *rDest;
|
|
|
|
FLOAT fAlpha;
|
|
|
|
COLORREF clrSrcKey;
|
|
|
|
DWORD dwFilterMode;
|
|
|
|
} VMR9AlphaBitmap;
|
|
|
|
typedef enum _VMR9AlphaBitmapFlags {
|
|
|
|
VMR9AlphaBitmap_Disable = 0x1,
|
|
|
|
VMR9AlphaBitmap_hDC = 0x2,
|
|
|
|
VMR9AlphaBitmap_EntireDDS = 0x4,
|
|
|
|
VMR9AlphaBitmap_SrcColorKey = 0x8,
|
|
|
|
VMR9AlphaBitmap_SrcRect = 0x10,
|
|
|
|
VMR9AlphaBitmap_FilterMode = 0x20
|
|
|
|
} VMR9AlphaBitmapFlags;
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRMixerBitmap9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRMixerBitmap9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRMixerBitmap9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRMixerBitmap9, 0xced175e5, 0x1935, 0x4820, 0x81,0xbd, 0xff,0x6a,0xd0,0x0c,0x91,0x08);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("ced175e5-1935-4820-81bd-ff6ad00c9108")
|
|
|
|
IVMRMixerBitmap9 : public IUnknown
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetAlphaBitmap(
|
|
|
|
const VMR9AlphaBitmap *bitmap) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE UpdateAlphaBitmapParameters(
|
|
|
|
const VMR9AlphaBitmap *bitmap) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetAlphaBitmapParameters(
|
|
|
|
VMR9AlphaBitmap *bitmap) = 0;
|
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRMixerBitmap9, 0xced175e5, 0x1935, 0x4820, 0x81,0xbd, 0xff,0x6a,0xd0,0x0c,0x91,0x08)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRMixerBitmap9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerBitmap9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerBitmap9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerBitmap9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRMixerBitmap9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetAlphaBitmap)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerBitmap9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
const VMR9AlphaBitmap *bitmap);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *UpdateAlphaBitmapParameters)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerBitmap9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
const VMR9AlphaBitmap *bitmap);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetAlphaBitmapParameters)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMixerBitmap9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
VMR9AlphaBitmap *bitmap);
|
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRMixerBitmap9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRMixerBitmap9 {
|
|
|
|
CONST_VTBL IVMRMixerBitmap9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRMixerBitmap9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRMixerBitmap9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRMixerBitmap9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRMixerBitmap9 methods ***/
|
|
|
|
#define IVMRMixerBitmap9_SetAlphaBitmap(This,bitmap) (This)->lpVtbl->SetAlphaBitmap(This,bitmap)
|
|
|
|
#define IVMRMixerBitmap9_UpdateAlphaBitmapParameters(This,bitmap) (This)->lpVtbl->UpdateAlphaBitmapParameters(This,bitmap)
|
|
|
|
#define IVMRMixerBitmap9_GetAlphaBitmapParameters(This,bitmap) (This)->lpVtbl->GetAlphaBitmapParameters(This,bitmap)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerBitmap9_QueryInterface(IVMRMixerBitmap9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRMixerBitmap9_AddRef(IVMRMixerBitmap9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRMixerBitmap9_Release(IVMRMixerBitmap9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRMixerBitmap9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerBitmap9_SetAlphaBitmap(IVMRMixerBitmap9* This,const VMR9AlphaBitmap *bitmap) {
|
|
|
|
return This->lpVtbl->SetAlphaBitmap(This,bitmap);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerBitmap9_UpdateAlphaBitmapParameters(IVMRMixerBitmap9* This,const VMR9AlphaBitmap *bitmap) {
|
|
|
|
return This->lpVtbl->UpdateAlphaBitmapParameters(This,bitmap);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMixerBitmap9_GetAlphaBitmapParameters(IVMRMixerBitmap9* This,VMR9AlphaBitmap *bitmap) {
|
|
|
|
return This->lpVtbl->GetAlphaBitmapParameters(This,bitmap);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRMixerBitmap9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRSurface9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRSurface9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRSurface9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRSurface9, 0xdfc581a1, 0x6e1f, 0x4c3a, 0x8d,0x0a, 0x5e,0x97,0x92,0xea,0x2a,0xfc);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("dfc581a1-6e1f-4c3a-8d0a-5e9792ea2afc")
|
|
|
|
IVMRSurface9 : public IUnknown
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE IsSurfaceLocked(
|
|
|
|
) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE LockSurface(
|
|
|
|
BYTE **surface) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE UnlockSurface(
|
|
|
|
) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetSurface(
|
|
|
|
IDirect3DSurface9 **surface) = 0;
|
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRSurface9, 0xdfc581a1, 0x6e1f, 0x4c3a, 0x8d,0x0a, 0x5e,0x97,0x92,0xea,0x2a,0xfc)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRSurface9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurface9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurface9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurface9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRSurface9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *IsSurfaceLocked)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurface9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *LockSurface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurface9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
BYTE **surface);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *UnlockSurface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurface9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetSurface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRSurface9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
IDirect3DSurface9 **surface);
|
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRSurface9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRSurface9 {
|
|
|
|
CONST_VTBL IVMRSurface9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRSurface9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRSurface9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRSurface9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRSurface9 methods ***/
|
|
|
|
#define IVMRSurface9_IsSurfaceLocked(This) (This)->lpVtbl->IsSurfaceLocked(This)
|
|
|
|
#define IVMRSurface9_LockSurface(This,surface) (This)->lpVtbl->LockSurface(This,surface)
|
|
|
|
#define IVMRSurface9_UnlockSurface(This) (This)->lpVtbl->UnlockSurface(This)
|
|
|
|
#define IVMRSurface9_GetSurface(This,surface) (This)->lpVtbl->GetSurface(This,surface)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRSurface9_QueryInterface(IVMRSurface9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRSurface9_AddRef(IVMRSurface9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRSurface9_Release(IVMRSurface9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRSurface9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRSurface9_IsSurfaceLocked(IVMRSurface9* This) {
|
|
|
|
return This->lpVtbl->IsSurfaceLocked(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRSurface9_LockSurface(IVMRSurface9* This,BYTE **surface) {
|
|
|
|
return This->lpVtbl->LockSurface(This,surface);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRSurface9_UnlockSurface(IVMRSurface9* This) {
|
|
|
|
return This->lpVtbl->UnlockSurface(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRSurface9_GetSurface(IVMRSurface9* This,IDirect3DSurface9 **surface) {
|
|
|
|
return This->lpVtbl->GetSurface(This,surface);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRSurface9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
typedef enum _VMR9RenderPrefs {
|
|
|
|
RenderPrefs9_DoNotRenderBorder = 0x1,
|
|
|
|
RenderPrefs9_Mask = 0x1
|
|
|
|
} VMR9RenderPrefs;
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRImagePresenterConfig9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRImagePresenterConfig9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRImagePresenterConfig9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRImagePresenterConfig9, 0x45c15cab, 0x6e22, 0x420a, 0x80,0x43, 0xae,0x1f,0x0a,0xc0,0x2c,0x7d);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("45c15cab-6e22-420a-8043-ae1f0ac02c7d")
|
|
|
|
IVMRImagePresenterConfig9 : public IUnknown
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs(
|
|
|
|
DWORD renderflags) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs(
|
|
|
|
DWORD *renderflags) = 0;
|
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRImagePresenterConfig9, 0x45c15cab, 0x6e22, 0x420a, 0x80,0x43, 0xae,0x1f,0x0a,0xc0,0x2c,0x7d)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRImagePresenterConfig9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImagePresenterConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImagePresenterConfig9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImagePresenterConfig9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRImagePresenterConfig9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetRenderingPrefs)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImagePresenterConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD renderflags);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetRenderingPrefs)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImagePresenterConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD *renderflags);
|
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRImagePresenterConfig9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRImagePresenterConfig9 {
|
|
|
|
CONST_VTBL IVMRImagePresenterConfig9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRImagePresenterConfig9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRImagePresenterConfig9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRImagePresenterConfig9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRImagePresenterConfig9 methods ***/
|
|
|
|
#define IVMRImagePresenterConfig9_SetRenderingPrefs(This,renderflags) (This)->lpVtbl->SetRenderingPrefs(This,renderflags)
|
|
|
|
#define IVMRImagePresenterConfig9_GetRenderingPrefs(This,renderflags) (This)->lpVtbl->GetRenderingPrefs(This,renderflags)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRImagePresenterConfig9_QueryInterface(IVMRImagePresenterConfig9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRImagePresenterConfig9_AddRef(IVMRImagePresenterConfig9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRImagePresenterConfig9_Release(IVMRImagePresenterConfig9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRImagePresenterConfig9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRImagePresenterConfig9_SetRenderingPrefs(IVMRImagePresenterConfig9* This,DWORD renderflags) {
|
|
|
|
return This->lpVtbl->SetRenderingPrefs(This,renderflags);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRImagePresenterConfig9_GetRenderingPrefs(IVMRImagePresenterConfig9* This,DWORD *renderflags) {
|
|
|
|
return This->lpVtbl->GetRenderingPrefs(This,renderflags);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRImagePresenterConfig9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRVideoStreamControl9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRVideoStreamControl9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRVideoStreamControl9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRVideoStreamControl9, 0xd0cfe38b, 0x93e7, 0x4772, 0x89,0x57, 0x04,0x00,0xc4,0x9a,0x44,0x85);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("d0cfe38b-93e7-4772-8957-0400c49a4485")
|
|
|
|
IVMRVideoStreamControl9 : public IUnknown
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetStreamActiveState(
|
2011-05-28 21:53:57 +08:00
|
|
|
WINBOOL active) = 0;
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetStreamActiveState(
|
2011-05-28 21:53:57 +08:00
|
|
|
WINBOOL *active) = 0;
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRVideoStreamControl9, 0xd0cfe38b, 0x93e7, 0x4772, 0x89,0x57, 0x04,0x00,0xc4,0x9a,0x44,0x85)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRVideoStreamControl9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRVideoStreamControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRVideoStreamControl9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRVideoStreamControl9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRVideoStreamControl9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetStreamActiveState)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRVideoStreamControl9 *This,
|
2011-05-28 21:53:57 +08:00
|
|
|
WINBOOL active);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetStreamActiveState)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRVideoStreamControl9 *This,
|
2011-05-28 21:53:57 +08:00
|
|
|
WINBOOL *active);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRVideoStreamControl9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRVideoStreamControl9 {
|
|
|
|
CONST_VTBL IVMRVideoStreamControl9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRVideoStreamControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRVideoStreamControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRVideoStreamControl9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRVideoStreamControl9 methods ***/
|
|
|
|
#define IVMRVideoStreamControl9_SetStreamActiveState(This,active) (This)->lpVtbl->SetStreamActiveState(This,active)
|
|
|
|
#define IVMRVideoStreamControl9_GetStreamActiveState(This,active) (This)->lpVtbl->GetStreamActiveState(This,active)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRVideoStreamControl9_QueryInterface(IVMRVideoStreamControl9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRVideoStreamControl9_AddRef(IVMRVideoStreamControl9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRVideoStreamControl9_Release(IVMRVideoStreamControl9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRVideoStreamControl9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRVideoStreamControl9_SetStreamActiveState(IVMRVideoStreamControl9* This,WINBOOL active) {
|
|
|
|
return This->lpVtbl->SetStreamActiveState(This,active);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRVideoStreamControl9_GetStreamActiveState(IVMRVideoStreamControl9* This,WINBOOL *active) {
|
|
|
|
return This->lpVtbl->GetStreamActiveState(This,active);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRVideoStreamControl9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
typedef enum _VMR9Mode {
|
|
|
|
VMR9Mode_Windowed = 0x1,
|
|
|
|
VMR9Mode_Windowless = 0x2,
|
|
|
|
VMR9Mode_Renderless = 0x4,
|
|
|
|
VMR9Mode_Mask = 0x7
|
|
|
|
} VMR9Mode;
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRFilterConfig9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRFilterConfig9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRFilterConfig9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRFilterConfig9, 0x5a804648, 0x4f66, 0x4867, 0x9c,0x43, 0x4f,0x5c,0x82,0x2c,0xf1,0xb8);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("5a804648-4f66-4867-9c43-4f5c822cf1b8")
|
|
|
|
IVMRFilterConfig9 : public IUnknown
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetImageCompositor(
|
|
|
|
IVMRImageCompositor9 *compositor) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetNumberOfStreams(
|
|
|
|
DWORD max) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetNumberOfStreams(
|
|
|
|
DWORD *max) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs(
|
|
|
|
DWORD renderflags) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs(
|
|
|
|
DWORD *renderflags) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetRenderingMode(
|
|
|
|
DWORD mode) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetRenderingMode(
|
|
|
|
DWORD *mode) = 0;
|
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRFilterConfig9, 0x5a804648, 0x4f66, 0x4867, 0x9c,0x43, 0x4f,0x5c,0x82,0x2c,0xf1,0xb8)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRFilterConfig9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRFilterConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRFilterConfig9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRFilterConfig9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRFilterConfig9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetImageCompositor)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRFilterConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
IVMRImageCompositor9 *compositor);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetNumberOfStreams)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRFilterConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD max);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetNumberOfStreams)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRFilterConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD *max);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetRenderingPrefs)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRFilterConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD renderflags);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetRenderingPrefs)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRFilterConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD *renderflags);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetRenderingMode)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRFilterConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD mode);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetRenderingMode)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRFilterConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD *mode);
|
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRFilterConfig9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRFilterConfig9 {
|
|
|
|
CONST_VTBL IVMRFilterConfig9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRFilterConfig9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRFilterConfig9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRFilterConfig9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRFilterConfig9 methods ***/
|
|
|
|
#define IVMRFilterConfig9_SetImageCompositor(This,compositor) (This)->lpVtbl->SetImageCompositor(This,compositor)
|
|
|
|
#define IVMRFilterConfig9_SetNumberOfStreams(This,max) (This)->lpVtbl->SetNumberOfStreams(This,max)
|
|
|
|
#define IVMRFilterConfig9_GetNumberOfStreams(This,max) (This)->lpVtbl->GetNumberOfStreams(This,max)
|
|
|
|
#define IVMRFilterConfig9_SetRenderingPrefs(This,renderflags) (This)->lpVtbl->SetRenderingPrefs(This,renderflags)
|
|
|
|
#define IVMRFilterConfig9_GetRenderingPrefs(This,renderflags) (This)->lpVtbl->GetRenderingPrefs(This,renderflags)
|
|
|
|
#define IVMRFilterConfig9_SetRenderingMode(This,mode) (This)->lpVtbl->SetRenderingMode(This,mode)
|
|
|
|
#define IVMRFilterConfig9_GetRenderingMode(This,mode) (This)->lpVtbl->GetRenderingMode(This,mode)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRFilterConfig9_QueryInterface(IVMRFilterConfig9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRFilterConfig9_AddRef(IVMRFilterConfig9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRFilterConfig9_Release(IVMRFilterConfig9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRFilterConfig9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRFilterConfig9_SetImageCompositor(IVMRFilterConfig9* This,IVMRImageCompositor9 *compositor) {
|
|
|
|
return This->lpVtbl->SetImageCompositor(This,compositor);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRFilterConfig9_SetNumberOfStreams(IVMRFilterConfig9* This,DWORD max) {
|
|
|
|
return This->lpVtbl->SetNumberOfStreams(This,max);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRFilterConfig9_GetNumberOfStreams(IVMRFilterConfig9* This,DWORD *max) {
|
|
|
|
return This->lpVtbl->GetNumberOfStreams(This,max);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRFilterConfig9_SetRenderingPrefs(IVMRFilterConfig9* This,DWORD renderflags) {
|
|
|
|
return This->lpVtbl->SetRenderingPrefs(This,renderflags);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRFilterConfig9_GetRenderingPrefs(IVMRFilterConfig9* This,DWORD *renderflags) {
|
|
|
|
return This->lpVtbl->GetRenderingPrefs(This,renderflags);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRFilterConfig9_SetRenderingMode(IVMRFilterConfig9* This,DWORD mode) {
|
|
|
|
return This->lpVtbl->SetRenderingMode(This,mode);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRFilterConfig9_GetRenderingMode(IVMRFilterConfig9* This,DWORD *mode) {
|
|
|
|
return This->lpVtbl->GetRenderingMode(This,mode);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRFilterConfig9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRAspectRatioControl9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRAspectRatioControl9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRAspectRatioControl9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRAspectRatioControl9, 0x00d96c29, 0xbbde, 0x4efc, 0x99,0x01, 0xbb,0x50,0x36,0x39,0x21,0x46);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("00d96c29-bbde-4efc-9901-bb5036392146")
|
|
|
|
IVMRAspectRatioControl9 : public IUnknown
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode(
|
|
|
|
DWORD *mode) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode(
|
|
|
|
DWORD mode) = 0;
|
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRAspectRatioControl9, 0x00d96c29, 0xbbde, 0x4efc, 0x99,0x01, 0xbb,0x50,0x36,0x39,0x21,0x46)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRAspectRatioControl9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRAspectRatioControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRAspectRatioControl9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRAspectRatioControl9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRAspectRatioControl9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetAspectRatioMode)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRAspectRatioControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD *mode);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetAspectRatioMode)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRAspectRatioControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD mode);
|
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRAspectRatioControl9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRAspectRatioControl9 {
|
|
|
|
CONST_VTBL IVMRAspectRatioControl9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRAspectRatioControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRAspectRatioControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRAspectRatioControl9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRAspectRatioControl9 methods ***/
|
|
|
|
#define IVMRAspectRatioControl9_GetAspectRatioMode(This,mode) (This)->lpVtbl->GetAspectRatioMode(This,mode)
|
|
|
|
#define IVMRAspectRatioControl9_SetAspectRatioMode(This,mode) (This)->lpVtbl->SetAspectRatioMode(This,mode)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRAspectRatioControl9_QueryInterface(IVMRAspectRatioControl9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRAspectRatioControl9_AddRef(IVMRAspectRatioControl9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRAspectRatioControl9_Release(IVMRAspectRatioControl9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRAspectRatioControl9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRAspectRatioControl9_GetAspectRatioMode(IVMRAspectRatioControl9* This,DWORD *mode) {
|
|
|
|
return This->lpVtbl->GetAspectRatioMode(This,mode);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRAspectRatioControl9_SetAspectRatioMode(IVMRAspectRatioControl9* This,DWORD mode) {
|
|
|
|
return This->lpVtbl->SetAspectRatioMode(This,mode);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRAspectRatioControl9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
typedef struct _VMR9MonitorInfo {
|
|
|
|
UINT uDevID;
|
|
|
|
RECT rcMonitor;
|
|
|
|
HMONITOR hMon;
|
|
|
|
DWORD dwFlags;
|
|
|
|
WCHAR szDevice[32];
|
|
|
|
WCHAR szDescription[512];
|
|
|
|
LARGE_INTEGER liDriverVersion;
|
|
|
|
DWORD dwVendorId;
|
|
|
|
DWORD dwDeviceId;
|
|
|
|
DWORD dwSubSysId;
|
|
|
|
DWORD dwRevision;
|
|
|
|
} VMR9MonitorInfo;
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRMonitorConfig9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRMonitorConfig9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRMonitorConfig9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRMonitorConfig9, 0x46c2e457, 0x8ba0, 0x4eef, 0xb8,0x0b, 0x06,0x80,0xf0,0x97,0x87,0x49);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("46c2e457-8ba0-4eef-b80b-0680f0978749")
|
|
|
|
IVMRMonitorConfig9 : public IUnknown
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetMonitor(
|
|
|
|
UINT uDev) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetMonitor(
|
|
|
|
UINT *uDev) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetDefaultMonitor(
|
|
|
|
UINT uDev) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetDefaultMonitor(
|
|
|
|
UINT *uDev) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetAvailableMonitors(
|
|
|
|
VMR9MonitorInfo *info,
|
|
|
|
DWORD arraysize,
|
|
|
|
DWORD *numdev) = 0;
|
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRMonitorConfig9, 0x46c2e457, 0x8ba0, 0x4eef, 0xb8,0x0b, 0x06,0x80,0xf0,0x97,0x87,0x49)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRMonitorConfig9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMonitorConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMonitorConfig9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMonitorConfig9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRMonitorConfig9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetMonitor)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMonitorConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
UINT uDev);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetMonitor)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMonitorConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
UINT *uDev);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetDefaultMonitor)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMonitorConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
UINT uDev);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetDefaultMonitor)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMonitorConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
UINT *uDev);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetAvailableMonitors)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRMonitorConfig9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
VMR9MonitorInfo *info,
|
|
|
|
DWORD arraysize,
|
|
|
|
DWORD *numdev);
|
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRMonitorConfig9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRMonitorConfig9 {
|
|
|
|
CONST_VTBL IVMRMonitorConfig9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRMonitorConfig9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRMonitorConfig9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRMonitorConfig9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRMonitorConfig9 methods ***/
|
|
|
|
#define IVMRMonitorConfig9_SetMonitor(This,uDev) (This)->lpVtbl->SetMonitor(This,uDev)
|
|
|
|
#define IVMRMonitorConfig9_GetMonitor(This,uDev) (This)->lpVtbl->GetMonitor(This,uDev)
|
|
|
|
#define IVMRMonitorConfig9_SetDefaultMonitor(This,uDev) (This)->lpVtbl->SetDefaultMonitor(This,uDev)
|
|
|
|
#define IVMRMonitorConfig9_GetDefaultMonitor(This,uDev) (This)->lpVtbl->GetDefaultMonitor(This,uDev)
|
|
|
|
#define IVMRMonitorConfig9_GetAvailableMonitors(This,info,arraysize,numdev) (This)->lpVtbl->GetAvailableMonitors(This,info,arraysize,numdev)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRMonitorConfig9_QueryInterface(IVMRMonitorConfig9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRMonitorConfig9_AddRef(IVMRMonitorConfig9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRMonitorConfig9_Release(IVMRMonitorConfig9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRMonitorConfig9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRMonitorConfig9_SetMonitor(IVMRMonitorConfig9* This,UINT uDev) {
|
|
|
|
return This->lpVtbl->SetMonitor(This,uDev);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMonitorConfig9_GetMonitor(IVMRMonitorConfig9* This,UINT *uDev) {
|
|
|
|
return This->lpVtbl->GetMonitor(This,uDev);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMonitorConfig9_SetDefaultMonitor(IVMRMonitorConfig9* This,UINT uDev) {
|
|
|
|
return This->lpVtbl->SetDefaultMonitor(This,uDev);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMonitorConfig9_GetDefaultMonitor(IVMRMonitorConfig9* This,UINT *uDev) {
|
|
|
|
return This->lpVtbl->GetDefaultMonitor(This,uDev);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRMonitorConfig9_GetAvailableMonitors(IVMRMonitorConfig9* This,VMR9MonitorInfo *info,DWORD arraysize,DWORD *numdev) {
|
|
|
|
return This->lpVtbl->GetAvailableMonitors(This,info,arraysize,numdev);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRMonitorConfig9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
typedef enum _VMR9DeinterlacePrefs {
|
|
|
|
DeinterlacePref9_NextBest = 0x1,
|
|
|
|
DeinterlacePref9_BOB = 0x2,
|
|
|
|
DeinterlacePref9_Weave = 0x4,
|
|
|
|
DeinterlacePref9_Mask = 0x7
|
|
|
|
} VMR9DeinterlacePrefs;
|
|
|
|
typedef enum _VMR9DeinterlaceTech {
|
|
|
|
DeinterlaceTech9_Unknown = 0,
|
|
|
|
DeinterlaceTech9_BOBLineReplicate = 0x1,
|
|
|
|
DeinterlaceTech9_BOBVerticalStretch = 0x2,
|
|
|
|
DeinterlaceTech9_MedianFiltering = 0x4,
|
|
|
|
DeinterlaceTech9_EdgeFiltering = 0x10,
|
|
|
|
DeinterlaceTech9_FieldAdaptive = 0x20,
|
|
|
|
DeinterlaceTech9_PixelAdaptive = 0x40,
|
|
|
|
DeinterlaceTech9_MotionVectorSteered = 0x80
|
|
|
|
} VMR9DeinterlaceTech;
|
|
|
|
typedef struct _VMR9Frequency {
|
|
|
|
DWORD dwNumerator;
|
|
|
|
DWORD dwDenominator;
|
|
|
|
} VMR9Frequency;
|
|
|
|
typedef enum _VMR9_SampleFormat {
|
|
|
|
VMR9_SampleReserved = 1,
|
|
|
|
VMR9_SampleProgressiveFrame = 2,
|
|
|
|
VMR9_SampleFieldInterleavedEvenFirst = 3,
|
|
|
|
VMR9_SampleFieldInterleavedOddFirst = 4,
|
|
|
|
VMR9_SampleFieldSingleEven = 5,
|
|
|
|
VMR9_SampleFieldSingleOdd = 6
|
|
|
|
} VMR9_SampleFormat;
|
|
|
|
typedef struct _VMR9VideoDesc {
|
|
|
|
DWORD dwSize;
|
|
|
|
DWORD dwSampleWidth;
|
|
|
|
DWORD dwSampleHeight;
|
|
|
|
VMR9_SampleFormat SampleFormat;
|
|
|
|
DWORD dwFourCC;
|
|
|
|
VMR9Frequency InputSampleFreq;
|
|
|
|
VMR9Frequency OutputFrameFreq;
|
|
|
|
} VMR9VideoDesc;
|
|
|
|
typedef struct _VMR9DeinterlaceCaps {
|
|
|
|
DWORD dwSize;
|
|
|
|
DWORD dwNumPreviousOutputFrames;
|
|
|
|
DWORD dwNumForwardRefSamples;
|
|
|
|
DWORD dwNumBackwardRefSamples;
|
|
|
|
VMR9DeinterlaceTech DeinterlaceTechnology;
|
|
|
|
} VMR9DeinterlaceCaps;
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRDeinterlaceControl9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRDeinterlaceControl9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRDeinterlaceControl9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRDeinterlaceControl9, 0xa215fb8d, 0x13c2, 0x4f7f, 0x99,0x3c, 0x00,0x3d,0x62,0x71,0xa4,0x59);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("a215fb8d-13c2-4f7f-993c-003d6271a459")
|
|
|
|
IVMRDeinterlaceControl9 : public IUnknown
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetNumberOfDeinterlaceModes(
|
|
|
|
VMR9VideoDesc *desc,
|
|
|
|
DWORD *nummodes,
|
|
|
|
GUID *modes) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetDeinterlaceModeCaps(
|
|
|
|
GUID *mode,
|
|
|
|
VMR9VideoDesc *desc,
|
|
|
|
VMR9DeinterlaceCaps *caps) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetDeinterlaceMode(
|
|
|
|
DWORD streamid,
|
|
|
|
GUID *mode) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetDeinterlaceMode(
|
|
|
|
DWORD streamid,
|
|
|
|
GUID *mode) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetDeinterlacePrefs(
|
|
|
|
DWORD *prefs) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SetDeinterlacePrefs(
|
|
|
|
DWORD prefs) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetActualDeinterlaceMode(
|
|
|
|
DWORD streamid,
|
|
|
|
GUID *mode) = 0;
|
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRDeinterlaceControl9, 0xa215fb8d, 0x13c2, 0x4f7f, 0x99,0x3c, 0x00,0x3d,0x62,0x71,0xa4,0x59)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRDeinterlaceControl9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRDeinterlaceControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRDeinterlaceControl9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRDeinterlaceControl9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRDeinterlaceControl9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetNumberOfDeinterlaceModes)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRDeinterlaceControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
VMR9VideoDesc *desc,
|
|
|
|
DWORD *nummodes,
|
|
|
|
GUID *modes);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetDeinterlaceModeCaps)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRDeinterlaceControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
GUID *mode,
|
|
|
|
VMR9VideoDesc *desc,
|
|
|
|
VMR9DeinterlaceCaps *caps);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetDeinterlaceMode)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRDeinterlaceControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD streamid,
|
|
|
|
GUID *mode);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetDeinterlaceMode)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRDeinterlaceControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD streamid,
|
|
|
|
GUID *mode);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetDeinterlacePrefs)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRDeinterlaceControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD *prefs);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *SetDeinterlacePrefs)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRDeinterlaceControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD prefs);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *GetActualDeinterlaceMode)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRDeinterlaceControl9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
DWORD streamid,
|
|
|
|
GUID *mode);
|
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRDeinterlaceControl9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRDeinterlaceControl9 {
|
|
|
|
CONST_VTBL IVMRDeinterlaceControl9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRDeinterlaceControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRDeinterlaceControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRDeinterlaceControl9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRDeinterlaceControl9 methods ***/
|
|
|
|
#define IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes(This,desc,nummodes,modes) (This)->lpVtbl->GetNumberOfDeinterlaceModes(This,desc,nummodes,modes)
|
|
|
|
#define IVMRDeinterlaceControl9_GetDeinterlaceModeCaps(This,mode,desc,caps) (This)->lpVtbl->GetDeinterlaceModeCaps(This,mode,desc,caps)
|
|
|
|
#define IVMRDeinterlaceControl9_GetDeinterlaceMode(This,streamid,mode) (This)->lpVtbl->GetDeinterlaceMode(This,streamid,mode)
|
|
|
|
#define IVMRDeinterlaceControl9_SetDeinterlaceMode(This,streamid,mode) (This)->lpVtbl->SetDeinterlaceMode(This,streamid,mode)
|
|
|
|
#define IVMRDeinterlaceControl9_GetDeinterlacePrefs(This,prefs) (This)->lpVtbl->GetDeinterlacePrefs(This,prefs)
|
|
|
|
#define IVMRDeinterlaceControl9_SetDeinterlacePrefs(This,prefs) (This)->lpVtbl->SetDeinterlacePrefs(This,prefs)
|
|
|
|
#define IVMRDeinterlaceControl9_GetActualDeinterlaceMode(This,streamid,mode) (This)->lpVtbl->GetActualDeinterlaceMode(This,streamid,mode)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRDeinterlaceControl9_QueryInterface(IVMRDeinterlaceControl9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRDeinterlaceControl9_AddRef(IVMRDeinterlaceControl9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRDeinterlaceControl9_Release(IVMRDeinterlaceControl9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRDeinterlaceControl9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes(IVMRDeinterlaceControl9* This,VMR9VideoDesc *desc,DWORD *nummodes,GUID *modes) {
|
|
|
|
return This->lpVtbl->GetNumberOfDeinterlaceModes(This,desc,nummodes,modes);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlaceModeCaps(IVMRDeinterlaceControl9* This,GUID *mode,VMR9VideoDesc *desc,VMR9DeinterlaceCaps *caps) {
|
|
|
|
return This->lpVtbl->GetDeinterlaceModeCaps(This,mode,desc,caps);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) {
|
|
|
|
return This->lpVtbl->GetDeinterlaceMode(This,streamid,mode);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRDeinterlaceControl9_SetDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) {
|
|
|
|
return This->lpVtbl->SetDeinterlaceMode(This,streamid,mode);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlacePrefs(IVMRDeinterlaceControl9* This,DWORD *prefs) {
|
|
|
|
return This->lpVtbl->GetDeinterlacePrefs(This,prefs);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRDeinterlaceControl9_SetDeinterlacePrefs(IVMRDeinterlaceControl9* This,DWORD prefs) {
|
|
|
|
return This->lpVtbl->SetDeinterlacePrefs(This,prefs);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetActualDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) {
|
|
|
|
return This->lpVtbl->GetActualDeinterlaceMode(This,streamid,mode);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRDeinterlaceControl9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
typedef struct _VMR9VideoStreamInfo {
|
|
|
|
IDirect3DSurface9 *pddsVideoSurface;
|
|
|
|
DWORD dwWidth;
|
|
|
|
DWORD dwHeight;
|
|
|
|
DWORD dwStrmID;
|
|
|
|
FLOAT fAlpha;
|
|
|
|
VMR9NormalizedRect rNormal;
|
|
|
|
REFERENCE_TIME rtStart;
|
|
|
|
REFERENCE_TIME rtEnd;
|
|
|
|
VMR9_SampleFormat SampleFormat;
|
|
|
|
} VMR9VideoStreamInfo;
|
|
|
|
/*****************************************************************************
|
|
|
|
* IVMRImageCompositor9 interface
|
|
|
|
*/
|
|
|
|
#ifndef __IVMRImageCompositor9_INTERFACE_DEFINED__
|
|
|
|
#define __IVMRImageCompositor9_INTERFACE_DEFINED__
|
|
|
|
|
|
|
|
DEFINE_GUID(IID_IVMRImageCompositor9, 0x4a5c89eb, 0xdf51, 0x4654, 0xac,0x2a, 0xe4,0x8e,0x02,0xbb,0xab,0xf6);
|
|
|
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
2011-07-18 18:10:31 +08:00
|
|
|
MIDL_INTERFACE("4a5c89eb-df51-4654-ac2a-e48e02bbabf6")
|
|
|
|
IVMRImageCompositor9 : public IUnknown
|
2010-02-12 22:10:48 +08:00
|
|
|
{
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE InitCompositionDevice(
|
|
|
|
IUnknown *d3ddev) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE TermCompositionDevice(
|
|
|
|
IUnknown *d3ddev) = 0;
|
|
|
|
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE CompositeImage(
|
|
|
|
IUnknown *d3ddev,
|
|
|
|
IDirect3DSurface9 *d3dtarget,
|
|
|
|
AM_MEDIA_TYPE *mttarget,
|
|
|
|
REFERENCE_TIME start,
|
|
|
|
REFERENCE_TIME stop,
|
|
|
|
D3DCOLOR back,
|
|
|
|
VMR9VideoStreamInfo *info,
|
|
|
|
UINT streams) = 0;
|
|
|
|
|
|
|
|
};
|
2011-07-18 18:10:31 +08:00
|
|
|
#ifdef __CRT_UUID_DECL
|
|
|
|
__CRT_UUID_DECL(IVMRImageCompositor9, 0x4a5c89eb, 0xdf51, 0x4654, 0xac,0x2a, 0xe4,0x8e,0x02,0xbb,0xab,0xf6)
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#else
|
|
|
|
typedef struct IVMRImageCompositor9Vtbl {
|
|
|
|
BEGIN_INTERFACE
|
|
|
|
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImageCompositor9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
REFIID riid,
|
|
|
|
void **ppvObject);
|
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *AddRef)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImageCompositor9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
ULONG (STDMETHODCALLTYPE *Release)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImageCompositor9 *This);
|
2010-02-12 22:10:48 +08:00
|
|
|
|
|
|
|
/*** IVMRImageCompositor9 methods ***/
|
|
|
|
HRESULT (STDMETHODCALLTYPE *InitCompositionDevice)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImageCompositor9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
IUnknown *d3ddev);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *TermCompositionDevice)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImageCompositor9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
IUnknown *d3ddev);
|
|
|
|
|
|
|
|
HRESULT (STDMETHODCALLTYPE *CompositeImage)(
|
2018-11-10 05:40:43 +08:00
|
|
|
IVMRImageCompositor9 *This,
|
2010-02-12 22:10:48 +08:00
|
|
|
IUnknown *d3ddev,
|
|
|
|
IDirect3DSurface9 *d3dtarget,
|
|
|
|
AM_MEDIA_TYPE *mttarget,
|
|
|
|
REFERENCE_TIME start,
|
|
|
|
REFERENCE_TIME stop,
|
|
|
|
D3DCOLOR back,
|
|
|
|
VMR9VideoStreamInfo *info,
|
|
|
|
UINT streams);
|
|
|
|
|
|
|
|
END_INTERFACE
|
|
|
|
} IVMRImageCompositor9Vtbl;
|
2018-11-10 05:40:43 +08:00
|
|
|
|
2010-02-12 22:10:48 +08:00
|
|
|
interface IVMRImageCompositor9 {
|
|
|
|
CONST_VTBL IVMRImageCompositor9Vtbl* lpVtbl;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef COBJMACROS
|
2012-08-01 16:29:55 +08:00
|
|
|
#ifndef WIDL_C_INLINE_WRAPPERS
|
2010-02-12 22:10:48 +08:00
|
|
|
/*** IUnknown methods ***/
|
|
|
|
#define IVMRImageCompositor9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IVMRImageCompositor9_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
|
|
#define IVMRImageCompositor9_Release(This) (This)->lpVtbl->Release(This)
|
|
|
|
/*** IVMRImageCompositor9 methods ***/
|
|
|
|
#define IVMRImageCompositor9_InitCompositionDevice(This,d3ddev) (This)->lpVtbl->InitCompositionDevice(This,d3ddev)
|
|
|
|
#define IVMRImageCompositor9_TermCompositionDevice(This,d3ddev) (This)->lpVtbl->TermCompositionDevice(This,d3ddev)
|
|
|
|
#define IVMRImageCompositor9_CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams) (This)->lpVtbl->CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams)
|
2012-08-01 16:29:55 +08:00
|
|
|
#else
|
|
|
|
/*** IUnknown methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRImageCompositor9_QueryInterface(IVMRImageCompositor9* This,REFIID riid,void **ppvObject) {
|
|
|
|
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRImageCompositor9_AddRef(IVMRImageCompositor9* This) {
|
|
|
|
return This->lpVtbl->AddRef(This);
|
|
|
|
}
|
|
|
|
static FORCEINLINE ULONG IVMRImageCompositor9_Release(IVMRImageCompositor9* This) {
|
|
|
|
return This->lpVtbl->Release(This);
|
|
|
|
}
|
|
|
|
/*** IVMRImageCompositor9 methods ***/
|
|
|
|
static FORCEINLINE HRESULT IVMRImageCompositor9_InitCompositionDevice(IVMRImageCompositor9* This,IUnknown *d3ddev) {
|
|
|
|
return This->lpVtbl->InitCompositionDevice(This,d3ddev);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRImageCompositor9_TermCompositionDevice(IVMRImageCompositor9* This,IUnknown *d3ddev) {
|
|
|
|
return This->lpVtbl->TermCompositionDevice(This,d3ddev);
|
|
|
|
}
|
|
|
|
static FORCEINLINE HRESULT IVMRImageCompositor9_CompositeImage(IVMRImageCompositor9* This,IUnknown *d3ddev,IDirect3DSurface9 *d3dtarget,AM_MEDIA_TYPE *mttarget,REFERENCE_TIME start,REFERENCE_TIME stop,D3DCOLOR back,VMR9VideoStreamInfo *info,UINT streams) {
|
|
|
|
return This->lpVtbl->CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams);
|
|
|
|
}
|
|
|
|
#endif
|
2010-02-12 22:10:48 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IVMRImageCompositor9_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
/* Begin additional prototypes for all interfaces */
|
|
|
|
|
|
|
|
|
|
|
|
/* End additional prototypes */
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2012-03-09 20:48:29 +08:00
|
|
|
#endif /* __vmr9_h__ */
|