[opencv] 139/251: cleanup unused 3rdparty files

Nobuhiro Iwamatsu iwamatsu at moszumanska.debian.org
Sun Aug 27 23:27:35 UTC 2017


This is an automated email from the git hooks/post-receive script.

iwamatsu pushed a commit to annotated tag 3.3.0
in repository opencv.

commit e45d5446f2c8210ed21d27fe38180ac1fac1015a
Author: Alexander Alekhin <alexander.alekhin at intel.com>
Date:   Fri Jul 21 15:07:45 2017 +0300

    cleanup unused 3rdparty files
---
 3rdparty/include/dshow/_mingw_dxhelper.h |  110 -
 3rdparty/include/dshow/_mingw_unicode.h  |   33 -
 3rdparty/include/dshow/amvideo.h         | 1290 ----
 3rdparty/include/dshow/audevcod.h        |   31 -
 3rdparty/include/dshow/bdatypes.h        |   32 -
 3rdparty/include/dshow/control.h         | 1467 -----
 3rdparty/include/dshow/ddraw.h           | 2712 ---------
 3rdparty/include/dshow/dshow.h           |   61 -
 3rdparty/include/dshow/dsound.h          | 1199 ----
 3rdparty/include/dshow/dvdmedia.h        |   75 -
 3rdparty/include/dshow/errors.h          |  169 -
 3rdparty/include/dshow/evcode.h          |   68 -
 3rdparty/include/dshow/ksuuids.h         |  191 -
 3rdparty/include/dshow/strmif.h          | 9392 ------------------------------
 3rdparty/include/dshow/uuids.h           |  368 --
 3rdparty/include/msc_inttypes.h          |  301 -
 3rdparty/include/msc_stdint.h            |  219 -
 cmake/OpenCVFindLibsVideo.cmake          |    7 +-
 modules/videoio/src/cap_dshow.cpp        |   54 +-
 19 files changed, 10 insertions(+), 17769 deletions(-)

diff --git a/3rdparty/include/dshow/_mingw_dxhelper.h b/3rdparty/include/dshow/_mingw_dxhelper.h
deleted file mode 100644
index 467f3aa..0000000
--- a/3rdparty/include/dshow/_mingw_dxhelper.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the w64 mingw-runtime package.
- * No warranty is given; refer to the file DISCLAIMER within this package.
- */
-
-#if defined(_MSC_VER) && !defined(_MSC_EXTENSIONS)
-#define NONAMELESSUNION		1
-#endif
-#if defined(NONAMELESSSTRUCT) && \
-   !defined(NONAMELESSUNION)
-#define NONAMELESSUNION		1
-#endif
-#if defined(NONAMELESSUNION)  && \
-   !defined(NONAMELESSSTRUCT)
-#define NONAMELESSSTRUCT	1
-#endif
-
-#ifndef __ANONYMOUS_DEFINED
-#define __ANONYMOUS_DEFINED
-#if defined(__GNUC__) || defined(__GNUG__)
-#define _ANONYMOUS_UNION	__extension__
-#define _ANONYMOUS_STRUCT	__extension__
-#else
-#define _ANONYMOUS_UNION
-#define _ANONYMOUS_STRUCT
-#endif
-#ifndef NONAMELESSUNION
-#define _UNION_NAME(x)
-#define _STRUCT_NAME(x)
-#else /* NONAMELESSUNION */
-#define _UNION_NAME(x)  x
-#define _STRUCT_NAME(x) x
-#endif
-#endif	/* __ANONYMOUS_DEFINED */
-
-#ifndef DUMMYUNIONNAME
-# ifdef NONAMELESSUNION
-#  define DUMMYUNIONNAME  u
-#  define DUMMYUNIONNAME1 u1	/* Wine uses this variant */
-#  define DUMMYUNIONNAME2 u2
-#  define DUMMYUNIONNAME3 u3
-#  define DUMMYUNIONNAME4 u4
-#  define DUMMYUNIONNAME5 u5
-#  define DUMMYUNIONNAME6 u6
-#  define DUMMYUNIONNAME7 u7
-#  define DUMMYUNIONNAME8 u8
-#  define DUMMYUNIONNAME9 u9
-# else /* NONAMELESSUNION */
-#  define DUMMYUNIONNAME
-#  define DUMMYUNIONNAME1	/* Wine uses this variant */
-#  define DUMMYUNIONNAME2
-#  define DUMMYUNIONNAME3
-#  define DUMMYUNIONNAME4
-#  define DUMMYUNIONNAME5
-#  define DUMMYUNIONNAME6
-#  define DUMMYUNIONNAME7
-#  define DUMMYUNIONNAME8
-#  define DUMMYUNIONNAME9
-# endif
-#endif	/* DUMMYUNIONNAME */
-
-#if !defined(DUMMYUNIONNAME1)	/* MinGW does not define this one */
-# ifdef NONAMELESSUNION
-#  define DUMMYUNIONNAME1 u1	/* Wine uses this variant */
-# else
-#  define DUMMYUNIONNAME1	/* Wine uses this variant */
-# endif
-#endif	/* DUMMYUNIONNAME1 */
-
-#ifndef DUMMYSTRUCTNAME
-# ifdef NONAMELESSUNION
-#  define DUMMYSTRUCTNAME  s
-#  define DUMMYSTRUCTNAME1 s1	/* Wine uses this variant */
-#  define DUMMYSTRUCTNAME2 s2
-#  define DUMMYSTRUCTNAME3 s3
-#  define DUMMYSTRUCTNAME4 s4
-#  define DUMMYSTRUCTNAME5 s5
-# else
-#  define DUMMYSTRUCTNAME
-#  define DUMMYSTRUCTNAME1	/* Wine uses this variant */
-#  define DUMMYSTRUCTNAME2
-#  define DUMMYSTRUCTNAME3
-#  define DUMMYSTRUCTNAME4
-#  define DUMMYSTRUCTNAME5
-# endif
-#endif /* DUMMYSTRUCTNAME */
-
-/* These are for compatibility with the Wine source tree */
-
-#ifndef WINELIB_NAME_AW
-# ifdef __MINGW_NAME_AW
-#   define WINELIB_NAME_AW  __MINGW_NAME_AW
-# else
-#  ifdef UNICODE
-#   define WINELIB_NAME_AW(func) func##W
-#  else
-#   define WINELIB_NAME_AW(func) func##A
-#  endif
-# endif
-#endif	/* WINELIB_NAME_AW */
-
-#ifndef DECL_WINELIB_TYPE_AW
-# ifdef __MINGW_TYPEDEF_AW
-#  define DECL_WINELIB_TYPE_AW  __MINGW_TYPEDEF_AW
-# else
-#  define DECL_WINELIB_TYPE_AW(type)  typedef WINELIB_NAME_AW(type) type;
-# endif
-#endif	/* DECL_WINELIB_TYPE_AW */
-
diff --git a/3rdparty/include/dshow/_mingw_unicode.h b/3rdparty/include/dshow/_mingw_unicode.h
deleted file mode 100644
index 38334bc..0000000
--- a/3rdparty/include/dshow/_mingw_unicode.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the w64 mingw-runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-
-#if !defined(_INC_CRT_UNICODE_MACROS)
-/* _INC_CRT_UNICODE_MACROS defined based on UNICODE flag */
-
-#if defined(UNICODE)
-# define _INC_CRT_UNICODE_MACROS 1
-# define __MINGW_NAME_AW(func) func##W
-# define __MINGW_NAME_AW_EXT(func,ext) func##W##ext
-# define __MINGW_NAME_UAW(func) func##_W
-# define __MINGW_NAME_UAW_EXT(func,ext) func##_W_##ext
-# define __MINGW_STRING_AW(str) L##str	/* same as TEXT() from winnt.h */
-# define __MINGW_PROCNAMEEXT_AW "W"
-#else
-# define _INC_CRT_UNICODE_MACROS 2
-# define __MINGW_NAME_AW(func) func##A
-# define __MINGW_NAME_AW_EXT(func,ext) func##A##ext
-# define __MINGW_NAME_UAW(func) func##_A
-# define __MINGW_NAME_UAW_EXT(func,ext) func##_A_##ext
-# define __MINGW_STRING_AW(str) str	/* same as TEXT() from winnt.h */
-# define __MINGW_PROCNAMEEXT_AW "A"
-#endif
-
-#define __MINGW_TYPEDEF_AW(type)	\
-    typedef __MINGW_NAME_AW(type) type;
-#define __MINGW_TYPEDEF_UAW(type)	\
-    typedef __MINGW_NAME_UAW(type) type;
-
-#endif /* !defined(_INC_CRT_UNICODE_MACROS) */
diff --git a/3rdparty/include/dshow/amvideo.h b/3rdparty/include/dshow/amvideo.h
deleted file mode 100644
index 401c105..0000000
--- a/3rdparty/include/dshow/amvideo.h
+++ /dev/null
@@ -1,1290 +0,0 @@
-/*** Autogenerated by WIDL from amvideo.idl - Do not edit ***/
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifndef __WIDL_AMVIDEO_H
-#define __WIDL_AMVIDEO_H
-
-/* Forward declarations */
-
-#ifndef __IDirectDrawVideo_FWD_DEFINED__
-#define __IDirectDrawVideo_FWD_DEFINED__
-typedef interface IDirectDrawVideo IDirectDrawVideo;
-#endif
-
-#ifndef __IQualProp_FWD_DEFINED__
-#define __IQualProp_FWD_DEFINED__
-typedef interface IQualProp IQualProp;
-#endif
-
-#ifndef __IFullScreenVideo_FWD_DEFINED__
-#define __IFullScreenVideo_FWD_DEFINED__
-typedef interface IFullScreenVideo IFullScreenVideo;
-#endif
-
-#ifndef __IFullScreenVideoEx_FWD_DEFINED__
-#define __IFullScreenVideoEx_FWD_DEFINED__
-typedef interface IFullScreenVideoEx IFullScreenVideoEx;
-#endif
-
-#ifndef __IBaseVideoMixer_FWD_DEFINED__
-#define __IBaseVideoMixer_FWD_DEFINED__
-typedef interface IBaseVideoMixer IBaseVideoMixer;
-#endif
-
-/* Headers for imported files */
-
-#include <objidl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if 0
-typedef void *LPDIRECTDRAW;
-typedef void DDSURFACEDESC;
-typedef void DDCAPS;
-typedef DWORD RGBQUAD;
-typedef LONGLONG REFERENCE_TIME;
-typedef struct __WIDL_amvideo_generated_name_00000000 {
-    DWORD biSize;
-    LONG biWidth;
-    LONG biHeight;
-    WORD biPlanes;
-    WORD biBitCount;
-    DWORD biCompression;
-    DWORD biSizeImage;
-    LONG biXPelsPerMeter;
-    LONG biYPelsPerMeter;
-    DWORD biClrUsed;
-    DWORD biClrImportant;
-} BITMAPINFOHEADER;
-typedef struct __WIDL_amvideo_generated_name_00000000 *PBITMAPINFOHEADER;
-typedef struct __WIDL_amvideo_generated_name_00000000 *LPBITMAPINFOHEADER;
-#endif
-#include <dshow/ddraw.h>
-#define AMDDS_NONE 0x00
-#define AMDDS_DCIPS 0x01
-#define AMDDS_PS 0x02
-#define AMDDS_RGBOVR 0x04
-#define AMDDS_YUVOVR 0x08
-#define AMDDS_RGBOFF 0x10
-#define AMDDS_YUVOFF 0x20
-#define AMDDS_RGBFLP 0x40
-#define AMDDS_YUVFLP 0x80
-#define AMDDS_ALL 0xFF
-#define AMDDS_DEFAULT AMDDS_ALL
-#define AMDDS_YUV (AMDDS_YUVOFF | AMDDS_YUVOVR | AMDDS_YUVFLP)
-#define AMDDS_RGB (AMDDS_RGBOFF | AMDDS_RGBOVR | AMDDS_RGBFLP)
-#define AMDSS_PRIMARY (AMDDS_DCIPS | AMDDS_PS)
-/*****************************************************************************
- * IDirectDrawVideo interface
- */
-#ifndef __IDirectDrawVideo_INTERFACE_DEFINED__
-#define __IDirectDrawVideo_INTERFACE_DEFINED__
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IDirectDrawVideo : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE GetSwitches(
-        DWORD *pSwitches) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetSwitches(
-        DWORD Switches) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetCaps(
-        DDCAPS *pCaps) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetEmulatedCaps(
-        DDCAPS *pCaps) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetSurfaceDesc(
-        DDSURFACEDESC *pSurfaceDesc) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetFourCCCodes(
-        DWORD *pCount,
-        DWORD *pCodes) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetDirectDraw(
-        LPDIRECTDRAW pDirectDraw) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetDirectDraw(
-        LPDIRECTDRAW *ppDirectDraw) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetSurfaceType(
-        DWORD *pSurfaceType) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetDefault(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE UseScanLine(
-        LONG UseScanLine) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CanUseScanLine(
-        LONG *UseScanLine) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE UseOverlayStretch(
-        LONG UseOverlayStretch) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CanUseOverlayStretch(
-        LONG *UseOverlayStretch) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE UseWhenFullScreen(
-        LONG UseWhenFullScreen) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE WillUseFullScreen(
-        LONG *UseWhenFullScreen) = 0;
-
-};
-#else
-typedef struct IDirectDrawVideoVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDirectDrawVideo* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDirectDrawVideo* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IDirectDrawVideo* This);
-
-    /*** IDirectDrawVideo methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetSwitches)(
-        IDirectDrawVideo* This,
-        DWORD *pSwitches);
-
-    HRESULT (STDMETHODCALLTYPE *SetSwitches)(
-        IDirectDrawVideo* This,
-        DWORD Switches);
-
-    HRESULT (STDMETHODCALLTYPE *GetCaps)(
-        IDirectDrawVideo* This,
-        DDCAPS *pCaps);
-
-    HRESULT (STDMETHODCALLTYPE *GetEmulatedCaps)(
-        IDirectDrawVideo* This,
-        DDCAPS *pCaps);
-
-    HRESULT (STDMETHODCALLTYPE *GetSurfaceDesc)(
-        IDirectDrawVideo* This,
-        DDSURFACEDESC *pSurfaceDesc);
-
-    HRESULT (STDMETHODCALLTYPE *GetFourCCCodes)(
-        IDirectDrawVideo* This,
-        DWORD *pCount,
-        DWORD *pCodes);
-
-    HRESULT (STDMETHODCALLTYPE *SetDirectDraw)(
-        IDirectDrawVideo* This,
-        LPDIRECTDRAW pDirectDraw);
-
-    HRESULT (STDMETHODCALLTYPE *GetDirectDraw)(
-        IDirectDrawVideo* This,
-        LPDIRECTDRAW *ppDirectDraw);
-
-    HRESULT (STDMETHODCALLTYPE *GetSurfaceType)(
-        IDirectDrawVideo* This,
-        DWORD *pSurfaceType);
-
-    HRESULT (STDMETHODCALLTYPE *SetDefault)(
-        IDirectDrawVideo* This);
-
-    HRESULT (STDMETHODCALLTYPE *UseScanLine)(
-        IDirectDrawVideo* This,
-        LONG UseScanLine);
-
-    HRESULT (STDMETHODCALLTYPE *CanUseScanLine)(
-        IDirectDrawVideo* This,
-        LONG *UseScanLine);
-
-    HRESULT (STDMETHODCALLTYPE *UseOverlayStretch)(
-        IDirectDrawVideo* This,
-        LONG UseOverlayStretch);
-
-    HRESULT (STDMETHODCALLTYPE *CanUseOverlayStretch)(
-        IDirectDrawVideo* This,
-        LONG *UseOverlayStretch);
-
-    HRESULT (STDMETHODCALLTYPE *UseWhenFullScreen)(
-        IDirectDrawVideo* This,
-        LONG UseWhenFullScreen);
-
-    HRESULT (STDMETHODCALLTYPE *WillUseFullScreen)(
-        IDirectDrawVideo* This,
-        LONG *UseWhenFullScreen);
-
-    END_INTERFACE
-} IDirectDrawVideoVtbl;
-interface IDirectDrawVideo {
-    CONST_VTBL IDirectDrawVideoVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IDirectDrawVideo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDirectDrawVideo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDirectDrawVideo_Release(This) (This)->lpVtbl->Release(This)
-/*** IDirectDrawVideo methods ***/
-#define IDirectDrawVideo_GetSwitches(This,pSwitches) (This)->lpVtbl->GetSwitches(This,pSwitches)
-#define IDirectDrawVideo_SetSwitches(This,Switches) (This)->lpVtbl->SetSwitches(This,Switches)
-#define IDirectDrawVideo_GetCaps(This,pCaps) (This)->lpVtbl->GetCaps(This,pCaps)
-#define IDirectDrawVideo_GetEmulatedCaps(This,pCaps) (This)->lpVtbl->GetEmulatedCaps(This,pCaps)
-#define IDirectDrawVideo_GetSurfaceDesc(This,pSurfaceDesc) (This)->lpVtbl->GetSurfaceDesc(This,pSurfaceDesc)
-#define IDirectDrawVideo_GetFourCCCodes(This,pCount,pCodes) (This)->lpVtbl->GetFourCCCodes(This,pCount,pCodes)
-#define IDirectDrawVideo_SetDirectDraw(This,pDirectDraw) (This)->lpVtbl->SetDirectDraw(This,pDirectDraw)
-#define IDirectDrawVideo_GetDirectDraw(This,ppDirectDraw) (This)->lpVtbl->GetDirectDraw(This,ppDirectDraw)
-#define IDirectDrawVideo_GetSurfaceType(This,pSurfaceType) (This)->lpVtbl->GetSurfaceType(This,pSurfaceType)
-#define IDirectDrawVideo_SetDefault(This) (This)->lpVtbl->SetDefault(This)
-#define IDirectDrawVideo_UseScanLine(This,UseScanLine) (This)->lpVtbl->UseScanLine(This,UseScanLine)
-#define IDirectDrawVideo_CanUseScanLine(This,UseScanLine) (This)->lpVtbl->CanUseScanLine(This,UseScanLine)
-#define IDirectDrawVideo_UseOverlayStretch(This,UseOverlayStretch) (This)->lpVtbl->UseOverlayStretch(This,UseOverlayStretch)
-#define IDirectDrawVideo_CanUseOverlayStretch(This,UseOverlayStretch) (This)->lpVtbl->CanUseOverlayStretch(This,UseOverlayStretch)
-#define IDirectDrawVideo_UseWhenFullScreen(This,UseWhenFullScreen) (This)->lpVtbl->UseWhenFullScreen(This,UseWhenFullScreen)
-#define IDirectDrawVideo_WillUseFullScreen(This,UseWhenFullScreen) (This)->lpVtbl->WillUseFullScreen(This,UseWhenFullScreen)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_GetSwitches_Proxy(
-    IDirectDrawVideo* This,
-    DWORD *pSwitches);
-void __RPC_STUB IDirectDrawVideo_GetSwitches_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_SetSwitches_Proxy(
-    IDirectDrawVideo* This,
-    DWORD Switches);
-void __RPC_STUB IDirectDrawVideo_SetSwitches_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_GetCaps_Proxy(
-    IDirectDrawVideo* This,
-    DDCAPS *pCaps);
-void __RPC_STUB IDirectDrawVideo_GetCaps_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_GetEmulatedCaps_Proxy(
-    IDirectDrawVideo* This,
-    DDCAPS *pCaps);
-void __RPC_STUB IDirectDrawVideo_GetEmulatedCaps_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_GetSurfaceDesc_Proxy(
-    IDirectDrawVideo* This,
-    DDSURFACEDESC *pSurfaceDesc);
-void __RPC_STUB IDirectDrawVideo_GetSurfaceDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_GetFourCCCodes_Proxy(
-    IDirectDrawVideo* This,
-    DWORD *pCount,
-    DWORD *pCodes);
-void __RPC_STUB IDirectDrawVideo_GetFourCCCodes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_SetDirectDraw_Proxy(
-    IDirectDrawVideo* This,
-    LPDIRECTDRAW pDirectDraw);
-void __RPC_STUB IDirectDrawVideo_SetDirectDraw_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_GetDirectDraw_Proxy(
-    IDirectDrawVideo* This,
-    LPDIRECTDRAW *ppDirectDraw);
-void __RPC_STUB IDirectDrawVideo_GetDirectDraw_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_GetSurfaceType_Proxy(
-    IDirectDrawVideo* This,
-    DWORD *pSurfaceType);
-void __RPC_STUB IDirectDrawVideo_GetSurfaceType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_SetDefault_Proxy(
-    IDirectDrawVideo* This);
-void __RPC_STUB IDirectDrawVideo_SetDefault_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_UseScanLine_Proxy(
-    IDirectDrawVideo* This,
-    LONG UseScanLine);
-void __RPC_STUB IDirectDrawVideo_UseScanLine_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_CanUseScanLine_Proxy(
-    IDirectDrawVideo* This,
-    LONG *UseScanLine);
-void __RPC_STUB IDirectDrawVideo_CanUseScanLine_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_UseOverlayStretch_Proxy(
-    IDirectDrawVideo* This,
-    LONG UseOverlayStretch);
-void __RPC_STUB IDirectDrawVideo_UseOverlayStretch_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_CanUseOverlayStretch_Proxy(
-    IDirectDrawVideo* This,
-    LONG *UseOverlayStretch);
-void __RPC_STUB IDirectDrawVideo_CanUseOverlayStretch_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_UseWhenFullScreen_Proxy(
-    IDirectDrawVideo* This,
-    LONG UseWhenFullScreen);
-void __RPC_STUB IDirectDrawVideo_UseWhenFullScreen_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectDrawVideo_WillUseFullScreen_Proxy(
-    IDirectDrawVideo* This,
-    LONG *UseWhenFullScreen);
-void __RPC_STUB IDirectDrawVideo_WillUseFullScreen_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IDirectDrawVideo_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * IQualProp interface
- */
-#ifndef __IQualProp_INTERFACE_DEFINED__
-#define __IQualProp_INTERFACE_DEFINED__
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IQualProp : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE get_FramesDroppedInRenderer(
-        int *pcFrames) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_FramesDrawn(
-        int *pcFramesDrawn) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_AvgFrameRate(
-        int *piAvgFrameRate) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Jitter(
-        int *iJitter) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_AvgSyncOffset(
-        int *piAvg) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_DevSyncOffset(
-        int *piDev) = 0;
-
-};
-#else
-typedef struct IQualPropVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IQualProp* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IQualProp* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IQualProp* This);
-
-    /*** IQualProp methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_FramesDroppedInRenderer)(
-        IQualProp* This,
-        int *pcFrames);
-
-    HRESULT (STDMETHODCALLTYPE *get_FramesDrawn)(
-        IQualProp* This,
-        int *pcFramesDrawn);
-
-    HRESULT (STDMETHODCALLTYPE *get_AvgFrameRate)(
-        IQualProp* This,
-        int *piAvgFrameRate);
-
-    HRESULT (STDMETHODCALLTYPE *get_Jitter)(
-        IQualProp* This,
-        int *iJitter);
-
-    HRESULT (STDMETHODCALLTYPE *get_AvgSyncOffset)(
-        IQualProp* This,
-        int *piAvg);
-
-    HRESULT (STDMETHODCALLTYPE *get_DevSyncOffset)(
-        IQualProp* This,
-        int *piDev);
-
-    END_INTERFACE
-} IQualPropVtbl;
-interface IQualProp {
-    CONST_VTBL IQualPropVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IQualProp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IQualProp_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IQualProp_Release(This) (This)->lpVtbl->Release(This)
-/*** IQualProp methods ***/
-#define IQualProp_get_FramesDroppedInRenderer(This,pcFrames) (This)->lpVtbl->get_FramesDroppedInRenderer(This,pcFrames)
-#define IQualProp_get_FramesDrawn(This,pcFramesDrawn) (This)->lpVtbl->get_FramesDrawn(This,pcFramesDrawn)
-#define IQualProp_get_AvgFrameRate(This,piAvgFrameRate) (This)->lpVtbl->get_AvgFrameRate(This,piAvgFrameRate)
-#define IQualProp_get_Jitter(This,iJitter) (This)->lpVtbl->get_Jitter(This,iJitter)
-#define IQualProp_get_AvgSyncOffset(This,piAvg) (This)->lpVtbl->get_AvgSyncOffset(This,piAvg)
-#define IQualProp_get_DevSyncOffset(This,piDev) (This)->lpVtbl->get_DevSyncOffset(This,piDev)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IQualProp_get_FramesDroppedInRenderer_Proxy(
-    IQualProp* This,
-    int *pcFrames);
-void __RPC_STUB IQualProp_get_FramesDroppedInRenderer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IQualProp_get_FramesDrawn_Proxy(
-    IQualProp* This,
-    int *pcFramesDrawn);
-void __RPC_STUB IQualProp_get_FramesDrawn_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IQualProp_get_AvgFrameRate_Proxy(
-    IQualProp* This,
-    int *piAvgFrameRate);
-void __RPC_STUB IQualProp_get_AvgFrameRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IQualProp_get_Jitter_Proxy(
-    IQualProp* This,
-    int *iJitter);
-void __RPC_STUB IQualProp_get_Jitter_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IQualProp_get_AvgSyncOffset_Proxy(
-    IQualProp* This,
-    int *piAvg);
-void __RPC_STUB IQualProp_get_AvgSyncOffset_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IQualProp_get_DevSyncOffset_Proxy(
-    IQualProp* This,
-    int *piDev);
-void __RPC_STUB IQualProp_get_DevSyncOffset_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IQualProp_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * IFullScreenVideo interface
- */
-#ifndef __IFullScreenVideo_INTERFACE_DEFINED__
-#define __IFullScreenVideo_INTERFACE_DEFINED__
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IFullScreenVideo : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE CountModes(
-        LONG *pModes) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetModeInfo(
-        LONG Mode,
-        LONG *pWidth,
-        LONG *pHeight,
-        LONG *pDepth) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetCurrentMode(
-        LONG *pMode) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE IsModeAvailable(
-        LONG Mode) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE IsModeEnabled(
-        LONG Mode) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetEnabled(
-        LONG Mode,
-        LONG bEnabled) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetClipFactor(
-        LONG *pClipFactor) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetClipFactor(
-        LONG ClipFactor) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetMessageDrain(
-        HWND hwnd) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetMessageDrain(
-        HWND *hwnd) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetMonitor(
-        LONG Monitor) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetMonitor(
-        LONG *Monitor) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE HideOnDeactivate(
-        LONG Hide) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE IsHideOnDeactivate(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetCaption(
-        BSTR strCaption) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetCaption(
-        BSTR *pstrCaption) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetDefault(
-        ) = 0;
-
-};
-#else
-typedef struct IFullScreenVideoVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IFullScreenVideo* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IFullScreenVideo* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IFullScreenVideo* This);
-
-    /*** IFullScreenVideo methods ***/
-    HRESULT (STDMETHODCALLTYPE *CountModes)(
-        IFullScreenVideo* This,
-        LONG *pModes);
-
-    HRESULT (STDMETHODCALLTYPE *GetModeInfo)(
-        IFullScreenVideo* This,
-        LONG Mode,
-        LONG *pWidth,
-        LONG *pHeight,
-        LONG *pDepth);
-
-    HRESULT (STDMETHODCALLTYPE *GetCurrentMode)(
-        IFullScreenVideo* This,
-        LONG *pMode);
-
-    HRESULT (STDMETHODCALLTYPE *IsModeAvailable)(
-        IFullScreenVideo* This,
-        LONG Mode);
-
-    HRESULT (STDMETHODCALLTYPE *IsModeEnabled)(
-        IFullScreenVideo* This,
-        LONG Mode);
-
-    HRESULT (STDMETHODCALLTYPE *SetEnabled)(
-        IFullScreenVideo* This,
-        LONG Mode,
-        LONG bEnabled);
-
-    HRESULT (STDMETHODCALLTYPE *GetClipFactor)(
-        IFullScreenVideo* This,
-        LONG *pClipFactor);
-
-    HRESULT (STDMETHODCALLTYPE *SetClipFactor)(
-        IFullScreenVideo* This,
-        LONG ClipFactor);
-
-    HRESULT (STDMETHODCALLTYPE *SetMessageDrain)(
-        IFullScreenVideo* This,
-        HWND hwnd);
-
-    HRESULT (STDMETHODCALLTYPE *GetMessageDrain)(
-        IFullScreenVideo* This,
-        HWND *hwnd);
-
-    HRESULT (STDMETHODCALLTYPE *SetMonitor)(
-        IFullScreenVideo* This,
-        LONG Monitor);
-
-    HRESULT (STDMETHODCALLTYPE *GetMonitor)(
-        IFullScreenVideo* This,
-        LONG *Monitor);
-
-    HRESULT (STDMETHODCALLTYPE *HideOnDeactivate)(
-        IFullScreenVideo* This,
-        LONG Hide);
-
-    HRESULT (STDMETHODCALLTYPE *IsHideOnDeactivate)(
-        IFullScreenVideo* This);
-
-    HRESULT (STDMETHODCALLTYPE *SetCaption)(
-        IFullScreenVideo* This,
-        BSTR strCaption);
-
-    HRESULT (STDMETHODCALLTYPE *GetCaption)(
-        IFullScreenVideo* This,
-        BSTR *pstrCaption);
-
-    HRESULT (STDMETHODCALLTYPE *SetDefault)(
-        IFullScreenVideo* This);
-
-    END_INTERFACE
-} IFullScreenVideoVtbl;
-interface IFullScreenVideo {
-    CONST_VTBL IFullScreenVideoVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IFullScreenVideo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFullScreenVideo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFullScreenVideo_Release(This) (This)->lpVtbl->Release(This)
-/*** IFullScreenVideo methods ***/
-#define IFullScreenVideo_CountModes(This,pModes) (This)->lpVtbl->CountModes(This,pModes)
-#define IFullScreenVideo_GetModeInfo(This,Mode,pWidth,pHeight,pDepth) (This)->lpVtbl->GetModeInfo(This,Mode,pWidth,pHeight,pDepth)
-#define IFullScreenVideo_GetCurrentMode(This,pMode) (This)->lpVtbl->GetCurrentMode(This,pMode)
-#define IFullScreenVideo_IsModeAvailable(This,Mode) (This)->lpVtbl->IsModeAvailable(This,Mode)
-#define IFullScreenVideo_IsModeEnabled(This,Mode) (This)->lpVtbl->IsModeEnabled(This,Mode)
-#define IFullScreenVideo_SetEnabled(This,Mode,bEnabled) (This)->lpVtbl->SetEnabled(This,Mode,bEnabled)
-#define IFullScreenVideo_GetClipFactor(This,pClipFactor) (This)->lpVtbl->GetClipFactor(This,pClipFactor)
-#define IFullScreenVideo_SetClipFactor(This,ClipFactor) (This)->lpVtbl->SetClipFactor(This,ClipFactor)
-#define IFullScreenVideo_SetMessageDrain(This,hwnd) (This)->lpVtbl->SetMessageDrain(This,hwnd)
-#define IFullScreenVideo_GetMessageDrain(This,hwnd) (This)->lpVtbl->GetMessageDrain(This,hwnd)
-#define IFullScreenVideo_SetMonitor(This,Monitor) (This)->lpVtbl->SetMonitor(This,Monitor)
-#define IFullScreenVideo_GetMonitor(This,Monitor) (This)->lpVtbl->GetMonitor(This,Monitor)
-#define IFullScreenVideo_HideOnDeactivate(This,Hide) (This)->lpVtbl->HideOnDeactivate(This,Hide)
-#define IFullScreenVideo_IsHideOnDeactivate(This) (This)->lpVtbl->IsHideOnDeactivate(This)
-#define IFullScreenVideo_SetCaption(This,strCaption) (This)->lpVtbl->SetCaption(This,strCaption)
-#define IFullScreenVideo_GetCaption(This,pstrCaption) (This)->lpVtbl->GetCaption(This,pstrCaption)
-#define IFullScreenVideo_SetDefault(This) (This)->lpVtbl->SetDefault(This)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_CountModes_Proxy(
-    IFullScreenVideo* This,
-    LONG *pModes);
-void __RPC_STUB IFullScreenVideo_CountModes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_GetModeInfo_Proxy(
-    IFullScreenVideo* This,
-    LONG Mode,
-    LONG *pWidth,
-    LONG *pHeight,
-    LONG *pDepth);
-void __RPC_STUB IFullScreenVideo_GetModeInfo_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_GetCurrentMode_Proxy(
-    IFullScreenVideo* This,
-    LONG *pMode);
-void __RPC_STUB IFullScreenVideo_GetCurrentMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_IsModeAvailable_Proxy(
-    IFullScreenVideo* This,
-    LONG Mode);
-void __RPC_STUB IFullScreenVideo_IsModeAvailable_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_IsModeEnabled_Proxy(
-    IFullScreenVideo* This,
-    LONG Mode);
-void __RPC_STUB IFullScreenVideo_IsModeEnabled_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_SetEnabled_Proxy(
-    IFullScreenVideo* This,
-    LONG Mode,
-    LONG bEnabled);
-void __RPC_STUB IFullScreenVideo_SetEnabled_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_GetClipFactor_Proxy(
-    IFullScreenVideo* This,
-    LONG *pClipFactor);
-void __RPC_STUB IFullScreenVideo_GetClipFactor_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_SetClipFactor_Proxy(
-    IFullScreenVideo* This,
-    LONG ClipFactor);
-void __RPC_STUB IFullScreenVideo_SetClipFactor_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_SetMessageDrain_Proxy(
-    IFullScreenVideo* This,
-    HWND hwnd);
-void __RPC_STUB IFullScreenVideo_SetMessageDrain_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_GetMessageDrain_Proxy(
-    IFullScreenVideo* This,
-    HWND *hwnd);
-void __RPC_STUB IFullScreenVideo_GetMessageDrain_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_SetMonitor_Proxy(
-    IFullScreenVideo* This,
-    LONG Monitor);
-void __RPC_STUB IFullScreenVideo_SetMonitor_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_GetMonitor_Proxy(
-    IFullScreenVideo* This,
-    LONG *Monitor);
-void __RPC_STUB IFullScreenVideo_GetMonitor_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_HideOnDeactivate_Proxy(
-    IFullScreenVideo* This,
-    LONG Hide);
-void __RPC_STUB IFullScreenVideo_HideOnDeactivate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_IsHideOnDeactivate_Proxy(
-    IFullScreenVideo* This);
-void __RPC_STUB IFullScreenVideo_IsHideOnDeactivate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_SetCaption_Proxy(
-    IFullScreenVideo* This,
-    BSTR strCaption);
-void __RPC_STUB IFullScreenVideo_SetCaption_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_GetCaption_Proxy(
-    IFullScreenVideo* This,
-    BSTR *pstrCaption);
-void __RPC_STUB IFullScreenVideo_GetCaption_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideo_SetDefault_Proxy(
-    IFullScreenVideo* This);
-void __RPC_STUB IFullScreenVideo_SetDefault_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IFullScreenVideo_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * IFullScreenVideoEx interface
- */
-#ifndef __IFullScreenVideoEx_INTERFACE_DEFINED__
-#define __IFullScreenVideoEx_INTERFACE_DEFINED__
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IFullScreenVideoEx : public IFullScreenVideo
-{
-    virtual HRESULT STDMETHODCALLTYPE SetAcceleratorTable(
-        HWND hwnd,
-        HACCEL hAccel) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetAcceleratorTable(
-        HWND *phwnd,
-        HACCEL *phAccel) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE KeepPixelAspectRatio(
-        LONG KeepAspect) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE IsKeepPixelAspectRatio(
-        LONG *pKeepAspect) = 0;
-
-};
-#else
-typedef struct IFullScreenVideoExVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IFullScreenVideoEx* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IFullScreenVideoEx* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IFullScreenVideoEx* This);
-
-    /*** IFullScreenVideo methods ***/
-    HRESULT (STDMETHODCALLTYPE *CountModes)(
-        IFullScreenVideoEx* This,
-        LONG *pModes);
-
-    HRESULT (STDMETHODCALLTYPE *GetModeInfo)(
-        IFullScreenVideoEx* This,
-        LONG Mode,
-        LONG *pWidth,
-        LONG *pHeight,
-        LONG *pDepth);
-
-    HRESULT (STDMETHODCALLTYPE *GetCurrentMode)(
-        IFullScreenVideoEx* This,
-        LONG *pMode);
-
-    HRESULT (STDMETHODCALLTYPE *IsModeAvailable)(
-        IFullScreenVideoEx* This,
-        LONG Mode);
-
-    HRESULT (STDMETHODCALLTYPE *IsModeEnabled)(
-        IFullScreenVideoEx* This,
-        LONG Mode);
-
-    HRESULT (STDMETHODCALLTYPE *SetEnabled)(
-        IFullScreenVideoEx* This,
-        LONG Mode,
-        LONG bEnabled);
-
-    HRESULT (STDMETHODCALLTYPE *GetClipFactor)(
-        IFullScreenVideoEx* This,
-        LONG *pClipFactor);
-
-    HRESULT (STDMETHODCALLTYPE *SetClipFactor)(
-        IFullScreenVideoEx* This,
-        LONG ClipFactor);
-
-    HRESULT (STDMETHODCALLTYPE *SetMessageDrain)(
-        IFullScreenVideoEx* This,
-        HWND hwnd);
-
-    HRESULT (STDMETHODCALLTYPE *GetMessageDrain)(
-        IFullScreenVideoEx* This,
-        HWND *hwnd);
-
-    HRESULT (STDMETHODCALLTYPE *SetMonitor)(
-        IFullScreenVideoEx* This,
-        LONG Monitor);
-
-    HRESULT (STDMETHODCALLTYPE *GetMonitor)(
-        IFullScreenVideoEx* This,
-        LONG *Monitor);
-
-    HRESULT (STDMETHODCALLTYPE *HideOnDeactivate)(
-        IFullScreenVideoEx* This,
-        LONG Hide);
-
-    HRESULT (STDMETHODCALLTYPE *IsHideOnDeactivate)(
-        IFullScreenVideoEx* This);
-
-    HRESULT (STDMETHODCALLTYPE *SetCaption)(
-        IFullScreenVideoEx* This,
-        BSTR strCaption);
-
-    HRESULT (STDMETHODCALLTYPE *GetCaption)(
-        IFullScreenVideoEx* This,
-        BSTR *pstrCaption);
-
-    HRESULT (STDMETHODCALLTYPE *SetDefault)(
-        IFullScreenVideoEx* This);
-
-    /*** IFullScreenVideoEx methods ***/
-    HRESULT (STDMETHODCALLTYPE *SetAcceleratorTable)(
-        IFullScreenVideoEx* This,
-        HWND hwnd,
-        HACCEL hAccel);
-
-    HRESULT (STDMETHODCALLTYPE *GetAcceleratorTable)(
-        IFullScreenVideoEx* This,
-        HWND *phwnd,
-        HACCEL *phAccel);
-
-    HRESULT (STDMETHODCALLTYPE *KeepPixelAspectRatio)(
-        IFullScreenVideoEx* This,
-        LONG KeepAspect);
-
-    HRESULT (STDMETHODCALLTYPE *IsKeepPixelAspectRatio)(
-        IFullScreenVideoEx* This,
-        LONG *pKeepAspect);
-
-    END_INTERFACE
-} IFullScreenVideoExVtbl;
-interface IFullScreenVideoEx {
-    CONST_VTBL IFullScreenVideoExVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IFullScreenVideoEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFullScreenVideoEx_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFullScreenVideoEx_Release(This) (This)->lpVtbl->Release(This)
-/*** IFullScreenVideo methods ***/
-#define IFullScreenVideoEx_CountModes(This,pModes) (This)->lpVtbl->CountModes(This,pModes)
-#define IFullScreenVideoEx_GetModeInfo(This,Mode,pWidth,pHeight,pDepth) (This)->lpVtbl->GetModeInfo(This,Mode,pWidth,pHeight,pDepth)
-#define IFullScreenVideoEx_GetCurrentMode(This,pMode) (This)->lpVtbl->GetCurrentMode(This,pMode)
-#define IFullScreenVideoEx_IsModeAvailable(This,Mode) (This)->lpVtbl->IsModeAvailable(This,Mode)
-#define IFullScreenVideoEx_IsModeEnabled(This,Mode) (This)->lpVtbl->IsModeEnabled(This,Mode)
-#define IFullScreenVideoEx_SetEnabled(This,Mode,bEnabled) (This)->lpVtbl->SetEnabled(This,Mode,bEnabled)
-#define IFullScreenVideoEx_GetClipFactor(This,pClipFactor) (This)->lpVtbl->GetClipFactor(This,pClipFactor)
-#define IFullScreenVideoEx_SetClipFactor(This,ClipFactor) (This)->lpVtbl->SetClipFactor(This,ClipFactor)
-#define IFullScreenVideoEx_SetMessageDrain(This,hwnd) (This)->lpVtbl->SetMessageDrain(This,hwnd)
-#define IFullScreenVideoEx_GetMessageDrain(This,hwnd) (This)->lpVtbl->GetMessageDrain(This,hwnd)
-#define IFullScreenVideoEx_SetMonitor(This,Monitor) (This)->lpVtbl->SetMonitor(This,Monitor)
-#define IFullScreenVideoEx_GetMonitor(This,Monitor) (This)->lpVtbl->GetMonitor(This,Monitor)
-#define IFullScreenVideoEx_HideOnDeactivate(This,Hide) (This)->lpVtbl->HideOnDeactivate(This,Hide)
-#define IFullScreenVideoEx_IsHideOnDeactivate(This) (This)->lpVtbl->IsHideOnDeactivate(This)
-#define IFullScreenVideoEx_SetCaption(This,strCaption) (This)->lpVtbl->SetCaption(This,strCaption)
-#define IFullScreenVideoEx_GetCaption(This,pstrCaption) (This)->lpVtbl->GetCaption(This,pstrCaption)
-#define IFullScreenVideoEx_SetDefault(This) (This)->lpVtbl->SetDefault(This)
-/*** IFullScreenVideoEx methods ***/
-#define IFullScreenVideoEx_SetAcceleratorTable(This,hwnd,hAccel) (This)->lpVtbl->SetAcceleratorTable(This,hwnd,hAccel)
-#define IFullScreenVideoEx_GetAcceleratorTable(This,phwnd,phAccel) (This)->lpVtbl->GetAcceleratorTable(This,phwnd,phAccel)
-#define IFullScreenVideoEx_KeepPixelAspectRatio(This,KeepAspect) (This)->lpVtbl->KeepPixelAspectRatio(This,KeepAspect)
-#define IFullScreenVideoEx_IsKeepPixelAspectRatio(This,pKeepAspect) (This)->lpVtbl->IsKeepPixelAspectRatio(This,pKeepAspect)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IFullScreenVideoEx_SetAcceleratorTable_Proxy(
-    IFullScreenVideoEx* This,
-    HWND hwnd,
-    HACCEL hAccel);
-void __RPC_STUB IFullScreenVideoEx_SetAcceleratorTable_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideoEx_GetAcceleratorTable_Proxy(
-    IFullScreenVideoEx* This,
-    HWND *phwnd,
-    HACCEL *phAccel);
-void __RPC_STUB IFullScreenVideoEx_GetAcceleratorTable_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideoEx_KeepPixelAspectRatio_Proxy(
-    IFullScreenVideoEx* This,
-    LONG KeepAspect);
-void __RPC_STUB IFullScreenVideoEx_KeepPixelAspectRatio_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFullScreenVideoEx_IsKeepPixelAspectRatio_Proxy(
-    IFullScreenVideoEx* This,
-    LONG *pKeepAspect);
-void __RPC_STUB IFullScreenVideoEx_IsKeepPixelAspectRatio_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IFullScreenVideoEx_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * IBaseVideoMixer interface
- */
-#ifndef __IBaseVideoMixer_INTERFACE_DEFINED__
-#define __IBaseVideoMixer_INTERFACE_DEFINED__
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IBaseVideoMixer : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE SetLeadPin(
-        int iPin) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetLeadPin(
-        int *piPin) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetInputPinCount(
-        int *piPinCount) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE IsUsingClock(
-        int *pbValue) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetUsingClock(
-        int bValue) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetClockPeriod(
-        int *pbValue) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetClockPeriod(
-        int bValue) = 0;
-
-};
-#else
-typedef struct IBaseVideoMixerVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBaseVideoMixer* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBaseVideoMixer* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IBaseVideoMixer* This);
-
-    /*** IBaseVideoMixer methods ***/
-    HRESULT (STDMETHODCALLTYPE *SetLeadPin)(
-        IBaseVideoMixer* This,
-        int iPin);
-
-    HRESULT (STDMETHODCALLTYPE *GetLeadPin)(
-        IBaseVideoMixer* This,
-        int *piPin);
-
-    HRESULT (STDMETHODCALLTYPE *GetInputPinCount)(
-        IBaseVideoMixer* This,
-        int *piPinCount);
-
-    HRESULT (STDMETHODCALLTYPE *IsUsingClock)(
-        IBaseVideoMixer* This,
-        int *pbValue);
-
-    HRESULT (STDMETHODCALLTYPE *SetUsingClock)(
-        IBaseVideoMixer* This,
-        int bValue);
-
-    HRESULT (STDMETHODCALLTYPE *GetClockPeriod)(
-        IBaseVideoMixer* This,
-        int *pbValue);
-
-    HRESULT (STDMETHODCALLTYPE *SetClockPeriod)(
-        IBaseVideoMixer* This,
-        int bValue);
-
-    END_INTERFACE
-} IBaseVideoMixerVtbl;
-interface IBaseVideoMixer {
-    CONST_VTBL IBaseVideoMixerVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IBaseVideoMixer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IBaseVideoMixer_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IBaseVideoMixer_Release(This) (This)->lpVtbl->Release(This)
-/*** IBaseVideoMixer methods ***/
-#define IBaseVideoMixer_SetLeadPin(This,iPin) (This)->lpVtbl->SetLeadPin(This,iPin)
-#define IBaseVideoMixer_GetLeadPin(This,piPin) (This)->lpVtbl->GetLeadPin(This,piPin)
-#define IBaseVideoMixer_GetInputPinCount(This,piPinCount) (This)->lpVtbl->GetInputPinCount(This,piPinCount)
-#define IBaseVideoMixer_IsUsingClock(This,pbValue) (This)->lpVtbl->IsUsingClock(This,pbValue)
-#define IBaseVideoMixer_SetUsingClock(This,bValue) (This)->lpVtbl->SetUsingClock(This,bValue)
-#define IBaseVideoMixer_GetClockPeriod(This,pbValue) (This)->lpVtbl->GetClockPeriod(This,pbValue)
-#define IBaseVideoMixer_SetClockPeriod(This,bValue) (This)->lpVtbl->SetClockPeriod(This,bValue)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IBaseVideoMixer_SetLeadPin_Proxy(
-    IBaseVideoMixer* This,
-    int iPin);
-void __RPC_STUB IBaseVideoMixer_SetLeadPin_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBaseVideoMixer_GetLeadPin_Proxy(
-    IBaseVideoMixer* This,
-    int *piPin);
-void __RPC_STUB IBaseVideoMixer_GetLeadPin_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBaseVideoMixer_GetInputPinCount_Proxy(
-    IBaseVideoMixer* This,
-    int *piPinCount);
-void __RPC_STUB IBaseVideoMixer_GetInputPinCount_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBaseVideoMixer_IsUsingClock_Proxy(
-    IBaseVideoMixer* This,
-    int *pbValue);
-void __RPC_STUB IBaseVideoMixer_IsUsingClock_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBaseVideoMixer_SetUsingClock_Proxy(
-    IBaseVideoMixer* This,
-    int bValue);
-void __RPC_STUB IBaseVideoMixer_SetUsingClock_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBaseVideoMixer_GetClockPeriod_Proxy(
-    IBaseVideoMixer* This,
-    int *pbValue);
-void __RPC_STUB IBaseVideoMixer_GetClockPeriod_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBaseVideoMixer_SetClockPeriod_Proxy(
-    IBaseVideoMixer* This,
-    int bValue);
-void __RPC_STUB IBaseVideoMixer_SetClockPeriod_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IBaseVideoMixer_INTERFACE_DEFINED__ */
-
-#define iPALETTE_COLORS 256
-#define iEGA_COLORS 16
-#define iMASK_COLORS 3
-#define iTRUECOLOR 16
-#define iRED 0
-#define iGREEN 1
-#define iBLUE 2
-#define iPALETTE 8
-#define iMAXBITS 8
-typedef struct tag_TRUECOLORINFO {
-    DWORD dwBitMasks[3];
-    RGBQUAD bmiColors[256];
-} TRUECOLORINFO;
-typedef struct tagVIDEOINFOHEADER {
-    RECT rcSource;
-    RECT rcTarget;
-    DWORD dwBitRate;
-    DWORD dwBitErrorRate;
-    REFERENCE_TIME AvgTimePerFrame;
-    BITMAPINFOHEADER bmiHeader;
-} VIDEOINFOHEADER;
-typedef struct tagVIDEOINFO {
-    RECT rcSource;
-    RECT rcTarget;
-    DWORD dwBitRate;
-    DWORD dwBitErrorRate;
-    REFERENCE_TIME AvgTimePerFrame;
-    BITMAPINFOHEADER bmiHeader;
-    union {
-        RGBQUAD bmiColors[256];
-        DWORD dwBitMasks[3];
-        TRUECOLORINFO TrueColorInfo;
-    } DUMMYUNIONNAME;
-} VIDEOINFO;
-typedef struct tagMPEG1VIDEOINFO {
-    VIDEOINFOHEADER hdr;
-    DWORD dwStartTimeCode;
-    DWORD cbSequenceHeader;
-    BYTE bSequenceHeader[1];
-} MPEG1VIDEOINFO;
-#define MAX_SIZE_MPEG1_SEQUENCE_INFO 140
-#define MPEG1_SEQUENCE_INFO(pv) ((const BYTE *)(pv)->bSequenceHeader)
-typedef struct tagAnalogVideoInfo {
-    RECT rcSource;
-    RECT rcTarget;
-    DWORD dwActiveWidth;
-    DWORD dwActiveHeight;
-    REFERENCE_TIME AvgTimePerFrame;
-} ANALOGVIDEOINFO;
-typedef enum __WIDL_amvideo_generated_name_00000001 {
-    AM_PROPERTY_FRAMESTEP_STEP = 0x1,
-    AM_PROPERTY_FRAMESTEP_CANCEL = 0x2,
-    AM_PROPERTY_FRAMESTEP_CANSTEP = 0x3,
-    AM_PROPERTY_FRAMESTEP_CANSTEPMULTIPLE = 0x4
-} AM_PROPERTY_FRAMESTEP;
-typedef struct _AM_FRAMESTEP_STEP {
-    DWORD dwFramesToStep;
-} AM_FRAMESTEP_STEP;
-/* Begin additional prototypes for all interfaces */
-
-ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
-unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
-unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
-void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
-ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
-unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
-unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
-void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
-
-/* End additional prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __WIDL_AMVIDEO_H */
diff --git a/3rdparty/include/dshow/audevcod.h b/3rdparty/include/dshow/audevcod.h
deleted file mode 100644
index cecbb0e..0000000
--- a/3rdparty/include/dshow/audevcod.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef _AUDEVCOD_H
-#define _AUDEVCOD_H
-#if __GNUC__ >=3
-#pragma GCC system_header
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum _tagSND_DEVICE_ERROR {
-    SNDDEV_ERROR_Open = 1,
-    SNDDEV_ERROR_Close = 2,
-    SNDDEV_ERROR_GetCaps = 3,
-    SNDDEV_ERROR_PrepareHeader = 4,
-    SNDDEV_ERROR_UnprepareHeader = 5,
-    SNDDEV_ERROR_Reset = 6,
-    SNDDEV_ERROR_Restart = 7,
-    SNDDEV_ERROR_GetPosition = 8,
-    SNDDEV_ERROR_Write = 9,
-    SNDDEV_ERROR_Pause = 10,
-    SNDDEV_ERROR_Stop = 11,
-    SNDDEV_ERROR_Start = 12,
-    SNDDEV_ERROR_AddBuffer = 13,
-    SNDDEV_ERROR_Query = 14
-} SNDDEV_ERR;
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/3rdparty/include/dshow/bdatypes.h b/3rdparty/include/dshow/bdatypes.h
deleted file mode 100644
index d57f828..0000000
--- a/3rdparty/include/dshow/bdatypes.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef _BDATYPES_H
-#define _BDATYPES_H
-#if __GNUC__ >= 3
-#pragma GCC system_header
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*--- DirectShow Reference - DirectShow Enumerated Types */
-typedef enum {
-    MEDIA_TRANSPORT_PACKET,
-    MEDIA_ELEMENTARY_STREAM,
-    MEDIA_MPEG2_PSI,
-    MEDIA_TRANSPORT_PAYLOAD
-} MEDIA_SAMPLE_CONTENT;
-/*--- DirectShow Reference - DirectShow Structures */
-typedef struct {
-    DWORD dwOffset;
-    DWORD dwPacketLength;
-    DWORD dwStride;
-} MPEG2_TRANSPORT_STRIDE;
-typedef struct {
-    ULONG ulPID;
-    MEDIA_SAMPLE_CONTENT MediaSampleContent ;
-} PID_MAP;
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/3rdparty/include/dshow/control.h b/3rdparty/include/dshow/control.h
deleted file mode 100644
index b012239..0000000
--- a/3rdparty/include/dshow/control.h
+++ /dev/null
@@ -1,1467 +0,0 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the w64 mingw-runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif
-
-#ifndef __control_h__
-#define __control_h__
-
-#ifndef __IAMCollection_FWD_DEFINED__
-#define __IAMCollection_FWD_DEFINED__
-typedef struct IAMCollection IAMCollection;
-#endif
-
-#ifndef __IMediaControl_FWD_DEFINED__
-#define __IMediaControl_FWD_DEFINED__
-typedef struct IMediaControl IMediaControl;
-#endif
-
-#ifndef __IMediaEvent_FWD_DEFINED__
-#define __IMediaEvent_FWD_DEFINED__
-typedef struct IMediaEvent IMediaEvent;
-#endif
-
-#ifndef __IMediaEventEx_FWD_DEFINED__
-#define __IMediaEventEx_FWD_DEFINED__
-typedef struct IMediaEventEx IMediaEventEx;
-#endif
-
-#ifndef __IMediaPosition_FWD_DEFINED__
-#define __IMediaPosition_FWD_DEFINED__
-typedef struct IMediaPosition IMediaPosition;
-#endif
-
-#ifndef __IBasicAudio_FWD_DEFINED__
-#define __IBasicAudio_FWD_DEFINED__
-typedef struct IBasicAudio IBasicAudio;
-#endif
-
-#ifndef __IVideoWindow_FWD_DEFINED__
-#define __IVideoWindow_FWD_DEFINED__
-typedef struct IVideoWindow IVideoWindow;
-#endif
-
-#ifndef __IBasicVideo_FWD_DEFINED__
-#define __IBasicVideo_FWD_DEFINED__
-typedef struct IBasicVideo IBasicVideo;
-#endif
-
-#ifndef __IBasicVideo2_FWD_DEFINED__
-#define __IBasicVideo2_FWD_DEFINED__
-typedef struct IBasicVideo2 IBasicVideo2;
-#endif
-
-#ifndef __IDeferredCommand_FWD_DEFINED__
-#define __IDeferredCommand_FWD_DEFINED__
-typedef struct IDeferredCommand IDeferredCommand;
-#endif
-
-#ifndef __IQueueCommand_FWD_DEFINED__
-#define __IQueueCommand_FWD_DEFINED__
-typedef struct IQueueCommand IQueueCommand;
-#endif
-
-#ifndef __FilgraphManager_FWD_DEFINED__
-#define __FilgraphManager_FWD_DEFINED__
-
-#ifdef __cplusplus
-typedef class FilgraphManager FilgraphManager;
-#else
-typedef struct FilgraphManager FilgraphManager;
-#endif
-#endif
-
-#ifndef __IFilterInfo_FWD_DEFINED__
-#define __IFilterInfo_FWD_DEFINED__
-typedef struct IFilterInfo IFilterInfo;
-#endif
-
-#ifndef __IRegFilterInfo_FWD_DEFINED__
-#define __IRegFilterInfo_FWD_DEFINED__
-typedef struct IRegFilterInfo IRegFilterInfo;
-#endif
-
-#ifndef __IMediaTypeInfo_FWD_DEFINED__
-#define __IMediaTypeInfo_FWD_DEFINED__
-typedef struct IMediaTypeInfo IMediaTypeInfo;
-#endif
-
-#ifndef __IPinInfo_FWD_DEFINED__
-#define __IPinInfo_FWD_DEFINED__
-typedef struct IPinInfo IPinInfo;
-#endif
-
-#ifndef __IAMStats_FWD_DEFINED__
-#define __IAMStats_FWD_DEFINED__
-typedef struct IAMStats IAMStats;
-#endif
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-#ifndef __MIDL_user_allocate_free_DEFINED__
-#define __MIDL_user_allocate_free_DEFINED__
-  void *__RPC_API MIDL_user_allocate(size_t);
-  void __RPC_API MIDL_user_free(void *);
-#endif
-
-#ifndef __QuartzTypeLib_LIBRARY_DEFINED__
-#define __QuartzTypeLib_LIBRARY_DEFINED__
-  typedef double REFTIME;
-  typedef LONG_PTR OAEVENT;
-  typedef LONG_PTR OAHWND;
-  typedef long OAFilterState;
-
-  DEFINE_GUID(LIBID_QuartzTypeLib,0x56a868b0,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#ifndef __IAMCollection_INTERFACE_DEFINED__
-#define __IAMCollection_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IAMCollection,0x56a868b9,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMCollection : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Count(LONG *plCount) = 0;
-    virtual HRESULT WINAPI Item(long lItem,IUnknown **ppUnk) = 0;
-    virtual HRESULT WINAPI get__NewEnum(IUnknown **ppUnk) = 0;
-  };
-#else
-  typedef struct IAMCollectionVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMCollection *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMCollection *This);
-      ULONG (WINAPI *Release)(IAMCollection *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IAMCollection *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IAMCollection *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IAMCollection *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IAMCollection *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Count)(IAMCollection *This,LONG *plCount);
-      HRESULT (WINAPI *Item)(IAMCollection *This,long lItem,IUnknown **ppUnk);
-      HRESULT (WINAPI *get__NewEnum)(IAMCollection *This,IUnknown **ppUnk);
-    END_INTERFACE
-  } IAMCollectionVtbl;
-  struct IAMCollection {
-    CONST_VTBL struct IAMCollectionVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMCollection_Release(This) (This)->lpVtbl->Release(This)
-#define IAMCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IAMCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IAMCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IAMCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IAMCollection_get_Count(This,plCount) (This)->lpVtbl->get_Count(This,plCount)
-#define IAMCollection_Item(This,lItem,ppUnk) (This)->lpVtbl->Item(This,lItem,ppUnk)
-#define IAMCollection_get__NewEnum(This,ppUnk) (This)->lpVtbl->get__NewEnum(This,ppUnk)
-#endif
-#endif
-  HRESULT WINAPI IAMCollection_get_Count_Proxy(IAMCollection *This,LONG *plCount);
-  void __RPC_STUB IAMCollection_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCollection_Item_Proxy(IAMCollection *This,long lItem,IUnknown **ppUnk);
-  void __RPC_STUB IAMCollection_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCollection_get__NewEnum_Proxy(IAMCollection *This,IUnknown **ppUnk);
-  void __RPC_STUB IAMCollection_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IMediaControl_INTERFACE_DEFINED__
-#define __IMediaControl_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IMediaControl,0x56a868b1,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMediaControl : public IDispatch {
-  public:
-    virtual HRESULT WINAPI Run(void) = 0;
-    virtual HRESULT WINAPI Pause(void) = 0;
-    virtual HRESULT WINAPI Stop(void) = 0;
-    virtual HRESULT WINAPI GetState(LONG msTimeout,OAFilterState *pfs) = 0;
-    virtual HRESULT WINAPI RenderFile(BSTR strFilename) = 0;
-    virtual HRESULT WINAPI AddSourceFilter(BSTR strFilename,IDispatch **ppUnk) = 0;
-    virtual HRESULT WINAPI get_FilterCollection(IDispatch **ppUnk) = 0;
-    virtual HRESULT WINAPI get_RegFilterCollection(IDispatch **ppUnk) = 0;
-    virtual HRESULT WINAPI StopWhenReady(void) = 0;
-  };
-#else
-  typedef struct IMediaControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMediaControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMediaControl *This);
-      ULONG (WINAPI *Release)(IMediaControl *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IMediaControl *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IMediaControl *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IMediaControl *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IMediaControl *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *Run)(IMediaControl *This);
-      HRESULT (WINAPI *Pause)(IMediaControl *This);
-      HRESULT (WINAPI *Stop)(IMediaControl *This);
-      HRESULT (WINAPI *GetState)(IMediaControl *This,LONG msTimeout,OAFilterState *pfs);
-      HRESULT (WINAPI *RenderFile)(IMediaControl *This,BSTR strFilename);
-      HRESULT (WINAPI *AddSourceFilter)(IMediaControl *This,BSTR strFilename,IDispatch **ppUnk);
-      HRESULT (WINAPI *get_FilterCollection)(IMediaControl *This,IDispatch **ppUnk);
-      HRESULT (WINAPI *get_RegFilterCollection)(IMediaControl *This,IDispatch **ppUnk);
-      HRESULT (WINAPI *StopWhenReady)(IMediaControl *This);
-    END_INTERFACE
-  } IMediaControlVtbl;
-  struct IMediaControl {
-    CONST_VTBL struct IMediaControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMediaControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMediaControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMediaControl_Release(This) (This)->lpVtbl->Release(This)
-#define IMediaControl_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IMediaControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IMediaControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IMediaControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IMediaControl_Run(This) (This)->lpVtbl->Run(This)
-#define IMediaControl_Pause(This) (This)->lpVtbl->Pause(This)
-#define IMediaControl_Stop(This) (This)->lpVtbl->Stop(This)
-#define IMediaControl_GetState(This,msTimeout,pfs) (This)->lpVtbl->GetState(This,msTimeout,pfs)
-#define IMediaControl_RenderFile(This,strFilename) (This)->lpVtbl->RenderFile(This,strFilename)
-#define IMediaControl_AddSourceFilter(This,strFilename,ppUnk) (This)->lpVtbl->AddSourceFilter(This,strFilename,ppUnk)
-#define IMediaControl_get_FilterCollection(This,ppUnk) (This)->lpVtbl->get_FilterCollection(This,ppUnk)
-#define IMediaControl_get_RegFilterCollection(This,ppUnk) (This)->lpVtbl->get_RegFilterCollection(This,ppUnk)
-#define IMediaControl_StopWhenReady(This) (This)->lpVtbl->StopWhenReady(This)
-#endif
-#endif
-  HRESULT WINAPI IMediaControl_Run_Proxy(IMediaControl *This);
-  void __RPC_STUB IMediaControl_Run_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaControl_Pause_Proxy(IMediaControl *This);
-  void __RPC_STUB IMediaControl_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaControl_Stop_Proxy(IMediaControl *This);
-  void __RPC_STUB IMediaControl_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaControl_GetState_Proxy(IMediaControl *This,LONG msTimeout,OAFilterState *pfs);
-  void __RPC_STUB IMediaControl_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaControl_RenderFile_Proxy(IMediaControl *This,BSTR strFilename);
-  void __RPC_STUB IMediaControl_RenderFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaControl_AddSourceFilter_Proxy(IMediaControl *This,BSTR strFilename,IDispatch **ppUnk);
-  void __RPC_STUB IMediaControl_AddSourceFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaControl_get_FilterCollection_Proxy(IMediaControl *This,IDispatch **ppUnk);
-  void __RPC_STUB IMediaControl_get_FilterCollection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaControl_get_RegFilterCollection_Proxy(IMediaControl *This,IDispatch **ppUnk);
-  void __RPC_STUB IMediaControl_get_RegFilterCollection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaControl_StopWhenReady_Proxy(IMediaControl *This);
-  void __RPC_STUB IMediaControl_StopWhenReady_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IMediaEvent_INTERFACE_DEFINED__
-#define __IMediaEvent_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IMediaEvent,0x56a868b6,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMediaEvent : public IDispatch {
-  public:
-    virtual HRESULT WINAPI GetEventHandle(OAEVENT *hEvent) = 0;
-    virtual HRESULT WINAPI GetEvent(long *lEventCode,LONG_PTR *lParam1,LONG_PTR *lParam2,long msTimeout) = 0;
-    virtual HRESULT WINAPI WaitForCompletion(long msTimeout,long *pEvCode) = 0;
-    virtual HRESULT WINAPI CancelDefaultHandling(long lEvCode) = 0;
-    virtual HRESULT WINAPI RestoreDefaultHandling(long lEvCode) = 0;
-    virtual HRESULT WINAPI FreeEventParams(long lEvCode,LONG_PTR lParam1,LONG_PTR lParam2) = 0;
-  };
-#else
-  typedef struct IMediaEventVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMediaEvent *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMediaEvent *This);
-      ULONG (WINAPI *Release)(IMediaEvent *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IMediaEvent *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IMediaEvent *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IMediaEvent *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IMediaEvent *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *GetEventHandle)(IMediaEvent *This,OAEVENT *hEvent);
-      HRESULT (WINAPI *GetEvent)(IMediaEvent *This,long *lEventCode,LONG_PTR *lParam1,LONG_PTR *lParam2,long msTimeout);
-      HRESULT (WINAPI *WaitForCompletion)(IMediaEvent *This,long msTimeout,long *pEvCode);
-      HRESULT (WINAPI *CancelDefaultHandling)(IMediaEvent *This,long lEvCode);
-      HRESULT (WINAPI *RestoreDefaultHandling)(IMediaEvent *This,long lEvCode);
-      HRESULT (WINAPI *FreeEventParams)(IMediaEvent *This,long lEvCode,LONG_PTR lParam1,LONG_PTR lParam2);
-    END_INTERFACE
-  } IMediaEventVtbl;
-  struct IMediaEvent {
-    CONST_VTBL struct IMediaEventVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMediaEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMediaEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMediaEvent_Release(This) (This)->lpVtbl->Release(This)
-#define IMediaEvent_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IMediaEvent_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IMediaEvent_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IMediaEvent_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IMediaEvent_GetEventHandle(This,hEvent) (This)->lpVtbl->GetEventHandle(This,hEvent)
-#define IMediaEvent_GetEvent(This,lEventCode,lParam1,lParam2,msTimeout) (This)->lpVtbl->GetEvent(This,lEventCode,lParam1,lParam2,msTimeout)
-#define IMediaEvent_WaitForCompletion(This,msTimeout,pEvCode) (This)->lpVtbl->WaitForCompletion(This,msTimeout,pEvCode)
-#define IMediaEvent_CancelDefaultHandling(This,lEvCode) (This)->lpVtbl->CancelDefaultHandling(This,lEvCode)
-#define IMediaEvent_RestoreDefaultHandling(This,lEvCode) (This)->lpVtbl->RestoreDefaultHandling(This,lEvCode)
-#define IMediaEvent_FreeEventParams(This,lEvCode,lParam1,lParam2) (This)->lpVtbl->FreeEventParams(This,lEvCode,lParam1,lParam2)
-#endif
-#endif
-  HRESULT WINAPI IMediaEvent_GetEventHandle_Proxy(IMediaEvent *This,OAEVENT *hEvent);
-  void __RPC_STUB IMediaEvent_GetEventHandle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaEvent_GetEvent_Proxy(IMediaEvent *This,long *lEventCode,LONG_PTR *lParam1,LONG_PTR *lParam2,long msTimeout);
-  void __RPC_STUB IMediaEvent_GetEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaEvent_WaitForCompletion_Proxy(IMediaEvent *This,long msTimeout,long *pEvCode);
-  void __RPC_STUB IMediaEvent_WaitForCompletion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaEvent_CancelDefaultHandling_Proxy(IMediaEvent *This,long lEvCode);
-  void __RPC_STUB IMediaEvent_CancelDefaultHandling_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaEvent_RestoreDefaultHandling_Proxy(IMediaEvent *This,long lEvCode);
-  void __RPC_STUB IMediaEvent_RestoreDefaultHandling_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaEvent_FreeEventParams_Proxy(IMediaEvent *This,long lEvCode,LONG_PTR lParam1,LONG_PTR lParam2);
-  void __RPC_STUB IMediaEvent_FreeEventParams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IMediaEventEx_INTERFACE_DEFINED__
-#define __IMediaEventEx_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IMediaEventEx,0x56a868c0,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMediaEventEx : public IMediaEvent {
-  public:
-    virtual HRESULT WINAPI SetNotifyWindow(OAHWND hwnd,long lMsg,LONG_PTR lInstanceData) = 0;
-    virtual HRESULT WINAPI SetNotifyFlags(long lNoNotifyFlags) = 0;
-    virtual HRESULT WINAPI GetNotifyFlags(long *lplNoNotifyFlags) = 0;
-  };
-#else
-  typedef struct IMediaEventExVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMediaEventEx *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMediaEventEx *This);
-      ULONG (WINAPI *Release)(IMediaEventEx *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IMediaEventEx *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IMediaEventEx *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IMediaEventEx *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IMediaEventEx *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *GetEventHandle)(IMediaEventEx *This,OAEVENT *hEvent);
-      HRESULT (WINAPI *GetEvent)(IMediaEventEx *This,long *lEventCode,LONG_PTR *lParam1,LONG_PTR *lParam2,long msTimeout);
-      HRESULT (WINAPI *WaitForCompletion)(IMediaEventEx *This,long msTimeout,long *pEvCode);
-      HRESULT (WINAPI *CancelDefaultHandling)(IMediaEventEx *This,long lEvCode);
-      HRESULT (WINAPI *RestoreDefaultHandling)(IMediaEventEx *This,long lEvCode);
-      HRESULT (WINAPI *FreeEventParams)(IMediaEventEx *This,long lEvCode,LONG_PTR lParam1,LONG_PTR lParam2);
-      HRESULT (WINAPI *SetNotifyWindow)(IMediaEventEx *This,OAHWND hwnd,long lMsg,LONG_PTR lInstanceData);
-      HRESULT (WINAPI *SetNotifyFlags)(IMediaEventEx *This,long lNoNotifyFlags);
-      HRESULT (WINAPI *GetNotifyFlags)(IMediaEventEx *This,long *lplNoNotifyFlags);
-    END_INTERFACE
-  } IMediaEventExVtbl;
-  struct IMediaEventEx {
-    CONST_VTBL struct IMediaEventExVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMediaEventEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMediaEventEx_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMediaEventEx_Release(This) (This)->lpVtbl->Release(This)
-#define IMediaEventEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IMediaEventEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IMediaEventEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IMediaEventEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IMediaEventEx_GetEventHandle(This,hEvent) (This)->lpVtbl->GetEventHandle(This,hEvent)
-#define IMediaEventEx_GetEvent(This,lEventCode,lParam1,lParam2,msTimeout) (This)->lpVtbl->GetEvent(This,lEventCode,lParam1,lParam2,msTimeout)
-#define IMediaEventEx_WaitForCompletion(This,msTimeout,pEvCode) (This)->lpVtbl->WaitForCompletion(This,msTimeout,pEvCode)
-#define IMediaEventEx_CancelDefaultHandling(This,lEvCode) (This)->lpVtbl->CancelDefaultHandling(This,lEvCode)
-#define IMediaEventEx_RestoreDefaultHandling(This,lEvCode) (This)->lpVtbl->RestoreDefaultHandling(This,lEvCode)
-#define IMediaEventEx_FreeEventParams(This,lEvCode,lParam1,lParam2) (This)->lpVtbl->FreeEventParams(This,lEvCode,lParam1,lParam2)
-#define IMediaEventEx_SetNotifyWindow(This,hwnd,lMsg,lInstanceData) (This)->lpVtbl->SetNotifyWindow(This,hwnd,lMsg,lInstanceData)
-#define IMediaEventEx_SetNotifyFlags(This,lNoNotifyFlags) (This)->lpVtbl->SetNotifyFlags(This,lNoNotifyFlags)
-#define IMediaEventEx_GetNotifyFlags(This,lplNoNotifyFlags) (This)->lpVtbl->GetNotifyFlags(This,lplNoNotifyFlags)
-#endif
-#endif
-  HRESULT WINAPI IMediaEventEx_SetNotifyWindow_Proxy(IMediaEventEx *This,OAHWND hwnd,long lMsg,LONG_PTR lInstanceData);
-  void __RPC_STUB IMediaEventEx_SetNotifyWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaEventEx_SetNotifyFlags_Proxy(IMediaEventEx *This,long lNoNotifyFlags);
-  void __RPC_STUB IMediaEventEx_SetNotifyFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaEventEx_GetNotifyFlags_Proxy(IMediaEventEx *This,long *lplNoNotifyFlags);
-  void __RPC_STUB IMediaEventEx_GetNotifyFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IMediaPosition_INTERFACE_DEFINED__
-#define __IMediaPosition_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IMediaPosition,0x56a868b2,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMediaPosition : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Duration(REFTIME *plength) = 0;
-    virtual HRESULT WINAPI put_CurrentPosition(REFTIME llTime) = 0;
-    virtual HRESULT WINAPI get_CurrentPosition(REFTIME *pllTime) = 0;
-    virtual HRESULT WINAPI get_StopTime(REFTIME *pllTime) = 0;
-    virtual HRESULT WINAPI put_StopTime(REFTIME llTime) = 0;
-    virtual HRESULT WINAPI get_PrerollTime(REFTIME *pllTime) = 0;
-    virtual HRESULT WINAPI put_PrerollTime(REFTIME llTime) = 0;
-    virtual HRESULT WINAPI put_Rate(double dRate) = 0;
-    virtual HRESULT WINAPI get_Rate(double *pdRate) = 0;
-    virtual HRESULT WINAPI CanSeekForward(LONG *pCanSeekForward) = 0;
-    virtual HRESULT WINAPI CanSeekBackward(LONG *pCanSeekBackward) = 0;
-  };
-#else
-  typedef struct IMediaPositionVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMediaPosition *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMediaPosition *This);
-      ULONG (WINAPI *Release)(IMediaPosition *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IMediaPosition *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IMediaPosition *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IMediaPosition *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IMediaPosition *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Duration)(IMediaPosition *This,REFTIME *plength);
-      HRESULT (WINAPI *put_CurrentPosition)(IMediaPosition *This,REFTIME llTime);
-      HRESULT (WINAPI *get_CurrentPosition)(IMediaPosition *This,REFTIME *pllTime);
-      HRESULT (WINAPI *get_StopTime)(IMediaPosition *This,REFTIME *pllTime);
-      HRESULT (WINAPI *put_StopTime)(IMediaPosition *This,REFTIME llTime);
-      HRESULT (WINAPI *get_PrerollTime)(IMediaPosition *This,REFTIME *pllTime);
-      HRESULT (WINAPI *put_PrerollTime)(IMediaPosition *This,REFTIME llTime);
-      HRESULT (WINAPI *put_Rate)(IMediaPosition *This,double dRate);
-      HRESULT (WINAPI *get_Rate)(IMediaPosition *This,double *pdRate);
-      HRESULT (WINAPI *CanSeekForward)(IMediaPosition *This,LONG *pCanSeekForward);
-      HRESULT (WINAPI *CanSeekBackward)(IMediaPosition *This,LONG *pCanSeekBackward);
-    END_INTERFACE
-  } IMediaPositionVtbl;
-  struct IMediaPosition {
-    CONST_VTBL struct IMediaPositionVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMediaPosition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMediaPosition_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMediaPosition_Release(This) (This)->lpVtbl->Release(This)
-#define IMediaPosition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IMediaPosition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IMediaPosition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IMediaPosition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IMediaPosition_get_Duration(This,plength) (This)->lpVtbl->get_Duration(This,plength)
-#define IMediaPosition_put_CurrentPosition(This,llTime) (This)->lpVtbl->put_CurrentPosition(This,llTime)
-#define IMediaPosition_get_CurrentPosition(This,pllTime) (This)->lpVtbl->get_CurrentPosition(This,pllTime)
-#define IMediaPosition_get_StopTime(This,pllTime) (This)->lpVtbl->get_StopTime(This,pllTime)
-#define IMediaPosition_put_StopTime(This,llTime) (This)->lpVtbl->put_StopTime(This,llTime)
-#define IMediaPosition_get_PrerollTime(This,pllTime) (This)->lpVtbl->get_PrerollTime(This,pllTime)
-#define IMediaPosition_put_PrerollTime(This,llTime) (This)->lpVtbl->put_PrerollTime(This,llTime)
-#define IMediaPosition_put_Rate(This,dRate) (This)->lpVtbl->put_Rate(This,dRate)
-#define IMediaPosition_get_Rate(This,pdRate) (This)->lpVtbl->get_Rate(This,pdRate)
-#define IMediaPosition_CanSeekForward(This,pCanSeekForward) (This)->lpVtbl->CanSeekForward(This,pCanSeekForward)
-#define IMediaPosition_CanSeekBackward(This,pCanSeekBackward) (This)->lpVtbl->CanSeekBackward(This,pCanSeekBackward)
-#endif
-#endif
-  HRESULT WINAPI IMediaPosition_get_Duration_Proxy(IMediaPosition *This,REFTIME *plength);
-  void __RPC_STUB IMediaPosition_get_Duration_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaPosition_put_CurrentPosition_Proxy(IMediaPosition *This,REFTIME llTime);
-  void __RPC_STUB IMediaPosition_put_CurrentPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaPosition_get_CurrentPosition_Proxy(IMediaPosition *This,REFTIME *pllTime);
-  void __RPC_STUB IMediaPosition_get_CurrentPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaPosition_get_StopTime_Proxy(IMediaPosition *This,REFTIME *pllTime);
-  void __RPC_STUB IMediaPosition_get_StopTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaPosition_put_StopTime_Proxy(IMediaPosition *This,REFTIME llTime);
-  void __RPC_STUB IMediaPosition_put_StopTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaPosition_get_PrerollTime_Proxy(IMediaPosition *This,REFTIME *pllTime);
-  void __RPC_STUB IMediaPosition_get_PrerollTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaPosition_put_PrerollTime_Proxy(IMediaPosition *This,REFTIME llTime);
-  void __RPC_STUB IMediaPosition_put_PrerollTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaPosition_put_Rate_Proxy(IMediaPosition *This,double dRate);
-  void __RPC_STUB IMediaPosition_put_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaPosition_get_Rate_Proxy(IMediaPosition *This,double *pdRate);
-  void __RPC_STUB IMediaPosition_get_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaPosition_CanSeekForward_Proxy(IMediaPosition *This,LONG *pCanSeekForward);
-  void __RPC_STUB IMediaPosition_CanSeekForward_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaPosition_CanSeekBackward_Proxy(IMediaPosition *This,LONG *pCanSeekBackward);
-  void __RPC_STUB IMediaPosition_CanSeekBackward_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IBasicAudio_INTERFACE_DEFINED__
-#define __IBasicAudio_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IBasicAudio,0x56a868b3,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IBasicAudio : public IDispatch {
-  public:
-    virtual HRESULT WINAPI put_Volume(long lVolume) = 0;
-    virtual HRESULT WINAPI get_Volume(long *plVolume) = 0;
-    virtual HRESULT WINAPI put_Balance(long lBalance) = 0;
-    virtual HRESULT WINAPI get_Balance(long *plBalance) = 0;
-  };
-#else
-  typedef struct IBasicAudioVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IBasicAudio *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IBasicAudio *This);
-      ULONG (WINAPI *Release)(IBasicAudio *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IBasicAudio *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IBasicAudio *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IBasicAudio *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IBasicAudio *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *put_Volume)(IBasicAudio *This,long lVolume);
-      HRESULT (WINAPI *get_Volume)(IBasicAudio *This,long *plVolume);
-      HRESULT (WINAPI *put_Balance)(IBasicAudio *This,long lBalance);
-      HRESULT (WINAPI *get_Balance)(IBasicAudio *This,long *plBalance);
-    END_INTERFACE
-  } IBasicAudioVtbl;
-  struct IBasicAudio {
-    CONST_VTBL struct IBasicAudioVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IBasicAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IBasicAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IBasicAudio_Release(This) (This)->lpVtbl->Release(This)
-#define IBasicAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IBasicAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IBasicAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IBasicAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IBasicAudio_put_Volume(This,lVolume) (This)->lpVtbl->put_Volume(This,lVolume)
-#define IBasicAudio_get_Volume(This,plVolume) (This)->lpVtbl->get_Volume(This,plVolume)
-#define IBasicAudio_put_Balance(This,lBalance) (This)->lpVtbl->put_Balance(This,lBalance)
-#define IBasicAudio_get_Balance(This,plBalance) (This)->lpVtbl->get_Balance(This,plBalance)
-#endif
-#endif
-  HRESULT WINAPI IBasicAudio_put_Volume_Proxy(IBasicAudio *This,long lVolume);
-  void __RPC_STUB IBasicAudio_put_Volume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicAudio_get_Volume_Proxy(IBasicAudio *This,long *plVolume);
-  void __RPC_STUB IBasicAudio_get_Volume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicAudio_put_Balance_Proxy(IBasicAudio *This,long lBalance);
-  void __RPC_STUB IBasicAudio_put_Balance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicAudio_get_Balance_Proxy(IBasicAudio *This,long *plBalance);
-  void __RPC_STUB IBasicAudio_get_Balance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IVideoWindow_INTERFACE_DEFINED__
-#define __IVideoWindow_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IVideoWindow,0x56a868b4,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVideoWindow : public IDispatch {
-  public:
-    virtual HRESULT WINAPI put_Caption(BSTR strCaption) = 0;
-    virtual HRESULT WINAPI get_Caption(BSTR *strCaption) = 0;
-    virtual HRESULT WINAPI put_WindowStyle(long WindowStyle) = 0;
-    virtual HRESULT WINAPI get_WindowStyle(long *WindowStyle) = 0;
-    virtual HRESULT WINAPI put_WindowStyleEx(long WindowStyleEx) = 0;
-    virtual HRESULT WINAPI get_WindowStyleEx(long *WindowStyleEx) = 0;
-    virtual HRESULT WINAPI put_AutoShow(long AutoShow) = 0;
-    virtual HRESULT WINAPI get_AutoShow(long *AutoShow) = 0;
-    virtual HRESULT WINAPI put_WindowState(long WindowState) = 0;
-    virtual HRESULT WINAPI get_WindowState(long *WindowState) = 0;
-    virtual HRESULT WINAPI put_BackgroundPalette(long BackgroundPalette) = 0;
-    virtual HRESULT WINAPI get_BackgroundPalette(long *pBackgroundPalette) = 0;
-    virtual HRESULT WINAPI put_Visible(long Visible) = 0;
-    virtual HRESULT WINAPI get_Visible(long *pVisible) = 0;
-    virtual HRESULT WINAPI put_Left(long Left) = 0;
-    virtual HRESULT WINAPI get_Left(long *pLeft) = 0;
-    virtual HRESULT WINAPI put_Width(long Width) = 0;
-    virtual HRESULT WINAPI get_Width(long *pWidth) = 0;
-    virtual HRESULT WINAPI put_Top(long Top) = 0;
-    virtual HRESULT WINAPI get_Top(long *pTop) = 0;
-    virtual HRESULT WINAPI put_Height(long Height) = 0;
-    virtual HRESULT WINAPI get_Height(long *pHeight) = 0;
-    virtual HRESULT WINAPI put_Owner(OAHWND Owner) = 0;
-    virtual HRESULT WINAPI get_Owner(OAHWND *Owner) = 0;
-    virtual HRESULT WINAPI put_MessageDrain(OAHWND Drain) = 0;
-    virtual HRESULT WINAPI get_MessageDrain(OAHWND *Drain) = 0;
-    virtual HRESULT WINAPI get_BorderColor(long *Color) = 0;
-    virtual HRESULT WINAPI put_BorderColor(long Color) = 0;
-    virtual HRESULT WINAPI get_FullScreenMode(long *FullScreenMode) = 0;
-    virtual HRESULT WINAPI put_FullScreenMode(long FullScreenMode) = 0;
-    virtual HRESULT WINAPI SetWindowForeground(long Focus) = 0;
-    virtual HRESULT WINAPI NotifyOwnerMessage(OAHWND hwnd,long uMsg,LONG_PTR wParam,LONG_PTR lParam) = 0;
-    virtual HRESULT WINAPI SetWindowPosition(long Left,long Top,long Width,long Height) = 0;
-    virtual HRESULT WINAPI GetWindowPosition(long *pLeft,long *pTop,long *pWidth,long *pHeight) = 0;
-    virtual HRESULT WINAPI GetMinIdealImageSize(long *pWidth,long *pHeight) = 0;
-    virtual HRESULT WINAPI GetMaxIdealImageSize(long *pWidth,long *pHeight) = 0;
-    virtual HRESULT WINAPI GetRestorePosition(long *pLeft,long *pTop,long *pWidth,long *pHeight) = 0;
-    virtual HRESULT WINAPI HideCursor(long HideCursor) = 0;
-    virtual HRESULT WINAPI IsCursorHidden(long *CursorHidden) = 0;
-  };
-#else
-  typedef struct IVideoWindowVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVideoWindow *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVideoWindow *This);
-      ULONG (WINAPI *Release)(IVideoWindow *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IVideoWindow *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IVideoWindow *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IVideoWindow *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IVideoWindow *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *put_Caption)(IVideoWindow *This,BSTR strCaption);
-      HRESULT (WINAPI *get_Caption)(IVideoWindow *This,BSTR *strCaption);
-      HRESULT (WINAPI *put_WindowStyle)(IVideoWindow *This,long WindowStyle);
-      HRESULT (WINAPI *get_WindowStyle)(IVideoWindow *This,long *WindowStyle);
-      HRESULT (WINAPI *put_WindowStyleEx)(IVideoWindow *This,long WindowStyleEx);
-      HRESULT (WINAPI *get_WindowStyleEx)(IVideoWindow *This,long *WindowStyleEx);
-      HRESULT (WINAPI *put_AutoShow)(IVideoWindow *This,long AutoShow);
-      HRESULT (WINAPI *get_AutoShow)(IVideoWindow *This,long *AutoShow);
-      HRESULT (WINAPI *put_WindowState)(IVideoWindow *This,long WindowState);
-      HRESULT (WINAPI *get_WindowState)(IVideoWindow *This,long *WindowState);
-      HRESULT (WINAPI *put_BackgroundPalette)(IVideoWindow *This,long BackgroundPalette);
-      HRESULT (WINAPI *get_BackgroundPalette)(IVideoWindow *This,long *pBackgroundPalette);
-      HRESULT (WINAPI *put_Visible)(IVideoWindow *This,long Visible);
-      HRESULT (WINAPI *get_Visible)(IVideoWindow *This,long *pVisible);
-      HRESULT (WINAPI *put_Left)(IVideoWindow *This,long Left);
-      HRESULT (WINAPI *get_Left)(IVideoWindow *This,long *pLeft);
-      HRESULT (WINAPI *put_Width)(IVideoWindow *This,long Width);
-      HRESULT (WINAPI *get_Width)(IVideoWindow *This,long *pWidth);
-      HRESULT (WINAPI *put_Top)(IVideoWindow *This,long Top);
-      HRESULT (WINAPI *get_Top)(IVideoWindow *This,long *pTop);
-      HRESULT (WINAPI *put_Height)(IVideoWindow *This,long Height);
-      HRESULT (WINAPI *get_Height)(IVideoWindow *This,long *pHeight);
-      HRESULT (WINAPI *put_Owner)(IVideoWindow *This,OAHWND Owner);
-      HRESULT (WINAPI *get_Owner)(IVideoWindow *This,OAHWND *Owner);
-      HRESULT (WINAPI *put_MessageDrain)(IVideoWindow *This,OAHWND Drain);
-      HRESULT (WINAPI *get_MessageDrain)(IVideoWindow *This,OAHWND *Drain);
-      HRESULT (WINAPI *get_BorderColor)(IVideoWindow *This,long *Color);
-      HRESULT (WINAPI *put_BorderColor)(IVideoWindow *This,long Color);
-      HRESULT (WINAPI *get_FullScreenMode)(IVideoWindow *This,long *FullScreenMode);
-      HRESULT (WINAPI *put_FullScreenMode)(IVideoWindow *This,long FullScreenMode);
-      HRESULT (WINAPI *SetWindowForeground)(IVideoWindow *This,long Focus);
-      HRESULT (WINAPI *NotifyOwnerMessage)(IVideoWindow *This,OAHWND hwnd,long uMsg,LONG_PTR wParam,LONG_PTR lParam);
-      HRESULT (WINAPI *SetWindowPosition)(IVideoWindow *This,long Left,long Top,long Width,long Height);
-      HRESULT (WINAPI *GetWindowPosition)(IVideoWindow *This,long *pLeft,long *pTop,long *pWidth,long *pHeight);
-      HRESULT (WINAPI *GetMinIdealImageSize)(IVideoWindow *This,long *pWidth,long *pHeight);
-      HRESULT (WINAPI *GetMaxIdealImageSize)(IVideoWindow *This,long *pWidth,long *pHeight);
-      HRESULT (WINAPI *GetRestorePosition)(IVideoWindow *This,long *pLeft,long *pTop,long *pWidth,long *pHeight);
-      HRESULT (WINAPI *HideCursor)(IVideoWindow *This,long HideCursor);
-      HRESULT (WINAPI *IsCursorHidden)(IVideoWindow *This,long *CursorHidden);
-    END_INTERFACE
-  } IVideoWindowVtbl;
-  struct IVideoWindow {
-    CONST_VTBL struct IVideoWindowVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVideoWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVideoWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVideoWindow_Release(This) (This)->lpVtbl->Release(This)
-#define IVideoWindow_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IVideoWindow_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IVideoWindow_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IVideoWindow_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IVideoWindow_put_Caption(This,strCaption) (This)->lpVtbl->put_Caption(This,strCaption)
-#define IVideoWindow_get_Caption(This,strCaption) (This)->lpVtbl->get_Caption(This,strCaption)
-#define IVideoWindow_put_WindowStyle(This,WindowStyle) (This)->lpVtbl->put_WindowStyle(This,WindowStyle)
-#define IVideoWindow_get_WindowStyle(This,WindowStyle) (This)->lpVtbl->get_WindowStyle(This,WindowStyle)
-#define IVideoWindow_put_WindowStyleEx(This,WindowStyleEx) (This)->lpVtbl->put_WindowStyleEx(This,WindowStyleEx)
-#define IVideoWindow_get_WindowStyleEx(This,WindowStyleEx) (This)->lpVtbl->get_WindowStyleEx(This,WindowStyleEx)
-#define IVideoWindow_put_AutoShow(This,AutoShow) (This)->lpVtbl->put_AutoShow(This,AutoShow)
-#define IVideoWindow_get_AutoShow(This,AutoShow) (This)->lpVtbl->get_AutoShow(This,AutoShow)
-#define IVideoWindow_put_WindowState(This,WindowState) (This)->lpVtbl->put_WindowState(This,WindowState)
-#define IVideoWindow_get_WindowState(This,WindowState) (This)->lpVtbl->get_WindowState(This,WindowState)
-#define IVideoWindow_put_BackgroundPalette(This,BackgroundPalette) (This)->lpVtbl->put_BackgroundPalette(This,BackgroundPalette)
-#define IVideoWindow_get_BackgroundPalette(This,pBackgroundPalette) (This)->lpVtbl->get_BackgroundPalette(This,pBackgroundPalette)
-#define IVideoWindow_put_Visible(This,Visible) (This)->lpVtbl->put_Visible(This,Visible)
-#define IVideoWindow_get_Visible(This,pVisible) (This)->lpVtbl->get_Visible(This,pVisible)
-#define IVideoWindow_put_Left(This,Left) (This)->lpVtbl->put_Left(This,Left)
-#define IVideoWindow_get_Left(This,pLeft) (This)->lpVtbl->get_Left(This,pLeft)
-#define IVideoWindow_put_Width(This,Width) (This)->lpVtbl->put_Width(This,Width)
-#define IVideoWindow_get_Width(This,pWidth) (This)->lpVtbl->get_Width(This,pWidth)
-#define IVideoWindow_put_Top(This,Top) (This)->lpVtbl->put_Top(This,Top)
-#define IVideoWindow_get_Top(This,pTop) (This)->lpVtbl->get_Top(This,pTop)
-#define IVideoWindow_put_Height(This,Height) (This)->lpVtbl->put_Height(This,Height)
-#define IVideoWindow_get_Height(This,pHeight) (This)->lpVtbl->get_Height(This,pHeight)
-#define IVideoWindow_put_Owner(This,Owner) (This)->lpVtbl->put_Owner(This,Owner)
-#define IVideoWindow_get_Owner(This,Owner) (This)->lpVtbl->get_Owner(This,Owner)
-#define IVideoWindow_put_MessageDrain(This,Drain) (This)->lpVtbl->put_MessageDrain(This,Drain)
-#define IVideoWindow_get_MessageDrain(This,Drain) (This)->lpVtbl->get_MessageDrain(This,Drain)
-#define IVideoWindow_get_BorderColor(This,Color) (This)->lpVtbl->get_BorderColor(This,Color)
-#define IVideoWindow_put_BorderColor(This,Color) (This)->lpVtbl->put_BorderColor(This,Color)
-#define IVideoWindow_get_FullScreenMode(This,FullScreenMode) (This)->lpVtbl->get_FullScreenMode(This,FullScreenMode)
-#define IVideoWindow_put_FullScreenMode(This,FullScreenMode) (This)->lpVtbl->put_FullScreenMode(This,FullScreenMode)
-#define IVideoWindow_SetWindowForeground(This,Focus) (This)->lpVtbl->SetWindowForeground(This,Focus)
-#define IVideoWindow_NotifyOwnerMessage(This,hwnd,uMsg,wParam,lParam) (This)->lpVtbl->NotifyOwnerMessage(This,hwnd,uMsg,wParam,lParam)
-#define IVideoWindow_SetWindowPosition(This,Left,Top,Width,Height) (This)->lpVtbl->SetWindowPosition(This,Left,Top,Width,Height)
-#define IVideoWindow_GetWindowPosition(This,pLeft,pTop,pWidth,pHeight) (This)->lpVtbl->GetWindowPosition(This,pLeft,pTop,pWidth,pHeight)
-#define IVideoWindow_GetMinIdealImageSize(This,pWidth,pHeight) (This)->lpVtbl->GetMinIdealImageSize(This,pWidth,pHeight)
-#define IVideoWindow_GetMaxIdealImageSize(This,pWidth,pHeight) (This)->lpVtbl->GetMaxIdealImageSize(This,pWidth,pHeight)
-#define IVideoWindow_GetRestorePosition(This,pLeft,pTop,pWidth,pHeight) (This)->lpVtbl->GetRestorePosition(This,pLeft,pTop,pWidth,pHeight)
-#define IVideoWindow_HideCursor(This,HideCursor) (This)->lpVtbl->HideCursor(This,HideCursor)
-#define IVideoWindow_IsCursorHidden(This,CursorHidden) (This)->lpVtbl->IsCursorHidden(This,CursorHidden)
-#endif
-#endif
-  HRESULT WINAPI IVideoWindow_put_Caption_Proxy(IVideoWindow *This,BSTR strCaption);
-  void __RPC_STUB IVideoWindow_put_Caption_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_Caption_Proxy(IVideoWindow *This,BSTR *strCaption);
-  void __RPC_STUB IVideoWindow_get_Caption_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_put_WindowStyle_Proxy(IVideoWindow *This,long WindowStyle);
-  void __RPC_STUB IVideoWindow_put_WindowStyle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_WindowStyle_Proxy(IVideoWindow *This,long *WindowStyle);
-  void __RPC_STUB IVideoWindow_get_WindowStyle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_put_WindowStyleEx_Proxy(IVideoWindow *This,long WindowStyleEx);
-  void __RPC_STUB IVideoWindow_put_WindowStyleEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_WindowStyleEx_Proxy(IVideoWindow *This,long *WindowStyleEx);
-  void __RPC_STUB IVideoWindow_get_WindowStyleEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_put_AutoShow_Proxy(IVideoWindow *This,long AutoShow);
-  void __RPC_STUB IVideoWindow_put_AutoShow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_AutoShow_Proxy(IVideoWindow *This,long *AutoShow);
-  void __RPC_STUB IVideoWindow_get_AutoShow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_put_WindowState_Proxy(IVideoWindow *This,long WindowState);
-  void __RPC_STUB IVideoWindow_put_WindowState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_WindowState_Proxy(IVideoWindow *This,long *WindowState);
-  void __RPC_STUB IVideoWindow_get_WindowState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_put_BackgroundPalette_Proxy(IVideoWindow *This,long BackgroundPalette);
-  void __RPC_STUB IVideoWindow_put_BackgroundPalette_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_BackgroundPalette_Proxy(IVideoWindow *This,long *pBackgroundPalette);
-  void __RPC_STUB IVideoWindow_get_BackgroundPalette_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_put_Visible_Proxy(IVideoWindow *This,long Visible);
-  void __RPC_STUB IVideoWindow_put_Visible_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_Visible_Proxy(IVideoWindow *This,long *pVisible);
-  void __RPC_STUB IVideoWindow_get_Visible_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_put_Left_Proxy(IVideoWindow *This,long Left);
-  void __RPC_STUB IVideoWindow_put_Left_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_Left_Proxy(IVideoWindow *This,long *pLeft);
-  void __RPC_STUB IVideoWindow_get_Left_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_put_Width_Proxy(IVideoWindow *This,long Width);
-  void __RPC_STUB IVideoWindow_put_Width_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_Width_Proxy(IVideoWindow *This,long *pWidth);
-  void __RPC_STUB IVideoWindow_get_Width_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_put_Top_Proxy(IVideoWindow *This,long Top);
-  void __RPC_STUB IVideoWindow_put_Top_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_Top_Proxy(IVideoWindow *This,long *pTop);
-  void __RPC_STUB IVideoWindow_get_Top_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_put_Height_Proxy(IVideoWindow *This,long Height);
-  void __RPC_STUB IVideoWindow_put_Height_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_Height_Proxy(IVideoWindow *This,long *pHeight);
-  void __RPC_STUB IVideoWindow_get_Height_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_put_Owner_Proxy(IVideoWindow *This,OAHWND Owner);
-  void __RPC_STUB IVideoWindow_put_Owner_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_Owner_Proxy(IVideoWindow *This,OAHWND *Owner);
-  void __RPC_STUB IVideoWindow_get_Owner_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_put_MessageDrain_Proxy(IVideoWindow *This,OAHWND Drain);
-  void __RPC_STUB IVideoWindow_put_MessageDrain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_MessageDrain_Proxy(IVideoWindow *This,OAHWND *Drain);
-  void __RPC_STUB IVideoWindow_get_MessageDrain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_BorderColor_Proxy(IVideoWindow *This,long *Color);
-  void __RPC_STUB IVideoWindow_get_BorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_put_BorderColor_Proxy(IVideoWindow *This,long Color);
-  void __RPC_STUB IVideoWindow_put_BorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_get_FullScreenMode_Proxy(IVideoWindow *This,long *FullScreenMode);
-  void __RPC_STUB IVideoWindow_get_FullScreenMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_put_FullScreenMode_Proxy(IVideoWindow *This,long FullScreenMode);
-  void __RPC_STUB IVideoWindow_put_FullScreenMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_SetWindowForeground_Proxy(IVideoWindow *This,long Focus);
-  void __RPC_STUB IVideoWindow_SetWindowForeground_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_NotifyOwnerMessage_Proxy(IVideoWindow *This,OAHWND hwnd,long uMsg,LONG_PTR wParam,LONG_PTR lParam);
-  void __RPC_STUB IVideoWindow_NotifyOwnerMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_SetWindowPosition_Proxy(IVideoWindow *This,long Left,long Top,long Width,long Height);
-  void __RPC_STUB IVideoWindow_SetWindowPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_GetWindowPosition_Proxy(IVideoWindow *This,long *pLeft,long *pTop,long *pWidth,long *pHeight);
-  void __RPC_STUB IVideoWindow_GetWindowPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_GetMinIdealImageSize_Proxy(IVideoWindow *This,long *pWidth,long *pHeight);
-  void __RPC_STUB IVideoWindow_GetMinIdealImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_GetMaxIdealImageSize_Proxy(IVideoWindow *This,long *pWidth,long *pHeight);
-  void __RPC_STUB IVideoWindow_GetMaxIdealImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_GetRestorePosition_Proxy(IVideoWindow *This,long *pLeft,long *pTop,long *pWidth,long *pHeight);
-  void __RPC_STUB IVideoWindow_GetRestorePosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_HideCursor_Proxy(IVideoWindow *This,long HideCursor);
-  void __RPC_STUB IVideoWindow_HideCursor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoWindow_IsCursorHidden_Proxy(IVideoWindow *This,long *CursorHidden);
-  void __RPC_STUB IVideoWindow_IsCursorHidden_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IBasicVideo_INTERFACE_DEFINED__
-#define __IBasicVideo_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IBasicVideo,0x56a868b5,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IBasicVideo : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_AvgTimePerFrame(REFTIME *pAvgTimePerFrame) = 0;
-    virtual HRESULT WINAPI get_BitRate(long *pBitRate) = 0;
-    virtual HRESULT WINAPI get_BitErrorRate(long *pBitErrorRate) = 0;
-    virtual HRESULT WINAPI get_VideoWidth(long *pVideoWidth) = 0;
-    virtual HRESULT WINAPI get_VideoHeight(long *pVideoHeight) = 0;
-    virtual HRESULT WINAPI put_SourceLeft(long SourceLeft) = 0;
-    virtual HRESULT WINAPI get_SourceLeft(long *pSourceLeft) = 0;
-    virtual HRESULT WINAPI put_SourceWidth(long SourceWidth) = 0;
-    virtual HRESULT WINAPI get_SourceWidth(long *pSourceWidth) = 0;
-    virtual HRESULT WINAPI put_SourceTop(long SourceTop) = 0;
-    virtual HRESULT WINAPI get_SourceTop(long *pSourceTop) = 0;
-    virtual HRESULT WINAPI put_SourceHeight(long SourceHeight) = 0;
-    virtual HRESULT WINAPI get_SourceHeight(long *pSourceHeight) = 0;
-    virtual HRESULT WINAPI put_DestinationLeft(long DestinationLeft) = 0;
-    virtual HRESULT WINAPI get_DestinationLeft(long *pDestinationLeft) = 0;
-    virtual HRESULT WINAPI put_DestinationWidth(long DestinationWidth) = 0;
-    virtual HRESULT WINAPI get_DestinationWidth(long *pDestinationWidth) = 0;
-    virtual HRESULT WINAPI put_DestinationTop(long DestinationTop) = 0;
-    virtual HRESULT WINAPI get_DestinationTop(long *pDestinationTop) = 0;
-    virtual HRESULT WINAPI put_DestinationHeight(long DestinationHeight) = 0;
-    virtual HRESULT WINAPI get_DestinationHeight(long *pDestinationHeight) = 0;
-    virtual HRESULT WINAPI SetSourcePosition(long Left,long Top,long Width,long Height) = 0;
-    virtual HRESULT WINAPI GetSourcePosition(long *pLeft,long *pTop,long *pWidth,long *pHeight) = 0;
-    virtual HRESULT WINAPI SetDefaultSourcePosition(void) = 0;
-    virtual HRESULT WINAPI SetDestinationPosition(long Left,long Top,long Width,long Height) = 0;
-    virtual HRESULT WINAPI GetDestinationPosition(long *pLeft,long *pTop,long *pWidth,long *pHeight) = 0;
-    virtual HRESULT WINAPI SetDefaultDestinationPosition(void) = 0;
-    virtual HRESULT WINAPI GetVideoSize(long *pWidth,long *pHeight) = 0;
-    virtual HRESULT WINAPI GetVideoPaletteEntries(long StartIndex,long Entries,long *pRetrieved,long *pPalette) = 0;
-    virtual HRESULT WINAPI GetCurrentImage(long *pBufferSize,long *pDIBImage) = 0;
-    virtual HRESULT WINAPI IsUsingDefaultSource(void) = 0;
-    virtual HRESULT WINAPI IsUsingDefaultDestination(void) = 0;
-  };
-#else
-  typedef struct IBasicVideoVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IBasicVideo *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IBasicVideo *This);
-      ULONG (WINAPI *Release)(IBasicVideo *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IBasicVideo *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IBasicVideo *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IBasicVideo *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IBasicVideo *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_AvgTimePerFrame)(IBasicVideo *This,REFTIME *pAvgTimePerFrame);
-      HRESULT (WINAPI *get_BitRate)(IBasicVideo *This,long *pBitRate);
-      HRESULT (WINAPI *get_BitErrorRate)(IBasicVideo *This,long *pBitErrorRate);
-      HRESULT (WINAPI *get_VideoWidth)(IBasicVideo *This,long *pVideoWidth);
-      HRESULT (WINAPI *get_VideoHeight)(IBasicVideo *This,long *pVideoHeight);
-      HRESULT (WINAPI *put_SourceLeft)(IBasicVideo *This,long SourceLeft);
-      HRESULT (WINAPI *get_SourceLeft)(IBasicVideo *This,long *pSourceLeft);
-      HRESULT (WINAPI *put_SourceWidth)(IBasicVideo *This,long SourceWidth);
-      HRESULT (WINAPI *get_SourceWidth)(IBasicVideo *This,long *pSourceWidth);
-      HRESULT (WINAPI *put_SourceTop)(IBasicVideo *This,long SourceTop);
-      HRESULT (WINAPI *get_SourceTop)(IBasicVideo *This,long *pSourceTop);
-      HRESULT (WINAPI *put_SourceHeight)(IBasicVideo *This,long SourceHeight);
-      HRESULT (WINAPI *get_SourceHeight)(IBasicVideo *This,long *pSourceHeight);
-      HRESULT (WINAPI *put_DestinationLeft)(IBasicVideo *This,long DestinationLeft);
-      HRESULT (WINAPI *get_DestinationLeft)(IBasicVideo *This,long *pDestinationLeft);
-      HRESULT (WINAPI *put_DestinationWidth)(IBasicVideo *This,long DestinationWidth);
-      HRESULT (WINAPI *get_DestinationWidth)(IBasicVideo *This,long *pDestinationWidth);
-      HRESULT (WINAPI *put_DestinationTop)(IBasicVideo *This,long DestinationTop);
-      HRESULT (WINAPI *get_DestinationTop)(IBasicVideo *This,long *pDestinationTop);
-      HRESULT (WINAPI *put_DestinationHeight)(IBasicVideo *This,long DestinationHeight);
-      HRESULT (WINAPI *get_DestinationHeight)(IBasicVideo *This,long *pDestinationHeight);
-      HRESULT (WINAPI *SetSourcePosition)(IBasicVideo *This,long Left,long Top,long Width,long Height);
-      HRESULT (WINAPI *GetSourcePosition)(IBasicVideo *This,long *pLeft,long *pTop,long *pWidth,long *pHeight);
-      HRESULT (WINAPI *SetDefaultSourcePosition)(IBasicVideo *This);
-      HRESULT (WINAPI *SetDestinationPosition)(IBasicVideo *This,long Left,long Top,long Width,long Height);
-      HRESULT (WINAPI *GetDestinationPosition)(IBasicVideo *This,long *pLeft,long *pTop,long *pWidth,long *pHeight);
-      HRESULT (WINAPI *SetDefaultDestinationPosition)(IBasicVideo *This);
-      HRESULT (WINAPI *GetVideoSize)(IBasicVideo *This,long *pWidth,long *pHeight);
-      HRESULT (WINAPI *GetVideoPaletteEntries)(IBasicVideo *This,long StartIndex,long Entries,long *pRetrieved,long *pPalette);
-      HRESULT (WINAPI *GetCurrentImage)(IBasicVideo *This,long *pBufferSize,long *pDIBImage);
-      HRESULT (WINAPI *IsUsingDefaultSource)(IBasicVideo *This);
-      HRESULT (WINAPI *IsUsingDefaultDestination)(IBasicVideo *This);
-    END_INTERFACE
-  } IBasicVideoVtbl;
-  struct IBasicVideo {
-    CONST_VTBL struct IBasicVideoVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IBasicVideo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IBasicVideo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IBasicVideo_Release(This) (This)->lpVtbl->Release(This)
-#define IBasicVideo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IBasicVideo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IBasicVideo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IBasicVideo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IBasicVideo_get_AvgTimePerFrame(This,pAvgTimePerFrame) (This)->lpVtbl->get_AvgTimePerFrame(This,pAvgTimePerFrame)
-#define IBasicVideo_get_BitRate(This,pBitRate) (This)->lpVtbl->get_BitRate(This,pBitRate)
-#define IBasicVideo_get_BitErrorRate(This,pBitErrorRate) (This)->lpVtbl->get_BitErrorRate(This,pBitErrorRate)
-#define IBasicVideo_get_VideoWidth(This,pVideoWidth) (This)->lpVtbl->get_VideoWidth(This,pVideoWidth)
-#define IBasicVideo_get_VideoHeight(This,pVideoHeight) (This)->lpVtbl->get_VideoHeight(This,pVideoHeight)
-#define IBasicVideo_put_SourceLeft(This,SourceLeft) (This)->lpVtbl->put_SourceLeft(This,SourceLeft)
-#define IBasicVideo_get_SourceLeft(This,pSourceLeft) (This)->lpVtbl->get_SourceLeft(This,pSourceLeft)
-#define IBasicVideo_put_SourceWidth(This,SourceWidth) (This)->lpVtbl->put_SourceWidth(This,SourceWidth)
-#define IBasicVideo_get_SourceWidth(This,pSourceWidth) (This)->lpVtbl->get_SourceWidth(This,pSourceWidth)
-#define IBasicVideo_put_SourceTop(This,SourceTop) (This)->lpVtbl->put_SourceTop(This,SourceTop)
-#define IBasicVideo_get_SourceTop(This,pSourceTop) (This)->lpVtbl->get_SourceTop(This,pSourceTop)
-#define IBasicVideo_put_SourceHeight(This,SourceHeight) (This)->lpVtbl->put_SourceHeight(This,SourceHeight)
-#define IBasicVideo_get_SourceHeight(This,pSourceHeight) (This)->lpVtbl->get_SourceHeight(This,pSourceHeight)
-#define IBasicVideo_put_DestinationLeft(This,DestinationLeft) (This)->lpVtbl->put_DestinationLeft(This,DestinationLeft)
-#define IBasicVideo_get_DestinationLeft(This,pDestinationLeft) (This)->lpVtbl->get_DestinationLeft(This,pDestinationLeft)
-#define IBasicVideo_put_DestinationWidth(This,DestinationWidth) (This)->lpVtbl->put_DestinationWidth(This,DestinationWidth)
-#define IBasicVideo_get_DestinationWidth(This,pDestinationWidth) (This)->lpVtbl->get_DestinationWidth(This,pDestinationWidth)
-#define IBasicVideo_put_DestinationTop(This,DestinationTop) (This)->lpVtbl->put_DestinationTop(This,DestinationTop)
-#define IBasicVideo_get_DestinationTop(This,pDestinationTop) (This)->lpVtbl->get_DestinationTop(This,pDestinationTop)
-#define IBasicVideo_put_DestinationHeight(This,DestinationHeight) (This)->lpVtbl->put_DestinationHeight(This,DestinationHeight)
-#define IBasicVideo_get_DestinationHeight(This,pDestinationHeight) (This)->lpVtbl->get_DestinationHeight(This,pDestinationHeight)
-#define IBasicVideo_SetSourcePosition(This,Left,Top,Width,Height) (This)->lpVtbl->SetSourcePosition(This,Left,Top,Width,Height)
-#define IBasicVideo_GetSourcePosition(This,pLeft,pTop,pWidth,pHeight) (This)->lpVtbl->GetSourcePosition(This,pLeft,pTop,pWidth,pHeight)
-#define IBasicVideo_SetDefaultSourcePosition(This) (This)->lpVtbl->SetDefaultSourcePosition(This)
-#define IBasicVideo_SetDestinationPosition(This,Left,Top,Width,Height) (This)->lpVtbl->SetDestinationPosition(This,Left,Top,Width,Height)
-#define IBasicVideo_GetDestinationPosition(This,pLeft,pTop,pWidth,pHeight) (This)->lpVtbl->GetDestinationPosition(This,pLeft,pTop,pWidth,pHeight)
-#define IBasicVideo_SetDefaultDestinationPosition(This) (This)->lpVtbl->SetDefaultDestinationPosition(This)
-#define IBasicVideo_GetVideoSize(This,pWidth,pHeight) (This)->lpVtbl->GetVideoSize(This,pWidth,pHeight)
-#define IBasicVideo_GetVideoPaletteEntries(This,StartIndex,Entries,pRetrieved,pPalette) (This)->lpVtbl->GetVideoPaletteEntries(This,StartIndex,Entries,pRetrieved,pPalette)
-#define IBasicVideo_GetCurrentImage(This,pBufferSize,pDIBImage) (This)->lpVtbl->GetCurrentImage(This,pBufferSize,pDIBImage)
-#define IBasicVideo_IsUsingDefaultSource(This) (This)->lpVtbl->IsUsingDefaultSource(This)
-#define IBasicVideo_IsUsingDefaultDestination(This) (This)->lpVtbl->IsUsingDefaultDestination(This)
-#endif
-#endif
-  HRESULT WINAPI IBasicVideo_get_AvgTimePerFrame_Proxy(IBasicVideo *This,REFTIME *pAvgTimePerFrame);
-  void __RPC_STUB IBasicVideo_get_AvgTimePerFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_get_BitRate_Proxy(IBasicVideo *This,long *pBitRate);
-  void __RPC_STUB IBasicVideo_get_BitRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_get_BitErrorRate_Proxy(IBasicVideo *This,long *pBitErrorRate);
-  void __RPC_STUB IBasicVideo_get_BitErrorRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_get_VideoWidth_Proxy(IBasicVideo *This,long *pVideoWidth);
-  void __RPC_STUB IBasicVideo_get_VideoWidth_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_get_VideoHeight_Proxy(IBasicVideo *This,long *pVideoHeight);
-  void __RPC_STUB IBasicVideo_get_VideoHeight_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_put_SourceLeft_Proxy(IBasicVideo *This,long SourceLeft);
-  void __RPC_STUB IBasicVideo_put_SourceLeft_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_get_SourceLeft_Proxy(IBasicVideo *This,long *pSourceLeft);
-  void __RPC_STUB IBasicVideo_get_SourceLeft_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_put_SourceWidth_Proxy(IBasicVideo *This,long SourceWidth);
-  void __RPC_STUB IBasicVideo_put_SourceWidth_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_get_SourceWidth_Proxy(IBasicVideo *This,long *pSourceWidth);
-  void __RPC_STUB IBasicVideo_get_SourceWidth_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_put_SourceTop_Proxy(IBasicVideo *This,long SourceTop);
-  void __RPC_STUB IBasicVideo_put_SourceTop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_get_SourceTop_Proxy(IBasicVideo *This,long *pSourceTop);
-  void __RPC_STUB IBasicVideo_get_SourceTop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_put_SourceHeight_Proxy(IBasicVideo *This,long SourceHeight);
-  void __RPC_STUB IBasicVideo_put_SourceHeight_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_get_SourceHeight_Proxy(IBasicVideo *This,long *pSourceHeight);
-  void __RPC_STUB IBasicVideo_get_SourceHeight_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_put_DestinationLeft_Proxy(IBasicVideo *This,long DestinationLeft);
-  void __RPC_STUB IBasicVideo_put_DestinationLeft_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_get_DestinationLeft_Proxy(IBasicVideo *This,long *pDestinationLeft);
-  void __RPC_STUB IBasicVideo_get_DestinationLeft_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_put_DestinationWidth_Proxy(IBasicVideo *This,long DestinationWidth);
-  void __RPC_STUB IBasicVideo_put_DestinationWidth_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_get_DestinationWidth_Proxy(IBasicVideo *This,long *pDestinationWidth);
-  void __RPC_STUB IBasicVideo_get_DestinationWidth_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_put_DestinationTop_Proxy(IBasicVideo *This,long DestinationTop);
-  void __RPC_STUB IBasicVideo_put_DestinationTop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_get_DestinationTop_Proxy(IBasicVideo *This,long *pDestinationTop);
-  void __RPC_STUB IBasicVideo_get_DestinationTop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_put_DestinationHeight_Proxy(IBasicVideo *This,long DestinationHeight);
-  void __RPC_STUB IBasicVideo_put_DestinationHeight_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_get_DestinationHeight_Proxy(IBasicVideo *This,long *pDestinationHeight);
-  void __RPC_STUB IBasicVideo_get_DestinationHeight_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_SetSourcePosition_Proxy(IBasicVideo *This,long Left,long Top,long Width,long Height);
-  void __RPC_STUB IBasicVideo_SetSourcePosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_GetSourcePosition_Proxy(IBasicVideo *This,long *pLeft,long *pTop,long *pWidth,long *pHeight);
-  void __RPC_STUB IBasicVideo_GetSourcePosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_SetDefaultSourcePosition_Proxy(IBasicVideo *This);
-  void __RPC_STUB IBasicVideo_SetDefaultSourcePosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_SetDestinationPosition_Proxy(IBasicVideo *This,long Left,long Top,long Width,long Height);
-  void __RPC_STUB IBasicVideo_SetDestinationPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_GetDestinationPosition_Proxy(IBasicVideo *This,long *pLeft,long *pTop,long *pWidth,long *pHeight);
-  void __RPC_STUB IBasicVideo_GetDestinationPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_SetDefaultDestinationPosition_Proxy(IBasicVideo *This);
-  void __RPC_STUB IBasicVideo_SetDefaultDestinationPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_GetVideoSize_Proxy(IBasicVideo *This,long *pWidth,long *pHeight);
-  void __RPC_STUB IBasicVideo_GetVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_GetVideoPaletteEntries_Proxy(IBasicVideo *This,long StartIndex,long Entries,long *pRetrieved,long *pPalette);
-  void __RPC_STUB IBasicVideo_GetVideoPaletteEntries_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_GetCurrentImage_Proxy(IBasicVideo *This,long *pBufferSize,long *pDIBImage);
-  void __RPC_STUB IBasicVideo_GetCurrentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_IsUsingDefaultSource_Proxy(IBasicVideo *This);
-  void __RPC_STUB IBasicVideo_IsUsingDefaultSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBasicVideo_IsUsingDefaultDestination_Proxy(IBasicVideo *This);
-  void __RPC_STUB IBasicVideo_IsUsingDefaultDestination_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IBasicVideo2_INTERFACE_DEFINED__
-#define __IBasicVideo2_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IBasicVideo2,0x329bb360,0xf6ea,0x11d1,0x90,0x38,0x00,0xa0,0xc9,0x69,0x72,0x98);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IBasicVideo2 : public IBasicVideo {
-  public:
-    virtual HRESULT WINAPI GetPreferredAspectRatio(long *plAspectX,long *plAspectY) = 0;
-  };
-#else
-  typedef struct IBasicVideo2Vtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IBasicVideo2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IBasicVideo2 *This);
-      ULONG (WINAPI *Release)(IBasicVideo2 *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IBasicVideo2 *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IBasicVideo2 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IBasicVideo2 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IBasicVideo2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_AvgTimePerFrame)(IBasicVideo2 *This,REFTIME *pAvgTimePerFrame);
-      HRESULT (WINAPI *get_BitRate)(IBasicVideo2 *This,long *pBitRate);
-      HRESULT (WINAPI *get_BitErrorRate)(IBasicVideo2 *This,long *pBitErrorRate);
-      HRESULT (WINAPI *get_VideoWidth)(IBasicVideo2 *This,long *pVideoWidth);
-      HRESULT (WINAPI *get_VideoHeight)(IBasicVideo2 *This,long *pVideoHeight);
-      HRESULT (WINAPI *put_SourceLeft)(IBasicVideo2 *This,long SourceLeft);
-      HRESULT (WINAPI *get_SourceLeft)(IBasicVideo2 *This,long *pSourceLeft);
-      HRESULT (WINAPI *put_SourceWidth)(IBasicVideo2 *This,long SourceWidth);
-      HRESULT (WINAPI *get_SourceWidth)(IBasicVideo2 *This,long *pSourceWidth);
-      HRESULT (WINAPI *put_SourceTop)(IBasicVideo2 *This,long SourceTop);
-      HRESULT (WINAPI *get_SourceTop)(IBasicVideo2 *This,long *pSourceTop);
-      HRESULT (WINAPI *put_SourceHeight)(IBasicVideo2 *This,long SourceHeight);
-      HRESULT (WINAPI *get_SourceHeight)(IBasicVideo2 *This,long *pSourceHeight);
-      HRESULT (WINAPI *put_DestinationLeft)(IBasicVideo2 *This,long DestinationLeft);
-      HRESULT (WINAPI *get_DestinationLeft)(IBasicVideo2 *This,long *pDestinationLeft);
-      HRESULT (WINAPI *put_DestinationWidth)(IBasicVideo2 *This,long DestinationWidth);
-      HRESULT (WINAPI *get_DestinationWidth)(IBasicVideo2 *This,long *pDestinationWidth);
-      HRESULT (WINAPI *put_DestinationTop)(IBasicVideo2 *This,long DestinationTop);
-      HRESULT (WINAPI *get_DestinationTop)(IBasicVideo2 *This,long *pDestinationTop);
-      HRESULT (WINAPI *put_DestinationHeight)(IBasicVideo2 *This,long DestinationHeight);
-      HRESULT (WINAPI *get_DestinationHeight)(IBasicVideo2 *This,long *pDestinationHeight);
-      HRESULT (WINAPI *SetSourcePosition)(IBasicVideo2 *This,long Left,long Top,long Width,long Height);
-      HRESULT (WINAPI *GetSourcePosition)(IBasicVideo2 *This,long *pLeft,long *pTop,long *pWidth,long *pHeight);
-      HRESULT (WINAPI *SetDefaultSourcePosition)(IBasicVideo2 *This);
-      HRESULT (WINAPI *SetDestinationPosition)(IBasicVideo2 *This,long Left,long Top,long Width,long Height);
-      HRESULT (WINAPI *GetDestinationPosition)(IBasicVideo2 *This,long *pLeft,long *pTop,long *pWidth,long *pHeight);
-      HRESULT (WINAPI *SetDefaultDestinationPosition)(IBasicVideo2 *This);
-      HRESULT (WINAPI *GetVideoSize)(IBasicVideo2 *This,long *pWidth,long *pHeight);
-      HRESULT (WINAPI *GetVideoPaletteEntries)(IBasicVideo2 *This,long StartIndex,long Entries,long *pRetrieved,long *pPalette);
-      HRESULT (WINAPI *GetCurrentImage)(IBasicVideo2 *This,long *pBufferSize,long *pDIBImage);
-      HRESULT (WINAPI *IsUsingDefaultSource)(IBasicVideo2 *This);
-      HRESULT (WINAPI *IsUsingDefaultDestination)(IBasicVideo2 *This);
-      HRESULT (WINAPI *GetPreferredAspectRatio)(IBasicVideo2 *This,long *plAspectX,long *plAspectY);
-    END_INTERFACE
-  } IBasicVideo2Vtbl;
-  struct IBasicVideo2 {
-    CONST_VTBL struct IBasicVideo2Vtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IBasicVideo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IBasicVideo2_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IBasicVideo2_Release(This) (This)->lpVtbl->Release(This)
-#define IBasicVideo2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IBasicVideo2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IBasicVideo2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IBasicVideo2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IBasicVideo2_get_AvgTimePerFrame(This,pAvgTimePerFrame) (This)->lpVtbl->get_AvgTimePerFrame(This,pAvgTimePerFrame)
-#define IBasicVideo2_get_BitRate(This,pBitRate) (This)->lpVtbl->get_BitRate(This,pBitRate)
-#define IBasicVideo2_get_BitErrorRate(This,pBitErrorRate) (This)->lpVtbl->get_BitErrorRate(This,pBitErrorRate)
-#define IBasicVideo2_get_VideoWidth(This,pVideoWidth) (This)->lpVtbl->get_VideoWidth(This,pVideoWidth)
-#define IBasicVideo2_get_VideoHeight(This,pVideoHeight) (This)->lpVtbl->get_VideoHeight(This,pVideoHeight)
-#define IBasicVideo2_put_SourceLeft(This,SourceLeft) (This)->lpVtbl->put_SourceLeft(This,SourceLeft)
-#define IBasicVideo2_get_SourceLeft(This,pSourceLeft) (This)->lpVtbl->get_SourceLeft(This,pSourceLeft)
-#define IBasicVideo2_put_SourceWidth(This,SourceWidth) (This)->lpVtbl->put_SourceWidth(This,SourceWidth)
-#define IBasicVideo2_get_SourceWidth(This,pSourceWidth) (This)->lpVtbl->get_SourceWidth(This,pSourceWidth)
-#define IBasicVideo2_put_SourceTop(This,SourceTop) (This)->lpVtbl->put_SourceTop(This,SourceTop)
-#define IBasicVideo2_get_SourceTop(This,pSourceTop) (This)->lpVtbl->get_SourceTop(This,pSourceTop)
-#define IBasicVideo2_put_SourceHeight(This,SourceHeight) (This)->lpVtbl->put_SourceHeight(This,SourceHeight)
-#define IBasicVideo2_get_SourceHeight(This,pSourceHeight) (This)->lpVtbl->get_SourceHeight(This,pSourceHeight)
-#define IBasicVideo2_put_DestinationLeft(This,DestinationLeft) (This)->lpVtbl->put_DestinationLeft(This,DestinationLeft)
-#define IBasicVideo2_get_DestinationLeft(This,pDestinationLeft) (This)->lpVtbl->get_DestinationLeft(This,pDestinationLeft)
-#define IBasicVideo2_put_DestinationWidth(This,DestinationWidth) (This)->lpVtbl->put_DestinationWidth(This,DestinationWidth)
-#define IBasicVideo2_get_DestinationWidth(This,pDestinationWidth) (This)->lpVtbl->get_DestinationWidth(This,pDestinationWidth)
-#define IBasicVideo2_put_DestinationTop(This,DestinationTop) (This)->lpVtbl->put_DestinationTop(This,DestinationTop)
-#define IBasicVideo2_get_DestinationTop(This,pDestinationTop) (This)->lpVtbl->get_DestinationTop(This,pDestinationTop)
-#define IBasicVideo2_put_DestinationHeight(This,DestinationHeight) (This)->lpVtbl->put_DestinationHeight(This,DestinationHeight)
-#define IBasicVideo2_get_DestinationHeight(This,pDestinationHeight) (This)->lpVtbl->get_DestinationHeight(This,pDestinationHeight)
-#define IBasicVideo2_SetSourcePosition(This,Left,Top,Width,Height) (This)->lpVtbl->SetSourcePosition(This,Left,Top,Width,Height)
-#define IBasicVideo2_GetSourcePosition(This,pLeft,pTop,pWidth,pHeight) (This)->lpVtbl->GetSourcePosition(This,pLeft,pTop,pWidth,pHeight)
-#define IBasicVideo2_SetDefaultSourcePosition(This) (This)->lpVtbl->SetDefaultSourcePosition(This)
-#define IBasicVideo2_SetDestinationPosition(This,Left,Top,Width,Height) (This)->lpVtbl->SetDestinationPosition(This,Left,Top,Width,Height)
-#define IBasicVideo2_GetDestinationPosition(This,pLeft,pTop,pWidth,pHeight) (This)->lpVtbl->GetDestinationPosition(This,pLeft,pTop,pWidth,pHeight)
-#define IBasicVideo2_SetDefaultDestinationPosition(This) (This)->lpVtbl->SetDefaultDestinationPosition(This)
-#define IBasicVideo2_GetVideoSize(This,pWidth,pHeight) (This)->lpVtbl->GetVideoSize(This,pWidth,pHeight)
-#define IBasicVideo2_GetVideoPaletteEntries(This,StartIndex,Entries,pRetrieved,pPalette) (This)->lpVtbl->GetVideoPaletteEntries(This,StartIndex,Entries,pRetrieved,pPalette)
-#define IBasicVideo2_GetCurrentImage(This,pBufferSize,pDIBImage) (This)->lpVtbl->GetCurrentImage(This,pBufferSize,pDIBImage)
-#define IBasicVideo2_IsUsingDefaultSource(This) (This)->lpVtbl->IsUsingDefaultSource(This)
-#define IBasicVideo2_IsUsingDefaultDestination(This) (This)->lpVtbl->IsUsingDefaultDestination(This)
-#define IBasicVideo2_GetPreferredAspectRatio(This,plAspectX,plAspectY) (This)->lpVtbl->GetPreferredAspectRatio(This,plAspectX,plAspectY)
-#endif
-#endif
-  HRESULT WINAPI IBasicVideo2_GetPreferredAspectRatio_Proxy(IBasicVideo2 *This,long *plAspectX,long *plAspectY);
-  void __RPC_STUB IBasicVideo2_GetPreferredAspectRatio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IDeferredCommand_INTERFACE_DEFINED__
-#define __IDeferredCommand_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IDeferredCommand,0x56a868b8,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDeferredCommand : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Cancel(void) = 0;
-    virtual HRESULT WINAPI Confidence(LONG *pConfidence) = 0;
-    virtual HRESULT WINAPI Postpone(REFTIME newtime) = 0;
-    virtual HRESULT WINAPI GetHResult(HRESULT *phrResult) = 0;
-  };
-#else
-  typedef struct IDeferredCommandVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDeferredCommand *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDeferredCommand *This);
-      ULONG (WINAPI *Release)(IDeferredCommand *This);
-      HRESULT (WINAPI *Cancel)(IDeferredCommand *This);
-      HRESULT (WINAPI *Confidence)(IDeferredCommand *This,LONG *pConfidence);
-      HRESULT (WINAPI *Postpone)(IDeferredCommand *This,REFTIME newtime);
-      HRESULT (WINAPI *GetHResult)(IDeferredCommand *This,HRESULT *phrResult);
-    END_INTERFACE
-  } IDeferredCommandVtbl;
-  struct IDeferredCommand {
-    CONST_VTBL struct IDeferredCommandVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDeferredCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDeferredCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDeferredCommand_Release(This) (This)->lpVtbl->Release(This)
-#define IDeferredCommand_Cancel(This) (This)->lpVtbl->Cancel(This)
-#define IDeferredCommand_Confidence(This,pConfidence) (This)->lpVtbl->Confidence(This,pConfidence)
-#define IDeferredCommand_Postpone(This,newtime) (This)->lpVtbl->Postpone(This,newtime)
-#define IDeferredCommand_GetHResult(This,phrResult) (This)->lpVtbl->GetHResult(This,phrResult)
-#endif
-#endif
-  HRESULT WINAPI IDeferredCommand_Cancel_Proxy(IDeferredCommand *This);
-  void __RPC_STUB IDeferredCommand_Cancel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDeferredCommand_Confidence_Proxy(IDeferredCommand *This,LONG *pConfidence);
-  void __RPC_STUB IDeferredCommand_Confidence_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDeferredCommand_Postpone_Proxy(IDeferredCommand *This,REFTIME newtime);
-  void __RPC_STUB IDeferredCommand_Postpone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDeferredCommand_GetHResult_Proxy(IDeferredCommand *This,HRESULT *phrResult);
-  void __RPC_STUB IDeferredCommand_GetHResult_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IQueueCommand_INTERFACE_DEFINED__
-#define __IQueueCommand_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IQueueCommand,0x56a868b7,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IQueueCommand : public IUnknown {
-  public:
-    virtual HRESULT WINAPI InvokeAtStreamTime(IDeferredCommand **pCmd,REFTIME time,GUID *iid,long dispidMethod,short wFlags,long cArgs,VARIANT *pDispParams,VARIANT *pvarResult,short *puArgErr) = 0;
-    virtual HRESULT WINAPI InvokeAtPresentationTime(IDeferredCommand **pCmd,REFTIME time,GUID *iid,long dispidMethod,short wFlags,long cArgs,VARIANT *pDispParams,VARIANT *pvarResult,short *puArgErr) = 0;
-  };
-#else
-  typedef struct IQueueCommandVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IQueueCommand *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IQueueCommand *This);
-      ULONG (WINAPI *Release)(IQueueCommand *This);
-      HRESULT (WINAPI *InvokeAtStreamTime)(IQueueCommand *This,IDeferredCommand **pCmd,REFTIME time,GUID *iid,long dispidMethod,short wFlags,long cArgs,VARIANT *pDispParams,VARIANT *pvarResult,short *puArgErr);
-      HRESULT (WINAPI *InvokeAtPresentationTime)(IQueueCommand *This,IDeferredCommand **pCmd,REFTIME time,GUID *iid,long dispidMethod,short wFlags,long cArgs,VARIANT *pDispParams,VARIANT *pvarResult,short *puArgErr);
-    END_INTERFACE
-  } IQueueCommandVtbl;
-  struct IQueueCommand {
-    CONST_VTBL struct IQueueCommandVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IQueueCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IQueueCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IQueueCommand_Release(This) (This)->lpVtbl->Release(This)
-#define IQueueCommand_InvokeAtStreamTime(This,pCmd,time,iid,dispidMethod,wFlags,cArgs,pDispParams,pvarResult,puArgErr) (This)->lpVtbl->InvokeAtStreamTime(This,pCmd,time,iid,dispidMethod,wFlags,cArgs,pDispParams,pvarResult,puArgErr)
-#define IQueueCommand_InvokeAtPresentationTime(This,pCmd,time,iid,dispidMethod,wFlags,cArgs,pDispParams,pvarResult,puArgErr) (This)->lpVtbl->InvokeAtPresentationTime(This,pCmd,time,iid,dispidMethod,wFlags,cArgs,pDispParams,pvarResult,puArgErr)
-#endif
-#endif
-  HRESULT WINAPI IQueueCommand_InvokeAtStreamTime_Proxy(IQueueCommand *This,IDeferredCommand **pCmd,REFTIME time,GUID *iid,long dispidMethod,short wFlags,long cArgs,VARIANT *pDispParams,VARIANT *pvarResult,short *puArgErr);
-  void __RPC_STUB IQueueCommand_InvokeAtStreamTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IQueueCommand_InvokeAtPresentationTime_Proxy(IQueueCommand *This,IDeferredCommand **pCmd,REFTIME time,GUID *iid,long dispidMethod,short wFlags,long cArgs,VARIANT *pDispParams,VARIANT *pvarResult,short *puArgErr);
-  void __RPC_STUB IQueueCommand_InvokeAtPresentationTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  DEFINE_GUID(CLSID_FilgraphManager,0xe436ebb3,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#ifdef __cplusplus
-  class FilgraphManager;
-#endif
-
-#ifndef __IFilterInfo_INTERFACE_DEFINED__
-#define __IFilterInfo_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IFilterInfo,0x56a868ba,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IFilterInfo : public IDispatch {
-  public:
-    virtual HRESULT WINAPI FindPin(BSTR strPinID,IDispatch **ppUnk) = 0;
-    virtual HRESULT WINAPI get_Name(BSTR *strName) = 0;
-    virtual HRESULT WINAPI get_VendorInfo(BSTR *strVendorInfo) = 0;
-    virtual HRESULT WINAPI get_Filter(IUnknown **ppUnk) = 0;
-    virtual HRESULT WINAPI get_Pins(IDispatch **ppUnk) = 0;
-    virtual HRESULT WINAPI get_IsFileSource(LONG *pbIsSource) = 0;
-    virtual HRESULT WINAPI get_Filename(BSTR *pstrFilename) = 0;
-    virtual HRESULT WINAPI put_Filename(BSTR strFilename) = 0;
-  };
-#else
-  typedef struct IFilterInfoVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IFilterInfo *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IFilterInfo *This);
-      ULONG (WINAPI *Release)(IFilterInfo *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IFilterInfo *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IFilterInfo *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IFilterInfo *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IFilterInfo *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *FindPin)(IFilterInfo *This,BSTR strPinID,IDispatch **ppUnk);
-      HRESULT (WINAPI *get_Name)(IFilterInfo *This,BSTR *strName);
-      HRESULT (WINAPI *get_VendorInfo)(IFilterInfo *This,BSTR *strVendorInfo);
-      HRESULT (WINAPI *get_Filter)(IFilterInfo *This,IUnknown **ppUnk);
-      HRESULT (WINAPI *get_Pins)(IFilterInfo *This,IDispatch **ppUnk);
-      HRESULT (WINAPI *get_IsFileSource)(IFilterInfo *This,LONG *pbIsSource);
-      HRESULT (WINAPI *get_Filename)(IFilterInfo *This,BSTR *pstrFilename);
-      HRESULT (WINAPI *put_Filename)(IFilterInfo *This,BSTR strFilename);
-    END_INTERFACE
-  } IFilterInfoVtbl;
-  struct IFilterInfo {
-    CONST_VTBL struct IFilterInfoVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IFilterInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFilterInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFilterInfo_Release(This) (This)->lpVtbl->Release(This)
-#define IFilterInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFilterInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFilterInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFilterInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFilterInfo_FindPin(This,strPinID,ppUnk) (This)->lpVtbl->FindPin(This,strPinID,ppUnk)
-#define IFilterInfo_get_Name(This,strName) (This)->lpVtbl->get_Name(This,strName)
-#define IFilterInfo_get_VendorInfo(This,strVendorInfo) (This)->lpVtbl->get_VendorInfo(This,strVendorInfo)
-#define IFilterInfo_get_Filter(This,ppUnk) (This)->lpVtbl->get_Filter(This,ppUnk)
-#define IFilterInfo_get_Pins(This,ppUnk) (This)->lpVtbl->get_Pins(This,ppUnk)
-#define IFilterInfo_get_IsFileSource(This,pbIsSource) (This)->lpVtbl->get_IsFileSource(This,pbIsSource)
-#define IFilterInfo_get_Filename(This,pstrFilename) (This)->lpVtbl->get_Filename(This,pstrFilename)
-#define IFilterInfo_put_Filename(This,strFilename) (This)->lpVtbl->put_Filename(This,strFilename)
-#endif
-#endif
-  HRESULT WINAPI IFilterInfo_FindPin_Proxy(IFilterInfo *This,BSTR strPinID,IDispatch **ppUnk);
-  void __RPC_STUB IFilterInfo_FindPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterInfo_get_Name_Proxy(IFilterInfo *This,BSTR *strName);
-  void __RPC_STUB IFilterInfo_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterInfo_get_VendorInfo_Proxy(IFilterInfo *This,BSTR *strVendorInfo);
-  void __RPC_STUB IFilterInfo_get_VendorInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterInfo_get_Filter_Proxy(IFilterInfo *This,IUnknown **ppUnk);
-  void __RPC_STUB IFilterInfo_get_Filter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterInfo_get_Pins_Proxy(IFilterInfo *This,IDispatch **ppUnk);
-  void __RPC_STUB IFilterInfo_get_Pins_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterInfo_get_IsFileSource_Proxy(IFilterInfo *This,LONG *pbIsSource);
-  void __RPC_STUB IFilterInfo_get_IsFileSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterInfo_get_Filename_Proxy(IFilterInfo *This,BSTR *pstrFilename);
-  void __RPC_STUB IFilterInfo_get_Filename_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterInfo_put_Filename_Proxy(IFilterInfo *This,BSTR strFilename);
-  void __RPC_STUB IFilterInfo_put_Filename_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IRegFilterInfo_INTERFACE_DEFINED__
-#define __IRegFilterInfo_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IRegFilterInfo,0x56a868bb,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IRegFilterInfo : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Name(BSTR *strName) = 0;
-    virtual HRESULT WINAPI Filter(IDispatch **ppUnk) = 0;
-  };
-#else
-  typedef struct IRegFilterInfoVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IRegFilterInfo *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IRegFilterInfo *This);
-      ULONG (WINAPI *Release)(IRegFilterInfo *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IRegFilterInfo *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IRegFilterInfo *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IRegFilterInfo *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IRegFilterInfo *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Name)(IRegFilterInfo *This,BSTR *strName);
-      HRESULT (WINAPI *Filter)(IRegFilterInfo *This,IDispatch **ppUnk);
-    END_INTERFACE
-  } IRegFilterInfoVtbl;
-  struct IRegFilterInfo {
-    CONST_VTBL struct IRegFilterInfoVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IRegFilterInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IRegFilterInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IRegFilterInfo_Release(This) (This)->lpVtbl->Release(This)
-#define IRegFilterInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IRegFilterInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IRegFilterInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IRegFilterInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IRegFilterInfo_get_Name(This,strName) (This)->lpVtbl->get_Name(This,strName)
-#define IRegFilterInfo_Filter(This,ppUnk) (This)->lpVtbl->Filter(This,ppUnk)
-#endif
-#endif
-  HRESULT WINAPI IRegFilterInfo_get_Name_Proxy(IRegFilterInfo *This,BSTR *strName);
-  void __RPC_STUB IRegFilterInfo_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IRegFilterInfo_Filter_Proxy(IRegFilterInfo *This,IDispatch **ppUnk);
-  void __RPC_STUB IRegFilterInfo_Filter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IMediaTypeInfo_INTERFACE_DEFINED__
-#define __IMediaTypeInfo_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IMediaTypeInfo,0x56a868bc,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMediaTypeInfo : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Type(BSTR *strType) = 0;
-    virtual HRESULT WINAPI get_Subtype(BSTR *strType) = 0;
-  };
-#else
-  typedef struct IMediaTypeInfoVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMediaTypeInfo *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMediaTypeInfo *This);
-      ULONG (WINAPI *Release)(IMediaTypeInfo *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IMediaTypeInfo *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IMediaTypeInfo *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IMediaTypeInfo *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IMediaTypeInfo *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Type)(IMediaTypeInfo *This,BSTR *strType);
-      HRESULT (WINAPI *get_Subtype)(IMediaTypeInfo *This,BSTR *strType);
-    END_INTERFACE
-  } IMediaTypeInfoVtbl;
-  struct IMediaTypeInfo {
-    CONST_VTBL struct IMediaTypeInfoVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMediaTypeInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMediaTypeInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMediaTypeInfo_Release(This) (This)->lpVtbl->Release(This)
-#define IMediaTypeInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IMediaTypeInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IMediaTypeInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IMediaTypeInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IMediaTypeInfo_get_Type(This,strType) (This)->lpVtbl->get_Type(This,strType)
-#define IMediaTypeInfo_get_Subtype(This,strType) (This)->lpVtbl->get_Subtype(This,strType)
-#endif
-#endif
-  HRESULT WINAPI IMediaTypeInfo_get_Type_Proxy(IMediaTypeInfo *This,BSTR *strType);
-  void __RPC_STUB IMediaTypeInfo_get_Type_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaTypeInfo_get_Subtype_Proxy(IMediaTypeInfo *This,BSTR *strType);
-  void __RPC_STUB IMediaTypeInfo_get_Subtype_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IPinInfo_INTERFACE_DEFINED__
-#define __IPinInfo_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IPinInfo,0x56a868bd,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IPinInfo : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Pin(IUnknown **ppUnk) = 0;
-    virtual HRESULT WINAPI get_ConnectedTo(IDispatch **ppUnk) = 0;
-    virtual HRESULT WINAPI get_ConnectionMediaType(IDispatch **ppUnk) = 0;
-    virtual HRESULT WINAPI get_FilterInfo(IDispatch **ppUnk) = 0;
-    virtual HRESULT WINAPI get_Name(BSTR *ppUnk) = 0;
-    virtual HRESULT WINAPI get_Direction(LONG *ppDirection) = 0;
-    virtual HRESULT WINAPI get_PinID(BSTR *strPinID) = 0;
-    virtual HRESULT WINAPI get_MediaTypes(IDispatch **ppUnk) = 0;
-    virtual HRESULT WINAPI Connect(IUnknown *pPin) = 0;
-    virtual HRESULT WINAPI ConnectDirect(IUnknown *pPin) = 0;
-    virtual HRESULT WINAPI ConnectWithType(IUnknown *pPin,IDispatch *pMediaType) = 0;
-    virtual HRESULT WINAPI Disconnect(void) = 0;
-    virtual HRESULT WINAPI Render(void) = 0;
-  };
-#else
-  typedef struct IPinInfoVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IPinInfo *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IPinInfo *This);
-      ULONG (WINAPI *Release)(IPinInfo *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IPinInfo *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IPinInfo *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IPinInfo *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IPinInfo *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Pin)(IPinInfo *This,IUnknown **ppUnk);
-      HRESULT (WINAPI *get_ConnectedTo)(IPinInfo *This,IDispatch **ppUnk);
-      HRESULT (WINAPI *get_ConnectionMediaType)(IPinInfo *This,IDispatch **ppUnk);
-      HRESULT (WINAPI *get_FilterInfo)(IPinInfo *This,IDispatch **ppUnk);
-      HRESULT (WINAPI *get_Name)(IPinInfo *This,BSTR *ppUnk);
-      HRESULT (WINAPI *get_Direction)(IPinInfo *This,LONG *ppDirection);
-      HRESULT (WINAPI *get_PinID)(IPinInfo *This,BSTR *strPinID);
-      HRESULT (WINAPI *get_MediaTypes)(IPinInfo *This,IDispatch **ppUnk);
-      HRESULT (WINAPI *Connect)(IPinInfo *This,IUnknown *pPin);
-      HRESULT (WINAPI *ConnectDirect)(IPinInfo *This,IUnknown *pPin);
-      HRESULT (WINAPI *ConnectWithType)(IPinInfo *This,IUnknown *pPin,IDispatch *pMediaType);
-      HRESULT (WINAPI *Disconnect)(IPinInfo *This);
-      HRESULT (WINAPI *Render)(IPinInfo *This);
-    END_INTERFACE
-  } IPinInfoVtbl;
-  struct IPinInfo {
-    CONST_VTBL struct IPinInfoVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IPinInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IPinInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IPinInfo_Release(This) (This)->lpVtbl->Release(This)
-#define IPinInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IPinInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IPinInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IPinInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IPinInfo_get_Pin(This,ppUnk) (This)->lpVtbl->get_Pin(This,ppUnk)
-#define IPinInfo_get_ConnectedTo(This,ppUnk) (This)->lpVtbl->get_ConnectedTo(This,ppUnk)
-#define IPinInfo_get_ConnectionMediaType(This,ppUnk) (This)->lpVtbl->get_ConnectionMediaType(This,ppUnk)
-#define IPinInfo_get_FilterInfo(This,ppUnk) (This)->lpVtbl->get_FilterInfo(This,ppUnk)
-#define IPinInfo_get_Name(This,ppUnk) (This)->lpVtbl->get_Name(This,ppUnk)
-#define IPinInfo_get_Direction(This,ppDirection) (This)->lpVtbl->get_Direction(This,ppDirection)
-#define IPinInfo_get_PinID(This,strPinID) (This)->lpVtbl->get_PinID(This,strPinID)
-#define IPinInfo_get_MediaTypes(This,ppUnk) (This)->lpVtbl->get_MediaTypes(This,ppUnk)
-#define IPinInfo_Connect(This,pPin) (This)->lpVtbl->Connect(This,pPin)
-#define IPinInfo_ConnectDirect(This,pPin) (This)->lpVtbl->ConnectDirect(This,pPin)
-#define IPinInfo_ConnectWithType(This,pPin,pMediaType) (This)->lpVtbl->ConnectWithType(This,pPin,pMediaType)
-#define IPinInfo_Disconnect(This) (This)->lpVtbl->Disconnect(This)
-#define IPinInfo_Render(This) (This)->lpVtbl->Render(This)
-#endif
-#endif
-  HRESULT WINAPI IPinInfo_get_Pin_Proxy(IPinInfo *This,IUnknown **ppUnk);
-  void __RPC_STUB IPinInfo_get_Pin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinInfo_get_ConnectedTo_Proxy(IPinInfo *This,IDispatch **ppUnk);
-  void __RPC_STUB IPinInfo_get_ConnectedTo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinInfo_get_ConnectionMediaType_Proxy(IPinInfo *This,IDispatch **ppUnk);
-  void __RPC_STUB IPinInfo_get_ConnectionMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinInfo_get_FilterInfo_Proxy(IPinInfo *This,IDispatch **ppUnk);
-  void __RPC_STUB IPinInfo_get_FilterInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinInfo_get_Name_Proxy(IPinInfo *This,BSTR *ppUnk);
-  void __RPC_STUB IPinInfo_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinInfo_get_Direction_Proxy(IPinInfo *This,LONG *ppDirection);
-  void __RPC_STUB IPinInfo_get_Direction_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinInfo_get_PinID_Proxy(IPinInfo *This,BSTR *strPinID);
-  void __RPC_STUB IPinInfo_get_PinID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinInfo_get_MediaTypes_Proxy(IPinInfo *This,IDispatch **ppUnk);
-  void __RPC_STUB IPinInfo_get_MediaTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinInfo_Connect_Proxy(IPinInfo *This,IUnknown *pPin);
-  void __RPC_STUB IPinInfo_Connect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinInfo_ConnectDirect_Proxy(IPinInfo *This,IUnknown *pPin);
-  void __RPC_STUB IPinInfo_ConnectDirect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinInfo_ConnectWithType_Proxy(IPinInfo *This,IUnknown *pPin,IDispatch *pMediaType);
-  void __RPC_STUB IPinInfo_ConnectWithType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinInfo_Disconnect_Proxy(IPinInfo *This);
-  void __RPC_STUB IPinInfo_Disconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinInfo_Render_Proxy(IPinInfo *This);
-  void __RPC_STUB IPinInfo_Render_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMStats_INTERFACE_DEFINED__
-#define __IAMStats_INTERFACE_DEFINED__
-  DEFINE_GUID(IID_IAMStats,0xbc9bcf80,0xdcd2,0x11d2,0xab,0xf6,0x00,0xa0,0xc9,0x05,0xf3,0x75);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMStats : public IDispatch {
-  public:
-    virtual HRESULT WINAPI Reset(void) = 0;
-    virtual HRESULT WINAPI get_Count(LONG *plCount) = 0;
-    virtual HRESULT WINAPI GetValueByIndex(long lIndex,BSTR *szName,long *lCount,double *dLast,double *dAverage,double *dStdDev,double *dMin,double *dMax) = 0;
-    virtual HRESULT WINAPI GetValueByName(BSTR szName,long *lIndex,long *lCount,double *dLast,double *dAverage,double *dStdDev,double *dMin,double *dMax) = 0;
-    virtual HRESULT WINAPI GetIndex(BSTR szName,long lCreate,long *plIndex) = 0;
-    virtual HRESULT WINAPI AddValue(long lIndex,double dValue) = 0;
-  };
-#else
-  typedef struct IAMStatsVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMStats *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMStats *This);
-      ULONG (WINAPI *Release)(IAMStats *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IAMStats *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IAMStats *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IAMStats *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IAMStats *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *Reset)(IAMStats *This);
-      HRESULT (WINAPI *get_Count)(IAMStats *This,LONG *plCount);
-      HRESULT (WINAPI *GetValueByIndex)(IAMStats *This,long lIndex,BSTR *szName,long *lCount,double *dLast,double *dAverage,double *dStdDev,double *dMin,double *dMax);
-      HRESULT (WINAPI *GetValueByName)(IAMStats *This,BSTR szName,long *lIndex,long *lCount,double *dLast,double *dAverage,double *dStdDev,double *dMin,double *dMax);
-      HRESULT (WINAPI *GetIndex)(IAMStats *This,BSTR szName,long lCreate,long *plIndex);
-      HRESULT (WINAPI *AddValue)(IAMStats *This,long lIndex,double dValue);
-    END_INTERFACE
-  } IAMStatsVtbl;
-  struct IAMStats {
-    CONST_VTBL struct IAMStatsVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMStats_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMStats_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMStats_Release(This) (This)->lpVtbl->Release(This)
-#define IAMStats_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IAMStats_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IAMStats_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IAMStats_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IAMStats_Reset(This) (This)->lpVtbl->Reset(This)
-#define IAMStats_get_Count(This,plCount) (This)->lpVtbl->get_Count(This,plCount)
-#define IAMStats_GetValueByIndex(This,lIndex,szName,lCount,dLast,dAverage,dStdDev,dMin,dMax) (This)->lpVtbl->GetValueByIndex(This,lIndex,szName,lCount,dLast,dAverage,dStdDev,dMin,dMax)
-#define IAMStats_GetValueByName(This,szName,lIndex,lCount,dLast,dAverage,dStdDev,dMin,dMax) (This)->lpVtbl->GetValueByName(This,szName,lIndex,lCount,dLast,dAverage,dStdDev,dMin,dMax)
-#define IAMStats_GetIndex(This,szName,lCreate,plIndex) (This)->lpVtbl->GetIndex(This,szName,lCreate,plIndex)
-#define IAMStats_AddValue(This,lIndex,dValue) (This)->lpVtbl->AddValue(This,lIndex,dValue)
-#endif
-#endif
-
-  HRESULT WINAPI IAMStats_Reset_Proxy(IAMStats *This);
-  void __RPC_STUB IAMStats_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMStats_get_Count_Proxy(IAMStats *This,LONG *plCount);
-  void __RPC_STUB IAMStats_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMStats_GetValueByIndex_Proxy(IAMStats *This,long lIndex,BSTR *szName,long *lCount,double *dLast,double *dAverage,double *dStdDev,double *dMin,double *dMax);
-  void __RPC_STUB IAMStats_GetValueByIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMStats_GetValueByName_Proxy(IAMStats *This,BSTR szName,long *lIndex,long *lCount,double *dLast,double *dAverage,double *dStdDev,double *dMin,double *dMax);
-  void __RPC_STUB IAMStats_GetValueByName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMStats_GetIndex_Proxy(IAMStats *This,BSTR szName,long lCreate,long *plIndex);
-  void __RPC_STUB IAMStats_GetIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMStats_AddValue_Proxy(IAMStats *This,long lIndex,double dValue);
-  void __RPC_STUB IAMStats_AddValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/3rdparty/include/dshow/ddraw.h b/3rdparty/include/dshow/ddraw.h
deleted file mode 100644
index ffe7d80..0000000
--- a/3rdparty/include/dshow/ddraw.h
+++ /dev/null
@@ -1,2712 +0,0 @@
-/*
- * Copyright (C) the Wine project
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#ifndef __DDRAW_INCLUDED__
-#define __DDRAW_INCLUDED__
-
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-#include <dshow/_mingw_dxhelper.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* defined(__cplusplus) */
-
-#ifndef	DIRECTDRAW_VERSION
-#define	DIRECTDRAW_VERSION	0x0700
-#endif /* DIRECTDRAW_VERSION */
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-#ifndef __DDRAW_GUID_DEFINED__
-DEFINE_GUID( CLSID_DirectDraw,		0xD7B70EE0,0x4340,0x11CF,0xB0,0x63,0x00,0x20,0xAF,0xC2,0xCD,0x35 );
-DEFINE_GUID( CLSID_DirectDraw7,         0x3C305196,0x50DB,0x11D3,0x9C,0xFE,0x00,0xC0,0x4F,0xD9,0x30,0xC5 );
-DEFINE_GUID( CLSID_DirectDrawClipper,	0x593817A0,0x7DB3,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xb9,0x33,0x56 );
-DEFINE_GUID( IID_IDirectDraw,		0x6C14DB80,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
-DEFINE_GUID( IID_IDirectDraw2,		0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 );
-DEFINE_GUID( IID_IDirectDraw3,		0x618f8ad4,0x8b7a,0x11d0,0x8f,0xcc,0x0,0xc0,0x4f,0xd9,0x18,0x9d );
-DEFINE_GUID( IID_IDirectDraw4,          0x9c59509a,0x39bd,0x11d1,0x8c,0x4a,0x00,0xc0,0x4f,0xd9,0x30,0xc5 );
-DEFINE_GUID( IID_IDirectDraw7,          0x15e65ec0,0x3b9c,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b );
-DEFINE_GUID( IID_IDirectDrawSurface,	0x6C14DB81,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
-DEFINE_GUID( IID_IDirectDrawSurface2,	0x57805885,0x6eec,0x11cf,0x94,0x41,0xa8,0x23,0x03,0xc1,0x0e,0x27 );
-DEFINE_GUID( IID_IDirectDrawSurface3,	0xDA044E00,0x69B2,0x11D0,0xA1,0xD5,0x00,0xAA,0x00,0xB8,0xDF,0xBB );
-DEFINE_GUID( IID_IDirectDrawSurface4,   0x0B2B8630,0xAD35,0x11D0,0x8E,0xA6,0x00,0x60,0x97,0x97,0xEA,0x5B );
-DEFINE_GUID( IID_IDirectDrawSurface7,   0x06675a80,0x3b9b,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b );
-DEFINE_GUID( IID_IDirectDrawPalette,	0x6C14DB84,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
-DEFINE_GUID( IID_IDirectDrawClipper,	0x6C14DB85,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
-DEFINE_GUID( IID_IDirectDrawColorControl,0x4B9F0EE0,0x0D7E,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8 );
-DEFINE_GUID( IID_IDirectDrawGammaControl,0x69C11C3E,0xB46B,0x11D1,0xAD,0x7A,0x00,0xC0,0x4F,0xC2,0x9B,0x4E );
-#endif
-
-typedef struct IDirectDraw *LPDIRECTDRAW;
-typedef struct IDirectDraw2 *LPDIRECTDRAW2;
-typedef struct IDirectDraw3 *LPDIRECTDRAW3;
-typedef struct IDirectDraw4 *LPDIRECTDRAW4;
-typedef struct IDirectDraw7 *LPDIRECTDRAW7;
-typedef struct IDirectDrawClipper *LPDIRECTDRAWCLIPPER;
-typedef struct IDirectDrawPalette *LPDIRECTDRAWPALETTE;
-typedef struct IDirectDrawSurface *LPDIRECTDRAWSURFACE;
-typedef struct IDirectDrawSurface2 *LPDIRECTDRAWSURFACE2;
-typedef struct IDirectDrawSurface3 *LPDIRECTDRAWSURFACE3;
-typedef struct IDirectDrawSurface4 *LPDIRECTDRAWSURFACE4;
-typedef struct IDirectDrawSurface7 *LPDIRECTDRAWSURFACE7;
-typedef struct IDirectDrawColorControl *LPDIRECTDRAWCOLORCONTROL;
-typedef struct IDirectDrawGammaControl *LPDIRECTDRAWGAMMACONTROL;
-
-
-#define DDENUMRET_CANCEL	0
-#define DDENUMRET_OK		1
-
-#define DD_OK			S_OK
-#define DD_FALSE		S_FALSE
-
-
-#define _FACDD		0x876
-#define MAKE_DDHRESULT( code )  MAKE_HRESULT( 1, _FACDD, code )
-
-#define DDERR_ALREADYINITIALIZED		MAKE_DDHRESULT( 5 )
-#define DDERR_CANNOTATTACHSURFACE		MAKE_DDHRESULT( 10 )
-#define DDERR_CANNOTDETACHSURFACE		MAKE_DDHRESULT( 20 )
-#define DDERR_CURRENTLYNOTAVAIL			MAKE_DDHRESULT( 40 )
-#define DDERR_EXCEPTION				MAKE_DDHRESULT( 55 )
-#define DDERR_GENERIC				E_FAIL
-#define DDERR_HEIGHTALIGN			MAKE_DDHRESULT( 90 )
-#define DDERR_INCOMPATIBLEPRIMARY		MAKE_DDHRESULT( 95 )
-#define DDERR_INVALIDCAPS			MAKE_DDHRESULT( 100 )
-#define DDERR_INVALIDCLIPLIST			MAKE_DDHRESULT( 110 )
-#define DDERR_INVALIDMODE			MAKE_DDHRESULT( 120 )
-#define DDERR_INVALIDOBJECT			MAKE_DDHRESULT( 130 )
-#define DDERR_INVALIDPARAMS			E_INVALIDARG
-#define DDERR_INVALIDPIXELFORMAT		MAKE_DDHRESULT( 145 )
-#define DDERR_INVALIDRECT			MAKE_DDHRESULT( 150 )
-#define DDERR_LOCKEDSURFACES			MAKE_DDHRESULT( 160 )
-#define DDERR_NO3D				MAKE_DDHRESULT( 170 )
-#define DDERR_NOALPHAHW				MAKE_DDHRESULT( 180 )
-#define DDERR_NOSTEREOHARDWARE          	MAKE_DDHRESULT( 181 )
-#define DDERR_NOSURFACELEFT                     MAKE_DDHRESULT( 182 )
-#define DDERR_NOCLIPLIST			MAKE_DDHRESULT( 205 )
-#define DDERR_NOCOLORCONVHW			MAKE_DDHRESULT( 210 )
-#define DDERR_NOCOOPERATIVELEVELSET		MAKE_DDHRESULT( 212 )
-#define DDERR_NOCOLORKEY			MAKE_DDHRESULT( 215 )
-#define DDERR_NOCOLORKEYHW			MAKE_DDHRESULT( 220 )
-#define DDERR_NODIRECTDRAWSUPPORT		MAKE_DDHRESULT( 222 )
-#define DDERR_NOEXCLUSIVEMODE			MAKE_DDHRESULT( 225 )
-#define DDERR_NOFLIPHW				MAKE_DDHRESULT( 230 )
-#define DDERR_NOGDI				MAKE_DDHRESULT( 240 )
-#define DDERR_NOMIRRORHW			MAKE_DDHRESULT( 250 )
-#define DDERR_NOTFOUND				MAKE_DDHRESULT( 255 )
-#define DDERR_NOOVERLAYHW			MAKE_DDHRESULT( 260 )
-#define DDERR_OVERLAPPINGRECTS                  MAKE_DDHRESULT( 270 )
-#define DDERR_NORASTEROPHW			MAKE_DDHRESULT( 280 )
-#define DDERR_NOROTATIONHW			MAKE_DDHRESULT( 290 )
-#define DDERR_NOSTRETCHHW			MAKE_DDHRESULT( 310 )
-#define DDERR_NOT4BITCOLOR			MAKE_DDHRESULT( 316 )
-#define DDERR_NOT4BITCOLORINDEX			MAKE_DDHRESULT( 317 )
-#define DDERR_NOT8BITCOLOR			MAKE_DDHRESULT( 320 )
-#define DDERR_NOTEXTUREHW			MAKE_DDHRESULT( 330 )
-#define DDERR_NOVSYNCHW				MAKE_DDHRESULT( 335 )
-#define DDERR_NOZBUFFERHW			MAKE_DDHRESULT( 340 )
-#define DDERR_NOZOVERLAYHW			MAKE_DDHRESULT( 350 )
-#define DDERR_OUTOFCAPS				MAKE_DDHRESULT( 360 )
-#define DDERR_OUTOFMEMORY			E_OUTOFMEMORY
-#define DDERR_OUTOFVIDEOMEMORY			MAKE_DDHRESULT( 380 )
-#define DDERR_OVERLAYCANTCLIP			MAKE_DDHRESULT( 382 )
-#define DDERR_OVERLAYCOLORKEYONLYONEACTIVE	MAKE_DDHRESULT( 384 )
-#define DDERR_PALETTEBUSY			MAKE_DDHRESULT( 387 )
-#define DDERR_COLORKEYNOTSET			MAKE_DDHRESULT( 400 )
-#define DDERR_SURFACEALREADYATTACHED		MAKE_DDHRESULT( 410 )
-#define DDERR_SURFACEALREADYDEPENDENT		MAKE_DDHRESULT( 420 )
-#define DDERR_SURFACEBUSY			MAKE_DDHRESULT( 430 )
-#define DDERR_CANTLOCKSURFACE			MAKE_DDHRESULT( 435 )
-#define DDERR_SURFACEISOBSCURED			MAKE_DDHRESULT( 440 )
-#define DDERR_SURFACELOST			MAKE_DDHRESULT( 450 )
-#define DDERR_SURFACENOTATTACHED		MAKE_DDHRESULT( 460 )
-#define DDERR_TOOBIGHEIGHT			MAKE_DDHRESULT( 470 )
-#define DDERR_TOOBIGSIZE			MAKE_DDHRESULT( 480 )
-#define DDERR_TOOBIGWIDTH			MAKE_DDHRESULT( 490 )
-#define DDERR_UNSUPPORTED			E_NOTIMPL
-#define DDERR_UNSUPPORTEDFORMAT			MAKE_DDHRESULT( 510 )
-#define DDERR_UNSUPPORTEDMASK			MAKE_DDHRESULT( 520 )
-#define DDERR_INVALIDSTREAM                     MAKE_DDHRESULT( 521 )
-#define DDERR_VERTICALBLANKINPROGRESS		MAKE_DDHRESULT( 537 )
-#define DDERR_WASSTILLDRAWING			MAKE_DDHRESULT( 540 )
-#define DDERR_DDSCAPSCOMPLEXREQUIRED            MAKE_DDHRESULT( 542 )
-#define DDERR_XALIGN				MAKE_DDHRESULT( 560 )
-#define DDERR_INVALIDDIRECTDRAWGUID		MAKE_DDHRESULT( 561 )
-#define DDERR_DIRECTDRAWALREADYCREATED		MAKE_DDHRESULT( 562 )
-#define DDERR_NODIRECTDRAWHW			MAKE_DDHRESULT( 563 )
-#define DDERR_PRIMARYSURFACEALREADYEXISTS	MAKE_DDHRESULT( 564 )
-#define DDERR_NOEMULATION			MAKE_DDHRESULT( 565 )
-#define DDERR_REGIONTOOSMALL			MAKE_DDHRESULT( 566 )
-#define DDERR_CLIPPERISUSINGHWND		MAKE_DDHRESULT( 567 )
-#define DDERR_NOCLIPPERATTACHED			MAKE_DDHRESULT( 568 )
-#define DDERR_NOHWND				MAKE_DDHRESULT( 569 )
-#define DDERR_HWNDSUBCLASSED			MAKE_DDHRESULT( 570 )
-#define DDERR_HWNDALREADYSET			MAKE_DDHRESULT( 571 )
-#define DDERR_NOPALETTEATTACHED			MAKE_DDHRESULT( 572 )
-#define DDERR_NOPALETTEHW			MAKE_DDHRESULT( 573 )
-#define DDERR_BLTFASTCANTCLIP			MAKE_DDHRESULT( 574 )
-#define DDERR_NOBLTHW				MAKE_DDHRESULT( 575 )
-#define DDERR_NODDROPSHW			MAKE_DDHRESULT( 576 )
-#define DDERR_OVERLAYNOTVISIBLE			MAKE_DDHRESULT( 577 )
-#define DDERR_NOOVERLAYDEST			MAKE_DDHRESULT( 578 )
-#define DDERR_INVALIDPOSITION			MAKE_DDHRESULT( 579 )
-#define DDERR_NOTAOVERLAYSURFACE		MAKE_DDHRESULT( 580 )
-#define DDERR_EXCLUSIVEMODEALREADYSET		MAKE_DDHRESULT( 581 )
-#define DDERR_NOTFLIPPABLE			MAKE_DDHRESULT( 582 )
-#define DDERR_CANTDUPLICATE			MAKE_DDHRESULT( 583 )
-#define DDERR_NOTLOCKED				MAKE_DDHRESULT( 584 )
-#define DDERR_CANTCREATEDC			MAKE_DDHRESULT( 585 )
-#define DDERR_NODC				MAKE_DDHRESULT( 586 )
-#define DDERR_WRONGMODE				MAKE_DDHRESULT( 587 )
-#define DDERR_IMPLICITLYCREATED			MAKE_DDHRESULT( 588 )
-#define DDERR_NOTPALETTIZED			MAKE_DDHRESULT( 589 )
-#define DDERR_UNSUPPORTEDMODE			MAKE_DDHRESULT( 590 )
-#define DDERR_NOMIPMAPHW			MAKE_DDHRESULT( 591 )
-#define DDERR_INVALIDSURFACETYPE		MAKE_DDHRESULT( 592 )
-#define DDERR_NOOPTIMIZEHW			MAKE_DDHRESULT( 600 )
-#define DDERR_NOTLOADED				MAKE_DDHRESULT( 601 )
-#define DDERR_NOFOCUSWINDOW			MAKE_DDHRESULT( 602 )
-#define DDERR_NOTONMIPMAPSUBLEVEL               MAKE_DDHRESULT( 603 )
-#define DDERR_DCALREADYCREATED			MAKE_DDHRESULT( 620 )
-#define DDERR_NONONLOCALVIDMEM			MAKE_DDHRESULT( 630 )
-#define DDERR_CANTPAGELOCK			MAKE_DDHRESULT( 640 )
-#define DDERR_CANTPAGEUNLOCK			MAKE_DDHRESULT( 660 )
-#define DDERR_NOTPAGELOCKED			MAKE_DDHRESULT( 680 )
-#define DDERR_MOREDATA				MAKE_DDHRESULT( 690 )
-#define DDERR_EXPIRED                           MAKE_DDHRESULT( 691 )
-#define DDERR_TESTFINISHED                      MAKE_DDHRESULT( 692 )
-#define DDERR_NEWMODE                           MAKE_DDHRESULT( 693 )
-#define DDERR_D3DNOTINITIALIZED                 MAKE_DDHRESULT( 694 )
-#define DDERR_VIDEONOTACTIVE			MAKE_DDHRESULT( 695 )
-#define DDERR_NOMONITORINFORMATION              MAKE_DDHRESULT( 696 )
-#define DDERR_NODRIVERSUPPORT                   MAKE_DDHRESULT( 697 )
-#define DDERR_DEVICEDOESNTOWNSURFACE		MAKE_DDHRESULT( 699 )
-#define DDERR_NOTINITIALIZED			CO_E_NOTINITIALIZED
-
-/* dwFlags for Blt* */
-#define DDBLT_ALPHADEST				0x00000001
-#define DDBLT_ALPHADESTCONSTOVERRIDE		0x00000002
-#define DDBLT_ALPHADESTNEG			0x00000004
-#define DDBLT_ALPHADESTSURFACEOVERRIDE		0x00000008
-#define DDBLT_ALPHAEDGEBLEND			0x00000010
-#define DDBLT_ALPHASRC				0x00000020
-#define DDBLT_ALPHASRCCONSTOVERRIDE		0x00000040
-#define DDBLT_ALPHASRCNEG			0x00000080
-#define DDBLT_ALPHASRCSURFACEOVERRIDE		0x00000100
-#define DDBLT_ASYNC				0x00000200
-#define DDBLT_COLORFILL				0x00000400
-#define DDBLT_DDFX				0x00000800
-#define DDBLT_DDROPS				0x00001000
-#define DDBLT_KEYDEST				0x00002000
-#define DDBLT_KEYDESTOVERRIDE			0x00004000
-#define DDBLT_KEYSRC				0x00008000
-#define DDBLT_KEYSRCOVERRIDE			0x00010000
-#define DDBLT_ROP				0x00020000
-#define DDBLT_ROTATIONANGLE			0x00040000
-#define DDBLT_ZBUFFER				0x00080000
-#define DDBLT_ZBUFFERDESTCONSTOVERRIDE		0x00100000
-#define DDBLT_ZBUFFERDESTOVERRIDE		0x00200000
-#define DDBLT_ZBUFFERSRCCONSTOVERRIDE		0x00400000
-#define DDBLT_ZBUFFERSRCOVERRIDE		0x00800000
-#define DDBLT_WAIT				0x01000000
-#define DDBLT_DEPTHFILL				0x02000000
-#define DDBLT_DONOTWAIT                         0x08000000
-
-/* dwTrans for BltFast */
-#define DDBLTFAST_NOCOLORKEY			0x00000000
-#define DDBLTFAST_SRCCOLORKEY			0x00000001
-#define DDBLTFAST_DESTCOLORKEY			0x00000002
-#define DDBLTFAST_WAIT				0x00000010
-#define DDBLTFAST_DONOTWAIT                     0x00000020
-
-/* dwFlags for Flip */
-#define DDFLIP_WAIT		0x00000001
-#define DDFLIP_EVEN		0x00000002 /* only valid for overlay */
-#define DDFLIP_ODD		0x00000004 /* only valid for overlay */
-#define DDFLIP_NOVSYNC		0x00000008
-#define DDFLIP_STEREO		0x00000010
-#define DDFLIP_DONOTWAIT	0x00000020
-#define DDFLIP_INTERVAL2	0x02000000
-#define DDFLIP_INTERVAL3	0x03000000
-#define DDFLIP_INTERVAL4	0x04000000
-
-
-/* dwFlags for GetBltStatus */
-#define DDGBS_CANBLT				0x00000001
-#define DDGBS_ISBLTDONE				0x00000002
-
-/* dwFlags for IDirectDrawSurface7::GetFlipStatus */
-#define DDGFS_CANFLIP		1L
-#define DDGFS_ISFLIPDONE	2L
-
-/* dwFlags for IDirectDrawSurface7::SetPrivateData */
-#define DDSPD_IUNKNOWNPOINTER	1L
-#define DDSPD_VOLATILE		2L
-
-/* DDSCAPS.dwCaps */
-/* reserved1, was 3d capable */
-#define DDSCAPS_RESERVED1		0x00000001
-/* surface contains alpha information */
-#define DDSCAPS_ALPHA			0x00000002
-/* this surface is a backbuffer */
-#define DDSCAPS_BACKBUFFER		0x00000004
-/* complex surface structure */
-#define DDSCAPS_COMPLEX			0x00000008
-/* part of surface flipping structure */
-#define DDSCAPS_FLIP			0x00000010
-/* this surface is the frontbuffer surface */
-#define DDSCAPS_FRONTBUFFER		0x00000020
-/* this is a plain offscreen surface */
-#define DDSCAPS_OFFSCREENPLAIN		0x00000040
-/* overlay */
-#define DDSCAPS_OVERLAY			0x00000080
-/* palette objects can be created and attached to us */
-#define DDSCAPS_PALETTE			0x00000100
-/* primary surface (the one the user looks at currently)(right eye)*/
-#define DDSCAPS_PRIMARYSURFACE		0x00000200
-/* primary surface for left eye */
-#define DDSCAPS_PRIMARYSURFACELEFT	0x00000400
-/* surface exists in systemmemory */
-#define DDSCAPS_SYSTEMMEMORY		0x00000800
-/* surface can be used as a texture */
-#define DDSCAPS_TEXTURE		        0x00001000
-/* surface may be destination for 3d rendering */
-#define DDSCAPS_3DDEVICE		0x00002000
-/* surface exists in videomemory */
-#define DDSCAPS_VIDEOMEMORY		0x00004000
-/* surface changes immediately visible */
-#define DDSCAPS_VISIBLE			0x00008000
-/* write only surface */
-#define DDSCAPS_WRITEONLY		0x00010000
-/* zbuffer surface */
-#define DDSCAPS_ZBUFFER			0x00020000
-/* has its own DC */
-#define DDSCAPS_OWNDC			0x00040000
-/* surface should be able to receive live video */
-#define DDSCAPS_LIVEVIDEO		0x00080000
-/* should be able to have a hw codec decompress stuff into it */
-#define DDSCAPS_HWCODEC			0x00100000
-/* mode X (320x200 or 320x240) surface */
-#define DDSCAPS_MODEX			0x00200000
-/* one mipmap surface (1 level) */
-#define DDSCAPS_MIPMAP			0x00400000
-#define DDSCAPS_RESERVED2		0x00800000
-/* memory allocation delayed until Load() */
-#define DDSCAPS_ALLOCONLOAD		0x04000000
-/* Indicates that the surface will receive data from a video port */
-#define DDSCAPS_VIDEOPORT		0x08000000
-/* surface is in local videomemory */
-#define DDSCAPS_LOCALVIDMEM		0x10000000
-/* surface is in nonlocal videomemory */
-#define DDSCAPS_NONLOCALVIDMEM		0x20000000
-/* surface is a standard VGA mode surface (NOT ModeX) */
-#define DDSCAPS_STANDARDVGAMODE		0x40000000
-/* optimized? surface */
-#define DDSCAPS_OPTIMIZED		0x80000000
-
-typedef struct _DDSCAPS {
-    DWORD	dwCaps;	/* capabilities of surface wanted */
-} DDSCAPS,*LPDDSCAPS;
-
-/* DDSCAPS2.dwCaps2 */
-/* indicates the surface will receive data from a video port using
-   deinterlacing hardware. */
-#define DDSCAPS2_HARDWAREDEINTERLACE	0x00000002
-/* indicates the surface will be locked very frequently. */
-#define DDSCAPS2_HINTDYNAMIC		0x00000004
-/* indicates surface can be re-ordered or retiled on load() */
-#define DDSCAPS2_HINTSTATIC             0x00000008
-/* indicates surface to be managed by directdraw/direct3D */
-#define DDSCAPS2_TEXTUREMANAGE          0x00000010
-/* reserved bits */
-#define DDSCAPS2_RESERVED1              0x00000020
-#define DDSCAPS2_RESERVED2              0x00000040
-/* indicates surface will never be locked again */
-#define DDSCAPS2_OPAQUE                 0x00000080
-/* set at CreateSurface() time to indicate antialiasing will be used */
-#define DDSCAPS2_HINTANTIALIASING       0x00000100
-/* set at CreateSurface() time to indicate cubic environment map */
-#define DDSCAPS2_CUBEMAP                0x00000200
-/* face flags for cube maps */
-#define DDSCAPS2_CUBEMAP_POSITIVEX      0x00000400
-#define DDSCAPS2_CUBEMAP_NEGATIVEX      0x00000800
-#define DDSCAPS2_CUBEMAP_POSITIVEY      0x00001000
-#define DDSCAPS2_CUBEMAP_NEGATIVEY      0x00002000
-#define DDSCAPS2_CUBEMAP_POSITIVEZ      0x00004000
-#define DDSCAPS2_CUBEMAP_NEGATIVEZ      0x00008000
-/* specifies all faces of a cube for CreateSurface() */
-#define DDSCAPS2_CUBEMAP_ALLFACES ( DDSCAPS2_CUBEMAP_POSITIVEX |\
-                                    DDSCAPS2_CUBEMAP_NEGATIVEX |\
-                                    DDSCAPS2_CUBEMAP_POSITIVEY |\
-                                    DDSCAPS2_CUBEMAP_NEGATIVEY |\
-                                    DDSCAPS2_CUBEMAP_POSITIVEZ |\
-                                    DDSCAPS2_CUBEMAP_NEGATIVEZ )
-/* set for mipmap sublevels on DirectX7 and later.  ignored by CreateSurface() */
-#define DDSCAPS2_MIPMAPSUBLEVEL         0x00010000
-/* indicates texture surface to be managed by Direct3D *only* */
-#define DDSCAPS2_D3DTEXTUREMANAGE       0x00020000
-/* indicates managed surface that can safely be lost */
-#define DDSCAPS2_DONOTPERSIST           0x00040000
-/* indicates surface is part of a stereo flipping chain */
-#define DDSCAPS2_STEREOSURFACELEFT      0x00080000
-
-typedef struct _DDSCAPS2 {
-    DWORD	dwCaps;	/* capabilities of surface wanted */
-    DWORD   dwCaps2; /* additional capabilities */
-    DWORD   dwCaps3; /* reserved capabilities */
-    __extension__ union {
-      DWORD dwCaps4; /* low word is the depth for a volume texture */
-      DWORD dwVolumeDepth;
-    } DUMMYUNIONNAME1;
-} DDSCAPS2,*LPDDSCAPS2;
-
-typedef struct _DDSCAPSEX {
-    DWORD	dwCaps2;
-    DWORD	dwCaps3;
-    __extension__ union {
-    DWORD	dwCaps4;
-    DWORD	dwVolumeDepth;
-    } DUMMYUNIONNAME1;
-} DDSCAPSEX,*LPDDSCAPSEX;
-
-#define	DD_ROP_SPACE	(256/32)	/* space required to store ROP array */
-
-typedef struct _DDCAPS_DX7		/* DirectX 7 version of caps struct */
-{
-    DWORD	dwSize;                 /* size of the DDDRIVERCAPS structure */
-    DWORD	dwCaps;                 /* driver specific capabilities */
-    DWORD	dwCaps2;                /* more driver specific capabilities */
-    DWORD	dwCKeyCaps;             /* color key capabilities of the surface */
-    DWORD	dwFXCaps;               /* driver specific stretching and effects capabilities */
-    DWORD	dwFXAlphaCaps;          /* alpha driver specific capabilities */
-    DWORD	dwPalCaps;              /* palette capabilities */
-    DWORD	dwSVCaps;               /* stereo vision capabilities */
-    DWORD	dwAlphaBltConstBitDepths;       /* DDBD_2,4,8 */
-    DWORD	dwAlphaBltPixelBitDepths;       /* DDBD_1,2,4,8 */
-    DWORD	dwAlphaBltSurfaceBitDepths;     /* DDBD_1,2,4,8 */
-    DWORD	dwAlphaOverlayConstBitDepths;   /* DDBD_2,4,8 */
-    DWORD	dwAlphaOverlayPixelBitDepths;   /* DDBD_1,2,4,8 */
-    DWORD	dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */
-    DWORD	dwZBufferBitDepths;             /* DDBD_8,16,24,32 */
-    DWORD	dwVidMemTotal;          /* total amount of video memory */
-    DWORD	dwVidMemFree;           /* amount of free video memory */
-    DWORD	dwMaxVisibleOverlays;   /* maximum number of visible overlays */
-    DWORD	dwCurrVisibleOverlays;  /* current number of visible overlays */
-    DWORD	dwNumFourCCCodes;       /* number of four cc codes */
-    DWORD	dwAlignBoundarySrc;     /* source rectangle alignment */
-    DWORD	dwAlignSizeSrc;         /* source rectangle byte size */
-    DWORD	dwAlignBoundaryDest;    /* dest rectangle alignment */
-    DWORD	dwAlignSizeDest;        /* dest rectangle byte size */
-    DWORD	dwAlignStrideAlign;     /* stride alignment */
-    DWORD	dwRops[DD_ROP_SPACE];   /* ROPs supported */
-    DDSCAPS	ddsOldCaps;             /* old DDSCAPS - superseded for DirectX6+ */
-    DWORD	dwMinOverlayStretch;    /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMaxOverlayStretch;    /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMinLiveVideoStretch;  /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMaxLiveVideoStretch;  /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMinHwCodecStretch;    /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMaxHwCodecStretch;    /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwReserved1;
-    DWORD	dwReserved2;
-    DWORD	dwReserved3;
-    DWORD	dwSVBCaps;              /* driver specific capabilities for System->Vmem blts */
-    DWORD	dwSVBCKeyCaps;          /* driver color key capabilities for System->Vmem blts */
-    DWORD	dwSVBFXCaps;            /* driver FX capabilities for System->Vmem blts */
-    DWORD	dwSVBRops[DD_ROP_SPACE];/* ROPs supported for System->Vmem blts */
-    DWORD	dwVSBCaps;              /* driver specific capabilities for Vmem->System blts */
-    DWORD	dwVSBCKeyCaps;          /* driver color key capabilities for Vmem->System blts */
-    DWORD	dwVSBFXCaps;            /* driver FX capabilities for Vmem->System blts */
-    DWORD	dwVSBRops[DD_ROP_SPACE];/* ROPs supported for Vmem->System blts */
-    DWORD	dwSSBCaps;              /* driver specific capabilities for System->System blts */
-    DWORD	dwSSBCKeyCaps;          /* driver color key capabilities for System->System blts */
-    DWORD	dwSSBFXCaps;            /* driver FX capabilities for System->System blts */
-    DWORD	dwSSBRops[DD_ROP_SPACE];/* ROPs supported for System->System blts */
-    DWORD       dwMaxVideoPorts;        /* maximum number of usable video ports */
-    DWORD   	dwCurrVideoPorts;       /* current number of video ports used */
-    DWORD   	dwSVBCaps2;             /* more driver specific capabilities for System->Vmem blts */
-    DWORD   	dwNLVBCaps;             /* driver specific capabilities for non-local->local vidmem blts */
-    DWORD   	dwNLVBCaps2;            /* more driver specific capabilities non-local->local vidmem blts */
-    DWORD   	dwNLVBCKeyCaps;         /* driver color key capabilities for non-local->local vidmem blts */
-    DWORD   	dwNLVBFXCaps;           /* driver FX capabilities for non-local->local blts */
-    DWORD   	dwNLVBRops[DD_ROP_SPACE]; /* ROPs supported for non-local->local blts */
-    DDSCAPS2    ddsCaps;		/* surface capabilities */
-} DDCAPS_DX7,*LPDDCAPS_DX7;
-
-typedef struct _DDCAPS_DX6		/* DirectX 6 version of caps struct */
-{
-    DWORD	dwSize;                 /* size of the DDDRIVERCAPS structure */
-    DWORD	dwCaps;                 /* driver specific capabilities */
-    DWORD	dwCaps2;                /* more driver specific capabilities */
-    DWORD	dwCKeyCaps;             /* color key capabilities of the surface */
-    DWORD	dwFXCaps;               /* driver specific stretching and effects capabilities */
-    DWORD	dwFXAlphaCaps;          /* alpha driver specific capabilities */
-    DWORD	dwPalCaps;              /* palette capabilities */
-    DWORD	dwSVCaps;               /* stereo vision capabilities */
-    DWORD	dwAlphaBltConstBitDepths;       /* DDBD_2,4,8 */
-    DWORD	dwAlphaBltPixelBitDepths;       /* DDBD_1,2,4,8 */
-    DWORD	dwAlphaBltSurfaceBitDepths;     /* DDBD_1,2,4,8 */
-    DWORD	dwAlphaOverlayConstBitDepths;   /* DDBD_2,4,8 */
-    DWORD	dwAlphaOverlayPixelBitDepths;   /* DDBD_1,2,4,8 */
-    DWORD	dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */
-    DWORD	dwZBufferBitDepths;             /* DDBD_8,16,24,32 */
-    DWORD	dwVidMemTotal;          /* total amount of video memory */
-    DWORD	dwVidMemFree;           /* amount of free video memory */
-    DWORD	dwMaxVisibleOverlays;   /* maximum number of visible overlays */
-    DWORD	dwCurrVisibleOverlays;  /* current number of visible overlays */
-    DWORD	dwNumFourCCCodes;       /* number of four cc codes */
-    DWORD	dwAlignBoundarySrc;     /* source rectangle alignment */
-    DWORD	dwAlignSizeSrc;         /* source rectangle byte size */
-    DWORD	dwAlignBoundaryDest;    /* dest rectangle alignment */
-    DWORD	dwAlignSizeDest;        /* dest rectangle byte size */
-    DWORD	dwAlignStrideAlign;     /* stride alignment */
-    DWORD	dwRops[DD_ROP_SPACE];   /* ROPs supported */
-    DDSCAPS	ddsOldCaps;             /* old DDSCAPS - superseded for DirectX6+ */
-    DWORD	dwMinOverlayStretch;    /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMaxOverlayStretch;    /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMinLiveVideoStretch;  /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMaxLiveVideoStretch;  /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMinHwCodecStretch;    /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMaxHwCodecStretch;    /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwReserved1;
-    DWORD	dwReserved2;
-    DWORD	dwReserved3;
-    DWORD	dwSVBCaps;              /* driver specific capabilities for System->Vmem blts */
-    DWORD	dwSVBCKeyCaps;          /* driver color key capabilities for System->Vmem blts */
-    DWORD	dwSVBFXCaps;            /* driver FX capabilities for System->Vmem blts */
-    DWORD	dwSVBRops[DD_ROP_SPACE];/* ROPs supported for System->Vmem blts */
-    DWORD	dwVSBCaps;              /* driver specific capabilities for Vmem->System blts */
-    DWORD	dwVSBCKeyCaps;          /* driver color key capabilities for Vmem->System blts */
-    DWORD	dwVSBFXCaps;            /* driver FX capabilities for Vmem->System blts */
-    DWORD	dwVSBRops[DD_ROP_SPACE];/* ROPs supported for Vmem->System blts */
-    DWORD	dwSSBCaps;              /* driver specific capabilities for System->System blts */
-    DWORD	dwSSBCKeyCaps;          /* driver color key capabilities for System->System blts */
-    DWORD	dwSSBFXCaps;            /* driver FX capabilities for System->System blts */
-    DWORD	dwSSBRops[DD_ROP_SPACE];/* ROPs supported for System->System blts */
-    DWORD       dwMaxVideoPorts;        /* maximum number of usable video ports */
-    DWORD   	dwCurrVideoPorts;       /* current number of video ports used */
-    DWORD   	dwSVBCaps2;             /* more driver specific capabilities for System->Vmem blts */
-    DWORD   	dwNLVBCaps;             /* driver specific capabilities for non-local->local vidmem blts */
-    DWORD   	dwNLVBCaps2;            /* more driver specific capabilities non-local->local vidmem blts */
-    DWORD   	dwNLVBCKeyCaps;         /* driver color key capabilities for non-local->local vidmem blts */
-    DWORD   	dwNLVBFXCaps;           /* driver FX capabilities for non-local->local blts */
-    DWORD   	dwNLVBRops[DD_ROP_SPACE]; /* ROPs supported for non-local->local blts */
-    /* and one new member for DirectX 6 */
-    DDSCAPS2    ddsCaps;		/* surface capabilities */
-} DDCAPS_DX6,*LPDDCAPS_DX6;
-
-typedef struct _DDCAPS_DX5		/* DirectX5 version of caps struct */
-{
-    DWORD	dwSize;                 /* size of the DDDRIVERCAPS structure */
-    DWORD	dwCaps;                 /* driver specific capabilities */
-    DWORD	dwCaps2;                /* more driver specific capabilities */
-    DWORD	dwCKeyCaps;             /* color key capabilities of the surface */
-    DWORD	dwFXCaps;               /* driver specific stretching and effects capabilities */
-    DWORD	dwFXAlphaCaps;          /* alpha driver specific capabilities */
-    DWORD	dwPalCaps;              /* palette capabilities */
-    DWORD	dwSVCaps;               /* stereo vision capabilities */
-    DWORD	dwAlphaBltConstBitDepths;       /* DDBD_2,4,8 */
-    DWORD	dwAlphaBltPixelBitDepths;       /* DDBD_1,2,4,8 */
-    DWORD	dwAlphaBltSurfaceBitDepths;     /* DDBD_1,2,4,8 */
-    DWORD	dwAlphaOverlayConstBitDepths;   /* DDBD_2,4,8 */
-    DWORD	dwAlphaOverlayPixelBitDepths;   /* DDBD_1,2,4,8 */
-    DWORD	dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */
-    DWORD	dwZBufferBitDepths;             /* DDBD_8,16,24,32 */
-    DWORD	dwVidMemTotal;          /* total amount of video memory */
-    DWORD	dwVidMemFree;           /* amount of free video memory */
-    DWORD	dwMaxVisibleOverlays;   /* maximum number of visible overlays */
-    DWORD	dwCurrVisibleOverlays;  /* current number of visible overlays */
-    DWORD	dwNumFourCCCodes;       /* number of four cc codes */
-    DWORD	dwAlignBoundarySrc;     /* source rectangle alignment */
-    DWORD	dwAlignSizeSrc;         /* source rectangle byte size */
-    DWORD	dwAlignBoundaryDest;    /* dest rectangle alignment */
-    DWORD	dwAlignSizeDest;        /* dest rectangle byte size */
-    DWORD	dwAlignStrideAlign;     /* stride alignment */
-    DWORD	dwRops[DD_ROP_SPACE];   /* ROPs supported */
-    DDSCAPS	ddsCaps;                /* DDSCAPS structure has all the general capabilities */
-    DWORD	dwMinOverlayStretch;    /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMaxOverlayStretch;    /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMinLiveVideoStretch;  /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMaxLiveVideoStretch;  /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMinHwCodecStretch;    /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMaxHwCodecStretch;    /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwReserved1;
-    DWORD	dwReserved2;
-    DWORD	dwReserved3;
-    DWORD	dwSVBCaps;              /* driver specific capabilities for System->Vmem blts */
-    DWORD	dwSVBCKeyCaps;          /* driver color key capabilities for System->Vmem blts */
-    DWORD	dwSVBFXCaps;            /* driver FX capabilities for System->Vmem blts */
-    DWORD	dwSVBRops[DD_ROP_SPACE];/* ROPs supported for System->Vmem blts */
-    DWORD	dwVSBCaps;              /* driver specific capabilities for Vmem->System blts */
-    DWORD	dwVSBCKeyCaps;          /* driver color key capabilities for Vmem->System blts */
-    DWORD	dwVSBFXCaps;            /* driver FX capabilities for Vmem->System blts */
-    DWORD	dwVSBRops[DD_ROP_SPACE];/* ROPs supported for Vmem->System blts */
-    DWORD	dwSSBCaps;              /* driver specific capabilities for System->System blts */
-    DWORD	dwSSBCKeyCaps;          /* driver color key capabilities for System->System blts */
-    DWORD	dwSSBFXCaps;            /* driver FX capabilities for System->System blts */
-    DWORD	dwSSBRops[DD_ROP_SPACE];/* ROPs supported for System->System blts */
-    /* the following are the new DirectX 5 members */
-    DWORD       dwMaxVideoPorts;        /* maximum number of usable video ports */
-    DWORD   	dwCurrVideoPorts;       /* current number of video ports used */
-    DWORD   	dwSVBCaps2;             /* more driver specific capabilities for System->Vmem blts */
-    DWORD   	dwNLVBCaps;             /* driver specific capabilities for non-local->local vidmem blts */
-    DWORD   	dwNLVBCaps2;            /* more driver specific capabilities non-local->local vidmem blts */
-    DWORD   	dwNLVBCKeyCaps;         /* driver color key capabilities for non-local->local vidmem blts */
-    DWORD   	dwNLVBFXCaps;           /* driver FX capabilities for non-local->local blts */
-    DWORD   	dwNLVBRops[DD_ROP_SPACE]; /* ROPs supported for non-local->local blts */
-} DDCAPS_DX5,*LPDDCAPS_DX5;
-
-typedef struct _DDCAPS_DX3		/* DirectX3 version of caps struct */
-{
-    DWORD	dwSize;                 /* size of the DDDRIVERCAPS structure */
-    DWORD	dwCaps;                 /* driver specific capabilities */
-    DWORD	dwCaps2;                /* more driver specific capabilities */
-    DWORD	dwCKeyCaps;             /* color key capabilities of the surface */
-    DWORD	dwFXCaps;               /* driver specific stretching and effects capabilities */
-    DWORD	dwFXAlphaCaps;          /* alpha driver specific capabilities */
-    DWORD	dwPalCaps;              /* palette capabilities */
-    DWORD	dwSVCaps;               /* stereo vision capabilities */
-    DWORD	dwAlphaBltConstBitDepths;       /* DDBD_2,4,8 */
-    DWORD	dwAlphaBltPixelBitDepths;       /* DDBD_1,2,4,8 */
-    DWORD	dwAlphaBltSurfaceBitDepths;     /* DDBD_1,2,4,8 */
-    DWORD	dwAlphaOverlayConstBitDepths;   /* DDBD_2,4,8 */
-    DWORD	dwAlphaOverlayPixelBitDepths;   /* DDBD_1,2,4,8 */
-    DWORD	dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */
-    DWORD	dwZBufferBitDepths;             /* DDBD_8,16,24,32 */
-    DWORD	dwVidMemTotal;          /* total amount of video memory */
-    DWORD	dwVidMemFree;           /* amount of free video memory */
-    DWORD	dwMaxVisibleOverlays;   /* maximum number of visible overlays */
-    DWORD	dwCurrVisibleOverlays;  /* current number of visible overlays */
-    DWORD	dwNumFourCCCodes;       /* number of four cc codes */
-    DWORD	dwAlignBoundarySrc;     /* source rectangle alignment */
-    DWORD	dwAlignSizeSrc;         /* source rectangle byte size */
-    DWORD	dwAlignBoundaryDest;    /* dest rectangle alignment */
-    DWORD	dwAlignSizeDest;        /* dest rectangle byte size */
-    DWORD	dwAlignStrideAlign;     /* stride alignment */
-    DWORD	dwRops[DD_ROP_SPACE];   /* ROPs supported */
-    DDSCAPS	ddsCaps;                /* DDSCAPS structure has all the general capabilities */
-    DWORD	dwMinOverlayStretch;    /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMaxOverlayStretch;    /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMinLiveVideoStretch;  /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMaxLiveVideoStretch;  /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMinHwCodecStretch;    /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwMaxHwCodecStretch;    /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
-    DWORD	dwReserved1;
-    DWORD	dwReserved2;
-    DWORD	dwReserved3;
-    DWORD	dwSVBCaps;              /* driver specific capabilities for System->Vmem blts */
-    DWORD	dwSVBCKeyCaps;          /* driver color key capabilities for System->Vmem blts */
-    DWORD	dwSVBFXCaps;            /* driver FX capabilities for System->Vmem blts */
-    DWORD	dwSVBRops[DD_ROP_SPACE];/* ROPs supported for System->Vmem blts */
-    DWORD	dwVSBCaps;              /* driver specific capabilities for Vmem->System blts */
-    DWORD	dwVSBCKeyCaps;          /* driver color key capabilities for Vmem->System blts */
-    DWORD	dwVSBFXCaps;            /* driver FX capabilities for Vmem->System blts */
-    DWORD	dwVSBRops[DD_ROP_SPACE];/* ROPs supported for Vmem->System blts */
-    DWORD	dwSSBCaps;              /* driver specific capabilities for System->System blts */
-    DWORD	dwSSBCKeyCaps;          /* driver color key capabilities for System->System blts */
-    DWORD	dwSSBFXCaps;            /* driver FX capabilities for System->System blts */
-    DWORD	dwSSBRops[DD_ROP_SPACE];/* ROPs supported for System->System blts */
-    DWORD	dwReserved4;
-    DWORD	dwReserved5;
-    DWORD	dwReserved6;
-} DDCAPS_DX3,*LPDDCAPS_DX3;
-
-/* set caps struct according to DIRECTDRAW_VERSION */
-
-#if DIRECTDRAW_VERSION <= 0x300
-typedef DDCAPS_DX3 DDCAPS;
-#elif DIRECTDRAW_VERSION <= 0x500
-typedef DDCAPS_DX5 DDCAPS;
-#elif DIRECTDRAW_VERSION <= 0x600
-typedef DDCAPS_DX6 DDCAPS;
-#else
-typedef DDCAPS_DX7 DDCAPS;
-#endif
-
-typedef DDCAPS *LPDDCAPS;
-
-/* DDCAPS.dwCaps */
-#define DDCAPS_3D			0x00000001
-#define DDCAPS_ALIGNBOUNDARYDEST	0x00000002
-#define DDCAPS_ALIGNSIZEDEST		0x00000004
-#define DDCAPS_ALIGNBOUNDARYSRC		0x00000008
-#define DDCAPS_ALIGNSIZESRC		0x00000010
-#define DDCAPS_ALIGNSTRIDE		0x00000020
-#define DDCAPS_BLT			0x00000040
-#define DDCAPS_BLTQUEUE			0x00000080
-#define DDCAPS_BLTFOURCC		0x00000100
-#define DDCAPS_BLTSTRETCH		0x00000200
-#define DDCAPS_GDI			0x00000400
-#define DDCAPS_OVERLAY			0x00000800
-#define DDCAPS_OVERLAYCANTCLIP		0x00001000
-#define DDCAPS_OVERLAYFOURCC		0x00002000
-#define DDCAPS_OVERLAYSTRETCH		0x00004000
-#define DDCAPS_PALETTE			0x00008000
-#define DDCAPS_PALETTEVSYNC		0x00010000
-#define DDCAPS_READSCANLINE		0x00020000
-#define DDCAPS_STEREOVIEW		0x00040000
-#define DDCAPS_VBI			0x00080000
-#define DDCAPS_ZBLTS			0x00100000
-#define DDCAPS_ZOVERLAYS		0x00200000
-#define DDCAPS_COLORKEY			0x00400000
-#define DDCAPS_ALPHA			0x00800000
-#define DDCAPS_COLORKEYHWASSIST		0x01000000
-#define DDCAPS_NOHARDWARE		0x02000000
-#define DDCAPS_BLTCOLORFILL		0x04000000
-#define DDCAPS_BANKSWITCHED		0x08000000
-#define DDCAPS_BLTDEPTHFILL		0x10000000
-#define DDCAPS_CANCLIP			0x20000000
-#define DDCAPS_CANCLIPSTRETCHED		0x40000000
-#define DDCAPS_CANBLTSYSMEM		0x80000000
-
-/* DDCAPS.dwCaps2 */
-#define DDCAPS2_CERTIFIED		0x00000001
-#define DDCAPS2_NO2DDURING3DSCENE       0x00000002
-#define DDCAPS2_VIDEOPORT		0x00000004
-#define DDCAPS2_AUTOFLIPOVERLAY		0x00000008
-#define DDCAPS2_CANBOBINTERLEAVED	0x00000010
-#define DDCAPS2_CANBOBNONINTERLEAVED	0x00000020
-#define DDCAPS2_COLORCONTROLOVERLAY	0x00000040
-#define DDCAPS2_COLORCONTROLPRIMARY	0x00000080
-#define DDCAPS2_CANDROPZ16BIT		0x00000100
-#define DDCAPS2_NONLOCALVIDMEM		0x00000200
-#define DDCAPS2_NONLOCALVIDMEMCAPS	0x00000400
-#define DDCAPS2_NOPAGELOCKREQUIRED	0x00000800
-#define DDCAPS2_WIDESURFACES		0x00001000
-#define DDCAPS2_CANFLIPODDEVEN		0x00002000
-#define DDCAPS2_CANBOBHARDWARE		0x00004000
-#define DDCAPS2_COPYFOURCC              0x00008000
-#define DDCAPS2_PRIMARYGAMMA            0x00020000
-#define DDCAPS2_CANRENDERWINDOWED       0x00080000
-#define DDCAPS2_CANCALIBRATEGAMMA       0x00100000
-#define DDCAPS2_FLIPINTERVAL            0x00200000
-#define DDCAPS2_FLIPNOVSYNC             0x00400000
-#define DDCAPS2_CANMANAGETEXTURE        0x00800000
-#define DDCAPS2_TEXMANINNONLOCALVIDMEM  0x01000000
-#define DDCAPS2_STEREO                  0x02000000
-#define DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL   0x04000000
-
-
-/* Set/Get Colour Key Flags */
-#define DDCKEY_COLORSPACE  0x00000001  /* Struct is single colour space */
-#define DDCKEY_DESTBLT     0x00000002  /* To be used as dest for blt */
-#define DDCKEY_DESTOVERLAY 0x00000004  /* To be used as dest for CK overlays */
-#define DDCKEY_SRCBLT      0x00000008  /* To be used as src for blt */
-#define DDCKEY_SRCOVERLAY  0x00000010  /* To be used as src for CK overlays */
-
-typedef struct _DDCOLORKEY
-{
-    DWORD	dwColorSpaceLowValue;/* low boundary of color space that is to
-                                      * be treated as Color Key, inclusive
-                      */
-    DWORD	dwColorSpaceHighValue;/* high boundary of color space that is
-                                       * to be treated as Color Key, inclusive
-                       */
-} DDCOLORKEY,*LPDDCOLORKEY;
-
-/* ddCKEYCAPS bits */
-#define DDCKEYCAPS_DESTBLT			0x00000001
-#define DDCKEYCAPS_DESTBLTCLRSPACE		0x00000002
-#define DDCKEYCAPS_DESTBLTCLRSPACEYUV		0x00000004
-#define DDCKEYCAPS_DESTBLTYUV			0x00000008
-#define DDCKEYCAPS_DESTOVERLAY			0x00000010
-#define DDCKEYCAPS_DESTOVERLAYCLRSPACE		0x00000020
-#define DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV	0x00000040
-#define DDCKEYCAPS_DESTOVERLAYONEACTIVE		0x00000080
-#define DDCKEYCAPS_DESTOVERLAYYUV		0x00000100
-#define DDCKEYCAPS_SRCBLT			0x00000200
-#define DDCKEYCAPS_SRCBLTCLRSPACE		0x00000400
-#define DDCKEYCAPS_SRCBLTCLRSPACEYUV		0x00000800
-#define DDCKEYCAPS_SRCBLTYUV			0x00001000
-#define DDCKEYCAPS_SRCOVERLAY			0x00002000
-#define DDCKEYCAPS_SRCOVERLAYCLRSPACE		0x00004000
-#define DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV	0x00008000
-#define DDCKEYCAPS_SRCOVERLAYONEACTIVE		0x00010000
-#define DDCKEYCAPS_SRCOVERLAYYUV		0x00020000
-#define DDCKEYCAPS_NOCOSTOVERLAY		0x00040000
-
-typedef struct _DDPIXELFORMAT {
-    DWORD	dwSize;                 /* 0: size of structure */
-    DWORD	dwFlags;                /* 4: pixel format flags */
-    DWORD	dwFourCC;               /* 8: (FOURCC code) */
-    __extension__ union {
-    DWORD	dwRGBBitCount;          /* C: how many bits per pixel */
-    DWORD	dwYUVBitCount;          /* C: how many bits per pixel */
-    DWORD	dwZBufferBitDepth;      /* C: how many bits for z buffers */
-    DWORD	dwAlphaBitDepth;        /* C: how many bits for alpha channels*/
-    DWORD	dwLuminanceBitCount;
-    DWORD	dwBumpBitCount;
-    } DUMMYUNIONNAME1;
-    __extension__ union {
-    DWORD	dwRBitMask;             /* 10: mask for red bit*/
-    DWORD	dwYBitMask;             /* 10: mask for Y bits*/
-    DWORD	dwStencilBitDepth;
-    DWORD	dwLuminanceBitMask;
-    DWORD	dwBumpDuBitMask;
-    } DUMMYUNIONNAME2;
-    __extension__ union {
-    DWORD	dwGBitMask;             /* 14: mask for green bits*/
-    DWORD	dwUBitMask;             /* 14: mask for U bits*/
-    DWORD	dwZBitMask;
-    DWORD	dwBumpDvBitMask;
-    } DUMMYUNIONNAME3;
-    __extension__ union {
-    DWORD   dwBBitMask;             /* 18: mask for blue bits*/
-    DWORD   dwVBitMask;             /* 18: mask for V bits*/
-    DWORD	dwStencilBitMask;
-    DWORD	dwBumpLuminanceBitMask;
-    } DUMMYUNIONNAME4;
-    __extension__ union {
-        DWORD	dwRGBAlphaBitMask;	/* 1C: mask for alpha channel */
-        DWORD	dwYUVAlphaBitMask;	/* 1C: mask for alpha channel */
-    DWORD	dwLuminanceAlphaBitMask;
-    DWORD	dwRGBZBitMask;		/* 1C: mask for Z channel */
-    DWORD	dwYUVZBitMask;		/* 1C: mask for Z channel */
-    } DUMMYUNIONNAME5;
-                        /* 20: next structure */
-} DDPIXELFORMAT,*LPDDPIXELFORMAT;
-
-#ifndef MAKEFOURCC
-#define MAKEFOURCC(ch0, ch1, ch2, ch3)  \
-    ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |  \
-    ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
-#endif /* MAKEFOURCC */
-
-/* DDCAPS.dwFXCaps */
-#define DDFXCAPS_BLTALPHA               0x00000001
-#define DDFXCAPS_OVERLAYALPHA           0x00000004
-#define DDFXCAPS_BLTARITHSTRETCHYN	0x00000010
-#define DDFXCAPS_BLTARITHSTRETCHY	0x00000020
-#define DDFXCAPS_BLTMIRRORLEFTRIGHT	0x00000040
-#define DDFXCAPS_BLTMIRRORUPDOWN	0x00000080
-#define DDFXCAPS_BLTROTATION		0x00000100
-#define DDFXCAPS_BLTROTATION90		0x00000200
-#define DDFXCAPS_BLTSHRINKX		0x00000400
-#define DDFXCAPS_BLTSHRINKXN		0x00000800
-#define DDFXCAPS_BLTSHRINKY		0x00001000
-#define DDFXCAPS_BLTSHRINKYN		0x00002000
-#define DDFXCAPS_BLTSTRETCHX		0x00004000
-#define DDFXCAPS_BLTSTRETCHXN		0x00008000
-#define DDFXCAPS_BLTSTRETCHY		0x00010000
-#define DDFXCAPS_BLTSTRETCHYN		0x00020000
-#define DDFXCAPS_OVERLAYARITHSTRETCHY	0x00040000
-#define DDFXCAPS_OVERLAYARITHSTRETCHYN	0x00000008
-#define DDFXCAPS_OVERLAYSHRINKX		0x00080000
-#define DDFXCAPS_OVERLAYSHRINKXN	0x00100000
-#define DDFXCAPS_OVERLAYSHRINKY		0x00200000
-#define DDFXCAPS_OVERLAYSHRINKYN	0x00400000
-#define DDFXCAPS_OVERLAYSTRETCHX	0x00800000
-#define DDFXCAPS_OVERLAYSTRETCHXN	0x01000000
-#define DDFXCAPS_OVERLAYSTRETCHY	0x02000000
-#define DDFXCAPS_OVERLAYSTRETCHYN	0x04000000
-#define DDFXCAPS_OVERLAYMIRRORLEFTRIGHT	0x08000000
-#define DDFXCAPS_OVERLAYMIRRORUPDOWN	0x10000000
-
-#define DDFXCAPS_OVERLAYFILTER          DDFXCAPS_OVERLAYARITHSTRETCHY
-
-/* DDCAPS.dwFXAlphaCaps */
-#define DDFXALPHACAPS_BLTALPHAEDGEBLEND		0x00000001
-#define DDFXALPHACAPS_BLTALPHAPIXELS		0x00000002
-#define DDFXALPHACAPS_BLTALPHAPIXELSNEG		0x00000004
-#define DDFXALPHACAPS_BLTALPHASURFACES		0x00000008
-#define DDFXALPHACAPS_BLTALPHASURFACESNEG	0x00000010
-#define DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND	0x00000020
-#define DDFXALPHACAPS_OVERLAYALPHAPIXELS	0x00000040
-#define DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG	0x00000080
-#define DDFXALPHACAPS_OVERLAYALPHASURFACES	0x00000100
-#define DDFXALPHACAPS_OVERLAYALPHASURFACESNEG	0x00000200
-
-/* DDCAPS.dwPalCaps */
-#define DDPCAPS_4BIT			0x00000001
-#define DDPCAPS_8BITENTRIES		0x00000002
-#define DDPCAPS_8BIT			0x00000004
-#define DDPCAPS_INITIALIZE		0x00000008
-#define DDPCAPS_PRIMARYSURFACE		0x00000010
-#define DDPCAPS_PRIMARYSURFACELEFT	0x00000020
-#define DDPCAPS_ALLOW256		0x00000040
-#define DDPCAPS_VSYNC			0x00000080
-#define DDPCAPS_1BIT			0x00000100
-#define DDPCAPS_2BIT			0x00000200
-#define DDPCAPS_ALPHA                   0x00000400
-
-/* DDCAPS.dwSVCaps */
-/* the first 4 of these are now obsolete */
-#if DIRECTDRAW_VERSION >= 0x700	/* FIXME: I'm not sure when this switch occurred */
-#define DDSVCAPS_RESERVED1		0x00000001
-#define DDSVCAPS_RESERVED2		0x00000002
-#define DDSVCAPS_RESERVED3		0x00000004
-#define DDSVCAPS_RESERVED4		0x00000008
-#else
-#define DDSVCAPS_ENIGMA			0x00000001
-#define DDSVCAPS_FLICKER		0x00000002
-#define DDSVCAPS_REDBLUE		0x00000004
-#define DDSVCAPS_SPLIT			0x00000008
-#endif
-#define DDSVCAPS_STEREOSEQUENTIAL       0x00000010
-
-/* BitDepths */
-#define DDBD_1				0x00004000
-#define DDBD_2				0x00002000
-#define DDBD_4				0x00001000
-#define DDBD_8				0x00000800
-#define DDBD_16				0x00000400
-#define DDBD_24				0x00000200
-#define DDBD_32				0x00000100
-
-/* DDOVERLAYFX.dwDDFX */
-#define DDOVERFX_ARITHSTRETCHY		0x00000001
-#define DDOVERFX_MIRRORLEFTRIGHT	0x00000002
-#define DDOVERFX_MIRRORUPDOWN		0x00000004
-
-/* UpdateOverlay flags */
-#define DDOVER_ALPHADEST                        0x00000001
-#define DDOVER_ALPHADESTCONSTOVERRIDE           0x00000002
-#define DDOVER_ALPHADESTNEG                     0x00000004
-#define DDOVER_ALPHADESTSURFACEOVERRIDE         0x00000008
-#define DDOVER_ALPHAEDGEBLEND                   0x00000010
-#define DDOVER_ALPHASRC                         0x00000020
-#define DDOVER_ALPHASRCCONSTOVERRIDE            0x00000040
-#define DDOVER_ALPHASRCNEG                      0x00000080
-#define DDOVER_ALPHASRCSURFACEOVERRIDE          0x00000100
-#define DDOVER_HIDE                             0x00000200
-#define DDOVER_KEYDEST                          0x00000400
-#define DDOVER_KEYDESTOVERRIDE                  0x00000800
-#define DDOVER_KEYSRC                           0x00001000
-#define DDOVER_KEYSRCOVERRIDE                   0x00002000
-#define DDOVER_SHOW                             0x00004000
-#define DDOVER_ADDDIRTYRECT                     0x00008000
-#define DDOVER_REFRESHDIRTYRECTS                0x00010000
-#define DDOVER_REFRESHALL                       0x00020000
-#define DDOVER_DDFX                             0x00080000
-#define DDOVER_AUTOFLIP                         0x00100000
-#define DDOVER_BOB                              0x00200000
-#define DDOVER_OVERRIDEBOBWEAVE                 0x00400000
-#define DDOVER_INTERLEAVED                      0x00800000
-
-/* DDCOLORKEY.dwFlags */
-#define DDPF_ALPHAPIXELS		0x00000001
-#define DDPF_ALPHA			0x00000002
-#define DDPF_FOURCC			0x00000004
-#define DDPF_PALETTEINDEXED4		0x00000008
-#define DDPF_PALETTEINDEXEDTO8		0x00000010
-#define DDPF_PALETTEINDEXED8		0x00000020
-#define DDPF_RGB			0x00000040
-#define DDPF_COMPRESSED			0x00000080
-#define DDPF_RGBTOYUV			0x00000100
-#define DDPF_YUV			0x00000200
-#define DDPF_ZBUFFER			0x00000400
-#define DDPF_PALETTEINDEXED1		0x00000800
-#define DDPF_PALETTEINDEXED2		0x00001000
-#define DDPF_ZPIXELS			0x00002000
-#define DDPF_STENCILBUFFER              0x00004000
-#define DDPF_ALPHAPREMULT               0x00008000
-#define DDPF_LUMINANCE                  0x00020000
-#define DDPF_BUMPLUMINANCE              0x00040000
-#define DDPF_BUMPDUDV                   0x00080000
-
-/* SetCooperativeLevel dwFlags */
-#define DDSCL_FULLSCREEN		0x00000001
-#define DDSCL_ALLOWREBOOT		0x00000002
-#define DDSCL_NOWINDOWCHANGES		0x00000004
-#define DDSCL_NORMAL			0x00000008
-#define DDSCL_EXCLUSIVE			0x00000010
-#define DDSCL_ALLOWMODEX		0x00000040
-#define DDSCL_SETFOCUSWINDOW		0x00000080
-#define DDSCL_SETDEVICEWINDOW		0x00000100
-#define DDSCL_CREATEDEVICEWINDOW	0x00000200
-#define DDSCL_MULTITHREADED             0x00000400
-#define DDSCL_FPUSETUP                  0x00000800
-#define DDSCL_FPUPRESERVE               0x00001000
-
-
-/* DDSURFACEDESC.dwFlags */
-#define	DDSD_CAPS		0x00000001
-#define	DDSD_HEIGHT		0x00000002
-#define	DDSD_WIDTH		0x00000004
-#define	DDSD_PITCH		0x00000008
-#define	DDSD_BACKBUFFERCOUNT	0x00000020
-#define	DDSD_ZBUFFERBITDEPTH	0x00000040
-#define	DDSD_ALPHABITDEPTH	0x00000080
-#define	DDSD_LPSURFACE		0x00000800
-#define	DDSD_PIXELFORMAT	0x00001000
-#define	DDSD_CKDESTOVERLAY	0x00002000
-#define	DDSD_CKDESTBLT		0x00004000
-#define	DDSD_CKSRCOVERLAY	0x00008000
-#define	DDSD_CKSRCBLT		0x00010000
-#define	DDSD_MIPMAPCOUNT	0x00020000
-#define	DDSD_REFRESHRATE	0x00040000
-#define	DDSD_LINEARSIZE		0x00080000
-#define DDSD_TEXTURESTAGE       0x00100000
-#define DDSD_FVF                0x00200000
-#define DDSD_SRCVBHANDLE        0x00400000
-#define DDSD_DEPTH              0x00800000
-#define DDSD_ALL                0x00fff9ee
-
-/* EnumSurfaces flags */
-#define DDENUMSURFACES_ALL          0x00000001
-#define DDENUMSURFACES_MATCH        0x00000002
-#define DDENUMSURFACES_NOMATCH      0x00000004
-#define DDENUMSURFACES_CANBECREATED 0x00000008
-#define DDENUMSURFACES_DOESEXIST    0x00000010
-
-/* SetDisplayMode flags */
-#define DDSDM_STANDARDVGAMODE	0x00000001
-
-/* EnumDisplayModes flags */
-#define DDEDM_REFRESHRATES	0x00000001
-#define DDEDM_STANDARDVGAMODES	0x00000002
-
-/* WaitForVerticalDisplay flags */
-
-#define DDWAITVB_BLOCKBEGIN		0x00000001
-#define DDWAITVB_BLOCKBEGINEVENT	0x00000002
-#define DDWAITVB_BLOCKEND		0x00000004
-
-typedef struct _DDSURFACEDESC
-{
-    DWORD	dwSize;		/* 0: size of the DDSURFACEDESC structure*/
-    DWORD	dwFlags;	/* 4: determines what fields are valid*/
-    DWORD	dwHeight;	/* 8: height of surface to be created*/
-    DWORD	dwWidth;	/* C: width of input surface*/
-    __extension__ union {
-        LONG	lPitch;	/* 10: distance to start of next line (return value only)*/
-        DWORD	dwLinearSize;
-    } DUMMYUNIONNAME1;
-    DWORD	dwBackBufferCount;/* 14: number of back buffers requested*/
-    __extension__ union {
-        DWORD	dwMipMapCount;/* 18:number of mip-map levels requested*/
-        DWORD	dwZBufferBitDepth;/*18: depth of Z buffer requested*/
-        DWORD	dwRefreshRate;/* 18:refresh rate (used when display mode is described)*/
-    } DUMMYUNIONNAME2;
-    DWORD	dwAlphaBitDepth;/* 1C:depth of alpha buffer requested*/
-    DWORD	dwReserved;	/* 20:reserved*/
-    LPVOID	lpSurface;	/* 24:pointer to the associated surface memory*/
-    DDCOLORKEY	ddckCKDestOverlay;/* 28: CK for dest overlay use*/
-    DDCOLORKEY	ddckCKDestBlt;	/* 30: CK for destination blt use*/
-    DDCOLORKEY	ddckCKSrcOverlay;/* 38: CK for source overlay use*/
-    DDCOLORKEY	ddckCKSrcBlt;	/* 40: CK for source blt use*/
-    DDPIXELFORMAT	ddpfPixelFormat;/* 48: pixel format description of the surface*/
-    DDSCAPS		ddsCaps;	/* 68: direct draw surface caps */
-} DDSURFACEDESC,*LPDDSURFACEDESC;
-
-typedef struct _DDSURFACEDESC2
-{
-    DWORD	dwSize;		/* 0: size of the DDSURFACEDESC2 structure*/
-    DWORD	dwFlags;	/* 4: determines what fields are valid*/
-    DWORD	dwHeight;	/* 8: height of surface to be created*/
-    DWORD	dwWidth;	/* C: width of input surface*/
-    __extension__ union {
-        LONG	lPitch;	      /*10: distance to start of next line (return value only)*/
-        DWORD   dwLinearSize; /*10: formless late-allocated optimized surface size */
-    } DUMMYUNIONNAME1;
-    DWORD	dwBackBufferCount;/* 14: number of back buffers requested*/
-    __extension__ union {
-        DWORD	dwMipMapCount;/* 18:number of mip-map levels requested*/
-        DWORD	dwRefreshRate;/* 18:refresh rate (used when display mode is described)*/
-        DWORD   dwSrcVBHandle;/* 18:source used in VB::Optimize */
-    } DUMMYUNIONNAME2;
-    DWORD	dwAlphaBitDepth;/* 1C:depth of alpha buffer requested*/
-    DWORD	dwReserved;	/* 20:reserved*/
-    LPVOID	lpSurface;	/* 24:pointer to the associated surface memory*/
-    __extension__ union {
-        DDCOLORKEY	ddckCKDestOverlay; /* 28: CK for dest overlay use*/
-        DWORD 		dwEmptyFaceColor;  /* 28: color for empty cubemap faces */
-    } DUMMYUNIONNAME3;
-    DDCOLORKEY	ddckCKDestBlt;	/* 30: CK for destination blt use*/
-    DDCOLORKEY	ddckCKSrcOverlay;/* 38: CK for source overlay use*/
-    DDCOLORKEY	ddckCKSrcBlt;	/* 40: CK for source blt use*/
-
-    __extension__ union {
-        DDPIXELFORMAT	ddpfPixelFormat;/* 48: pixel format description of the surface*/
-        DWORD 		dwFVF;	/* 48: vertex format description of vertex buffers */
-    } DUMMYUNIONNAME4;
-    DDSCAPS2	ddsCaps;  /* 68: DDraw surface caps */
-    DWORD		dwTextureStage; /* 78: stage in multitexture cascade */
-} DDSURFACEDESC2,*LPDDSURFACEDESC2;
-
-
-typedef struct _DDARGB {
-    BYTE	blue;
-    BYTE	green;
-    BYTE	red;
-    BYTE	alpha;
-} DDARGB, *LPDDARGB;
-
-typedef struct _DDRGBA {
-    BYTE	red;
-    BYTE	green;
-    BYTE	blue;
-    BYTE	alpha;
-} DDRGBA, *LPDDRGBA;
-
-
-/* DDCOLORCONTROL.dwFlags */
-#define DDCOLOR_BRIGHTNESS	0x00000001
-#define DDCOLOR_CONTRAST	0x00000002
-#define DDCOLOR_HUE		0x00000004
-#define DDCOLOR_SATURATION	0x00000008
-#define DDCOLOR_SHARPNESS	0x00000010
-#define DDCOLOR_GAMMA		0x00000020
-#define DDCOLOR_COLORENABLE	0x00000040
-
-typedef struct {
-    DWORD	dwSize;
-    DWORD	dwFlags;
-    LONG	lBrightness;
-    LONG	lContrast;
-    LONG	lHue;
-    LONG	lSaturation;
-    LONG	lSharpness;
-    LONG	lGamma;
-    LONG	lColorEnable;
-    DWORD	dwReserved1;
-} DDCOLORCONTROL,*LPDDCOLORCONTROL;
-
-typedef struct {
-    WORD	red[256];
-    WORD	green[256];
-    WORD	blue[256];
-} DDGAMMARAMP,*LPDDGAMMARAMP;
-
-typedef BOOL (CALLBACK *LPDDENUMCALLBACKA)(GUID *, LPSTR, LPSTR, LPVOID);
-typedef BOOL (CALLBACK *LPDDENUMCALLBACKW)(GUID *, LPWSTR, LPWSTR, LPVOID);
-DECL_WINELIB_TYPE_AW(LPDDENUMCALLBACK)
-
-typedef HRESULT (CALLBACK *LPDDENUMMODESCALLBACK)(LPDDSURFACEDESC, LPVOID);
-typedef HRESULT (CALLBACK *LPDDENUMMODESCALLBACK2)(LPDDSURFACEDESC2, LPVOID);
-typedef HRESULT (CALLBACK *LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID);
-typedef HRESULT (CALLBACK *LPDDENUMSURFACESCALLBACK2)(LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID);
-typedef HRESULT (CALLBACK *LPDDENUMSURFACESCALLBACK7)(LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID);
-
-typedef BOOL (CALLBACK *LPDDENUMCALLBACKEXA)(GUID *, LPSTR, LPSTR, LPVOID, HMONITOR);
-typedef BOOL (CALLBACK *LPDDENUMCALLBACKEXW)(GUID *, LPWSTR, LPWSTR, LPVOID, HMONITOR);
-DECL_WINELIB_TYPE_AW(LPDDENUMCALLBACKEX)
-
-HRESULT WINAPI DirectDrawEnumerateA(LPDDENUMCALLBACKA,LPVOID);
-HRESULT WINAPI DirectDrawEnumerateW(LPDDENUMCALLBACKW,LPVOID);
-#define DirectDrawEnumerate WINELIB_NAME_AW(DirectDrawEnumerate)
-
-HRESULT WINAPI DirectDrawEnumerateExA( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags);
-HRESULT WINAPI DirectDrawEnumerateExW( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags);
-#define DirectDrawEnumerateEx WINELIB_NAME_AW(DirectDrawEnumerateEx)
-
-typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXA)( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags);
-typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXW)( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags);
-DECL_WINELIB_TYPE_AW(LPDIRECTDRAWENUMERATEEX)
-
-/* flags for DirectDrawEnumerateEx */
-#define DDENUM_ATTACHEDSECONDARYDEVICES	0x00000001
-#define DDENUM_DETACHEDSECONDARYDEVICES	0x00000002
-#define DDENUM_NONDISPLAYDEVICES	0x00000004
-
-/* flags for DirectDrawCreate or IDirectDraw::Initialize */
-#define DDCREATE_HARDWAREONLY	1L
-#define DDCREATE_EMULATIONONLY	2L
-
-typedef struct _DDBLTFX
-{
-    DWORD       dwSize;                         /* size of structure */
-    DWORD       dwDDFX;                         /* FX operations */
-    DWORD       dwROP;                          /* Win32 raster operations */
-    DWORD       dwDDROP;                        /* Raster operations new for DirectDraw */
-    DWORD       dwRotationAngle;                /* Rotation angle for blt */
-    DWORD       dwZBufferOpCode;                /* ZBuffer compares */
-    DWORD       dwZBufferLow;                   /* Low limit of Z buffer */
-    DWORD       dwZBufferHigh;                  /* High limit of Z buffer */
-    DWORD       dwZBufferBaseDest;              /* Destination base value */
-    DWORD       dwZDestConstBitDepth;           /* Bit depth used to specify Z constant for destination */
-    __extension__ union
-    {
-        DWORD   dwZDestConst;                   /* Constant to use as Z buffer for dest */
-        LPDIRECTDRAWSURFACE lpDDSZBufferDest;   /* Surface to use as Z buffer for dest */
-    } DUMMYUNIONNAME1;
-    DWORD       dwZSrcConstBitDepth;            /* Bit depth used to specify Z constant for source */
-    __extension__ union
-    {
-        DWORD   dwZSrcConst;                    /* Constant to use as Z buffer for src */
-        LPDIRECTDRAWSURFACE lpDDSZBufferSrc;    /* Surface to use as Z buffer for src */
-    } DUMMYUNIONNAME2;
-    DWORD       dwAlphaEdgeBlendBitDepth;       /* Bit depth used to specify constant for alpha edge blend */
-    DWORD       dwAlphaEdgeBlend;               /* Alpha for edge blending */
-    DWORD       dwReserved;
-    DWORD       dwAlphaDestConstBitDepth;       /* Bit depth used to specify alpha constant for destination */
-    __extension__ union
-    {
-        DWORD   dwAlphaDestConst;               /* Constant to use as Alpha Channel */
-        LPDIRECTDRAWSURFACE lpDDSAlphaDest;     /* Surface to use as Alpha Channel */
-    } DUMMYUNIONNAME3;
-    DWORD       dwAlphaSrcConstBitDepth;        /* Bit depth used to specify alpha constant for source */
-    __extension__ union
-    {
-        DWORD   dwAlphaSrcConst;                /* Constant to use as Alpha Channel */
-        LPDIRECTDRAWSURFACE lpDDSAlphaSrc;      /* Surface to use as Alpha Channel */
-    } DUMMYUNIONNAME4;
-    __extension__ union
-    {
-        DWORD   dwFillColor;                    /* color in RGB or Palettized */
-        DWORD   dwFillDepth;                    /* depth value for z-buffer */
-    DWORD   dwFillPixel;			/* pixel val for RGBA or RGBZ */
-        LPDIRECTDRAWSURFACE lpDDSPattern;       /* Surface to use as pattern */
-    } DUMMYUNIONNAME5;
-    DDCOLORKEY  ddckDestColorkey;               /* DestColorkey override */
-    DDCOLORKEY  ddckSrcColorkey;                /* SrcColorkey override */
-} DDBLTFX,*LPDDBLTFX;
-
-/* dwDDFX */
-/* arithmetic stretching along y axis */
-#define DDBLTFX_ARITHSTRETCHY			0x00000001
-/* mirror on y axis */
-#define DDBLTFX_MIRRORLEFTRIGHT			0x00000002
-/* mirror on x axis */
-#define DDBLTFX_MIRRORUPDOWN			0x00000004
-/* do not tear */
-#define DDBLTFX_NOTEARING			0x00000008
-/* 180 degrees clockwise rotation */
-#define DDBLTFX_ROTATE180			0x00000010
-/* 270 degrees clockwise rotation */
-#define DDBLTFX_ROTATE270			0x00000020
-/* 90 degrees clockwise rotation */
-#define DDBLTFX_ROTATE90			0x00000040
-/* dwZBufferLow and dwZBufferHigh specify limits to the copied Z values */
-#define DDBLTFX_ZBUFFERRANGE			0x00000080
-/* add dwZBufferBaseDest to every source z value before compare */
-#define DDBLTFX_ZBUFFERBASEDEST			0x00000100
-
-typedef struct _DDOVERLAYFX
-{
-    DWORD       dwSize;                         /* size of structure */
-    DWORD       dwAlphaEdgeBlendBitDepth;       /* Bit depth used to specify constant for alpha edge blend */
-    DWORD       dwAlphaEdgeBlend;               /* Constant to use as alpha for edge blend */
-    DWORD       dwReserved;
-    DWORD       dwAlphaDestConstBitDepth;       /* Bit depth used to specify alpha constant for destination */
-    __extension__ union
-    {
-        DWORD   dwAlphaDestConst;               /* Constant to use as alpha channel for dest */
-        LPDIRECTDRAWSURFACE lpDDSAlphaDest;     /* Surface to use as alpha channel for dest */
-    } DUMMYUNIONNAME1;
-    DWORD       dwAlphaSrcConstBitDepth;        /* Bit depth used to specify alpha constant for source */
-    __extension__ union
-    {
-        DWORD   dwAlphaSrcConst;                /* Constant to use as alpha channel for src */
-        LPDIRECTDRAWSURFACE lpDDSAlphaSrc;      /* Surface to use as alpha channel for src */
-    } DUMMYUNIONNAME2;
-    DDCOLORKEY  dckDestColorkey;                /* DestColorkey override */
-    DDCOLORKEY  dckSrcColorkey;                 /* DestColorkey override */
-    DWORD       dwDDFX;                         /* Overlay FX */
-    DWORD       dwFlags;                        /* flags */
-} DDOVERLAYFX,*LPDDOVERLAYFX;
-
-typedef struct _DDBLTBATCH
-{
-    LPRECT		lprDest;
-    LPDIRECTDRAWSURFACE	lpDDSSrc;
-    LPRECT		lprSrc;
-    DWORD		dwFlags;
-    LPDDBLTFX		lpDDBltFx;
-} DDBLTBATCH,*LPDDBLTBATCH;
-
-#define MAX_DDDEVICEID_STRING          512
-
-#define DDGDI_GETHOSTIDENTIFIER 1
-
-typedef struct tagDDDEVICEIDENTIFIER {
-  char    szDriver[MAX_DDDEVICEID_STRING];
-  char    szDescription[MAX_DDDEVICEID_STRING];
-  LARGE_INTEGER  liDriverVersion;
-  DWORD   dwVendorId;
-  DWORD   dwDeviceId;
-  DWORD   dwSubSysId;
-  DWORD   dwRevision;
-  GUID    guidDeviceIdentifier;
-} DDDEVICEIDENTIFIER, * LPDDDEVICEIDENTIFIER;
-
-typedef struct tagDDDEVICEIDENTIFIER2 {
-  char    szDriver[MAX_DDDEVICEID_STRING];	/* user readable driver name */
-  char    szDescription[MAX_DDDEVICEID_STRING]; /* user readable description */
-  LARGE_INTEGER  liDriverVersion;		/* driver version */
-  DWORD   dwVendorId;				/* vendor ID, zero if unknown */
-  DWORD   dwDeviceId;				/* chipset ID, zero if unknown */
-  DWORD   dwSubSysId;				/* board ID, zero if unknown */
-  DWORD   dwRevision;				/* chipset version, zero if unknown */
-  GUID    guidDeviceIdentifier;			/* unique ID for this driver/chipset combination */
-  DWORD   dwWHQLLevel;				/* Windows Hardware Quality Lab certification level */
-} DDDEVICEIDENTIFIER2, * LPDDDEVICEIDENTIFIER2;
-
-/*****************************************************************************
- * IDirectDrawPalette interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawPalette
-DECLARE_INTERFACE_(IDirectDrawPalette,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectDrawPalette methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDWORD lpdwCaps) PURE;
-    STDMETHOD(GetEntries)(THIS_ DWORD dwFlags, DWORD dwBase, DWORD dwNumEntries, LPPALETTEENTRY lpEntries) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW lpDD, DWORD dwFlags, LPPALETTEENTRY lpDDColorTable) PURE;
-    STDMETHOD(SetEntries)(THIS_ DWORD dwFlags, DWORD dwStartingEntry, DWORD dwCount, LPPALETTEENTRY lpEntries) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectDrawPalette_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawPalette_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectDrawPalette_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectDrawPalette methods ***/
-#define IDirectDrawPalette_GetCaps(p,a)          (p)->lpVtbl->GetCaps(p,a)
-#define IDirectDrawPalette_GetEntries(p,a,b,c,d) (p)->lpVtbl->GetEntries(p,a,b,c,d)
-#define IDirectDrawPalette_Initialize(p,a,b,c)   (p)->lpVtbl->Initialize(p,a,b,c)
-#define IDirectDrawPalette_SetEntries(p,a,b,c,d) (p)->lpVtbl->SetEntries(p,a,b,c,d)
-#else
-/*** IUnknown methods ***/
-#define IDirectDrawPalette_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectDrawPalette_AddRef(p)             (p)->AddRef()
-#define IDirectDrawPalette_Release(p)            (p)->Release()
-/*** IDirectDrawPalette methods ***/
-#define IDirectDrawPalette_GetCaps(p,a)          (p)->GetCaps(a)
-#define IDirectDrawPalette_GetEntries(p,a,b,c,d) (p)->GetEntries(a,b,c,d)
-#define IDirectDrawPalette_Initialize(p,a,b,c)   (p)->Initialize(a,b,c)
-#define IDirectDrawPalette_SetEntries(p,a,b,c,d) (p)->SetEntries(a,b,c,d)
-#endif
-
-
-/*****************************************************************************
- * IDirectDrawClipper interface
- */
-#define INTERFACE IDirectDrawClipper
-DECLARE_INTERFACE_(IDirectDrawClipper,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectDrawClipper methods ***/
-    STDMETHOD(GetClipList)(THIS_ LPRECT lpRect, LPRGNDATA lpClipList, LPDWORD lpdwSize) PURE;
-    STDMETHOD(GetHWnd)(THIS_ HWND *lphWnd) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW lpDD, DWORD dwFlags) PURE;
-    STDMETHOD(IsClipListChanged)(THIS_ BOOL *lpbChanged) PURE;
-    STDMETHOD(SetClipList)(THIS_ LPRGNDATA lpClipList, DWORD dwFlags) PURE;
-    STDMETHOD(SetHWnd)(THIS_ DWORD dwFlags, HWND hWnd) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectDrawClipper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawClipper_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectDrawClipper_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectDrawClipper methods ***/
-#define IDirectDrawClipper_GetClipList(p,a,b,c)   (p)->lpVtbl->GetClipList(p,a,b,c)
-#define IDirectDrawClipper_GetHWnd(p,a)           (p)->lpVtbl->GetHWnd(p,a)
-#define IDirectDrawClipper_Initialize(p,a,b)      (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectDrawClipper_IsClipListChanged(p,a) (p)->lpVtbl->IsClipListChanged(p,a)
-#define IDirectDrawClipper_SetClipList(p,a,b)     (p)->lpVtbl->SetClipList(p,a,b)
-#define IDirectDrawClipper_SetHWnd(p,a,b)         (p)->lpVtbl->SetHWnd(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirectDrawClipper_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectDrawClipper_AddRef(p)             (p)->AddRef()
-#define IDirectDrawClipper_Release(p)            (p)->Release()
-/*** IDirectDrawClipper methods ***/
-#define IDirectDrawClipper_GetClipList(p,a,b,c)   (p)->GetClipList(a,b,c)
-#define IDirectDrawClipper_GetHWnd(p,a)           (p)->GetHWnd(a)
-#define IDirectDrawClipper_Initialize(p,a,b)      (p)->Initialize(a,b)
-#define IDirectDrawClipper_IsClipListChanged(p,a) (p)->IsClipListChanged(a)
-#define IDirectDrawClipper_SetClipList(p,a,b)     (p)->SetClipList(a,b)
-#define IDirectDrawClipper_SetHWnd(p,a,b)         (p)->SetHWnd(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirectDraw interface
- */
-#define INTERFACE IDirectDraw
-DECLARE_INTERFACE_(IDirectDraw,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectDraw methods ***/
-    STDMETHOD(Compact)(THIS) PURE;
-    STDMETHOD(CreateClipper)(THIS_ DWORD dwFlags, LPDIRECTDRAWCLIPPER *lplpDDClipper, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(CreatePalette)(THIS_ DWORD dwFlags, LPPALETTEENTRY lpColorTable, LPDIRECTDRAWPALETTE *lplpDDPalette, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc, LPDIRECTDRAWSURFACE *lplpDDSurface, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(DuplicateSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDSurface, LPDIRECTDRAWSURFACE *lplpDupDDSurface) PURE;
-    STDMETHOD(EnumDisplayModes)(THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMMODESCALLBACK lpEnumModesCallback) PURE;
-    STDMETHOD(EnumSurfaces)(THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSD, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback) PURE;
-    STDMETHOD(FlipToGDISurface)(THIS) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps) PURE;
-    STDMETHOD(GetDisplayMode)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
-    STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD lpNumCodes, LPDWORD lpCodes) PURE;
-    STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE *lplpGDIDDSurface) PURE;
-    STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD lpdwFrequency) PURE;
-    STDMETHOD(GetScanLine)(THIS_ LPDWORD lpdwScanLine) PURE;
-    STDMETHOD(GetVerticalBlankStatus)(THIS_ BOOL *lpbIsInVB) PURE;
-    STDMETHOD(Initialize)(THIS_ GUID *lpGUID) PURE;
-    STDMETHOD(RestoreDisplayMode)(THIS) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND hWnd, DWORD dwFlags) PURE;
-    STDMETHOD(SetDisplayMode)(THIS_ DWORD dwWidth, DWORD dwHeight, DWORD dwBPP) PURE;
-    STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD dwFlags, HANDLE hEvent) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectDraw_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDraw_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectDraw_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectDraw methods ***/
-#define IDirectDraw_Compact(p)                  (p)->lpVtbl->Compact(p)
-#define IDirectDraw_CreateClipper(p,a,b,c)      (p)->lpVtbl->CreateClipper(p,a,b,c)
-#define IDirectDraw_CreatePalette(p,a,b,c,d)    (p)->lpVtbl->CreatePalette(p,a,b,c,d)
-#define IDirectDraw_CreateSurface(p,a,b,c)      (p)->lpVtbl->CreateSurface(p,a,b,c)
-#define IDirectDraw_DuplicateSurface(p,a,b)     (p)->lpVtbl->DuplicateSurface(p,a,b)
-#define IDirectDraw_EnumDisplayModes(p,a,b,c,d) (p)->lpVtbl->EnumDisplayModes(p,a,b,c,d)
-#define IDirectDraw_EnumSurfaces(p,a,b,c,d)     (p)->lpVtbl->EnumSurfaces(p,a,b,c,d)
-#define IDirectDraw_FlipToGDISurface(p)         (p)->lpVtbl->FlipToGDISurface(p)
-#define IDirectDraw_GetCaps(p,a,b)              (p)->lpVtbl->GetCaps(p,a,b)
-#define IDirectDraw_GetDisplayMode(p,a)         (p)->lpVtbl->GetDisplayMode(p,a)
-#define IDirectDraw_GetFourCCCodes(p,a,b)       (p)->lpVtbl->GetFourCCCodes(p,a,b)
-#define IDirectDraw_GetGDISurface(p,a)          (p)->lpVtbl->GetGDISurface(p,a)
-#define IDirectDraw_GetMonitorFrequency(p,a)    (p)->lpVtbl->GetMonitorFrequency(p,a)
-#define IDirectDraw_GetScanLine(p,a)            (p)->lpVtbl->GetScanLine(p,a)
-#define IDirectDraw_GetVerticalBlankStatus(p,a) (p)->lpVtbl->GetVerticalBlankStatus(p,a)
-#define IDirectDraw_Initialize(p,a)             (p)->lpVtbl->Initialize(p,a)
-#define IDirectDraw_RestoreDisplayMode(p)       (p)->lpVtbl->RestoreDisplayMode(p)
-#define IDirectDraw_SetCooperativeLevel(p,a,b)  (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectDraw_SetDisplayMode(p,a,b,c)     (p)->lpVtbl->SetDisplayMode(p,a,b,c)
-#define IDirectDraw_WaitForVerticalBlank(p,a,b) (p)->lpVtbl->WaitForVerticalBlank(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirectDraw_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectDraw_AddRef(p)             (p)->AddRef()
-#define IDirectDraw_Release(p)            (p)->Release()
-/*** IDirectDraw methods ***/
-#define IDirectDraw_Compact(p)                  (p)->Compact()
-#define IDirectDraw_CreateClipper(p,a,b,c)      (p)->CreateClipper(a,b,c)
-#define IDirectDraw_CreatePalette(p,a,b,c,d)    (p)->CreatePalette(a,b,c,d)
-#define IDirectDraw_CreateSurface(p,a,b,c)      (p)->CreateSurface(a,b,c)
-#define IDirectDraw_DuplicateSurface(p,a,b)     (p)->DuplicateSurface(a,b)
-#define IDirectDraw_EnumDisplayModes(p,a,b,c,d) (p)->EnumDisplayModes(a,b,c,d)
-#define IDirectDraw_EnumSurfaces(p,a,b,c,d)     (p)->EnumSurfaces(a,b,c,d)
-#define IDirectDraw_FlipToGDISurface(p)         (p)->FlipToGDISurface()
-#define IDirectDraw_GetCaps(p,a,b)              (p)->GetCaps(a,b)
-#define IDirectDraw_GetDisplayMode(p,a)         (p)->GetDisplayMode(a)
-#define IDirectDraw_GetFourCCCodes(p,a,b)       (p)->GetFourCCCodes(a,b)
-#define IDirectDraw_GetGDISurface(p,a)          (p)->GetGDISurface(a)
-#define IDirectDraw_GetMonitorFrequency(p,a)    (p)->GetMonitorFrequency(a)
-#define IDirectDraw_GetScanLine(p,a)            (p)->GetScanLine(a)
-#define IDirectDraw_GetVerticalBlankStatus(p,a) (p)->GetVerticalBlankStatus(a)
-#define IDirectDraw_Initialize(p,a)             (p)->Initialize(a)
-#define IDirectDraw_RestoreDisplayMode(p)       (p)->RestoreDisplayMode()
-#define IDirectDraw_SetCooperativeLevel(p,a,b)  (p)->SetCooperativeLevel(a,b)
-#define IDirectDraw_SetDisplayMode(p,a,b,c)     (p)->SetDisplayMode(a,b,c)
-#define IDirectDraw_WaitForVerticalBlank(p,a,b) (p)->WaitForVerticalBlank(a,b)
-#endif
-
-
-/* flags for Lock() */
-#define DDLOCK_SURFACEMEMORYPTR	0x00000000
-#define DDLOCK_WAIT		0x00000001
-#define DDLOCK_EVENT		0x00000002
-#define DDLOCK_READONLY		0x00000010
-#define DDLOCK_WRITEONLY	0x00000020
-#define DDLOCK_NOSYSLOCK	0x00000800
-#define DDLOCK_NOOVERWRITE      0x00001000
-#define DDLOCK_DISCARDCONTENTS  0x00002000
-
-
-/*****************************************************************************
- * IDirectDraw2 interface
- */
-/* Note: IDirectDraw2 cannot derive from IDirectDraw because the number of
- * arguments of SetDisplayMode has changed !
- */
-#define INTERFACE IDirectDraw2
-DECLARE_INTERFACE_(IDirectDraw2,IUnknown)
-{
-          /*** IUnknown methods ***/
-/*00*/    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-/*04*/    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-/*08*/    STDMETHOD_(ULONG,Release)(THIS) PURE;
-          /*** IDirectDraw2 methods ***/
-/*0c*/    STDMETHOD(Compact)(THIS) PURE;
-/*10*/    STDMETHOD(CreateClipper)(THIS_ DWORD dwFlags, LPDIRECTDRAWCLIPPER *lplpDDClipper, IUnknown *pUnkOuter) PURE;
-/*14*/    STDMETHOD(CreatePalette)(THIS_ DWORD dwFlags, LPPALETTEENTRY lpColorTable, LPDIRECTDRAWPALETTE *lplpDDPalette, IUnknown *pUnkOuter) PURE;
-/*18*/    STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc, LPDIRECTDRAWSURFACE *lplpDDSurface, IUnknown *pUnkOuter) PURE;
-/*1c*/    STDMETHOD(DuplicateSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDSurface, LPDIRECTDRAWSURFACE *lplpDupDDSurface) PURE;
-/*20*/    STDMETHOD(EnumDisplayModes)(THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMMODESCALLBACK lpEnumModesCallback) PURE;
-/*24*/    STDMETHOD(EnumSurfaces)(THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSD, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback) PURE;
-/*28*/    STDMETHOD(FlipToGDISurface)(THIS) PURE;
-/*2c*/    STDMETHOD(GetCaps)(THIS_ LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps) PURE;
-/*30*/    STDMETHOD(GetDisplayMode)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
-/*34*/    STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD lpNumCodes, LPDWORD lpCodes) PURE;
-/*38*/    STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE *lplpGDIDDSurface) PURE;
-/*3c*/    STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD lpdwFrequency) PURE;
-/*40*/    STDMETHOD(GetScanLine)(THIS_ LPDWORD lpdwScanLine) PURE;
-/*44*/    STDMETHOD(GetVerticalBlankStatus)(THIS_ BOOL *lpbIsInVB) PURE;
-/*48*/    STDMETHOD(Initialize)(THIS_ GUID *lpGUID) PURE;
-/*4c*/    STDMETHOD(RestoreDisplayMode)(THIS) PURE;
-/*50*/    STDMETHOD(SetCooperativeLevel)(THIS_ HWND hWnd, DWORD dwFlags) PURE;
-/*54*/    STDMETHOD(SetDisplayMode)(THIS_ DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags) PURE;
-/*58*/    STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD dwFlags, HANDLE hEvent) PURE;
-          /* added in v2 */
-/*5c*/    STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS lpDDCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectDraw2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDraw2_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectDraw2_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectDraw methods ***/
-#define IDirectDraw2_Compact(p)                  (p)->lpVtbl->Compact(p)
-#define IDirectDraw2_CreateClipper(p,a,b,c)      (p)->lpVtbl->CreateClipper(p,a,b,c)
-#define IDirectDraw2_CreatePalette(p,a,b,c,d)    (p)->lpVtbl->CreatePalette(p,a,b,c,d)
-#define IDirectDraw2_CreateSurface(p,a,b,c)      (p)->lpVtbl->CreateSurface(p,a,b,c)
-#define IDirectDraw2_DuplicateSurface(p,a,b)     (p)->lpVtbl->DuplicateSurface(p,a,b)
-#define IDirectDraw2_EnumDisplayModes(p,a,b,c,d) (p)->lpVtbl->EnumDisplayModes(p,a,b,c,d)
-#define IDirectDraw2_EnumSurfaces(p,a,b,c,d)     (p)->lpVtbl->EnumSurfaces(p,a,b,c,d)
-#define IDirectDraw2_FlipToGDISurface(p)         (p)->lpVtbl->FlipToGDISurface(p)
-#define IDirectDraw2_GetCaps(p,a,b)              (p)->lpVtbl->GetCaps(p,a,b)
-#define IDirectDraw2_GetDisplayMode(p,a)         (p)->lpVtbl->GetDisplayMode(p,a)
-#define IDirectDraw2_GetFourCCCodes(p,a,b)       (p)->lpVtbl->GetFourCCCodes(p,a,b)
-#define IDirectDraw2_GetGDISurface(p,a)          (p)->lpVtbl->GetGDISurface(p,a)
-#define IDirectDraw2_GetMonitorFrequency(p,a)    (p)->lpVtbl->GetMonitorFrequency(p,a)
-#define IDirectDraw2_GetScanLine(p,a)            (p)->lpVtbl->GetScanLine(p,a)
-#define IDirectDraw2_GetVerticalBlankStatus(p,a) (p)->lpVtbl->GetVerticalBlankStatus(p,a)
-#define IDirectDraw2_Initialize(p,a)             (p)->lpVtbl->Initialize(p,a)
-#define IDirectDraw2_RestoreDisplayMode(p)       (p)->lpVtbl->RestoreDisplayMode(p)
-#define IDirectDraw2_SetCooperativeLevel(p,a,b)  (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectDraw2_SetDisplayMode(p,a,b,c,d,e) (p)->lpVtbl->SetDisplayMode(p,a,b,c,d,e)
-#define IDirectDraw2_WaitForVerticalBlank(p,a,b) (p)->lpVtbl->WaitForVerticalBlank(p,a,b)
-/*** IDirectDraw2 methods ***/
-#define IDirectDraw2_GetAvailableVidMem(p,a,b,c) (p)->lpVtbl->GetAvailableVidMem(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirectDraw2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectDraw2_AddRef(p)             (p)->AddRef()
-#define IDirectDraw2_Release(p)            (p)->Release()
-/*** IDirectDraw methods ***/
-#define IDirectDraw2_Compact(p)                  (p)->Compact()
-#define IDirectDraw2_CreateClipper(p,a,b,c)      (p)->CreateClipper(a,b,c)
-#define IDirectDraw2_CreatePalette(p,a,b,c,d)    (p)->CreatePalette(a,b,c,d)
-#define IDirectDraw2_CreateSurface(p,a,b,c)      (p)->CreateSurface(a,b,c)
-#define IDirectDraw2_DuplicateSurface(p,a,b)     (p)->DuplicateSurface(a,b)
-#define IDirectDraw2_EnumDisplayModes(p,a,b,c,d) (p)->EnumDisplayModes(a,b,c,d)
-#define IDirectDraw2_EnumSurfaces(p,a,b,c,d)     (p)->EnumSurfaces(a,b,c,d)
-#define IDirectDraw2_FlipToGDISurface(p)         (p)->FlipToGDISurface()
-#define IDirectDraw2_GetCaps(p,a,b)              (p)->GetCaps(a,b)
-#define IDirectDraw2_GetDisplayMode(p,a)         (p)->GetDisplayMode(a)
-#define IDirectDraw2_GetFourCCCodes(p,a,b)       (p)->GetFourCCCodes(a,b)
-#define IDirectDraw2_GetGDISurface(p,a)          (p)->GetGDISurface(a)
-#define IDirectDraw2_GetMonitorFrequency(p,a)    (p)->GetMonitorFrequency(a)
-#define IDirectDraw2_GetScanLine(p,a)            (p)->GetScanLine(a)
-#define IDirectDraw2_GetVerticalBlankStatus(p,a) (p)->GetVerticalBlankStatus(a)
-#define IDirectDraw2_Initialize(p,a)             (p)->Initialize(a)
-#define IDirectDraw2_RestoreDisplayMode(p)       (p)->RestoreDisplayMode()
-#define IDirectDraw2_SetCooperativeLevel(p,a,b)  (p)->SetCooperativeLevel(a,b)
-#define IDirectDraw2_SetDisplayMode(p,a,b,c,d,e) (p)->SetDisplayMode(a,b,c,d,e)
-#define IDirectDraw2_WaitForVerticalBlank(p,a,b) (p)->WaitForVerticalBlank(a,b)
-/*** IDirectDraw2 methods ***/
-#define IDirectDraw2_GetAvailableVidMem(p,a,b,c) (p)->GetAvailableVidMem(a,b,c)
-#endif
-
-
-/*****************************************************************************
- * IDirectDraw3 interface
- */
-#define INTERFACE IDirectDraw3
-DECLARE_INTERFACE_(IDirectDraw3,IUnknown)
-{
-          /*** IUnknown methods ***/
-/*00*/    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-/*04*/    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-/*08*/    STDMETHOD_(ULONG,Release)(THIS) PURE;
-          /*** IDirectDraw2 methods ***/
-/*0c*/    STDMETHOD(Compact)(THIS) PURE;
-/*10*/    STDMETHOD(CreateClipper)(THIS_ DWORD dwFlags, LPDIRECTDRAWCLIPPER *lplpDDClipper, IUnknown *pUnkOuter) PURE;
-/*14*/    STDMETHOD(CreatePalette)(THIS_ DWORD dwFlags, LPPALETTEENTRY lpColorTable, LPDIRECTDRAWPALETTE *lplpDDPalette, IUnknown *pUnkOuter) PURE;
-/*18*/    STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc, LPDIRECTDRAWSURFACE *lplpDDSurface, IUnknown *pUnkOuter) PURE;
-/*1c*/    STDMETHOD(DuplicateSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDSurface, LPDIRECTDRAWSURFACE *lplpDupDDSurface) PURE;
-/*20*/    STDMETHOD(EnumDisplayModes)(THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMMODESCALLBACK lpEnumModesCallback) PURE;
-/*24*/    STDMETHOD(EnumSurfaces)(THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSD, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback) PURE;
-/*28*/    STDMETHOD(FlipToGDISurface)(THIS) PURE;
-/*2c*/    STDMETHOD(GetCaps)(THIS_ LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps) PURE;
-/*30*/    STDMETHOD(GetDisplayMode)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
-/*34*/    STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD lpNumCodes, LPDWORD lpCodes) PURE;
-/*38*/    STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE *lplpGDIDDSurface) PURE;
-/*3c*/    STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD lpdwFrequency) PURE;
-/*40*/    STDMETHOD(GetScanLine)(THIS_ LPDWORD lpdwScanLine) PURE;
-/*44*/    STDMETHOD(GetVerticalBlankStatus)(THIS_ BOOL *lpbIsInVB) PURE;
-/*48*/    STDMETHOD(Initialize)(THIS_ GUID *lpGUID) PURE;
-/*4c*/    STDMETHOD(RestoreDisplayMode)(THIS) PURE;
-/*50*/    STDMETHOD(SetCooperativeLevel)(THIS_ HWND hWnd, DWORD dwFlags) PURE;
-/*54*/    STDMETHOD(SetDisplayMode)(THIS_ DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags) PURE;
-/*58*/    STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD dwFlags, HANDLE hEvent) PURE;
-          /* added in v2 */
-/*5c*/    STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS lpDDCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree) PURE;
-          /* added in v3 */
-/*60*/    STDMETHOD(GetSurfaceFromDC)(THIS_ HDC hdc, LPDIRECTDRAWSURFACE *pSurf) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectDraw3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDraw3_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectDraw3_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectDraw methods ***/
-#define IDirectDraw3_Compact(p)                  (p)->lpVtbl->Compact(p)
-#define IDirectDraw3_CreateClipper(p,a,b,c)      (p)->lpVtbl->CreateClipper(p,a,b,c)
-#define IDirectDraw3_CreatePalette(p,a,b,c,d)    (p)->lpVtbl->CreatePalette(p,a,b,c,d)
-#define IDirectDraw3_CreateSurface(p,a,b,c)      (p)->lpVtbl->CreateSurface(p,a,b,c)
-#define IDirectDraw3_DuplicateSurface(p,a,b)     (p)->lpVtbl->DuplicateSurface(p,a,b)
-#define IDirectDraw3_EnumDisplayModes(p,a,b,c,d) (p)->lpVtbl->EnumDisplayModes(p,a,b,c,d)
-#define IDirectDraw3_EnumSurfaces(p,a,b,c,d)     (p)->lpVtbl->EnumSurfaces(p,a,b,c,d)
-#define IDirectDraw3_FlipToGDISurface(p)         (p)->lpVtbl->FlipToGDISurface(p)
-#define IDirectDraw3_GetCaps(p,a,b)              (p)->lpVtbl->GetCaps(p,a,b)
-#define IDirectDraw3_GetDisplayMode(p,a)         (p)->lpVtbl->GetDisplayMode(p,a)
-#define IDirectDraw3_GetFourCCCodes(p,a,b)       (p)->lpVtbl->GetFourCCCodes(p,a,b)
-#define IDirectDraw3_GetGDISurface(p,a)          (p)->lpVtbl->GetGDISurface(p,a)
-#define IDirectDraw3_GetMonitorFrequency(p,a)    (p)->lpVtbl->GetMonitorFrequency(p,a)
-#define IDirectDraw3_GetScanLine(p,a)            (p)->lpVtbl->GetScanLine(p,a)
-#define IDirectDraw3_GetVerticalBlankStatus(p,a) (p)->lpVtbl->GetVerticalBlankStatus(p,a)
-#define IDirectDraw3_Initialize(p,a)             (p)->lpVtbl->Initialize(p,a)
-#define IDirectDraw3_RestoreDisplayMode(p)       (p)->lpVtbl->RestoreDisplayMode(p)
-#define IDirectDraw3_SetCooperativeLevel(p,a,b)  (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectDraw3_SetDisplayMode(p,a,b,c,d,e) (p)->lpVtbl->SetDisplayMode(p,a,b,c,d,e)
-#define IDirectDraw3_WaitForVerticalBlank(p,a,b) (p)->lpVtbl->WaitForVerticalBlank(p,a,b)
-/*** IDirectDraw2 methods ***/
-#define IDirectDraw3_GetAvailableVidMem(p,a,b,c) (p)->lpVtbl->GetAvailableVidMem(p,a,b,c)
-/*** IDirectDraw3 methods ***/
-#define IDirectDraw3_GetSurfaceFromDC(p,a,b)    (p)->lpVtbl->GetSurfaceFromDC(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirectDraw3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectDraw3_AddRef(p)             (p)->AddRef()
-#define IDirectDraw3_Release(p)            (p)->Release()
-/*** IDirectDraw methods ***/
-#define IDirectDraw3_Compact(p)                  (p)->Compact()
-#define IDirectDraw3_CreateClipper(p,a,b,c)      (p)->CreateClipper(a,b,c)
-#define IDirectDraw3_CreatePalette(p,a,b,c,d)    (p)->CreatePalette(a,b,c,d)
-#define IDirectDraw3_CreateSurface(p,a,b,c)      (p)->CreateSurface(a,b,c)
-#define IDirectDraw3_DuplicateSurface(p,a,b)     (p)->DuplicateSurface(a,b)
-#define IDirectDraw3_EnumDisplayModes(p,a,b,c,d) (p)->EnumDisplayModes(a,b,c,d)
-#define IDirectDraw3_EnumSurfaces(p,a,b,c,d)     (p)->EnumSurfaces(a,b,c,d)
-#define IDirectDraw3_FlipToGDISurface(p)         (p)->FlipToGDISurface()
-#define IDirectDraw3_GetCaps(p,a,b)              (p)->GetCaps(a,b)
-#define IDirectDraw3_GetDisplayMode(p,a)         (p)->GetDisplayMode(a)
-#define IDirectDraw3_GetFourCCCodes(p,a,b)       (p)->GetFourCCCodes(a,b)
-#define IDirectDraw3_GetGDISurface(p,a)          (p)->GetGDISurface(a)
-#define IDirectDraw3_GetMonitorFrequency(p,a)    (p)->GetMonitorFrequency(a)
-#define IDirectDraw3_GetScanLine(p,a)            (p)->GetScanLine(a)
-#define IDirectDraw3_GetVerticalBlankStatus(p,a) (p)->GetVerticalBlankStatus(a)
-#define IDirectDraw3_Initialize(p,a)             (p)->Initialize(a)
-#define IDirectDraw3_RestoreDisplayMode(p)       (p)->RestoreDisplayMode()
-#define IDirectDraw3_SetCooperativeLevel(p,a,b)  (p)->SetCooperativeLevel(a,b)
-#define IDirectDraw3_SetDisplayMode(p,a,b,c,d,e) (p)->SetDisplayMode(a,b,c,d,e)
-#define IDirectDraw3_WaitForVerticalBlank(p,a,b) (p)->WaitForVerticalBlank(a,b)
-/*** IDirectDraw2 methods ***/
-#define IDirectDraw3_GetAvailableVidMem(p,a,b,c) (p)->GetAvailableVidMem(a,b,c)
-/*** IDirectDraw3 methods ***/
-#define IDirectDraw3_GetSurfaceFromDC(p,a,b)    (p)->GetSurfaceFromDC(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirectDraw4 interface
- */
-#define INTERFACE IDirectDraw4
-DECLARE_INTERFACE_(IDirectDraw4,IUnknown)
-{
-          /*** IUnknown methods ***/
-/*00*/    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-/*04*/    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-/*08*/    STDMETHOD_(ULONG,Release)(THIS) PURE;
-          /*** IDirectDraw4 methods ***/
-/*0c*/    STDMETHOD(Compact)(THIS) PURE;
-/*10*/    STDMETHOD(CreateClipper)(THIS_ DWORD dwFlags, LPDIRECTDRAWCLIPPER *lplpDDClipper, IUnknown *pUnkOuter) PURE;
-/*14*/    STDMETHOD(CreatePalette)(THIS_ DWORD dwFlags, LPPALETTEENTRY lpColorTable, LPDIRECTDRAWPALETTE *lplpDDPalette, IUnknown *pUnkOuter) PURE;
-/*18*/    STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc, LPDIRECTDRAWSURFACE4 *lplpDDSurface, IUnknown *pUnkOuter) PURE;
-/*1c*/    STDMETHOD(DuplicateSurface)(THIS_ LPDIRECTDRAWSURFACE4 lpDDSurface, LPDIRECTDRAWSURFACE4 *lplpDupDDSurface) PURE;
-/*20*/    STDMETHOD(EnumDisplayModes)(THIS_ DWORD dwFlags, LPDDSURFACEDESC2 lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMMODESCALLBACK2 lpEnumModesCallback) PURE;
-/*24*/    STDMETHOD(EnumSurfaces)(THIS_ DWORD dwFlags, LPDDSURFACEDESC2 lpDDSD, LPVOID lpContext, LPDDENUMSURFACESCALLBACK2 lpEnumSurfacesCallback) PURE;
-/*28*/    STDMETHOD(FlipToGDISurface)(THIS) PURE;
-/*2c*/    STDMETHOD(GetCaps)(THIS_ LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps) PURE;
-/*30*/    STDMETHOD(GetDisplayMode)(THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE;
-/*34*/    STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD lpNumCodes, LPDWORD lpCodes) PURE;
-/*38*/    STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE4 *lplpGDIDDSurface) PURE;
-/*3c*/    STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD lpdwFrequency) PURE;
-/*40*/    STDMETHOD(GetScanLine)(THIS_ LPDWORD lpdwScanLine) PURE;
-/*44*/    STDMETHOD(GetVerticalBlankStatus)(THIS_ BOOL *lpbIsInVB) PURE;
-/*48*/    STDMETHOD(Initialize)(THIS_ GUID *lpGUID) PURE;
-/*4c*/    STDMETHOD(RestoreDisplayMode)(THIS) PURE;
-/*50*/    STDMETHOD(SetCooperativeLevel)(THIS_ HWND hWnd, DWORD dwFlags) PURE;
-/*54*/    STDMETHOD(SetDisplayMode)(THIS_ DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags) PURE;
-/*58*/    STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD dwFlags, HANDLE hEvent) PURE;
-          /* added in v2 */
-/*5c*/    STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2 lpDDCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree) PURE;
-          /* added in v4 */
-/*60*/    STDMETHOD(GetSurfaceFromDC)(THIS_ HDC hdc, LPDIRECTDRAWSURFACE4 *pSurf) PURE;
-/*64*/    STDMETHOD(RestoreAllSurfaces)(THIS) PURE;
-/*68*/    STDMETHOD(TestCooperativeLevel)(THIS) PURE;
-/*6c*/    STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER pDDDI, DWORD dwFlags) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectDraw4_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDraw4_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectDraw4_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectDraw methods ***/
-#define IDirectDraw4_Compact(p)                  (p)->lpVtbl->Compact(p)
-#define IDirectDraw4_CreateClipper(p,a,b,c)      (p)->lpVtbl->CreateClipper(p,a,b,c)
-#define IDirectDraw4_CreatePalette(p,a,b,c,d)    (p)->lpVtbl->CreatePalette(p,a,b,c,d)
-#define IDirectDraw4_CreateSurface(p,a,b,c)      (p)->lpVtbl->CreateSurface(p,a,b,c)
-#define IDirectDraw4_DuplicateSurface(p,a,b)     (p)->lpVtbl->DuplicateSurface(p,a,b)
-#define IDirectDraw4_EnumDisplayModes(p,a,b,c,d) (p)->lpVtbl->EnumDisplayModes(p,a,b,c,d)
-#define IDirectDraw4_EnumSurfaces(p,a,b,c,d)     (p)->lpVtbl->EnumSurfaces(p,a,b,c,d)
-#define IDirectDraw4_FlipToGDISurface(p)         (p)->lpVtbl->FlipToGDISurface(p)
-#define IDirectDraw4_GetCaps(p,a,b)              (p)->lpVtbl->GetCaps(p,a,b)
-#define IDirectDraw4_GetDisplayMode(p,a)         (p)->lpVtbl->GetDisplayMode(p,a)
-#define IDirectDraw4_GetFourCCCodes(p,a,b)       (p)->lpVtbl->GetFourCCCodes(p,a,b)
-#define IDirectDraw4_GetGDISurface(p,a)          (p)->lpVtbl->GetGDISurface(p,a)
-#define IDirectDraw4_GetMonitorFrequency(p,a)    (p)->lpVtbl->GetMonitorFrequency(p,a)
-#define IDirectDraw4_GetScanLine(p,a)            (p)->lpVtbl->GetScanLine(p,a)
-#define IDirectDraw4_GetVerticalBlankStatus(p,a) (p)->lpVtbl->GetVerticalBlankStatus(p,a)
-#define IDirectDraw4_Initialize(p,a)             (p)->lpVtbl->Initialize(p,a)
-#define IDirectDraw4_RestoreDisplayMode(p)       (p)->lpVtbl->RestoreDisplayMode(p)
-#define IDirectDraw4_SetCooperativeLevel(p,a,b)  (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectDraw4_SetDisplayMode(p,a,b,c,d,e) (p)->lpVtbl->SetDisplayMode(p,a,b,c,d,e)
-#define IDirectDraw4_WaitForVerticalBlank(p,a,b) (p)->lpVtbl->WaitForVerticalBlank(p,a,b)
-/*** IDirectDraw2 methods ***/
-#define IDirectDraw4_GetAvailableVidMem(p,a,b,c) (p)->lpVtbl->GetAvailableVidMem(p,a,b,c)
-/*** IDirectDraw4 methods ***/
-#define IDirectDraw4_GetSurfaceFromDC(p,a,b)    (p)->lpVtbl->GetSurfaceFromDC(p,a,b)
-#define IDirectDraw4_RestoreAllSurfaces(p)      (p)->lpVtbl->RestoreAllSurfaces(p)
-#define IDirectDraw4_TestCooperativeLevel(p)    (p)->lpVtbl->TestCooperativeLevel(p)
-#define IDirectDraw4_GetDeviceIdentifier(p,a,b) (p)->lpVtbl->GetDeviceIdentifier(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirectDraw4_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectDraw4_AddRef(p)             (p)->AddRef()
-#define IDirectDraw4_Release(p)            (p)->Release()
-/*** IDirectDraw methods ***/
-#define IDirectDraw4_Compact(p)                  (p)->Compact()
-#define IDirectDraw4_CreateClipper(p,a,b,c)      (p)->CreateClipper(a,b,c)
-#define IDirectDraw4_CreatePalette(p,a,b,c,d)    (p)->CreatePalette(a,b,c,d)
-#define IDirectDraw4_CreateSurface(p,a,b,c)      (p)->CreateSurface(a,b,c)
-#define IDirectDraw4_DuplicateSurface(p,a,b)     (p)->DuplicateSurface(a,b)
-#define IDirectDraw4_EnumDisplayModes(p,a,b,c,d) (p)->EnumDisplayModes(a,b,c,d)
-#define IDirectDraw4_EnumSurfaces(p,a,b,c,d)     (p)->EnumSurfaces(a,b,c,d)
-#define IDirectDraw4_FlipToGDISurface(p)         (p)->FlipToGDISurface()
-#define IDirectDraw4_GetCaps(p,a,b)              (p)->GetCaps(a,b)
-#define IDirectDraw4_GetDisplayMode(p,a)         (p)->GetDisplayMode(a)
-#define IDirectDraw4_GetFourCCCodes(p,a,b)       (p)->GetFourCCCodes(a,b)
-#define IDirectDraw4_GetGDISurface(p,a)          (p)->GetGDISurface(a)
-#define IDirectDraw4_GetMonitorFrequency(p,a)    (p)->GetMonitorFrequency(a)
-#define IDirectDraw4_GetScanLine(p,a)            (p)->GetScanLine(a)
-#define IDirectDraw4_GetVerticalBlankStatus(p,a) (p)->GetVerticalBlankStatus(a)
-#define IDirectDraw4_Initialize(p,a)             (p)->Initialize(a)
-#define IDirectDraw4_RestoreDisplayMode(p)       (p)->RestoreDisplayMode()
-#define IDirectDraw4_SetCooperativeLevel(p,a,b)  (p)->SetCooperativeLevel(a,b)
-#define IDirectDraw4_SetDisplayMode(p,a,b,c,d,e) (p)->SetDisplayMode(a,b,c,d,e)
-#define IDirectDraw4_WaitForVerticalBlank(p,a,b) (p)->WaitForVerticalBlank(a,b)
-/*** IDirectDraw2 methods ***/
-#define IDirectDraw4_GetAvailableVidMem(p,a,b,c) (p)->GetAvailableVidMem(a,b,c)
-/*** IDirectDraw4 methods ***/
-#define IDirectDraw4_GetSurfaceFromDC(p,a,b)    (p)->GetSurfaceFromDC(a,b)
-#define IDirectDraw4_RestoreAllSurfaces(pc)     (p)->RestoreAllSurfaces()
-#define IDirectDraw4_TestCooperativeLevel(p)    (p)->TestCooperativeLevel()
-#define IDirectDraw4_GetDeviceIdentifier(p,a,b) (p)->GetDeviceIdentifier(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirectDraw7 interface
- */
-/* Note: IDirectDraw7 cannot derive from IDirectDraw4; it is even documented
- * as not interchangeable with earlier DirectDraw interfaces.
- */
-#define INTERFACE IDirectDraw7
-DECLARE_INTERFACE_(IDirectDraw7,IUnknown)
-{
-          /*** IUnknown methods ***/
-/*00*/    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-/*04*/    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-/*08*/    STDMETHOD_(ULONG,Release)(THIS) PURE;
-          /*** IDirectDraw7 methods ***/
-/*0c*/    STDMETHOD(Compact)(THIS) PURE;
-/*10*/    STDMETHOD(CreateClipper)(THIS_ DWORD dwFlags, LPDIRECTDRAWCLIPPER *lplpDDClipper, IUnknown *pUnkOuter) PURE;
-/*14*/    STDMETHOD(CreatePalette)(THIS_ DWORD dwFlags, LPPALETTEENTRY lpColorTable, LPDIRECTDRAWPALETTE *lplpDDPalette, IUnknown *pUnkOuter) PURE;
-/*18*/    STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc, LPDIRECTDRAWSURFACE7 *lplpDDSurface, IUnknown *pUnkOuter) PURE;
-/*1c*/    STDMETHOD(DuplicateSurface)(THIS_ LPDIRECTDRAWSURFACE7 lpDDSurface, LPDIRECTDRAWSURFACE7 *lplpDupDDSurface) PURE;
-/*20*/    STDMETHOD(EnumDisplayModes)(THIS_ DWORD dwFlags, LPDDSURFACEDESC2 lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMMODESCALLBACK2 lpEnumModesCallback) PURE;
-/*24*/    STDMETHOD(EnumSurfaces)(THIS_ DWORD dwFlags, LPDDSURFACEDESC2 lpDDSD, LPVOID lpContext, LPDDENUMSURFACESCALLBACK7 lpEnumSurfacesCallback) PURE;
-/*28*/    STDMETHOD(FlipToGDISurface)(THIS) PURE;
-/*2c*/    STDMETHOD(GetCaps)(THIS_ LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps) PURE;
-/*30*/    STDMETHOD(GetDisplayMode)(THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE;
-/*34*/    STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD lpNumCodes, LPDWORD lpCodes) PURE;
-/*38*/    STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE7 *lplpGDIDDSurface) PURE;
-/*3c*/    STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD lpdwFrequency) PURE;
-/*40*/    STDMETHOD(GetScanLine)(THIS_ LPDWORD lpdwScanLine) PURE;
-/*44*/    STDMETHOD(GetVerticalBlankStatus)(THIS_ BOOL *lpbIsInVB) PURE;
-/*48*/    STDMETHOD(Initialize)(THIS_ GUID *lpGUID) PURE;
-/*4c*/    STDMETHOD(RestoreDisplayMode)(THIS) PURE;
-/*50*/    STDMETHOD(SetCooperativeLevel)(THIS_ HWND hWnd, DWORD dwFlags) PURE;
-/*54*/    STDMETHOD(SetDisplayMode)(THIS_ DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags) PURE;
-/*58*/    STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD dwFlags, HANDLE hEvent) PURE;
-          /* added in v2 */
-/*5c*/    STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2 lpDDCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree) PURE;
-          /* added in v4 */
-/*60*/    STDMETHOD(GetSurfaceFromDC)(THIS_ HDC hdc, LPDIRECTDRAWSURFACE7 *pSurf) PURE;
-/*64*/    STDMETHOD(RestoreAllSurfaces)(THIS) PURE;
-/*68*/    STDMETHOD(TestCooperativeLevel)(THIS) PURE;
-/*6c*/    STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER2 pDDDI, DWORD dwFlags) PURE;
-          /* added in v7 */
-/*70*/    STDMETHOD(StartModeTest)(THIS_ LPSIZE pModes, DWORD dwNumModes, DWORD dwFlags) PURE;
-/*74*/    STDMETHOD(EvaluateMode)(THIS_ DWORD dwFlags, DWORD  *pTimeout) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectDraw7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDraw7_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectDraw7_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectDraw methods ***/
-#define IDirectDraw7_Compact(p)                  (p)->lpVtbl->Compact(p)
-#define IDirectDraw7_CreateClipper(p,a,b,c)      (p)->lpVtbl->CreateClipper(p,a,b,c)
-#define IDirectDraw7_CreatePalette(p,a,b,c,d)    (p)->lpVtbl->CreatePalette(p,a,b,c,d)
-#define IDirectDraw7_CreateSurface(p,a,b,c)      (p)->lpVtbl->CreateSurface(p,a,b,c)
-#define IDirectDraw7_DuplicateSurface(p,a,b)     (p)->lpVtbl->DuplicateSurface(p,a,b)
-#define IDirectDraw7_EnumDisplayModes(p,a,b,c,d) (p)->lpVtbl->EnumDisplayModes(p,a,b,c,d)
-#define IDirectDraw7_EnumSurfaces(p,a,b,c,d)     (p)->lpVtbl->EnumSurfaces(p,a,b,c,d)
-#define IDirectDraw7_FlipToGDISurface(p)         (p)->lpVtbl->FlipToGDISurface(p)
-#define IDirectDraw7_GetCaps(p,a,b)              (p)->lpVtbl->GetCaps(p,a,b)
-#define IDirectDraw7_GetDisplayMode(p,a)         (p)->lpVtbl->GetDisplayMode(p,a)
-#define IDirectDraw7_GetFourCCCodes(p,a,b)       (p)->lpVtbl->GetFourCCCodes(p,a,b)
-#define IDirectDraw7_GetGDISurface(p,a)          (p)->lpVtbl->GetGDISurface(p,a)
-#define IDirectDraw7_GetMonitorFrequency(p,a)    (p)->lpVtbl->GetMonitorFrequency(p,a)
-#define IDirectDraw7_GetScanLine(p,a)            (p)->lpVtbl->GetScanLine(p,a)
-#define IDirectDraw7_GetVerticalBlankStatus(p,a) (p)->lpVtbl->GetVerticalBlankStatus(p,a)
-#define IDirectDraw7_Initialize(p,a)             (p)->lpVtbl->Initialize(p,a)
-#define IDirectDraw7_RestoreDisplayMode(p)       (p)->lpVtbl->RestoreDisplayMode(p)
-#define IDirectDraw7_SetCooperativeLevel(p,a,b)  (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectDraw7_SetDisplayMode(p,a,b,c,d,e) (p)->lpVtbl->SetDisplayMode(p,a,b,c,d,e)
-#define IDirectDraw7_WaitForVerticalBlank(p,a,b) (p)->lpVtbl->WaitForVerticalBlank(p,a,b)
-/*** added in IDirectDraw2 ***/
-#define IDirectDraw7_GetAvailableVidMem(p,a,b,c) (p)->lpVtbl->GetAvailableVidMem(p,a,b,c)
-/*** added in IDirectDraw4 ***/
-#define IDirectDraw7_GetSurfaceFromDC(p,a,b)    (p)->lpVtbl->GetSurfaceFromDC(p,a,b)
-#define IDirectDraw7_RestoreAllSurfaces(p)     (p)->lpVtbl->RestoreAllSurfaces(p)
-#define IDirectDraw7_TestCooperativeLevel(p)    (p)->lpVtbl->TestCooperativeLevel(p)
-#define IDirectDraw7_GetDeviceIdentifier(p,a,b) (p)->lpVtbl->GetDeviceIdentifier(p,a,b)
-/*** added in IDirectDraw 7 ***/
-#define IDirectDraw7_StartModeTest(p,a,b,c)     (p)->lpVtbl->StartModeTest(p,a,b,c)
-#define IDirectDraw7_EvaluateMode(p,a,b)        (p)->lpVtbl->EvaluateMode(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirectDraw7_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectDraw7_AddRef(p)             (p)->AddRef()
-#define IDirectDraw7_Release(p)            (p)->Release()
-/*** IDirectDraw methods ***/
-#define IDirectDraw7_Compact(p)                  (p)->Compact()
-#define IDirectDraw7_CreateClipper(p,a,b,c)      (p)->CreateClipper(a,b,c)
-#define IDirectDraw7_CreatePalette(p,a,b,c,d)    (p)->CreatePalette(a,b,c,d)
-#define IDirectDraw7_CreateSurface(p,a,b,c)      (p)->CreateSurface(a,b,c)
-#define IDirectDraw7_DuplicateSurface(p,a,b)     (p)->DuplicateSurface(a,b)
-#define IDirectDraw7_EnumDisplayModes(p,a,b,c,d) (p)->EnumDisplayModes(a,b,c,d)
-#define IDirectDraw7_EnumSurfaces(p,a,b,c,d)     (p)->EnumSurfaces(a,b,c,d)
-#define IDirectDraw7_FlipToGDISurface(p)         (p)->FlipToGDISurface()
-#define IDirectDraw7_GetCaps(p,a,b)              (p)->GetCaps(a,b)
-#define IDirectDraw7_GetDisplayMode(p,a)         (p)->GetDisplayMode(a)
-#define IDirectDraw7_GetFourCCCodes(p,a,b)       (p)->GetFourCCCodes(a,b)
-#define IDirectDraw7_GetGDISurface(p,a)          (p)->GetGDISurface(a)
-#define IDirectDraw7_GetMonitorFrequency(p,a)    (p)->GetMonitorFrequency(a)
-#define IDirectDraw7_GetScanLine(p,a)            (p)->GetScanLine(a)
-#define IDirectDraw7_GetVerticalBlankStatus(p,a) (p)->GetVerticalBlankStatus(a)
-#define IDirectDraw7_Initialize(p,a)             (p)->Initialize(a)
-#define IDirectDraw7_RestoreDisplayMode(p)       (p)->RestoreDisplayMode()
-#define IDirectDraw7_SetCooperativeLevel(p,a,b)  (p)->SetCooperativeLevel(a,b)
-#define IDirectDraw7_SetDisplayMode(p,a,b,c,d,e) (p)->SetDisplayMode(a,b,c,d,e)
-#define IDirectDraw7_WaitForVerticalBlank(p,a,b) (p)->WaitForVerticalBlank(a,b)
-/*** added in IDirectDraw2 ***/
-#define IDirectDraw7_GetAvailableVidMem(p,a,b,c) (p)->GetAvailableVidMem(a,b,c)
-/*** added in IDirectDraw4 ***/
-#define IDirectDraw7_GetSurfaceFromDC(p,a,b)    (p)->GetSurfaceFromDC(a,b)
-#define IDirectDraw7_RestoreAllSurfaces(p)     (p)->RestoreAllSurfaces()
-#define IDirectDraw7_TestCooperativeLevel(p)    (p)->TestCooperativeLevel()
-#define IDirectDraw7_GetDeviceIdentifier(p,a,b) (p)->GetDeviceIdentifier(a,b)
-/*** added in IDirectDraw 7 ***/
-#define IDirectDraw7_StartModeTest(p,a,b,c)     (p)->StartModeTest(a,b,c)
-#define IDirectDraw7_EvaluateMode(p,a,b)        (p)->EvaluateMode(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirectDrawSurface interface
- */
-#define INTERFACE IDirectDrawSurface
-DECLARE_INTERFACE_(IDirectDrawSurface,IUnknown)
-{
-          /*** IUnknown methods ***/
-/*00*/    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-/*04*/    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-/*08*/    STDMETHOD_(ULONG,Release)(THIS) PURE;
-          /*** IDirectDrawSurface methods ***/
-/*0c*/    STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDSAttachedSurface) PURE;
-/*10*/    STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT lpRect) PURE;
-/*14*/    STDMETHOD(Blt)(THIS_ LPRECT lpDestRect, LPDIRECTDRAWSURFACE lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
-/*18*/    STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, DWORD dwFlags) PURE;
-/*1c*/    STDMETHOD(BltFast)(THIS_ DWORD dwX, DWORD dwY, LPDIRECTDRAWSURFACE lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwTrans) PURE;
-/*20*/    STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE lpDDSAttachedSurface) PURE;
-/*24*/    STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback) PURE;
-/*28*/    STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD dwFlags, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpfnCallback) PURE;
-/*2c*/    STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE lpDDSurfaceTargetOverride, DWORD dwFlags) PURE;
-/*30*/    STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS lpDDSCaps, LPDIRECTDRAWSURFACE *lplpDDAttachedSurface) PURE;
-/*34*/    STDMETHOD(GetBltStatus)(THIS_ DWORD dwFlags) PURE;
-/*38*/    STDMETHOD(GetCaps)(THIS_ LPDDSCAPS lpDDSCaps) PURE;
-/*3c*/    STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *lplpDDClipper) PURE;
-/*40*/    STDMETHOD(GetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE;
-/*44*/    STDMETHOD(GetDC)(THIS_ HDC *lphDC) PURE;
-/*48*/    STDMETHOD(GetFlipStatus)(THIS_ DWORD dwFlags) PURE;
-/*4c*/    STDMETHOD(GetOverlayPosition)(THIS_ LPLONG lplX, LPLONG lplY) PURE;
-/*50*/    STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *lplpDDPalette) PURE;
-/*54*/    STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
-/*58*/    STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
-/*5c*/    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW lpDD, LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
-/*60*/    STDMETHOD(IsLost)(THIS) PURE;
-/*64*/    STDMETHOD(Lock)(THIS_ LPRECT lpDestRect, LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags, HANDLE hEvent) PURE;
-/*68*/    STDMETHOD(ReleaseDC)(THIS_ HDC hDC) PURE;
-/*6c*/    STDMETHOD(Restore)(THIS) PURE;
-/*70*/    STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
-/*74*/    STDMETHOD(SetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE;
-/*78*/    STDMETHOD(SetOverlayPosition)(THIS_ LONG lX, LONG lY) PURE;
-/*7c*/    STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
-/*80*/    STDMETHOD(Unlock)(THIS_ LPVOID lpSurfaceData) PURE;
-/*84*/    STDMETHOD(UpdateOverlay)(THIS_ LPRECT lpSrcRect, LPDIRECTDRAWSURFACE lpDDDestSurface, LPRECT lpDestRect, DWORD dwFlags, LPDDOVERLAYFX lpDDOverlayFx) PURE;
-/*88*/    STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD dwFlags) PURE;
-/*8c*/    STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE lpDDSReference) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectDrawSurface_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawSurface_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectDrawSurface_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectDrawSurface methods ***/
-#define IDirectDrawSurface_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
-#define IDirectDrawSurface_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
-#define IDirectDrawSurface_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
-#define IDirectDrawSurface_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
-#define IDirectDrawSurface_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
-#define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
-#define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
-#define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
-#define IDirectDrawSurface_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
-#define IDirectDrawSurface_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
-#define IDirectDrawSurface_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
-#define IDirectDrawSurface_GetCaps(p,a)                 (p)->lpVtbl->GetCaps(p,a)
-#define IDirectDrawSurface_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
-#define IDirectDrawSurface_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
-#define IDirectDrawSurface_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirectDrawSurface_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
-#define IDirectDrawSurface_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
-#define IDirectDrawSurface_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
-#define IDirectDrawSurface_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
-#define IDirectDrawSurface_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
-#define IDirectDrawSurface_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectDrawSurface_IsLost(p)                    (p)->lpVtbl->IsLost(p)
-#define IDirectDrawSurface_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirectDrawSurface_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#define IDirectDrawSurface_Restore(p)                   (p)->lpVtbl->Restore(p)
-#define IDirectDrawSurface_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
-#define IDirectDrawSurface_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
-#define IDirectDrawSurface_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
-#define IDirectDrawSurface_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
-#define IDirectDrawSurface_Unlock(p,a)                  (p)->lpVtbl->Unlock(p,a)
-#define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
-#define IDirectDrawSurface_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
-#define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirectDrawSurface_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectDrawSurface_AddRef(p)             (p)->AddRef()
-#define IDirectDrawSurface_Release(p)            (p)->Release()
-/*** IDirectDrawSurface methods ***/
-#define IDirectDrawSurface_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
-#define IDirectDrawSurface_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
-#define IDirectDrawSurface_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
-#define IDirectDrawSurface_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
-#define IDirectDrawSurface_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
-#define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
-#define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
-#define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
-#define IDirectDrawSurface_Flip(p,a,b)                  (p)->Flip(a,b)
-#define IDirectDrawSurface_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
-#define IDirectDrawSurface_GetBltStatus(p,a)            (p)->GetBltStatus(a)
-#define IDirectDrawSurface_GetCaps(p,a)                 (p)->GetCaps(a)
-#define IDirectDrawSurface_GetClipper(p,a)              (p)->GetClipper(a)
-#define IDirectDrawSurface_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
-#define IDirectDrawSurface_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirectDrawSurface_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
-#define IDirectDrawSurface_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
-#define IDirectDrawSurface_GetPalette(p,a)              (p)->GetPalette(a)
-#define IDirectDrawSurface_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
-#define IDirectDrawSurface_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
-#define IDirectDrawSurface_Initialize(p,a,b)            (p)->Initialize(a,b)
-#define IDirectDrawSurface_IsLost(p)                    (p)->IsLost()
-#define IDirectDrawSurface_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirectDrawSurface_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#define IDirectDrawSurface_Restore(p)                   (p)->Restore()
-#define IDirectDrawSurface_SetClipper(p,a)              (p)->SetClipper(a)
-#define IDirectDrawSurface_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
-#define IDirectDrawSurface_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
-#define IDirectDrawSurface_SetPalette(p,a)              (p)->SetPalette(a)
-#define IDirectDrawSurface_Unlock(p,a)                  (p)->Unlock(a)
-#define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
-#define IDirectDrawSurface_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
-#define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirectDrawSurface2 interface
- */
-/* Cannot inherit from IDirectDrawSurface because the LPDIRECTDRAWSURFACE parameters
- * have been converted to LPDIRECTDRAWSURFACE2.
- */
-#define INTERFACE IDirectDrawSurface2
-DECLARE_INTERFACE_(IDirectDrawSurface2,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectDrawSurface2 methods ***/
-    STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE2 lpDDSAttachedSurface) PURE;
-    STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT lpRect) PURE;
-    STDMETHOD(Blt)(THIS_ LPRECT lpDestRect, LPDIRECTDRAWSURFACE2 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
-    STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, DWORD dwFlags) PURE;
-    STDMETHOD(BltFast)(THIS_ DWORD dwX, DWORD dwY, LPDIRECTDRAWSURFACE2 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwTrans) PURE;
-    STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE2 lpDDSAttachedSurface) PURE;
-    STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback) PURE;
-    STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD dwFlags, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpfnCallback) PURE;
-    STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE2 lpDDSurfaceTargetOverride, DWORD dwFlags) PURE;
-    STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS lpDDSCaps, LPDIRECTDRAWSURFACE2 *lplpDDAttachedSurface) PURE;
-    STDMETHOD(GetBltStatus)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDDSCAPS lpDDSCaps) PURE;
-    STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *lplpDDClipper) PURE;
-    STDMETHOD(GetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC *lphDC) PURE;
-    STDMETHOD(GetFlipStatus)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(GetOverlayPosition)(THIS_ LPLONG lplX, LPLONG lplY) PURE;
-    STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *lplpDDPalette) PURE;
-    STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
-    STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW lpDD, LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
-    STDMETHOD(IsLost)(THIS) PURE;
-    STDMETHOD(Lock)(THIS_ LPRECT lpDestRect, LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags, HANDLE hEvent) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC hDC) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
-    STDMETHOD(SetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE;
-    STDMETHOD(SetOverlayPosition)(THIS_ LONG lX, LONG lY) PURE;
-    STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID lpSurfaceData) PURE;
-    STDMETHOD(UpdateOverlay)(THIS_ LPRECT lpSrcRect, LPDIRECTDRAWSURFACE2 lpDDDestSurface, LPRECT lpDestRect, DWORD dwFlags, LPDDOVERLAYFX lpDDOverlayFx) PURE;
-    STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE2 lpDDSReference) PURE;
-    /* added in v2 */
-    STDMETHOD(GetDDInterface)(THIS_ LPVOID *lplpDD) PURE;
-    STDMETHOD(PageLock)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(PageUnlock)(THIS_ DWORD dwFlags) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectDrawSurface2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawSurface2_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectDrawSurface2_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectDrawSurface methods (almost) ***/
-#define IDirectDrawSurface2_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
-#define IDirectDrawSurface2_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
-#define IDirectDrawSurface2_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
-#define IDirectDrawSurface2_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
-#define IDirectDrawSurface2_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
-#define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
-#define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
-#define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
-#define IDirectDrawSurface2_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
-#define IDirectDrawSurface2_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
-#define IDirectDrawSurface2_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
-#define IDirectDrawSurface2_GetCaps(p,a)                 (p)->lpVtbl->GetCaps(p,a)
-#define IDirectDrawSurface2_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
-#define IDirectDrawSurface2_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
-#define IDirectDrawSurface2_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirectDrawSurface2_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
-#define IDirectDrawSurface2_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
-#define IDirectDrawSurface2_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
-#define IDirectDrawSurface2_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
-#define IDirectDrawSurface2_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
-#define IDirectDrawSurface2_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectDrawSurface2_IsLost(p)                    (p)->lpVtbl->IsLost(p)
-#define IDirectDrawSurface2_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirectDrawSurface2_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#define IDirectDrawSurface2_Restore(p)                   (p)->lpVtbl->Restore(p)
-#define IDirectDrawSurface2_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
-#define IDirectDrawSurface2_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
-#define IDirectDrawSurface2_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
-#define IDirectDrawSurface2_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
-#define IDirectDrawSurface2_Unlock(p,a)                  (p)->lpVtbl->Unlock(p,a)
-#define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
-#define IDirectDrawSurface2_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
-#define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface2_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a)
-#define IDirectDrawSurface2_PageLock(p,a)       (p)->lpVtbl->PageLock(p,a)
-#define IDirectDrawSurface2_PageUnlock(p,a)     (p)->lpVtbl->PageUnlock(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirectDrawSurface2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectDrawSurface2_AddRef(p)             (p)->AddRef()
-#define IDirectDrawSurface2_Release(p)            (p)->Release()
-/*** IDirectDrawSurface methods (almost) ***/
-#define IDirectDrawSurface2_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
-#define IDirectDrawSurface2_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
-#define IDirectDrawSurface2_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
-#define IDirectDrawSurface2_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
-#define IDirectDrawSurface2_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
-#define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
-#define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
-#define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
-#define IDirectDrawSurface2_Flip(p,a,b)                  (p)->Flip(a,b)
-#define IDirectDrawSurface2_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
-#define IDirectDrawSurface2_GetBltStatus(p,a)            (p)->GetBltStatus(a)
-#define IDirectDrawSurface2_GetCaps(p,a)                 (p)->GetCaps(a)
-#define IDirectDrawSurface2_GetClipper(p,a)              (p)->GetClipper(a)
-#define IDirectDrawSurface2_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
-#define IDirectDrawSurface2_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirectDrawSurface2_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
-#define IDirectDrawSurface2_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
-#define IDirectDrawSurface2_GetPalette(p,a)              (p)->GetPalette(a)
-#define IDirectDrawSurface2_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
-#define IDirectDrawSurface2_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
-#define IDirectDrawSurface2_Initialize(p,a,b)            (p)->Initialize(a,b)
-#define IDirectDrawSurface2_IsLost(p)                    (p)->IsLost()
-#define IDirectDrawSurface2_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirectDrawSurface2_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#define IDirectDrawSurface2_Restore(p)                   (p)->Restore()
-#define IDirectDrawSurface2_SetClipper(p,a)              (p)->SetClipper(a)
-#define IDirectDrawSurface2_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
-#define IDirectDrawSurface2_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
-#define IDirectDrawSurface2_SetPalette(p,a)              (p)->SetPalette(a)
-#define IDirectDrawSurface2_Unlock(p,a)                  (p)->Unlock(a)
-#define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
-#define IDirectDrawSurface2_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
-#define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface2_GetDDInterface(p,a) (p)->GetDDInterface(a)
-#define IDirectDrawSurface2_PageLock(p,a)       (p)->PageLock(a)
-#define IDirectDrawSurface2_PageUnlock(p,a)     (p)->PageUnlock(a)
-#endif
-
-
-/*****************************************************************************
- * IDirectDrawSurface3 interface
- */
-/* Cannot inherit from IDirectDrawSurface2 because the LPDIRECTDRAWSURFACE2 parameters
- * have been converted to LPDIRECTDRAWSURFACE3.
- */
-#define INTERFACE IDirectDrawSurface3
-DECLARE_INTERFACE_(IDirectDrawSurface3,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectDrawSurface3 methods ***/
-    STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE3 lpDDSAttachedSurface) PURE;
-    STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT lpRect) PURE;
-    STDMETHOD(Blt)(THIS_ LPRECT lpDestRect, LPDIRECTDRAWSURFACE3 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
-    STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, DWORD dwFlags) PURE;
-    STDMETHOD(BltFast)(THIS_ DWORD dwX, DWORD dwY, LPDIRECTDRAWSURFACE3 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwTrans) PURE;
-    STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE3 lpDDSAttachedSurface) PURE;
-    STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback) PURE;
-    STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD dwFlags, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpfnCallback) PURE;
-    STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE3 lpDDSurfaceTargetOverride, DWORD dwFlags) PURE;
-    STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS lpDDSCaps, LPDIRECTDRAWSURFACE3 *lplpDDAttachedSurface) PURE;
-    STDMETHOD(GetBltStatus)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDDSCAPS lpDDSCaps) PURE;
-    STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *lplpDDClipper) PURE;
-    STDMETHOD(GetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC *lphDC) PURE;
-    STDMETHOD(GetFlipStatus)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(GetOverlayPosition)(THIS_ LPLONG lplX, LPLONG lplY) PURE;
-    STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *lplpDDPalette) PURE;
-    STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
-    STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW lpDD, LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
-    STDMETHOD(IsLost)(THIS) PURE;
-    STDMETHOD(Lock)(THIS_ LPRECT lpDestRect, LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags, HANDLE hEvent) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC hDC) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
-    STDMETHOD(SetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE;
-    STDMETHOD(SetOverlayPosition)(THIS_ LONG lX, LONG lY) PURE;
-    STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID lpSurfaceData) PURE;
-    STDMETHOD(UpdateOverlay)(THIS_ LPRECT lpSrcRect, LPDIRECTDRAWSURFACE3 lpDDDestSurface, LPRECT lpDestRect, DWORD dwFlags, LPDDOVERLAYFX lpDDOverlayFx) PURE;
-    STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE3 lpDDSReference) PURE;
-    /* added in v2 */
-    STDMETHOD(GetDDInterface)(THIS_ LPVOID *lplpDD) PURE;
-    STDMETHOD(PageLock)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(PageUnlock)(THIS_ DWORD dwFlags) PURE;
-    /* added in v3 */
-    STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC lpDDSD, DWORD dwFlags) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectDrawSurface3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawSurface3_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectDrawSurface3_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectDrawSurface methods (almost) ***/
-#define IDirectDrawSurface3_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
-#define IDirectDrawSurface3_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
-#define IDirectDrawSurface3_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
-#define IDirectDrawSurface3_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
-#define IDirectDrawSurface3_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
-#define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
-#define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
-#define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
-#define IDirectDrawSurface3_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
-#define IDirectDrawSurface3_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
-#define IDirectDrawSurface3_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
-#define IDirectDrawSurface3_GetCaps(p,a)                 (p)->lpVtbl->GetCaps(p,a)
-#define IDirectDrawSurface3_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
-#define IDirectDrawSurface3_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
-#define IDirectDrawSurface3_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirectDrawSurface3_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
-#define IDirectDrawSurface3_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
-#define IDirectDrawSurface3_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
-#define IDirectDrawSurface3_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
-#define IDirectDrawSurface3_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
-#define IDirectDrawSurface3_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectDrawSurface3_IsLost(p)                    (p)->lpVtbl->IsLost(p)
-#define IDirectDrawSurface3_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirectDrawSurface3_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#define IDirectDrawSurface3_Restore(p)                   (p)->lpVtbl->Restore(p)
-#define IDirectDrawSurface3_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
-#define IDirectDrawSurface3_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
-#define IDirectDrawSurface3_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
-#define IDirectDrawSurface3_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
-#define IDirectDrawSurface3_Unlock(p,a)                  (p)->lpVtbl->Unlock(p,a)
-#define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
-#define IDirectDrawSurface3_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
-#define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface3_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a)
-#define IDirectDrawSurface3_PageLock(p,a)       (p)->lpVtbl->PageLock(p,a)
-#define IDirectDrawSurface3_PageUnlock(p,a)     (p)->lpVtbl->PageUnlock(p,a)
-/*** IDirectDrawSurface3 methods ***/
-#define IDirectDrawSurface3_SetSurfaceDesc(p,a,b) (p)->lpVtbl->SetSurfaceDesc(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirectDrawSurface3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectDrawSurface3_AddRef(p)             (p)->AddRef()
-#define IDirectDrawSurface3_Release(p)            (p)->Release()
-/*** IDirectDrawSurface methods (almost) ***/
-#define IDirectDrawSurface3_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
-#define IDirectDrawSurface3_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
-#define IDirectDrawSurface3_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
-#define IDirectDrawSurface3_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
-#define IDirectDrawSurface3_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
-#define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
-#define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
-#define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
-#define IDirectDrawSurface3_Flip(p,a,b)                  (p)->Flip(a,b)
-#define IDirectDrawSurface3_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
-#define IDirectDrawSurface3_GetBltStatus(p,a)            (p)->GetBltStatus(a)
-#define IDirectDrawSurface3_GetCaps(p,a)                 (p)->GetCaps(a)
-#define IDirectDrawSurface3_GetClipper(p,a)              (p)->GetClipper(a)
-#define IDirectDrawSurface3_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
-#define IDirectDrawSurface3_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirectDrawSurface3_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
-#define IDirectDrawSurface3_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
-#define IDirectDrawSurface3_GetPalette(p,a)              (p)->GetPalette(a)
-#define IDirectDrawSurface3_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
-#define IDirectDrawSurface3_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
-#define IDirectDrawSurface3_Initialize(p,a,b)            (p)->Initialize(a,b)
-#define IDirectDrawSurface3_IsLost(p)                    (p)->IsLost()
-#define IDirectDrawSurface3_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirectDrawSurface3_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#define IDirectDrawSurface3_Restore(p)                   (p)->Restore()
-#define IDirectDrawSurface3_SetClipper(p,a)              (p)->SetClipper(a)
-#define IDirectDrawSurface3_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
-#define IDirectDrawSurface3_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
-#define IDirectDrawSurface3_SetPalette(p,a)              (p)->SetPalette(a)
-#define IDirectDrawSurface3_Unlock(p,a)                  (p)->Unlock(a)
-#define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
-#define IDirectDrawSurface3_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
-#define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface3_GetDDInterface(p,a) (p)->GetDDInterface(a)
-#define IDirectDrawSurface3_PageLock(p,a)       (p)->PageLock(a)
-#define IDirectDrawSurface3_PageUnlock(p,a)     (p)->PageUnlock(a)
-/*** IDirectDrawSurface3 methods ***/
-#define IDirectDrawSurface3_SetSurfaceDesc(p,a,b) (p)->SetSurfaceDesc(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirectDrawSurface4 interface
- */
-/* Cannot inherit from IDirectDrawSurface2 because DDSCAPS changed to DDSCAPS2.
- */
-#define INTERFACE IDirectDrawSurface4
-DECLARE_INTERFACE_(IDirectDrawSurface4,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectDrawSurface4 methods ***/
-    STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE4 lpDDSAttachedSurface) PURE;
-    STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT lpRect) PURE;
-    STDMETHOD(Blt)(THIS_ LPRECT lpDestRect, LPDIRECTDRAWSURFACE4 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
-    STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, DWORD dwFlags) PURE;
-    STDMETHOD(BltFast)(THIS_ DWORD dwX, DWORD dwY, LPDIRECTDRAWSURFACE4 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwTrans) PURE;
-    STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE4 lpDDSAttachedSurface) PURE;
-    STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID lpContext, LPDDENUMSURFACESCALLBACK2 lpEnumSurfacesCallback) PURE;
-    STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD dwFlags, LPVOID lpContext, LPDDENUMSURFACESCALLBACK2 lpfnCallback) PURE;
-    STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE4 lpDDSurfaceTargetOverride, DWORD dwFlags) PURE;
-    STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS2 lpDDSCaps, LPDIRECTDRAWSURFACE4 *lplpDDAttachedSurface) PURE;
-    STDMETHOD(GetBltStatus)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDDSCAPS2 lpDDSCaps) PURE;
-    STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *lplpDDClipper) PURE;
-    STDMETHOD(GetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC *lphDC) PURE;
-    STDMETHOD(GetFlipStatus)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(GetOverlayPosition)(THIS_ LPLONG lplX, LPLONG lplY) PURE;
-    STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *lplpDDPalette) PURE;
-    STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
-    STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW lpDD, LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE;
-    STDMETHOD(IsLost)(THIS) PURE;
-    STDMETHOD(Lock)(THIS_ LPRECT lpDestRect, LPDDSURFACEDESC2 lpDDSurfaceDesc, DWORD dwFlags, HANDLE hEvent) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC hDC) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
-    STDMETHOD(SetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE;
-    STDMETHOD(SetOverlayPosition)(THIS_ LONG lX, LONG lY) PURE;
-    STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
-    STDMETHOD(Unlock)(THIS_ LPRECT lpSurfaceData) PURE;
-    STDMETHOD(UpdateOverlay)(THIS_ LPRECT lpSrcRect, LPDIRECTDRAWSURFACE4 lpDDDestSurface, LPRECT lpDestRect, DWORD dwFlags, LPDDOVERLAYFX lpDDOverlayFx) PURE;
-    STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE4 lpDDSReference) PURE;
-    /* added in v2 */
-    STDMETHOD(GetDDInterface)(THIS_ LPVOID *lplpDD) PURE;
-    STDMETHOD(PageLock)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(PageUnlock)(THIS_ DWORD dwFlags) PURE;
-    /* added in v3 */
-    STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC2 lpDDSD, DWORD dwFlags) PURE;
-    /* added in v4 */
-    STDMETHOD(SetPrivateData)(THIS_ REFGUID tag, LPVOID pData, DWORD cbSize, DWORD dwFlags) PURE;
-    STDMETHOD(GetPrivateData)(THIS_ REFGUID tag, LPVOID pBuffer, LPDWORD pcbBufferSize) PURE;
-    STDMETHOD(FreePrivateData)(THIS_ REFGUID tag) PURE;
-    STDMETHOD(GetUniquenessValue)(THIS_ LPDWORD pValue) PURE;
-    STDMETHOD(ChangeUniquenessValue)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectDrawSurface4_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawSurface4_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectDrawSurface4_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectDrawSurface (almost) methods ***/
-#define IDirectDrawSurface4_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
-#define IDirectDrawSurface4_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
-#define IDirectDrawSurface4_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
-#define IDirectDrawSurface4_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
-#define IDirectDrawSurface4_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
-#define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
-#define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
-#define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
-#define IDirectDrawSurface4_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
-#define IDirectDrawSurface4_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
-#define IDirectDrawSurface4_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
-#define IDirectDrawSurface4_GetCaps(p,a)                 (p)->lpVtbl->GetCaps(p,a)
-#define IDirectDrawSurface4_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
-#define IDirectDrawSurface4_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
-#define IDirectDrawSurface4_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirectDrawSurface4_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
-#define IDirectDrawSurface4_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
-#define IDirectDrawSurface4_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
-#define IDirectDrawSurface4_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
-#define IDirectDrawSurface4_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
-#define IDirectDrawSurface4_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectDrawSurface4_IsLost(p)                    (p)->lpVtbl->IsLost(p)
-#define IDirectDrawSurface4_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirectDrawSurface4_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#define IDirectDrawSurface4_Restore(p)                   (p)->lpVtbl->Restore(p)
-#define IDirectDrawSurface4_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
-#define IDirectDrawSurface4_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
-#define IDirectDrawSurface4_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
-#define IDirectDrawSurface4_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
-#define IDirectDrawSurface4_Unlock(p,a)                  (p)->lpVtbl->Unlock(p,a)
-#define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
-#define IDirectDrawSurface4_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
-#define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface4_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a)
-#define IDirectDrawSurface4_PageLock(p,a)       (p)->lpVtbl->PageLock(p,a)
-#define IDirectDrawSurface4_PageUnlock(p,a)     (p)->lpVtbl->PageUnlock(p,a)
-/*** IDirectDrawSurface3 methods ***/
-#define IDirectDrawSurface4_SetSurfaceDesc(p,a,b) (p)->lpVtbl->SetSurfaceDesc(p,a,b)
-/*** IDirectDrawSurface4 methods ***/
-#define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirectDrawSurface4_GetPrivateData(p,a,b,c)   (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirectDrawSurface4_FreePrivateData(p,a)      (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirectDrawSurface4_GetUniquenessValue(p,a)   (p)->lpVtbl->GetUniquenessValue(p,a)
-#define IDirectDrawSurface4_ChangeUniquenessValue(p)  (p)->lpVtbl->ChangeUniquenessValue(p)
-#else
-/*** IUnknown methods ***/
-#define IDirectDrawSurface4_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectDrawSurface4_AddRef(p)             (p)->AddRef()
-#define IDirectDrawSurface4_Release(p)            (p)->Release()
-/*** IDirectDrawSurface (almost) methods ***/
-#define IDirectDrawSurface4_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
-#define IDirectDrawSurface4_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
-#define IDirectDrawSurface4_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
-#define IDirectDrawSurface4_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
-#define IDirectDrawSurface4_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
-#define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
-#define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
-#define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
-#define IDirectDrawSurface4_Flip(p,a,b)                  (p)->Flip(a,b)
-#define IDirectDrawSurface4_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
-#define IDirectDrawSurface4_GetBltStatus(p,a)            (p)->GetBltStatus(a)
-#define IDirectDrawSurface4_GetCaps(p,a)                 (p)->GetCaps(a)
-#define IDirectDrawSurface4_GetClipper(p,a)              (p)->GetClipper(a)
-#define IDirectDrawSurface4_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
-#define IDirectDrawSurface4_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirectDrawSurface4_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
-#define IDirectDrawSurface4_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
-#define IDirectDrawSurface4_GetPalette(p,a)              (p)->GetPalette(a)
-#define IDirectDrawSurface4_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
-#define IDirectDrawSurface4_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
-#define IDirectDrawSurface4_Initialize(p,a,b)            (p)->Initialize(a,b)
-#define IDirectDrawSurface4_IsLost(p)                    (p)->IsLost()
-#define IDirectDrawSurface4_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirectDrawSurface4_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#define IDirectDrawSurface4_Restore(p)                   (p)->Restore()
-#define IDirectDrawSurface4_SetClipper(p,a)              (p)->SetClipper(a)
-#define IDirectDrawSurface4_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
-#define IDirectDrawSurface4_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
-#define IDirectDrawSurface4_SetPalette(p,a)              (p)->SetPalette(a)
-#define IDirectDrawSurface4_Unlock(p,a)                  (p)->Unlock(a)
-#define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
-#define IDirectDrawSurface4_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
-#define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface4_GetDDInterface(p,a) (p)->GetDDInterface(a)
-#define IDirectDrawSurface4_PageLock(p,a)       (p)->PageLock(a)
-#define IDirectDrawSurface4_PageUnlock(p,a)     (p)->PageUnlock(a)
-/*** IDirectDrawSurface3 methods ***/
-#define IDirectDrawSurface4_SetSurfaceDesc(p,a,b) (p)->SetSurfaceDesc(a,b)
-/*** IDirectDrawSurface4 methods ***/
-#define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
-#define IDirectDrawSurface4_GetPrivateData(p,a,b,c)   (p)->GetPrivateData(a,b,c)
-#define IDirectDrawSurface4_FreePrivateData(p,a)      (p)->FreePrivateData(a)
-#define IDirectDrawSurface4_GetUniquenessValue(p,a)   (p)->GetUniquenessValue(a)
-#define IDirectDrawSurface4_ChangeUniquenessValue(p)  (p)->ChangeUniquenessValue()
-#endif
-
-
-/*****************************************************************************
- * IDirectDrawSurface7 interface
- */
-#define INTERFACE IDirectDrawSurface7
-DECLARE_INTERFACE_(IDirectDrawSurface7,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectDrawSurface7 methods ***/
-    STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE7 lpDDSAttachedSurface) PURE;
-    STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT lpRect) PURE;
-    STDMETHOD(Blt)(THIS_ LPRECT lpDestRect, LPDIRECTDRAWSURFACE7 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
-    STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, DWORD dwFlags) PURE;
-    STDMETHOD(BltFast)(THIS_ DWORD dwX, DWORD dwY, LPDIRECTDRAWSURFACE7 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwTrans) PURE;
-    STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE7 lpDDSAttachedSurface) PURE;
-    STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID lpContext, LPDDENUMSURFACESCALLBACK7 lpEnumSurfacesCallback) PURE;
-    STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD dwFlags, LPVOID lpContext, LPDDENUMSURFACESCALLBACK7 lpfnCallback) PURE;
-    STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE7 lpDDSurfaceTargetOverride, DWORD dwFlags) PURE;
-    STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS2 lpDDSCaps, LPDIRECTDRAWSURFACE7 *lplpDDAttachedSurface) PURE;
-    STDMETHOD(GetBltStatus)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDDSCAPS2 lpDDSCaps) PURE;
-    STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *lplpDDClipper) PURE;
-    STDMETHOD(GetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC *lphDC) PURE;
-    STDMETHOD(GetFlipStatus)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(GetOverlayPosition)(THIS_ LPLONG lplX, LPLONG lplY) PURE;
-    STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *lplpDDPalette) PURE;
-    STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
-    STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW lpDD, LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE;
-    STDMETHOD(IsLost)(THIS) PURE;
-    STDMETHOD(Lock)(THIS_ LPRECT lpDestRect, LPDDSURFACEDESC2 lpDDSurfaceDesc, DWORD dwFlags, HANDLE hEvent) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC hDC) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
-    STDMETHOD(SetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE;
-    STDMETHOD(SetOverlayPosition)(THIS_ LONG lX, LONG lY) PURE;
-    STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
-    STDMETHOD(Unlock)(THIS_ LPRECT lpSurfaceData) PURE;
-    STDMETHOD(UpdateOverlay)(THIS_ LPRECT lpSrcRect, LPDIRECTDRAWSURFACE7 lpDDDestSurface, LPRECT lpDestRect, DWORD dwFlags, LPDDOVERLAYFX lpDDOverlayFx) PURE;
-    STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE7 lpDDSReference) PURE;
-    /* added in v2 */
-    STDMETHOD(GetDDInterface)(THIS_ LPVOID *lplpDD) PURE;
-    STDMETHOD(PageLock)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(PageUnlock)(THIS_ DWORD dwFlags) PURE;
-    /* added in v3 */
-    STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC2 lpDDSD, DWORD dwFlags) PURE;
-    /* added in v4 */
-    STDMETHOD(SetPrivateData)(THIS_ REFGUID tag, LPVOID pData, DWORD cbSize, DWORD dwFlags) PURE;
-    STDMETHOD(GetPrivateData)(THIS_ REFGUID tag, LPVOID pBuffer, LPDWORD pcbBufferSize) PURE;
-    STDMETHOD(FreePrivateData)(THIS_ REFGUID tag) PURE;
-    STDMETHOD(GetUniquenessValue)(THIS_ LPDWORD pValue) PURE;
-    STDMETHOD(ChangeUniquenessValue)(THIS) PURE;
-    /* added in v7 */
-    STDMETHOD(SetPriority)(THIS_ DWORD prio) PURE;
-    STDMETHOD(GetPriority)(THIS_ LPDWORD prio) PURE;
-    STDMETHOD(SetLOD)(THIS_ DWORD lod) PURE;
-    STDMETHOD(GetLOD)(THIS_ LPDWORD lod) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectDrawSurface7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawSurface7_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectDrawSurface7_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectDrawSurface (almost) methods ***/
-#define IDirectDrawSurface7_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
-#define IDirectDrawSurface7_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
-#define IDirectDrawSurface7_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
-#define IDirectDrawSurface7_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
-#define IDirectDrawSurface7_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
-#define IDirectDrawSurface7_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
-#define IDirectDrawSurface7_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
-#define IDirectDrawSurface7_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
-#define IDirectDrawSurface7_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
-#define IDirectDrawSurface7_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
-#define IDirectDrawSurface7_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
-#define IDirectDrawSurface7_GetCaps(p,a)                 (p)->lpVtbl->GetCaps(p,a)
-#define IDirectDrawSurface7_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
-#define IDirectDrawSurface7_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
-#define IDirectDrawSurface7_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirectDrawSurface7_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
-#define IDirectDrawSurface7_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
-#define IDirectDrawSurface7_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
-#define IDirectDrawSurface7_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
-#define IDirectDrawSurface7_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
-#define IDirectDrawSurface7_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectDrawSurface7_IsLost(p)                    (p)->lpVtbl->IsLost(p)
-#define IDirectDrawSurface7_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirectDrawSurface7_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#define IDirectDrawSurface7_Restore(p)                   (p)->lpVtbl->Restore(p)
-#define IDirectDrawSurface7_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
-#define IDirectDrawSurface7_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
-#define IDirectDrawSurface7_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
-#define IDirectDrawSurface7_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
-#define IDirectDrawSurface7_Unlock(p,a)                  (p)->lpVtbl->Unlock(p,a)
-#define IDirectDrawSurface7_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
-#define IDirectDrawSurface7_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
-#define IDirectDrawSurface7_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface7_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a)
-#define IDirectDrawSurface7_PageLock(p,a)       (p)->lpVtbl->PageLock(p,a)
-#define IDirectDrawSurface7_PageUnlock(p,a)     (p)->lpVtbl->PageUnlock(p,a)
-/*** IDirectDrawSurface3 methods ***/
-#define IDirectDrawSurface7_SetSurfaceDesc(p,a,b) (p)->lpVtbl->SetSurfaceDesc(p,a,b)
-/*** IDirectDrawSurface4 methods ***/
-#define IDirectDrawSurface7_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirectDrawSurface7_GetPrivateData(p,a,b,c)   (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirectDrawSurface7_FreePrivateData(p,a)      (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirectDrawSurface7_GetUniquenessValue(p,a)   (p)->lpVtbl->GetUniquenessValue(p,a)
-#define IDirectDrawSurface7_ChangeUniquenessValue(p)  (p)->lpVtbl->ChangeUniquenessValue(p)
-/*** IDirectDrawSurface7 methods ***/
-#define IDirectDrawSurface7_SetPriority(p,a)          (p)->lpVtbl->SetPriority(p,a)
-#define IDirectDrawSurface7_GetPriority(p,a)          (p)->lpVtbl->GetPriority(p,a)
-#define IDirectDrawSurface7_SetLOD(p,a)               (p)->lpVtbl->SetLOD(p,a)
-#define IDirectDrawSurface7_GetLOD(p,a)               (p)->lpVtbl->GetLOD(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirectDrawSurface7_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectDrawSurface7_AddRef(p)             (p)->AddRef()
-#define IDirectDrawSurface7_Release(p)            (p)->Release()
-/*** IDirectDrawSurface (almost) methods ***/
-#define IDirectDrawSurface7_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
-#define IDirectDrawSurface7_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
-#define IDirectDrawSurface7_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
-#define IDirectDrawSurface7_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
-#define IDirectDrawSurface7_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
-#define IDirectDrawSurface7_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
-#define IDirectDrawSurface7_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
-#define IDirectDrawSurface7_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
-#define IDirectDrawSurface7_Flip(p,a,b)                  (p)->Flip(a,b)
-#define IDirectDrawSurface7_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
-#define IDirectDrawSurface7_GetBltStatus(p,a)            (p)->GetBltStatus(a)
-#define IDirectDrawSurface7_GetCaps(p,a)                 (p)->GetCaps(a)
-#define IDirectDrawSurface7_GetClipper(p,a)              (p)->GetClipper(a)
-#define IDirectDrawSurface7_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
-#define IDirectDrawSurface7_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirectDrawSurface7_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
-#define IDirectDrawSurface7_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
-#define IDirectDrawSurface7_GetPalette(p,a)              (p)->GetPalette(a)
-#define IDirectDrawSurface7_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
-#define IDirectDrawSurface7_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
-#define IDirectDrawSurface7_Initialize(p,a,b)            (p)->Initialize(a,b)
-#define IDirectDrawSurface7_IsLost(p)                    (p)->IsLost()
-#define IDirectDrawSurface7_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirectDrawSurface7_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#define IDirectDrawSurface7_Restore(p)                   (p)->Restore()
-#define IDirectDrawSurface7_SetClipper(p,a)              (p)->SetClipper(a)
-#define IDirectDrawSurface7_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
-#define IDirectDrawSurface7_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
-#define IDirectDrawSurface7_SetPalette(p,a)              (p)->SetPalette(a)
-#define IDirectDrawSurface7_Unlock(p,a)                  (p)->Unlock(a)
-#define IDirectDrawSurface7_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
-#define IDirectDrawSurface7_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
-#define IDirectDrawSurface7_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface7_GetDDInterface(p,a) (p)->GetDDInterface(a)
-#define IDirectDrawSurface7_PageLock(p,a)       (p)->PageLock(a)
-#define IDirectDrawSurface7_PageUnlock(p,a)     (p)->PageUnlock(a)
-/*** IDirectDrawSurface3 methods ***/
-#define IDirectDrawSurface7_SetSurfaceDesc(p,a,b) (p)->SetSurfaceDesc(a,b)
-/*** IDirectDrawSurface4 methods ***/
-#define IDirectDrawSurface7_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
-#define IDirectDrawSurface7_GetPrivateData(p,a,b,c)   (p)->GetPrivateData(a,b,c)
-#define IDirectDrawSurface7_FreePrivateData(p,a)      (p)->FreePrivateData(a)
-#define IDirectDrawSurface7_GetUniquenessValue(p,a)   (p)->GetUniquenessValue(a)
-#define IDirectDrawSurface7_ChangeUniquenessValue(p)  (p)->ChangeUniquenessValue()
-/*** IDirectDrawSurface7 methods ***/
-#define IDirectDrawSurface7_SetPriority(p,a)          (p)->SetPriority(a)
-#define IDirectDrawSurface7_GetPriority(p,a)          (p)->GetPriority(a)
-#define IDirectDrawSurface7_SetLOD(p,a)               (p)->SetLOD(a)
-#define IDirectDrawSurface7_GetLOD(p,a)               (p)->GetLOD(a)
-#endif
-
-/*****************************************************************************
- * IDirectDrawColorControl interface
- */
-#define INTERFACE IDirectDrawColorControl
-DECLARE_INTERFACE_(IDirectDrawColorControl,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectDrawColorControl methods ***/
-    STDMETHOD(GetColorControls)(THIS_ LPDDCOLORCONTROL lpColorControl) PURE;
-    STDMETHOD(SetColorControls)(THIS_ LPDDCOLORCONTROL lpColorControl) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectDrawColorControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawColorControl_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectDrawColorControl_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectDrawColorControl methods ***/
-#define IDirectDrawColorControl_GetColorControls(p,a) (p)->lpVtbl->GetColorControls(p,a)
-#define IDirectDrawColorControl_SetColorControls(p,a) (p)->lpVtbl->SetColorControls(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirectDrawColorControl_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectDrawColorControl_AddRef(p)             (p)->AddRef()
-#define IDirectDrawColorControl_Release(p)            (p)->Release()
-/*** IDirectDrawColorControl methods ***/
-#define IDirectDrawColorControl_GetColorControls(p,a) (p)->GetColorControls(a)
-#define IDirectDrawColorControl_SetColorControls(p,a) (p)->SetColorControls(a)
-#endif
-
-/*****************************************************************************
- * IDirectDrawGammaControl interface
- */
-#define INTERFACE IDirectDrawGammaControl
-DECLARE_INTERFACE_(IDirectDrawGammaControl,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectDrawGammaControl methods ***/
-    STDMETHOD(GetGammaRamp)(THIS_ DWORD dwFlags, LPDDGAMMARAMP lpGammaRamp) PURE;
-    STDMETHOD(SetGammaRamp)(THIS_ DWORD dwFlags, LPDDGAMMARAMP lpGammaRamp) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectDrawGammaControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawGammaControl_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectDrawGammaControl_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectDrawGammaControl methods ***/
-#define IDirectDrawGammaControl_GetGammaRamp(p,a,b)   (p)->lpVtbl->GetGammaRamp(p,a,b)
-#define IDirectDrawGammaControl_SetGammaRamp(p,a,b)   (p)->lpVtbl->SetGammaRamp(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirectDrawGammaControl_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectDrawGammaControl_AddRef(p)             (p)->AddRef()
-#define IDirectDrawGammaControl_Release(p)            (p)->Release()
-/*** IDirectDrawGammaControl methods ***/
-#define IDirectDrawGammaControl_GetGammaRamp(p,a,b)   (p)->GetGammaRamp(a,b)
-#define IDirectDrawGammaControl_SetGammaRamp(p,a,b)   (p)->SetGammaRamp(a,b)
-#endif
-
-
-HRESULT WINAPI DirectDrawCreate(GUID*,LPDIRECTDRAW*,IUnknown*);
-HRESULT WINAPI DirectDrawCreateEx(GUID*,LPVOID*,REFIID,IUnknown*);
-HRESULT WINAPI DirectDrawCreateClipper(DWORD,LPDIRECTDRAWCLIPPER*,IUnknown*);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* defined(__cplusplus) */
-
-#endif /* __DDRAW_INCLUDED__ */
diff --git a/3rdparty/include/dshow/dshow.h b/3rdparty/include/dshow/dshow.h
deleted file mode 100644
index 2587b2f..0000000
--- a/3rdparty/include/dshow/dshow.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2002 Alexandre Julliard
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#ifndef __DSHOW_INCLUDED__
-#define __DSHOW_INCLUDED__
-
-#define AM_NOVTABLE
-
-#ifndef __WINESRC__
-# include <windows.h>
-# include <windowsx.h>
-#else
-# include <windef.h>
-# include <wingdi.h>
-# include <objbase.h>
-#endif
-#include <olectl.h>
-#include <dshow/ddraw.h>
-#include <mmsystem.h>
-/* FIXME: #include <strsafe.h>*/
-
-#ifndef NUMELMS
-#define NUMELMS(array) (sizeof(array)/sizeof((array)[0]))
-#endif
-
-#include <dshow/strmif.h>
-#include <dshow/amvideo.h>
-#ifdef DSHOW_USE_AMAUDIO
-/* FIXME: #include <amaudio.h>*/
-#endif
-#include <dshow/control.h>
-#include <dshow/evcode.h>
-#include <dshow/uuids.h>
-#include <dshow/errors.h>
-/* FIXME: #include <edevdefs.h> */
-#include <dshow/audevcod.h>
-/* FIXME: #include <dvdevcod.h> */
-
-#ifndef OATRUE
-#define OATRUE (-1)
-#endif
-#ifndef OAFALSE
-#define OAFALSE (0)
-#endif
-
-#endif /* __DSHOW_INCLUDED__ */
diff --git a/3rdparty/include/dshow/dsound.h b/3rdparty/include/dshow/dsound.h
deleted file mode 100644
index 4140a6d..0000000
--- a/3rdparty/include/dshow/dsound.h
+++ /dev/null
@@ -1,1199 +0,0 @@
-#include <dshow/_mingw_unicode.h>
-#undef INTERFACE
-/*
- * Copyright (C) the Wine project
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#ifndef __DSOUND_INCLUDED__
-#define __DSOUND_INCLUDED__
-
-#ifndef DIRECTSOUND_VERSION
-#define DIRECTSOUND_VERSION 0x0900
-#endif
-
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-#include <float.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* defined(__cplusplus) */
-
-#ifndef DX_SHARED_DEFINES
-
-typedef float D3DVALUE, *LPD3DVALUE;
-
-#ifndef D3DCOLOR_DEFINED
-typedef DWORD D3DCOLOR, *LPD3DCOLOR;
-#define D3DCOLOR_DEFINED
-#endif
-
-#ifndef D3DVECTOR_DEFINED
-typedef struct _D3DVECTOR {
-    float x;
-    float y;
-    float z;
-} D3DVECTOR;
-#define D3DVECTOR_DEFINED
-#endif
-
-#ifndef LPD3DVECTOR_DEFINED
-typedef D3DVECTOR *LPD3DVECTOR;
-#define LPD3DVECTOR_DEFINED
-#endif
-
-#define DX_SHARED_DEFINES
-#endif /* DX_SHARED_DEFINES */
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-DEFINE_GUID(CLSID_DirectSound,		0x47d4d946, 0x62e8, 0x11cf, 0x93, 0xbc, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
-DEFINE_GUID(CLSID_DirectSound8,		0x3901cc3f, 0x84b5, 0x4fa4, 0xba, 0x35, 0xaa, 0x81, 0x72, 0xb8, 0xa0, 0x9b);
-DEFINE_GUID(CLSID_DirectSoundCapture,	0xb0210780, 0x89cd, 0x11d0, 0xaf, 0x08, 0x00, 0xa0, 0xc9, 0x25, 0xcd, 0x16);
-DEFINE_GUID(CLSID_DirectSoundCapture8,	0xe4bcac13, 0x7f99, 0x4908, 0x9a, 0x8e, 0x74, 0xe3, 0xbf, 0x24, 0xb6, 0xe1);
-DEFINE_GUID(CLSID_DirectSoundFullDuplex,0xfea4300c, 0x7959, 0x4147, 0xb2, 0x6a, 0x23, 0x77, 0xb9, 0xe7, 0xa9, 0x1d);
-
-DEFINE_GUID(IID_IDirectSound,		0x279AFA83,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
-typedef struct IDirectSound *LPDIRECTSOUND,**LPLPDIRECTSOUND;
-
-DEFINE_GUID(IID_IDirectSound8,		0xC50A7E93,0xF395,0x4834,0x9E,0xF6,0x7F,0xA9,0x9D,0xE5,0x09,0x66);
-typedef struct IDirectSound8 *LPDIRECTSOUND8,**LPLPDIRECTSOUND8;
-
-DEFINE_GUID(IID_IDirectSoundBuffer,	0x279AFA85,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
-typedef struct IDirectSoundBuffer *LPDIRECTSOUNDBUFFER,**LPLPDIRECTSOUNDBUFFER;
-
-DEFINE_GUID(IID_IDirectSoundBuffer8,	0x6825A449,0x7524,0x4D82,0x92,0x0F,0x50,0xE3,0x6A,0xB3,0xAB,0x1E);
-typedef struct IDirectSoundBuffer8 *LPDIRECTSOUNDBUFFER8,**LPLPDIRECTSOUNDBUFFER8;
-
-DEFINE_GUID(IID_IDirectSoundNotify,	0xB0210783,0x89cd,0x11d0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16);
-typedef struct IDirectSoundNotify *LPDIRECTSOUNDNOTIFY,**LPLPDIRECTSOUNDNOTIFY;
-#define	IID_IDirectSoundNotify8		IID_IDirectSoundNotify
-
-DEFINE_GUID(IID_IDirectSound3DListener,	0x279AFA84,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
-typedef struct IDirectSound3DListener *LPDIRECTSOUND3DLISTENER,**LPLPDIRECTSOUND3DLISTENER;
-
-DEFINE_GUID(IID_IDirectSound3DBuffer,	0x279AFA86,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
-typedef struct IDirectSound3DBuffer *LPDIRECTSOUND3DBUFFER,**LPLPDIRECTSOUND3DBUFFER;
-
-DEFINE_GUID(IID_IDirectSoundCapture,	0xB0210781,0x89CD,0x11D0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16);
-typedef struct IDirectSoundCapture *LPDIRECTSOUNDCAPTURE,**LPLPDIRECTSOUNDCAPTURE;
-#define	IID_IDirectSoundCapture8	IID_IDirectSoundCapture
-typedef struct IDirectSoundCapture IDirectSoundCapture8,*LPDIRECTSOUNDCAPTURE8,**LPLPDIRECTSOUNDCAPTURE8;
-
-DEFINE_GUID(IID_IDirectSoundCaptureBuffer,0xB0210782,0x89CD,0x11D0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16);
-typedef struct IDirectSoundCaptureBuffer *LPDIRECTSOUNDCAPTUREBUFFER,**LPLPDIRECTSOUNDCAPTUREBUFFER;
-
-DEFINE_GUID(IID_IDirectSoundCaptureBuffer8,0x00990DF4,0x0DBB,0x4872,0x83,0x3E,0x6D,0x30,0x3E,0x80,0xAE,0xB6);
-typedef struct IDirectSoundCaptureBuffer8 *LPDIRECTSOUNDCAPTUREBUFFER8,**LPLPDIRECTSOUNDCAPTUREBUFFER8;
-
-DEFINE_GUID(IID_IDirectSoundFullDuplex,	0xEDCB4C7A,0xDAAB,0x4216,0xA4,0x2E,0x6C,0x50,0x59,0x6D,0xDC,0x1D);
-typedef struct IDirectSoundFullDuplex *LPDIRECTSOUNDFULLDUPLEX,**LPLPDIRECTSOUNDFULLDUPLEX;
-#define	IID_IDirectSoundFullDuplex8	IID_IDirectSoundFullDuplex
-
-DEFINE_GUID(DSDEVID_DefaultPlayback,     0xDEF00000,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
-DEFINE_GUID(DSDEVID_DefaultCapture,      0xDEF00001,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
-DEFINE_GUID(DSDEVID_DefaultVoicePlayback,0xDEF00002,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
-DEFINE_GUID(DSDEVID_DefaultVoiceCapture, 0xDEF00003,0x9C6D,0x47ED,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
-
-DEFINE_GUID(DSDEVID_WinePlayback,        0x40316A1D,0x605B,0xD611,0x87,0xC6,0x00,0x80,0xAD,0x00,0x02,0xFE);
-
-#define	_FACDS		0x878
-#define	MAKE_DSHRESULT(code)		MAKE_HRESULT(1,_FACDS,code)
-
-#define DS_OK				0
-#define DS_NO_VIRTUALIZATION            MAKE_HRESULT(0, _FACDS, 10)
-#define DS_INCOMPLETE                   MAKE_HRESULT(0, _FACDS, 20)
-#define DSERR_ALLOCATED			MAKE_DSHRESULT(10)
-#define DSERR_CONTROLUNAVAIL		MAKE_DSHRESULT(30)
-#define DSERR_INVALIDPARAM		E_INVALIDARG
-#define DSERR_INVALIDCALL		MAKE_DSHRESULT(50)
-#define DSERR_GENERIC			E_FAIL
-#define DSERR_PRIOLEVELNEEDED		MAKE_DSHRESULT(70)
-#define DSERR_OUTOFMEMORY		E_OUTOFMEMORY
-#define DSERR_BADFORMAT			MAKE_DSHRESULT(100)
-#define DSERR_UNSUPPORTED		E_NOTIMPL
-#define DSERR_NODRIVER			MAKE_DSHRESULT(120)
-#define DSERR_ALREADYINITIALIZED	MAKE_DSHRESULT(130)
-#define DSERR_NOAGGREGATION		CLASS_E_NOAGGREGATION
-#define DSERR_BUFFERLOST		MAKE_DSHRESULT(150)
-#define DSERR_OTHERAPPHASPRIO		MAKE_DSHRESULT(160)
-#define DSERR_UNINITIALIZED		MAKE_DSHRESULT(170)
-#define DSERR_NOINTERFACE               E_NOINTERFACE
-#define DSERR_ACCESSDENIED              E_ACCESSDENIED
-#define DSERR_BUFFERTOOSMALL            MAKE_DSHRESULT(180)
-#define DSERR_DS8_REQUIRED              MAKE_DSHRESULT(190)
-#define DSERR_SENDLOOP                  MAKE_DSHRESULT(200)
-#define DSERR_BADSENDBUFFERGUID         MAKE_DSHRESULT(210)
-#define DSERR_FXUNAVAILABLE             MAKE_DSHRESULT(220)
-#define DSERR_OBJECTNOTFOUND            MAKE_DSHRESULT(4449)
-
-#define DSCAPS_PRIMARYMONO          0x00000001
-#define DSCAPS_PRIMARYSTEREO        0x00000002
-#define DSCAPS_PRIMARY8BIT          0x00000004
-#define DSCAPS_PRIMARY16BIT         0x00000008
-#define DSCAPS_CONTINUOUSRATE       0x00000010
-#define DSCAPS_EMULDRIVER           0x00000020
-#define DSCAPS_CERTIFIED            0x00000040
-#define DSCAPS_SECONDARYMONO        0x00000100
-#define DSCAPS_SECONDARYSTEREO      0x00000200
-#define DSCAPS_SECONDARY8BIT        0x00000400
-#define DSCAPS_SECONDARY16BIT       0x00000800
-
-#define	DSSCL_NORMAL		1
-#define	DSSCL_PRIORITY		2
-#define	DSSCL_EXCLUSIVE		3
-#define	DSSCL_WRITEPRIMARY	4
-
-typedef struct _DSCAPS
-{
-    DWORD	dwSize;
-    DWORD	dwFlags;
-    DWORD	dwMinSecondarySampleRate;
-    DWORD	dwMaxSecondarySampleRate;
-    DWORD	dwPrimaryBuffers;
-    DWORD	dwMaxHwMixingAllBuffers;
-    DWORD	dwMaxHwMixingStaticBuffers;
-    DWORD	dwMaxHwMixingStreamingBuffers;
-    DWORD	dwFreeHwMixingAllBuffers;
-    DWORD	dwFreeHwMixingStaticBuffers;
-    DWORD	dwFreeHwMixingStreamingBuffers;
-    DWORD	dwMaxHw3DAllBuffers;
-    DWORD	dwMaxHw3DStaticBuffers;
-    DWORD	dwMaxHw3DStreamingBuffers;
-    DWORD	dwFreeHw3DAllBuffers;
-    DWORD	dwFreeHw3DStaticBuffers;
-    DWORD	dwFreeHw3DStreamingBuffers;
-    DWORD	dwTotalHwMemBytes;
-    DWORD	dwFreeHwMemBytes;
-    DWORD	dwMaxContigFreeHwMemBytes;
-    DWORD	dwUnlockTransferRateHwBuffers;
-    DWORD	dwPlayCpuOverheadSwBuffers;
-    DWORD	dwReserved1;
-    DWORD	dwReserved2;
-} DSCAPS,*LPDSCAPS;
-typedef const DSCAPS *LPCDSCAPS;
-
-#define DSBPLAY_LOOPING             0x00000001
-#define DSBPLAY_LOCHARDWARE         0x00000002
-#define DSBPLAY_LOCSOFTWARE         0x00000004
-#define DSBPLAY_TERMINATEBY_TIME    0x00000008
-#define DSBPLAY_TERMINATEBY_DISTANCE    0x000000010
-#define DSBPLAY_TERMINATEBY_PRIORITY    0x000000020
-
-#define DSBSTATUS_PLAYING           0x00000001
-#define DSBSTATUS_BUFFERLOST        0x00000002
-#define DSBSTATUS_LOOPING           0x00000004
-#define DSBSTATUS_LOCHARDWARE       0x00000008
-#define DSBSTATUS_LOCSOFTWARE       0x00000010
-#define DSBSTATUS_TERMINATED        0x00000020
-
-#define DSBLOCK_FROMWRITECURSOR     0x00000001
-#define DSBLOCK_ENTIREBUFFER        0x00000002
-
-#define DSBCAPS_PRIMARYBUFFER       0x00000001
-#define DSBCAPS_STATIC              0x00000002
-#define DSBCAPS_LOCHARDWARE         0x00000004
-#define DSBCAPS_LOCSOFTWARE         0x00000008
-#define DSBCAPS_CTRL3D              0x00000010
-#define DSBCAPS_CTRLFREQUENCY       0x00000020
-#define DSBCAPS_CTRLPAN             0x00000040
-#define DSBCAPS_CTRLVOLUME          0x00000080
-#define DSBCAPS_CTRLDEFAULT         0x000000E0  /* Pan + volume + frequency. */
-#define DSBCAPS_CTRLPOSITIONNOTIFY  0x00000100
-#define DSBCAPS_CTRLFX              0x00000200
-#define DSBCAPS_CTRLALL             0x000001F0  /* All control capabilities */
-#define DSBCAPS_STICKYFOCUS         0x00004000
-#define DSBCAPS_GLOBALFOCUS         0x00008000
-#define DSBCAPS_GETCURRENTPOSITION2 0x00010000  /* More accurate play cursor under emulation*/
-#define DSBCAPS_MUTE3DATMAXDISTANCE 0x00020000
-#define DSBCAPS_LOCDEFER            0x00040000
-
-#define DSBSIZE_MIN                 4
-#define DSBSIZE_MAX                 0xFFFFFFF
-#define DSBPAN_LEFT                 -10000
-#define DSBPAN_CENTER               0
-#define DSBPAN_RIGHT                 10000
-#define DSBVOLUME_MAX                    0
-#define DSBVOLUME_MIN               -10000
-#define DSBFREQUENCY_MIN            100
-#define DSBFREQUENCY_MAX            200000
-#define DSBFREQUENCY_ORIGINAL       0
-
-#define DSBNOTIFICATIONS_MAX        100000U
-
-typedef struct _DSBCAPS
-{
-    DWORD	dwSize;
-    DWORD	dwFlags;
-    DWORD	dwBufferBytes;
-    DWORD	dwUnlockTransferRate;
-    DWORD	dwPlayCpuOverhead;
-} DSBCAPS,*LPDSBCAPS;
-typedef const DSBCAPS *LPCDSBCAPS;
-
-#define DSSCL_NORMAL                1
-#define DSSCL_PRIORITY              2
-#define DSSCL_EXCLUSIVE             3
-#define DSSCL_WRITEPRIMARY          4
-
-typedef struct _DSEFFECTDESC
-{
-    DWORD	dwSize;
-    DWORD	dwFlags;
-    GUID	guidDSFXClass;
-    DWORD_PTR	dwReserved1;
-    DWORD_PTR	dwReserved2;
-} DSEFFECTDESC,*LPDSEFFECTDESC;
-typedef const DSEFFECTDESC *LPCDSEFFECTDESC;
-
-#define DSFX_LOCHARDWARE    0x00000001
-#define DSFX_LOCSOFTWARE    0x00000002
-
-enum
-{
-    DSFXR_PRESENT,
-    DSFXR_LOCHARDWARE,
-    DSFXR_LOCSOFTWARE,
-    DSFXR_UNALLOCATED,
-    DSFXR_FAILED,
-    DSFXR_UNKNOWN,
-    DSFXR_SENDLOOP
-};
-
-typedef struct _DSBUFFERDESC1
-{
-    DWORD		dwSize;
-    DWORD		dwFlags;
-    DWORD		dwBufferBytes;
-    DWORD		dwReserved;
-    LPWAVEFORMATEX	lpwfxFormat;
-} DSBUFFERDESC1,*LPDSBUFFERDESC1;
-typedef const DSBUFFERDESC1 *LPCDSBUFFERDESC1;
-
-typedef struct _DSBUFFERDESC
-{
-    DWORD		dwSize;
-    DWORD		dwFlags;
-    DWORD		dwBufferBytes;
-    DWORD		dwReserved;
-    LPWAVEFORMATEX	lpwfxFormat;
-    GUID		guid3DAlgorithm;
-} DSBUFFERDESC,*LPDSBUFFERDESC;
-typedef const DSBUFFERDESC *LPCDSBUFFERDESC;
-
-typedef struct _DSBPOSITIONNOTIFY
-{
-    DWORD	dwOffset;
-    HANDLE	hEventNotify;
-} DSBPOSITIONNOTIFY,*LPDSBPOSITIONNOTIFY;
-typedef const DSBPOSITIONNOTIFY *LPCDSBPOSITIONNOTIFY;
-
-#define DSSPEAKER_HEADPHONE     1
-#define DSSPEAKER_MONO          2
-#define DSSPEAKER_QUAD          3
-#define DSSPEAKER_STEREO        4
-#define DSSPEAKER_SURROUND      5
-#define DSSPEAKER_5POINT1       6
-#define DSSPEAKER_7POINT1       7
-
-#define DSSPEAKER_GEOMETRY_MIN      0x00000005  /* 5 degrees */
-#define DSSPEAKER_GEOMETRY_NARROW   0x0000000A  /* 10 degrees */
-#define DSSPEAKER_GEOMETRY_WIDE     0x00000014  /* 20 degrees */
-#define DSSPEAKER_GEOMETRY_MAX      0x000000B4  /* 180 degrees */
-
-#define DSSPEAKER_COMBINED(c, g)    ((DWORD)(((BYTE)(c)) | ((DWORD)((BYTE)(g))) << 16))
-#define DSSPEAKER_CONFIG(a)         ((BYTE)(a))
-#define DSSPEAKER_GEOMETRY(a)       ((BYTE)(((DWORD)(a) >> 16) & 0x00FF))
-
-#define DS_CERTIFIED                0x00000000
-#define DS_UNCERTIFIED              0x00000001
-
-typedef struct _DSCEFFECTDESC
-{
-    DWORD       dwSize;
-    DWORD       dwFlags;
-    GUID        guidDSCFXClass;
-    GUID        guidDSCFXInstance;
-    DWORD       dwReserved1;
-    DWORD       dwReserved2;
-} DSCEFFECTDESC, *LPDSCEFFECTDESC;
-typedef const DSCEFFECTDESC *LPCDSCEFFECTDESC;
-
-#define DSCFX_LOCHARDWARE   0x00000001
-#define DSCFX_LOCSOFTWARE   0x00000002
-
-#define DSCFXR_LOCHARDWARE  0x00000010
-#define DSCFXR_LOCSOFTWARE  0x00000020
-
-typedef struct _DSCBUFFERDESC1
-{
-  DWORD           dwSize;
-  DWORD           dwFlags;
-  DWORD           dwBufferBytes;
-  DWORD           dwReserved;
-  LPWAVEFORMATEX  lpwfxFormat;
-} DSCBUFFERDESC1, *LPDSCBUFFERDESC1;
-
-typedef struct _DSCBUFFERDESC
-{
-  DWORD           dwSize;
-  DWORD           dwFlags;
-  DWORD           dwBufferBytes;
-  DWORD           dwReserved;
-  LPWAVEFORMATEX  lpwfxFormat;
-  DWORD           dwFXCount;
-  LPDSCEFFECTDESC lpDSCFXDesc;
-} DSCBUFFERDESC, *LPDSCBUFFERDESC;
-typedef const DSCBUFFERDESC *LPCDSCBUFFERDESC;
-
-typedef struct _DSCCAPS
-{
-  DWORD dwSize;
-  DWORD dwFlags;
-  DWORD dwFormats;
-  DWORD dwChannels;
-} DSCCAPS, *LPDSCCAPS;
-typedef const DSCCAPS *LPCDSCCAPS;
-
-typedef struct _DSCBCAPS
-{
-  DWORD dwSize;
-  DWORD dwFlags;
-  DWORD dwBufferBytes;
-  DWORD dwReserved;
-} DSCBCAPS, *LPDSCBCAPS;
-typedef const DSCBCAPS *LPCDSCBCAPS;
-
-#define DSCCAPS_EMULDRIVER          DSCAPS_EMULDRIVER
-#define DSCCAPS_CERTIFIED           DSCAPS_CERTIFIED
-#define DSCCAPS_MULTIPLECAPTURE     0x00000001
-
-#define DSCBCAPS_WAVEMAPPED         0x80000000
-#define DSCBCAPS_CTRLFX             0x00000200
-
-#define DSCBLOCK_ENTIREBUFFER       0x00000001
-#define DSCBSTART_LOOPING           0x00000001
-#define DSCBPN_OFFSET_STOP          0xffffffff
-
-#define DSCBSTATUS_CAPTURING        0x00000001
-#define DSCBSTATUS_LOOPING          0x00000002
-
-#ifndef __LPCGUID_DEFINED__
-#define __LPCGUID_DEFINED__
-typedef const GUID *LPCGUID;
-#endif
-
-typedef WINBOOL (CALLBACK *LPDSENUMCALLBACKW)(LPGUID,LPCWSTR,LPCWSTR,LPVOID);
-typedef WINBOOL (CALLBACK *LPDSENUMCALLBACKA)(LPGUID,LPCSTR,LPCSTR,LPVOID);
-__MINGW_TYPEDEF_AW(LPDSENUMCALLBACK)
-
-extern HRESULT WINAPI DirectSoundCreate(LPCGUID lpGUID,LPDIRECTSOUND *ppDS,LPUNKNOWN pUnkOuter);
-extern HRESULT WINAPI DirectSoundEnumerateA(LPDSENUMCALLBACKA, LPVOID);
-extern HRESULT WINAPI DirectSoundEnumerateW(LPDSENUMCALLBACKW, LPVOID);
-#define DirectSoundEnumerate __MINGW_NAME_AW(DirectSoundEnumerate)
-extern HRESULT WINAPI DirectSoundCaptureCreate(LPCGUID lpGUID, LPDIRECTSOUNDCAPTURE *ppDSC, LPUNKNOWN pUnkOuter);
-extern HRESULT WINAPI DirectSoundCaptureEnumerateA(LPDSENUMCALLBACKA, LPVOID);
-extern HRESULT WINAPI DirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW, LPVOID);
-#define DirectSoundCaptureEnumerate __MINGW_NAME_AW(DirectSoundCaptureEnumerate)
-
-extern HRESULT WINAPI DirectSoundCreate8(LPCGUID lpGUID,LPDIRECTSOUND8 *ppDS8,LPUNKNOWN pUnkOuter);
-extern HRESULT WINAPI DirectSoundCaptureCreate8(LPCGUID lpGUID, LPDIRECTSOUNDCAPTURE8 *ppDSC8, LPUNKNOWN pUnkOuter);
-extern HRESULT WINAPI DirectSoundFullDuplexCreate(LPCGUID pcGuidCaptureDevice, LPCGUID pcGuidRenderDevice,
-    LPCDSCBUFFERDESC pcDSCBufferDesc, LPCDSBUFFERDESC pcDSBufferDesc, HWND hWnd, DWORD dwLevel,
-    LPDIRECTSOUNDFULLDUPLEX *ppDSFD, LPDIRECTSOUNDCAPTUREBUFFER8 *ppDSCBuffer8, LPDIRECTSOUNDBUFFER8 *ppDSBuffer8, LPUNKNOWN pUnkOuter);
-#define DirectSoundFullDuplexCreate8 DirectSoundFullDuplexCreate
-extern HRESULT WINAPI GetDeviceID(LPCGUID lpGuidSrc, LPGUID lpGuidDest);
-
-
-/*****************************************************************************
- * IDirectSound interface
- */
-#define INTERFACE IDirectSound
-DECLARE_INTERFACE_(IDirectSound,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSound methods ***/
-    STDMETHOD(CreateSoundBuffer)(THIS_ LPCDSBUFFERDESC lpcDSBufferDesc, LPLPDIRECTSOUNDBUFFER lplpDirectSoundBuffer, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDSCAPS lpDSCaps) PURE;
-    STDMETHOD(DuplicateSoundBuffer)(THIS_ LPDIRECTSOUNDBUFFER lpDsbOriginal, LPLPDIRECTSOUNDBUFFER lplpDsbDuplicate) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwLevel) PURE;
-    STDMETHOD(Compact)(THIS) PURE;
-    STDMETHOD(GetSpeakerConfig)(THIS_ LPDWORD lpdwSpeakerConfig) PURE;
-    STDMETHOD(SetSpeakerConfig)(THIS_ DWORD dwSpeakerConfig) PURE;
-    STDMETHOD(Initialize)(THIS_ LPCGUID lpcGuid) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSound_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSound_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSound_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSound methods ***/
-#define IDirectSound_CreateSoundBuffer(p,a,b,c)  (p)->lpVtbl->CreateSoundBuffer(p,a,b,c)
-#define IDirectSound_GetCaps(p,a)                (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b)
-#define IDirectSound_SetCooperativeLevel(p,a,b)  (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectSound_Compact(p)                  (p)->lpVtbl->Compact(p)
-#define IDirectSound_GetSpeakerConfig(p,a)       (p)->lpVtbl->GetSpeakerConfig(p,a)
-#define IDirectSound_SetSpeakerConfig(p,a)       (p)->lpVtbl->SetSpeakerConfig(p,a)
-#define IDirectSound_Initialize(p,a)             (p)->lpVtbl->Initialize(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirectSound_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSound_AddRef(p)             (p)->AddRef()
-#define IDirectSound_Release(p)            (p)->Release()
-/*** IDirectSound methods ***/
-#define IDirectSound_CreateSoundBuffer(p,a,b,c)  (p)->CreateSoundBuffer(a,b,c)
-#define IDirectSound_GetCaps(p,a)                (p)->GetCaps(a)
-#define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->DuplicateSoundBuffer(a,b)
-#define IDirectSound_SetCooperativeLevel(p,a,b)  (p)->SetCooperativeLevel(a,b)
-#define IDirectSound_Compact(p)                  (p)->Compact()
-#define IDirectSound_GetSpeakerConfig(p,a)       (p)->GetSpeakerConfig(a)
-#define IDirectSound_SetSpeakerConfig(p,a)       (p)->SetSpeakerConfig(a)
-#define IDirectSound_Initialize(p,a)             (p)->Initialize(a)
-#endif
-
-
-/*****************************************************************************
- * IDirectSound8 interface
- */
-#define INTERFACE IDirectSound8
-DECLARE_INTERFACE_(IDirectSound8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSound8 methods ***/
-    STDMETHOD(CreateSoundBuffer)(THIS_ LPCDSBUFFERDESC lpcDSBufferDesc, LPLPDIRECTSOUNDBUFFER lplpDirectSoundBuffer, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDSCAPS lpDSCaps) PURE;
-    STDMETHOD(DuplicateSoundBuffer)(THIS_ LPDIRECTSOUNDBUFFER lpDsbOriginal, LPLPDIRECTSOUNDBUFFER lplpDsbDuplicate) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwLevel) PURE;
-    STDMETHOD(Compact)(THIS) PURE;
-    STDMETHOD(GetSpeakerConfig)(THIS_ LPDWORD lpdwSpeakerConfig) PURE;
-    STDMETHOD(SetSpeakerConfig)(THIS_ DWORD dwSpeakerConfig) PURE;
-    STDMETHOD(Initialize)(THIS_ LPCGUID lpcGuid) PURE;
-    STDMETHOD(VerifyCertification)(THIS_ LPDWORD pdwCertified) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSound8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSound8_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSound8_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSound methods ***/
-#define IDirectSound8_CreateSoundBuffer(p,a,b,c)  (p)->lpVtbl->CreateSoundBuffer(p,a,b,c)
-#define IDirectSound8_GetCaps(p,a)                (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSound8_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b)
-#define IDirectSound8_SetCooperativeLevel(p,a,b)  (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectSound8_Compact(p)                  (p)->lpVtbl->Compact(p)
-#define IDirectSound8_GetSpeakerConfig(p,a)       (p)->lpVtbl->GetSpeakerConfig(p,a)
-#define IDirectSound8_SetSpeakerConfig(p,a)       (p)->lpVtbl->SetSpeakerConfig(p,a)
-#define IDirectSound8_Initialize(p,a)             (p)->lpVtbl->Initialize(p,a)
-/*** IDirectSound8 methods ***/
-#define IDirectSound8_VerifyCertification(p,a)    (p)->lpVtbl->VerifyCertification(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirectSound8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSound8_AddRef(p)             (p)->AddRef()
-#define IDirectSound8_Release(p)            (p)->Release()
-/*** IDirectSound methods ***/
-#define IDirectSound8_CreateSoundBuffer(p,a,b,c)  (p)->CreateSoundBuffer(a,b,c)
-#define IDirectSound8_GetCaps(p,a)                (p)->GetCaps(a)
-#define IDirectSound8_DuplicateSoundBuffer(p,a,b) (p)->DuplicateSoundBuffer(a,b)
-#define IDirectSound8_SetCooperativeLevel(p,a,b)  (p)->SetCooperativeLevel(a,b)
-#define IDirectSound8_Compact(p)                  (p)->Compact()
-#define IDirectSound8_GetSpeakerConfig(p,a)       (p)->GetSpeakerConfig(a)
-#define IDirectSound8_SetSpeakerConfig(p,a)       (p)->SetSpeakerConfig(a)
-#define IDirectSound8_Initialize(p,a)             (p)->Initialize(a)
-/*** IDirectSound8 methods ***/
-#define IDirectSound8_VerifyCertification(p,a)    (p)->VerifyCertification(a)
-#endif
-
-
-/*****************************************************************************
- * IDirectSoundBuffer interface
- */
-#define INTERFACE IDirectSoundBuffer
-DECLARE_INTERFACE_(IDirectSoundBuffer,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundBuffer methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDSBCAPS lpDSBufferCaps) PURE;
-    STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor, LPDWORD lpdwCurrentWriteCursor) PURE;
-    STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
-    STDMETHOD(GetVolume)(THIS_ LPLONG lplVolume) PURE;
-    STDMETHOD(GetPan)(THIS_ LPLONG lplpan) PURE;
-    STDMETHOD(GetFrequency)(THIS_ LPDWORD lpdwFrequency) PURE;
-    STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTSOUND lpDirectSound, LPCDSBUFFERDESC lpcDSBufferDesc) PURE;
-    STDMETHOD(Lock)(THIS_ DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags) PURE;
-    STDMETHOD(Play)(THIS_ DWORD dwReserved1, DWORD dwReserved2, DWORD dwFlags) PURE;
-    STDMETHOD(SetCurrentPosition)(THIS_ DWORD dwNewPosition) PURE;
-    STDMETHOD(SetFormat)(THIS_ LPCWAVEFORMATEX lpcfxFormat) PURE;
-    STDMETHOD(SetVolume)(THIS_ LONG lVolume) PURE;
-    STDMETHOD(SetPan)(THIS_ LONG lPan) PURE;
-    STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE;
-    STDMETHOD(Stop)(THIS) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioPtr2) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundBuffer_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSoundBuffer_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSoundBuffer methods ***/
-#define IDirectSoundBuffer_GetCaps(p,a)                (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundBuffer_GetCurrentPosition(p,a,b)   (p)->lpVtbl->GetCurrentPosition(p,a,b)
-#define IDirectSoundBuffer_GetFormat(p,a,b,c)          (p)->lpVtbl->GetFormat(p,a,b,c)
-#define IDirectSoundBuffer_GetVolume(p,a)              (p)->lpVtbl->GetVolume(p,a)
-#define IDirectSoundBuffer_GetPan(p,a)                 (p)->lpVtbl->GetPan(p,a)
-#define IDirectSoundBuffer_GetFrequency(p,a)           (p)->lpVtbl->GetFrequency(p,a)
-#define IDirectSoundBuffer_GetStatus(p,a)              (p)->lpVtbl->GetStatus(p,a)
-#define IDirectSoundBuffer_Initialize(p,a,b)           (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g)       (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
-#define IDirectSoundBuffer_Play(p,a,b,c)               (p)->lpVtbl->Play(p,a,b,c)
-#define IDirectSoundBuffer_SetCurrentPosition(p,a)     (p)->lpVtbl->SetCurrentPosition(p,a)
-#define IDirectSoundBuffer_SetFormat(p,a)              (p)->lpVtbl->SetFormat(p,a)
-#define IDirectSoundBuffer_SetVolume(p,a)              (p)->lpVtbl->SetVolume(p,a)
-#define IDirectSoundBuffer_SetPan(p,a)                 (p)->lpVtbl->SetPan(p,a)
-#define IDirectSoundBuffer_SetFrequency(p,a)           (p)->lpVtbl->SetFrequency(p,a)
-#define IDirectSoundBuffer_Stop(p)                     (p)->lpVtbl->Stop(p)
-#define IDirectSoundBuffer_Unlock(p,a,b,c,d)           (p)->lpVtbl->Unlock(p,a,b,c,d)
-#define IDirectSoundBuffer_Restore(p)                  (p)->lpVtbl->Restore(p)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSoundBuffer_AddRef(p)             (p)->AddRef()
-#define IDirectSoundBuffer_Release(p)            (p)->Release()
-/*** IDirectSoundBuffer methods ***/
-#define IDirectSoundBuffer_GetCaps(p,a)                (p)->GetCaps(a)
-#define IDirectSoundBuffer_GetCurrentPosition(p,a,b)   (p)->GetCurrentPosition(a,b)
-#define IDirectSoundBuffer_GetFormat(p,a,b,c)          (p)->GetFormat(a,b,c)
-#define IDirectSoundBuffer_GetVolume(p,a)              (p)->GetVolume(a)
-#define IDirectSoundBuffer_GetPan(p,a)                 (p)->GetPan(a)
-#define IDirectSoundBuffer_GetFrequency(p,a)           (p)->GetFrequency(a)
-#define IDirectSoundBuffer_GetStatus(p,a)              (p)->GetStatus(a)
-#define IDirectSoundBuffer_Initialize(p,a,b)           (p)->Initialize(a,b)
-#define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g)       (p)->Lock(a,b,c,d,e,f,g)
-#define IDirectSoundBuffer_Play(p,a,b,c)               (p)->Play(a,b,c)
-#define IDirectSoundBuffer_SetCurrentPosition(p,a)     (p)->SetCurrentPosition(a)
-#define IDirectSoundBuffer_SetFormat(p,a)              (p)->SetFormat(a)
-#define IDirectSoundBuffer_SetVolume(p,a)              (p)->SetVolume(a)
-#define IDirectSoundBuffer_SetPan(p,a)                 (p)->SetPan(a)
-#define IDirectSoundBuffer_SetFrequency(p,a)           (p)->SetFrequency(a)
-#define IDirectSoundBuffer_Stop(p)                     (p)->Stop()
-#define IDirectSoundBuffer_Unlock(p,a,b,c,d)           (p)->Unlock(a,b,c,d)
-#define IDirectSoundBuffer_Restore(p)                  (p)->Restore()
-#endif
-
-
-/*****************************************************************************
- * IDirectSoundBuffer8 interface
- */
-#define INTERFACE IDirectSoundBuffer8
-DECLARE_INTERFACE_(IDirectSoundBuffer8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundBuffer8 methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDSBCAPS lpDSBufferCaps) PURE;
-    STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor, LPDWORD lpdwCurrentWriteCursor) PURE;
-    STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
-    STDMETHOD(GetVolume)(THIS_ LPLONG lplVolume) PURE;
-    STDMETHOD(GetPan)(THIS_ LPLONG lplpan) PURE;
-    STDMETHOD(GetFrequency)(THIS_ LPDWORD lpdwFrequency) PURE;
-    STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTSOUND lpDirectSound, LPCDSBUFFERDESC lpcDSBufferDesc) PURE;
-    STDMETHOD(Lock)(THIS_ DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags) PURE;
-    STDMETHOD(Play)(THIS_ DWORD dwReserved1, DWORD dwReserved2, DWORD dwFlags) PURE;
-    STDMETHOD(SetCurrentPosition)(THIS_ DWORD dwNewPosition) PURE;
-    STDMETHOD(SetFormat)(THIS_ LPCWAVEFORMATEX lpcfxFormat) PURE;
-    STDMETHOD(SetVolume)(THIS_ LONG lVolume) PURE;
-    STDMETHOD(SetPan)(THIS_ LONG lPan) PURE;
-    STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE;
-    STDMETHOD(Stop)(THIS) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioPtr2) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetFX)(THIS_ DWORD dwEffectsCount, LPDSEFFECTDESC pDSFXDesc, LPDWORD pdwResultCodes) PURE;
-    STDMETHOD(AcquireResources)(THIS_ DWORD dwFlags, DWORD dwEffectsCount, LPDWORD pdwResultCodes) PURE;
-    STDMETHOD(GetObjectInPath)(THIS_ REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundBuffer8_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSoundBuffer8_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSoundBuffer methods ***/
-#define IDirectSoundBuffer8_GetCaps(p,a)                (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundBuffer8_GetCurrentPosition(p,a,b)   (p)->lpVtbl->GetCurrentPosition(p,a,b)
-#define IDirectSoundBuffer8_GetFormat(p,a,b,c)          (p)->lpVtbl->GetFormat(p,a,b,c)
-#define IDirectSoundBuffer8_GetVolume(p,a)              (p)->lpVtbl->GetVolume(p,a)
-#define IDirectSoundBuffer8_GetPan(p,a)                 (p)->lpVtbl->GetPan(p,a)
-#define IDirectSoundBuffer8_GetFrequency(p,a)           (p)->lpVtbl->GetFrequency(p,a)
-#define IDirectSoundBuffer8_GetStatus(p,a)              (p)->lpVtbl->GetStatus(p,a)
-#define IDirectSoundBuffer8_Initialize(p,a,b)           (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectSoundBuffer8_Lock(p,a,b,c,d,e,f,g)       (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
-#define IDirectSoundBuffer8_Play(p,a,b,c)               (p)->lpVtbl->Play(p,a,b,c)
-#define IDirectSoundBuffer8_SetCurrentPosition(p,a)     (p)->lpVtbl->SetCurrentPosition(p,a)
-#define IDirectSoundBuffer8_SetFormat(p,a)              (p)->lpVtbl->SetFormat(p,a)
-#define IDirectSoundBuffer8_SetVolume(p,a)              (p)->lpVtbl->SetVolume(p,a)
-#define IDirectSoundBuffer8_SetPan(p,a)                 (p)->lpVtbl->SetPan(p,a)
-#define IDirectSoundBuffer8_SetFrequency(p,a)           (p)->lpVtbl->SetFrequency(p,a)
-#define IDirectSoundBuffer8_Stop(p)                     (p)->lpVtbl->Stop(p)
-#define IDirectSoundBuffer8_Unlock(p,a,b,c,d)           (p)->lpVtbl->Unlock(p,a,b,c,d)
-#define IDirectSoundBuffer8_Restore(p)                  (p)->lpVtbl->Restore(p)
-/*** IDirectSoundBuffer8 methods ***/
-#define IDirectSoundBuffer8_SetFX(p,a,b,c)              (p)->lpVtbl->SetFX(p,a,b,c)
-#define IDirectSoundBuffer8_AcquireResources(p,a,b,c)   (p)->lpVtbl->AcquireResources(p,a,b,c)
-#define IDirectSoundBuffer8_GetObjectInPath(p,a,b,c,d)  (p)->lpVtbl->GetObjectInPath(p,a,b,c,d)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSoundBuffer8_AddRef(p)             (p)->AddRef()
-#define IDirectSoundBuffer8_Release(p)            (p)->Release()
-/*** IDirectSoundBuffer methods ***/
-#define IDirectSoundBuffer8_GetCaps(p,a)                (p)->GetCaps(a)
-#define IDirectSoundBuffer8_GetCurrentPosition(p,a,b)   (p)->GetCurrentPosition(a,b)
-#define IDirectSoundBuffer8_GetFormat(p,a,b,c)          (p)->GetFormat(a,b,c)
-#define IDirectSoundBuffer8_GetVolume(p,a)              (p)->GetVolume(a)
-#define IDirectSoundBuffer8_GetPan(p,a)                 (p)->GetPan(a)
-#define IDirectSoundBuffer8_GetFrequency(p,a)           (p)->GetFrequency(a)
-#define IDirectSoundBuffer8_GetStatus(p,a)              (p)->GetStatus(a)
-#define IDirectSoundBuffer8_Initialize(p,a,b)           (p)->Initialize(a,b)
-#define IDirectSoundBuffer8_Lock(p,a,b,c,d,e,f,g)       (p)->Lock(a,b,c,d,e,f,g)
-#define IDirectSoundBuffer8_Play(p,a,b,c)               (p)->Play(a,b,c)
-#define IDirectSoundBuffer8_SetCurrentPosition(p,a)     (p)->SetCurrentPosition(a)
-#define IDirectSoundBuffer8_SetFormat(p,a)              (p)->SetFormat(a)
-#define IDirectSoundBuffer8_SetVolume(p,a)              (p)->SetVolume(a)
-#define IDirectSoundBuffer8_SetPan(p,a)                 (p)->SetPan(a)
-#define IDirectSoundBuffer8_SetFrequency(p,a)           (p)->SetFrequency(a)
-#define IDirectSoundBuffer8_Stop(p)                     (p)->Stop()
-#define IDirectSoundBuffer8_Unlock(p,a,b,c,d)           (p)->Unlock(a,b,c,d)
-#define IDirectSoundBuffer8_Restore(p)                  (p)->Restore()
-/*** IDirectSoundBuffer8 methods ***/
-#define IDirectSoundBuffer8_SetFX(p,a,b,c)              (p)->SetFX(a,b,c)
-#define IDirectSoundBuffer8_AcquireResources(p,a,b,c)   (p)->AcquireResources(a,b,c)
-#define IDirectSoundBuffer8_GetObjectInPath(p,a,b,c,d)  (p)->GetObjectInPath(a,b,c,d)
-#endif
-
-
-/*****************************************************************************
- * IDirectSoundCapture interface
- */
-#define INTERFACE IDirectSoundCapture
-DECLARE_INTERFACE_(IDirectSoundCapture,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundCapture methods ***/
-    STDMETHOD(CreateCaptureBuffer)(THIS_ LPCDSCBUFFERDESC lpcDSCBufferDesc,LPDIRECTSOUNDCAPTUREBUFFER *lplpDSCaptureBuffer, LPUNKNOWN pUnk) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDSCCAPS lpDSCCaps) PURE;
-    STDMETHOD(Initialize)(THIS_ LPCGUID lpcGUID) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundCapture_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundCapture_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirectSoundCapture_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirectSoundCapture methods ***/
-#define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->lpVtbl->CreateCaptureBuffer(p,a,b,c)
-#define IDirectSoundCapture_GetCaps(p,a)                 (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundCapture_Initialize(p,a)              (p)->lpVtbl->Initialize(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundCapture_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirectSoundCapture_AddRef(p)                    (p)->AddRef()
-#define IDirectSoundCapture_Release(p)                   (p)->Release()
-/*** IDirectSoundCapture methods ***/
-#define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->CreateCaptureBuffer(a,b,c)
-#define IDirectSoundCapture_GetCaps(p,a)                 (p)->GetCaps(a)
-#define IDirectSoundCapture_Initialize(p,a)              (p)->Initialize(a)
-#endif
-
-/*****************************************************************************
- * IDirectSoundCaptureBuffer interface
- */
-#define INTERFACE IDirectSoundCaptureBuffer
-DECLARE_INTERFACE_(IDirectSoundCaptureBuffer,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundCaptureBuffer methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDSCBCAPS lpDSCBCaps) PURE;
-    STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCapturePosition,LPDWORD lpdwReadPosition) PURE;
-    STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
-    STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTSOUNDCAPTURE lpDSC, LPCDSCBUFFERDESC lpcDSCBDesc) PURE;
-    STDMETHOD(Lock)(THIS_ DWORD dwReadCusor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags) PURE;
-    STDMETHOD(Start)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(Stop)(THIS) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundCaptureBuffer_QueryInterface(p,a,b)     (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundCaptureBuffer_AddRef(p)                 (p)->lpVtbl->AddRef(p)
-#define IDirectSoundCaptureBuffer_Release(p)                (p)->lpVtbl->Release(p)
-/*** IDirectSoundCaptureBuffer methods ***/
-#define IDirectSoundCaptureBuffer_GetCaps(p,a)              (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b)
-#define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c)        (p)->lpVtbl->GetFormat(p,a,b,c)
-#define IDirectSoundCaptureBuffer_GetStatus(p,a)            (p)->lpVtbl->GetStatus(p,a)
-#define IDirectSoundCaptureBuffer_Initialize(p,a,b)         (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g)     (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
-#define IDirectSoundCaptureBuffer_Start(p,a)                (p)->lpVtbl->Start(p,a)
-#define IDirectSoundCaptureBuffer_Stop(p)                   (p)->lpVtbl->Stop(p)
-#define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d)         (p)->lpVtbl->Unlock(p,a,b,c,d)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundCaptureBuffer_QueryInterface(p,a,b)     (p)->QueryInterface(a,b)
-#define IDirectSoundCaptureBuffer_AddRef(p)                 (p)->AddRef()
-#define IDirectSoundCaptureBuffer_Release(p)                (p)->Release()
-/*** IDirectSoundCaptureBuffer methods ***/
-#define IDirectSoundCaptureBuffer_GetCaps(p,a)              (p)->GetCaps(a)
-#define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b)
-#define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c)        (p)->GetFormat(a,b,c)
-#define IDirectSoundCaptureBuffer_GetStatus(p,a)            (p)->GetStatus(a)
-#define IDirectSoundCaptureBuffer_Initialize(p,a,b)         (p)->Initialize(a,b)
-#define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g)     (p)->Lock(a,b,c,d,e,f,g)
-#define IDirectSoundCaptureBuffer_Start(p,a)                (p)->Start(a)
-#define IDirectSoundCaptureBuffer_Stop(p)                   (p)->Stop()
-#define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d)         (p)->Unlock(a,b,c,d)
-#endif
-
-/*****************************************************************************
- * IDirectSoundCaptureBuffer8 interface
- */
-#define INTERFACE IDirectSoundCaptureBuffer8
-DECLARE_INTERFACE_(IDirectSoundCaptureBuffer8,IDirectSoundCaptureBuffer)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundCaptureBuffer methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDSCBCAPS lpDSCBCaps) PURE;
-    STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCapturePosition,LPDWORD lpdwReadPosition) PURE;
-    STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
-    STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTSOUNDCAPTURE lpDSC, LPCDSCBUFFERDESC lpcDSCBDesc) PURE;
-    STDMETHOD(Lock)(THIS_ DWORD dwReadCusor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags) PURE;
-    STDMETHOD(Start)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(Stop)(THIS) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2) PURE;
-    /*** IDirectSoundCaptureBuffer8 methods ***/
-    STDMETHOD(GetObjectInPath)(THIS_ REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject) PURE;
-    STDMETHOD(GetFXStatus)(THIS_ DWORD dwFXCount, LPDWORD pdwFXStatus) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundCaptureBuffer8_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundCaptureBuffer8_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IDirectSoundCaptureBuffer8_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IDirectSoundCaptureBuffer methods ***/
-#define IDirectSoundCaptureBuffer8_GetCaps(p,a)               (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundCaptureBuffer8_GetCurrentPosition(p,a,b)  (p)->lpVtbl->GetCurrentPosition(p,a,b)
-#define IDirectSoundCaptureBuffer8_GetFormat(p,a,b,c)         (p)->lpVtbl->GetFormat(p,a,b,c)
-#define IDirectSoundCaptureBuffer8_GetStatus(p,a)             (p)->lpVtbl->GetStatus(p,a)
-#define IDirectSoundCaptureBuffer8_Initialize(p,a,b)          (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectSoundCaptureBuffer8_Lock(p,a,b,c,d,e,f,g)      (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
-#define IDirectSoundCaptureBuffer8_Start(p,a)                 (p)->lpVtbl->Start(p,a)
-#define IDirectSoundCaptureBuffer8_Stop(p)                    (p)->lpVtbl->Stop(p)
-#define IDirectSoundCaptureBuffer8_Unlock(p,a,b,c,d)          (p)->lpVtbl->Unlock(p,a,b,c,d)
-/*** IDirectSoundCaptureBuffer8 methods ***/
-#define IDirectSoundCaptureBuffer8_GetObjectInPath(p,a,b,c,d) (p)->lpVtbl->GetObjectInPath(p,a,b,c,d)
-#define IDirectSoundCaptureBuffer8_GetFXStatus(p,a,b)         (p)->lpVtbl->GetFXStatus(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundCaptureBuffer8_QueryInterface(p,a,b)      (p)->QueryInterface(a,b)
-#define IDirectSoundCaptureBuffer8_AddRef(p)                  (p)->AddRef()
-#define IDirectSoundCaptureBuffer8_Release(p)                 (p)->Release()
-/*** IDirectSoundCaptureBuffer methods ***/
-#define IDirectSoundCaptureBuffer8_GetCaps(p,a)               (p)->GetCaps(a)
-#define IDirectSoundCaptureBuffer8_GetCurrentPosition(p,a,b)  (p)->GetCurrentPosition(a,b)
-#define IDirectSoundCaptureBuffer8_GetFormat(p,a,b,c)         (p)->GetFormat(a,b,c)
-#define IDirectSoundCaptureBuffer8_GetStatus(p,a)             (p)->GetStatus(a)
-#define IDirectSoundCaptureBuffer8_Initialize(p,a,b)          (p)->Initialize(a,b)
-#define IDirectSoundCaptureBuffer8_Lock(p,a,b,c,d,e,f,g)      (p)->Lock(a,b,c,d,e,f,g)
-#define IDirectSoundCaptureBuffer8_Start(p,a)                 (p)->Start(a)
-#define IDirectSoundCaptureBuffer8_Stop(p)                    (p)->Stop()
-#define IDirectSoundCaptureBuffer8_Unlock(p,a,b,c,d)          (p)->Unlock(a,b,c,d)
-/*** IDirectSoundCaptureBuffer8 methods ***/
-#define IDirectSoundCaptureBuffer8_GetObjectInPath(p,a,b,c,d) (p)->GetObjectInPath(a,b,c,d)
-#define IDirectSoundCaptureBuffer8_GetFXStatus(p,a,b)         (p)->GetFXStatus(a,b)
-#endif
-
-/*****************************************************************************
- * IDirectSoundNotify interface
- */
-#define WINE_NOBUFFER                   0x80000000
-
-#define DSBPN_OFFSETSTOP		-1
-
-#define INTERFACE IDirectSoundNotify
-DECLARE_INTERFACE_(IDirectSoundNotify,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundNotify methods ***/
-    STDMETHOD(SetNotificationPositions)(THIS_ DWORD cPositionNotifies, LPCDSBPOSITIONNOTIFY lpcPositionNotifies) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundNotify_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSoundNotify_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSoundNotify methods ***/
-#define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->lpVtbl->SetNotificationPositions(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundNotify_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSoundNotify_AddRef(p)             (p)->AddRef()
-#define IDirectSoundNotify_Release(p)            (p)->Release()
-/*** IDirectSoundNotify methods ***/
-#define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->SetNotificationPositions(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirectSound3DListener interface
- */
-#define DS3DMODE_NORMAL             0x00000000
-#define DS3DMODE_HEADRELATIVE       0x00000001
-#define DS3DMODE_DISABLE            0x00000002
-
-#define DS3D_IMMEDIATE              0x00000000
-#define DS3D_DEFERRED               0x00000001
-
-#define DS3D_MINDISTANCEFACTOR      FLT_MIN
-#define DS3D_MAXDISTANCEFACTOR      FLT_MAX
-#define DS3D_DEFAULTDISTANCEFACTOR  1.0f
-
-#define DS3D_MINROLLOFFFACTOR       0.0f
-#define DS3D_MAXROLLOFFFACTOR       10.0f
-#define DS3D_DEFAULTROLLOFFFACTOR   1.0f
-
-#define DS3D_MINDOPPLERFACTOR       0.0f
-#define DS3D_MAXDOPPLERFACTOR       10.0f
-#define DS3D_DEFAULTDOPPLERFACTOR   1.0f
-
-#define DS3D_DEFAULTMINDISTANCE     1.0f
-#define DS3D_DEFAULTMAXDISTANCE     1000000000.0f
-
-#define DS3D_MINCONEANGLE           0
-#define DS3D_MAXCONEANGLE           360
-#define DS3D_DEFAULTCONEANGLE       360
-
-#define DS3D_DEFAULTCONEOUTSIDEVOLUME   DSBVOLUME_MAX
-
-typedef struct _DS3DLISTENER {
-    DWORD				dwSize;
-    D3DVECTOR			vPosition;
-    D3DVECTOR			vVelocity;
-    D3DVECTOR			vOrientFront;
-    D3DVECTOR			vOrientTop;
-    D3DVALUE			flDistanceFactor;
-    D3DVALUE			flRolloffFactor;
-    D3DVALUE			flDopplerFactor;
-} DS3DLISTENER, *LPDS3DLISTENER;
-
-typedef const DS3DLISTENER *LPCDS3DLISTENER;
-
-#define INTERFACE IDirectSound3DListener
-DECLARE_INTERFACE_(IDirectSound3DListener,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSound3DListener methods ***/
-    STDMETHOD(GetAllParameters)(THIS_ LPDS3DLISTENER lpListener) PURE;
-    STDMETHOD(GetDistanceFactor)(THIS_ LPD3DVALUE lpflDistanceFactor) PURE;
-    STDMETHOD(GetDopplerFactor)(THIS_ LPD3DVALUE lpflDopplerFactor) PURE;
-    STDMETHOD(GetOrientation)(THIS_ LPD3DVECTOR lpvOrientFront, LPD3DVECTOR lpvOrientTop) PURE;
-    STDMETHOD(GetPosition)(THIS_ LPD3DVECTOR lpvPosition) PURE;
-    STDMETHOD(GetRolloffFactor)(THIS_ LPD3DVALUE lpflRolloffFactor) PURE;
-    STDMETHOD(GetVelocity)(THIS_ LPD3DVECTOR lpvVelocity) PURE;
-    STDMETHOD(SetAllParameters)(THIS_ LPCDS3DLISTENER lpcListener, DWORD dwApply) PURE;
-    STDMETHOD(SetDistanceFactor)(THIS_ D3DVALUE flDistanceFactor, DWORD dwApply) PURE;
-    STDMETHOD(SetDopplerFactor)(THIS_ D3DVALUE flDopplerFactor, DWORD dwApply) PURE;
-    STDMETHOD(SetOrientation)(THIS_ D3DVALUE xFront, D3DVALUE yFront, D3DVALUE zFront, D3DVALUE xTop, D3DVALUE yTop, D3DVALUE zTop, DWORD dwApply) PURE;
-    STDMETHOD(SetPosition)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-    STDMETHOD(SetRolloffFactor)(THIS_ D3DVALUE flRolloffFactor, DWORD dwApply) PURE;
-    STDMETHOD(SetVelocity)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-    STDMETHOD(CommitDeferredSettings)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSound3DListener_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSound3DListener_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSound3DListener_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSound3DListener methods ***/
-#define IDirectSound3DListener_GetAllParameters(p,a)           (p)->lpVtbl->GetAllParameters(p,a)
-#define IDirectSound3DListener_GetDistanceFactor(p,a)          (p)->lpVtbl->GetDistanceFactor(p,a)
-#define IDirectSound3DListener_GetDopplerFactor(p,a)           (p)->lpVtbl->GetDopplerFactor(p,a)
-#define IDirectSound3DListener_GetOrientation(p,a,b)           (p)->lpVtbl->GetOrientation(p,a,b)
-#define IDirectSound3DListener_GetPosition(p,a)                (p)->lpVtbl->GetPosition(p,a)
-#define IDirectSound3DListener_GetRolloffFactor(p,a)           (p)->lpVtbl->GetRolloffFactor(p,a)
-#define IDirectSound3DListener_GetVelocity(p,a)                (p)->lpVtbl->GetVelocity(p,a)
-#define IDirectSound3DListener_SetAllParameters(p,a,b)         (p)->lpVtbl->SetAllParameters(p,a,b)
-#define IDirectSound3DListener_SetDistanceFactor(p,a,b)        (p)->lpVtbl->SetDistanceFactor(p,a,b)
-#define IDirectSound3DListener_SetDopplerFactor(p,a,b)         (p)->lpVtbl->SetDopplerFactor(p,a,b)
-#define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
-#define IDirectSound3DListener_SetPosition(p,a,b,c,d)          (p)->lpVtbl->SetPosition(p,a,b,c,d)
-#define IDirectSound3DListener_SetRolloffFactor(p,a,b)         (p)->lpVtbl->SetRolloffFactor(p,a,b)
-#define IDirectSound3DListener_SetVelocity(p,a,b,c,d)          (p)->lpVtbl->SetVelocity(p,a,b,c,d)
-#define IDirectSound3DListener_CommitDeferredSettings(p)       (p)->lpVtbl->CommitDeferredSettings(p)
-#else
-/*** IUnknown methods ***/
-#define IDirectSound3DListener_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSound3DListener_AddRef(p)             (p)->AddRef()
-#define IDirectSound3DListener_Release(p)            (p)->Release()
-/*** IDirectSound3DListener methods ***/
-#define IDirectSound3DListener_GetAllParameters(p,a)           (p)->GetAllParameters(a)
-#define IDirectSound3DListener_GetDistanceFactor(p,a)          (p)->GetDistanceFactor(a)
-#define IDirectSound3DListener_GetDopplerFactor(p,a)           (p)->GetDopplerFactor(a)
-#define IDirectSound3DListener_GetOrientation(p,a,b)           (p)->GetOrientation(a,b)
-#define IDirectSound3DListener_GetPosition(p,a)                (p)->GetPosition(a)
-#define IDirectSound3DListener_GetRolloffFactor(p,a)           (p)->GetRolloffFactor(a)
-#define IDirectSound3DListener_GetVelocity(p,a)                (p)->GetVelocity(a)
-#define IDirectSound3DListener_SetAllParameters(p,a,b)         (p)->SetAllParameters(a,b)
-#define IDirectSound3DListener_SetDistanceFactor(p,a,b)        (p)->SetDistanceFactor(a,b)
-#define IDirectSound3DListener_SetDopplerFactor(p,a,b)         (p)->SetDopplerFactor(a,b)
-#define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
-#define IDirectSound3DListener_SetPosition(p,a,b,c,d)          (p)->SetPosition(a,b,c,d)
-#define IDirectSound3DListener_SetRolloffFactor(p,a,b)         (p)->SetRolloffFactor(a,b)
-#define IDirectSound3DListener_SetVelocity(p,a,b,c,d)          (p)->SetVelocity(a,b,c,d)
-#define IDirectSound3DListener_CommitDeferredSettings(p)       (p)->CommitDeferredSettings()
-#endif
-
-
-/*****************************************************************************
- * IDirectSound3DBuffer interface
- */
-typedef struct  _DS3DBUFFER {
-    DWORD				dwSize;
-    D3DVECTOR			vPosition;
-    D3DVECTOR			vVelocity;
-    DWORD				dwInsideConeAngle;
-    DWORD				dwOutsideConeAngle;
-    D3DVECTOR			vConeOrientation;
-    LONG				lConeOutsideVolume;
-    D3DVALUE			flMinDistance;
-    D3DVALUE			flMaxDistance;
-    DWORD				dwMode;
-} DS3DBUFFER, *LPDS3DBUFFER;
-
-typedef const DS3DBUFFER *LPCDS3DBUFFER;
-
-#define INTERFACE IDirectSound3DBuffer
-DECLARE_INTERFACE_(IDirectSound3DBuffer,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSound3DBuffer methods ***/
-    STDMETHOD(GetAllParameters)(THIS_ LPDS3DBUFFER lpDs3dBuffer) PURE;
-    STDMETHOD(GetConeAngles)(THIS_ LPDWORD lpdwInsideConeAngle, LPDWORD lpdwOutsideConeAngle) PURE;
-    STDMETHOD(GetConeOrientation)(THIS_ LPD3DVECTOR lpvOrientation) PURE;
-    STDMETHOD(GetConeOutsideVolume)(THIS_ LPLONG lplConeOutsideVolume) PURE;
-    STDMETHOD(GetMaxDistance)(THIS_ LPD3DVALUE lpflMaxDistance) PURE;
-    STDMETHOD(GetMinDistance)(THIS_ LPD3DVALUE lpflMinDistance) PURE;
-    STDMETHOD(GetMode)(THIS_ LPDWORD lpwdMode) PURE;
-    STDMETHOD(GetPosition)(THIS_ LPD3DVECTOR lpvPosition) PURE;
-    STDMETHOD(GetVelocity)(THIS_ LPD3DVECTOR lpvVelocity) PURE;
-    STDMETHOD(SetAllParameters)(THIS_ LPCDS3DBUFFER lpcDs3dBuffer, DWORD dwApply) PURE;
-    STDMETHOD(SetConeAngles)(THIS_ DWORD dwInsideConeAngle, DWORD dwOutsideConeAngle, DWORD dwApply) PURE;
-    STDMETHOD(SetConeOrientation)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-    STDMETHOD(SetConeOutsideVolume)(THIS_ LONG lConeOutsideVolume, DWORD dwApply) PURE;
-    STDMETHOD(SetMaxDistance)(THIS_ D3DVALUE flMaxDistance, DWORD dwApply) PURE;
-    STDMETHOD(SetMinDistance)(THIS_ D3DVALUE flMinDistance, DWORD dwApply) PURE;
-    STDMETHOD(SetMode)(THIS_ DWORD dwMode, DWORD dwApply) PURE;
-    STDMETHOD(SetPosition)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-    STDMETHOD(SetVelocity)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSound3DBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSound3DBuffer_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSound3DBuffer_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSound3DBuffer methods ***/
-#define IDirectSound3DBuffer_GetAllParameters(p,a)         (p)->lpVtbl->GetAllParameters(p,a)
-#define IDirectSound3DBuffer_GetConeAngles(p,a,b)          (p)->lpVtbl->GetConeAngles(p,a,b)
-#define IDirectSound3DBuffer_GetConeOrientation(p,a)       (p)->lpVtbl->GetConeOrientation(p,a)
-#define IDirectSound3DBuffer_GetConeOutsideVolume(p,a)     (p)->lpVtbl->GetConeOutsideVolume(p,a)
-#define IDirectSound3DBuffer_GetMaxDistance(p,a)           (p)->lpVtbl->GetMaxDistance(p,a)
-#define IDirectSound3DBuffer_GetMinDistance(p,a)           (p)->lpVtbl->GetMinDistance(p,a)
-#define IDirectSound3DBuffer_GetMode(p,a)                  (p)->lpVtbl->GetMode(p,a)
-#define IDirectSound3DBuffer_GetPosition(p,a)              (p)->lpVtbl->GetPosition(p,a)
-#define IDirectSound3DBuffer_GetVelocity(p,a)              (p)->lpVtbl->GetVelocity(p,a)
-#define IDirectSound3DBuffer_SetAllParameters(p,a,b)       (p)->lpVtbl->SetAllParameters(p,a,b)
-#define IDirectSound3DBuffer_SetConeAngles(p,a,b,c)        (p)->lpVtbl->SetConeAngles(p,a,b,c)
-#define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->lpVtbl->SetConeOrientation(p,a,b,c,d)
-#define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b)   (p)->lpVtbl->SetConeOutsideVolume(p,a,b)
-#define IDirectSound3DBuffer_SetMaxDistance(p,a,b)         (p)->lpVtbl->SetMaxDistance(p,a,b)
-#define IDirectSound3DBuffer_SetMinDistance(p,a,b)         (p)->lpVtbl->SetMinDistance(p,a,b)
-#define IDirectSound3DBuffer_SetMode(p,a,b)                (p)->lpVtbl->SetMode(p,a,b)
-#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d)        (p)->lpVtbl->SetPosition(p,a,b,c,d)
-#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d)        (p)->lpVtbl->SetVelocity(p,a,b,c,d)
-#else
-/*** IUnknown methods ***/
-#define IDirectSound3DBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSound3DBuffer_AddRef(p)             (p)->AddRef()
-#define IDirectSound3DBuffer_Release(p)            (p)->Release()
-/*** IDirectSound3DBuffer methods ***/
-#define IDirectSound3DBuffer_GetAllParameters(p,a)         (p)->GetAllParameters(a)
-#define IDirectSound3DBuffer_GetConeAngles(p,a,b)          (p)->GetConeAngles(a,b)
-#define IDirectSound3DBuffer_GetConeOrientation(p,a)       (p)->GetConeOrientation(a)
-#define IDirectSound3DBuffer_GetConeOutsideVolume(p,a)     (p)->GetConeOutsideVolume(a)
-#define IDirectSound3DBuffer_GetMaxDistance(p,a)           (p)->GetMaxDistance(a)
-#define IDirectSound3DBuffer_GetMinDistance(p,a)           (p)->GetMinDistance(a)
-#define IDirectSound3DBuffer_GetMode(p,a)                  (p)->GetMode(a)
-#define IDirectSound3DBuffer_GetPosition(p,a)              (p)->GetPosition(a)
-#define IDirectSound3DBuffer_GetVelocity(p,a)              (p)->GetVelocity(a)
-#define IDirectSound3DBuffer_SetAllParameters(p,a,b)       (p)->SetAllParameters(a,b)
-#define IDirectSound3DBuffer_SetConeAngles(p,a,b,c)        (p)->SetConeAngles(a,b,c)
-#define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->SetConeOrientation(a,b,c,d)
-#define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b)   (p)->SetConeOutsideVolume(a,b)
-#define IDirectSound3DBuffer_SetMaxDistance(p,a,b)         (p)->SetMaxDistance(a,b)
-#define IDirectSound3DBuffer_SetMinDistance(p,a,b)         (p)->SetMinDistance(a,b)
-#define IDirectSound3DBuffer_SetMode(p,a,b)                (p)->SetMode(a,b)
-#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d)        (p)->SetPosition(a,b,c,d)
-#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d)        (p)->SetVelocity(a,b,c,d)
-#endif
-
-/*****************************************************************************
- * IKsPropertySet interface
- */
-#ifndef _IKsPropertySet_
-#define _IKsPropertySet_
-
-typedef struct IKsPropertySet *LPKSPROPERTYSET;
-
-DEFINE_GUID(IID_IKsPropertySet,0x31EFAC30,0x515C,0x11D0,0xA9,0xAA,0x00,0xAA,0x00,0x61,0xBE,0x93);
-
-#define KSPROPERTY_SUPPORT_GET	1
-#define KSPROPERTY_SUPPORT_SET	2
-
-#define INTERFACE IKsPropertySet
-DECLARE_INTERFACE_(IKsPropertySet,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IKsPropertySet methods ***/
-    STDMETHOD(Get)(THIS_ REFGUID rgid,ULONG x1,LPVOID p1,ULONG x2,LPVOID p2,ULONG x3,ULONG *px4) PURE;
-    STDMETHOD(Set)(THIS_ REFGUID rgid,ULONG x1,LPVOID p1,ULONG x2,LPVOID p2,ULONG x3) PURE;
-    STDMETHOD(QuerySupport)(THIS_ REFGUID rgid,ULONG x1,ULONG *px2) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IKsPropertySet_QueryInterface(p,a,b)    (p)->lpVtbl->QueryInterface(p,a,b)
-#define IKsPropertySet_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define IKsPropertySet_Release(p)               (p)->lpVtbl->Release(p)
-/*** IKsPropertySet methods ***/
-#define IKsPropertySet_Get(p,a,b,c,d,e,f,g)     (p)->lpVtbl->Get(p,a,b,c,d,e,f,g)
-#define IKsPropertySet_Set(p,a,b,c,d,e,f)       (p)->lpVtbl->Set(p,a,b,c,d,e,f)
-#define IKsPropertySet_QuerySupport(p,a,b,c)    (p)->lpVtbl->QuerySupport(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IKsPropertySet_QueryInterface(p,a,b)    (p)->QueryInterface(a,b)
-#define IKsPropertySet_AddRef(p)                (p)->AddRef()
-#define IKsPropertySet_Release(p)               (p)->Release()
-/*** IKsPropertySet methods ***/
-#define IKsPropertySet_Get(p,a,b,c,d,e,f,g)     (p)->Get(a,b,c,d,e,f,g)
-#define IKsPropertySet_Set(p,a,b,c,d,e,f)       (p)->Set(a,b,c,d,e,f)
-#define IKsPropertySet_QuerySupport(p,a,b,c)    (p)->QuerySupport(a,b,c)
-#endif
-
-#endif /* _IKsPropertySet_ */
-
-/*****************************************************************************
- * IDirectSoundFullDuplex interface
- */
-#define INTERFACE IDirectSoundFullDuplex
-DECLARE_INTERFACE_(IDirectSoundFullDuplex,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundFullDuplex methods ***/
-    STDMETHOD(Initialize)(THIS_ LPCGUID pCaptureGuid,LPCGUID pRendererGuid,LPCDSCBUFFERDESC lpDscBufferDesc,LPCDSBUFFERDESC lpDsBufferDesc,HWND hWnd,DWORD dwLevel,LPLPDIRECTSOUNDCAPTUREBUFFER8 lplpDirectSoundCaptureBuffer8,LPLPDIRECTSOUNDBUFFER8 lplpDirectSoundBuffer8) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundFullDuplex_QueryInterface(p,a,b)    (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundFullDuplex_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define IDirectSoundFullDuplex_Release(p)               (p)->lpVtbl->Release(p)
-/*** IDirectSoundFullDuplex methods ***/
-#define IDirectSoundFullDuplex_Initialize(p,a,b,c,d,e,f,g,h)    (p)->lpVtbl->Initialize(p,a,b,c,d,e,f,g,h)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundFullDuplex_QueryInterface(p,a,b)    (p)->QueryInterface(a,b)
-#define IDirectSoundFullDuplex_AddRef(p)                (p)->AddRef()
-#define IDirectSoundFullDuplex_Release(p)               (p)->Release()
-/*** IDirectSoundFullDuplex methods ***/
-#define IDirectSoundFullDuplex_Initialize(p,a,b,c,d,e,f,g,h)    (p)->Initialize(a,b,c,d,e,f,g,h)
-#endif
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* defined(__cplusplus) */
-
-#endif /* __DSOUND_INCLUDED__ */
diff --git a/3rdparty/include/dshow/dvdmedia.h b/3rdparty/include/dshow/dvdmedia.h
deleted file mode 100644
index 526d6bc..0000000
--- a/3rdparty/include/dshow/dvdmedia.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2008 Maarten Lankhorst
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#ifndef __DVDMEDIA_H__
-#define __DVDMEDIA_H__
-
-#define AMCONTROL_USED 0x00000001
-#define AMCONTROL_PAD_TO_4x3 0x00000002
-#define AMCONTROL_PAD_TO_16x9 0x00000004
-
-enum AM_MPEG2Level {
-    AM_MPEG2Level_Low = 1,
-    AM_MPEG2Level_Main,
-    AM_MPEG2Level_High1440,
-    AM_MPEG2Level_High
-};
-enum AM_MPEG2Profile {
-    AM_MPEG2Profile_Simple = 1,
-    AM_MPEG2Profile_Main,
-    AM_MPEG2Profile_SNRScalable,
-    AM_MPEG2Profile_SpatiallyScalable,
-    AM_MPEG2Profile_High
-};
-typedef enum {
-    AM_RATE_ChangeRate = 1,
-    AM_RATE_FullDataRateMax = 2,
-    AM_RATE_ReverseDecode = 3,
-    AM_RATE_DecoderPosition = 4,
-    AM_RATE_DecoderVersion = 5
-} AM_PROPERTY_DVD_RATE_CHANGE;
-
-typedef struct tagVIDEOINFOHEADER2 {
-    RECT rcSource;
-    RECT rcTarget;
-    DWORD dwBitRate;
-    DWORD dwBitErrorRate;
-    REFERENCE_TIME AvgTimePerFrame;
-    DWORD dwInterlaceFlags;
-    DWORD dwCopyProtectFlags;
-    DWORD dwPictAspectRatioX;
-    DWORD dwPictAspectRatioY;
-    union {
-        DWORD dwControlFlags;
-        DWORD dwReserved1;
-    } DUMMYUNIONNAME;
-    DWORD dwReserved2;
-    BITMAPINFOHEADER bmiHeader;
-} VIDEOINFOHEADER2;
-
-typedef struct tagMPEG2VIDEOINFO {
-    VIDEOINFOHEADER2 hdr;
-    DWORD dwStartTimeCode;
-    DWORD cbSequenceHeader;
-    DWORD dwProfile;
-    DWORD dwLevel;
-    DWORD dwFlags;
-    DWORD dwSequenceHeader[1];
-} MPEG2VIDEOINFO;
-
-#endif /* __DVDMEDIA_H__ */
diff --git a/3rdparty/include/dshow/errors.h b/3rdparty/include/dshow/errors.h
deleted file mode 100644
index 7581899..0000000
--- a/3rdparty/include/dshow/errors.h
+++ /dev/null
@@ -1,169 +0,0 @@
-#ifndef _ERRORS_H
-#define _ERRORS_H
-#if __GNUC__ >=3
-#pragma GCC system_header
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*--- DirectShow Reference - Constants and GUIDs - Error and Success Codes */
-#define VFW_S_NO_MORE_ITEMS 0x00040103
-#define VFW_S_DUPLICATE_NAME 0x0004022D
-#define VFW_S_STATE_INTERMEDIATE 0x00040237
-#define VFW_S_PARTIAL_RENDER 0x00040242
-#define VFW_S_SOME_DATA_IGNORED 0x00040245
-#define VFW_S_CONNECTIONS_DEFERRED 0x00040246
-#define VFW_S_RESOURCE_NOT_NEEDED 0x00040250
-#define VFW_S_MEDIA_TYPE_IGNORED 0x00040254
-#define VFW_S_VIDEO_NOT_RENDERED 0x00040257
-#define VFW_S_AUDIO_NOT_RENDERED 0x00040258
-#define VFW_S_RPZA 0x0004025A
-#define VFW_S_ESTIMATED 0x00040260
-#define VFW_S_RESERVED 0x00040263
-#define VFW_S_STREAM_OFF 0x00040267
-#define VFW_S_CANT_CUE 0x00040268
-#define VFW_S_NOPREVIEWPIN 0x0004027E
-#define VFW_S_DVD_NON_ONE_SEQUENTIAL 0x00040280
-#define VFW_S_DVD_CHANNEL_CONTENTS_NOT_AVAILABLE 0x0004028C
-#define VFW_S_DVD_NOT_ACCURATE 0x0004028D
-#define VFW_E_INVALIDMEDIATYPE 0x80040200
-#define VFW_E_INVALIDSUBTYPE 0x80040201
-#define VFW_E_NEED_OWNER 0x80040202
-#define VFW_E_ENUM_OUT_OF_SYNC 0x80040203
-#define VFW_E_ALREADY_CONNECTED 0x80040204
-#define VFW_E_FILTER_ACTIVE 0x80040205
-#define VFW_E_NO_TYPES 0x80040206
-#define VFW_E_NO_ACCEPTABLE_TYPES 0x80040207
-#define VFW_E_INVALID_DIRECTION 0x80040208
-#define VFW_E_NOT_CONNECTED 0x80040209
-#define VFW_E_NO_ALLOCATOR 0x8004020A
-#define VFW_E_RUNTIME_ERROR 0x8004020B
-#define VFW_E_BUFFER_NOTSET 0x8004020C
-#define VFW_E_BUFFER_OVERFLOW 0x8004020D
-#define VFW_E_BADALIGN 0x8004020E
-#define VFW_E_ALREADY_COMMITTED 0x8004020F
-#define VFW_E_BUFFERS_OUTSTANDING 0x80040210
-#define VFW_E_NOT_COMMITTED 0x80040211
-#define VFW_E_SIZENOTSET 0x80040212
-#define VFW_E_NO_CLOCK 0x80040213
-#define VFW_E_NO_SINK 0x80040214
-#define VFW_E_NO_INTERFACE 0x80040215
-#define VFW_E_NOT_FOUND 0x80040216
-#define VFW_E_CANNOT_CONNECT 0x80040217
-#define VFW_E_CANNOT_RENDER 0x80040218
-#define VFW_E_CHANGING_FORMAT 0x80040219
-#define VFW_E_NO_COLOR_KEY_SET 0x8004021A
-#define VFW_E_NOT_OVERLAY_CONNECTION 0x8004021B
-#define VFW_E_NOT_SAMPLE_CONNECTION 0x8004021C
-#define VFW_E_PALETTE_SET 0x8004021D
-#define VFW_E_COLOR_KEY_SET 0x8004021E
-#define VFW_E_NO_COLOR_KEY_FOUND 0x8004021F
-#define VFW_E_NO_PALETTE_AVAILABLE 0x80040220
-#define VFW_E_NO_DISPLAY_PALETTE 0x80040221
-#define VFW_E_TOO_MANY_COLORS 0x80040222
-#define VFW_E_STATE_CHANGED 0x80040223
-#define VFW_E_NOT_STOPPED 0x80040224
-#define VFW_E_NOT_PAUSED 0x80040225
-#define VFW_E_NOT_RUNNING 0x80040226
-#define VFW_E_WRONG_STATE 0x80040227
-#define VFW_E_START_TIME_AFTER_END 0x80040228
-#define VFW_E_INVALID_RECT 0x80040229
-#define VFW_E_TYPE_NOT_ACCEPTED 0x8004022A
-#define VFW_E_SAMPLE_REJECTED 0x8004022B
-#define VFW_E_SAMPLE_REJECTED_EOS 0x8004022C
-#define VFW_E_DUPLICATE_NAME 0x8004022D
-#define VFW_E_TIMEOUT 0x8004022E
-#define VFW_E_INVALID_FILE_FORMAT 0x8004022F
-#define VFW_E_ENUM_OUT_OF_RANGE 0x80040230
-#define VFW_E_CIRCULAR_GRAPH 0x80040231
-#define VFW_E_NOT_ALLOWED_TO_SAVE 0x80040232
-#define VFW_E_TIME_ALREADY_PASSED 0x80040233
-#define VFW_E_ALREADY_CANCELLED 0x80040234
-#define VFW_E_CORRUPT_GRAPH_FILE 0x80040235
-#define VFW_E_ADVISE_ALREADY_SET 0x80040236
-#define VFW_E_NO_MODEX_AVAILABLE 0x80040238
-#define VFW_E_NO_ADVISE_SET 0x80040239
-#define VFW_E_NO_FULLSCREEN 0x8004023A
-#define VFW_E_IN_FULLSCREEN_MODE 0x8004023B
-#define VFW_E_UNKNOWN_FILE_TYPE 0x80040240
-#define VFW_E_CANNOT_LOAD_SOURCE_FILTER 0x80040241
-#define VFW_E_FILE_TOO_SHORT 0x80040243
-#define VFW_E_INVALID_FILE_VERSION 0x80040244
-#define VFW_E_INVALID_CLSID 0x80040247
-#define VFW_E_INVALID_MEDIA_TYPE 0x80040248
-#define VFW_E_SAMPLE_TIME_NOT_SET 0x80040249
-#define VFW_E_MEDIA_TIME_NOT_SET 0x80040251
-#define VFW_E_NO_TIME_FORMAT_SET 0x80040252
-#define VFW_E_MONO_AUDIO_HW 0x80040253
-#define VFW_E_NO_DECOMPRESSOR 0x80040255
-#define VFW_E_NO_AUDIO_HARDWARE 0x80040256
-#define VFW_E_RPZA 0x80040259
-#define VFW_E_PROCESSOR_NOT_SUITABLE 0x8004025B
-#define VFW_E_UNSUPPORTED_AUDIO 0x8004025C
-#define VFW_E_UNSUPPORTED_VIDEO 0x8004025D
-#define VFW_E_MPEG_NOT_CONSTRAINED 0x8004025E
-#define VFW_E_NOT_IN_GRAPH 0x8004025F
-#define VFW_E_NO_TIME_FORMAT 0x80040261
-#define VFW_E_READ_ONLY 0x80040262
-#define VFW_E_BUFFER_UNDERFLOW 0x80040264
-#define VFW_E_UNSUPPORTED_STREAM 0x80040265
-#define VFW_E_NO_TRANSPORT 0x80040266
-#define VFW_E_BAD_VIDEOCD 0x80040269
-#define VFW_S_NO_STOP_TIME 0x80040270
-#define VFW_E_OUT_OF_VIDEO_MEMORY 0x80040271
-#define VFW_E_VP_NEGOTIATION_FAILED 0x80040272
-#define VFW_E_DDRAW_CAPS_NOT_SUITABLE 0x80040273
-#define VFW_E_NO_VP_HARDWARE 0x80040274
-#define VFW_E_NO_CAPTURE_HARDWARE 0x80040275
-#define VFW_E_DVD_OPERATION_INHIBITED 0x80040276
-#define VFW_E_DVD_INVALIDDOMAIN 0x80040277
-#define VFW_E_DVD_NO_BUTTON 0x80040278
-#define VFW_E_DVD_GRAPHNOTREADY 0x80040279
-#define VFW_E_DVD_RENDERFAIL 0x8004027A
-#define VFW_E_DVD_DECNOTENOUGH 0x8004027B
-#define VFW_E_DDRAW_VERSION_NOT_SUITABLE 0x8004027C
-#define VFW_E_COPYPROT_FAILED 0x8004027D
-#define VFW_E_TIME_EXPIRED 0x8004027F
-#define VFW_E_DVD_WRONG_SPEED 0x80040281
-#define VFW_E_DVD_MENU_DOES_NOT_EXIST 0x80040282
-#define VFW_E_DVD_CMD_CANCELLED 0x80040283
-#define VFW_E_DVD_STATE_WRONG_VERSION 0x80040284
-#define VFW_E_DVD_STATE_CORRUPT 0x80040285
-#define VFW_E_DVD_STATE_WRONG_DISC 0x80040286
-#define VFW_E_DVD_INCOMPATIBLE_REGION 0x80040287
-#define VFW_E_DVD_NO_ATTRIBUTES 0x80040288
-#define VFW_E_DVD_NO_GOUP_PGC 0x80040289
-#define VFW_E_DVD_LOW_PARENTAL_LEVEL 0x8004028A
-#define VFW_E_DVD_NOT_IN_KARAOKE_MODE 0x8004028B
-#define VFW_E_FRAME_STEP_UNSUPPORTED 0x8004028E
-#define VFW_E_DVD_STREAM_DISABLED 0x8004028F
-#define VFW_E_DVD_TITLE_UNKNOWN 0x80040290
-#define VFW_E_DVD_INVALID_DISC 0x80040291
-#define VFW_E_DVD_NO_RESUME_INFORMATION 0x80040292
-#define VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD 0x80040293
-#define VFW_E_PIN_ALREADY_BLOCKED 0x80040294
-#define VFW_E_CERTIFICATION_FAILURE 0x80040295
-#define VFW_E_VMR_NOT_IN_MIXER_MODE 0x80040296
-#define VFW_E_VMR_NO_AP_SUPPLIED 0x80040297
-#define VFW_E_VMR_NO_DEINTERLACE_HW 0x80040298
-#define VFW_E_VMR_NO_PROCAMP_HW 0x80040299
-#define VFW_E_DVD_VMR9_INCOMPATIBLEDEC 0x8004029A
-#define VFW_E_NO_COPP_HW 0x8004029B
-#define VFW_E_BAD_KEY 0x800403F2
-/*--- DirectShow Reference - Functions */
-#define MAX_ERROR_TEXT_LEN 160
-/*--- DirectShow Reference - Functions */
-DWORD WINAPI AMGetErrorTextA(HRESULT,CHAR*,DWORD);
-DWORD WINAPI AMGetErrorTextW(HRESULT,WCHAR*,DWORD);
-#ifdef UNICODE
-#define AMGetErrorText AMGetErrorTextW
-#else
-#define AMGetErrorText AMGetErrorTextA
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/3rdparty/include/dshow/evcode.h b/3rdparty/include/dshow/evcode.h
deleted file mode 100644
index 6fec511..0000000
--- a/3rdparty/include/dshow/evcode.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef _EVCODE_H
-#define _EVCODE_H
-#if __GNUC__ >=3
-#pragma GCC system_header
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*--- DirectShow Reference - Constants and GUIDs - Event Notification Codes */
-#define EC_ACTIVATE 0x0013
-#define EC_BUFFERING_DATA 0x0011
-#define EC_BUILT 0x0300
-#define EC_CLOCK_CHANGED 0x000D
-#define EC_CLOCK_UNSET 0x0051
-#define EC_CODECAPI_EVENT 0x0057
-#define EC_COMPLETE 0x0001
-#define EC_DEVICE_LOST 0x001F
-#define EC_DISPLAY_CHANGED 0x0016
-#define EC_END_OF_SEGMENT 0x001C
-#define EC_ERROR_STILLPLAYING 0x0008
-#define EC_ERRORABORT 0x0003
-#define EC_EXTDEVICE_MODE_CHANGE 0x0031
-#define EC_FULLSCREEN_LOST 0x0012
-#define EC_GRAPH_CHANGED 0x0050
-#define EC_LENGTH_CHANGED 0x001E
-#define EC_NEED_RESTART 0x0014
-#define EC_NOTIFY_WINDOW 0x0019
-#define EC_OLE_EVENT 0x0018
-#define EC_OPENING_FILE 0x0010
-#define EC_PALETTE_CHANGED 0x0009
-#define EC_PAUSED 0x000E
-#define EC_PREPROCESS_COMPLETE 0x0056
-#define EC_QUALITY_CHANGE 0x000B
-#define EC_REPAINT 0x0005
-#define EC_SEGMENT_STARTED 0x001D
-#define EC_SHUTTING_DOWN 0x000C
-#define EC_SNDDEV_IN_ERROR 0x0200
-#define EC_SNDDEV_OUT_ERROR 0x0201
-#define EC_STARVATION 0x0017
-#define EC_STATE_CHANGE 0x0032
-#define EC_STEP_COMPLETE 0x0024
-#define EC_STREAM_CONTROL_STARTED 0x001B
-#define EC_STREAM_CONTROL_STOPPED 0x001A
-#define EC_STREAM_ERROR_STILLPLAYING 0x0007
-#define EC_STREAM_ERROR_STOPPED 0x0006
-#define EC_TIMECODE_AVAILABLE 0x0030
-#define EC_UNBUILT 0x0301
-#define EC_USERABORT 0x0002
-#define EC_VIDEO_SIZE_CHANGED 0x000A
-#define EC_VMR_RENDERDEVICE_SET 0x0053
-#define EC_VMR_SURFACE_FLIPPED 0x0054
-#define EC_VMR_RECONNECTION_FAILED 0x0055
-#define EC_WINDOW_DESTROYED 0x0015
-#define EC_WMT_EVENT 0x0252
-#define EC_WMT_INDEX_EVENT 0x0251
-#define EC_USER 0x8000
-/*--- DirectShow Reference - DirectShow Structures */
-typedef struct {
-    HRESULT hrStatus;
-    void   *pData;
-} AM_WMT_EVENT_DATA;
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/3rdparty/include/dshow/ksuuids.h b/3rdparty/include/dshow/ksuuids.h
deleted file mode 100644
index da64d08..0000000
--- a/3rdparty/include/dshow/ksuuids.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the w64 mingw-runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-
-OUR_GUID_ENTRY(MEDIATYPE_MPEG2_PACK,
-        0x36523B13,0x8EE5,0x11d1,0x8C,0xA3,0x00,0x60,0xB0,0x57,0x66,0x4A)
-
-OUR_GUID_ENTRY(MEDIATYPE_MPEG2_PES,
-        0xe06d8020,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_WMDRM_TRANSPORT,
-        0x18BEC4EA,0x4676,0x450e,0xB4,0x78,0x0C,0xD8,0x4C,0x54,0xB3,0x27)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_VIDEO,
-        0xe06d8026,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(FORMAT_MPEG2_VIDEO,
-        0xe06d80e3,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(FORMAT_VIDEOINFO2,
-        0xf72a76A0L,0xeb0a,0x11d0,0xac,0xe4,0x0,0x0,0xc0,0xcc,0x16,0xba)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_PROGRAM,
-        0xe06d8022,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_TRANSPORT,
-        0xe06d8023,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_AUDIO,
-        0xe06d802b,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_DOLBY_AC3,
-        0xe06d802c,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_SUBPICTURE,
-        0xe06d802d,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_LPCM_AUDIO,
-        0xe06d8032,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(MEDIATYPE_DVD_ENCRYPTED_PACK,
-        0xed0b916a,0x044d,0x11d1,0xaa,0x78,0x00,0xc0,0x04f,0xc3,0x1d,0x60)
-
-OUR_GUID_ENTRY(MEDIATYPE_DVD_NAVIGATION,
-        0xe06d802e,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_NAVIGATION_PCI,
-        0xe06d802f,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_NAVIGATION_DSI,
-        0xe06d8030,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_NAVIGATION_PROVIDER,
-        0xe06d8031,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(FORMAT_MPEG2Video,
-        0xe06d80e3,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(FORMAT_DolbyAC3,
-        0xe06d80e4,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(FORMAT_MPEG2Audio,
-        0xe06d80e5,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(FORMAT_DVD_LPCMAudio,
-        0xe06d80e6,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(AM_KSPROPSETID_AC3,
-        0xBFABE720,0x6E1F,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00)
-
-OUR_GUID_ENTRY(AM_KSPROPSETID_DvdSubPic,
-        0xac390460,0x43af,0x11d0,0xbd,0x6a,0x00,0x35,0x05,0xc1,0x03,0xa9)
-
-OUR_GUID_ENTRY(AM_KSPROPSETID_CopyProt,
-        0x0E8A0A40,0x6AEF,0x11D0,0x9E,0xD0,0x00,0xA0,0x24,0xCA,0x19,0xB3)
-
-OUR_GUID_ENTRY(AM_KSPROPSETID_TSRateChange,
-        0xa503c5c0,0x1d1d,0x11d1,0xad,0x80,0x44,0x45,0x53,0x54,0x0,0x0)
-
-OUR_GUID_ENTRY(AM_KSPROPSETID_MPEG4_MediaType_Attributes,
-        0xff6c4bfa,0x7a9,0x4c7b,0xa2,0x37,0x67,0x2f,0x9d,0x68,0x6,0x5f)
-
-OUR_GUID_ENTRY(AM_KSCATEGORY_CAPTURE,
-        0x65E8773DL,0x8F56,0x11D0,0xA3,0xB9,0x00,0xA0,0xC9,0x22,0x31,0x96)
-
-OUR_GUID_ENTRY(AM_KSCATEGORY_RENDER,
-        0x65E8773EL,0x8F56,0x11D0,0xA3,0xB9,0x00,0xA0,0xC9,0x22,0x31,0x96)
-
-OUR_GUID_ENTRY(AM_KSCATEGORY_DATACOMPRESSOR,
-        0x1E84C900L,0x7E70,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00)
-
-OUR_GUID_ENTRY(AM_KSCATEGORY_AUDIO,
-        0x6994AD04L,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96)
-
-OUR_GUID_ENTRY(AM_KSCATEGORY_VIDEO,
-        0x6994AD05L,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96)
-
-OUR_GUID_ENTRY(AM_KSCATEGORY_TVTUNER,
-        0xa799a800L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4)
-
-OUR_GUID_ENTRY(AM_KSCATEGORY_CROSSBAR,
-        0xa799a801L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4)
-
-OUR_GUID_ENTRY(AM_KSCATEGORY_TVAUDIO,
-        0xa799a802L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4)
-
-OUR_GUID_ENTRY(AM_KSCATEGORY_VBICODEC,
-        0x07dad660L,0x22f1,0x11d1,0xa9,0xf4,0x00,0xc0,0x4f,0xbb,0xde,0x8f)
-
-OUR_GUID_ENTRY(AM_KSCATEGORY_SPLITTER,
-        0x0A4252A0L,0x7E70,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00)
-
-OUR_GUID_ENTRY(IID_IKsInterfaceHandler,
-        0xD3ABC7E0L,0x9A61,0x11D0,0xA4,0x0D,0x00,0xA0,0xC9,0x22,0x31,0x96)
-
-OUR_GUID_ENTRY(IID_IKsDataTypeHandler,
-        0x5FFBAA02L,0x49A3,0x11D0,0x9F,0x36,0x00,0xAA,0x00,0xA2,0x16,0xA1)
-
-OUR_GUID_ENTRY(IID_IKsPin,
-        0xb61178d1L,0xa2d9,0x11cf,0x9e,0x53,0x00,0xaa,0x00,0xa2,0x16,0xa1)
-
-OUR_GUID_ENTRY(IID_IKsControl,
-        0x28F54685L,0x06FD,0x11D2,0xB2,0x7A,0x00,0xA0,0xC9,0x22,0x31,0x96)
-
-OUR_GUID_ENTRY(IID_IKsPinFactory,
-        0xCD5EBE6BL,0x8B6E,0x11D1,0x8A,0xE0,0x00,0xA0,0xC9,0x22,0x31,0x96)
-
-OUR_GUID_ENTRY(AM_INTERFACESETID_Standard,
-        0x1A8766A0L,0x62CE,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00)
-
-#if ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) ) || (NTDDI_VERSION >= NTDDI_WS03SP1)
-OUR_GUID_ENTRY(MEDIATYPE_MPEG2_SECTIONS,
-        0x455f176c,0x4b06,0x47ce,0x9a,0xef,0x8c,0xae,0xf7,0x3d,0xf7,0xb5)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_VERSIONED_TABLES,
-        0x1ed988b0,0x3ffc,0x4523,0x87,0x25,0x34,0x7b,0xee,0xc1,0xa8,0xa0)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_ATSC_SI,
-        0xb3c7397c,0xd303,0x414d,0xb3,0x3c,0x4e,0xd2,0xc9,0xd2,0x97,0x33)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_DVB_SI,
-        0xe9dd31a3,0x221d,0x4adb,0x85,0x32,0x9a,0xf3,0x9,0xc1,0xa4,0x8)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_ISDB_SI,
-        0xe89ad298,0x3601,0x4b06,0xaa,0xec,0x9d,0xde,0xed,0xcc,0x5b,0xd0)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_TIF_SI,
-        0xec232eb2,0xcb96,0x4191,0xb2,0x26,0xe,0xa1,0x29,0xf3,0x82,0x50)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2DATA,
-        0xc892e55b,0x252d,0x42b5,0xa3,0x16,0xd9,0x97,0xe7,0xa5,0xd9,0x95)
-#endif
-/* ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) ) ||
-                        (NTDDI_VERSION >= NTDDI_WS03SP1) */
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_TRANSPORT_STRIDE,
-        0x138aa9a4,0x1ee2,0x4c5b,0x98,0x8e,0x19,0xab,0xfd,0xbc,0x8a,0x11)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_UDCR_TRANSPORT,
-        0x18BEC4EA,0x4676,0x450e,0xB4,0x78,0x0C,0xD8,0x4C,0x54,0xB3,0x27)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_PBDA_TRANSPORT_RAW,
-        0x0d7aed42,0xcb9a,0x11db,0x97,0x5,0x0,0x50,0x56,0xc0,0x0,0x8)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_PBDA_TRANSPORT_PROCESSED,
-        0xaf748dd4,0xd80,0x11db,0x97,0x5,0x0,0x50,0x56,0xc0,0x0,0x8)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_DTS,
-        0xe06d8033,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_SDDS,
-        0xe06d8034,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
-
-OUR_GUID_ENTRY(AM_KSPROPSETID_DVD_RateChange,
-        0x3577eb09,0x9582,0x477f,0xb2,0x9c,0xb0,0xc4,0x52,0xa4,0xff,0x9a)
-
-OUR_GUID_ENTRY(AM_KSPROPSETID_DvdKaraoke,
-        0xae4720ae,0xaa71,0x42d8,0xb8,0x2a,0xff,0xfd,0xf5,0x8b,0x76,0xfd)
-
-OUR_GUID_ENTRY(AM_KSPROPSETID_FrameStep,
-        0xc830acbd,0xab07,0x492f,0x88,0x52,0x45,0xb6,0x98,0x7c,0x29,0x79)
-#endif /* NTDDI_VERSION >= NTDDI_WINXP */
-
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
-OUR_GUID_ENTRY(AM_KSCATEGORY_VBICODEC_MI,
-        0x9c24a977,0x951,0x451a,0x80,0x6,0xe,0x49,0xbd,0x28,0xcd,0x5f)
-#endif /* NTDDI_VERSION >= NTDDI_WS03SP1 */
-
diff --git a/3rdparty/include/dshow/strmif.h b/3rdparty/include/dshow/strmif.h
deleted file mode 100644
index efa23ee..0000000
--- a/3rdparty/include/dshow/strmif.h
+++ /dev/null
@@ -1,9392 +0,0 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the w64 mingw-runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error This stub requires an updated version of <rpcndr.h>
-#endif
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif
-
-#ifndef __strmif_h__
-#define __strmif_h__
-
-#ifndef __ICreateDevEnum_FWD_DEFINED__
-#define __ICreateDevEnum_FWD_DEFINED__
-typedef struct ICreateDevEnum ICreateDevEnum;
-#endif
-
-#ifndef __IPin_FWD_DEFINED__
-#define __IPin_FWD_DEFINED__
-typedef struct IPin IPin;
-#endif
-
-#ifndef __IEnumPins_FWD_DEFINED__
-#define __IEnumPins_FWD_DEFINED__
-typedef struct IEnumPins IEnumPins;
-#endif
-
-#ifndef __IEnumMediaTypes_FWD_DEFINED__
-#define __IEnumMediaTypes_FWD_DEFINED__
-typedef struct IEnumMediaTypes IEnumMediaTypes;
-#endif
-
-#ifndef __IFilterGraph_FWD_DEFINED__
-#define __IFilterGraph_FWD_DEFINED__
-typedef struct IFilterGraph IFilterGraph;
-#endif
-
-#ifndef __IEnumFilters_FWD_DEFINED__
-#define __IEnumFilters_FWD_DEFINED__
-typedef struct IEnumFilters IEnumFilters;
-#endif
-
-#ifndef __IMediaFilter_FWD_DEFINED__
-#define __IMediaFilter_FWD_DEFINED__
-typedef struct IMediaFilter IMediaFilter;
-#endif
-
-#ifndef __IBaseFilter_FWD_DEFINED__
-#define __IBaseFilter_FWD_DEFINED__
-typedef struct IBaseFilter IBaseFilter;
-#endif
-
-#ifndef __IReferenceClock_FWD_DEFINED__
-#define __IReferenceClock_FWD_DEFINED__
-typedef struct IReferenceClock IReferenceClock;
-#endif
-
-#ifndef __IReferenceClock2_FWD_DEFINED__
-#define __IReferenceClock2_FWD_DEFINED__
-typedef struct IReferenceClock2 IReferenceClock2;
-#endif
-
-#ifndef __IMediaSample_FWD_DEFINED__
-#define __IMediaSample_FWD_DEFINED__
-typedef struct IMediaSample IMediaSample;
-#endif
-
-#ifndef __IMediaSample2_FWD_DEFINED__
-#define __IMediaSample2_FWD_DEFINED__
-typedef struct IMediaSample2 IMediaSample2;
-#endif
-
-#ifndef __IMemAllocator_FWD_DEFINED__
-#define __IMemAllocator_FWD_DEFINED__
-typedef struct IMemAllocator IMemAllocator;
-#endif
-
-#ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
-#define __IMemAllocatorCallbackTemp_FWD_DEFINED__
-typedef struct IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
-#endif
-
-#ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
-#define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
-typedef struct IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
-#endif
-
-#ifndef __IMemInputPin_FWD_DEFINED__
-#define __IMemInputPin_FWD_DEFINED__
-typedef struct IMemInputPin IMemInputPin;
-#endif
-
-#ifndef __IAMovieSetup_FWD_DEFINED__
-#define __IAMovieSetup_FWD_DEFINED__
-typedef struct IAMovieSetup IAMovieSetup;
-#endif
-
-#ifndef __IMediaSeeking_FWD_DEFINED__
-#define __IMediaSeeking_FWD_DEFINED__
-typedef struct IMediaSeeking IMediaSeeking;
-#endif
-
-#ifndef __IEnumRegFilters_FWD_DEFINED__
-#define __IEnumRegFilters_FWD_DEFINED__
-typedef struct IEnumRegFilters IEnumRegFilters;
-#endif
-
-#ifndef __IFilterMapper_FWD_DEFINED__
-#define __IFilterMapper_FWD_DEFINED__
-typedef struct IFilterMapper IFilterMapper;
-#endif
-
-#ifndef __IFilterMapper2_FWD_DEFINED__
-#define __IFilterMapper2_FWD_DEFINED__
-typedef struct IFilterMapper2 IFilterMapper2;
-#endif
-
-#ifndef __IFilterMapper3_FWD_DEFINED__
-#define __IFilterMapper3_FWD_DEFINED__
-typedef struct IFilterMapper3 IFilterMapper3;
-#endif
-
-#ifndef __IQualityControl_FWD_DEFINED__
-#define __IQualityControl_FWD_DEFINED__
-typedef struct IQualityControl IQualityControl;
-#endif
-
-#ifndef __IOverlayNotify_FWD_DEFINED__
-#define __IOverlayNotify_FWD_DEFINED__
-typedef struct IOverlayNotify IOverlayNotify;
-#endif
-
-#ifndef __IOverlayNotify2_FWD_DEFINED__
-#define __IOverlayNotify2_FWD_DEFINED__
-typedef struct IOverlayNotify2 IOverlayNotify2;
-#endif
-
-#ifndef __IOverlay_FWD_DEFINED__
-#define __IOverlay_FWD_DEFINED__
-typedef struct IOverlay IOverlay;
-#endif
-
-#ifndef __IMediaEventSink_FWD_DEFINED__
-#define __IMediaEventSink_FWD_DEFINED__
-typedef struct IMediaEventSink IMediaEventSink;
-#endif
-
-#ifndef __IFileSourceFilter_FWD_DEFINED__
-#define __IFileSourceFilter_FWD_DEFINED__
-typedef struct IFileSourceFilter IFileSourceFilter;
-#endif
-
-#ifndef __IFileSinkFilter_FWD_DEFINED__
-#define __IFileSinkFilter_FWD_DEFINED__
-typedef struct IFileSinkFilter IFileSinkFilter;
-#endif
-
-#ifndef __IFileSinkFilter2_FWD_DEFINED__
-#define __IFileSinkFilter2_FWD_DEFINED__
-typedef struct IFileSinkFilter2 IFileSinkFilter2;
-#endif
-
-#ifndef __IGraphBuilder_FWD_DEFINED__
-#define __IGraphBuilder_FWD_DEFINED__
-typedef struct IGraphBuilder IGraphBuilder;
-#endif
-
-#ifndef __ICaptureGraphBuilder_FWD_DEFINED__
-#define __ICaptureGraphBuilder_FWD_DEFINED__
-typedef struct ICaptureGraphBuilder ICaptureGraphBuilder;
-#endif
-
-#ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
-#define __IAMCopyCaptureFileProgress_FWD_DEFINED__
-typedef struct IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
-#endif
-
-#ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
-#define __ICaptureGraphBuilder2_FWD_DEFINED__
-typedef struct ICaptureGraphBuilder2 ICaptureGraphBuilder2;
-#endif
-
-#ifndef __IFilterGraph2_FWD_DEFINED__
-#define __IFilterGraph2_FWD_DEFINED__
-typedef struct IFilterGraph2 IFilterGraph2;
-#endif
-
-#ifndef __IStreamBuilder_FWD_DEFINED__
-#define __IStreamBuilder_FWD_DEFINED__
-typedef struct IStreamBuilder IStreamBuilder;
-#endif
-
-#ifndef __IAsyncReader_FWD_DEFINED__
-#define __IAsyncReader_FWD_DEFINED__
-typedef struct IAsyncReader IAsyncReader;
-#endif
-
-#ifndef __IGraphVersion_FWD_DEFINED__
-#define __IGraphVersion_FWD_DEFINED__
-typedef struct IGraphVersion IGraphVersion;
-#endif
-
-#ifndef __IResourceConsumer_FWD_DEFINED__
-#define __IResourceConsumer_FWD_DEFINED__
-typedef struct IResourceConsumer IResourceConsumer;
-#endif
-
-#ifndef __IResourceManager_FWD_DEFINED__
-#define __IResourceManager_FWD_DEFINED__
-typedef struct IResourceManager IResourceManager;
-#endif
-
-#ifndef __IDistributorNotify_FWD_DEFINED__
-#define __IDistributorNotify_FWD_DEFINED__
-typedef struct IDistributorNotify IDistributorNotify;
-#endif
-
-#ifndef __IAMStreamControl_FWD_DEFINED__
-#define __IAMStreamControl_FWD_DEFINED__
-typedef struct IAMStreamControl IAMStreamControl;
-#endif
-
-#ifndef __ISeekingPassThru_FWD_DEFINED__
-#define __ISeekingPassThru_FWD_DEFINED__
-typedef struct ISeekingPassThru ISeekingPassThru;
-#endif
-
-#ifndef __IAMStreamConfig_FWD_DEFINED__
-#define __IAMStreamConfig_FWD_DEFINED__
-typedef struct IAMStreamConfig IAMStreamConfig;
-#endif
-
-#ifndef __IConfigInterleaving_FWD_DEFINED__
-#define __IConfigInterleaving_FWD_DEFINED__
-typedef struct IConfigInterleaving IConfigInterleaving;
-#endif
-
-#ifndef __IConfigAviMux_FWD_DEFINED__
-#define __IConfigAviMux_FWD_DEFINED__
-typedef struct IConfigAviMux IConfigAviMux;
-#endif
-
-#ifndef __IAMVideoCompression_FWD_DEFINED__
-#define __IAMVideoCompression_FWD_DEFINED__
-typedef struct IAMVideoCompression IAMVideoCompression;
-#endif
-
-#ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
-#define __IAMVfwCaptureDialogs_FWD_DEFINED__
-typedef struct IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
-#endif
-
-#ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
-#define __IAMVfwCompressDialogs_FWD_DEFINED__
-typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs;
-#endif
-
-#ifndef __IAMDroppedFrames_FWD_DEFINED__
-#define __IAMDroppedFrames_FWD_DEFINED__
-typedef struct IAMDroppedFrames IAMDroppedFrames;
-#endif
-
-#ifndef __IAMAudioInputMixer_FWD_DEFINED__
-#define __IAMAudioInputMixer_FWD_DEFINED__
-typedef struct IAMAudioInputMixer IAMAudioInputMixer;
-#endif
-
-#ifndef __IAMBufferNegotiation_FWD_DEFINED__
-#define __IAMBufferNegotiation_FWD_DEFINED__
-typedef struct IAMBufferNegotiation IAMBufferNegotiation;
-#endif
-
-#ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
-#define __IAMAnalogVideoDecoder_FWD_DEFINED__
-typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
-#endif
-
-#ifndef __IAMVideoProcAmp_FWD_DEFINED__
-#define __IAMVideoProcAmp_FWD_DEFINED__
-typedef struct IAMVideoProcAmp IAMVideoProcAmp;
-#endif
-
-#ifndef __IAMCameraControl_FWD_DEFINED__
-#define __IAMCameraControl_FWD_DEFINED__
-typedef struct IAMCameraControl IAMCameraControl;
-#endif
-
-#ifndef __IAMVideoControl_FWD_DEFINED__
-#define __IAMVideoControl_FWD_DEFINED__
-typedef struct IAMVideoControl IAMVideoControl;
-#endif
-
-#ifndef __IAMCrossbar_FWD_DEFINED__
-#define __IAMCrossbar_FWD_DEFINED__
-typedef struct IAMCrossbar IAMCrossbar;
-#endif
-
-#ifndef __IAMTuner_FWD_DEFINED__
-#define __IAMTuner_FWD_DEFINED__
-typedef struct IAMTuner IAMTuner;
-#endif
-
-#ifndef __IAMTunerNotification_FWD_DEFINED__
-#define __IAMTunerNotification_FWD_DEFINED__
-typedef struct IAMTunerNotification IAMTunerNotification;
-#endif
-
-#ifndef __IAMTVTuner_FWD_DEFINED__
-#define __IAMTVTuner_FWD_DEFINED__
-typedef struct IAMTVTuner IAMTVTuner;
-#endif
-
-#ifndef __IBPCSatelliteTuner_FWD_DEFINED__
-#define __IBPCSatelliteTuner_FWD_DEFINED__
-typedef struct IBPCSatelliteTuner IBPCSatelliteTuner;
-#endif
-
-#ifndef __IAMTVAudio_FWD_DEFINED__
-#define __IAMTVAudio_FWD_DEFINED__
-typedef struct IAMTVAudio IAMTVAudio;
-#endif
-
-#ifndef __IAMTVAudioNotification_FWD_DEFINED__
-#define __IAMTVAudioNotification_FWD_DEFINED__
-typedef struct IAMTVAudioNotification IAMTVAudioNotification;
-#endif
-
-#ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
-#define __IAMAnalogVideoEncoder_FWD_DEFINED__
-typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
-#endif
-
-#ifndef __IKsPropertySet_FWD_DEFINED__
-#define __IKsPropertySet_FWD_DEFINED__
-typedef struct IKsPropertySet IKsPropertySet;
-#endif
-
-#ifndef __IMediaPropertyBag_FWD_DEFINED__
-#define __IMediaPropertyBag_FWD_DEFINED__
-typedef struct IMediaPropertyBag IMediaPropertyBag;
-#endif
-
-#ifndef __IPersistMediaPropertyBag_FWD_DEFINED__
-#define __IPersistMediaPropertyBag_FWD_DEFINED__
-typedef struct IPersistMediaPropertyBag IPersistMediaPropertyBag;
-#endif
-
-#ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
-#define __IAMPhysicalPinInfo_FWD_DEFINED__
-typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo;
-#endif
-
-#ifndef __IAMExtDevice_FWD_DEFINED__
-#define __IAMExtDevice_FWD_DEFINED__
-typedef struct IAMExtDevice IAMExtDevice;
-#endif
-
-#ifndef __IAMExtTransport_FWD_DEFINED__
-#define __IAMExtTransport_FWD_DEFINED__
-typedef struct IAMExtTransport IAMExtTransport;
-#endif
-
-#ifndef __IAMTimecodeReader_FWD_DEFINED__
-#define __IAMTimecodeReader_FWD_DEFINED__
-typedef struct IAMTimecodeReader IAMTimecodeReader;
-#endif
-
-#ifndef __IAMTimecodeGenerator_FWD_DEFINED__
-#define __IAMTimecodeGenerator_FWD_DEFINED__
-typedef struct IAMTimecodeGenerator IAMTimecodeGenerator;
-#endif
-
-#ifndef __IAMTimecodeDisplay_FWD_DEFINED__
-#define __IAMTimecodeDisplay_FWD_DEFINED__
-typedef struct IAMTimecodeDisplay IAMTimecodeDisplay;
-#endif
-
-#ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
-#define __IAMDevMemoryAllocator_FWD_DEFINED__
-typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator;
-#endif
-
-#ifndef __IAMDevMemoryControl_FWD_DEFINED__
-#define __IAMDevMemoryControl_FWD_DEFINED__
-typedef struct IAMDevMemoryControl IAMDevMemoryControl;
-#endif
-
-#ifndef __IAMStreamSelect_FWD_DEFINED__
-#define __IAMStreamSelect_FWD_DEFINED__
-typedef struct IAMStreamSelect IAMStreamSelect;
-#endif
-
-#ifndef __IAMResourceControl_FWD_DEFINED__
-#define __IAMResourceControl_FWD_DEFINED__
-typedef struct IAMResourceControl IAMResourceControl;
-#endif
-
-#ifndef __IAMClockAdjust_FWD_DEFINED__
-#define __IAMClockAdjust_FWD_DEFINED__
-typedef struct IAMClockAdjust IAMClockAdjust;
-#endif
-
-#ifndef __IAMFilterMiscFlags_FWD_DEFINED__
-#define __IAMFilterMiscFlags_FWD_DEFINED__
-typedef struct IAMFilterMiscFlags IAMFilterMiscFlags;
-#endif
-
-#ifndef __IDrawVideoImage_FWD_DEFINED__
-#define __IDrawVideoImage_FWD_DEFINED__
-typedef struct IDrawVideoImage IDrawVideoImage;
-#endif
-
-#ifndef __IDecimateVideoImage_FWD_DEFINED__
-#define __IDecimateVideoImage_FWD_DEFINED__
-typedef struct IDecimateVideoImage IDecimateVideoImage;
-#endif
-
-#ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
-#define __IAMVideoDecimationProperties_FWD_DEFINED__
-typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties;
-#endif
-
-#ifndef __IVideoFrameStep_FWD_DEFINED__
-#define __IVideoFrameStep_FWD_DEFINED__
-typedef struct IVideoFrameStep IVideoFrameStep;
-#endif
-
-#ifndef __IAMLatency_FWD_DEFINED__
-#define __IAMLatency_FWD_DEFINED__
-typedef struct IAMLatency IAMLatency;
-#endif
-
-#ifndef __IAMPushSource_FWD_DEFINED__
-#define __IAMPushSource_FWD_DEFINED__
-typedef struct IAMPushSource IAMPushSource;
-#endif
-
-#ifndef __IAMDeviceRemoval_FWD_DEFINED__
-#define __IAMDeviceRemoval_FWD_DEFINED__
-typedef struct IAMDeviceRemoval IAMDeviceRemoval;
-#endif
-
-#ifndef __IDVEnc_FWD_DEFINED__
-#define __IDVEnc_FWD_DEFINED__
-typedef struct IDVEnc IDVEnc;
-#endif
-
-#ifndef __IIPDVDec_FWD_DEFINED__
-#define __IIPDVDec_FWD_DEFINED__
-typedef struct IIPDVDec IIPDVDec;
-#endif
-
-#ifndef __IDVRGB219_FWD_DEFINED__
-#define __IDVRGB219_FWD_DEFINED__
-typedef struct IDVRGB219 IDVRGB219;
-#endif
-
-#ifndef __IDVSplitter_FWD_DEFINED__
-#define __IDVSplitter_FWD_DEFINED__
-typedef struct IDVSplitter IDVSplitter;
-#endif
-
-#ifndef __IAMAudioRendererStats_FWD_DEFINED__
-#define __IAMAudioRendererStats_FWD_DEFINED__
-typedef struct IAMAudioRendererStats IAMAudioRendererStats;
-#endif
-
-#ifndef __IAMGraphStreams_FWD_DEFINED__
-#define __IAMGraphStreams_FWD_DEFINED__
-typedef struct IAMGraphStreams IAMGraphStreams;
-#endif
-
-#ifndef __IAMOverlayFX_FWD_DEFINED__
-#define __IAMOverlayFX_FWD_DEFINED__
-typedef struct IAMOverlayFX IAMOverlayFX;
-#endif
-
-#ifndef __IAMOpenProgress_FWD_DEFINED__
-#define __IAMOpenProgress_FWD_DEFINED__
-typedef struct IAMOpenProgress IAMOpenProgress;
-#endif
-
-#ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
-#define __IMpeg2Demultiplexer_FWD_DEFINED__
-typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer;
-#endif
-
-#ifndef __IEnumStreamIdMap_FWD_DEFINED__
-#define __IEnumStreamIdMap_FWD_DEFINED__
-typedef struct IEnumStreamIdMap IEnumStreamIdMap;
-#endif
-
-#ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
-#define __IMPEG2StreamIdMap_FWD_DEFINED__
-typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap;
-#endif
-
-#ifndef __IRegisterServiceProvider_FWD_DEFINED__
-#define __IRegisterServiceProvider_FWD_DEFINED__
-typedef struct IRegisterServiceProvider IRegisterServiceProvider;
-#endif
-
-#ifndef __IAMClockSlave_FWD_DEFINED__
-#define __IAMClockSlave_FWD_DEFINED__
-typedef struct IAMClockSlave IAMClockSlave;
-#endif
-
-#ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
-#define __IAMGraphBuilderCallback_FWD_DEFINED__
-typedef struct IAMGraphBuilderCallback IAMGraphBuilderCallback;
-#endif
-
-#ifndef __ICodecAPI_FWD_DEFINED__
-#define __ICodecAPI_FWD_DEFINED__
-typedef struct ICodecAPI ICodecAPI;
-#endif
-
-#ifndef __IGetCapabilitiesKey_FWD_DEFINED__
-#define __IGetCapabilitiesKey_FWD_DEFINED__
-typedef struct IGetCapabilitiesKey IGetCapabilitiesKey;
-#endif
-
-#ifndef __IEncoderAPI_FWD_DEFINED__
-#define __IEncoderAPI_FWD_DEFINED__
-typedef struct IEncoderAPI IEncoderAPI;
-#endif
-
-#ifndef __IVideoEncoder_FWD_DEFINED__
-#define __IVideoEncoder_FWD_DEFINED__
-typedef struct IVideoEncoder IVideoEncoder;
-#endif
-
-#ifndef __IAMDecoderCaps_FWD_DEFINED__
-#define __IAMDecoderCaps_FWD_DEFINED__
-typedef struct IAMDecoderCaps IAMDecoderCaps;
-#endif
-
-#ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
-#define __IAMCertifiedOutputProtection_FWD_DEFINED__
-typedef struct IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
-#endif
-
-#ifndef __IDvdControl_FWD_DEFINED__
-#define __IDvdControl_FWD_DEFINED__
-typedef struct IDvdControl IDvdControl;
-#endif
-
-#ifndef __IDvdInfo_FWD_DEFINED__
-#define __IDvdInfo_FWD_DEFINED__
-typedef struct IDvdInfo IDvdInfo;
-#endif
-
-#ifndef __IDvdCmd_FWD_DEFINED__
-#define __IDvdCmd_FWD_DEFINED__
-typedef struct IDvdCmd IDvdCmd;
-#endif
-
-#ifndef __IDvdState_FWD_DEFINED__
-#define __IDvdState_FWD_DEFINED__
-typedef struct IDvdState IDvdState;
-#endif
-
-#ifndef __IDvdControl2_FWD_DEFINED__
-#define __IDvdControl2_FWD_DEFINED__
-typedef struct IDvdControl2 IDvdControl2;
-#endif
-
-#ifndef __IDvdInfo2_FWD_DEFINED__
-#define __IDvdInfo2_FWD_DEFINED__
-typedef struct IDvdInfo2 IDvdInfo2;
-#endif
-
-#ifndef __IDvdGraphBuilder_FWD_DEFINED__
-#define __IDvdGraphBuilder_FWD_DEFINED__
-typedef struct IDvdGraphBuilder IDvdGraphBuilder;
-#endif
-
-#ifndef __IDDrawExclModeVideo_FWD_DEFINED__
-#define __IDDrawExclModeVideo_FWD_DEFINED__
-typedef struct IDDrawExclModeVideo IDDrawExclModeVideo;
-#endif
-
-#ifndef __IDDrawExclModeVideoCallback_FWD_DEFINED__
-#define __IDDrawExclModeVideoCallback_FWD_DEFINED__
-typedef struct IDDrawExclModeVideoCallback IDDrawExclModeVideoCallback;
-#endif
-
-#ifndef __IPinConnection_FWD_DEFINED__
-#define __IPinConnection_FWD_DEFINED__
-typedef struct IPinConnection IPinConnection;
-#endif
-
-#ifndef __IPinFlowControl_FWD_DEFINED__
-#define __IPinFlowControl_FWD_DEFINED__
-typedef struct IPinFlowControl IPinFlowControl;
-#endif
-
-#ifndef __IGraphConfig_FWD_DEFINED__
-#define __IGraphConfig_FWD_DEFINED__
-typedef struct IGraphConfig IGraphConfig;
-#endif
-
-#ifndef __IGraphConfigCallback_FWD_DEFINED__
-#define __IGraphConfigCallback_FWD_DEFINED__
-typedef struct IGraphConfigCallback IGraphConfigCallback;
-#endif
-
-#ifndef __IFilterChain_FWD_DEFINED__
-#define __IFilterChain_FWD_DEFINED__
-typedef struct IFilterChain IFilterChain;
-#endif
-
-#ifndef __IVMRImagePresenter_FWD_DEFINED__
-#define __IVMRImagePresenter_FWD_DEFINED__
-typedef struct IVMRImagePresenter IVMRImagePresenter;
-#endif
-
-#ifndef __IVMRSurfaceAllocator_FWD_DEFINED__
-#define __IVMRSurfaceAllocator_FWD_DEFINED__
-typedef struct IVMRSurfaceAllocator IVMRSurfaceAllocator;
-#endif
-
-#ifndef __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
-#define __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
-typedef struct IVMRSurfaceAllocatorNotify IVMRSurfaceAllocatorNotify;
-#endif
-
-#ifndef __IVMRWindowlessControl_FWD_DEFINED__
-#define __IVMRWindowlessControl_FWD_DEFINED__
-typedef struct IVMRWindowlessControl IVMRWindowlessControl;
-#endif
-
-#ifndef __IVMRMixerControl_FWD_DEFINED__
-#define __IVMRMixerControl_FWD_DEFINED__
-typedef struct IVMRMixerControl IVMRMixerControl;
-#endif
-
-#ifndef __IVMRMonitorConfig_FWD_DEFINED__
-#define __IVMRMonitorConfig_FWD_DEFINED__
-typedef struct IVMRMonitorConfig IVMRMonitorConfig;
-#endif
-
-#ifndef __IVMRFilterConfig_FWD_DEFINED__
-#define __IVMRFilterConfig_FWD_DEFINED__
-typedef struct IVMRFilterConfig IVMRFilterConfig;
-#endif
-
-#ifndef __IVMRAspectRatioControl_FWD_DEFINED__
-#define __IVMRAspectRatioControl_FWD_DEFINED__
-typedef struct IVMRAspectRatioControl IVMRAspectRatioControl;
-#endif
-
-#ifndef __IVMRDeinterlaceControl_FWD_DEFINED__
-#define __IVMRDeinterlaceControl_FWD_DEFINED__
-typedef struct IVMRDeinterlaceControl IVMRDeinterlaceControl;
-#endif
-
-#ifndef __IVMRMixerBitmap_FWD_DEFINED__
-#define __IVMRMixerBitmap_FWD_DEFINED__
-typedef struct IVMRMixerBitmap IVMRMixerBitmap;
-#endif
-
-#ifndef __IVMRImageCompositor_FWD_DEFINED__
-#define __IVMRImageCompositor_FWD_DEFINED__
-typedef struct IVMRImageCompositor IVMRImageCompositor;
-#endif
-
-#ifndef __IVMRVideoStreamControl_FWD_DEFINED__
-#define __IVMRVideoStreamControl_FWD_DEFINED__
-typedef struct IVMRVideoStreamControl IVMRVideoStreamControl;
-#endif
-
-#ifndef __IVMRSurface_FWD_DEFINED__
-#define __IVMRSurface_FWD_DEFINED__
-typedef struct IVMRSurface IVMRSurface;
-#endif
-
-#ifndef __IVMRImagePresenterConfig_FWD_DEFINED__
-#define __IVMRImagePresenterConfig_FWD_DEFINED__
-typedef struct IVMRImagePresenterConfig IVMRImagePresenterConfig;
-#endif
-
-#ifndef __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
-#define __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
-typedef struct IVMRImagePresenterExclModeConfig IVMRImagePresenterExclModeConfig;
-#endif
-
-#ifndef __IVPManager_FWD_DEFINED__
-#define __IVPManager_FWD_DEFINED__
-typedef struct IVPManager IVPManager;
-#endif
-
-#include "unknwn.h"
-#include "objidl.h"
-#include "oaidl.h"
-#include "ocidl.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef __MIDL_user_allocate_free_DEFINED__
-#define __MIDL_user_allocate_free_DEFINED__
-  void *__RPC_API MIDL_user_allocate(size_t);
-  void __RPC_API MIDL_user_free(void *);
-#endif
-
-#define CDEF_CLASS_DEFAULT 0x0001
-#define CDEF_BYPASS_CLASS_MANAGER 0x0002
-#define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008
-#define CDEF_DEVMON_CMGR_DEVICE 0x0010
-#define CDEF_DEVMON_DMO 0x0020
-#define CDEF_DEVMON_PNP_DEVICE 0x0040
-#define CDEF_DEVMON_FILTER 0x0080
-#define CDEF_DEVMON_SELECTIVE_MASK 0x00f0
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0000_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0000_v0_0_s_ifspec;
-#ifndef __ICreateDevEnum_INTERFACE_DEFINED__
-#define __ICreateDevEnum_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ICreateDevEnum;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ICreateDevEnum : public IUnknown {
-  public:
-    virtual HRESULT WINAPI CreateClassEnumerator(REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags) = 0;
-  };
-#else
-  typedef struct ICreateDevEnumVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ICreateDevEnum *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ICreateDevEnum *This);
-      ULONG (WINAPI *Release)(ICreateDevEnum *This);
-      HRESULT (WINAPI *CreateClassEnumerator)(ICreateDevEnum *This,REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags);
-    END_INTERFACE
-  } ICreateDevEnumVtbl;
-  struct ICreateDevEnum {
-    CONST_VTBL struct ICreateDevEnumVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ICreateDevEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ICreateDevEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ICreateDevEnum_Release(This) (This)->lpVtbl->Release(This)
-#define ICreateDevEnum_CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags) (This)->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags)
-#endif
-#endif
-  HRESULT WINAPI ICreateDevEnum_CreateClassEnumerator_Proxy(ICreateDevEnum *This,REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags);
-  void __RPC_STUB ICreateDevEnum_CreateClassEnumerator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#define CHARS_IN_GUID 39
-  typedef struct _AMMediaType {
-    GUID majortype;
-    GUID subtype;
-    WINBOOL bFixedSizeSamples;
-    WINBOOL bTemporalCompression;
-    ULONG lSampleSize;
-    GUID formattype;
-    IUnknown *pUnk;
-    ULONG cbFormat;
-    BYTE *pbFormat;
-  } AM_MEDIA_TYPE;
-
-  typedef enum _PinDirection {
-    PINDIR_INPUT = 0,PINDIR_OUTPUT = PINDIR_INPUT + 1
-  } PIN_DIRECTION;
-
-#define MAX_PIN_NAME 128
-#define MAX_FILTER_NAME 128
-
-#ifndef __REFERENCE_TIME_DEFINED
-#define __REFERENCE_TIME_DEFINED
-typedef LONGLONG REFERENCE_TIME;
-#endif /*__REFERENCE_TIME_DEFINED*/
-
-  typedef double REFTIME;
-  typedef DWORD_PTR HSEMAPHORE;
-  typedef DWORD_PTR HEVENT;
-
-  typedef struct _AllocatorProperties {
-    long cBuffers;
-    long cbBuffer;
-    long cbAlign;
-    long cbPrefix;
-  } ALLOCATOR_PROPERTIES;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0117_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0117_v0_0_s_ifspec;
-#ifndef __IPin_INTERFACE_DEFINED__
-#define __IPin_INTERFACE_DEFINED__
-  typedef struct _PinInfo {
-    IBaseFilter *pFilter;
-    PIN_DIRECTION dir;
-    WCHAR achName[128];
-  } PIN_INFO;
-
-  EXTERN_C const IID IID_IPin;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IPin : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Connect(IPin *pReceivePin,const AM_MEDIA_TYPE *pmt) = 0;
-    virtual HRESULT WINAPI ReceiveConnection(IPin *pConnector,const AM_MEDIA_TYPE *pmt) = 0;
-    virtual HRESULT WINAPI Disconnect(void) = 0;
-    virtual HRESULT WINAPI ConnectedTo(IPin **pPin) = 0;
-    virtual HRESULT WINAPI ConnectionMediaType(AM_MEDIA_TYPE *pmt) = 0;
-    virtual HRESULT WINAPI QueryPinInfo(PIN_INFO *pInfo) = 0;
-    virtual HRESULT WINAPI QueryDirection(PIN_DIRECTION *pPinDir) = 0;
-    virtual HRESULT WINAPI QueryId(LPWSTR *Id) = 0;
-    virtual HRESULT WINAPI QueryAccept(const AM_MEDIA_TYPE *pmt) = 0;
-    virtual HRESULT WINAPI EnumMediaTypes(IEnumMediaTypes **ppEnum) = 0;
-    virtual HRESULT WINAPI QueryInternalConnections(IPin **apPin,ULONG *nPin) = 0;
-    virtual HRESULT WINAPI EndOfStream(void) = 0;
-    virtual HRESULT WINAPI BeginFlush(void) = 0;
-    virtual HRESULT WINAPI EndFlush(void) = 0;
-    virtual HRESULT WINAPI NewSegment(REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate) = 0;
-  };
-#else
-  typedef struct IPinVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IPin *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IPin *This);
-      ULONG (WINAPI *Release)(IPin *This);
-      HRESULT (WINAPI *Connect)(IPin *This,IPin *pReceivePin,const AM_MEDIA_TYPE *pmt);
-      HRESULT (WINAPI *ReceiveConnection)(IPin *This,IPin *pConnector,const AM_MEDIA_TYPE *pmt);
-      HRESULT (WINAPI *Disconnect)(IPin *This);
-      HRESULT (WINAPI *ConnectedTo)(IPin *This,IPin **pPin);
-      HRESULT (WINAPI *ConnectionMediaType)(IPin *This,AM_MEDIA_TYPE *pmt);
-      HRESULT (WINAPI *QueryPinInfo)(IPin *This,PIN_INFO *pInfo);
-      HRESULT (WINAPI *QueryDirection)(IPin *This,PIN_DIRECTION *pPinDir);
-      HRESULT (WINAPI *QueryId)(IPin *This,LPWSTR *Id);
-      HRESULT (WINAPI *QueryAccept)(IPin *This,const AM_MEDIA_TYPE *pmt);
-      HRESULT (WINAPI *EnumMediaTypes)(IPin *This,IEnumMediaTypes **ppEnum);
-      HRESULT (WINAPI *QueryInternalConnections)(IPin *This,IPin **apPin,ULONG *nPin);
-      HRESULT (WINAPI *EndOfStream)(IPin *This);
-      HRESULT (WINAPI *BeginFlush)(IPin *This);
-      HRESULT (WINAPI *EndFlush)(IPin *This);
-      HRESULT (WINAPI *NewSegment)(IPin *This,REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate);
-    END_INTERFACE
-  } IPinVtbl;
-  struct IPin {
-    CONST_VTBL struct IPinVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IPin_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IPin_Release(This) (This)->lpVtbl->Release(This)
-#define IPin_Connect(This,pReceivePin,pmt) (This)->lpVtbl->Connect(This,pReceivePin,pmt)
-#define IPin_ReceiveConnection(This,pConnector,pmt) (This)->lpVtbl->ReceiveConnection(This,pConnector,pmt)
-#define IPin_Disconnect(This) (This)->lpVtbl->Disconnect(This)
-#define IPin_ConnectedTo(This,pPin) (This)->lpVtbl->ConnectedTo(This,pPin)
-#define IPin_ConnectionMediaType(This,pmt) (This)->lpVtbl->ConnectionMediaType(This,pmt)
-#define IPin_QueryPinInfo(This,pInfo) (This)->lpVtbl->QueryPinInfo(This,pInfo)
-#define IPin_QueryDirection(This,pPinDir) (This)->lpVtbl->QueryDirection(This,pPinDir)
-#define IPin_QueryId(This,Id) (This)->lpVtbl->QueryId(This,Id)
-#define IPin_QueryAccept(This,pmt) (This)->lpVtbl->QueryAccept(This,pmt)
-#define IPin_EnumMediaTypes(This,ppEnum) (This)->lpVtbl->EnumMediaTypes(This,ppEnum)
-#define IPin_QueryInternalConnections(This,apPin,nPin) (This)->lpVtbl->QueryInternalConnections(This,apPin,nPin)
-#define IPin_EndOfStream(This) (This)->lpVtbl->EndOfStream(This)
-#define IPin_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
-#define IPin_EndFlush(This) (This)->lpVtbl->EndFlush(This)
-#define IPin_NewSegment(This,tStart,tStop,dRate) (This)->lpVtbl->NewSegment(This,tStart,tStop,dRate)
-#endif
-#endif
-  HRESULT WINAPI IPin_Connect_Proxy(IPin *This,IPin *pReceivePin,const AM_MEDIA_TYPE *pmt);
-  void __RPC_STUB IPin_Connect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPin_ReceiveConnection_Proxy(IPin *This,IPin *pConnector,const AM_MEDIA_TYPE *pmt);
-  void __RPC_STUB IPin_ReceiveConnection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPin_Disconnect_Proxy(IPin *This);
-  void __RPC_STUB IPin_Disconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPin_ConnectedTo_Proxy(IPin *This,IPin **pPin);
-  void __RPC_STUB IPin_ConnectedTo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPin_ConnectionMediaType_Proxy(IPin *This,AM_MEDIA_TYPE *pmt);
-  void __RPC_STUB IPin_ConnectionMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPin_QueryPinInfo_Proxy(IPin *This,PIN_INFO *pInfo);
-  void __RPC_STUB IPin_QueryPinInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPin_QueryDirection_Proxy(IPin *This,PIN_DIRECTION *pPinDir);
-  void __RPC_STUB IPin_QueryDirection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPin_QueryId_Proxy(IPin *This,LPWSTR *Id);
-  void __RPC_STUB IPin_QueryId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPin_QueryAccept_Proxy(IPin *This,const AM_MEDIA_TYPE *pmt);
-  void __RPC_STUB IPin_QueryAccept_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPin_EnumMediaTypes_Proxy(IPin *This,IEnumMediaTypes **ppEnum);
-  void __RPC_STUB IPin_EnumMediaTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPin_QueryInternalConnections_Proxy(IPin *This,IPin **apPin,ULONG *nPin);
-  void __RPC_STUB IPin_QueryInternalConnections_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPin_EndOfStream_Proxy(IPin *This);
-  void __RPC_STUB IPin_EndOfStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPin_BeginFlush_Proxy(IPin *This);
-  void __RPC_STUB IPin_BeginFlush_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPin_EndFlush_Proxy(IPin *This);
-  void __RPC_STUB IPin_EndFlush_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPin_NewSegment_Proxy(IPin *This,REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate);
-  void __RPC_STUB IPin_NewSegment_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IPin *PPIN;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0118_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0118_v0_0_s_ifspec;
-#ifndef __IEnumPins_INTERFACE_DEFINED__
-#define __IEnumPins_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IEnumPins;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IEnumPins : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Next(ULONG cPins,IPin **ppPins,ULONG *pcFetched) = 0;
-    virtual HRESULT WINAPI Skip(ULONG cPins) = 0;
-    virtual HRESULT WINAPI Reset(void) = 0;
-    virtual HRESULT WINAPI Clone(IEnumPins **ppEnum) = 0;
-  };
-#else
-  typedef struct IEnumPinsVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IEnumPins *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IEnumPins *This);
-      ULONG (WINAPI *Release)(IEnumPins *This);
-      HRESULT (WINAPI *Next)(IEnumPins *This,ULONG cPins,IPin **ppPins,ULONG *pcFetched);
-      HRESULT (WINAPI *Skip)(IEnumPins *This,ULONG cPins);
-      HRESULT (WINAPI *Reset)(IEnumPins *This);
-      HRESULT (WINAPI *Clone)(IEnumPins *This,IEnumPins **ppEnum);
-    END_INTERFACE
-  } IEnumPinsVtbl;
-  struct IEnumPins {
-    CONST_VTBL struct IEnumPinsVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IEnumPins_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IEnumPins_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IEnumPins_Release(This) (This)->lpVtbl->Release(This)
-#define IEnumPins_Next(This,cPins,ppPins,pcFetched) (This)->lpVtbl->Next(This,cPins,ppPins,pcFetched)
-#define IEnumPins_Skip(This,cPins) (This)->lpVtbl->Skip(This,cPins)
-#define IEnumPins_Reset(This) (This)->lpVtbl->Reset(This)
-#define IEnumPins_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
-#endif
-#endif
-  HRESULT WINAPI IEnumPins_Next_Proxy(IEnumPins *This,ULONG cPins,IPin **ppPins,ULONG *pcFetched);
-  void __RPC_STUB IEnumPins_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumPins_Skip_Proxy(IEnumPins *This,ULONG cPins);
-  void __RPC_STUB IEnumPins_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumPins_Reset_Proxy(IEnumPins *This);
-  void __RPC_STUB IEnumPins_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumPins_Clone_Proxy(IEnumPins *This,IEnumPins **ppEnum);
-  void __RPC_STUB IEnumPins_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IEnumPins *PENUMPINS;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0119_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0119_v0_0_s_ifspec;
-#ifndef __IEnumMediaTypes_INTERFACE_DEFINED__
-#define __IEnumMediaTypes_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IEnumMediaTypes;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IEnumMediaTypes : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Next(ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched) = 0;
-    virtual HRESULT WINAPI Skip(ULONG cMediaTypes) = 0;
-    virtual HRESULT WINAPI Reset(void) = 0;
-    virtual HRESULT WINAPI Clone(IEnumMediaTypes **ppEnum) = 0;
-  };
-#else
-  typedef struct IEnumMediaTypesVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IEnumMediaTypes *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IEnumMediaTypes *This);
-      ULONG (WINAPI *Release)(IEnumMediaTypes *This);
-      HRESULT (WINAPI *Next)(IEnumMediaTypes *This,ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched);
-      HRESULT (WINAPI *Skip)(IEnumMediaTypes *This,ULONG cMediaTypes);
-      HRESULT (WINAPI *Reset)(IEnumMediaTypes *This);
-      HRESULT (WINAPI *Clone)(IEnumMediaTypes *This,IEnumMediaTypes **ppEnum);
-    END_INTERFACE
-  } IEnumMediaTypesVtbl;
-  struct IEnumMediaTypes {
-    CONST_VTBL struct IEnumMediaTypesVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IEnumMediaTypes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IEnumMediaTypes_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IEnumMediaTypes_Release(This) (This)->lpVtbl->Release(This)
-#define IEnumMediaTypes_Next(This,cMediaTypes,ppMediaTypes,pcFetched) (This)->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched)
-#define IEnumMediaTypes_Skip(This,cMediaTypes) (This)->lpVtbl->Skip(This,cMediaTypes)
-#define IEnumMediaTypes_Reset(This) (This)->lpVtbl->Reset(This)
-#define IEnumMediaTypes_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
-#endif
-#endif
-  HRESULT WINAPI IEnumMediaTypes_Next_Proxy(IEnumMediaTypes *This,ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched);
-  void __RPC_STUB IEnumMediaTypes_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumMediaTypes_Skip_Proxy(IEnumMediaTypes *This,ULONG cMediaTypes);
-  void __RPC_STUB IEnumMediaTypes_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumMediaTypes_Reset_Proxy(IEnumMediaTypes *This);
-  void __RPC_STUB IEnumMediaTypes_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumMediaTypes_Clone_Proxy(IEnumMediaTypes *This,IEnumMediaTypes **ppEnum);
-  void __RPC_STUB IEnumMediaTypes_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IEnumMediaTypes *PENUMMEDIATYPES;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0120_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0120_v0_0_s_ifspec;
-#ifndef __IFilterGraph_INTERFACE_DEFINED__
-#define __IFilterGraph_INTERFACE_DEFINED__
-
-  EXTERN_C const IID IID_IFilterGraph;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IFilterGraph : public IUnknown {
-  public:
-    virtual HRESULT WINAPI AddFilter(IBaseFilter *pFilter,LPCWSTR pName) = 0;
-    virtual HRESULT WINAPI RemoveFilter(IBaseFilter *pFilter) = 0;
-    virtual HRESULT WINAPI EnumFilters(IEnumFilters **ppEnum) = 0;
-    virtual HRESULT WINAPI FindFilterByName(LPCWSTR pName,IBaseFilter **ppFilter) = 0;
-    virtual HRESULT WINAPI ConnectDirect(IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) = 0;
-    virtual HRESULT WINAPI Reconnect(IPin *ppin) = 0;
-    virtual HRESULT WINAPI Disconnect(IPin *ppin) = 0;
-    virtual HRESULT WINAPI SetDefaultSyncSource(void) = 0;
-  };
-#else
-  typedef struct IFilterGraphVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IFilterGraph *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IFilterGraph *This);
-      ULONG (WINAPI *Release)(IFilterGraph *This);
-      HRESULT (WINAPI *AddFilter)(IFilterGraph *This,IBaseFilter *pFilter,LPCWSTR pName);
-      HRESULT (WINAPI *RemoveFilter)(IFilterGraph *This,IBaseFilter *pFilter);
-      HRESULT (WINAPI *EnumFilters)(IFilterGraph *This,IEnumFilters **ppEnum);
-      HRESULT (WINAPI *FindFilterByName)(IFilterGraph *This,LPCWSTR pName,IBaseFilter **ppFilter);
-      HRESULT (WINAPI *ConnectDirect)(IFilterGraph *This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt);
-      HRESULT (WINAPI *Reconnect)(IFilterGraph *This,IPin *ppin);
-      HRESULT (WINAPI *Disconnect)(IFilterGraph *This,IPin *ppin);
-      HRESULT (WINAPI *SetDefaultSyncSource)(IFilterGraph *This);
-    END_INTERFACE
-  } IFilterGraphVtbl;
-  struct IFilterGraph {
-    CONST_VTBL struct IFilterGraphVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IFilterGraph_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFilterGraph_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFilterGraph_Release(This) (This)->lpVtbl->Release(This)
-#define IFilterGraph_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
-#define IFilterGraph_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
-#define IFilterGraph_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
-#define IFilterGraph_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
-#define IFilterGraph_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
-#define IFilterGraph_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
-#define IFilterGraph_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
-#define IFilterGraph_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
-#endif
-#endif
-  HRESULT WINAPI IFilterGraph_AddFilter_Proxy(IFilterGraph *This,IBaseFilter *pFilter,LPCWSTR pName);
-  void __RPC_STUB IFilterGraph_AddFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterGraph_RemoveFilter_Proxy(IFilterGraph *This,IBaseFilter *pFilter);
-  void __RPC_STUB IFilterGraph_RemoveFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterGraph_EnumFilters_Proxy(IFilterGraph *This,IEnumFilters **ppEnum);
-  void __RPC_STUB IFilterGraph_EnumFilters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterGraph_FindFilterByName_Proxy(IFilterGraph *This,LPCWSTR pName,IBaseFilter **ppFilter);
-  void __RPC_STUB IFilterGraph_FindFilterByName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterGraph_ConnectDirect_Proxy(IFilterGraph *This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt);
-  void __RPC_STUB IFilterGraph_ConnectDirect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterGraph_Reconnect_Proxy(IFilterGraph *This,IPin *ppin);
-  void __RPC_STUB IFilterGraph_Reconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterGraph_Disconnect_Proxy(IFilterGraph *This,IPin *ppin);
-  void __RPC_STUB IFilterGraph_Disconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterGraph_SetDefaultSyncSource_Proxy(IFilterGraph *This);
-  void __RPC_STUB IFilterGraph_SetDefaultSyncSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IFilterGraph *PFILTERGRAPH;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0121_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0121_v0_0_s_ifspec;
-#ifndef __IEnumFilters_INTERFACE_DEFINED__
-#define __IEnumFilters_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IEnumFilters;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IEnumFilters : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Next(ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched) = 0;
-    virtual HRESULT WINAPI Skip(ULONG cFilters) = 0;
-    virtual HRESULT WINAPI Reset(void) = 0;
-    virtual HRESULT WINAPI Clone(IEnumFilters **ppEnum) = 0;
-  };
-#else
-  typedef struct IEnumFiltersVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IEnumFilters *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IEnumFilters *This);
-      ULONG (WINAPI *Release)(IEnumFilters *This);
-      HRESULT (WINAPI *Next)(IEnumFilters *This,ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched);
-      HRESULT (WINAPI *Skip)(IEnumFilters *This,ULONG cFilters);
-      HRESULT (WINAPI *Reset)(IEnumFilters *This);
-      HRESULT (WINAPI *Clone)(IEnumFilters *This,IEnumFilters **ppEnum);
-    END_INTERFACE
-  } IEnumFiltersVtbl;
-  struct IEnumFilters {
-    CONST_VTBL struct IEnumFiltersVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IEnumFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IEnumFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IEnumFilters_Release(This) (This)->lpVtbl->Release(This)
-#define IEnumFilters_Next(This,cFilters,ppFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,ppFilter,pcFetched)
-#define IEnumFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
-#define IEnumFilters_Reset(This) (This)->lpVtbl->Reset(This)
-#define IEnumFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
-#endif
-#endif
-  HRESULT WINAPI IEnumFilters_Next_Proxy(IEnumFilters *This,ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched);
-  void __RPC_STUB IEnumFilters_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumFilters_Skip_Proxy(IEnumFilters *This,ULONG cFilters);
-  void __RPC_STUB IEnumFilters_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumFilters_Reset_Proxy(IEnumFilters *This);
-  void __RPC_STUB IEnumFilters_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumFilters_Clone_Proxy(IEnumFilters *This,IEnumFilters **ppEnum);
-  void __RPC_STUB IEnumFilters_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IEnumFilters *PENUMFILTERS;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0122_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0122_v0_0_s_ifspec;
-#ifndef __IMediaFilter_INTERFACE_DEFINED__
-#define __IMediaFilter_INTERFACE_DEFINED__
-  typedef enum _FilterState {
-    State_Stopped = 0,State_Paused,State_Running
-  } FILTER_STATE;
-
-  EXTERN_C const IID IID_IMediaFilter;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMediaFilter : public IPersist {
-  public:
-    virtual HRESULT WINAPI Stop(void) = 0;
-    virtual HRESULT WINAPI Pause(void) = 0;
-    virtual HRESULT WINAPI Run(REFERENCE_TIME tStart) = 0;
-    virtual HRESULT WINAPI GetState(DWORD dwMilliSecsTimeout,FILTER_STATE *State) = 0;
-    virtual HRESULT WINAPI SetSyncSource(IReferenceClock *pClock) = 0;
-    virtual HRESULT WINAPI GetSyncSource(IReferenceClock **pClock) = 0;
-  };
-#else
-  typedef struct IMediaFilterVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMediaFilter *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMediaFilter *This);
-      ULONG (WINAPI *Release)(IMediaFilter *This);
-      HRESULT (WINAPI *GetClassID)(IMediaFilter *This,CLSID *pClassID);
-      HRESULT (WINAPI *Stop)(IMediaFilter *This);
-      HRESULT (WINAPI *Pause)(IMediaFilter *This);
-      HRESULT (WINAPI *Run)(IMediaFilter *This,REFERENCE_TIME tStart);
-      HRESULT (WINAPI *GetState)(IMediaFilter *This,DWORD dwMilliSecsTimeout,FILTER_STATE *State);
-      HRESULT (WINAPI *SetSyncSource)(IMediaFilter *This,IReferenceClock *pClock);
-      HRESULT (WINAPI *GetSyncSource)(IMediaFilter *This,IReferenceClock **pClock);
-    END_INTERFACE
-  } IMediaFilterVtbl;
-  struct IMediaFilter {
-    CONST_VTBL struct IMediaFilterVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMediaFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMediaFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMediaFilter_Release(This) (This)->lpVtbl->Release(This)
-#define IMediaFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
-#define IMediaFilter_Stop(This) (This)->lpVtbl->Stop(This)
-#define IMediaFilter_Pause(This) (This)->lpVtbl->Pause(This)
-#define IMediaFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
-#define IMediaFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
-#define IMediaFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
-#define IMediaFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
-#endif
-#endif
-  HRESULT WINAPI IMediaFilter_Stop_Proxy(IMediaFilter *This);
-  void __RPC_STUB IMediaFilter_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaFilter_Pause_Proxy(IMediaFilter *This);
-  void __RPC_STUB IMediaFilter_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaFilter_Run_Proxy(IMediaFilter *This,REFERENCE_TIME tStart);
-  void __RPC_STUB IMediaFilter_Run_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaFilter_GetState_Proxy(IMediaFilter *This,DWORD dwMilliSecsTimeout,FILTER_STATE *State);
-  void __RPC_STUB IMediaFilter_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaFilter_SetSyncSource_Proxy(IMediaFilter *This,IReferenceClock *pClock);
-  void __RPC_STUB IMediaFilter_SetSyncSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaFilter_GetSyncSource_Proxy(IMediaFilter *This,IReferenceClock **pClock);
-  void __RPC_STUB IMediaFilter_GetSyncSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IMediaFilter *PMEDIAFILTER;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0123_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0123_v0_0_s_ifspec;
-#ifndef __IBaseFilter_INTERFACE_DEFINED__
-#define __IBaseFilter_INTERFACE_DEFINED__
-
-  typedef struct _FilterInfo {
-    WCHAR achName[128];
-    IFilterGraph *pGraph;
-  } FILTER_INFO;
-
-  EXTERN_C const IID IID_IBaseFilter;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IBaseFilter : public IMediaFilter {
-  public:
-    virtual HRESULT WINAPI EnumPins(IEnumPins **ppEnum) = 0;
-    virtual HRESULT WINAPI FindPin(LPCWSTR Id,IPin **ppPin) = 0;
-    virtual HRESULT WINAPI QueryFilterInfo(FILTER_INFO *pInfo) = 0;
-    virtual HRESULT WINAPI JoinFilterGraph(IFilterGraph *pGraph,LPCWSTR pName) = 0;
-    virtual HRESULT WINAPI QueryVendorInfo(LPWSTR *pVendorInfo) = 0;
-  };
-#else
-  typedef struct IBaseFilterVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IBaseFilter *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IBaseFilter *This);
-      ULONG (WINAPI *Release)(IBaseFilter *This);
-      HRESULT (WINAPI *GetClassID)(IBaseFilter *This,CLSID *pClassID);
-      HRESULT (WINAPI *Stop)(IBaseFilter *This);
-      HRESULT (WINAPI *Pause)(IBaseFilter *This);
-      HRESULT (WINAPI *Run)(IBaseFilter *This,REFERENCE_TIME tStart);
-      HRESULT (WINAPI *GetState)(IBaseFilter *This,DWORD dwMilliSecsTimeout,FILTER_STATE *State);
-      HRESULT (WINAPI *SetSyncSource)(IBaseFilter *This,IReferenceClock *pClock);
-      HRESULT (WINAPI *GetSyncSource)(IBaseFilter *This,IReferenceClock **pClock);
-      HRESULT (WINAPI *EnumPins)(IBaseFilter *This,IEnumPins **ppEnum);
-      HRESULT (WINAPI *FindPin)(IBaseFilter *This,LPCWSTR Id,IPin **ppPin);
-      HRESULT (WINAPI *QueryFilterInfo)(IBaseFilter *This,FILTER_INFO *pInfo);
-      HRESULT (WINAPI *JoinFilterGraph)(IBaseFilter *This,IFilterGraph *pGraph,LPCWSTR pName);
-      HRESULT (WINAPI *QueryVendorInfo)(IBaseFilter *This,LPWSTR *pVendorInfo);
-    END_INTERFACE
-  } IBaseFilterVtbl;
-  struct IBaseFilter {
-    CONST_VTBL struct IBaseFilterVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IBaseFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IBaseFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IBaseFilter_Release(This) (This)->lpVtbl->Release(This)
-#define IBaseFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
-#define IBaseFilter_Stop(This) (This)->lpVtbl->Stop(This)
-#define IBaseFilter_Pause(This) (This)->lpVtbl->Pause(This)
-#define IBaseFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
-#define IBaseFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
-#define IBaseFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
-#define IBaseFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
-#define IBaseFilter_EnumPins(This,ppEnum) (This)->lpVtbl->EnumPins(This,ppEnum)
-#define IBaseFilter_FindPin(This,Id,ppPin) (This)->lpVtbl->FindPin(This,Id,ppPin)
-#define IBaseFilter_QueryFilterInfo(This,pInfo) (This)->lpVtbl->QueryFilterInfo(This,pInfo)
-#define IBaseFilter_JoinFilterGraph(This,pGraph,pName) (This)->lpVtbl->JoinFilterGraph(This,pGraph,pName)
-#define IBaseFilter_QueryVendorInfo(This,pVendorInfo) (This)->lpVtbl->QueryVendorInfo(This,pVendorInfo)
-#endif
-#endif
-  HRESULT WINAPI IBaseFilter_EnumPins_Proxy(IBaseFilter *This,IEnumPins **ppEnum);
-  void __RPC_STUB IBaseFilter_EnumPins_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBaseFilter_FindPin_Proxy(IBaseFilter *This,LPCWSTR Id,IPin **ppPin);
-  void __RPC_STUB IBaseFilter_FindPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBaseFilter_QueryFilterInfo_Proxy(IBaseFilter *This,FILTER_INFO *pInfo);
-  void __RPC_STUB IBaseFilter_QueryFilterInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBaseFilter_JoinFilterGraph_Proxy(IBaseFilter *This,IFilterGraph *pGraph,LPCWSTR pName);
-  void __RPC_STUB IBaseFilter_JoinFilterGraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBaseFilter_QueryVendorInfo_Proxy(IBaseFilter *This,LPWSTR *pVendorInfo);
-  void __RPC_STUB IBaseFilter_QueryVendorInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IBaseFilter *PFILTER;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0124_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0124_v0_0_s_ifspec;
-#ifndef __IReferenceClock_INTERFACE_DEFINED__
-#define __IReferenceClock_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IReferenceClock;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IReferenceClock : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetTime(REFERENCE_TIME *pTime) = 0;
-    virtual HRESULT WINAPI AdviseTime(REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) = 0;
-    virtual HRESULT WINAPI AdvisePeriodic(REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) = 0;
-    virtual HRESULT WINAPI Unadvise(DWORD_PTR dwAdviseCookie) = 0;
-  };
-#else
-  typedef struct IReferenceClockVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IReferenceClock *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IReferenceClock *This);
-      ULONG (WINAPI *Release)(IReferenceClock *This);
-      HRESULT (WINAPI *GetTime)(IReferenceClock *This,REFERENCE_TIME *pTime);
-      HRESULT (WINAPI *AdviseTime)(IReferenceClock *This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie);
-      HRESULT (WINAPI *AdvisePeriodic)(IReferenceClock *This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie);
-      HRESULT (WINAPI *Unadvise)(IReferenceClock *This,DWORD_PTR dwAdviseCookie);
-    END_INTERFACE
-  } IReferenceClockVtbl;
-  struct IReferenceClock {
-    CONST_VTBL struct IReferenceClockVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IReferenceClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IReferenceClock_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IReferenceClock_Release(This) (This)->lpVtbl->Release(This)
-#define IReferenceClock_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
-#define IReferenceClock_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
-#define IReferenceClock_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
-#define IReferenceClock_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
-#endif
-#endif
-  HRESULT WINAPI IReferenceClock_GetTime_Proxy(IReferenceClock *This,REFERENCE_TIME *pTime);
-  void __RPC_STUB IReferenceClock_GetTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IReferenceClock_AdviseTime_Proxy(IReferenceClock *This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie);
-  void __RPC_STUB IReferenceClock_AdviseTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IReferenceClock_AdvisePeriodic_Proxy(IReferenceClock *This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie);
-  void __RPC_STUB IReferenceClock_AdvisePeriodic_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IReferenceClock_Unadvise_Proxy(IReferenceClock *This,DWORD_PTR dwAdviseCookie);
-  void __RPC_STUB IReferenceClock_Unadvise_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IReferenceClock *PREFERENCECLOCK;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0125_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0125_v0_0_s_ifspec;
-#ifndef __IReferenceClock2_INTERFACE_DEFINED__
-#define __IReferenceClock2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IReferenceClock2;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IReferenceClock2 : public IReferenceClock {
-  };
-#else
-  typedef struct IReferenceClock2Vtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IReferenceClock2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IReferenceClock2 *This);
-      ULONG (WINAPI *Release)(IReferenceClock2 *This);
-      HRESULT (WINAPI *GetTime)(IReferenceClock2 *This,REFERENCE_TIME *pTime);
-      HRESULT (WINAPI *AdviseTime)(IReferenceClock2 *This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie);
-      HRESULT (WINAPI *AdvisePeriodic)(IReferenceClock2 *This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie);
-      HRESULT (WINAPI *Unadvise)(IReferenceClock2 *This,DWORD_PTR dwAdviseCookie);
-    END_INTERFACE
-  } IReferenceClock2Vtbl;
-  struct IReferenceClock2 {
-    CONST_VTBL struct IReferenceClock2Vtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
-#define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
-#define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
-#define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
-#define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
-#endif
-#endif
-#endif
-
-  typedef IReferenceClock2 *PREFERENCECLOCK2;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0126_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0126_v0_0_s_ifspec;
-#ifndef __IMediaSample_INTERFACE_DEFINED__
-#define __IMediaSample_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IMediaSample;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMediaSample : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetPointer(BYTE **ppBuffer) = 0;
-    virtual long WINAPI GetSize(void) = 0;
-    virtual HRESULT WINAPI GetTime(REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) = 0;
-    virtual HRESULT WINAPI SetTime(REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) = 0;
-    virtual HRESULT WINAPI IsSyncPoint(void) = 0;
-    virtual HRESULT WINAPI SetSyncPoint(WINBOOL bIsSyncPoint) = 0;
-    virtual HRESULT WINAPI IsPreroll(void) = 0;
-    virtual HRESULT WINAPI SetPreroll(WINBOOL bIsPreroll) = 0;
-    virtual long WINAPI GetActualDataLength(void) = 0;
-    virtual HRESULT WINAPI SetActualDataLength(long __MIDL_0010) = 0;
-    virtual HRESULT WINAPI GetMediaType(AM_MEDIA_TYPE **ppMediaType) = 0;
-    virtual HRESULT WINAPI SetMediaType(AM_MEDIA_TYPE *pMediaType) = 0;
-    virtual HRESULT WINAPI IsDiscontinuity(void) = 0;
-    virtual HRESULT WINAPI SetDiscontinuity(WINBOOL bDiscontinuity) = 0;
-    virtual HRESULT WINAPI GetMediaTime(LONGLONG *pTimeStart,LONGLONG *pTimeEnd) = 0;
-    virtual HRESULT WINAPI SetMediaTime(LONGLONG *pTimeStart,LONGLONG *pTimeEnd) = 0;
-  };
-#else
-  typedef struct IMediaSampleVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMediaSample *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMediaSample *This);
-      ULONG (WINAPI *Release)(IMediaSample *This);
-      HRESULT (WINAPI *GetPointer)(IMediaSample *This,BYTE **ppBuffer);
-      long (WINAPI *GetSize)(IMediaSample *This);
-      HRESULT (WINAPI *GetTime)(IMediaSample *This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd);
-      HRESULT (WINAPI *SetTime)(IMediaSample *This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd);
-      HRESULT (WINAPI *IsSyncPoint)(IMediaSample *This);
-      HRESULT (WINAPI *SetSyncPoint)(IMediaSample *This,WINBOOL bIsSyncPoint);
-      HRESULT (WINAPI *IsPreroll)(IMediaSample *This);
-      HRESULT (WINAPI *SetPreroll)(IMediaSample *This,WINBOOL bIsPreroll);
-      long (WINAPI *GetActualDataLength)(IMediaSample *This);
-      HRESULT (WINAPI *SetActualDataLength)(IMediaSample *This,long __MIDL_0010);
-      HRESULT (WINAPI *GetMediaType)(IMediaSample *This,AM_MEDIA_TYPE **ppMediaType);
-      HRESULT (WINAPI *SetMediaType)(IMediaSample *This,AM_MEDIA_TYPE *pMediaType);
-      HRESULT (WINAPI *IsDiscontinuity)(IMediaSample *This);
-      HRESULT (WINAPI *SetDiscontinuity)(IMediaSample *This,WINBOOL bDiscontinuity);
-      HRESULT (WINAPI *GetMediaTime)(IMediaSample *This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd);
-      HRESULT (WINAPI *SetMediaTime)(IMediaSample *This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd);
-    END_INTERFACE
-  } IMediaSampleVtbl;
-  struct IMediaSample {
-    CONST_VTBL struct IMediaSampleVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMediaSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMediaSample_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMediaSample_Release(This) (This)->lpVtbl->Release(This)
-#define IMediaSample_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
-#define IMediaSample_GetSize(This) (This)->lpVtbl->GetSize(This)
-#define IMediaSample_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
-#define IMediaSample_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
-#define IMediaSample_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
-#define IMediaSample_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
-#define IMediaSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
-#define IMediaSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
-#define IMediaSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
-#define IMediaSample_SetActualDataLength(This,__MIDL_0010) (This)->lpVtbl->SetActualDataLength(This,__MIDL_0010)
-#define IMediaSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
-#define IMediaSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
-#define IMediaSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
-#define IMediaSample_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
-#define IMediaSample_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
-#define IMediaSample_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
-#endif
-#endif
-  HRESULT WINAPI IMediaSample_GetPointer_Proxy(IMediaSample *This,BYTE **ppBuffer);
-  void __RPC_STUB IMediaSample_GetPointer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  long WINAPI IMediaSample_GetSize_Proxy(IMediaSample *This);
-  void __RPC_STUB IMediaSample_GetSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSample_GetTime_Proxy(IMediaSample *This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd);
-  void __RPC_STUB IMediaSample_GetTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSample_SetTime_Proxy(IMediaSample *This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd);
-  void __RPC_STUB IMediaSample_SetTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSample_IsSyncPoint_Proxy(IMediaSample *This);
-  void __RPC_STUB IMediaSample_IsSyncPoint_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSample_SetSyncPoint_Proxy(IMediaSample *This,WINBOOL bIsSyncPoint);
-  void __RPC_STUB IMediaSample_SetSyncPoint_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSample_IsPreroll_Proxy(IMediaSample *This);
-  void __RPC_STUB IMediaSample_IsPreroll_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSample_SetPreroll_Proxy(IMediaSample *This,WINBOOL bIsPreroll);
-  void __RPC_STUB IMediaSample_SetPreroll_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  long WINAPI IMediaSample_GetActualDataLength_Proxy(IMediaSample *This);
-  void __RPC_STUB IMediaSample_GetActualDataLength_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSample_SetActualDataLength_Proxy(IMediaSample *This,long __MIDL_0010);
-  void __RPC_STUB IMediaSample_SetActualDataLength_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSample_GetMediaType_Proxy(IMediaSample *This,AM_MEDIA_TYPE **ppMediaType);
-  void __RPC_STUB IMediaSample_GetMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSample_SetMediaType_Proxy(IMediaSample *This,AM_MEDIA_TYPE *pMediaType);
-  void __RPC_STUB IMediaSample_SetMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSample_IsDiscontinuity_Proxy(IMediaSample *This);
-  void __RPC_STUB IMediaSample_IsDiscontinuity_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSample_SetDiscontinuity_Proxy(IMediaSample *This,WINBOOL bDiscontinuity);
-  void __RPC_STUB IMediaSample_SetDiscontinuity_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSample_GetMediaTime_Proxy(IMediaSample *This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd);
-  void __RPC_STUB IMediaSample_GetMediaTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSample_SetMediaTime_Proxy(IMediaSample *This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd);
-  void __RPC_STUB IMediaSample_SetMediaTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IMediaSample *PMEDIASAMPLE;
-
-  enum tagAM_SAMPLE_PROPERTY_FLAGS {
-    AM_SAMPLE_SPLICEPOINT = 0x1,AM_SAMPLE_PREROLL = 0x2,AM_SAMPLE_DATADISCONTINUITY = 0x4,AM_SAMPLE_TYPECHANGED = 0x8,AM_SAMPLE_TIMEVALID = 0x10,
-    AM_SAMPLE_TIMEDISCONTINUITY = 0x40,AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,AM_SAMPLE_STOPVALID = 0x100,AM_SAMPLE_ENDOFSTREAM = 0x200,AM_STREAM_MEDIA = 0,
-    AM_STREAM_CONTROL = 1
-  };
-  typedef struct tagAM_SAMPLE2_PROPERTIES {
-    DWORD cbData;
-    DWORD dwTypeSpecificFlags;
-    DWORD dwSampleFlags;
-    LONG lActual;
-    REFERENCE_TIME tStart;
-    REFERENCE_TIME tStop;
-    DWORD dwStreamId;
-    AM_MEDIA_TYPE *pMediaType;
-    BYTE *pbBuffer;
-    LONG cbBuffer;
-  } AM_SAMPLE2_PROPERTIES;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0127_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0127_v0_0_s_ifspec;
-#ifndef __IMediaSample2_INTERFACE_DEFINED__
-#define __IMediaSample2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IMediaSample2;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMediaSample2 : public IMediaSample {
-  public:
-    virtual HRESULT WINAPI GetProperties(DWORD cbProperties,BYTE *pbProperties) = 0;
-    virtual HRESULT WINAPI SetProperties(DWORD cbProperties,const BYTE *pbProperties) = 0;
-  };
-#else
-  typedef struct IMediaSample2Vtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMediaSample2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMediaSample2 *This);
-      ULONG (WINAPI *Release)(IMediaSample2 *This);
-      HRESULT (WINAPI *GetPointer)(IMediaSample2 *This,BYTE **ppBuffer);
-      long (WINAPI *GetSize)(IMediaSample2 *This);
-      HRESULT (WINAPI *GetTime)(IMediaSample2 *This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd);
-      HRESULT (WINAPI *SetTime)(IMediaSample2 *This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd);
-      HRESULT (WINAPI *IsSyncPoint)(IMediaSample2 *This);
-      HRESULT (WINAPI *SetSyncPoint)(IMediaSample2 *This,WINBOOL bIsSyncPoint);
-      HRESULT (WINAPI *IsPreroll)(IMediaSample2 *This);
-      HRESULT (WINAPI *SetPreroll)(IMediaSample2 *This,WINBOOL bIsPreroll);
-      long (WINAPI *GetActualDataLength)(IMediaSample2 *This);
-      HRESULT (WINAPI *SetActualDataLength)(IMediaSample2 *This,long __MIDL_0010);
-      HRESULT (WINAPI *GetMediaType)(IMediaSample2 *This,AM_MEDIA_TYPE **ppMediaType);
-      HRESULT (WINAPI *SetMediaType)(IMediaSample2 *This,AM_MEDIA_TYPE *pMediaType);
-      HRESULT (WINAPI *IsDiscontinuity)(IMediaSample2 *This);
-      HRESULT (WINAPI *SetDiscontinuity)(IMediaSample2 *This,WINBOOL bDiscontinuity);
-      HRESULT (WINAPI *GetMediaTime)(IMediaSample2 *This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd);
-      HRESULT (WINAPI *SetMediaTime)(IMediaSample2 *This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd);
-      HRESULT (WINAPI *GetProperties)(IMediaSample2 *This,DWORD cbProperties,BYTE *pbProperties);
-      HRESULT (WINAPI *SetProperties)(IMediaSample2 *This,DWORD cbProperties,const BYTE *pbProperties);
-    END_INTERFACE
-  } IMediaSample2Vtbl;
-  struct IMediaSample2 {
-    CONST_VTBL struct IMediaSample2Vtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMediaSample2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMediaSample2_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMediaSample2_Release(This) (This)->lpVtbl->Release(This)
-#define IMediaSample2_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
-#define IMediaSample2_GetSize(This) (This)->lpVtbl->GetSize(This)
-#define IMediaSample2_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
-#define IMediaSample2_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
-#define IMediaSample2_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
-#define IMediaSample2_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
-#define IMediaSample2_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
-#define IMediaSample2_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
-#define IMediaSample2_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
-#define IMediaSample2_SetActualDataLength(This,__MIDL_0010) (This)->lpVtbl->SetActualDataLength(This,__MIDL_0010)
-#define IMediaSample2_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
-#define IMediaSample2_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
-#define IMediaSample2_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
-#define IMediaSample2_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
-#define IMediaSample2_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
-#define IMediaSample2_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
-#define IMediaSample2_GetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->GetProperties(This,cbProperties,pbProperties)
-#define IMediaSample2_SetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->SetProperties(This,cbProperties,pbProperties)
-#endif
-#endif
-  HRESULT WINAPI IMediaSample2_GetProperties_Proxy(IMediaSample2 *This,DWORD cbProperties,BYTE *pbProperties);
-  void __RPC_STUB IMediaSample2_GetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSample2_SetProperties_Proxy(IMediaSample2 *This,DWORD cbProperties,const BYTE *pbProperties);
-  void __RPC_STUB IMediaSample2_SetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IMediaSample2 *PMEDIASAMPLE2;
-
-#define AM_GBF_PREVFRAMESKIPPED 1
-#define AM_GBF_NOTASYNCPOINT 2
-#define AM_GBF_NOWAIT 4
-#define AM_GBF_NODDSURFACELOCK 8
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0128_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0128_v0_0_s_ifspec;
-#ifndef __IMemAllocator_INTERFACE_DEFINED__
-#define __IMemAllocator_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IMemAllocator;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMemAllocator : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetProperties(ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) = 0;
-    virtual HRESULT WINAPI GetProperties(ALLOCATOR_PROPERTIES *pProps) = 0;
-    virtual HRESULT WINAPI Commit(void) = 0;
-    virtual HRESULT WINAPI Decommit(void) = 0;
-    virtual HRESULT WINAPI GetBuffer(IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) = 0;
-    virtual HRESULT WINAPI ReleaseBuffer(IMediaSample *pBuffer) = 0;
-  };
-#else
-  typedef struct IMemAllocatorVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMemAllocator *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMemAllocator *This);
-      ULONG (WINAPI *Release)(IMemAllocator *This);
-      HRESULT (WINAPI *SetProperties)(IMemAllocator *This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual);
-      HRESULT (WINAPI *GetProperties)(IMemAllocator *This,ALLOCATOR_PROPERTIES *pProps);
-      HRESULT (WINAPI *Commit)(IMemAllocator *This);
-      HRESULT (WINAPI *Decommit)(IMemAllocator *This);
-      HRESULT (WINAPI *GetBuffer)(IMemAllocator *This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags);
-      HRESULT (WINAPI *ReleaseBuffer)(IMemAllocator *This,IMediaSample *pBuffer);
-    END_INTERFACE
-  } IMemAllocatorVtbl;
-  struct IMemAllocator {
-    CONST_VTBL struct IMemAllocatorVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMemAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMemAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMemAllocator_Release(This) (This)->lpVtbl->Release(This)
-#define IMemAllocator_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
-#define IMemAllocator_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
-#define IMemAllocator_Commit(This) (This)->lpVtbl->Commit(This)
-#define IMemAllocator_Decommit(This) (This)->lpVtbl->Decommit(This)
-#define IMemAllocator_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
-#define IMemAllocator_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
-#endif
-#endif
-  HRESULT WINAPI IMemAllocator_SetProperties_Proxy(IMemAllocator *This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual);
-  void __RPC_STUB IMemAllocator_SetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMemAllocator_GetProperties_Proxy(IMemAllocator *This,ALLOCATOR_PROPERTIES *pProps);
-  void __RPC_STUB IMemAllocator_GetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMemAllocator_Commit_Proxy(IMemAllocator *This);
-  void __RPC_STUB IMemAllocator_Commit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMemAllocator_Decommit_Proxy(IMemAllocator *This);
-  void __RPC_STUB IMemAllocator_Decommit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMemAllocator_GetBuffer_Proxy(IMemAllocator *This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags);
-  void __RPC_STUB IMemAllocator_GetBuffer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMemAllocator_ReleaseBuffer_Proxy(IMemAllocator *This,IMediaSample *pBuffer);
-  void __RPC_STUB IMemAllocator_ReleaseBuffer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IMemAllocator *PMEMALLOCATOR;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0129_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0129_v0_0_s_ifspec;
-#ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
-#define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IMemAllocatorCallbackTemp;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMemAllocatorCallbackTemp : public IMemAllocator {
-  public:
-    virtual HRESULT WINAPI SetNotify(IMemAllocatorNotifyCallbackTemp *pNotify) = 0;
-    virtual HRESULT WINAPI GetFreeCount(LONG *plBuffersFree) = 0;
-  };
-#else
-  typedef struct IMemAllocatorCallbackTempVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMemAllocatorCallbackTemp *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMemAllocatorCallbackTemp *This);
-      ULONG (WINAPI *Release)(IMemAllocatorCallbackTemp *This);
-      HRESULT (WINAPI *SetProperties)(IMemAllocatorCallbackTemp *This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual);
-      HRESULT (WINAPI *GetProperties)(IMemAllocatorCallbackTemp *This,ALLOCATOR_PROPERTIES *pProps);
-      HRESULT (WINAPI *Commit)(IMemAllocatorCallbackTemp *This);
-      HRESULT (WINAPI *Decommit)(IMemAllocatorCallbackTemp *This);
-      HRESULT (WINAPI *GetBuffer)(IMemAllocatorCallbackTemp *This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags);
-      HRESULT (WINAPI *ReleaseBuffer)(IMemAllocatorCallbackTemp *This,IMediaSample *pBuffer);
-      HRESULT (WINAPI *SetNotify)(IMemAllocatorCallbackTemp *This,IMemAllocatorNotifyCallbackTemp *pNotify);
-      HRESULT (WINAPI *GetFreeCount)(IMemAllocatorCallbackTemp *This,LONG *plBuffersFree);
-    END_INTERFACE
-  } IMemAllocatorCallbackTempVtbl;
-  struct IMemAllocatorCallbackTemp {
-    CONST_VTBL struct IMemAllocatorCallbackTempVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMemAllocatorCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMemAllocatorCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMemAllocatorCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
-#define IMemAllocatorCallbackTemp_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
-#define IMemAllocatorCallbackTemp_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
-#define IMemAllocatorCallbackTemp_Commit(This) (This)->lpVtbl->Commit(This)
-#define IMemAllocatorCallbackTemp_Decommit(This) (This)->lpVtbl->Decommit(This)
-#define IMemAllocatorCallbackTemp_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
-#define IMemAllocatorCallbackTemp_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
-#define IMemAllocatorCallbackTemp_SetNotify(This,pNotify) (This)->lpVtbl->SetNotify(This,pNotify)
-#define IMemAllocatorCallbackTemp_GetFreeCount(This,plBuffersFree) (This)->lpVtbl->GetFreeCount(This,plBuffersFree)
-#endif
-#endif
-  HRESULT WINAPI IMemAllocatorCallbackTemp_SetNotify_Proxy(IMemAllocatorCallbackTemp *This,IMemAllocatorNotifyCallbackTemp *pNotify);
-  void __RPC_STUB IMemAllocatorCallbackTemp_SetNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMemAllocatorCallbackTemp_GetFreeCount_Proxy(IMemAllocatorCallbackTemp *This,LONG *plBuffersFree);
-  void __RPC_STUB IMemAllocatorCallbackTemp_GetFreeCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
-#define __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IMemAllocatorNotifyCallbackTemp;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMemAllocatorNotifyCallbackTemp : public IUnknown {
-  public:
-    virtual HRESULT WINAPI NotifyRelease(void) = 0;
-  };
-#else
-  typedef struct IMemAllocatorNotifyCallbackTempVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMemAllocatorNotifyCallbackTemp *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMemAllocatorNotifyCallbackTemp *This);
-      ULONG (WINAPI *Release)(IMemAllocatorNotifyCallbackTemp *This);
-      HRESULT (WINAPI *NotifyRelease)(IMemAllocatorNotifyCallbackTemp *This);
-    END_INTERFACE
-  } IMemAllocatorNotifyCallbackTempVtbl;
-  struct IMemAllocatorNotifyCallbackTemp {
-    CONST_VTBL struct IMemAllocatorNotifyCallbackTempVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMemAllocatorNotifyCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMemAllocatorNotifyCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMemAllocatorNotifyCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
-#define IMemAllocatorNotifyCallbackTemp_NotifyRelease(This) (This)->lpVtbl->NotifyRelease(This)
-#endif
-#endif
-  HRESULT WINAPI IMemAllocatorNotifyCallbackTemp_NotifyRelease_Proxy(IMemAllocatorNotifyCallbackTemp *This);
-  void __RPC_STUB IMemAllocatorNotifyCallbackTemp_NotifyRelease_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IMemInputPin_INTERFACE_DEFINED__
-#define __IMemInputPin_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IMemInputPin;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMemInputPin : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetAllocator(IMemAllocator **ppAllocator) = 0;
-    virtual HRESULT WINAPI NotifyAllocator(IMemAllocator *pAllocator,WINBOOL bReadOnly) = 0;
-    virtual HRESULT WINAPI GetAllocatorRequirements(ALLOCATOR_PROPERTIES *pProps) = 0;
-    virtual HRESULT WINAPI Receive(IMediaSample *pSample) = 0;
-    virtual HRESULT WINAPI ReceiveMultiple(IMediaSample **pSamples,long nSamples,long *nSamplesProcessed) = 0;
-    virtual HRESULT WINAPI ReceiveCanBlock(void) = 0;
-  };
-#else
-  typedef struct IMemInputPinVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMemInputPin *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMemInputPin *This);
-      ULONG (WINAPI *Release)(IMemInputPin *This);
-      HRESULT (WINAPI *GetAllocator)(IMemInputPin *This,IMemAllocator **ppAllocator);
-      HRESULT (WINAPI *NotifyAllocator)(IMemInputPin *This,IMemAllocator *pAllocator,WINBOOL bReadOnly);
-      HRESULT (WINAPI *GetAllocatorRequirements)(IMemInputPin *This,ALLOCATOR_PROPERTIES *pProps);
-      HRESULT (WINAPI *Receive)(IMemInputPin *This,IMediaSample *pSample);
-      HRESULT (WINAPI *ReceiveMultiple)(IMemInputPin *This,IMediaSample **pSamples,long nSamples,long *nSamplesProcessed);
-      HRESULT (WINAPI *ReceiveCanBlock)(IMemInputPin *This);
-    END_INTERFACE
-  } IMemInputPinVtbl;
-  struct IMemInputPin {
-    CONST_VTBL struct IMemInputPinVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMemInputPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMemInputPin_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMemInputPin_Release(This) (This)->lpVtbl->Release(This)
-#define IMemInputPin_GetAllocator(This,ppAllocator) (This)->lpVtbl->GetAllocator(This,ppAllocator)
-#define IMemInputPin_NotifyAllocator(This,pAllocator,bReadOnly) (This)->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly)
-#define IMemInputPin_GetAllocatorRequirements(This,pProps) (This)->lpVtbl->GetAllocatorRequirements(This,pProps)
-#define IMemInputPin_Receive(This,pSample) (This)->lpVtbl->Receive(This,pSample)
-#define IMemInputPin_ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed) (This)->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed)
-#define IMemInputPin_ReceiveCanBlock(This) (This)->lpVtbl->ReceiveCanBlock(This)
-#endif
-#endif
-  HRESULT WINAPI IMemInputPin_GetAllocator_Proxy(IMemInputPin *This,IMemAllocator **ppAllocator);
-  void __RPC_STUB IMemInputPin_GetAllocator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMemInputPin_NotifyAllocator_Proxy(IMemInputPin *This,IMemAllocator *pAllocator,WINBOOL bReadOnly);
-  void __RPC_STUB IMemInputPin_NotifyAllocator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMemInputPin_GetAllocatorRequirements_Proxy(IMemInputPin *This,ALLOCATOR_PROPERTIES *pProps);
-  void __RPC_STUB IMemInputPin_GetAllocatorRequirements_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMemInputPin_Receive_Proxy(IMemInputPin *This,IMediaSample *pSample);
-  void __RPC_STUB IMemInputPin_Receive_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMemInputPin_ReceiveMultiple_Proxy(IMemInputPin *This,IMediaSample **pSamples,long nSamples,long *nSamplesProcessed);
-  void __RPC_STUB IMemInputPin_ReceiveMultiple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMemInputPin_ReceiveCanBlock_Proxy(IMemInputPin *This);
-  void __RPC_STUB IMemInputPin_ReceiveCanBlock_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IMemInputPin *PMEMINPUTPIN;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0132_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0132_v0_0_s_ifspec;
-#ifndef __IAMovieSetup_INTERFACE_DEFINED__
-#define __IAMovieSetup_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMovieSetup;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMovieSetup : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Register(void) = 0;
-    virtual HRESULT WINAPI Unregister(void) = 0;
-  };
-#else
-  typedef struct IAMovieSetupVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMovieSetup *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMovieSetup *This);
-      ULONG (WINAPI *Release)(IAMovieSetup *This);
-      HRESULT (WINAPI *Register)(IAMovieSetup *This);
-      HRESULT (WINAPI *Unregister)(IAMovieSetup *This);
-    END_INTERFACE
-  } IAMovieSetupVtbl;
-  struct IAMovieSetup {
-    CONST_VTBL struct IAMovieSetupVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMovieSetup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMovieSetup_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMovieSetup_Release(This) (This)->lpVtbl->Release(This)
-#define IAMovieSetup_Register(This) (This)->lpVtbl->Register(This)
-#define IAMovieSetup_Unregister(This) (This)->lpVtbl->Unregister(This)
-#endif
-#endif
-  HRESULT WINAPI IAMovieSetup_Register_Proxy(IAMovieSetup *This);
-  void __RPC_STUB IAMovieSetup_Register_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMovieSetup_Unregister_Proxy(IAMovieSetup *This);
-  void __RPC_STUB IAMovieSetup_Unregister_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IAMovieSetup *PAMOVIESETUP;
-
-  typedef enum AM_SEEKING_SeekingFlags {
-    AM_SEEKING_NoPositioning = 0,AM_SEEKING_AbsolutePositioning = 0x1,AM_SEEKING_RelativePositioning = 0x2,AM_SEEKING_IncrementalPositioning = 0x3,
-    AM_SEEKING_PositioningBitsMask = 0x3,AM_SEEKING_SeekToKeyFrame = 0x4,AM_SEEKING_ReturnTime = 0x8,AM_SEEKING_Segment = 0x10,AM_SEEKING_NoFlush = 0x20
-  } AM_SEEKING_SEEKING_FLAGS;
-
-  typedef enum AM_SEEKING_SeekingCapabilities {
-    AM_SEEKING_CanSeekAbsolute = 0x1,AM_SEEKING_CanSeekForwards = 0x2,AM_SEEKING_CanSeekBackwards = 0x4,AM_SEEKING_CanGetCurrentPos = 0x8,
-    AM_SEEKING_CanGetStopPos = 0x10,AM_SEEKING_CanGetDuration = 0x20,AM_SEEKING_CanPlayBackwards = 0x40,AM_SEEKING_CanDoSegments = 0x80,
-    AM_SEEKING_Source = 0x100
-  } AM_SEEKING_SEEKING_CAPABILITIES;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0133_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0133_v0_0_s_ifspec;
-#ifndef __IMediaSeeking_INTERFACE_DEFINED__
-#define __IMediaSeeking_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IMediaSeeking;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMediaSeeking : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetCapabilities(DWORD *pCapabilities) = 0;
-    virtual HRESULT WINAPI CheckCapabilities(DWORD *pCapabilities) = 0;
-    virtual HRESULT WINAPI IsFormatSupported(const GUID *pFormat) = 0;
-    virtual HRESULT WINAPI QueryPreferredFormat(GUID *pFormat) = 0;
-    virtual HRESULT WINAPI GetTimeFormat(GUID *pFormat) = 0;
-    virtual HRESULT WINAPI IsUsingTimeFormat(const GUID *pFormat) = 0;
-    virtual HRESULT WINAPI SetTimeFormat(const GUID *pFormat) = 0;
-    virtual HRESULT WINAPI GetDuration(LONGLONG *pDuration) = 0;
-    virtual HRESULT WINAPI GetStopPosition(LONGLONG *pStop) = 0;
-    virtual HRESULT WINAPI GetCurrentPosition(LONGLONG *pCurrent) = 0;
-    virtual HRESULT WINAPI ConvertTimeFormat(LONGLONG *pTarget,const GUID *pTargetFormat,LONGLONG Source,const GUID *pSourceFormat) = 0;
-    virtual HRESULT WINAPI SetPositions(LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags) = 0;
-    virtual HRESULT WINAPI GetPositions(LONGLONG *pCurrent,LONGLONG *pStop) = 0;
-    virtual HRESULT WINAPI GetAvailable(LONGLONG *pEarliest,LONGLONG *pLatest) = 0;
-    virtual HRESULT WINAPI SetRate(double dRate) = 0;
-    virtual HRESULT WINAPI GetRate(double *pdRate) = 0;
-    virtual HRESULT WINAPI GetPreroll(LONGLONG *pllPreroll) = 0;
-  };
-#else
-  typedef struct IMediaSeekingVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMediaSeeking *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMediaSeeking *This);
-      ULONG (WINAPI *Release)(IMediaSeeking *This);
-      HRESULT (WINAPI *GetCapabilities)(IMediaSeeking *This,DWORD *pCapabilities);
-      HRESULT (WINAPI *CheckCapabilities)(IMediaSeeking *This,DWORD *pCapabilities);
-      HRESULT (WINAPI *IsFormatSupported)(IMediaSeeking *This,const GUID *pFormat);
-      HRESULT (WINAPI *QueryPreferredFormat)(IMediaSeeking *This,GUID *pFormat);
-      HRESULT (WINAPI *GetTimeFormat)(IMediaSeeking *This,GUID *pFormat);
-      HRESULT (WINAPI *IsUsingTimeFormat)(IMediaSeeking *This,const GUID *pFormat);
-      HRESULT (WINAPI *SetTimeFormat)(IMediaSeeking *This,const GUID *pFormat);
-      HRESULT (WINAPI *GetDuration)(IMediaSeeking *This,LONGLONG *pDuration);
-      HRESULT (WINAPI *GetStopPosition)(IMediaSeeking *This,LONGLONG *pStop);
-      HRESULT (WINAPI *GetCurrentPosition)(IMediaSeeking *This,LONGLONG *pCurrent);
-      HRESULT (WINAPI *ConvertTimeFormat)(IMediaSeeking *This,LONGLONG *pTarget,const GUID *pTargetFormat,LONGLONG Source,const GUID *pSourceFormat);
-      HRESULT (WINAPI *SetPositions)(IMediaSeeking *This,LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags);
-      HRESULT (WINAPI *GetPositions)(IMediaSeeking *This,LONGLONG *pCurrent,LONGLONG *pStop);
-      HRESULT (WINAPI *GetAvailable)(IMediaSeeking *This,LONGLONG *pEarliest,LONGLONG *pLatest);
-      HRESULT (WINAPI *SetRate)(IMediaSeeking *This,double dRate);
-      HRESULT (WINAPI *GetRate)(IMediaSeeking *This,double *pdRate);
-      HRESULT (WINAPI *GetPreroll)(IMediaSeeking *This,LONGLONG *pllPreroll);
-    END_INTERFACE
-  } IMediaSeekingVtbl;
-  struct IMediaSeeking {
-    CONST_VTBL struct IMediaSeekingVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMediaSeeking_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMediaSeeking_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMediaSeeking_Release(This) (This)->lpVtbl->Release(This)
-#define IMediaSeeking_GetCapabilities(This,pCapabilities) (This)->lpVtbl->GetCapabilities(This,pCapabilities)
-#define IMediaSeeking_CheckCapabilities(This,pCapabilities) (This)->lpVtbl->CheckCapabilities(This,pCapabilities)
-#define IMediaSeeking_IsFormatSupported(This,pFormat) (This)->lpVtbl->IsFormatSupported(This,pFormat)
-#define IMediaSeeking_QueryPreferredFormat(This,pFormat) (This)->lpVtbl->QueryPreferredFormat(This,pFormat)
-#define IMediaSeeking_GetTimeFormat(This,pFormat) (This)->lpVtbl->GetTimeFormat(This,pFormat)
-#define IMediaSeeking_IsUsingTimeFormat(This,pFormat) (This)->lpVtbl->IsUsingTimeFormat(This,pFormat)
-#define IMediaSeeking_SetTimeFormat(This,pFormat) (This)->lpVtbl->SetTimeFormat(This,pFormat)
-#define IMediaSeeking_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration)
-#define IMediaSeeking_GetStopPosition(This,pStop) (This)->lpVtbl->GetStopPosition(This,pStop)
-#define IMediaSeeking_GetCurrentPosition(This,pCurrent) (This)->lpVtbl->GetCurrentPosition(This,pCurrent)
-#define IMediaSeeking_ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat) (This)->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat)
-#define IMediaSeeking_SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags) (This)->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags)
-#define IMediaSeeking_GetPositions(This,pCurrent,pStop) (This)->lpVtbl->GetPositions(This,pCurrent,pStop)
-#define IMediaSeeking_GetAvailable(This,pEarliest,pLatest) (This)->lpVtbl->GetAvailable(This,pEarliest,pLatest)
-#define IMediaSeeking_SetRate(This,dRate) (This)->lpVtbl->SetRate(This,dRate)
-#define IMediaSeeking_GetRate(This,pdRate) (This)->lpVtbl->GetRate(This,pdRate)
-#define IMediaSeeking_GetPreroll(This,pllPreroll) (This)->lpVtbl->GetPreroll(This,pllPreroll)
-#endif
-#endif
-  HRESULT WINAPI IMediaSeeking_GetCapabilities_Proxy(IMediaSeeking *This,DWORD *pCapabilities);
-  void __RPC_STUB IMediaSeeking_GetCapabilities_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_CheckCapabilities_Proxy(IMediaSeeking *This,DWORD *pCapabilities);
-  void __RPC_STUB IMediaSeeking_CheckCapabilities_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_IsFormatSupported_Proxy(IMediaSeeking *This,const GUID *pFormat);
-  void __RPC_STUB IMediaSeeking_IsFormatSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_QueryPreferredFormat_Proxy(IMediaSeeking *This,GUID *pFormat);
-  void __RPC_STUB IMediaSeeking_QueryPreferredFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_GetTimeFormat_Proxy(IMediaSeeking *This,GUID *pFormat);
-  void __RPC_STUB IMediaSeeking_GetTimeFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_IsUsingTimeFormat_Proxy(IMediaSeeking *This,const GUID *pFormat);
-  void __RPC_STUB IMediaSeeking_IsUsingTimeFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_SetTimeFormat_Proxy(IMediaSeeking *This,const GUID *pFormat);
-  void __RPC_STUB IMediaSeeking_SetTimeFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_GetDuration_Proxy(IMediaSeeking *This,LONGLONG *pDuration);
-  void __RPC_STUB IMediaSeeking_GetDuration_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_GetStopPosition_Proxy(IMediaSeeking *This,LONGLONG *pStop);
-  void __RPC_STUB IMediaSeeking_GetStopPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_GetCurrentPosition_Proxy(IMediaSeeking *This,LONGLONG *pCurrent);
-  void __RPC_STUB IMediaSeeking_GetCurrentPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_ConvertTimeFormat_Proxy(IMediaSeeking *This,LONGLONG *pTarget,const GUID *pTargetFormat,LONGLONG Source,const GUID *pSourceFormat);
-  void __RPC_STUB IMediaSeeking_ConvertTimeFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_SetPositions_Proxy(IMediaSeeking *This,LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags);
-  void __RPC_STUB IMediaSeeking_SetPositions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_GetPositions_Proxy(IMediaSeeking *This,LONGLONG *pCurrent,LONGLONG *pStop);
-  void __RPC_STUB IMediaSeeking_GetPositions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_GetAvailable_Proxy(IMediaSeeking *This,LONGLONG *pEarliest,LONGLONG *pLatest);
-  void __RPC_STUB IMediaSeeking_GetAvailable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_SetRate_Proxy(IMediaSeeking *This,double dRate);
-  void __RPC_STUB IMediaSeeking_SetRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_GetRate_Proxy(IMediaSeeking *This,double *pdRate);
-  void __RPC_STUB IMediaSeeking_GetRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMediaSeeking_GetPreroll_Proxy(IMediaSeeking *This,LONGLONG *pllPreroll);
-  void __RPC_STUB IMediaSeeking_GetPreroll_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IMediaSeeking *PMEDIASEEKING;
-
-  enum tagAM_MEDIAEVENT_FLAGS {
-    AM_MEDIAEVENT_NONOTIFY = 0x01
-  };
-
-  typedef struct __MIDL___MIDL_itf_strmif_0134_0001 {
-    CLSID Clsid;
-    LPWSTR Name;
-  } REGFILTER;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0134_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0134_v0_0_s_ifspec;
-#ifndef __IEnumRegFilters_INTERFACE_DEFINED__
-#define __IEnumRegFilters_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IEnumRegFilters;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IEnumRegFilters : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Next(ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched) = 0;
-    virtual HRESULT WINAPI Skip(ULONG cFilters) = 0;
-    virtual HRESULT WINAPI Reset(void) = 0;
-    virtual HRESULT WINAPI Clone(IEnumRegFilters **ppEnum) = 0;
-  };
-#else
-  typedef struct IEnumRegFiltersVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IEnumRegFilters *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IEnumRegFilters *This);
-      ULONG (WINAPI *Release)(IEnumRegFilters *This);
-      HRESULT (WINAPI *Next)(IEnumRegFilters *This,ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched);
-      HRESULT (WINAPI *Skip)(IEnumRegFilters *This,ULONG cFilters);
-      HRESULT (WINAPI *Reset)(IEnumRegFilters *This);
-      HRESULT (WINAPI *Clone)(IEnumRegFilters *This,IEnumRegFilters **ppEnum);
-    END_INTERFACE
-  } IEnumRegFiltersVtbl;
-  struct IEnumRegFilters {
-    CONST_VTBL struct IEnumRegFiltersVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IEnumRegFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IEnumRegFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IEnumRegFilters_Release(This) (This)->lpVtbl->Release(This)
-#define IEnumRegFilters_Next(This,cFilters,apRegFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched)
-#define IEnumRegFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
-#define IEnumRegFilters_Reset(This) (This)->lpVtbl->Reset(This)
-#define IEnumRegFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
-#endif
-#endif
-  HRESULT WINAPI IEnumRegFilters_Next_Proxy(IEnumRegFilters *This,ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched);
-  void __RPC_STUB IEnumRegFilters_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumRegFilters_Skip_Proxy(IEnumRegFilters *This,ULONG cFilters);
-  void __RPC_STUB IEnumRegFilters_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumRegFilters_Reset_Proxy(IEnumRegFilters *This);
-  void __RPC_STUB IEnumRegFilters_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumRegFilters_Clone_Proxy(IEnumRegFilters *This,IEnumRegFilters **ppEnum);
-  void __RPC_STUB IEnumRegFilters_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IEnumRegFilters *PENUMREGFILTERS;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0136_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0136_v0_0_s_ifspec;
-#ifndef __IFilterMapper_INTERFACE_DEFINED__
-#define __IFilterMapper_INTERFACE_DEFINED__
-  enum __MIDL_IFilterMapper_0001 {
-    MERIT_PREFERRED = 0x800000,MERIT_NORMAL = 0x600000,MERIT_UNLIKELY = 0x400000,MERIT_DO_NOT_USE = 0x200000,MERIT_SW_COMPRESSOR = 0x100000,
-    MERIT_HW_COMPRESSOR = 0x100050
-  };
-  EXTERN_C const IID IID_IFilterMapper;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IFilterMapper : public IUnknown {
-  public:
-    virtual HRESULT WINAPI RegisterFilter(CLSID clsid,LPCWSTR Name,DWORD dwMerit) = 0;
-    virtual HRESULT WINAPI RegisterFilterInstance(CLSID clsid,LPCWSTR Name,CLSID *MRId) = 0;
-    virtual HRESULT WINAPI RegisterPin(CLSID Filter,LPCWSTR Name,WINBOOL bRendered,WINBOOL bOutput,WINBOOL bZero,WINBOOL bMany,CLSID ConnectsToFilter,LPCWSTR ConnectsToPin) = 0;
-    virtual HRESULT WINAPI RegisterPinType(CLSID clsFilter,LPCWSTR strName,CLSID clsMajorType,CLSID clsSubType) = 0;
-    virtual HRESULT WINAPI UnregisterFilter(CLSID Filter) = 0;
-    virtual HRESULT WINAPI UnregisterFilterInstance(CLSID MRId) = 0;
-    virtual HRESULT WINAPI UnregisterPin(CLSID Filter,LPCWSTR Name) = 0;
-    virtual HRESULT WINAPI EnumMatchingFilters(IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOututNeeded,CLSID clsOutMaj,CLSID clsOutSub) = 0;
-  };
-#else
-  typedef struct IFilterMapperVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IFilterMapper *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IFilterMapper *This);
-      ULONG (WINAPI *Release)(IFilterMapper *This);
-      HRESULT (WINAPI *RegisterFilter)(IFilterMapper *This,CLSID clsid,LPCWSTR Name,DWORD dwMerit);
-      HRESULT (WINAPI *RegisterFilterInstance)(IFilterMapper *This,CLSID clsid,LPCWSTR Name,CLSID *MRId);
-      HRESULT (WINAPI *RegisterPin)(IFilterMapper *This,CLSID Filter,LPCWSTR Name,WINBOOL bRendered,WINBOOL bOutput,WINBOOL bZero,WINBOOL bMany,CLSID ConnectsToFilter,LPCWSTR ConnectsToPin);
-      HRESULT (WINAPI *RegisterPinType)(IFilterMapper *This,CLSID clsFilter,LPCWSTR strName,CLSID clsMajorType,CLSID clsSubType);
-      HRESULT (WINAPI *UnregisterFilter)(IFilterMapper *This,CLSID Filter);
-      HRESULT (WINAPI *UnregisterFilterInstance)(IFilterMapper *This,CLSID MRId);
-      HRESULT (WINAPI *UnregisterPin)(IFilterMapper *This,CLSID Filter,LPCWSTR Name);
-      HRESULT (WINAPI *EnumMatchingFilters)(IFilterMapper *This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOututNeeded,CLSID clsOutMaj,CLSID clsOutSub);
-    END_INTERFACE
-  } IFilterMapperVtbl;
-  struct IFilterMapper {
-    CONST_VTBL struct IFilterMapperVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IFilterMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFilterMapper_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFilterMapper_Release(This) (This)->lpVtbl->Release(This)
-#define IFilterMapper_RegisterFilter(This,clsid,Name,dwMerit) (This)->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit)
-#define IFilterMapper_RegisterFilterInstance(This,clsid,Name,MRId) (This)->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId)
-#define IFilterMapper_RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin) (This)->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin)
-#define IFilterMapper_RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType) (This)->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType)
-#define IFilterMapper_UnregisterFilter(This,Filter) (This)->lpVtbl->UnregisterFilter(This,Filter)
-#define IFilterMapper_UnregisterFilterInstance(This,MRId) (This)->lpVtbl->UnregisterFilterInstance(This,MRId)
-#define IFilterMapper_UnregisterPin(This,Filter,Name) (This)->lpVtbl->UnregisterPin(This,Filter,Name)
-#define IFilterMapper_EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub)
-#endif
-#endif
-  HRESULT WINAPI IFilterMapper_RegisterFilter_Proxy(IFilterMapper *This,CLSID clsid,LPCWSTR Name,DWORD dwMerit);
-  void __RPC_STUB IFilterMapper_RegisterFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterMapper_RegisterFilterInstance_Proxy(IFilterMapper *This,CLSID clsid,LPCWSTR Name,CLSID *MRId);
-  void __RPC_STUB IFilterMapper_RegisterFilterInstance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterMapper_RegisterPin_Proxy(IFilterMapper *This,CLSID Filter,LPCWSTR Name,WINBOOL bRendered,WINBOOL bOutput,WINBOOL bZero,WINBOOL bMany,CLSID ConnectsToFilter,LPCWSTR ConnectsToPin);
-  void __RPC_STUB IFilterMapper_RegisterPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterMapper_RegisterPinType_Proxy(IFilterMapper *This,CLSID clsFilter,LPCWSTR strName,CLSID clsMajorType,CLSID clsSubType);
-  void __RPC_STUB IFilterMapper_RegisterPinType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterMapper_UnregisterFilter_Proxy(IFilterMapper *This,CLSID Filter);
-  void __RPC_STUB IFilterMapper_UnregisterFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterMapper_UnregisterFilterInstance_Proxy(IFilterMapper *This,CLSID MRId);
-  void __RPC_STUB IFilterMapper_UnregisterFilterInstance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterMapper_UnregisterPin_Proxy(IFilterMapper *This,CLSID Filter,LPCWSTR Name);
-  void __RPC_STUB IFilterMapper_UnregisterPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterMapper_EnumMatchingFilters_Proxy(IFilterMapper *This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOututNeeded,CLSID clsOutMaj,CLSID clsOutSub);
-  void __RPC_STUB IFilterMapper_EnumMatchingFilters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef struct __MIDL___MIDL_itf_strmif_0138_0001 {
-    const CLSID *clsMajorType;
-    const CLSID *clsMinorType;
-  } REGPINTYPES;
-
-  typedef struct __MIDL___MIDL_itf_strmif_0138_0002 {
-    LPWSTR strName;
-    WINBOOL bRendered;
-    WINBOOL bOutput;
-    WINBOOL bZero;
-    WINBOOL bMany;
-    const CLSID *clsConnectsToFilter;
-    const WCHAR *strConnectsToPin;
-    UINT nMediaTypes;
-    const REGPINTYPES *lpMediaType;
-  } REGFILTERPINS;
-
-  typedef struct __MIDL___MIDL_itf_strmif_0138_0003 {
-    CLSID clsMedium;
-    DWORD dw1;
-    DWORD dw2;
-  } REGPINMEDIUM;
-
-  enum __MIDL___MIDL_itf_strmif_0138_0004 {
-    REG_PINFLAG_B_ZERO = 0x1,REG_PINFLAG_B_RENDERER = 0x2,REG_PINFLAG_B_MANY = 0x4,REG_PINFLAG_B_OUTPUT = 0x8
-  };
-  typedef struct __MIDL___MIDL_itf_strmif_0138_0005 {
-    DWORD dwFlags;
-    UINT cInstances;
-    UINT nMediaTypes;
-    const REGPINTYPES *lpMediaType;
-    UINT nMediums;
-    const REGPINMEDIUM *lpMedium;
-    const CLSID *clsPinCategory;
-  } REGFILTERPINS2;
-
-  typedef struct __MIDL___MIDL_itf_strmif_0138_0006 {
-    DWORD dwVersion;
-    DWORD dwMerit;
-    union {
-      struct {
-    ULONG cPins;
-    const REGFILTERPINS *rgPins;
-      };
-      struct {
-    ULONG cPins2;
-    const REGFILTERPINS2 *rgPins2;
-      };
-    };
-  } REGFILTER2;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0138_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0138_v0_0_s_ifspec;
-#ifndef __IFilterMapper2_INTERFACE_DEFINED__
-#define __IFilterMapper2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IFilterMapper2;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IFilterMapper2 : public IUnknown {
-  public:
-    virtual HRESULT WINAPI CreateCategory(REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) = 0;
-    virtual HRESULT WINAPI UnregisterFilter(const CLSID *pclsidCategory,const OLECHAR *szInstance,REFCLSID Filter) = 0;
-    virtual HRESULT WINAPI RegisterFilter(REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,const OLECHAR *szInstance,const REGFILTER2 *prf2) = 0;
-    virtual HRESULT WINAPI EnumMatchingFilters(IEnumMoniker **ppEnum,DWORD dwFlags,WINBOOL bExactMatch,DWORD dwMerit,WINBOOL bInputNeeded,DWORD cInputTypes,const GUID *pInputTypes,const REGPINMEDIUM *pMedIn,const CLSID *pPinCategoryIn,WINBOOL bRender,WINBOOL bOutputNeeded,DWORD cOutputTypes,const GUID *pOutputTypes,const REGPINMEDIUM *pMedOut,const CLSID *pPinCategoryOut) = 0;
-  };
-#else
-  typedef struct IFilterMapper2Vtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IFilterMapper2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IFilterMapper2 *This);
-      ULONG (WINAPI *Release)(IFilterMapper2 *This);
-      HRESULT (WINAPI *CreateCategory)(IFilterMapper2 *This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description);
-      HRESULT (WINAPI *UnregisterFilter)(IFilterMapper2 *This,const CLSID *pclsidCategory,const OLECHAR *szInstance,REFCLSID Filter);
-      HRESULT (WINAPI *RegisterFilter)(IFilterMapper2 *This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,const OLECHAR *szInstance,const REGFILTER2 *prf2);
-      HRESULT (WINAPI *EnumMatchingFilters)(IFilterMapper2 *This,IEnumMoniker **ppEnum,DWORD dwFlags,WINBOOL bExactMatch,DWORD dwMerit,WINBOOL bInputNeeded,DWORD cInputTypes,const GUID *pInputTypes,const REGPINMEDIUM *pMedIn,const CLSID *pPinCategoryIn,WINBOOL bRender,WINBOOL bOutputNeeded,DWORD cOutputTypes,const GUID *pOutputTypes,const REGPINMEDIUM *pMedOut,const CLSID *pPinCategoryOut);
-    END_INTERFACE
-  } IFilterMapper2Vtbl;
-  struct IFilterMapper2 {
-    CONST_VTBL struct IFilterMapper2Vtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IFilterMapper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFilterMapper2_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFilterMapper2_Release(This) (This)->lpVtbl->Release(This)
-#define IFilterMapper2_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
-#define IFilterMapper2_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
-#define IFilterMapper2_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
-#define IFilterMapper2_EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut)
-#endif
-#endif
-  HRESULT WINAPI IFilterMapper2_CreateCategory_Proxy(IFilterMapper2 *This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description);
-  void __RPC_STUB IFilterMapper2_CreateCategory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterMapper2_UnregisterFilter_Proxy(IFilterMapper2 *This,const CLSID *pclsidCategory,const OLECHAR *szInstance,REFCLSID Filter);
-  void __RPC_STUB IFilterMapper2_UnregisterFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterMapper2_RegisterFilter_Proxy(IFilterMapper2 *This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,const OLECHAR *szInstance,const REGFILTER2 *prf2);
-  void __RPC_STUB IFilterMapper2_RegisterFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterMapper2_EnumMatchingFilters_Proxy(IFilterMapper2 *This,IEnumMoniker **ppEnum,DWORD dwFlags,WINBOOL bExactMatch,DWORD dwMerit,WINBOOL bInputNeeded,DWORD cInputTypes,const GUID *pInputTypes,const REGPINMEDIUM *pMedIn,const CLSID *pPinCategoryIn,WINBOOL bRender,WINBOOL bOutputNeeded,DWORD cOutputTypes,const GUID *pOutputTypes,const REGPINMEDIUM *pMedOut,const CLSID *pPinCategoryOut);
-  void __RPC_STUB IFilterMapper2_EnumMatchingFilters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IFilterMapper3_INTERFACE_DEFINED__
-#define __IFilterMapper3_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IFilterMapper3;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IFilterMapper3 : public IFilterMapper2 {
-  public:
-    virtual HRESULT WINAPI GetICreateDevEnum(ICreateDevEnum **ppEnum) = 0;
-  };
-#else
-  typedef struct IFilterMapper3Vtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IFilterMapper3 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IFilterMapper3 *This);
-      ULONG (WINAPI *Release)(IFilterMapper3 *This);
-      HRESULT (WINAPI *CreateCategory)(IFilterMapper3 *This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description);
-      HRESULT (WINAPI *UnregisterFilter)(IFilterMapper3 *This,const CLSID *pclsidCategory,const OLECHAR *szInstance,REFCLSID Filter);
-      HRESULT (WINAPI *RegisterFilter)(IFilterMapper3 *This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,const OLECHAR *szInstance,const REGFILTER2 *prf2);
-      HRESULT (WINAPI *EnumMatchingFilters)(IFilterMapper3 *This,IEnumMoniker **ppEnum,DWORD dwFlags,WINBOOL bExactMatch,DWORD dwMerit,WINBOOL bInputNeeded,DWORD cInputTypes,const GUID *pInputTypes,const REGPINMEDIUM *pMedIn,const CLSID *pPinCategoryIn,WINBOOL bRender,WINBOOL bOutputNeeded,DWORD cOutputTypes,const GUID *pOutputTypes,const REGPINMEDIUM *pMedOut,const CLSID *pPinCategoryOut);
-      HRESULT (WINAPI *GetICreateDevEnum)(IFilterMapper3 *This,ICreateDevEnum **ppEnum);
-    END_INTERFACE
-  } IFilterMapper3Vtbl;
-  struct IFilterMapper3 {
-    CONST_VTBL struct IFilterMapper3Vtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IFilterMapper3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFilterMapper3_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFilterMapper3_Release(This) (This)->lpVtbl->Release(This)
-#define IFilterMapper3_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
-#define IFilterMapper3_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
-#define IFilterMapper3_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
-#define IFilterMapper3_EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut)
-#define IFilterMapper3_GetICreateDevEnum(This,ppEnum) (This)->lpVtbl->GetICreateDevEnum(This,ppEnum)
-#endif
-#endif
-  HRESULT WINAPI IFilterMapper3_GetICreateDevEnum_Proxy(IFilterMapper3 *This,ICreateDevEnum **ppEnum);
-  void __RPC_STUB IFilterMapper3_GetICreateDevEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum tagQualityMessageType {
-    Famine = 0,Flood = Famine + 1
-  } QualityMessageType;
-
-  typedef struct tagQuality {
-    QualityMessageType Type;
-    long Proportion;
-    REFERENCE_TIME Late;
-    REFERENCE_TIME TimeStamp;
-  } Quality;
-
-  typedef IQualityControl *PQUALITYCONTROL;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0141_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0141_v0_0_s_ifspec;
-#ifndef __IQualityControl_INTERFACE_DEFINED__
-#define __IQualityControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IQualityControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IQualityControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Notify(IBaseFilter *pSelf,Quality q) = 0;
-    virtual HRESULT WINAPI SetSink(IQualityControl *piqc) = 0;
-  };
-#else
-  typedef struct IQualityControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IQualityControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IQualityControl *This);
-      ULONG (WINAPI *Release)(IQualityControl *This);
-      HRESULT (WINAPI *Notify)(IQualityControl *This,IBaseFilter *pSelf,Quality q);
-      HRESULT (WINAPI *SetSink)(IQualityControl *This,IQualityControl *piqc);
-    END_INTERFACE
-  } IQualityControlVtbl;
-  struct IQualityControl {
-    CONST_VTBL struct IQualityControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IQualityControl_Release(This) (This)->lpVtbl->Release(This)
-#define IQualityControl_Notify(This,pSelf,q) (This)->lpVtbl->Notify(This,pSelf,q)
-#define IQualityControl_SetSink(This,piqc) (This)->lpVtbl->SetSink(This,piqc)
-#endif
-#endif
-  HRESULT WINAPI IQualityControl_Notify_Proxy(IQualityControl *This,IBaseFilter *pSelf,Quality q);
-  void __RPC_STUB IQualityControl_Notify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IQualityControl_SetSink_Proxy(IQualityControl *This,IQualityControl *piqc);
-  void __RPC_STUB IQualityControl_SetSink_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  enum __MIDL___MIDL_itf_strmif_0142_0001 {
-    CK_NOCOLORKEY = 0,CK_INDEX = 0x1,CK_RGB = 0x2
-  };
-  typedef struct tagCOLORKEY {
-    DWORD KeyType;
-    DWORD PaletteIndex;
-    COLORREF LowColorValue;
-    COLORREF HighColorValue;
-  } COLORKEY;
-
-  enum __MIDL___MIDL_itf_strmif_0142_0002 {
-    ADVISE_NONE = 0,ADVISE_CLIPPING = 0x1,ADVISE_PALETTE = 0x2,ADVISE_COLORKEY = 0x4,ADVISE_POSITION = 0x8,ADVISE_DISPLAY_CHANGE = 0x10
-  };
-#define ADVISE_ALL (ADVISE_CLIPPING | ADVISE_PALETTE | ADVISE_COLORKEY | ADVISE_POSITION)
-#define ADVISE_ALL2 (ADVISE_ALL | ADVISE_DISPLAY_CHANGE)
-
-#ifndef _WINGDI_
-  typedef struct _RGNDATAHEADER {
-    DWORD dwSize;
-    DWORD iType;
-    DWORD nCount;
-    DWORD nRgnSize;
-    RECT rcBound;
-  } RGNDATAHEADER;
-
-  typedef struct _RGNDATA {
-    RGNDATAHEADER rdh;
-    char Buffer[1];
-  } RGNDATA;
-#endif
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0142_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0142_v0_0_s_ifspec;
-#ifndef __IOverlayNotify_INTERFACE_DEFINED__
-#define __IOverlayNotify_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IOverlayNotify;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IOverlayNotify : public IUnknown {
-  public:
-    virtual HRESULT WINAPI OnPaletteChange(DWORD dwColors,const PALETTEENTRY *pPalette) = 0;
-    virtual HRESULT WINAPI OnClipChange(const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) = 0;
-    virtual HRESULT WINAPI OnColorKeyChange(const COLORKEY *pColorKey) = 0;
-    virtual HRESULT WINAPI OnPositionChange(const RECT *pSourceRect,const RECT *pDestinationRect) = 0;
-  };
-#else
-  typedef struct IOverlayNotifyVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IOverlayNotify *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IOverlayNotify *This);
-      ULONG (WINAPI *Release)(IOverlayNotify *This);
-      HRESULT (WINAPI *OnPaletteChange)(IOverlayNotify *This,DWORD dwColors,const PALETTEENTRY *pPalette);
-      HRESULT (WINAPI *OnClipChange)(IOverlayNotify *This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData);
-      HRESULT (WINAPI *OnColorKeyChange)(IOverlayNotify *This,const COLORKEY *pColorKey);
-      HRESULT (WINAPI *OnPositionChange)(IOverlayNotify *This,const RECT *pSourceRect,const RECT *pDestinationRect);
-    END_INTERFACE
-  } IOverlayNotifyVtbl;
-  struct IOverlayNotify {
-    CONST_VTBL struct IOverlayNotifyVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IOverlayNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IOverlayNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IOverlayNotify_Release(This) (This)->lpVtbl->Release(This)
-#define IOverlayNotify_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
-#define IOverlayNotify_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
-#define IOverlayNotify_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
-#define IOverlayNotify_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
-#endif
-#endif
-  HRESULT WINAPI IOverlayNotify_OnPaletteChange_Proxy(IOverlayNotify *This,DWORD dwColors,const PALETTEENTRY *pPalette);
-  void __RPC_STUB IOverlayNotify_OnPaletteChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IOverlayNotify_OnClipChange_Proxy(IOverlayNotify *This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData);
-  void __RPC_STUB IOverlayNotify_OnClipChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IOverlayNotify_OnColorKeyChange_Proxy(IOverlayNotify *This,const COLORKEY *pColorKey);
-  void __RPC_STUB IOverlayNotify_OnColorKeyChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IOverlayNotify_OnPositionChange_Proxy(IOverlayNotify *This,const RECT *pSourceRect,const RECT *pDestinationRect);
-  void __RPC_STUB IOverlayNotify_OnPositionChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IOverlayNotify *POVERLAYNOTIFY;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0143_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0143_v0_0_s_ifspec;
-#ifndef __IOverlayNotify2_INTERFACE_DEFINED__
-#define __IOverlayNotify2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IOverlayNotify2;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IOverlayNotify2 : public IOverlayNotify {
-  public:
-    virtual HRESULT WINAPI OnDisplayChange(HMONITOR hMonitor) = 0;
-  };
-#else
-  typedef struct IOverlayNotify2Vtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IOverlayNotify2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IOverlayNotify2 *This);
-      ULONG (WINAPI *Release)(IOverlayNotify2 *This);
-      HRESULT (WINAPI *OnPaletteChange)(IOverlayNotify2 *This,DWORD dwColors,const PALETTEENTRY *pPalette);
-      HRESULT (WINAPI *OnClipChange)(IOverlayNotify2 *This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData);
-      HRESULT (WINAPI *OnColorKeyChange)(IOverlayNotify2 *This,const COLORKEY *pColorKey);
-      HRESULT (WINAPI *OnPositionChange)(IOverlayNotify2 *This,const RECT *pSourceRect,const RECT *pDestinationRect);
-      HRESULT (WINAPI *OnDisplayChange)(IOverlayNotify2 *This,HMONITOR hMonitor);
-    END_INTERFACE
-  } IOverlayNotify2Vtbl;
-  struct IOverlayNotify2 {
-    CONST_VTBL struct IOverlayNotify2Vtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IOverlayNotify2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IOverlayNotify2_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IOverlayNotify2_Release(This) (This)->lpVtbl->Release(This)
-#define IOverlayNotify2_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
-#define IOverlayNotify2_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
-#define IOverlayNotify2_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
-#define IOverlayNotify2_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
-#define IOverlayNotify2_OnDisplayChange(This,hMonitor) (This)->lpVtbl->OnDisplayChange(This,hMonitor)
-#endif
-#endif
-  HRESULT WINAPI IOverlayNotify2_OnDisplayChange_Proxy(IOverlayNotify2 *This,HMONITOR hMonitor);
-  void __RPC_STUB IOverlayNotify2_OnDisplayChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IOverlayNotify2 *POVERLAYNOTIFY2;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0144_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0144_v0_0_s_ifspec;
-#ifndef __IOverlay_INTERFACE_DEFINED__
-#define __IOverlay_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IOverlay;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IOverlay : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetPalette(DWORD *pdwColors,PALETTEENTRY **ppPalette) = 0;
-    virtual HRESULT WINAPI SetPalette(DWORD dwColors,PALETTEENTRY *pPalette) = 0;
-    virtual HRESULT WINAPI GetDefaultColorKey(COLORKEY *pColorKey) = 0;
-    virtual HRESULT WINAPI GetColorKey(COLORKEY *pColorKey) = 0;
-    virtual HRESULT WINAPI SetColorKey(COLORKEY *pColorKey) = 0;
-    virtual HRESULT WINAPI GetWindowHandle(HWND *pHwnd) = 0;
-    virtual HRESULT WINAPI GetClipList(RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData) = 0;
-    virtual HRESULT WINAPI GetVideoPosition(RECT *pSourceRect,RECT *pDestinationRect) = 0;
-    virtual HRESULT WINAPI Advise(IOverlayNotify *pOverlayNotify,DWORD dwInterests) = 0;
-    virtual HRESULT WINAPI Unadvise(void) = 0;
-  };
-#else
-  typedef struct IOverlayVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IOverlay *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IOverlay *This);
-      ULONG (WINAPI *Release)(IOverlay *This);
-      HRESULT (WINAPI *GetPalette)(IOverlay *This,DWORD *pdwColors,PALETTEENTRY **ppPalette);
-      HRESULT (WINAPI *SetPalette)(IOverlay *This,DWORD dwColors,PALETTEENTRY *pPalette);
-      HRESULT (WINAPI *GetDefaultColorKey)(IOverlay *This,COLORKEY *pColorKey);
-      HRESULT (WINAPI *GetColorKey)(IOverlay *This,COLORKEY *pColorKey);
-      HRESULT (WINAPI *SetColorKey)(IOverlay *This,COLORKEY *pColorKey);
-      HRESULT (WINAPI *GetWindowHandle)(IOverlay *This,HWND *pHwnd);
-      HRESULT (WINAPI *GetClipList)(IOverlay *This,RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData);
-      HRESULT (WINAPI *GetVideoPosition)(IOverlay *This,RECT *pSourceRect,RECT *pDestinationRect);
-      HRESULT (WINAPI *Advise)(IOverlay *This,IOverlayNotify *pOverlayNotify,DWORD dwInterests);
-      HRESULT (WINAPI *Unadvise)(IOverlay *This);
-    END_INTERFACE
-  } IOverlayVtbl;
-  struct IOverlay {
-    CONST_VTBL struct IOverlayVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IOverlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IOverlay_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IOverlay_Release(This) (This)->lpVtbl->Release(This)
-#define IOverlay_GetPalette(This,pdwColors,ppPalette) (This)->lpVtbl->GetPalette(This,pdwColors,ppPalette)
-#define IOverlay_SetPalette(This,dwColors,pPalette) (This)->lpVtbl->SetPalette(This,dwColors,pPalette)
-#define IOverlay_GetDefaultColorKey(This,pColorKey) (This)->lpVtbl->GetDefaultColorKey(This,pColorKey)
-#define IOverlay_GetColorKey(This,pColorKey) (This)->lpVtbl->GetColorKey(This,pColorKey)
-#define IOverlay_SetColorKey(This,pColorKey) (This)->lpVtbl->SetColorKey(This,pColorKey)
-#define IOverlay_GetWindowHandle(This,pHwnd) (This)->lpVtbl->GetWindowHandle(This,pHwnd)
-#define IOverlay_GetClipList(This,pSourceRect,pDestinationRect,ppRgnData) (This)->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData)
-#define IOverlay_GetVideoPosition(This,pSourceRect,pDestinationRect) (This)->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect)
-#define IOverlay_Advise(This,pOverlayNotify,dwInterests) (This)->lpVtbl->Advise(This,pOverlayNotify,dwInterests)
-#define IOverlay_Unadvise(This) (This)->lpVtbl->Unadvise(This)
-#endif
-#endif
-  HRESULT WINAPI IOverlay_GetPalette_Proxy(IOverlay *This,DWORD *pdwColors,PALETTEENTRY **ppPalette);
-  void __RPC_STUB IOverlay_GetPalette_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IOverlay_SetPalette_Proxy(IOverlay *This,DWORD dwColors,PALETTEENTRY *pPalette);
-  void __RPC_STUB IOverlay_SetPalette_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IOverlay_GetDefaultColorKey_Proxy(IOverlay *This,COLORKEY *pColorKey);
-  void __RPC_STUB IOverlay_GetDefaultColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IOverlay_GetColorKey_Proxy(IOverlay *This,COLORKEY *pColorKey);
-  void __RPC_STUB IOverlay_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IOverlay_SetColorKey_Proxy(IOverlay *This,COLORKEY *pColorKey);
-  void __RPC_STUB IOverlay_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IOverlay_GetWindowHandle_Proxy(IOverlay *This,HWND *pHwnd);
-  void __RPC_STUB IOverlay_GetWindowHandle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IOverlay_GetClipList_Proxy(IOverlay *This,RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData);
-  void __RPC_STUB IOverlay_GetClipList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IOverlay_GetVideoPosition_Proxy(IOverlay *This,RECT *pSourceRect,RECT *pDestinationRect);
-  void __RPC_STUB IOverlay_GetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IOverlay_Advise_Proxy(IOverlay *This,IOverlayNotify *pOverlayNotify,DWORD dwInterests);
-  void __RPC_STUB IOverlay_Advise_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IOverlay_Unadvise_Proxy(IOverlay *This);
-  void __RPC_STUB IOverlay_Unadvise_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IOverlay *POVERLAY;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0145_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0145_v0_0_s_ifspec;
-#ifndef __IMediaEventSink_INTERFACE_DEFINED__
-#define __IMediaEventSink_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IMediaEventSink;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMediaEventSink : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Notify(long EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2) = 0;
-  };
-#else
-  typedef struct IMediaEventSinkVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMediaEventSink *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMediaEventSink *This);
-      ULONG (WINAPI *Release)(IMediaEventSink *This);
-      HRESULT (WINAPI *Notify)(IMediaEventSink *This,long EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2);
-    END_INTERFACE
-  } IMediaEventSinkVtbl;
-  struct IMediaEventSink {
-    CONST_VTBL struct IMediaEventSinkVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMediaEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMediaEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMediaEventSink_Release(This) (This)->lpVtbl->Release(This)
-#define IMediaEventSink_Notify(This,EventCode,EventParam1,EventParam2) (This)->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2)
-#endif
-#endif
-  HRESULT WINAPI IMediaEventSink_Notify_Proxy(IMediaEventSink *This,long EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2);
-  void __RPC_STUB IMediaEventSink_Notify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IMediaEventSink *PMEDIAEVENTSINK;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0146_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0146_v0_0_s_ifspec;
-#ifndef __IFileSourceFilter_INTERFACE_DEFINED__
-#define __IFileSourceFilter_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IFileSourceFilter;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IFileSourceFilter : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Load(LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) = 0;
-    virtual HRESULT WINAPI GetCurFile(LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) = 0;
-  };
-#else
-  typedef struct IFileSourceFilterVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IFileSourceFilter *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IFileSourceFilter *This);
-      ULONG (WINAPI *Release)(IFileSourceFilter *This);
-      HRESULT (WINAPI *Load)(IFileSourceFilter *This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt);
-      HRESULT (WINAPI *GetCurFile)(IFileSourceFilter *This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt);
-    END_INTERFACE
-  } IFileSourceFilterVtbl;
-  struct IFileSourceFilter {
-    CONST_VTBL struct IFileSourceFilterVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IFileSourceFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFileSourceFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFileSourceFilter_Release(This) (This)->lpVtbl->Release(This)
-#define IFileSourceFilter_Load(This,pszFileName,pmt) (This)->lpVtbl->Load(This,pszFileName,pmt)
-#define IFileSourceFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
-#endif
-#endif
-  HRESULT WINAPI IFileSourceFilter_Load_Proxy(IFileSourceFilter *This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt);
-  void __RPC_STUB IFileSourceFilter_Load_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFileSourceFilter_GetCurFile_Proxy(IFileSourceFilter *This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt);
-  void __RPC_STUB IFileSourceFilter_GetCurFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IFileSourceFilter *PFILTERFILESOURCE;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0147_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0147_v0_0_s_ifspec;
-#ifndef __IFileSinkFilter_INTERFACE_DEFINED__
-#define __IFileSinkFilter_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IFileSinkFilter;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IFileSinkFilter : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetFileName(LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) = 0;
-    virtual HRESULT WINAPI GetCurFile(LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) = 0;
-  };
-#else
-  typedef struct IFileSinkFilterVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IFileSinkFilter *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IFileSinkFilter *This);
-      ULONG (WINAPI *Release)(IFileSinkFilter *This);
-      HRESULT (WINAPI *SetFileName)(IFileSinkFilter *This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt);
-      HRESULT (WINAPI *GetCurFile)(IFileSinkFilter *This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt);
-    END_INTERFACE
-  } IFileSinkFilterVtbl;
-  struct IFileSinkFilter {
-    CONST_VTBL struct IFileSinkFilterVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IFileSinkFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFileSinkFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFileSinkFilter_Release(This) (This)->lpVtbl->Release(This)
-#define IFileSinkFilter_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
-#define IFileSinkFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
-#endif
-#endif
-  HRESULT WINAPI IFileSinkFilter_SetFileName_Proxy(IFileSinkFilter *This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt);
-  void __RPC_STUB IFileSinkFilter_SetFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFileSinkFilter_GetCurFile_Proxy(IFileSinkFilter *This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt);
-  void __RPC_STUB IFileSinkFilter_GetCurFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IFileSinkFilter *PFILTERFILESINK;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0148_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0148_v0_0_s_ifspec;
-#ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
-#define __IFileSinkFilter2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IFileSinkFilter2;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IFileSinkFilter2 : public IFileSinkFilter {
-  public:
-    virtual HRESULT WINAPI SetMode(DWORD dwFlags) = 0;
-    virtual HRESULT WINAPI GetMode(DWORD *pdwFlags) = 0;
-  };
-#else
-  typedef struct IFileSinkFilter2Vtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IFileSinkFilter2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IFileSinkFilter2 *This);
-      ULONG (WINAPI *Release)(IFileSinkFilter2 *This);
-      HRESULT (WINAPI *SetFileName)(IFileSinkFilter2 *This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt);
-      HRESULT (WINAPI *GetCurFile)(IFileSinkFilter2 *This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt);
-      HRESULT (WINAPI *SetMode)(IFileSinkFilter2 *This,DWORD dwFlags);
-      HRESULT (WINAPI *GetMode)(IFileSinkFilter2 *This,DWORD *pdwFlags);
-    END_INTERFACE
-  } IFileSinkFilter2Vtbl;
-  struct IFileSinkFilter2 {
-    CONST_VTBL struct IFileSinkFilter2Vtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IFileSinkFilter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFileSinkFilter2_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFileSinkFilter2_Release(This) (This)->lpVtbl->Release(This)
-#define IFileSinkFilter2_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
-#define IFileSinkFilter2_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
-#define IFileSinkFilter2_SetMode(This,dwFlags) (This)->lpVtbl->SetMode(This,dwFlags)
-#define IFileSinkFilter2_GetMode(This,pdwFlags) (This)->lpVtbl->GetMode(This,pdwFlags)
-#endif
-#endif
-  HRESULT WINAPI IFileSinkFilter2_SetMode_Proxy(IFileSinkFilter2 *This,DWORD dwFlags);
-  void __RPC_STUB IFileSinkFilter2_SetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFileSinkFilter2_GetMode_Proxy(IFileSinkFilter2 *This,DWORD *pdwFlags);
-  void __RPC_STUB IFileSinkFilter2_GetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IFileSinkFilter2 *PFILESINKFILTER2;
-
-  typedef enum __MIDL___MIDL_itf_strmif_0149_0001 {
-    AM_FILE_OVERWRITE = 0x1
-  } AM_FILESINK_FLAGS;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0149_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0149_v0_0_s_ifspec;
-#ifndef __IGraphBuilder_INTERFACE_DEFINED__
-#define __IGraphBuilder_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IGraphBuilder;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IGraphBuilder : public IFilterGraph {
-  public:
-    virtual HRESULT WINAPI Connect(IPin *ppinOut,IPin *ppinIn) = 0;
-    virtual HRESULT WINAPI Render(IPin *ppinOut) = 0;
-    virtual HRESULT WINAPI RenderFile(LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) = 0;
-    virtual HRESULT WINAPI AddSourceFilter(LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) = 0;
-    virtual HRESULT WINAPI SetLogFile(DWORD_PTR hFile) = 0;
-    virtual HRESULT WINAPI Abort(void) = 0;
-    virtual HRESULT WINAPI ShouldOperationContinue(void) = 0;
-  };
-#else
-  typedef struct IGraphBuilderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IGraphBuilder *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IGraphBuilder *This);
-      ULONG (WINAPI *Release)(IGraphBuilder *This);
-      HRESULT (WINAPI *AddFilter)(IGraphBuilder *This,IBaseFilter *pFilter,LPCWSTR pName);
-      HRESULT (WINAPI *RemoveFilter)(IGraphBuilder *This,IBaseFilter *pFilter);
-      HRESULT (WINAPI *EnumFilters)(IGraphBuilder *This,IEnumFilters **ppEnum);
-      HRESULT (WINAPI *FindFilterByName)(IGraphBuilder *This,LPCWSTR pName,IBaseFilter **ppFilter);
-      HRESULT (WINAPI *ConnectDirect)(IGraphBuilder *This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt);
-      HRESULT (WINAPI *Reconnect)(IGraphBuilder *This,IPin *ppin);
-      HRESULT (WINAPI *Disconnect)(IGraphBuilder *This,IPin *ppin);
-      HRESULT (WINAPI *SetDefaultSyncSource)(IGraphBuilder *This);
-      HRESULT (WINAPI *Connect)(IGraphBuilder *This,IPin *ppinOut,IPin *ppinIn);
-      HRESULT (WINAPI *Render)(IGraphBuilder *This,IPin *ppinOut);
-      HRESULT (WINAPI *RenderFile)(IGraphBuilder *This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList);
-      HRESULT (WINAPI *AddSourceFilter)(IGraphBuilder *This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter);
-      HRESULT (WINAPI *SetLogFile)(IGraphBuilder *This,DWORD_PTR hFile);
-      HRESULT (WINAPI *Abort)(IGraphBuilder *This);
-      HRESULT (WINAPI *ShouldOperationContinue)(IGraphBuilder *This);
-    END_INTERFACE
-  } IGraphBuilderVtbl;
-  struct IGraphBuilder {
-    CONST_VTBL struct IGraphBuilderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
-#define IGraphBuilder_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
-#define IGraphBuilder_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
-#define IGraphBuilder_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
-#define IGraphBuilder_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
-#define IGraphBuilder_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
-#define IGraphBuilder_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
-#define IGraphBuilder_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
-#define IGraphBuilder_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
-#define IGraphBuilder_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
-#define IGraphBuilder_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
-#define IGraphBuilder_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
-#define IGraphBuilder_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
-#define IGraphBuilder_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
-#define IGraphBuilder_Abort(This) (This)->lpVtbl->Abort(This)
-#define IGraphBuilder_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
-#endif
-#endif
-  HRESULT WINAPI IGraphBuilder_Connect_Proxy(IGraphBuilder *This,IPin *ppinOut,IPin *ppinIn);
-  void __RPC_STUB IGraphBuilder_Connect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphBuilder_Render_Proxy(IGraphBuilder *This,IPin *ppinOut);
-  void __RPC_STUB IGraphBuilder_Render_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphBuilder_RenderFile_Proxy(IGraphBuilder *This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList);
-  void __RPC_STUB IGraphBuilder_RenderFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphBuilder_AddSourceFilter_Proxy(IGraphBuilder *This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter);
-  void __RPC_STUB IGraphBuilder_AddSourceFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphBuilder_SetLogFile_Proxy(IGraphBuilder *This,DWORD_PTR hFile);
-  void __RPC_STUB IGraphBuilder_SetLogFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphBuilder_Abort_Proxy(IGraphBuilder *This);
-  void __RPC_STUB IGraphBuilder_Abort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphBuilder_ShouldOperationContinue_Proxy(IGraphBuilder *This);
-  void __RPC_STUB IGraphBuilder_ShouldOperationContinue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__
-#define __ICaptureGraphBuilder_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ICaptureGraphBuilder;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ICaptureGraphBuilder : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetFiltergraph(IGraphBuilder *pfg) = 0;
-    virtual HRESULT WINAPI GetFiltergraph(IGraphBuilder **ppfg) = 0;
-    virtual HRESULT WINAPI SetOutputFileName(const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) = 0;
-    virtual HRESULT WINAPI FindInterface(const GUID *pCategory,IBaseFilter *pf,REFIID riid,void **ppint) = 0;
-    virtual HRESULT WINAPI RenderStream(const GUID *pCategory,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) = 0;
-    virtual HRESULT WINAPI ControlStream(const GUID *pCategory,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) = 0;
-    virtual HRESULT WINAPI AllocCapFile(LPCOLESTR lpstr,DWORDLONG dwlSize) = 0;
-    virtual HRESULT WINAPI CopyCaptureFile(LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) = 0;
-  };
-#else
-  typedef struct ICaptureGraphBuilderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ICaptureGraphBuilder *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ICaptureGraphBuilder *This);
-      ULONG (WINAPI *Release)(ICaptureGraphBuilder *This);
-      HRESULT (WINAPI *SetFiltergraph)(ICaptureGraphBuilder *This,IGraphBuilder *pfg);
-      HRESULT (WINAPI *GetFiltergraph)(ICaptureGraphBuilder *This,IGraphBuilder **ppfg);
-      HRESULT (WINAPI *SetOutputFileName)(ICaptureGraphBuilder *This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink);
-      HRESULT (WINAPI *FindInterface)(ICaptureGraphBuilder *This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,void **ppint);
-      HRESULT (WINAPI *RenderStream)(ICaptureGraphBuilder *This,const GUID *pCategory,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer);
-      HRESULT (WINAPI *ControlStream)(ICaptureGraphBuilder *This,const GUID *pCategory,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie);
-      HRESULT (WINAPI *AllocCapFile)(ICaptureGraphBuilder *This,LPCOLESTR lpstr,DWORDLONG dwlSize);
-      HRESULT (WINAPI *CopyCaptureFile)(ICaptureGraphBuilder *This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback);
-    END_INTERFACE
-  } ICaptureGraphBuilderVtbl;
-  struct ICaptureGraphBuilder {
-    CONST_VTBL struct ICaptureGraphBuilderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ICaptureGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ICaptureGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ICaptureGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
-#define ICaptureGraphBuilder_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
-#define ICaptureGraphBuilder_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
-#define ICaptureGraphBuilder_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
-#define ICaptureGraphBuilder_FindInterface(This,pCategory,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint)
-#define ICaptureGraphBuilder_RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer)
-#define ICaptureGraphBuilder_ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie)
-#define ICaptureGraphBuilder_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
-#define ICaptureGraphBuilder_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
-#endif
-#endif
-  HRESULT WINAPI ICaptureGraphBuilder_SetFiltergraph_Proxy(ICaptureGraphBuilder *This,IGraphBuilder *pfg);
-  void __RPC_STUB ICaptureGraphBuilder_SetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder_GetFiltergraph_Proxy(ICaptureGraphBuilder *This,IGraphBuilder **ppfg);
-  void __RPC_STUB ICaptureGraphBuilder_GetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder_SetOutputFileName_Proxy(ICaptureGraphBuilder *This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink);
-  void __RPC_STUB ICaptureGraphBuilder_SetOutputFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder_RemoteFindInterface_Proxy(ICaptureGraphBuilder *This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,IUnknown **ppint);
-  void __RPC_STUB ICaptureGraphBuilder_RemoteFindInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder_RenderStream_Proxy(ICaptureGraphBuilder *This,const GUID *pCategory,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer);
-  void __RPC_STUB ICaptureGraphBuilder_RenderStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder_ControlStream_Proxy(ICaptureGraphBuilder *This,const GUID *pCategory,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie);
-  void __RPC_STUB ICaptureGraphBuilder_ControlStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder_AllocCapFile_Proxy(ICaptureGraphBuilder *This,LPCOLESTR lpstr,DWORDLONG dwlSize);
-  void __RPC_STUB ICaptureGraphBuilder_AllocCapFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder_CopyCaptureFile_Proxy(ICaptureGraphBuilder *This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback);
-  void __RPC_STUB ICaptureGraphBuilder_CopyCaptureFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
-#define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMCopyCaptureFileProgress;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMCopyCaptureFileProgress : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Progress(int iProgress) = 0;
-  };
-#else
-  typedef struct IAMCopyCaptureFileProgressVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMCopyCaptureFileProgress *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMCopyCaptureFileProgress *This);
-      ULONG (WINAPI *Release)(IAMCopyCaptureFileProgress *This);
-      HRESULT (WINAPI *Progress)(IAMCopyCaptureFileProgress *This,int iProgress);
-    END_INTERFACE
-  } IAMCopyCaptureFileProgressVtbl;
-  struct IAMCopyCaptureFileProgress {
-    CONST_VTBL struct IAMCopyCaptureFileProgressVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMCopyCaptureFileProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMCopyCaptureFileProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMCopyCaptureFileProgress_Release(This) (This)->lpVtbl->Release(This)
-#define IAMCopyCaptureFileProgress_Progress(This,iProgress) (This)->lpVtbl->Progress(This,iProgress)
-#endif
-#endif
-  HRESULT WINAPI IAMCopyCaptureFileProgress_Progress_Proxy(IAMCopyCaptureFileProgress *This,int iProgress);
-  void __RPC_STUB IAMCopyCaptureFileProgress_Progress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
-#define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ICaptureGraphBuilder2;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ICaptureGraphBuilder2 : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetFiltergraph(IGraphBuilder *pfg) = 0;
-    virtual HRESULT WINAPI GetFiltergraph(IGraphBuilder **ppfg) = 0;
-    virtual HRESULT WINAPI SetOutputFileName(const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) = 0;
-    virtual HRESULT WINAPI FindInterface(const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,void **ppint) = 0;
-    virtual HRESULT WINAPI RenderStream(const GUID *pCategory,const GUID *pType,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) = 0;
-    virtual HRESULT WINAPI ControlStream(const GUID *pCategory,const GUID *pType,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) = 0;
-    virtual HRESULT WINAPI AllocCapFile(LPCOLESTR lpstr,DWORDLONG dwlSize) = 0;
-    virtual HRESULT WINAPI CopyCaptureFile(LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) = 0;
-    virtual HRESULT WINAPI FindPin(IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,WINBOOL fUnconnected,int num,IPin **ppPin) = 0;
-  };
-#else
-  typedef struct ICaptureGraphBuilder2Vtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ICaptureGraphBuilder2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ICaptureGraphBuilder2 *This);
-      ULONG (WINAPI *Release)(ICaptureGraphBuilder2 *This);
-      HRESULT (WINAPI *SetFiltergraph)(ICaptureGraphBuilder2 *This,IGraphBuilder *pfg);
-      HRESULT (WINAPI *GetFiltergraph)(ICaptureGraphBuilder2 *This,IGraphBuilder **ppfg);
-      HRESULT (WINAPI *SetOutputFileName)(ICaptureGraphBuilder2 *This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink);
-      HRESULT (WINAPI *FindInterface)(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,void **ppint);
-      HRESULT (WINAPI *RenderStream)(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer);
-      HRESULT (WINAPI *ControlStream)(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie);
-      HRESULT (WINAPI *AllocCapFile)(ICaptureGraphBuilder2 *This,LPCOLESTR lpstr,DWORDLONG dwlSize);
-      HRESULT (WINAPI *CopyCaptureFile)(ICaptureGraphBuilder2 *This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback);
-      HRESULT (WINAPI *FindPin)(ICaptureGraphBuilder2 *This,IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,WINBOOL fUnconnected,int num,IPin **ppPin);
-    END_INTERFACE
-  } ICaptureGraphBuilder2Vtbl;
-  struct ICaptureGraphBuilder2 {
-    CONST_VTBL struct ICaptureGraphBuilder2Vtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ICaptureGraphBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ICaptureGraphBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ICaptureGraphBuilder2_Release(This) (This)->lpVtbl->Release(This)
-#define ICaptureGraphBuilder2_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
-#define ICaptureGraphBuilder2_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
-#define ICaptureGraphBuilder2_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
-#define ICaptureGraphBuilder2_FindInterface(This,pCategory,pType,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint)
-#define ICaptureGraphBuilder2_RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer)
-#define ICaptureGraphBuilder2_ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie)
-#define ICaptureGraphBuilder2_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
-#define ICaptureGraphBuilder2_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
-#define ICaptureGraphBuilder2_FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin) (This)->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin)
-#endif
-#endif
-  HRESULT WINAPI ICaptureGraphBuilder2_SetFiltergraph_Proxy(ICaptureGraphBuilder2 *This,IGraphBuilder *pfg);
-  void __RPC_STUB ICaptureGraphBuilder2_SetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder2_GetFiltergraph_Proxy(ICaptureGraphBuilder2 *This,IGraphBuilder **ppfg);
-  void __RPC_STUB ICaptureGraphBuilder2_GetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder2_SetOutputFileName_Proxy(ICaptureGraphBuilder2 *This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink);
-  void __RPC_STUB ICaptureGraphBuilder2_SetOutputFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder2_RemoteFindInterface_Proxy(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,IUnknown **ppint);
-  void __RPC_STUB ICaptureGraphBuilder2_RemoteFindInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder2_RenderStream_Proxy(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer);
-  void __RPC_STUB ICaptureGraphBuilder2_RenderStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder2_ControlStream_Proxy(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie);
-  void __RPC_STUB ICaptureGraphBuilder2_ControlStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder2_AllocCapFile_Proxy(ICaptureGraphBuilder2 *This,LPCOLESTR lpstr,DWORDLONG dwlSize);
-  void __RPC_STUB ICaptureGraphBuilder2_AllocCapFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder2_CopyCaptureFile_Proxy(ICaptureGraphBuilder2 *This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback);
-  void __RPC_STUB ICaptureGraphBuilder2_CopyCaptureFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICaptureGraphBuilder2_FindPin_Proxy(ICaptureGraphBuilder2 *This,IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,WINBOOL fUnconnected,int num,IPin **ppPin);
-  void __RPC_STUB ICaptureGraphBuilder2_FindPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  enum _AM_RENSDEREXFLAGS {
-    AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1
-  };
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0153_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0153_v0_0_s_ifspec;
-#ifndef __IFilterGraph2_INTERFACE_DEFINED__
-#define __IFilterGraph2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IFilterGraph2;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IFilterGraph2 : public IGraphBuilder {
-  public:
-    virtual HRESULT WINAPI AddSourceFilterForMoniker(IMoniker *pMoniker,IBindCtx *pCtx,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) = 0;
-    virtual HRESULT WINAPI ReconnectEx(IPin *ppin,const AM_MEDIA_TYPE *pmt) = 0;
-    virtual HRESULT WINAPI RenderEx(IPin *pPinOut,DWORD dwFlags,DWORD *pvContext) = 0;
-  };
-#else
-  typedef struct IFilterGraph2Vtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IFilterGraph2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IFilterGraph2 *This);
-      ULONG (WINAPI *Release)(IFilterGraph2 *This);
-      HRESULT (WINAPI *AddFilter)(IFilterGraph2 *This,IBaseFilter *pFilter,LPCWSTR pName);
-      HRESULT (WINAPI *RemoveFilter)(IFilterGraph2 *This,IBaseFilter *pFilter);
-      HRESULT (WINAPI *EnumFilters)(IFilterGraph2 *This,IEnumFilters **ppEnum);
-      HRESULT (WINAPI *FindFilterByName)(IFilterGraph2 *This,LPCWSTR pName,IBaseFilter **ppFilter);
-      HRESULT (WINAPI *ConnectDirect)(IFilterGraph2 *This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt);
-      HRESULT (WINAPI *Reconnect)(IFilterGraph2 *This,IPin *ppin);
-      HRESULT (WINAPI *Disconnect)(IFilterGraph2 *This,IPin *ppin);
-      HRESULT (WINAPI *SetDefaultSyncSource)(IFilterGraph2 *This);
-      HRESULT (WINAPI *Connect)(IFilterGraph2 *This,IPin *ppinOut,IPin *ppinIn);
-      HRESULT (WINAPI *Render)(IFilterGraph2 *This,IPin *ppinOut);
-      HRESULT (WINAPI *RenderFile)(IFilterGraph2 *This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList);
-      HRESULT (WINAPI *AddSourceFilter)(IFilterGraph2 *This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter);
-      HRESULT (WINAPI *SetLogFile)(IFilterGraph2 *This,DWORD_PTR hFile);
-      HRESULT (WINAPI *Abort)(IFilterGraph2 *This);
-      HRESULT (WINAPI *ShouldOperationContinue)(IFilterGraph2 *This);
-      HRESULT (WINAPI *AddSourceFilterForMoniker)(IFilterGraph2 *This,IMoniker *pMoniker,IBindCtx *pCtx,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter);
-      HRESULT (WINAPI *ReconnectEx)(IFilterGraph2 *This,IPin *ppin,const AM_MEDIA_TYPE *pmt);
-      HRESULT (WINAPI *RenderEx)(IFilterGraph2 *This,IPin *pPinOut,DWORD dwFlags,DWORD *pvContext);
-    END_INTERFACE
-  } IFilterGraph2Vtbl;
-  struct IFilterGraph2 {
-    CONST_VTBL struct IFilterGraph2Vtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IFilterGraph2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFilterGraph2_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFilterGraph2_Release(This) (This)->lpVtbl->Release(This)
-#define IFilterGraph2_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
-#define IFilterGraph2_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
-#define IFilterGraph2_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
-#define IFilterGraph2_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
-#define IFilterGraph2_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
-#define IFilterGraph2_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
-#define IFilterGraph2_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
-#define IFilterGraph2_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
-#define IFilterGraph2_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
-#define IFilterGraph2_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
-#define IFilterGraph2_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
-#define IFilterGraph2_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
-#define IFilterGraph2_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
-#define IFilterGraph2_Abort(This) (This)->lpVtbl->Abort(This)
-#define IFilterGraph2_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
-#define IFilterGraph2_AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter)
-#define IFilterGraph2_ReconnectEx(This,ppin,pmt) (This)->lpVtbl->ReconnectEx(This,ppin,pmt)
-#define IFilterGraph2_RenderEx(This,pPinOut,dwFlags,pvContext) (This)->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext)
-#endif
-#endif
-  HRESULT WINAPI IFilterGraph2_AddSourceFilterForMoniker_Proxy(IFilterGraph2 *This,IMoniker *pMoniker,IBindCtx *pCtx,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter);
-  void __RPC_STUB IFilterGraph2_AddSourceFilterForMoniker_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterGraph2_ReconnectEx_Proxy(IFilterGraph2 *This,IPin *ppin,const AM_MEDIA_TYPE *pmt);
-  void __RPC_STUB IFilterGraph2_ReconnectEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterGraph2_RenderEx_Proxy(IFilterGraph2 *This,IPin *pPinOut,DWORD dwFlags,DWORD *pvContext);
-  void __RPC_STUB IFilterGraph2_RenderEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IStreamBuilder_INTERFACE_DEFINED__
-#define __IStreamBuilder_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IStreamBuilder;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IStreamBuilder : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Render(IPin *ppinOut,IGraphBuilder *pGraph) = 0;
-    virtual HRESULT WINAPI Backout(IPin *ppinOut,IGraphBuilder *pGraph) = 0;
-  };
-#else
-  typedef struct IStreamBuilderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IStreamBuilder *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IStreamBuilder *This);
-      ULONG (WINAPI *Release)(IStreamBuilder *This);
-      HRESULT (WINAPI *Render)(IStreamBuilder *This,IPin *ppinOut,IGraphBuilder *pGraph);
-      HRESULT (WINAPI *Backout)(IStreamBuilder *This,IPin *ppinOut,IGraphBuilder *pGraph);
-    END_INTERFACE
-  } IStreamBuilderVtbl;
-  struct IStreamBuilder {
-    CONST_VTBL struct IStreamBuilderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IStreamBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IStreamBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IStreamBuilder_Release(This) (This)->lpVtbl->Release(This)
-#define IStreamBuilder_Render(This,ppinOut,pGraph) (This)->lpVtbl->Render(This,ppinOut,pGraph)
-#define IStreamBuilder_Backout(This,ppinOut,pGraph) (This)->lpVtbl->Backout(This,ppinOut,pGraph)
-#endif
-#endif
-  HRESULT WINAPI IStreamBuilder_Render_Proxy(IStreamBuilder *This,IPin *ppinOut,IGraphBuilder *pGraph);
-  void __RPC_STUB IStreamBuilder_Render_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IStreamBuilder_Backout_Proxy(IStreamBuilder *This,IPin *ppinOut,IGraphBuilder *pGraph);
-  void __RPC_STUB IStreamBuilder_Backout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAsyncReader_INTERFACE_DEFINED__
-#define __IAsyncReader_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAsyncReader;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAsyncReader : public IUnknown {
-  public:
-    virtual HRESULT WINAPI RequestAllocator(IMemAllocator *pPreferred,ALLOCATOR_PROPERTIES *pProps,IMemAllocator **ppActual) = 0;
-    virtual HRESULT WINAPI Request(IMediaSample *pSample,DWORD_PTR dwUser) = 0;
-    virtual HRESULT WINAPI WaitForNext(DWORD dwTimeout,IMediaSample **ppSample,DWORD_PTR *pdwUser) = 0;
-    virtual HRESULT WINAPI SyncReadAligned(IMediaSample *pSample) = 0;
-    virtual HRESULT WINAPI SyncRead(LONGLONG llPosition,LONG lLength,BYTE *pBuffer) = 0;
-    virtual HRESULT WINAPI Length(LONGLONG *pTotal,LONGLONG *pAvailable) = 0;
-    virtual HRESULT WINAPI BeginFlush(void) = 0;
-    virtual HRESULT WINAPI EndFlush(void) = 0;
-  };
-#else
-  typedef struct IAsyncReaderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAsyncReader *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAsyncReader *This);
-      ULONG (WINAPI *Release)(IAsyncReader *This);
-      HRESULT (WINAPI *RequestAllocator)(IAsyncReader *This,IMemAllocator *pPreferred,ALLOCATOR_PROPERTIES *pProps,IMemAllocator **ppActual);
-      HRESULT (WINAPI *Request)(IAsyncReader *This,IMediaSample *pSample,DWORD_PTR dwUser);
-      HRESULT (WINAPI *WaitForNext)(IAsyncReader *This,DWORD dwTimeout,IMediaSample **ppSample,DWORD_PTR *pdwUser);
-      HRESULT (WINAPI *SyncReadAligned)(IAsyncReader *This,IMediaSample *pSample);
-      HRESULT (WINAPI *SyncRead)(IAsyncReader *This,LONGLONG llPosition,LONG lLength,BYTE *pBuffer);
-      HRESULT (WINAPI *Length)(IAsyncReader *This,LONGLONG *pTotal,LONGLONG *pAvailable);
-      HRESULT (WINAPI *BeginFlush)(IAsyncReader *This);
-      HRESULT (WINAPI *EndFlush)(IAsyncReader *This);
-    END_INTERFACE
-  } IAsyncReaderVtbl;
-  struct IAsyncReader {
-    CONST_VTBL struct IAsyncReaderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAsyncReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAsyncReader_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAsyncReader_Release(This) (This)->lpVtbl->Release(This)
-#define IAsyncReader_RequestAllocator(This,pPreferred,pProps,ppActual) (This)->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual)
-#define IAsyncReader_Request(This,pSample,dwUser) (This)->lpVtbl->Request(This,pSample,dwUser)
-#define IAsyncReader_WaitForNext(This,dwTimeout,ppSample,pdwUser) (This)->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser)
-#define IAsyncReader_SyncReadAligned(This,pSample) (This)->lpVtbl->SyncReadAligned(This,pSample)
-#define IAsyncReader_SyncRead(This,llPosition,lLength,pBuffer) (This)->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer)
-#define IAsyncReader_Length(This,pTotal,pAvailable) (This)->lpVtbl->Length(This,pTotal,pAvailable)
-#define IAsyncReader_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
-#define IAsyncReader_EndFlush(This) (This)->lpVtbl->EndFlush(This)
-#endif
-#endif
-  HRESULT WINAPI IAsyncReader_RequestAllocator_Proxy(IAsyncReader *This,IMemAllocator *pPreferred,ALLOCATOR_PROPERTIES *pProps,IMemAllocator **ppActual);
-  void __RPC_STUB IAsyncReader_RequestAllocator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAsyncReader_Request_Proxy(IAsyncReader *This,IMediaSample *pSample,DWORD_PTR dwUser);
-  void __RPC_STUB IAsyncReader_Request_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAsyncReader_WaitForNext_Proxy(IAsyncReader *This,DWORD dwTimeout,IMediaSample **ppSample,DWORD_PTR *pdwUser);
-  void __RPC_STUB IAsyncReader_WaitForNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAsyncReader_SyncReadAligned_Proxy(IAsyncReader *This,IMediaSample *pSample);
-  void __RPC_STUB IAsyncReader_SyncReadAligned_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAsyncReader_SyncRead_Proxy(IAsyncReader *This,LONGLONG llPosition,LONG lLength,BYTE *pBuffer);
-  void __RPC_STUB IAsyncReader_SyncRead_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAsyncReader_Length_Proxy(IAsyncReader *This,LONGLONG *pTotal,LONGLONG *pAvailable);
-  void __RPC_STUB IAsyncReader_Length_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAsyncReader_BeginFlush_Proxy(IAsyncReader *This);
-  void __RPC_STUB IAsyncReader_BeginFlush_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAsyncReader_EndFlush_Proxy(IAsyncReader *This);
-  void __RPC_STUB IAsyncReader_EndFlush_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IGraphVersion_INTERFACE_DEFINED__
-#define __IGraphVersion_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IGraphVersion;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IGraphVersion : public IUnknown {
-  public:
-    virtual HRESULT WINAPI QueryVersion(LONG *pVersion) = 0;
-  };
-#else
-  typedef struct IGraphVersionVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IGraphVersion *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IGraphVersion *This);
-      ULONG (WINAPI *Release)(IGraphVersion *This);
-      HRESULT (WINAPI *QueryVersion)(IGraphVersion *This,LONG *pVersion);
-    END_INTERFACE
-  } IGraphVersionVtbl;
-  struct IGraphVersion {
-    CONST_VTBL struct IGraphVersionVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IGraphVersion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IGraphVersion_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IGraphVersion_Release(This) (This)->lpVtbl->Release(This)
-#define IGraphVersion_QueryVersion(This,pVersion) (This)->lpVtbl->QueryVersion(This,pVersion)
-#endif
-#endif
-  HRESULT WINAPI IGraphVersion_QueryVersion_Proxy(IGraphVersion *This,LONG *pVersion);
-  void __RPC_STUB IGraphVersion_QueryVersion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IResourceConsumer_INTERFACE_DEFINED__
-#define __IResourceConsumer_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IResourceConsumer;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IResourceConsumer : public IUnknown {
-  public:
-    virtual HRESULT WINAPI AcquireResource(LONG idResource) = 0;
-    virtual HRESULT WINAPI ReleaseResource(LONG idResource) = 0;
-  };
-#else
-  typedef struct IResourceConsumerVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IResourceConsumer *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IResourceConsumer *This);
-      ULONG (WINAPI *Release)(IResourceConsumer *This);
-      HRESULT (WINAPI *AcquireResource)(IResourceConsumer *This,LONG idResource);
-      HRESULT (WINAPI *ReleaseResource)(IResourceConsumer *This,LONG idResource);
-    END_INTERFACE
-  } IResourceConsumerVtbl;
-  struct IResourceConsumer {
-    CONST_VTBL struct IResourceConsumerVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IResourceConsumer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IResourceConsumer_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IResourceConsumer_Release(This) (This)->lpVtbl->Release(This)
-#define IResourceConsumer_AcquireResource(This,idResource) (This)->lpVtbl->AcquireResource(This,idResource)
-#define IResourceConsumer_ReleaseResource(This,idResource) (This)->lpVtbl->ReleaseResource(This,idResource)
-#endif
-#endif
-  HRESULT WINAPI IResourceConsumer_AcquireResource_Proxy(IResourceConsumer *This,LONG idResource);
-  void __RPC_STUB IResourceConsumer_AcquireResource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IResourceConsumer_ReleaseResource_Proxy(IResourceConsumer *This,LONG idResource);
-  void __RPC_STUB IResourceConsumer_ReleaseResource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IResourceManager_INTERFACE_DEFINED__
-#define __IResourceManager_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IResourceManager;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IResourceManager : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Register(LPCWSTR pName,LONG cResource,LONG *plToken) = 0;
-    virtual HRESULT WINAPI RegisterGroup(LPCWSTR pName,LONG cResource,LONG *palTokens,LONG *plToken) = 0;
-    virtual HRESULT WINAPI RequestResource(LONG idResource,IUnknown *pFocusObject,IResourceConsumer *pConsumer) = 0;
-    virtual HRESULT WINAPI NotifyAcquire(LONG idResource,IResourceConsumer *pConsumer,HRESULT hr) = 0;
-    virtual HRESULT WINAPI NotifyRelease(LONG idResource,IResourceConsumer *pConsumer,WINBOOL bStillWant) = 0;
-    virtual HRESULT WINAPI CancelRequest(LONG idResource,IResourceConsumer *pConsumer) = 0;
-    virtual HRESULT WINAPI SetFocus(IUnknown *pFocusObject) = 0;
-    virtual HRESULT WINAPI ReleaseFocus(IUnknown *pFocusObject) = 0;
-  };
-#else
-  typedef struct IResourceManagerVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IResourceManager *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IResourceManager *This);
-      ULONG (WINAPI *Release)(IResourceManager *This);
-      HRESULT (WINAPI *Register)(IResourceManager *This,LPCWSTR pName,LONG cResource,LONG *plToken);
-      HRESULT (WINAPI *RegisterGroup)(IResourceManager *This,LPCWSTR pName,LONG cResource,LONG *palTokens,LONG *plToken);
-      HRESULT (WINAPI *RequestResource)(IResourceManager *This,LONG idResource,IUnknown *pFocusObject,IResourceConsumer *pConsumer);
-      HRESULT (WINAPI *NotifyAcquire)(IResourceManager *This,LONG idResource,IResourceConsumer *pConsumer,HRESULT hr);
-      HRESULT (WINAPI *NotifyRelease)(IResourceManager *This,LONG idResource,IResourceConsumer *pConsumer,WINBOOL bStillWant);
-      HRESULT (WINAPI *CancelRequest)(IResourceManager *This,LONG idResource,IResourceConsumer *pConsumer);
-      HRESULT (WINAPI *SetFocus)(IResourceManager *This,IUnknown *pFocusObject);
-      HRESULT (WINAPI *ReleaseFocus)(IResourceManager *This,IUnknown *pFocusObject);
-    END_INTERFACE
-  } IResourceManagerVtbl;
-  struct IResourceManager {
-    CONST_VTBL struct IResourceManagerVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IResourceManager_Release(This) (This)->lpVtbl->Release(This)
-#define IResourceManager_Register(This,pName,cResource,plToken) (This)->lpVtbl->Register(This,pName,cResource,plToken)
-#define IResourceManager_RegisterGroup(This,pName,cResource,palTokens,plToken) (This)->lpVtbl->RegisterGroup(This,pName,cResource,palTokens,plToken)
-#define IResourceManager_RequestResource(This,idResource,pFocusObject,pConsumer) (This)->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer)
-#define IResourceManager_NotifyAcquire(This,idResource,pConsumer,hr) (This)->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr)
-#define IResourceManager_NotifyRelease(This,idResource,pConsumer,bStillWant) (This)->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant)
-#define IResourceManager_CancelRequest(This,idResource,pConsumer) (This)->lpVtbl->CancelRequest(This,idResource,pConsumer)
-#define IResourceManager_SetFocus(This,pFocusObject) (This)->lpVtbl->SetFocus(This,pFocusObject)
-#define IResourceManager_ReleaseFocus(This,pFocusObject) (This)->lpVtbl->ReleaseFocus(This,pFocusObject)
-#endif
-#endif
-  HRESULT WINAPI IResourceManager_Register_Proxy(IResourceManager *This,LPCWSTR pName,LONG cResource,LONG *plToken);
-  void __RPC_STUB IResourceManager_Register_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IResourceManager_RegisterGroup_Proxy(IResourceManager *This,LPCWSTR pName,LONG cResource,LONG *palTokens,LONG *plToken);
-  void __RPC_STUB IResourceManager_RegisterGroup_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IResourceManager_RequestResource_Proxy(IResourceManager *This,LONG idResource,IUnknown *pFocusObject,IResourceConsumer *pConsumer);
-  void __RPC_STUB IResourceManager_RequestResource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IResourceManager_NotifyAcquire_Proxy(IResourceManager *This,LONG idResource,IResourceConsumer *pConsumer,HRESULT hr);
-  void __RPC_STUB IResourceManager_NotifyAcquire_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IResourceManager_NotifyRelease_Proxy(IResourceManager *This,LONG idResource,IResourceConsumer *pConsumer,WINBOOL bStillWant);
-  void __RPC_STUB IResourceManager_NotifyRelease_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IResourceManager_CancelRequest_Proxy(IResourceManager *This,LONG idResource,IResourceConsumer *pConsumer);
-  void __RPC_STUB IResourceManager_CancelRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IResourceManager_SetFocus_Proxy(IResourceManager *This,IUnknown *pFocusObject);
-  void __RPC_STUB IResourceManager_SetFocus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IResourceManager_ReleaseFocus_Proxy(IResourceManager *This,IUnknown *pFocusObject);
-  void __RPC_STUB IResourceManager_ReleaseFocus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IDistributorNotify_INTERFACE_DEFINED__
-#define __IDistributorNotify_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDistributorNotify;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDistributorNotify : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Stop(void) = 0;
-    virtual HRESULT WINAPI Pause(void) = 0;
-    virtual HRESULT WINAPI Run(REFERENCE_TIME tStart) = 0;
-    virtual HRESULT WINAPI SetSyncSource(IReferenceClock *pClock) = 0;
-    virtual HRESULT WINAPI NotifyGraphChange(void) = 0;
-  };
-#else
-  typedef struct IDistributorNotifyVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDistributorNotify *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDistributorNotify *This);
-      ULONG (WINAPI *Release)(IDistributorNotify *This);
-      HRESULT (WINAPI *Stop)(IDistributorNotify *This);
-      HRESULT (WINAPI *Pause)(IDistributorNotify *This);
-      HRESULT (WINAPI *Run)(IDistributorNotify *This,REFERENCE_TIME tStart);
-      HRESULT (WINAPI *SetSyncSource)(IDistributorNotify *This,IReferenceClock *pClock);
-      HRESULT (WINAPI *NotifyGraphChange)(IDistributorNotify *This);
-    END_INTERFACE
-  } IDistributorNotifyVtbl;
-  struct IDistributorNotify {
-    CONST_VTBL struct IDistributorNotifyVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDistributorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDistributorNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDistributorNotify_Release(This) (This)->lpVtbl->Release(This)
-#define IDistributorNotify_Stop(This) (This)->lpVtbl->Stop(This)
-#define IDistributorNotify_Pause(This) (This)->lpVtbl->Pause(This)
-#define IDistributorNotify_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
-#define IDistributorNotify_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
-#define IDistributorNotify_NotifyGraphChange(This) (This)->lpVtbl->NotifyGraphChange(This)
-#endif
-#endif
-  HRESULT WINAPI IDistributorNotify_Stop_Proxy(IDistributorNotify *This);
-  void __RPC_STUB IDistributorNotify_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDistributorNotify_Pause_Proxy(IDistributorNotify *This);
-  void __RPC_STUB IDistributorNotify_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDistributorNotify_Run_Proxy(IDistributorNotify *This,REFERENCE_TIME tStart);
-  void __RPC_STUB IDistributorNotify_Run_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDistributorNotify_SetSyncSource_Proxy(IDistributorNotify *This,IReferenceClock *pClock);
-  void __RPC_STUB IDistributorNotify_SetSyncSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDistributorNotify_NotifyGraphChange_Proxy(IDistributorNotify *This);
-  void __RPC_STUB IDistributorNotify_NotifyGraphChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum __MIDL___MIDL_itf_strmif_0160_0001 {
-    AM_STREAM_INFO_START_DEFINED = 0x1,AM_STREAM_INFO_STOP_DEFINED = 0x2,AM_STREAM_INFO_DISCARDING = 0x4,AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10
-  } AM_STREAM_INFO_FLAGS;
-
-  typedef struct __MIDL___MIDL_itf_strmif_0160_0002 {
-    REFERENCE_TIME tStart;
-    REFERENCE_TIME tStop;
-    DWORD dwStartCookie;
-    DWORD dwStopCookie;
-    DWORD dwFlags;
-  } AM_STREAM_INFO;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0160_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0160_v0_0_s_ifspec;
-#ifndef __IAMStreamControl_INTERFACE_DEFINED__
-#define __IAMStreamControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMStreamControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMStreamControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI StartAt(const REFERENCE_TIME *ptStart,DWORD dwCookie) = 0;
-    virtual HRESULT WINAPI StopAt(const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie) = 0;
-    virtual HRESULT WINAPI GetInfo(AM_STREAM_INFO *pInfo) = 0;
-  };
-#else
-  typedef struct IAMStreamControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMStreamControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMStreamControl *This);
-      ULONG (WINAPI *Release)(IAMStreamControl *This);
-      HRESULT (WINAPI *StartAt)(IAMStreamControl *This,const REFERENCE_TIME *ptStart,DWORD dwCookie);
-      HRESULT (WINAPI *StopAt)(IAMStreamControl *This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie);
-      HRESULT (WINAPI *GetInfo)(IAMStreamControl *This,AM_STREAM_INFO *pInfo);
-    END_INTERFACE
-  } IAMStreamControlVtbl;
-  struct IAMStreamControl {
-    CONST_VTBL struct IAMStreamControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMStreamControl_Release(This) (This)->lpVtbl->Release(This)
-#define IAMStreamControl_StartAt(This,ptStart,dwCookie) (This)->lpVtbl->StartAt(This,ptStart,dwCookie)
-#define IAMStreamControl_StopAt(This,ptStop,bSendExtra,dwCookie) (This)->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie)
-#define IAMStreamControl_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
-#endif
-#endif
-  HRESULT WINAPI IAMStreamControl_StartAt_Proxy(IAMStreamControl *This,const REFERENCE_TIME *ptStart,DWORD dwCookie);
-  void __RPC_STUB IAMStreamControl_StartAt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMStreamControl_StopAt_Proxy(IAMStreamControl *This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie);
-  void __RPC_STUB IAMStreamControl_StopAt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMStreamControl_GetInfo_Proxy(IAMStreamControl *This,AM_STREAM_INFO *pInfo);
-  void __RPC_STUB IAMStreamControl_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISeekingPassThru_INTERFACE_DEFINED__
-#define __ISeekingPassThru_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISeekingPassThru;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISeekingPassThru : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Init(WINBOOL bSupportRendering,IPin *pPin) = 0;
-  };
-#else
-  typedef struct ISeekingPassThruVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISeekingPassThru *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISeekingPassThru *This);
-      ULONG (WINAPI *Release)(ISeekingPassThru *This);
-      HRESULT (WINAPI *Init)(ISeekingPassThru *This,WINBOOL bSupportRendering,IPin *pPin);
-    END_INTERFACE
-  } ISeekingPassThruVtbl;
-  struct ISeekingPassThru {
-    CONST_VTBL struct ISeekingPassThruVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISeekingPassThru_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISeekingPassThru_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISeekingPassThru_Release(This) (This)->lpVtbl->Release(This)
-#define ISeekingPassThru_Init(This,bSupportRendering,pPin) (This)->lpVtbl->Init(This,bSupportRendering,pPin)
-#endif
-#endif
-  HRESULT WINAPI ISeekingPassThru_Init_Proxy(ISeekingPassThru *This,WINBOOL bSupportRendering,IPin *pPin);
-  void __RPC_STUB ISeekingPassThru_Init_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMStreamConfig_INTERFACE_DEFINED__
-#define __IAMStreamConfig_INTERFACE_DEFINED__
-  typedef struct _VIDEO_STREAM_CONFIG_CAPS {
-    GUID guid;
-    ULONG VideoStandard;
-    SIZE InputSize;
-    SIZE MinCroppingSize;
-    SIZE MaxCroppingSize;
-    int CropGranularityX;
-    int CropGranularityY;
-    int CropAlignX;
-    int CropAlignY;
-    SIZE MinOutputSize;
-    SIZE MaxOutputSize;
-    int OutputGranularityX;
-    int OutputGranularityY;
-    int StretchTapsX;
-    int StretchTapsY;
-    int ShrinkTapsX;
-    int ShrinkTapsY;
-    LONGLONG MinFrameInterval;
-    LONGLONG MaxFrameInterval;
-    LONG MinBitsPerSecond;
-    LONG MaxBitsPerSecond;
-  } VIDEO_STREAM_CONFIG_CAPS;
-
-  typedef struct _AUDIO_STREAM_CONFIG_CAPS {
-    GUID guid;
-    ULONG MinimumChannels;
-    ULONG MaximumChannels;
-    ULONG ChannelsGranularity;
-    ULONG MinimumBitsPerSample;
-    ULONG MaximumBitsPerSample;
-    ULONG BitsPerSampleGranularity;
-    ULONG MinimumSampleFrequency;
-    ULONG MaximumSampleFrequency;
-    ULONG SampleFrequencyGranularity;
-  } AUDIO_STREAM_CONFIG_CAPS;
-
-  EXTERN_C const IID IID_IAMStreamConfig;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMStreamConfig : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetFormat(AM_MEDIA_TYPE *pmt) = 0;
-    virtual HRESULT WINAPI GetFormat(AM_MEDIA_TYPE **ppmt) = 0;
-    virtual HRESULT WINAPI GetNumberOfCapabilities(int *piCount,int *piSize) = 0;
-    virtual HRESULT WINAPI GetStreamCaps(int iIndex,AM_MEDIA_TYPE **ppmt,BYTE *pSCC) = 0;
-  };
-#else
-  typedef struct IAMStreamConfigVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMStreamConfig *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMStreamConfig *This);
-      ULONG (WINAPI *Release)(IAMStreamConfig *This);
-      HRESULT (WINAPI *SetFormat)(IAMStreamConfig *This,AM_MEDIA_TYPE *pmt);
-      HRESULT (WINAPI *GetFormat)(IAMStreamConfig *This,AM_MEDIA_TYPE **ppmt);
-      HRESULT (WINAPI *GetNumberOfCapabilities)(IAMStreamConfig *This,int *piCount,int *piSize);
-      HRESULT (WINAPI *GetStreamCaps)(IAMStreamConfig *This,int iIndex,AM_MEDIA_TYPE **ppmt,BYTE *pSCC);
-    END_INTERFACE
-  } IAMStreamConfigVtbl;
-  struct IAMStreamConfig {
-    CONST_VTBL struct IAMStreamConfigVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMStreamConfig_Release(This) (This)->lpVtbl->Release(This)
-#define IAMStreamConfig_SetFormat(This,pmt) (This)->lpVtbl->SetFormat(This,pmt)
-#define IAMStreamConfig_GetFormat(This,ppmt) (This)->lpVtbl->GetFormat(This,ppmt)
-#define IAMStreamConfig_GetNumberOfCapabilities(This,piCount,piSize) (This)->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize)
-#define IAMStreamConfig_GetStreamCaps(This,iIndex,ppmt,pSCC) (This)->lpVtbl->GetStreamCaps(This,iIndex,ppmt,pSCC)
-#endif
-#endif
-  HRESULT WINAPI IAMStreamConfig_SetFormat_Proxy(IAMStreamConfig *This,AM_MEDIA_TYPE *pmt);
-  void __RPC_STUB IAMStreamConfig_SetFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMStreamConfig_GetFormat_Proxy(IAMStreamConfig *This,AM_MEDIA_TYPE **ppmt);
-  void __RPC_STUB IAMStreamConfig_GetFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMStreamConfig_GetNumberOfCapabilities_Proxy(IAMStreamConfig *This,int *piCount,int *piSize);
-  void __RPC_STUB IAMStreamConfig_GetNumberOfCapabilities_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMStreamConfig_GetStreamCaps_Proxy(IAMStreamConfig *This,int iIndex,AM_MEDIA_TYPE **ppmt,BYTE *pSCC);
-  void __RPC_STUB IAMStreamConfig_GetStreamCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IConfigInterleaving_INTERFACE_DEFINED__
-#define __IConfigInterleaving_INTERFACE_DEFINED__
-  typedef enum __MIDL_IConfigInterleaving_0001 {
-    INTERLEAVE_NONE = 0,
-    INTERLEAVE_CAPTURE,INTERLEAVE_FULL,INTERLEAVE_NONE_BUFFERED
-  } InterleavingMode;
-
-  EXTERN_C const IID IID_IConfigInterleaving;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IConfigInterleaving : public IUnknown {
-  public:
-    virtual HRESULT WINAPI put_Mode(InterleavingMode mode) = 0;
-    virtual HRESULT WINAPI get_Mode(InterleavingMode *pMode) = 0;
-    virtual HRESULT WINAPI put_Interleaving(const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll) = 0;
-    virtual HRESULT WINAPI get_Interleaving(REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll) = 0;
-  };
-#else
-  typedef struct IConfigInterleavingVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IConfigInterleaving *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IConfigInterleaving *This);
-      ULONG (WINAPI *Release)(IConfigInterleaving *This);
-      HRESULT (WINAPI *put_Mode)(IConfigInterleaving *This,InterleavingMode mode);
-      HRESULT (WINAPI *get_Mode)(IConfigInterleaving *This,InterleavingMode *pMode);
-      HRESULT (WINAPI *put_Interleaving)(IConfigInterleaving *This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll);
-      HRESULT (WINAPI *get_Interleaving)(IConfigInterleaving *This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll);
-    END_INTERFACE
-  } IConfigInterleavingVtbl;
-  struct IConfigInterleaving {
-    CONST_VTBL struct IConfigInterleavingVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IConfigInterleaving_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IConfigInterleaving_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IConfigInterleaving_Release(This) (This)->lpVtbl->Release(This)
-#define IConfigInterleaving_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
-#define IConfigInterleaving_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
-#define IConfigInterleaving_put_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll)
-#define IConfigInterleaving_get_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll)
-#endif
-#endif
-  HRESULT WINAPI IConfigInterleaving_put_Mode_Proxy(IConfigInterleaving *This,InterleavingMode mode);
-  void __RPC_STUB IConfigInterleaving_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IConfigInterleaving_get_Mode_Proxy(IConfigInterleaving *This,InterleavingMode *pMode);
-  void __RPC_STUB IConfigInterleaving_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IConfigInterleaving_put_Interleaving_Proxy(IConfigInterleaving *This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll);
-  void __RPC_STUB IConfigInterleaving_put_Interleaving_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IConfigInterleaving_get_Interleaving_Proxy(IConfigInterleaving *This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll);
-  void __RPC_STUB IConfigInterleaving_get_Interleaving_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IConfigAviMux_INTERFACE_DEFINED__
-#define __IConfigAviMux_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IConfigAviMux;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IConfigAviMux : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetMasterStream(LONG iStream) = 0;
-    virtual HRESULT WINAPI GetMasterStream(LONG *pStream) = 0;
-    virtual HRESULT WINAPI SetOutputCompatibilityIndex(WINBOOL fOldIndex) = 0;
-    virtual HRESULT WINAPI GetOutputCompatibilityIndex(WINBOOL *pfOldIndex) = 0;
-  };
-#else
-  typedef struct IConfigAviMuxVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IConfigAviMux *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IConfigAviMux *This);
-      ULONG (WINAPI *Release)(IConfigAviMux *This);
-      HRESULT (WINAPI *SetMasterStream)(IConfigAviMux *This,LONG iStream);
-      HRESULT (WINAPI *GetMasterStream)(IConfigAviMux *This,LONG *pStream);
-      HRESULT (WINAPI *SetOutputCompatibilityIndex)(IConfigAviMux *This,WINBOOL fOldIndex);
-      HRESULT (WINAPI *GetOutputCompatibilityIndex)(IConfigAviMux *This,WINBOOL *pfOldIndex);
-    END_INTERFACE
-  } IConfigAviMuxVtbl;
-  struct IConfigAviMux {
-    CONST_VTBL struct IConfigAviMuxVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IConfigAviMux_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IConfigAviMux_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IConfigAviMux_Release(This) (This)->lpVtbl->Release(This)
-#define IConfigAviMux_SetMasterStream(This,iStream) (This)->lpVtbl->SetMasterStream(This,iStream)
-#define IConfigAviMux_GetMasterStream(This,pStream) (This)->lpVtbl->GetMasterStream(This,pStream)
-#define IConfigAviMux_SetOutputCompatibilityIndex(This,fOldIndex) (This)->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex)
-#define IConfigAviMux_GetOutputCompatibilityIndex(This,pfOldIndex) (This)->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex)
-#endif
-#endif
-  HRESULT WINAPI IConfigAviMux_SetMasterStream_Proxy(IConfigAviMux *This,LONG iStream);
-  void __RPC_STUB IConfigAviMux_SetMasterStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IConfigAviMux_GetMasterStream_Proxy(IConfigAviMux *This,LONG *pStream);
-  void __RPC_STUB IConfigAviMux_GetMasterStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IConfigAviMux_SetOutputCompatibilityIndex_Proxy(IConfigAviMux *This,WINBOOL fOldIndex);
-  void __RPC_STUB IConfigAviMux_SetOutputCompatibilityIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IConfigAviMux_GetOutputCompatibilityIndex_Proxy(IConfigAviMux *This,WINBOOL *pfOldIndex);
-  void __RPC_STUB IConfigAviMux_GetOutputCompatibilityIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum __MIDL___MIDL_itf_strmif_0167_0001 {
-    CompressionCaps_CanQuality = 0x1,CompressionCaps_CanCrunch = 0x2,CompressionCaps_CanKeyFrame = 0x4,CompressionCaps_CanBFrame = 0x8,
-    CompressionCaps_CanWindow = 0x10
-  } CompressionCaps;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_s_ifspec;
-#ifndef __IAMVideoCompression_INTERFACE_DEFINED__
-#define __IAMVideoCompression_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMVideoCompression;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMVideoCompression : public IUnknown {
-  public:
-    virtual HRESULT WINAPI put_KeyFrameRate(long KeyFrameRate) = 0;
-    virtual HRESULT WINAPI get_KeyFrameRate(long *pKeyFrameRate) = 0;
-    virtual HRESULT WINAPI put_PFramesPerKeyFrame(long PFramesPerKeyFrame) = 0;
-    virtual HRESULT WINAPI get_PFramesPerKeyFrame(long *pPFramesPerKeyFrame) = 0;
-    virtual HRESULT WINAPI put_Quality(double Quality) = 0;
-    virtual HRESULT WINAPI get_Quality(double *pQuality) = 0;
-    virtual HRESULT WINAPI put_WindowSize(DWORDLONG WindowSize) = 0;
-    virtual HRESULT WINAPI get_WindowSize(DWORDLONG *pWindowSize) = 0;
-    virtual HRESULT WINAPI GetInfo(WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,long *pDefaultKeyFrameRate,long *pDefaultPFramesPerKey,double *pDefaultQuality,long *pCapabilities) = 0;
-    virtual HRESULT WINAPI OverrideKeyFrame(long FrameNumber) = 0;
-    virtual HRESULT WINAPI OverrideFrameSize(long FrameNumber,long Size) = 0;
-  };
-#else
-  typedef struct IAMVideoCompressionVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMVideoCompression *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMVideoCompression *This);
-      ULONG (WINAPI *Release)(IAMVideoCompression *This);
-      HRESULT (WINAPI *put_KeyFrameRate)(IAMVideoCompression *This,long KeyFrameRate);
-      HRESULT (WINAPI *get_KeyFrameRate)(IAMVideoCompression *This,long *pKeyFrameRate);
-      HRESULT (WINAPI *put_PFramesPerKeyFrame)(IAMVideoCompression *This,long PFramesPerKeyFrame);
-      HRESULT (WINAPI *get_PFramesPerKeyFrame)(IAMVideoCompression *This,long *pPFramesPerKeyFrame);
-      HRESULT (WINAPI *put_Quality)(IAMVideoCompression *This,double Quality);
-      HRESULT (WINAPI *get_Quality)(IAMVideoCompression *This,double *pQuality);
-      HRESULT (WINAPI *put_WindowSize)(IAMVideoCompression *This,DWORDLONG WindowSize);
-      HRESULT (WINAPI *get_WindowSize)(IAMVideoCompression *This,DWORDLONG *pWindowSize);
-      HRESULT (WINAPI *GetInfo)(IAMVideoCompression *This,WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,long *pDefaultKeyFrameRate,long *pDefaultPFramesPerKey,double *pDefaultQuality,long *pCapabilities);
-      HRESULT (WINAPI *OverrideKeyFrame)(IAMVideoCompression *This,long FrameNumber);
-      HRESULT (WINAPI *OverrideFrameSize)(IAMVideoCompression *This,long FrameNumber,long Size);
-    END_INTERFACE
-  } IAMVideoCompressionVtbl;
-  struct IAMVideoCompression {
-    CONST_VTBL struct IAMVideoCompressionVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMVideoCompression_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMVideoCompression_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMVideoCompression_Release(This) (This)->lpVtbl->Release(This)
-#define IAMVideoCompression_put_KeyFrameRate(This,KeyFrameRate) (This)->lpVtbl->put_KeyFrameRate(This,KeyFrameRate)
-#define IAMVideoCompression_get_KeyFrameRate(This,pKeyFrameRate) (This)->lpVtbl->get_KeyFrameRate(This,pKeyFrameRate)
-#define IAMVideoCompression_put_PFramesPerKeyFrame(This,PFramesPerKeyFrame) (This)->lpVtbl->put_PFramesPerKeyFrame(This,PFramesPerKeyFrame)
-#define IAMVideoCompression_get_PFramesPerKeyFrame(This,pPFramesPerKeyFrame) (This)->lpVtbl->get_PFramesPerKeyFrame(This,pPFramesPerKeyFrame)
-#define IAMVideoCompression_put_Quality(This,Quality) (This)->lpVtbl->put_Quality(This,Quality)
-#define IAMVideoCompression_get_Quality(This,pQuality) (This)->lpVtbl->get_Quality(This,pQuality)
-#define IAMVideoCompression_put_WindowSize(This,WindowSize) (This)->lpVtbl->put_WindowSize(This,WindowSize)
-#define IAMVideoCompression_get_WindowSize(This,pWindowSize) (This)->lpVtbl->get_WindowSize(This,pWindowSize)
-#define IAMVideoCompression_GetInfo(This,pszVersion,pcbVersion,pszDescription,pcbDescription,pDefaultKeyFrameRate,pDefaultPFramesPerKey,pDefaultQuality,pCapabilities) (This)->lpVtbl->GetInfo(This,pszVersion,pcbVersion,pszDescription,pcbDescription,pDefaultKeyFrameRate,pDefaultPFramesPerKey,pDefaultQuality,pCapabilities)
-#define IAMVideoCompression_OverrideKeyFrame(This,FrameNumber) (This)->lpVtbl->OverrideKeyFrame(This,FrameNumber)
-#define IAMVideoCompression_OverrideFrameSize(This,FrameNumber,Size) (This)->lpVtbl->OverrideFrameSize(This,FrameNumber,Size)
-#endif
-#endif
-  HRESULT WINAPI IAMVideoCompression_put_KeyFrameRate_Proxy(IAMVideoCompression *This,long KeyFrameRate);
-  void __RPC_STUB IAMVideoCompression_put_KeyFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_get_KeyFrameRate_Proxy(IAMVideoCompression *This,long *pKeyFrameRate);
-  void __RPC_STUB IAMVideoCompression_get_KeyFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_put_PFramesPerKeyFrame_Proxy(IAMVideoCompression *This,long PFramesPerKeyFrame);
-  void __RPC_STUB IAMVideoCompression_put_PFramesPerKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_get_PFramesPerKeyFrame_Proxy(IAMVideoCompression *This,long *pPFramesPerKeyFrame);
-  void __RPC_STUB IAMVideoCompression_get_PFramesPerKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_put_Quality_Proxy(IAMVideoCompression *This,double Quality);
-  void __RPC_STUB IAMVideoCompression_put_Quality_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_get_Quality_Proxy(IAMVideoCompression *This,double *pQuality);
-  void __RPC_STUB IAMVideoCompression_get_Quality_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_put_WindowSize_Proxy(IAMVideoCompression *This,DWORDLONG WindowSize);
-  void __RPC_STUB IAMVideoCompression_put_WindowSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_get_WindowSize_Proxy(IAMVideoCompression *This,DWORDLONG *pWindowSize);
-  void __RPC_STUB IAMVideoCompression_get_WindowSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_GetInfo_Proxy(IAMVideoCompression *This,WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,long *pDefaultKeyFrameRate,long *pDefaultPFramesPerKey,double *pDefaultQuality,long *pCapabilities);
-  void __RPC_STUB IAMVideoCompression_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_OverrideKeyFrame_Proxy(IAMVideoCompression *This,long FrameNumber);
-  void __RPC_STUB IAMVideoCompression_OverrideKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_OverrideFrameSize_Proxy(IAMVideoCompression *This,long FrameNumber,long Size);
-  void __RPC_STUB IAMVideoCompression_OverrideFrameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum __MIDL___MIDL_itf_strmif_0168_0001 {
-    VfwCaptureDialog_Source = 0x1,VfwCaptureDialog_Format = 0x2,VfwCaptureDialog_Display = 0x4
-  } VfwCaptureDialogs;
-
-  typedef enum __MIDL___MIDL_itf_strmif_0168_0002 {
-    VfwCompressDialog_Config = 0x1,VfwCompressDialog_About = 0x2,VfwCompressDialog_QueryConfig = 0x4,VfwCompressDialog_QueryAbout = 0x8
-  } VfwCompressDialogs;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0168_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0168_v0_0_s_ifspec;
-#ifndef __IAMVfwCaptureDialogs_INTERFACE_DEFINED__
-#define __IAMVfwCaptureDialogs_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMVfwCaptureDialogs;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMVfwCaptureDialogs : public IUnknown {
-  public:
-    virtual HRESULT WINAPI HasDialog(int iDialog) = 0;
-    virtual HRESULT WINAPI ShowDialog(int iDialog,HWND hwnd) = 0;
-    virtual HRESULT WINAPI SendDriverMessage(int iDialog,int uMsg,long dw1,long dw2) = 0;
-  };
-#else
-  typedef struct IAMVfwCaptureDialogsVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMVfwCaptureDialogs *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMVfwCaptureDialogs *This);
-      ULONG (WINAPI *Release)(IAMVfwCaptureDialogs *This);
-      HRESULT (WINAPI *HasDialog)(IAMVfwCaptureDialogs *This,int iDialog);
-      HRESULT (WINAPI *ShowDialog)(IAMVfwCaptureDialogs *This,int iDialog,HWND hwnd);
-      HRESULT (WINAPI *SendDriverMessage)(IAMVfwCaptureDialogs *This,int iDialog,int uMsg,long dw1,long dw2);
-    END_INTERFACE
-  } IAMVfwCaptureDialogsVtbl;
-  struct IAMVfwCaptureDialogs {
-    CONST_VTBL struct IAMVfwCaptureDialogsVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMVfwCaptureDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMVfwCaptureDialogs_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMVfwCaptureDialogs_Release(This) (This)->lpVtbl->Release(This)
-#define IAMVfwCaptureDialogs_HasDialog(This,iDialog) (This)->lpVtbl->HasDialog(This,iDialog)
-#define IAMVfwCaptureDialogs_ShowDialog(This,iDialog,hwnd) (This)->lpVtbl->ShowDialog(This,iDialog,hwnd)
-#define IAMVfwCaptureDialogs_SendDriverMessage(This,iDialog,uMsg,dw1,dw2) (This)->lpVtbl->SendDriverMessage(This,iDialog,uMsg,dw1,dw2)
-#endif
-#endif
-  HRESULT WINAPI IAMVfwCaptureDialogs_HasDialog_Proxy(IAMVfwCaptureDialogs *This,int iDialog);
-  void __RPC_STUB IAMVfwCaptureDialogs_HasDialog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVfwCaptureDialogs_ShowDialog_Proxy(IAMVfwCaptureDialogs *This,int iDialog,HWND hwnd);
-  void __RPC_STUB IAMVfwCaptureDialogs_ShowDialog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVfwCaptureDialogs_SendDriverMessage_Proxy(IAMVfwCaptureDialogs *This,int iDialog,int uMsg,long dw1,long dw2);
-  void __RPC_STUB IAMVfwCaptureDialogs_SendDriverMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMVfwCompressDialogs_INTERFACE_DEFINED__
-#define __IAMVfwCompressDialogs_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMVfwCompressDialogs;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMVfwCompressDialogs : public IUnknown {
-  public:
-    virtual HRESULT WINAPI ShowDialog(int iDialog,HWND hwnd) = 0;
-    virtual HRESULT WINAPI GetState(LPVOID pState,int *pcbState) = 0;
-    virtual HRESULT WINAPI SetState(LPVOID pState,int cbState) = 0;
-    virtual HRESULT WINAPI SendDriverMessage(int uMsg,long dw1,long dw2) = 0;
-  };
-#else
-  typedef struct IAMVfwCompressDialogsVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMVfwCompressDialogs *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMVfwCompressDialogs *This);
-      ULONG (WINAPI *Release)(IAMVfwCompressDialogs *This);
-      HRESULT (WINAPI *ShowDialog)(IAMVfwCompressDialogs *This,int iDialog,HWND hwnd);
-      HRESULT (WINAPI *GetState)(IAMVfwCompressDialogs *This,LPVOID pState,int *pcbState);
-      HRESULT (WINAPI *SetState)(IAMVfwCompressDialogs *This,LPVOID pState,int cbState);
-      HRESULT (WINAPI *SendDriverMessage)(IAMVfwCompressDialogs *This,int uMsg,long dw1,long dw2);
-    END_INTERFACE
-  } IAMVfwCompressDialogsVtbl;
-  struct IAMVfwCompressDialogs {
-    CONST_VTBL struct IAMVfwCompressDialogsVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMVfwCompressDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMVfwCompressDialogs_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMVfwCompressDialogs_Release(This) (This)->lpVtbl->Release(This)
-#define IAMVfwCompressDialogs_ShowDialog(This,iDialog,hwnd) (This)->lpVtbl->ShowDialog(This,iDialog,hwnd)
-#define IAMVfwCompressDialogs_GetState(This,pState,pcbState) (This)->lpVtbl->GetState(This,pState,pcbState)
-#define IAMVfwCompressDialogs_SetState(This,pState,cbState) (This)->lpVtbl->SetState(This,pState,cbState)
-#define IAMVfwCompressDialogs_SendDriverMessage(This,uMsg,dw1,dw2) (This)->lpVtbl->SendDriverMessage(This,uMsg,dw1,dw2)
-#endif
-#endif
-  HRESULT WINAPI IAMVfwCompressDialogs_ShowDialog_Proxy(IAMVfwCompressDialogs *This,int iDialog,HWND hwnd);
-  void __RPC_STUB IAMVfwCompressDialogs_ShowDialog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVfwCompressDialogs_GetState_Proxy(IAMVfwCompressDialogs *This,LPVOID pState,int *pcbState);
-  void __RPC_STUB IAMVfwCompressDialogs_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVfwCompressDialogs_SetState_Proxy(IAMVfwCompressDialogs *This,LPVOID pState,int cbState);
-  void __RPC_STUB IAMVfwCompressDialogs_SetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVfwCompressDialogs_SendDriverMessage_Proxy(IAMVfwCompressDialogs *This,int uMsg,long dw1,long dw2);
-  void __RPC_STUB IAMVfwCompressDialogs_SendDriverMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMDroppedFrames_INTERFACE_DEFINED__
-#define __IAMDroppedFrames_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMDroppedFrames;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMDroppedFrames : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetNumDropped(long *plDropped) = 0;
-    virtual HRESULT WINAPI GetNumNotDropped(long *plNotDropped) = 0;
-    virtual HRESULT WINAPI GetDroppedInfo(long lSize,long *plArray,long *plNumCopied) = 0;
-    virtual HRESULT WINAPI GetAverageFrameSize(long *plAverageSize) = 0;
-  };
-#else
-  typedef struct IAMDroppedFramesVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMDroppedFrames *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMDroppedFrames *This);
-      ULONG (WINAPI *Release)(IAMDroppedFrames *This);
-      HRESULT (WINAPI *GetNumDropped)(IAMDroppedFrames *This,long *plDropped);
-      HRESULT (WINAPI *GetNumNotDropped)(IAMDroppedFrames *This,long *plNotDropped);
-      HRESULT (WINAPI *GetDroppedInfo)(IAMDroppedFrames *This,long lSize,long *plArray,long *plNumCopied);
-      HRESULT (WINAPI *GetAverageFrameSize)(IAMDroppedFrames *This,long *plAverageSize);
-    END_INTERFACE
-  } IAMDroppedFramesVtbl;
-  struct IAMDroppedFrames {
-    CONST_VTBL struct IAMDroppedFramesVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMDroppedFrames_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMDroppedFrames_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMDroppedFrames_Release(This) (This)->lpVtbl->Release(This)
-#define IAMDroppedFrames_GetNumDropped(This,plDropped) (This)->lpVtbl->GetNumDropped(This,plDropped)
-#define IAMDroppedFrames_GetNumNotDropped(This,plNotDropped) (This)->lpVtbl->GetNumNotDropped(This,plNotDropped)
-#define IAMDroppedFrames_GetDroppedInfo(This,lSize,plArray,plNumCopied) (This)->lpVtbl->GetDroppedInfo(This,lSize,plArray,plNumCopied)
-#define IAMDroppedFrames_GetAverageFrameSize(This,plAverageSize) (This)->lpVtbl->GetAverageFrameSize(This,plAverageSize)
-#endif
-#endif
-  HRESULT WINAPI IAMDroppedFrames_GetNumDropped_Proxy(IAMDroppedFrames *This,long *plDropped);
-  void __RPC_STUB IAMDroppedFrames_GetNumDropped_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDroppedFrames_GetNumNotDropped_Proxy(IAMDroppedFrames *This,long *plNotDropped);
-  void __RPC_STUB IAMDroppedFrames_GetNumNotDropped_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDroppedFrames_GetDroppedInfo_Proxy(IAMDroppedFrames *This,long lSize,long *plArray,long *plNumCopied);
-  void __RPC_STUB IAMDroppedFrames_GetDroppedInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDroppedFrames_GetAverageFrameSize_Proxy(IAMDroppedFrames *This,long *plAverageSize);
-  void __RPC_STUB IAMDroppedFrames_GetAverageFrameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#define AMF_AUTOMATICGAIN -1.0
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_s_ifspec;
-#ifndef __IAMAudioInputMixer_INTERFACE_DEFINED__
-#define __IAMAudioInputMixer_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMAudioInputMixer;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMAudioInputMixer : public IUnknown {
-  public:
-    virtual HRESULT WINAPI put_Enable(WINBOOL fEnable) = 0;
-    virtual HRESULT WINAPI get_Enable(WINBOOL *pfEnable) = 0;
-    virtual HRESULT WINAPI put_Mono(WINBOOL fMono) = 0;
-    virtual HRESULT WINAPI get_Mono(WINBOOL *pfMono) = 0;
-    virtual HRESULT WINAPI put_MixLevel(double Level) = 0;
-    virtual HRESULT WINAPI get_MixLevel(double *pLevel) = 0;
-    virtual HRESULT WINAPI put_Pan(double Pan) = 0;
-    virtual HRESULT WINAPI get_Pan(double *pPan) = 0;
-    virtual HRESULT WINAPI put_Loudness(WINBOOL fLoudness) = 0;
-    virtual HRESULT WINAPI get_Loudness(WINBOOL *pfLoudness) = 0;
-    virtual HRESULT WINAPI put_Treble(double Treble) = 0;
-    virtual HRESULT WINAPI get_Treble(double *pTreble) = 0;
-    virtual HRESULT WINAPI get_TrebleRange(double *pRange) = 0;
-    virtual HRESULT WINAPI put_Bass(double Bass) = 0;
-    virtual HRESULT WINAPI get_Bass(double *pBass) = 0;
-    virtual HRESULT WINAPI get_BassRange(double *pRange) = 0;
-  };
-#else
-  typedef struct IAMAudioInputMixerVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMAudioInputMixer *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMAudioInputMixer *This);
-      ULONG (WINAPI *Release)(IAMAudioInputMixer *This);
-      HRESULT (WINAPI *put_Enable)(IAMAudioInputMixer *This,WINBOOL fEnable);
-      HRESULT (WINAPI *get_Enable)(IAMAudioInputMixer *This,WINBOOL *pfEnable);
-      HRESULT (WINAPI *put_Mono)(IAMAudioInputMixer *This,WINBOOL fMono);
-      HRESULT (WINAPI *get_Mono)(IAMAudioInputMixer *This,WINBOOL *pfMono);
-      HRESULT (WINAPI *put_MixLevel)(IAMAudioInputMixer *This,double Level);
-      HRESULT (WINAPI *get_MixLevel)(IAMAudioInputMixer *This,double *pLevel);
-      HRESULT (WINAPI *put_Pan)(IAMAudioInputMixer *This,double Pan);
-      HRESULT (WINAPI *get_Pan)(IAMAudioInputMixer *This,double *pPan);
-      HRESULT (WINAPI *put_Loudness)(IAMAudioInputMixer *This,WINBOOL fLoudness);
-      HRESULT (WINAPI *get_Loudness)(IAMAudioInputMixer *This,WINBOOL *pfLoudness);
-      HRESULT (WINAPI *put_Treble)(IAMAudioInputMixer *This,double Treble);
-      HRESULT (WINAPI *get_Treble)(IAMAudioInputMixer *This,double *pTreble);
-      HRESULT (WINAPI *get_TrebleRange)(IAMAudioInputMixer *This,double *pRange);
-      HRESULT (WINAPI *put_Bass)(IAMAudioInputMixer *This,double Bass);
-      HRESULT (WINAPI *get_Bass)(IAMAudioInputMixer *This,double *pBass);
-      HRESULT (WINAPI *get_BassRange)(IAMAudioInputMixer *This,double *pRange);
-    END_INTERFACE
-  } IAMAudioInputMixerVtbl;
-  struct IAMAudioInputMixer {
-    CONST_VTBL struct IAMAudioInputMixerVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMAudioInputMixer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMAudioInputMixer_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMAudioInputMixer_Release(This) (This)->lpVtbl->Release(This)
-#define IAMAudioInputMixer_put_Enable(This,fEnable) (This)->lpVtbl->put_Enable(This,fEnable)
-#define IAMAudioInputMixer_get_Enable(This,pfEnable) (This)->lpVtbl->get_Enable(This,pfEnable)
-#define IAMAudioInputMixer_put_Mono(This,fMono) (This)->lpVtbl->put_Mono(This,fMono)
-#define IAMAudioInputMixer_get_Mono(This,pfMono) (This)->lpVtbl->get_Mono(This,pfMono)
-#define IAMAudioInputMixer_put_MixLevel(This,Level) (This)->lpVtbl->put_MixLevel(This,Level)
-#define IAMAudioInputMixer_get_MixLevel(This,pLevel) (This)->lpVtbl->get_MixLevel(This,pLevel)
-#define IAMAudioInputMixer_put_Pan(This,Pan) (This)->lpVtbl->put_Pan(This,Pan)
-#define IAMAudioInputMixer_get_Pan(This,pPan) (This)->lpVtbl->get_Pan(This,pPan)
-#define IAMAudioInputMixer_put_Loudness(This,fLoudness) (This)->lpVtbl->put_Loudness(This,fLoudness)
-#define IAMAudioInputMixer_get_Loudness(This,pfLoudness) (This)->lpVtbl->get_Loudness(This,pfLoudness)
-#define IAMAudioInputMixer_put_Treble(This,Treble) (This)->lpVtbl->put_Treble(This,Treble)
-#define IAMAudioInputMixer_get_Treble(This,pTreble) (This)->lpVtbl->get_Treble(This,pTreble)
-#define IAMAudioInputMixer_get_TrebleRange(This,pRange) (This)->lpVtbl->get_TrebleRange(This,pRange)
-#define IAMAudioInputMixer_put_Bass(This,Bass) (This)->lpVtbl->put_Bass(This,Bass)
-#define IAMAudioInputMixer_get_Bass(This,pBass) (This)->lpVtbl->get_Bass(This,pBass)
-#define IAMAudioInputMixer_get_BassRange(This,pRange) (This)->lpVtbl->get_BassRange(This,pRange)
-#endif
-#endif
-  HRESULT WINAPI IAMAudioInputMixer_put_Enable_Proxy(IAMAudioInputMixer *This,WINBOOL fEnable);
-  void __RPC_STUB IAMAudioInputMixer_put_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_get_Enable_Proxy(IAMAudioInputMixer *This,WINBOOL *pfEnable);
-  void __RPC_STUB IAMAudioInputMixer_get_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_put_Mono_Proxy(IAMAudioInputMixer *This,WINBOOL fMono);
-  void __RPC_STUB IAMAudioInputMixer_put_Mono_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_get_Mono_Proxy(IAMAudioInputMixer *This,WINBOOL *pfMono);
-  void __RPC_STUB IAMAudioInputMixer_get_Mono_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_put_MixLevel_Proxy(IAMAudioInputMixer *This,double Level);
-  void __RPC_STUB IAMAudioInputMixer_put_MixLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_get_MixLevel_Proxy(IAMAudioInputMixer *This,double *pLevel);
-  void __RPC_STUB IAMAudioInputMixer_get_MixLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_put_Pan_Proxy(IAMAudioInputMixer *This,double Pan);
-  void __RPC_STUB IAMAudioInputMixer_put_Pan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_get_Pan_Proxy(IAMAudioInputMixer *This,double *pPan);
-  void __RPC_STUB IAMAudioInputMixer_get_Pan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_put_Loudness_Proxy(IAMAudioInputMixer *This,WINBOOL fLoudness);
-  void __RPC_STUB IAMAudioInputMixer_put_Loudness_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_get_Loudness_Proxy(IAMAudioInputMixer *This,WINBOOL *pfLoudness);
-  void __RPC_STUB IAMAudioInputMixer_get_Loudness_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_put_Treble_Proxy(IAMAudioInputMixer *This,double Treble);
-  void __RPC_STUB IAMAudioInputMixer_put_Treble_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_get_Treble_Proxy(IAMAudioInputMixer *This,double *pTreble);
-  void __RPC_STUB IAMAudioInputMixer_get_Treble_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_get_TrebleRange_Proxy(IAMAudioInputMixer *This,double *pRange);
-  void __RPC_STUB IAMAudioInputMixer_get_TrebleRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_put_Bass_Proxy(IAMAudioInputMixer *This,double Bass);
-  void __RPC_STUB IAMAudioInputMixer_put_Bass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_get_Bass_Proxy(IAMAudioInputMixer *This,double *pBass);
-  void __RPC_STUB IAMAudioInputMixer_get_Bass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAudioInputMixer_get_BassRange_Proxy(IAMAudioInputMixer *This,double *pRange);
-  void __RPC_STUB IAMAudioInputMixer_get_BassRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMBufferNegotiation_INTERFACE_DEFINED__
-#define __IAMBufferNegotiation_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMBufferNegotiation;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMBufferNegotiation : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SuggestAllocatorProperties(const ALLOCATOR_PROPERTIES *pprop) = 0;
-    virtual HRESULT WINAPI GetAllocatorProperties(ALLOCATOR_PROPERTIES *pprop) = 0;
-  };
-#else
-  typedef struct IAMBufferNegotiationVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMBufferNegotiation *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMBufferNegotiation *This);
-      ULONG (WINAPI *Release)(IAMBufferNegotiation *This);
-      HRESULT (WINAPI *SuggestAllocatorProperties)(IAMBufferNegotiation *This,const ALLOCATOR_PROPERTIES *pprop);
-      HRESULT (WINAPI *GetAllocatorProperties)(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
-    END_INTERFACE
-  } IAMBufferNegotiationVtbl;
-  struct IAMBufferNegotiation {
-    CONST_VTBL struct IAMBufferNegotiationVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMBufferNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMBufferNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMBufferNegotiation_Release(This) (This)->lpVtbl->Release(This)
-#define IAMBufferNegotiation_SuggestAllocatorProperties(This,pprop) (This)->lpVtbl->SuggestAllocatorProperties(This,pprop)
-#define IAMBufferNegotiation_GetAllocatorProperties(This,pprop) (This)->lpVtbl->GetAllocatorProperties(This,pprop)
-#endif
-#endif
-  HRESULT WINAPI IAMBufferNegotiation_SuggestAllocatorProperties_Proxy(IAMBufferNegotiation *This,const ALLOCATOR_PROPERTIES *pprop);
-  void __RPC_STUB IAMBufferNegotiation_SuggestAllocatorProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMBufferNegotiation_GetAllocatorProperties_Proxy(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
-  void __RPC_STUB IAMBufferNegotiation_GetAllocatorProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum tagAnalogVideoStandard {
-    AnalogVideo_None = 0,AnalogVideo_NTSC_M = 0x1,AnalogVideo_NTSC_M_J = 0x2,AnalogVideo_NTSC_433 = 0x4,AnalogVideo_PAL_B = 0x10,
-    AnalogVideo_PAL_D = 0x20,AnalogVideo_PAL_G = 0x40,AnalogVideo_PAL_H = 0x80,AnalogVideo_PAL_I = 0x100,AnalogVideo_PAL_M = 0x200,
-    AnalogVideo_PAL_N = 0x400,AnalogVideo_PAL_60 = 0x800,AnalogVideo_SECAM_B = 0x1000,AnalogVideo_SECAM_D = 0x2000,AnalogVideo_SECAM_G = 0x4000,
-    AnalogVideo_SECAM_H = 0x8000,AnalogVideo_SECAM_K = 0x10000,AnalogVideo_SECAM_K1 = 0x20000,AnalogVideo_SECAM_L = 0x40000,AnalogVideo_SECAM_L1 = 0x80000,
-    AnalogVideo_PAL_N_COMBO = 0x100000,AnalogVideoMask_MCE_NTSC = AnalogVideo_NTSC_M | AnalogVideo_NTSC_M_J | AnalogVideo_NTSC_433 | AnalogVideo_PAL_M | AnalogVideo_PAL_N | AnalogVideo_PAL_60 | AnalogVideo_PAL_N_COMBO,AnalogVideoMask_MCE_PAL = AnalogVideo_PAL_B | AnalogVideo_PAL_D | AnalogVideo_PAL_G | AnalogVideo_PAL_H | AnalogVideo_PAL_I,AnalogVideoMask_MCE_SECAM = AnalogVideo_SECAM_B | AnalogVideo_SECAM_D | AnalogVideo_SECAM_G | AnalogVideo_SECAM_H | AnalogVideo_SECAM_K | AnalogVideo_ [...]
-  } AnalogVideoStandard;
-
-  typedef enum tagTunerInputType {
-    TunerInputCable = 0,TunerInputAntenna = TunerInputCable + 1
-  } TunerInputType;
-
-#define AnalogVideo_NTSC_Mask 0x00000007
-#define AnalogVideo_PAL_Mask 0x00100FF0
-#define AnalogVideo_SECAM_Mask 0x000FF000
-
-  typedef enum __MIDL___MIDL_itf_strmif_0173_0001 {
-    VideoCopyProtectionMacrovisionBasic = 0,VideoCopyProtectionMacrovisionCBI = VideoCopyProtectionMacrovisionBasic + 1
-  } VideoCopyProtectionType;
-
-  typedef enum tagPhysicalConnectorType {
-    PhysConn_Video_Tuner = 1,
-    PhysConn_Video_Composite,PhysConn_Video_SVideo,PhysConn_Video_RGB,
-    PhysConn_Video_YRYBY,PhysConn_Video_SerialDigital,PhysConn_Video_ParallelDigital,
-    PhysConn_Video_SCSI,PhysConn_Video_AUX,PhysConn_Video_1394,PhysConn_Video_USB,
-    PhysConn_Video_VideoDecoder,PhysConn_Video_VideoEncoder,PhysConn_Video_SCART,PhysConn_Video_Black,
-    PhysConn_Audio_Tuner = 0x1000,PhysConn_Audio_Line = 0x1001,PhysConn_Audio_Mic = 0x1002,
-    PhysConn_Audio_AESDigital = 0x1003,PhysConn_Audio_SPDIFDigital = 0x1004,
-    PhysConn_Audio_SCSI = 0x1005,PhysConn_Audio_AUX = 0x1006,PhysConn_Audio_1394 = 0x1007,
-    PhysConn_Audio_USB = 0x1008,PhysConn_Audio_AudioDecoder = 0x1009
-  } PhysicalConnectorType;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0173_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0173_v0_0_s_ifspec;
-#ifndef __IAMAnalogVideoDecoder_INTERFACE_DEFINED__
-#define __IAMAnalogVideoDecoder_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMAnalogVideoDecoder;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMAnalogVideoDecoder : public IUnknown {
-  public:
-    virtual HRESULT WINAPI get_AvailableTVFormats(long *lAnalogVideoStandard) = 0;
-    virtual HRESULT WINAPI put_TVFormat(long lAnalogVideoStandard) = 0;
-    virtual HRESULT WINAPI get_TVFormat(long *plAnalogVideoStandard) = 0;
-    virtual HRESULT WINAPI get_HorizontalLocked(long *plLocked) = 0;
-    virtual HRESULT WINAPI put_VCRHorizontalLocking(long lVCRHorizontalLocking) = 0;
-    virtual HRESULT WINAPI get_VCRHorizontalLocking(long *plVCRHorizontalLocking) = 0;
-    virtual HRESULT WINAPI get_NumberOfLines(long *plNumberOfLines) = 0;
-    virtual HRESULT WINAPI put_OutputEnable(long lOutputEnable) = 0;
-    virtual HRESULT WINAPI get_OutputEnable(long *plOutputEnable) = 0;
-  };
-#else
-  typedef struct IAMAnalogVideoDecoderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMAnalogVideoDecoder *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMAnalogVideoDecoder *This);
-      ULONG (WINAPI *Release)(IAMAnalogVideoDecoder *This);
-      HRESULT (WINAPI *get_AvailableTVFormats)(IAMAnalogVideoDecoder *This,long *lAnalogVideoStandard);
-      HRESULT (WINAPI *put_TVFormat)(IAMAnalogVideoDecoder *This,long lAnalogVideoStandard);
-      HRESULT (WINAPI *get_TVFormat)(IAMAnalogVideoDecoder *This,long *plAnalogVideoStandard);
-      HRESULT (WINAPI *get_HorizontalLocked)(IAMAnalogVideoDecoder *This,long *plLocked);
-      HRESULT (WINAPI *put_VCRHorizontalLocking)(IAMAnalogVideoDecoder *This,long lVCRHorizontalLocking);
-      HRESULT (WINAPI *get_VCRHorizontalLocking)(IAMAnalogVideoDecoder *This,long *plVCRHorizontalLocking);
-      HRESULT (WINAPI *get_NumberOfLines)(IAMAnalogVideoDecoder *This,long *plNumberOfLines);
-      HRESULT (WINAPI *put_OutputEnable)(IAMAnalogVideoDecoder *This,long lOutputEnable);
-      HRESULT (WINAPI *get_OutputEnable)(IAMAnalogVideoDecoder *This,long *plOutputEnable);
-    END_INTERFACE
-  } IAMAnalogVideoDecoderVtbl;
-  struct IAMAnalogVideoDecoder {
-    CONST_VTBL struct IAMAnalogVideoDecoderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMAnalogVideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMAnalogVideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMAnalogVideoDecoder_Release(This) (This)->lpVtbl->Release(This)
-#define IAMAnalogVideoDecoder_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
-#define IAMAnalogVideoDecoder_put_TVFormat(This,lAnalogVideoStandard) (This)->lpVtbl->put_TVFormat(This,lAnalogVideoStandard)
-#define IAMAnalogVideoDecoder_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
-#define IAMAnalogVideoDecoder_get_HorizontalLocked(This,plLocked) (This)->lpVtbl->get_HorizontalLocked(This,plLocked)
-#define IAMAnalogVideoDecoder_put_VCRHorizontalLocking(This,lVCRHorizontalLocking) (This)->lpVtbl->put_VCRHorizontalLocking(This,lVCRHorizontalLocking)
-#define IAMAnalogVideoDecoder_get_VCRHorizontalLocking(This,plVCRHorizontalLocking) (This)->lpVtbl->get_VCRHorizontalLocking(This,plVCRHorizontalLocking)
-#define IAMAnalogVideoDecoder_get_NumberOfLines(This,plNumberOfLines) (This)->lpVtbl->get_NumberOfLines(This,plNumberOfLines)
-#define IAMAnalogVideoDecoder_put_OutputEnable(This,lOutputEnable) (This)->lpVtbl->put_OutputEnable(This,lOutputEnable)
-#define IAMAnalogVideoDecoder_get_OutputEnable(This,plOutputEnable) (This)->lpVtbl->get_OutputEnable(This,plOutputEnable)
-#endif
-#endif
-  HRESULT WINAPI IAMAnalogVideoDecoder_get_AvailableTVFormats_Proxy(IAMAnalogVideoDecoder *This,long *lAnalogVideoStandard);
-  void __RPC_STUB IAMAnalogVideoDecoder_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAnalogVideoDecoder_put_TVFormat_Proxy(IAMAnalogVideoDecoder *This,long lAnalogVideoStandard);
-  void __RPC_STUB IAMAnalogVideoDecoder_put_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAnalogVideoDecoder_get_TVFormat_Proxy(IAMAnalogVideoDecoder *This,long *plAnalogVideoStandard);
-  void __RPC_STUB IAMAnalogVideoDecoder_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAnalogVideoDecoder_get_HorizontalLocked_Proxy(IAMAnalogVideoDecoder *This,long *plLocked);
-  void __RPC_STUB IAMAnalogVideoDecoder_get_HorizontalLocked_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAnalogVideoDecoder_put_VCRHorizontalLocking_Proxy(IAMAnalogVideoDecoder *This,long lVCRHorizontalLocking);
-  void __RPC_STUB IAMAnalogVideoDecoder_put_VCRHorizontalLocking_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAnalogVideoDecoder_get_VCRHorizontalLocking_Proxy(IAMAnalogVideoDecoder *This,long *plVCRHorizontalLocking);
-  void __RPC_STUB IAMAnalogVideoDecoder_get_VCRHorizontalLocking_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAnalogVideoDecoder_get_NumberOfLines_Proxy(IAMAnalogVideoDecoder *This,long *plNumberOfLines);
-  void __RPC_STUB IAMAnalogVideoDecoder_get_NumberOfLines_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAnalogVideoDecoder_put_OutputEnable_Proxy(IAMAnalogVideoDecoder *This,long lOutputEnable);
-  void __RPC_STUB IAMAnalogVideoDecoder_put_OutputEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAnalogVideoDecoder_get_OutputEnable_Proxy(IAMAnalogVideoDecoder *This,long *plOutputEnable);
-  void __RPC_STUB IAMAnalogVideoDecoder_get_OutputEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum tagVideoProcAmpProperty {
-    VideoProcAmp_Brightness = 0,
-    VideoProcAmp_Contrast,VideoProcAmp_Hue,VideoProcAmp_Saturation,VideoProcAmp_Sharpness,
-    VideoProcAmp_Gamma,VideoProcAmp_ColorEnable,VideoProcAmp_WhiteBalance,
-    VideoProcAmp_BacklightCompensation,VideoProcAmp_Gain
-  } VideoProcAmpProperty;
-
-  typedef enum tagVideoProcAmpFlags {
-    VideoProcAmp_Flags_Auto = 0x1,VideoProcAmp_Flags_Manual = 0x2
-  } VideoProcAmpFlags;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0174_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0174_v0_0_s_ifspec;
-#ifndef __IAMVideoProcAmp_INTERFACE_DEFINED__
-#define __IAMVideoProcAmp_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMVideoProcAmp;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMVideoProcAmp : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetRange(long Property,long *pMin,long *pMax,long *pSteppingDelta,long *pDefault,long *pCapsFlags) = 0;
-    virtual HRESULT WINAPI Set(long Property,long lValue,long Flags) = 0;
-    virtual HRESULT WINAPI Get(long Property,long *lValue,long *Flags) = 0;
-  };
-#else
-  typedef struct IAMVideoProcAmpVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMVideoProcAmp *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMVideoProcAmp *This);
-      ULONG (WINAPI *Release)(IAMVideoProcAmp *This);
-      HRESULT (WINAPI *GetRange)(IAMVideoProcAmp *This,long Property,long *pMin,long *pMax,long *pSteppingDelta,long *pDefault,long *pCapsFlags);
-      HRESULT (WINAPI *Set)(IAMVideoProcAmp *This,long Property,long lValue,long Flags);
-      HRESULT (WINAPI *Get)(IAMVideoProcAmp *This,long Property,long *lValue,long *Flags);
-    END_INTERFACE
-  } IAMVideoProcAmpVtbl;
-  struct IAMVideoProcAmp {
-    CONST_VTBL struct IAMVideoProcAmpVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMVideoProcAmp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMVideoProcAmp_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMVideoProcAmp_Release(This) (This)->lpVtbl->Release(This)
-#define IAMVideoProcAmp_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
-#define IAMVideoProcAmp_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
-#define IAMVideoProcAmp_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
-#endif
-#endif
-  HRESULT WINAPI IAMVideoProcAmp_GetRange_Proxy(IAMVideoProcAmp *This,long Property,long *pMin,long *pMax,long *pSteppingDelta,long *pDefault,long *pCapsFlags);
-  void __RPC_STUB IAMVideoProcAmp_GetRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoProcAmp_Set_Proxy(IAMVideoProcAmp *This,long Property,long lValue,long Flags);
-  void __RPC_STUB IAMVideoProcAmp_Set_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoProcAmp_Get_Proxy(IAMVideoProcAmp *This,long Property,long *lValue,long *Flags);
-  void __RPC_STUB IAMVideoProcAmp_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum tagCameraControlProperty {
-    CameraControl_Pan = 0,
-    CameraControl_Tilt,CameraControl_Roll,CameraControl_Zoom,CameraControl_Exposure,
-    CameraControl_Iris,CameraControl_Focus
-  } CameraControlProperty;
-
-  typedef enum tagCameraControlFlags {
-    CameraControl_Flags_Auto = 0x1,CameraControl_Flags_Manual = 0x2
-  } CameraControlFlags;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_s_ifspec;
-#ifndef __IAMCameraControl_INTERFACE_DEFINED__
-#define __IAMCameraControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMCameraControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMCameraControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetRange(long Property,long *pMin,long *pMax,long *pSteppingDelta,long *pDefault,long *pCapsFlags) = 0;
-    virtual HRESULT WINAPI Set(long Property,long lValue,long Flags) = 0;
-    virtual HRESULT WINAPI Get(long Property,long *lValue,long *Flags) = 0;
-  };
-#else
-  typedef struct IAMCameraControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMCameraControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMCameraControl *This);
-      ULONG (WINAPI *Release)(IAMCameraControl *This);
-      HRESULT (WINAPI *GetRange)(IAMCameraControl *This,long Property,long *pMin,long *pMax,long *pSteppingDelta,long *pDefault,long *pCapsFlags);
-      HRESULT (WINAPI *Set)(IAMCameraControl *This,long Property,long lValue,long Flags);
-      HRESULT (WINAPI *Get)(IAMCameraControl *This,long Property,long *lValue,long *Flags);
-    END_INTERFACE
-  } IAMCameraControlVtbl;
-  struct IAMCameraControl {
-    CONST_VTBL struct IAMCameraControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMCameraControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMCameraControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMCameraControl_Release(This) (This)->lpVtbl->Release(This)
-#define IAMCameraControl_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
-#define IAMCameraControl_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
-#define IAMCameraControl_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
-#endif
-#endif
-  HRESULT WINAPI IAMCameraControl_GetRange_Proxy(IAMCameraControl *This,long Property,long *pMin,long *pMax,long *pSteppingDelta,long *pDefault,long *pCapsFlags);
-  void __RPC_STUB IAMCameraControl_GetRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCameraControl_Set_Proxy(IAMCameraControl *This,long Property,long lValue,long Flags);
-  void __RPC_STUB IAMCameraControl_Set_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCameraControl_Get_Proxy(IAMCameraControl *This,long Property,long *lValue,long *Flags);
-  void __RPC_STUB IAMCameraControl_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum tagVideoControlFlags {
-    VideoControlFlag_FlipHorizontal = 0x1,VideoControlFlag_FlipVertical = 0x2,VideoControlFlag_ExternalTriggerEnable = 0x4,VideoControlFlag_Trigger = 0x8
-  } VideoControlFlags;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_s_ifspec;
-#ifndef __IAMVideoControl_INTERFACE_DEFINED__
-#define __IAMVideoControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMVideoControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMVideoControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetCaps(IPin *pPin,long *pCapsFlags) = 0;
-    virtual HRESULT WINAPI SetMode(IPin *pPin,long Mode) = 0;
-    virtual HRESULT WINAPI GetMode(IPin *pPin,long *Mode) = 0;
-    virtual HRESULT WINAPI GetCurrentActualFrameRate(IPin *pPin,LONGLONG *ActualFrameRate) = 0;
-    virtual HRESULT WINAPI GetMaxAvailableFrameRate(IPin *pPin,long iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate) = 0;
-    virtual HRESULT WINAPI GetFrameRateList(IPin *pPin,long iIndex,SIZE Dimensions,long *ListSize,LONGLONG **FrameRates) = 0;
-  };
-#else
-  typedef struct IAMVideoControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMVideoControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMVideoControl *This);
-      ULONG (WINAPI *Release)(IAMVideoControl *This);
-      HRESULT (WINAPI *GetCaps)(IAMVideoControl *This,IPin *pPin,long *pCapsFlags);
-      HRESULT (WINAPI *SetMode)(IAMVideoControl *This,IPin *pPin,long Mode);
-      HRESULT (WINAPI *GetMode)(IAMVideoControl *This,IPin *pPin,long *Mode);
-      HRESULT (WINAPI *GetCurrentActualFrameRate)(IAMVideoControl *This,IPin *pPin,LONGLONG *ActualFrameRate);
-      HRESULT (WINAPI *GetMaxAvailableFrameRate)(IAMVideoControl *This,IPin *pPin,long iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate);
-      HRESULT (WINAPI *GetFrameRateList)(IAMVideoControl *This,IPin *pPin,long iIndex,SIZE Dimensions,long *ListSize,LONGLONG **FrameRates);
-    END_INTERFACE
-  } IAMVideoControlVtbl;
-  struct IAMVideoControl {
-    CONST_VTBL struct IAMVideoControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMVideoControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMVideoControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMVideoControl_Release(This) (This)->lpVtbl->Release(This)
-#define IAMVideoControl_GetCaps(This,pPin,pCapsFlags) (This)->lpVtbl->GetCaps(This,pPin,pCapsFlags)
-#define IAMVideoControl_SetMode(This,pPin,Mode) (This)->lpVtbl->SetMode(This,pPin,Mode)
-#define IAMVideoControl_GetMode(This,pPin,Mode) (This)->lpVtbl->GetMode(This,pPin,Mode)
-#define IAMVideoControl_GetCurrentActualFrameRate(This,pPin,ActualFrameRate) (This)->lpVtbl->GetCurrentActualFrameRate(This,pPin,ActualFrameRate)
-#define IAMVideoControl_GetMaxAvailableFrameRate(This,pPin,iIndex,Dimensions,MaxAvailableFrameRate) (This)->lpVtbl->GetMaxAvailableFrameRate(This,pPin,iIndex,Dimensions,MaxAvailableFrameRate)
-#define IAMVideoControl_GetFrameRateList(This,pPin,iIndex,Dimensions,ListSize,FrameRates) (This)->lpVtbl->GetFrameRateList(This,pPin,iIndex,Dimensions,ListSize,FrameRates)
-#endif
-#endif
-  HRESULT WINAPI IAMVideoControl_GetCaps_Proxy(IAMVideoControl *This,IPin *pPin,long *pCapsFlags);
-  void __RPC_STUB IAMVideoControl_GetCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_SetMode_Proxy(IAMVideoControl *This,IPin *pPin,long Mode);
-  void __RPC_STUB IAMVideoControl_SetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_GetMode_Proxy(IAMVideoControl *This,IPin *pPin,long *Mode);
-  void __RPC_STUB IAMVideoControl_GetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_GetCurrentActualFrameRate_Proxy(IAMVideoControl *This,IPin *pPin,LONGLONG *ActualFrameRate);
-  void __RPC_STUB IAMVideoControl_GetCurrentActualFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_GetMaxAvailableFrameRate_Proxy(IAMVideoControl *This,IPin *pPin,long iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate);
-  void __RPC_STUB IAMVideoControl_GetMaxAvailableFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_GetFrameRateList_Proxy(IAMVideoControl *This,IPin *pPin,long iIndex,SIZE Dimensions,long *ListSize,LONGLONG **FrameRates);
-  void __RPC_STUB IAMVideoControl_GetFrameRateList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMCrossbar_INTERFACE_DEFINED__
-#define __IAMCrossbar_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMCrossbar;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMCrossbar : public IUnknown {
-  public:
-    virtual HRESULT WINAPI get_PinCounts(long *OutputPinCount,long *InputPinCount) = 0;
-    virtual HRESULT WINAPI CanRoute(long OutputPinIndex,long InputPinIndex) = 0;
-    virtual HRESULT WINAPI Route(long OutputPinIndex,long InputPinIndex) = 0;
-    virtual HRESULT WINAPI get_IsRoutedTo(long OutputPinIndex,long *InputPinIndex) = 0;
-    virtual HRESULT WINAPI get_CrossbarPinInfo(WINBOOL IsInputPin,long PinIndex,long *PinIndexRelated,long *PhysicalType) = 0;
-  };
-#else
-  typedef struct IAMCrossbarVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMCrossbar *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMCrossbar *This);
-      ULONG (WINAPI *Release)(IAMCrossbar *This);
-      HRESULT (WINAPI *get_PinCounts)(IAMCrossbar *This,long *OutputPinCount,long *InputPinCount);
-      HRESULT (WINAPI *CanRoute)(IAMCrossbar *This,long OutputPinIndex,long InputPinIndex);
-      HRESULT (WINAPI *Route)(IAMCrossbar *This,long OutputPinIndex,long InputPinIndex);
-      HRESULT (WINAPI *get_IsRoutedTo)(IAMCrossbar *This,long OutputPinIndex,long *InputPinIndex);
-      HRESULT (WINAPI *get_CrossbarPinInfo)(IAMCrossbar *This,WINBOOL IsInputPin,long PinIndex,long *PinIndexRelated,long *PhysicalType);
-    END_INTERFACE
-  } IAMCrossbarVtbl;
-  struct IAMCrossbar {
-    CONST_VTBL struct IAMCrossbarVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMCrossbar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMCrossbar_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMCrossbar_Release(This) (This)->lpVtbl->Release(This)
-#define IAMCrossbar_get_PinCounts(This,OutputPinCount,InputPinCount) (This)->lpVtbl->get_PinCounts(This,OutputPinCount,InputPinCount)
-#define IAMCrossbar_CanRoute(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->CanRoute(This,OutputPinIndex,InputPinIndex)
-#define IAMCrossbar_Route(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->Route(This,OutputPinIndex,InputPinIndex)
-#define IAMCrossbar_get_IsRoutedTo(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->get_IsRoutedTo(This,OutputPinIndex,InputPinIndex)
-#define IAMCrossbar_get_CrossbarPinInfo(This,IsInputPin,PinIndex,PinIndexRelated,PhysicalType) (This)->lpVtbl->get_CrossbarPinInfo(This,IsInputPin,PinIndex,PinIndexRelated,PhysicalType)
-#endif
-#endif
-  HRESULT WINAPI IAMCrossbar_get_PinCounts_Proxy(IAMCrossbar *This,long *OutputPinCount,long *InputPinCount);
-  void __RPC_STUB IAMCrossbar_get_PinCounts_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCrossbar_CanRoute_Proxy(IAMCrossbar *This,long OutputPinIndex,long InputPinIndex);
-  void __RPC_STUB IAMCrossbar_CanRoute_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCrossbar_Route_Proxy(IAMCrossbar *This,long OutputPinIndex,long InputPinIndex);
-  void __RPC_STUB IAMCrossbar_Route_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCrossbar_get_IsRoutedTo_Proxy(IAMCrossbar *This,long OutputPinIndex,long *InputPinIndex);
-  void __RPC_STUB IAMCrossbar_get_IsRoutedTo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCrossbar_get_CrossbarPinInfo_Proxy(IAMCrossbar *This,WINBOOL IsInputPin,long PinIndex,long *PinIndexRelated,long *PhysicalType);
-  void __RPC_STUB IAMCrossbar_get_CrossbarPinInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum tagAMTunerSubChannel {
-    AMTUNER_SUBCHAN_NO_TUNE = -2,AMTUNER_SUBCHAN_DEFAULT = -1
-  } AMTunerSubChannel;
-
-  typedef enum tagAMTunerSignalStrength {
-    AMTUNER_HASNOSIGNALSTRENGTH = -1,AMTUNER_NOSIGNAL = 0,AMTUNER_SIGNALPRESENT = 1
-  } AMTunerSignalStrength;
-
-  typedef enum tagAMTunerModeType {
-    AMTUNER_MODE_DEFAULT = 0,AMTUNER_MODE_TV = 0x1,AMTUNER_MODE_FM_RADIO = 0x2,AMTUNER_MODE_AM_RADIO = 0x4,AMTUNER_MODE_DSS = 0x8
-  } AMTunerModeType;
-
-  typedef enum tagAMTunerEventType {
-    AMTUNER_EVENT_CHANGED = 0x1
-  } AMTunerEventType;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_s_ifspec;
-#ifndef __IAMTuner_INTERFACE_DEFINED__
-#define __IAMTuner_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMTuner;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMTuner : public IUnknown {
-  public:
-    virtual HRESULT WINAPI put_Channel(long lChannel,long lVideoSubChannel,long lAudioSubChannel) = 0;
-    virtual HRESULT WINAPI get_Channel(long *plChannel,long *plVideoSubChannel,long *plAudioSubChannel) = 0;
-    virtual HRESULT WINAPI ChannelMinMax(long *lChannelMin,long *lChannelMax) = 0;
-    virtual HRESULT WINAPI put_CountryCode(long lCountryCode) = 0;
-    virtual HRESULT WINAPI get_CountryCode(long *plCountryCode) = 0;
-    virtual HRESULT WINAPI put_TuningSpace(long lTuningSpace) = 0;
-    virtual HRESULT WINAPI get_TuningSpace(long *plTuningSpace) = 0;
-    virtual HRESULT WINAPI Logon(HANDLE hCurrentUser) = 0;
-    virtual HRESULT WINAPI Logout(void) = 0;
-    virtual HRESULT WINAPI SignalPresent(long *plSignalStrength) = 0;
-    virtual HRESULT WINAPI put_Mode(AMTunerModeType lMode) = 0;
-    virtual HRESULT WINAPI get_Mode(AMTunerModeType *plMode) = 0;
-    virtual HRESULT WINAPI GetAvailableModes(long *plModes) = 0;
-    virtual HRESULT WINAPI RegisterNotificationCallBack(IAMTunerNotification *pNotify,long lEvents) = 0;
-    virtual HRESULT WINAPI UnRegisterNotificationCallBack(IAMTunerNotification *pNotify) = 0;
-  };
-#else
-  typedef struct IAMTunerVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMTuner *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMTuner *This);
-      ULONG (WINAPI *Release)(IAMTuner *This);
-      HRESULT (WINAPI *put_Channel)(IAMTuner *This,long lChannel,long lVideoSubChannel,long lAudioSubChannel);
-      HRESULT (WINAPI *get_Channel)(IAMTuner *This,long *plChannel,long *plVideoSubChannel,long *plAudioSubChannel);
-      HRESULT (WINAPI *ChannelMinMax)(IAMTuner *This,long *lChannelMin,long *lChannelMax);
-      HRESULT (WINAPI *put_CountryCode)(IAMTuner *This,long lCountryCode);
-      HRESULT (WINAPI *get_CountryCode)(IAMTuner *This,long *plCountryCode);
-      HRESULT (WINAPI *put_TuningSpace)(IAMTuner *This,long lTuningSpace);
-      HRESULT (WINAPI *get_TuningSpace)(IAMTuner *This,long *plTuningSpace);
-      HRESULT (WINAPI *Logon)(IAMTuner *This,HANDLE hCurrentUser);
-      HRESULT (WINAPI *Logout)(IAMTuner *This);
-      HRESULT (WINAPI *SignalPresent)(IAMTuner *This,long *plSignalStrength);
-      HRESULT (WINAPI *put_Mode)(IAMTuner *This,AMTunerModeType lMode);
-      HRESULT (WINAPI *get_Mode)(IAMTuner *This,AMTunerModeType *plMode);
-      HRESULT (WINAPI *GetAvailableModes)(IAMTuner *This,long *plModes);
-      HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify,long lEvents);
-      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify);
-    END_INTERFACE
-  } IAMTunerVtbl;
-  struct IAMTuner {
-    CONST_VTBL struct IAMTunerVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMTuner_Release(This) (This)->lpVtbl->Release(This)
-#define IAMTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
-#define IAMTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
-#define IAMTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
-#define IAMTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
-#define IAMTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
-#define IAMTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
-#define IAMTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
-#define IAMTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
-#define IAMTuner_Logout(This) (This)->lpVtbl->Logout(This)
-#define IAMTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
-#define IAMTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
-#define IAMTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
-#define IAMTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
-#define IAMTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
-#define IAMTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
-#endif
-#endif
-  HRESULT WINAPI IAMTuner_put_Channel_Proxy(IAMTuner *This,long lChannel,long lVideoSubChannel,long lAudioSubChannel);
-  void __RPC_STUB IAMTuner_put_Channel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_get_Channel_Proxy(IAMTuner *This,long *plChannel,long *plVideoSubChannel,long *plAudioSubChannel);
-  void __RPC_STUB IAMTuner_get_Channel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_ChannelMinMax_Proxy(IAMTuner *This,long *lChannelMin,long *lChannelMax);
-  void __RPC_STUB IAMTuner_ChannelMinMax_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_put_CountryCode_Proxy(IAMTuner *This,long lCountryCode);
-  void __RPC_STUB IAMTuner_put_CountryCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_get_CountryCode_Proxy(IAMTuner *This,long *plCountryCode);
-  void __RPC_STUB IAMTuner_get_CountryCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_put_TuningSpace_Proxy(IAMTuner *This,long lTuningSpace);
-  void __RPC_STUB IAMTuner_put_TuningSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_get_TuningSpace_Proxy(IAMTuner *This,long *plTuningSpace);
-  void __RPC_STUB IAMTuner_get_TuningSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_Logon_Proxy(IAMTuner *This,HANDLE hCurrentUser);
-  void __RPC_STUB IAMTuner_Logon_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_Logout_Proxy(IAMTuner *This);
-  void __RPC_STUB IAMTuner_Logout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_SignalPresent_Proxy(IAMTuner *This,long *plSignalStrength);
-  void __RPC_STUB IAMTuner_SignalPresent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_put_Mode_Proxy(IAMTuner *This,AMTunerModeType lMode);
-  void __RPC_STUB IAMTuner_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_get_Mode_Proxy(IAMTuner *This,AMTunerModeType *plMode);
-  void __RPC_STUB IAMTuner_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_GetAvailableModes_Proxy(IAMTuner *This,long *plModes);
-  void __RPC_STUB IAMTuner_GetAvailableModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_RegisterNotificationCallBack_Proxy(IAMTuner *This,IAMTunerNotification *pNotify,long lEvents);
-  void __RPC_STUB IAMTuner_RegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_UnRegisterNotificationCallBack_Proxy(IAMTuner *This,IAMTunerNotification *pNotify);
-  void __RPC_STUB IAMTuner_UnRegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMTunerNotification_INTERFACE_DEFINED__
-#define __IAMTunerNotification_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMTunerNotification;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMTunerNotification : public IUnknown {
-  public:
-    virtual HRESULT WINAPI OnEvent(AMTunerEventType Event) = 0;
-  };
-#else
-  typedef struct IAMTunerNotificationVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMTunerNotification *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMTunerNotification *This);
-      ULONG (WINAPI *Release)(IAMTunerNotification *This);
-      HRESULT (WINAPI *OnEvent)(IAMTunerNotification *This,AMTunerEventType Event);
-    END_INTERFACE
-  } IAMTunerNotificationVtbl;
-  struct IAMTunerNotification {
-    CONST_VTBL struct IAMTunerNotificationVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMTunerNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMTunerNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMTunerNotification_Release(This) (This)->lpVtbl->Release(This)
-#define IAMTunerNotification_OnEvent(This,Event) (This)->lpVtbl->OnEvent(This,Event)
-#endif
-#endif
-  HRESULT WINAPI IAMTunerNotification_OnEvent_Proxy(IAMTunerNotification *This,AMTunerEventType Event);
-  void __RPC_STUB IAMTunerNotification_OnEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMTVTuner_INTERFACE_DEFINED__
-#define __IAMTVTuner_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMTVTuner;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMTVTuner : public IAMTuner {
-  public:
-    virtual HRESULT WINAPI get_AvailableTVFormats(long *lAnalogVideoStandard) = 0;
-    virtual HRESULT WINAPI get_TVFormat(long *plAnalogVideoStandard) = 0;
-    virtual HRESULT WINAPI AutoTune(long lChannel,long *plFoundSignal) = 0;
-    virtual HRESULT WINAPI StoreAutoTune(void) = 0;
-    virtual HRESULT WINAPI get_NumInputConnections(long *plNumInputConnections) = 0;
-    virtual HRESULT WINAPI put_InputType(long lIndex,TunerInputType InputType) = 0;
-    virtual HRESULT WINAPI get_InputType(long lIndex,TunerInputType *pInputType) = 0;
-    virtual HRESULT WINAPI put_ConnectInput(long lIndex) = 0;
-    virtual HRESULT WINAPI get_ConnectInput(long *plIndex) = 0;
-    virtual HRESULT WINAPI get_VideoFrequency(long *lFreq) = 0;
-    virtual HRESULT WINAPI get_AudioFrequency(long *lFreq) = 0;
-  };
-#else
-  typedef struct IAMTVTunerVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMTVTuner *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMTVTuner *This);
-      ULONG (WINAPI *Release)(IAMTVTuner *This);
-      HRESULT (WINAPI *put_Channel)(IAMTVTuner *This,long lChannel,long lVideoSubChannel,long lAudioSubChannel);
-      HRESULT (WINAPI *get_Channel)(IAMTVTuner *This,long *plChannel,long *plVideoSubChannel,long *plAudioSubChannel);
-      HRESULT (WINAPI *ChannelMinMax)(IAMTVTuner *This,long *lChannelMin,long *lChannelMax);
-      HRESULT (WINAPI *put_CountryCode)(IAMTVTuner *This,long lCountryCode);
-      HRESULT (WINAPI *get_CountryCode)(IAMTVTuner *This,long *plCountryCode);
-      HRESULT (WINAPI *put_TuningSpace)(IAMTVTuner *This,long lTuningSpace);
-      HRESULT (WINAPI *get_TuningSpace)(IAMTVTuner *This,long *plTuningSpace);
-      HRESULT (WINAPI *Logon)(IAMTVTuner *This,HANDLE hCurrentUser);
-      HRESULT (WINAPI *Logout)(IAMTVTuner *This);
-      HRESULT (WINAPI *SignalPresent)(IAMTVTuner *This,long *plSignalStrength);
-      HRESULT (WINAPI *put_Mode)(IAMTVTuner *This,AMTunerModeType lMode);
-      HRESULT (WINAPI *get_Mode)(IAMTVTuner *This,AMTunerModeType *plMode);
-      HRESULT (WINAPI *GetAvailableModes)(IAMTVTuner *This,long *plModes);
-      HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTVTuner *This,IAMTunerNotification *pNotify,long lEvents);
-      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVTuner *This,IAMTunerNotification *pNotify);
-      HRESULT (WINAPI *get_AvailableTVFormats)(IAMTVTuner *This,long *lAnalogVideoStandard);
-      HRESULT (WINAPI *get_TVFormat)(IAMTVTuner *This,long *plAnalogVideoStandard);
-      HRESULT (WINAPI *AutoTune)(IAMTVTuner *This,long lChannel,long *plFoundSignal);
-      HRESULT (WINAPI *StoreAutoTune)(IAMTVTuner *This);
-      HRESULT (WINAPI *get_NumInputConnections)(IAMTVTuner *This,long *plNumInputConnections);
-      HRESULT (WINAPI *put_InputType)(IAMTVTuner *This,long lIndex,TunerInputType InputType);
-      HRESULT (WINAPI *get_InputType)(IAMTVTuner *This,long lIndex,TunerInputType *pInputType);
-      HRESULT (WINAPI *put_ConnectInput)(IAMTVTuner *This,long lIndex);
-      HRESULT (WINAPI *get_ConnectInput)(IAMTVTuner *This,long *plIndex);
-      HRESULT (WINAPI *get_VideoFrequency)(IAMTVTuner *This,long *lFreq);
-      HRESULT (WINAPI *get_AudioFrequency)(IAMTVTuner *This,long *lFreq);
-    END_INTERFACE
-  } IAMTVTunerVtbl;
-  struct IAMTVTuner {
-    CONST_VTBL struct IAMTVTunerVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMTVTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMTVTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMTVTuner_Release(This) (This)->lpVtbl->Release(This)
-#define IAMTVTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
-#define IAMTVTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
-#define IAMTVTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
-#define IAMTVTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
-#define IAMTVTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
-#define IAMTVTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
-#define IAMTVTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
-#define IAMTVTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
-#define IAMTVTuner_Logout(This) (This)->lpVtbl->Logout(This)
-#define IAMTVTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
-#define IAMTVTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
-#define IAMTVTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
-#define IAMTVTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
-#define IAMTVTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
-#define IAMTVTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
-#define IAMTVTuner_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
-#define IAMTVTuner_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
-#define IAMTVTuner_AutoTune(This,lChannel,plFoundSignal) (This)->lpVtbl->AutoTune(This,lChannel,plFoundSignal)
-#define IAMTVTuner_StoreAutoTune(This) (This)->lpVtbl->StoreAutoTune(This)
-#define IAMTVTuner_get_NumInputConnections(This,plNumInputConnections) (This)->lpVtbl->get_NumInputConnections(This,plNumInputConnections)
-#define IAMTVTuner_put_InputType(This,lIndex,InputType) (This)->lpVtbl->put_InputType(This,lIndex,InputType)
-#define IAMTVTuner_get_InputType(This,lIndex,pInputType) (This)->lpVtbl->get_InputType(This,lIndex,pInputType)
-#define IAMTVTuner_put_ConnectInput(This,lIndex) (This)->lpVtbl->put_ConnectInput(This,lIndex)
-#define IAMTVTuner_get_ConnectInput(This,plIndex) (This)->lpVtbl->get_ConnectInput(This,plIndex)
-#define IAMTVTuner_get_VideoFrequency(This,lFreq) (This)->lpVtbl->get_VideoFrequency(This,lFreq)
-#define IAMTVTuner_get_AudioFrequency(This,lFreq) (This)->lpVtbl->get_AudioFrequency(This,lFreq)
-#endif
-#endif
-  HRESULT WINAPI IAMTVTuner_get_AvailableTVFormats_Proxy(IAMTVTuner *This,long *lAnalogVideoStandard);
-  void __RPC_STUB IAMTVTuner_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_TVFormat_Proxy(IAMTVTuner *This,long *plAnalogVideoStandard);
-  void __RPC_STUB IAMTVTuner_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_AutoTune_Proxy(IAMTVTuner *This,long lChannel,long *plFoundSignal);
-  void __RPC_STUB IAMTVTuner_AutoTune_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_StoreAutoTune_Proxy(IAMTVTuner *This);
-  void __RPC_STUB IAMTVTuner_StoreAutoTune_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_NumInputConnections_Proxy(IAMTVTuner *This,long *plNumInputConnections);
-  void __RPC_STUB IAMTVTuner_get_NumInputConnections_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_put_InputType_Proxy(IAMTVTuner *This,long lIndex,TunerInputType InputType);
-  void __RPC_STUB IAMTVTuner_put_InputType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_InputType_Proxy(IAMTVTuner *This,long lIndex,TunerInputType *pInputType);
-  void __RPC_STUB IAMTVTuner_get_InputType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_put_ConnectInput_Proxy(IAMTVTuner *This,long lIndex);
-  void __RPC_STUB IAMTVTuner_put_ConnectInput_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_ConnectInput_Proxy(IAMTVTuner *This,long *plIndex);
-  void __RPC_STUB IAMTVTuner_get_ConnectInput_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_VideoFrequency_Proxy(IAMTVTuner *This,long *lFreq);
-  void __RPC_STUB IAMTVTuner_get_VideoFrequency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_AudioFrequency_Proxy(IAMTVTuner *This,long *lFreq);
-  void __RPC_STUB IAMTVTuner_get_AudioFrequency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IBPCSatelliteTuner_INTERFACE_DEFINED__
-#define __IBPCSatelliteTuner_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IBPCSatelliteTuner;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IBPCSatelliteTuner : public IAMTuner {
-  public:
-    virtual HRESULT WINAPI get_DefaultSubChannelTypes(long *plDefaultVideoType,long *plDefaultAudioType) = 0;
-    virtual HRESULT WINAPI put_DefaultSubChannelTypes(long lDefaultVideoType,long lDefaultAudioType) = 0;
-    virtual HRESULT WINAPI IsTapingPermitted(void) = 0;
-  };
-#else
-  typedef struct IBPCSatelliteTunerVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IBPCSatelliteTuner *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IBPCSatelliteTuner *This);
-      ULONG (WINAPI *Release)(IBPCSatelliteTuner *This);
-      HRESULT (WINAPI *put_Channel)(IBPCSatelliteTuner *This,long lChannel,long lVideoSubChannel,long lAudioSubChannel);
-      HRESULT (WINAPI *get_Channel)(IBPCSatelliteTuner *This,long *plChannel,long *plVideoSubChannel,long *plAudioSubChannel);
-      HRESULT (WINAPI *ChannelMinMax)(IBPCSatelliteTuner *This,long *lChannelMin,long *lChannelMax);
-      HRESULT (WINAPI *put_CountryCode)(IBPCSatelliteTuner *This,long lCountryCode);
-      HRESULT (WINAPI *get_CountryCode)(IBPCSatelliteTuner *This,long *plCountryCode);
-      HRESULT (WINAPI *put_TuningSpace)(IBPCSatelliteTuner *This,long lTuningSpace);
-      HRESULT (WINAPI *get_TuningSpace)(IBPCSatelliteTuner *This,long *plTuningSpace);
-      HRESULT (WINAPI *Logon)(IBPCSatelliteTuner *This,HANDLE hCurrentUser);
-      HRESULT (WINAPI *Logout)(IBPCSatelliteTuner *This);
-      HRESULT (WINAPI *SignalPresent)(IBPCSatelliteTuner *This,long *plSignalStrength);
-      HRESULT (WINAPI *put_Mode)(IBPCSatelliteTuner *This,AMTunerModeType lMode);
-      HRESULT (WINAPI *get_Mode)(IBPCSatelliteTuner *This,AMTunerModeType *plMode);
-      HRESULT (WINAPI *GetAvailableModes)(IBPCSatelliteTuner *This,long *plModes);
-      HRESULT (WINAPI *RegisterNotificationCallBack)(IBPCSatelliteTuner *This,IAMTunerNotification *pNotify,long lEvents);
-      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IBPCSatelliteTuner *This,IAMTunerNotification *pNotify);
-      HRESULT (WINAPI *get_DefaultSubChannelTypes)(IBPCSatelliteTuner *This,long *plDefaultVideoType,long *plDefaultAudioType);
-      HRESULT (WINAPI *put_DefaultSubChannelTypes)(IBPCSatelliteTuner *This,long lDefaultVideoType,long lDefaultAudioType);
-      HRESULT (WINAPI *IsTapingPermitted)(IBPCSatelliteTuner *This);
-    END_INTERFACE
-  } IBPCSatelliteTunerVtbl;
-  struct IBPCSatelliteTuner {
-    CONST_VTBL struct IBPCSatelliteTunerVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IBPCSatelliteTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IBPCSatelliteTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IBPCSatelliteTuner_Release(This) (This)->lpVtbl->Release(This)
-#define IBPCSatelliteTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
-#define IBPCSatelliteTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
-#define IBPCSatelliteTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
-#define IBPCSatelliteTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
-#define IBPCSatelliteTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
-#define IBPCSatelliteTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
-#define IBPCSatelliteTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
-#define IBPCSatelliteTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
-#define IBPCSatelliteTuner_Logout(This) (This)->lpVtbl->Logout(This)
-#define IBPCSatelliteTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
-#define IBPCSatelliteTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
-#define IBPCSatelliteTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
-#define IBPCSatelliteTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
-#define IBPCSatelliteTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
-#define IBPCSatelliteTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
-#define IBPCSatelliteTuner_get_DefaultSubChannelTypes(This,plDefaultVideoType,plDefaultAudioType) (This)->lpVtbl->get_DefaultSubChannelTypes(This,plDefaultVideoType,plDefaultAudioType)
-#define IBPCSatelliteTuner_put_DefaultSubChannelTypes(This,lDefaultVideoType,lDefaultAudioType) (This)->lpVtbl->put_DefaultSubChannelTypes(This,lDefaultVideoType,lDefaultAudioType)
-#define IBPCSatelliteTuner_IsTapingPermitted(This) (This)->lpVtbl->IsTapingPermitted(This)
-#endif
-#endif
-  HRESULT WINAPI IBPCSatelliteTuner_get_DefaultSubChannelTypes_Proxy(IBPCSatelliteTuner *This,long *plDefaultVideoType,long *plDefaultAudioType);
-  void __RPC_STUB IBPCSatelliteTuner_get_DefaultSubChannelTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBPCSatelliteTuner_put_DefaultSubChannelTypes_Proxy(IBPCSatelliteTuner *This,long lDefaultVideoType,long lDefaultAudioType);
-  void __RPC_STUB IBPCSatelliteTuner_put_DefaultSubChannelTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IBPCSatelliteTuner_IsTapingPermitted_Proxy(IBPCSatelliteTuner *This);
-  void __RPC_STUB IBPCSatelliteTuner_IsTapingPermitted_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum tagTVAudioMode {
-    AMTVAUDIO_MODE_MONO = 0x1,AMTVAUDIO_MODE_STEREO = 0x2,AMTVAUDIO_MODE_LANG_A = 0x10,AMTVAUDIO_MODE_LANG_B = 0x20,AMTVAUDIO_MODE_LANG_C = 0x40
-  } TVAudioMode;
-
-  typedef enum tagAMTVAudioEventType {
-    AMTVAUDIO_EVENT_CHANGED = 0x1
-  } AMTVAudioEventType;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0182_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0182_v0_0_s_ifspec;
-#ifndef __IAMTVAudio_INTERFACE_DEFINED__
-#define __IAMTVAudio_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMTVAudio;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMTVAudio : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetHardwareSupportedTVAudioModes(long *plModes) = 0;
-    virtual HRESULT WINAPI GetAvailableTVAudioModes(long *plModes) = 0;
-    virtual HRESULT WINAPI get_TVAudioMode(long *plMode) = 0;
-    virtual HRESULT WINAPI put_TVAudioMode(long lMode) = 0;
-    virtual HRESULT WINAPI RegisterNotificationCallBack(IAMTunerNotification *pNotify,long lEvents) = 0;
-    virtual HRESULT WINAPI UnRegisterNotificationCallBack(IAMTunerNotification *pNotify) = 0;
-  };
-#else
-  typedef struct IAMTVAudioVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMTVAudio *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMTVAudio *This);
-      ULONG (WINAPI *Release)(IAMTVAudio *This);
-      HRESULT (WINAPI *GetHardwareSupportedTVAudioModes)(IAMTVAudio *This,long *plModes);
-      HRESULT (WINAPI *GetAvailableTVAudioModes)(IAMTVAudio *This,long *plModes);
-      HRESULT (WINAPI *get_TVAudioMode)(IAMTVAudio *This,long *plMode);
-      HRESULT (WINAPI *put_TVAudioMode)(IAMTVAudio *This,long lMode);
-      HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify,long lEvents);
-      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify);
-    END_INTERFACE
-  } IAMTVAudioVtbl;
-  struct IAMTVAudio {
-    CONST_VTBL struct IAMTVAudioVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMTVAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMTVAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMTVAudio_Release(This) (This)->lpVtbl->Release(This)
-#define IAMTVAudio_GetHardwareSupportedTVAudioModes(This,plModes) (This)->lpVtbl->GetHardwareSupportedTVAudioModes(This,plModes)
-#define IAMTVAudio_GetAvailableTVAudioModes(This,plModes) (This)->lpVtbl->GetAvailableTVAudioModes(This,plModes)
-#define IAMTVAudio_get_TVAudioMode(This,plMode) (This)->lpVtbl->get_TVAudioMode(This,plMode)
-#define IAMTVAudio_put_TVAudioMode(This,lMode) (This)->lpVtbl->put_TVAudioMode(This,lMode)
-#define IAMTVAudio_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
-#define IAMTVAudio_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
-#endif
-#endif
-  HRESULT WINAPI IAMTVAudio_GetHardwareSupportedTVAudioModes_Proxy(IAMTVAudio *This,long *plModes);
-  void __RPC_STUB IAMTVAudio_GetHardwareSupportedTVAudioModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVAudio_GetAvailableTVAudioModes_Proxy(IAMTVAudio *This,long *plModes);
-  void __RPC_STUB IAMTVAudio_GetAvailableTVAudioModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVAudio_get_TVAudioMode_Proxy(IAMTVAudio *This,long *plMode);
-  void __RPC_STUB IAMTVAudio_get_TVAudioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVAudio_put_TVAudioMode_Proxy(IAMTVAudio *This,long lMode);
-  void __RPC_STUB IAMTVAudio_put_TVAudioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVAudio_RegisterNotificationCallBack_Proxy(IAMTVAudio *This,IAMTunerNotification *pNotify,long lEvents);
-  void __RPC_STUB IAMTVAudio_RegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVAudio_UnRegisterNotificationCallBack_Proxy(IAMTVAudio *This,IAMTunerNotification *pNotify);
-  void __RPC_STUB IAMTVAudio_UnRegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMTVAudioNotification_INTERFACE_DEFINED__
-#define __IAMTVAudioNotification_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMTVAudioNotification;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMTVAudioNotification : public IUnknown {
-  public:
-    virtual HRESULT WINAPI OnEvent(AMTVAudioEventType Event) = 0;
-  };
-#else
-  typedef struct IAMTVAudioNotificationVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMTVAudioNotification *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMTVAudioNotification *This);
-      ULONG (WINAPI *Release)(IAMTVAudioNotification *This);
-      HRESULT (WINAPI *OnEvent)(IAMTVAudioNotification *This,AMTVAudioEventType Event);
-    END_INTERFACE
-  } IAMTVAudioNotificationVtbl;
-  struct IAMTVAudioNotification {
-    CONST_VTBL struct IAMTVAudioNotificationVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMTVAudioNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMTVAudioNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMTVAudioNotification_Release(This) (This)->lpVtbl->Release(This)
-#define IAMTVAudioNotification_OnEvent(This,Event) (This)->lpVtbl->OnEvent(This,Event)
-#endif
-#endif
-  HRESULT WINAPI IAMTVAudioNotification_OnEvent_Proxy(IAMTVAudioNotification *This,AMTVAudioEventType Event);
-  void __RPC_STUB IAMTVAudioNotification_OnEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMAnalogVideoEncoder_INTERFACE_DEFINED__
-#define __IAMAnalogVideoEncoder_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMAnalogVideoEncoder;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMAnalogVideoEncoder : public IUnknown {
-  public:
-    virtual HRESULT WINAPI get_AvailableTVFormats(long *lAnalogVideoStandard) = 0;
-    virtual HRESULT WINAPI put_TVFormat(long lAnalogVideoStandard) = 0;
-    virtual HRESULT WINAPI get_TVFormat(long *plAnalogVideoStandard) = 0;
-    virtual HRESULT WINAPI put_CopyProtection(long lVideoCopyProtection) = 0;
-    virtual HRESULT WINAPI get_CopyProtection(long *lVideoCopyProtection) = 0;
-    virtual HRESULT WINAPI put_CCEnable(long lCCEnable) = 0;
-    virtual HRESULT WINAPI get_CCEnable(long *lCCEnable) = 0;
-  };
-#else
-  typedef struct IAMAnalogVideoEncoderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMAnalogVideoEncoder *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMAnalogVideoEncoder *This);
-      ULONG (WINAPI *Release)(IAMAnalogVideoEncoder *This);
-      HRESULT (WINAPI *get_AvailableTVFormats)(IAMAnalogVideoEncoder *This,long *lAnalogVideoStandard);
-      HRESULT (WINAPI *put_TVFormat)(IAMAnalogVideoEncoder *This,long lAnalogVideoStandard);
-      HRESULT (WINAPI *get_TVFormat)(IAMAnalogVideoEncoder *This,long *plAnalogVideoStandard);
-      HRESULT (WINAPI *put_CopyProtection)(IAMAnalogVideoEncoder *This,long lVideoCopyProtection);
-      HRESULT (WINAPI *get_CopyProtection)(IAMAnalogVideoEncoder *This,long *lVideoCopyProtection);
-      HRESULT (WINAPI *put_CCEnable)(IAMAnalogVideoEncoder *This,long lCCEnable);
-      HRESULT (WINAPI *get_CCEnable)(IAMAnalogVideoEncoder *This,long *lCCEnable);
-    END_INTERFACE
-  } IAMAnalogVideoEncoderVtbl;
-  struct IAMAnalogVideoEncoder {
-    CONST_VTBL struct IAMAnalogVideoEncoderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMAnalogVideoEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMAnalogVideoEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMAnalogVideoEncoder_Release(This) (This)->lpVtbl->Release(This)
-#define IAMAnalogVideoEncoder_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
-#define IAMAnalogVideoEncoder_put_TVFormat(This,lAnalogVideoStandard) (This)->lpVtbl->put_TVFormat(This,lAnalogVideoStandard)
-#define IAMAnalogVideoEncoder_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
-#define IAMAnalogVideoEncoder_put_CopyProtection(This,lVideoCopyProtection) (This)->lpVtbl->put_CopyProtection(This,lVideoCopyProtection)
-#define IAMAnalogVideoEncoder_get_CopyProtection(This,lVideoCopyProtection) (This)->lpVtbl->get_CopyProtection(This,lVideoCopyProtection)
-#define IAMAnalogVideoEncoder_put_CCEnable(This,lCCEnable) (This)->lpVtbl->put_CCEnable(This,lCCEnable)
-#define IAMAnalogVideoEncoder_get_CCEnable(This,lCCEnable) (This)->lpVtbl->get_CCEnable(This,lCCEnable)
-#endif
-#endif
-  HRESULT WINAPI IAMAnalogVideoEncoder_get_AvailableTVFormats_Proxy(IAMAnalogVideoEncoder *This,long *lAnalogVideoStandard);
-  void __RPC_STUB IAMAnalogVideoEncoder_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAnalogVideoEncoder_put_TVFormat_Proxy(IAMAnalogVideoEncoder *This,long lAnalogVideoStandard);
-  void __RPC_STUB IAMAnalogVideoEncoder_put_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAnalogVideoEncoder_get_TVFormat_Proxy(IAMAnalogVideoEncoder *This,long *plAnalogVideoStandard);
-  void __RPC_STUB IAMAnalogVideoEncoder_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAnalogVideoEncoder_put_CopyProtection_Proxy(IAMAnalogVideoEncoder *This,long lVideoCopyProtection);
-  void __RPC_STUB IAMAnalogVideoEncoder_put_CopyProtection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAnalogVideoEncoder_get_CopyProtection_Proxy(IAMAnalogVideoEncoder *This,long *lVideoCopyProtection);
-  void __RPC_STUB IAMAnalogVideoEncoder_get_CopyProtection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAnalogVideoEncoder_put_CCEnable_Proxy(IAMAnalogVideoEncoder *This,long lCCEnable);
-  void __RPC_STUB IAMAnalogVideoEncoder_put_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMAnalogVideoEncoder_get_CCEnable_Proxy(IAMAnalogVideoEncoder *This,long *lCCEnable);
-  void __RPC_STUB IAMAnalogVideoEncoder_get_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum __MIDL___MIDL_itf_strmif_0185_0001 {
-    AMPROPERTY_PIN_CATEGORY = 0,AMPROPERTY_PIN_MEDIUM = AMPROPERTY_PIN_CATEGORY + 1
-  } AMPROPERTY_PIN;
-
-#ifndef _IKsPropertySet_
-#define _IKsPropertySet_
-#define KSPROPERTY_SUPPORT_GET 1
-#define KSPROPERTY_SUPPORT_SET 2
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0185_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0185_v0_0_s_ifspec;
-#ifndef __IKsPropertySet_INTERFACE_DEFINED__
-#define __IKsPropertySet_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IKsPropertySet;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IKsPropertySet : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Set(REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData) = 0;
-    virtual HRESULT WINAPI Get(REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData,DWORD *pcbReturned) = 0;
-    virtual HRESULT WINAPI QuerySupported(REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport) = 0;
-  };
-#else
-  typedef struct IKsPropertySetVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IKsPropertySet *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IKsPropertySet *This);
-      ULONG (WINAPI *Release)(IKsPropertySet *This);
-      HRESULT (WINAPI *Set)(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData);
-      HRESULT (WINAPI *Get)(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData,DWORD *pcbReturned);
-      HRESULT (WINAPI *QuerySupported)(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport);
-    END_INTERFACE
-  } IKsPropertySetVtbl;
-  struct IKsPropertySet {
-    CONST_VTBL struct IKsPropertySetVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IKsPropertySet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IKsPropertySet_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IKsPropertySet_Release(This) (This)->lpVtbl->Release(This)
-#define IKsPropertySet_Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData) (This)->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData)
-#define IKsPropertySet_Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned) (This)->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned)
-#define IKsPropertySet_QuerySupported(This,guidPropSet,dwPropID,pTypeSupport) (This)->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport)
-#endif
-#endif
-  HRESULT WINAPI IKsPropertySet_RemoteSet_Proxy(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,byte *pInstanceData,DWORD cbInstanceData,byte *pPropData,DWORD cbPropData);
-  void __RPC_STUB IKsPropertySet_RemoteSet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IKsPropertySet_RemoteGet_Proxy(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,byte *pInstanceData,DWORD cbInstanceData,byte *pPropData,DWORD cbPropData,DWORD *pcbReturned);
-  void __RPC_STUB IKsPropertySet_RemoteGet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IKsPropertySet_QuerySupported_Proxy(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport);
-  void __RPC_STUB IKsPropertySet_QuerySupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-#endif
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0186_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0186_v0_0_s_ifspec;
-#ifndef __IMediaPropertyBag_INTERFACE_DEFINED__
-#define __IMediaPropertyBag_INTERFACE_DEFINED__
-  typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
-
-  EXTERN_C const IID IID_IMediaPropertyBag;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMediaPropertyBag : public IPropertyBag {
-  public:
-    virtual HRESULT WINAPI EnumProperty(ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue) = 0;
-  };
-#else
-  typedef struct IMediaPropertyBagVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMediaPropertyBag *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMediaPropertyBag *This);
-      ULONG (WINAPI *Release)(IMediaPropertyBag *This);
-      HRESULT (WINAPI *Read)(IMediaPropertyBag *This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog);
-      HRESULT (WINAPI *Write)(IMediaPropertyBag *This,LPCOLESTR pszPropName,VARIANT *pVar);
-      HRESULT (WINAPI *EnumProperty)(IMediaPropertyBag *This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue);
-    END_INTERFACE
-  } IMediaPropertyBagVtbl;
-  struct IMediaPropertyBag {
-    CONST_VTBL struct IMediaPropertyBagVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
-#define IMediaPropertyBag_Read(This,pszPropName,pVar,pErrorLog) (This)->lpVtbl->Read(This,pszPropName,pVar,pErrorLog)
-#define IMediaPropertyBag_Write(This,pszPropName,pVar) (This)->lpVtbl->Write(This,pszPropName,pVar)
-#define IMediaPropertyBag_EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue) (This)->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue)
-#endif
-#endif
-  HRESULT WINAPI IMediaPropertyBag_EnumProperty_Proxy(IMediaPropertyBag *This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue);
-  void __RPC_STUB IMediaPropertyBag_EnumProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IPersistMediaPropertyBag_INTERFACE_DEFINED__
-#define __IPersistMediaPropertyBag_INTERFACE_DEFINED__
-  typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
-
-  EXTERN_C const IID IID_IPersistMediaPropertyBag;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IPersistMediaPropertyBag : public IPersist {
-  public:
-    virtual HRESULT WINAPI InitNew(void) = 0;
-    virtual HRESULT WINAPI Load(IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog) = 0;
-    virtual HRESULT WINAPI Save(IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties) = 0;
-  };
-#else
-  typedef struct IPersistMediaPropertyBagVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IPersistMediaPropertyBag *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IPersistMediaPropertyBag *This);
-      ULONG (WINAPI *Release)(IPersistMediaPropertyBag *This);
-      HRESULT (WINAPI *GetClassID)(IPersistMediaPropertyBag *This,CLSID *pClassID);
-      HRESULT (WINAPI *InitNew)(IPersistMediaPropertyBag *This);
-      HRESULT (WINAPI *Load)(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog);
-      HRESULT (WINAPI *Save)(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties);
-    END_INTERFACE
-  } IPersistMediaPropertyBagVtbl;
-  struct IPersistMediaPropertyBag {
-    CONST_VTBL struct IPersistMediaPropertyBagVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IPersistMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IPersistMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IPersistMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
-#define IPersistMediaPropertyBag_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
-#define IPersistMediaPropertyBag_InitNew(This) (This)->lpVtbl->InitNew(This)
-#define IPersistMediaPropertyBag_Load(This,pPropBag,pErrorLog) (This)->lpVtbl->Load(This,pPropBag,pErrorLog)
-#define IPersistMediaPropertyBag_Save(This,pPropBag,fClearDirty,fSaveAllProperties) (This)->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties)
-#endif
-#endif
-  HRESULT WINAPI IPersistMediaPropertyBag_InitNew_Proxy(IPersistMediaPropertyBag *This);
-  void __RPC_STUB IPersistMediaPropertyBag_InitNew_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPersistMediaPropertyBag_Load_Proxy(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog);
-  void __RPC_STUB IPersistMediaPropertyBag_Load_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPersistMediaPropertyBag_Save_Proxy(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties);
-  void __RPC_STUB IPersistMediaPropertyBag_Save_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMPhysicalPinInfo_INTERFACE_DEFINED__
-#define __IAMPhysicalPinInfo_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMPhysicalPinInfo;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMPhysicalPinInfo : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetPhysicalType(long *pType,LPOLESTR *ppszType) = 0;
-  };
-#else
-  typedef struct IAMPhysicalPinInfoVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMPhysicalPinInfo *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMPhysicalPinInfo *This);
-      ULONG (WINAPI *Release)(IAMPhysicalPinInfo *This);
-      HRESULT (WINAPI *GetPhysicalType)(IAMPhysicalPinInfo *This,long *pType,LPOLESTR *ppszType);
-    END_INTERFACE
-  } IAMPhysicalPinInfoVtbl;
-  struct IAMPhysicalPinInfo {
-    CONST_VTBL struct IAMPhysicalPinInfoVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMPhysicalPinInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMPhysicalPinInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMPhysicalPinInfo_Release(This) (This)->lpVtbl->Release(This)
-#define IAMPhysicalPinInfo_GetPhysicalType(This,pType,ppszType) (This)->lpVtbl->GetPhysicalType(This,pType,ppszType)
-#endif
-#endif
-  HRESULT WINAPI IAMPhysicalPinInfo_GetPhysicalType_Proxy(IAMPhysicalPinInfo *This,long *pType,LPOLESTR *ppszType);
-  void __RPC_STUB IAMPhysicalPinInfo_GetPhysicalType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IAMPhysicalPinInfo *PAMPHYSICALPININFO;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0338_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0338_v0_0_s_ifspec;
-#ifndef __IAMExtDevice_INTERFACE_DEFINED__
-#define __IAMExtDevice_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMExtDevice;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMExtDevice : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetCapability(long Capability,long *pValue,double *pdblValue) = 0;
-    virtual HRESULT WINAPI get_ExternalDeviceID(LPOLESTR *ppszData) = 0;
-    virtual HRESULT WINAPI get_ExternalDeviceVersion(LPOLESTR *ppszData) = 0;
-    virtual HRESULT WINAPI put_DevicePower(long PowerMode) = 0;
-    virtual HRESULT WINAPI get_DevicePower(long *pPowerMode) = 0;
-    virtual HRESULT WINAPI Calibrate(HEVENT hEvent,long Mode,long *pStatus) = 0;
-    virtual HRESULT WINAPI put_DevicePort(long DevicePort) = 0;
-    virtual HRESULT WINAPI get_DevicePort(long *pDevicePort) = 0;
-  };
-#else
-  typedef struct IAMExtDeviceVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMExtDevice *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMExtDevice *This);
-      ULONG (WINAPI *Release)(IAMExtDevice *This);
-      HRESULT (WINAPI *GetCapability)(IAMExtDevice *This,long Capability,long *pValue,double *pdblValue);
-      HRESULT (WINAPI *get_ExternalDeviceID)(IAMExtDevice *This,LPOLESTR *ppszData);
-      HRESULT (WINAPI *get_ExternalDeviceVersion)(IAMExtDevice *This,LPOLESTR *ppszData);
-      HRESULT (WINAPI *put_DevicePower)(IAMExtDevice *This,long PowerMode);
-      HRESULT (WINAPI *get_DevicePower)(IAMExtDevice *This,long *pPowerMode);
-      HRESULT (WINAPI *Calibrate)(IAMExtDevice *This,HEVENT hEvent,long Mode,long *pStatus);
-      HRESULT (WINAPI *put_DevicePort)(IAMExtDevice *This,long DevicePort);
-      HRESULT (WINAPI *get_DevicePort)(IAMExtDevice *This,long *pDevicePort);
-    END_INTERFACE
-  } IAMExtDeviceVtbl;
-  struct IAMExtDevice {
-    CONST_VTBL struct IAMExtDeviceVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMExtDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMExtDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMExtDevice_Release(This) (This)->lpVtbl->Release(This)
-#define IAMExtDevice_GetCapability(This,Capability,pValue,pdblValue) (This)->lpVtbl->GetCapability(This,Capability,pValue,pdblValue)
-#define IAMExtDevice_get_ExternalDeviceID(This,ppszData) (This)->lpVtbl->get_ExternalDeviceID(This,ppszData)
-#define IAMExtDevice_get_ExternalDeviceVersion(This,ppszData) (This)->lpVtbl->get_ExternalDeviceVersion(This,ppszData)
-#define IAMExtDevice_put_DevicePower(This,PowerMode) (This)->lpVtbl->put_DevicePower(This,PowerMode)
-#define IAMExtDevice_get_DevicePower(This,pPowerMode) (This)->lpVtbl->get_DevicePower(This,pPowerMode)
-#define IAMExtDevice_Calibrate(This,hEvent,Mode,pStatus) (This)->lpVtbl->Calibrate(This,hEvent,Mode,pStatus)
-#define IAMExtDevice_put_DevicePort(This,DevicePort) (This)->lpVtbl->put_DevicePort(This,DevicePort)
-#define IAMExtDevice_get_DevicePort(This,pDevicePort) (This)->lpVtbl->get_DevicePort(This,pDevicePort)
-#endif
-#endif
-  HRESULT WINAPI IAMExtDevice_GetCapability_Proxy(IAMExtDevice *This,long Capability,long *pValue,double *pdblValue);
-  void __RPC_STUB IAMExtDevice_GetCapability_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtDevice_get_ExternalDeviceID_Proxy(IAMExtDevice *This,LPOLESTR *ppszData);
-  void __RPC_STUB IAMExtDevice_get_ExternalDeviceID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtDevice_get_ExternalDeviceVersion_Proxy(IAMExtDevice *This,LPOLESTR *ppszData);
-  void __RPC_STUB IAMExtDevice_get_ExternalDeviceVersion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtDevice_put_DevicePower_Proxy(IAMExtDevice *This,long PowerMode);
-  void __RPC_STUB IAMExtDevice_put_DevicePower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtDevice_get_DevicePower_Proxy(IAMExtDevice *This,long *pPowerMode);
-  void __RPC_STUB IAMExtDevice_get_DevicePower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtDevice_Calibrate_Proxy(IAMExtDevice *This,HEVENT hEvent,long Mode,long *pStatus);
-  void __RPC_STUB IAMExtDevice_Calibrate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtDevice_put_DevicePort_Proxy(IAMExtDevice *This,long DevicePort);
-  void __RPC_STUB IAMExtDevice_put_DevicePort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtDevice_get_DevicePort_Proxy(IAMExtDevice *This,long *pDevicePort);
-  void __RPC_STUB IAMExtDevice_get_DevicePort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IAMExtDevice *PEXTDEVICE;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0339_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0339_v0_0_s_ifspec;
-#ifndef __IAMExtTransport_INTERFACE_DEFINED__
-#define __IAMExtTransport_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMExtTransport;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMExtTransport : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetCapability(long Capability,long *pValue,double *pdblValue) = 0;
-    virtual HRESULT WINAPI put_MediaState(long State) = 0;
-    virtual HRESULT WINAPI get_MediaState(long *pState) = 0;
-    virtual HRESULT WINAPI put_LocalControl(long State) = 0;
-    virtual HRESULT WINAPI get_LocalControl(long *pState) = 0;
-    virtual HRESULT WINAPI GetStatus(long StatusItem,long *pValue) = 0;
-    virtual HRESULT WINAPI GetTransportBasicParameters(long Param,long *pValue,LPOLESTR *ppszData) = 0;
-    virtual HRESULT WINAPI SetTransportBasicParameters(long Param,long Value,LPCOLESTR pszData) = 0;
-    virtual HRESULT WINAPI GetTransportVideoParameters(long Param,long *pValue) = 0;
-    virtual HRESULT WINAPI SetTransportVideoParameters(long Param,long Value) = 0;
-    virtual HRESULT WINAPI GetTransportAudioParameters(long Param,long *pValue) = 0;
-    virtual HRESULT WINAPI SetTransportAudioParameters(long Param,long Value) = 0;
-    virtual HRESULT WINAPI put_Mode(long Mode) = 0;
-    virtual HRESULT WINAPI get_Mode(long *pMode) = 0;
-    virtual HRESULT WINAPI put_Rate(double dblRate) = 0;
-    virtual HRESULT WINAPI get_Rate(double *pdblRate) = 0;
-    virtual HRESULT WINAPI GetChase(long *pEnabled,long *pOffset,HEVENT *phEvent) = 0;
-    virtual HRESULT WINAPI SetChase(long Enable,long Offset,HEVENT hEvent) = 0;
-    virtual HRESULT WINAPI GetBump(long *pSpeed,long *pDuration) = 0;
-    virtual HRESULT WINAPI SetBump(long Speed,long Duration) = 0;
-    virtual HRESULT WINAPI get_AntiClogControl(long *pEnabled) = 0;
-    virtual HRESULT WINAPI put_AntiClogControl(long Enable) = 0;
-    virtual HRESULT WINAPI GetEditPropertySet(long EditID,long *pState) = 0;
-    virtual HRESULT WINAPI SetEditPropertySet(long *pEditID,long State) = 0;
-    virtual HRESULT WINAPI GetEditProperty(long EditID,long Param,long *pValue) = 0;
-    virtual HRESULT WINAPI SetEditProperty(long EditID,long Param,long Value) = 0;
-    virtual HRESULT WINAPI get_EditStart(long *pValue) = 0;
-    virtual HRESULT WINAPI put_EditStart(long Value) = 0;
-  };
-#else
-  typedef struct IAMExtTransportVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMExtTransport *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMExtTransport *This);
-      ULONG (WINAPI *Release)(IAMExtTransport *This);
-      HRESULT (WINAPI *GetCapability)(IAMExtTransport *This,long Capability,long *pValue,double *pdblValue);
-      HRESULT (WINAPI *put_MediaState)(IAMExtTransport *This,long State);
-      HRESULT (WINAPI *get_MediaState)(IAMExtTransport *This,long *pState);
-      HRESULT (WINAPI *put_LocalControl)(IAMExtTransport *This,long State);
-      HRESULT (WINAPI *get_LocalControl)(IAMExtTransport *This,long *pState);
-      HRESULT (WINAPI *GetStatus)(IAMExtTransport *This,long StatusItem,long *pValue);
-      HRESULT (WINAPI *GetTransportBasicParameters)(IAMExtTransport *This,long Param,long *pValue,LPOLESTR *ppszData);
-      HRESULT (WINAPI *SetTransportBasicParameters)(IAMExtTransport *This,long Param,long Value,LPCOLESTR pszData);
-      HRESULT (WINAPI *GetTransportVideoParameters)(IAMExtTransport *This,long Param,long *pValue);
-      HRESULT (WINAPI *SetTransportVideoParameters)(IAMExtTransport *This,long Param,long Value);
-      HRESULT (WINAPI *GetTransportAudioParameters)(IAMExtTransport *This,long Param,long *pValue);
-      HRESULT (WINAPI *SetTransportAudioParameters)(IAMExtTransport *This,long Param,long Value);
-      HRESULT (WINAPI *put_Mode)(IAMExtTransport *This,long Mode);
-      HRESULT (WINAPI *get_Mode)(IAMExtTransport *This,long *pMode);
-      HRESULT (WINAPI *put_Rate)(IAMExtTransport *This,double dblRate);
-      HRESULT (WINAPI *get_Rate)(IAMExtTransport *This,double *pdblRate);
-      HRESULT (WINAPI *GetChase)(IAMExtTransport *This,long *pEnabled,long *pOffset,HEVENT *phEvent);
-      HRESULT (WINAPI *SetChase)(IAMExtTransport *This,long Enable,long Offset,HEVENT hEvent);
-      HRESULT (WINAPI *GetBump)(IAMExtTransport *This,long *pSpeed,long *pDuration);
-      HRESULT (WINAPI *SetBump)(IAMExtTransport *This,long Speed,long Duration);
-      HRESULT (WINAPI *get_AntiClogControl)(IAMExtTransport *This,long *pEnabled);
-      HRESULT (WINAPI *put_AntiClogControl)(IAMExtTransport *This,long Enable);
-      HRESULT (WINAPI *GetEditPropertySet)(IAMExtTransport *This,long EditID,long *pState);
-      HRESULT (WINAPI *SetEditPropertySet)(IAMExtTransport *This,long *pEditID,long State);
-      HRESULT (WINAPI *GetEditProperty)(IAMExtTransport *This,long EditID,long Param,long *pValue);
-      HRESULT (WINAPI *SetEditProperty)(IAMExtTransport *This,long EditID,long Param,long Value);
-      HRESULT (WINAPI *get_EditStart)(IAMExtTransport *This,long *pValue);
-      HRESULT (WINAPI *put_EditStart)(IAMExtTransport *This,long Value);
-    END_INTERFACE
-  } IAMExtTransportVtbl;
-  struct IAMExtTransport {
-    CONST_VTBL struct IAMExtTransportVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMExtTransport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMExtTransport_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMExtTransport_Release(This) (This)->lpVtbl->Release(This)
-#define IAMExtTransport_GetCapability(This,Capability,pValue,pdblValue) (This)->lpVtbl->GetCapability(This,Capability,pValue,pdblValue)
-#define IAMExtTransport_put_MediaState(This,State) (This)->lpVtbl->put_MediaState(This,State)
-#define IAMExtTransport_get_MediaState(This,pState) (This)->lpVtbl->get_MediaState(This,pState)
-#define IAMExtTransport_put_LocalControl(This,State) (This)->lpVtbl->put_LocalControl(This,State)
-#define IAMExtTransport_get_LocalControl(This,pState) (This)->lpVtbl->get_LocalControl(This,pState)
-#define IAMExtTransport_GetStatus(This,StatusItem,pValue) (This)->lpVtbl->GetStatus(This,StatusItem,pValue)
-#define IAMExtTransport_GetTransportBasicParameters(This,Param,pValue,ppszData) (This)->lpVtbl->GetTransportBasicParameters(This,Param,pValue,ppszData)
-#define IAMExtTransport_SetTransportBasicParameters(This,Param,Value,pszData) (This)->lpVtbl->SetTransportBasicParameters(This,Param,Value,pszData)
-#define IAMExtTransport_GetTransportVideoParameters(This,Param,pValue) (This)->lpVtbl->GetTransportVideoParameters(This,Param,pValue)
-#define IAMExtTransport_SetTransportVideoParameters(This,Param,Value) (This)->lpVtbl->SetTransportVideoParameters(This,Param,Value)
-#define IAMExtTransport_GetTransportAudioParameters(This,Param,pValue) (This)->lpVtbl->GetTransportAudioParameters(This,Param,pValue)
-#define IAMExtTransport_SetTransportAudioParameters(This,Param,Value) (This)->lpVtbl->SetTransportAudioParameters(This,Param,Value)
-#define IAMExtTransport_put_Mode(This,Mode) (This)->lpVtbl->put_Mode(This,Mode)
-#define IAMExtTransport_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
-#define IAMExtTransport_put_Rate(This,dblRate) (This)->lpVtbl->put_Rate(This,dblRate)
-#define IAMExtTransport_get_Rate(This,pdblRate) (This)->lpVtbl->get_Rate(This,pdblRate)
-#define IAMExtTransport_GetChase(This,pEnabled,pOffset,phEvent) (This)->lpVtbl->GetChase(This,pEnabled,pOffset,phEvent)
-#define IAMExtTransport_SetChase(This,Enable,Offset,hEvent) (This)->lpVtbl->SetChase(This,Enable,Offset,hEvent)
-#define IAMExtTransport_GetBump(This,pSpeed,pDuration) (This)->lpVtbl->GetBump(This,pSpeed,pDuration)
-#define IAMExtTransport_SetBump(This,Speed,Duration) (This)->lpVtbl->SetBump(This,Speed,Duration)
-#define IAMExtTransport_get_AntiClogControl(This,pEnabled) (This)->lpVtbl->get_AntiClogControl(This,pEnabled)
-#define IAMExtTransport_put_AntiClogControl(This,Enable) (This)->lpVtbl->put_AntiClogControl(This,Enable)
-#define IAMExtTransport_GetEditPropertySet(This,EditID,pState) (This)->lpVtbl->GetEditPropertySet(This,EditID,pState)
-#define IAMExtTransport_SetEditPropertySet(This,pEditID,State) (This)->lpVtbl->SetEditPropertySet(This,pEditID,State)
-#define IAMExtTransport_GetEditProperty(This,EditID,Param,pValue) (This)->lpVtbl->GetEditProperty(This,EditID,Param,pValue)
-#define IAMExtTransport_SetEditProperty(This,EditID,Param,Value) (This)->lpVtbl->SetEditProperty(This,EditID,Param,Value)
-#define IAMExtTransport_get_EditStart(This,pValue) (This)->lpVtbl->get_EditStart(This,pValue)
-#define IAMExtTransport_put_EditStart(This,Value) (This)->lpVtbl->put_EditStart(This,Value)
-#endif
-#endif
-  HRESULT WINAPI IAMExtTransport_GetCapability_Proxy(IAMExtTransport *This,long Capability,long *pValue,double *pdblValue);
-  void __RPC_STUB IAMExtTransport_GetCapability_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_put_MediaState_Proxy(IAMExtTransport *This,long State);
-  void __RPC_STUB IAMExtTransport_put_MediaState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_get_MediaState_Proxy(IAMExtTransport *This,long *pState);
-  void __RPC_STUB IAMExtTransport_get_MediaState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_put_LocalControl_Proxy(IAMExtTransport *This,long State);
-  void __RPC_STUB IAMExtTransport_put_LocalControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_get_LocalControl_Proxy(IAMExtTransport *This,long *pState);
-  void __RPC_STUB IAMExtTransport_get_LocalControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_GetStatus_Proxy(IAMExtTransport *This,long StatusItem,long *pValue);
-  void __RPC_STUB IAMExtTransport_GetStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_GetTransportBasicParameters_Proxy(IAMExtTransport *This,long Param,long *pValue,LPOLESTR *ppszData);
-  void __RPC_STUB IAMExtTransport_GetTransportBasicParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_SetTransportBasicParameters_Proxy(IAMExtTransport *This,long Param,long Value,LPCOLESTR pszData);
-  void __RPC_STUB IAMExtTransport_SetTransportBasicParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_GetTransportVideoParameters_Proxy(IAMExtTransport *This,long Param,long *pValue);
-  void __RPC_STUB IAMExtTransport_GetTransportVideoParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_SetTransportVideoParameters_Proxy(IAMExtTransport *This,long Param,long Value);
-  void __RPC_STUB IAMExtTransport_SetTransportVideoParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_GetTransportAudioParameters_Proxy(IAMExtTransport *This,long Param,long *pValue);
-  void __RPC_STUB IAMExtTransport_GetTransportAudioParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_SetTransportAudioParameters_Proxy(IAMExtTransport *This,long Param,long Value);
-  void __RPC_STUB IAMExtTransport_SetTransportAudioParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_put_Mode_Proxy(IAMExtTransport *This,long Mode);
-  void __RPC_STUB IAMExtTransport_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_get_Mode_Proxy(IAMExtTransport *This,long *pMode);
-  void __RPC_STUB IAMExtTransport_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_put_Rate_Proxy(IAMExtTransport *This,double dblRate);
-  void __RPC_STUB IAMExtTransport_put_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_get_Rate_Proxy(IAMExtTransport *This,double *pdblRate);
-  void __RPC_STUB IAMExtTransport_get_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_GetChase_Proxy(IAMExtTransport *This,long *pEnabled,long *pOffset,HEVENT *phEvent);
-  void __RPC_STUB IAMExtTransport_GetChase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_SetChase_Proxy(IAMExtTransport *This,long Enable,long Offset,HEVENT hEvent);
-  void __RPC_STUB IAMExtTransport_SetChase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_GetBump_Proxy(IAMExtTransport *This,long *pSpeed,long *pDuration);
-  void __RPC_STUB IAMExtTransport_GetBump_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_SetBump_Proxy(IAMExtTransport *This,long Speed,long Duration);
-  void __RPC_STUB IAMExtTransport_SetBump_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_get_AntiClogControl_Proxy(IAMExtTransport *This,long *pEnabled);
-  void __RPC_STUB IAMExtTransport_get_AntiClogControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_put_AntiClogControl_Proxy(IAMExtTransport *This,long Enable);
-  void __RPC_STUB IAMExtTransport_put_AntiClogControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_GetEditPropertySet_Proxy(IAMExtTransport *This,long EditID,long *pState);
-  void __RPC_STUB IAMExtTransport_GetEditPropertySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_SetEditPropertySet_Proxy(IAMExtTransport *This,long *pEditID,long State);
-  void __RPC_STUB IAMExtTransport_SetEditPropertySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_GetEditProperty_Proxy(IAMExtTransport *This,long EditID,long Param,long *pValue);
-  void __RPC_STUB IAMExtTransport_GetEditProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_SetEditProperty_Proxy(IAMExtTransport *This,long EditID,long Param,long Value);
-  void __RPC_STUB IAMExtTransport_SetEditProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_get_EditStart_Proxy(IAMExtTransport *This,long *pValue);
-  void __RPC_STUB IAMExtTransport_get_EditStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMExtTransport_put_EditStart_Proxy(IAMExtTransport *This,long Value);
-  void __RPC_STUB IAMExtTransport_put_EditStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IAMExtTransport *PIAMEXTTRANSPORT;
-
-#ifndef TIMECODE_DEFINED
-#define TIMECODE_DEFINED
-  typedef union _timecode {
-    struct {
-      WORD wFrameRate;
-      WORD wFrameFract;
-      DWORD dwFrames;
-    };
-    DWORDLONG qw;
-  } TIMECODE;
-#endif
-
-  typedef TIMECODE *PTIMECODE;
-
-  typedef struct tagTIMECODE_SAMPLE {
-    LONGLONG qwTick;
-    TIMECODE timecode;
-    DWORD dwUser;
-    DWORD dwFlags;
-  } TIMECODE_SAMPLE;
-
-  typedef TIMECODE_SAMPLE *PTIMECODE_SAMPLE;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0340_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0340_v0_0_s_ifspec;
-#ifndef __IAMTimecodeReader_INTERFACE_DEFINED__
-#define __IAMTimecodeReader_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMTimecodeReader;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMTimecodeReader : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetTCRMode(long Param,long *pValue) = 0;
-    virtual HRESULT WINAPI SetTCRMode(long Param,long Value) = 0;
-    virtual HRESULT WINAPI put_VITCLine(long Line) = 0;
-    virtual HRESULT WINAPI get_VITCLine(long *pLine) = 0;
-    virtual HRESULT WINAPI GetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
-  };
-#else
-  typedef struct IAMTimecodeReaderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMTimecodeReader *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMTimecodeReader *This);
-      ULONG (WINAPI *Release)(IAMTimecodeReader *This);
-      HRESULT (WINAPI *GetTCRMode)(IAMTimecodeReader *This,long Param,long *pValue);
-      HRESULT (WINAPI *SetTCRMode)(IAMTimecodeReader *This,long Param,long Value);
-      HRESULT (WINAPI *put_VITCLine)(IAMTimecodeReader *This,long Line);
-      HRESULT (WINAPI *get_VITCLine)(IAMTimecodeReader *This,long *pLine);
-      HRESULT (WINAPI *GetTimecode)(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
-    END_INTERFACE
-  } IAMTimecodeReaderVtbl;
-  struct IAMTimecodeReader {
-    CONST_VTBL struct IAMTimecodeReaderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMTimecodeReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMTimecodeReader_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMTimecodeReader_Release(This) (This)->lpVtbl->Release(This)
-#define IAMTimecodeReader_GetTCRMode(This,Param,pValue) (This)->lpVtbl->GetTCRMode(This,Param,pValue)
-#define IAMTimecodeReader_SetTCRMode(This,Param,Value) (This)->lpVtbl->SetTCRMode(This,Param,Value)
-#define IAMTimecodeReader_put_VITCLine(This,Line) (This)->lpVtbl->put_VITCLine(This,Line)
-#define IAMTimecodeReader_get_VITCLine(This,pLine) (This)->lpVtbl->get_VITCLine(This,pLine)
-#define IAMTimecodeReader_GetTimecode(This,pTimecodeSample) (This)->lpVtbl->GetTimecode(This,pTimecodeSample)
-#endif
-#endif
-  HRESULT WINAPI IAMTimecodeReader_GetTCRMode_Proxy(IAMTimecodeReader *This,long Param,long *pValue);
-  void __RPC_STUB IAMTimecodeReader_GetTCRMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTimecodeReader_SetTCRMode_Proxy(IAMTimecodeReader *This,long Param,long Value);
-  void __RPC_STUB IAMTimecodeReader_SetTCRMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTimecodeReader_put_VITCLine_Proxy(IAMTimecodeReader *This,long Line);
-  void __RPC_STUB IAMTimecodeReader_put_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTimecodeReader_get_VITCLine_Proxy(IAMTimecodeReader *This,long *pLine);
-  void __RPC_STUB IAMTimecodeReader_get_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTimecodeReader_GetTimecode_Proxy(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
-  void __RPC_STUB IAMTimecodeReader_GetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IAMTimecodeReader *PIAMTIMECODEREADER;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0341_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0341_v0_0_s_ifspec;
-#ifndef __IAMTimecodeGenerator_INTERFACE_DEFINED__
-#define __IAMTimecodeGenerator_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMTimecodeGenerator;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMTimecodeGenerator : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetTCGMode(long Param,long *pValue) = 0;
-    virtual HRESULT WINAPI SetTCGMode(long Param,long Value) = 0;
-    virtual HRESULT WINAPI put_VITCLine(long Line) = 0;
-    virtual HRESULT WINAPI get_VITCLine(long *pLine) = 0;
-    virtual HRESULT WINAPI SetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
-    virtual HRESULT WINAPI GetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
-  };
-#else
-  typedef struct IAMTimecodeGeneratorVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMTimecodeGenerator *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMTimecodeGenerator *This);
-      ULONG (WINAPI *Release)(IAMTimecodeGenerator *This);
-      HRESULT (WINAPI *GetTCGMode)(IAMTimecodeGenerator *This,long Param,long *pValue);
-      HRESULT (WINAPI *SetTCGMode)(IAMTimecodeGenerator *This,long Param,long Value);
-      HRESULT (WINAPI *put_VITCLine)(IAMTimecodeGenerator *This,long Line);
-      HRESULT (WINAPI *get_VITCLine)(IAMTimecodeGenerator *This,long *pLine);
-      HRESULT (WINAPI *SetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
-      HRESULT (WINAPI *GetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
-    END_INTERFACE
-  } IAMTimecodeGeneratorVtbl;
-  struct IAMTimecodeGenerator {
-    CONST_VTBL struct IAMTimecodeGeneratorVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMTimecodeGenerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMTimecodeGenerator_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMTimecodeGenerator_Release(This) (This)->lpVtbl->Release(This)
-#define IAMTimecodeGenerator_GetTCGMode(This,Param,pValue) (This)->lpVtbl->GetTCGMode(This,Param,pValue)
-#define IAMTimecodeGenerator_SetTCGMode(This,Param,Value) (This)->lpVtbl->SetTCGMode(This,Param,Value)
-#define IAMTimecodeGenerator_put_VITCLine(This,Line) (This)->lpVtbl->put_VITCLine(This,Line)
-#define IAMTimecodeGenerator_get_VITCLine(This,pLine) (This)->lpVtbl->get_VITCLine(This,pLine)
-#define IAMTimecodeGenerator_SetTimecode(This,pTimecodeSample) (This)->lpVtbl->SetTimecode(This,pTimecodeSample)
-#define IAMTimecodeGenerator_GetTimecode(This,pTimecodeSample) (This)->lpVtbl->GetTimecode(This,pTimecodeSample)
-#endif
-#endif
-  HRESULT WINAPI IAMTimecodeGenerator_GetTCGMode_Proxy(IAMTimecodeGenerator *This,long Param,long *pValue);
-  void __RPC_STUB IAMTimecodeGenerator_GetTCGMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTimecodeGenerator_SetTCGMode_Proxy(IAMTimecodeGenerator *This,long Param,long Value);
-  void __RPC_STUB IAMTimecodeGenerator_SetTCGMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTimecodeGenerator_put_VITCLine_Proxy(IAMTimecodeGenerator *This,long Line);
-  void __RPC_STUB IAMTimecodeGenerator_put_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTimecodeGenerator_get_VITCLine_Proxy(IAMTimecodeGenerator *This,long *pLine);
-  void __RPC_STUB IAMTimecodeGenerator_get_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTimecodeGenerator_SetTimecode_Proxy(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
-  void __RPC_STUB IAMTimecodeGenerator_SetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTimecodeGenerator_GetTimecode_Proxy(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
-  void __RPC_STUB IAMTimecodeGenerator_GetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IAMTimecodeGenerator *PIAMTIMECODEGENERATOR;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0342_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0342_v0_0_s_ifspec;
-#ifndef __IAMTimecodeDisplay_INTERFACE_DEFINED__
-#define __IAMTimecodeDisplay_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMTimecodeDisplay;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMTimecodeDisplay : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetTCDisplayEnable(long *pState) = 0;
-    virtual HRESULT WINAPI SetTCDisplayEnable(long State) = 0;
-    virtual HRESULT WINAPI GetTCDisplay(long Param,long *pValue) = 0;
-    virtual HRESULT WINAPI SetTCDisplay(long Param,long Value) = 0;
-  };
-#else
-  typedef struct IAMTimecodeDisplayVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMTimecodeDisplay *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMTimecodeDisplay *This);
-      ULONG (WINAPI *Release)(IAMTimecodeDisplay *This);
-      HRESULT (WINAPI *GetTCDisplayEnable)(IAMTimecodeDisplay *This,long *pState);
-      HRESULT (WINAPI *SetTCDisplayEnable)(IAMTimecodeDisplay *This,long State);
-      HRESULT (WINAPI *GetTCDisplay)(IAMTimecodeDisplay *This,long Param,long *pValue);
-      HRESULT (WINAPI *SetTCDisplay)(IAMTimecodeDisplay *This,long Param,long Value);
-    END_INTERFACE
-  } IAMTimecodeDisplayVtbl;
-  struct IAMTimecodeDisplay {
-    CONST_VTBL struct IAMTimecodeDisplayVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMTimecodeDisplay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMTimecodeDisplay_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMTimecodeDisplay_Release(This) (This)->lpVtbl->Release(This)
-#define IAMTimecodeDisplay_GetTCDisplayEnable(This,pState) (This)->lpVtbl->GetTCDisplayEnable(This,pState)
-#define IAMTimecodeDisplay_SetTCDisplayEnable(This,State) (This)->lpVtbl->SetTCDisplayEnable(This,State)
-#define IAMTimecodeDisplay_GetTCDisplay(This,Param,pValue) (This)->lpVtbl->GetTCDisplay(This,Param,pValue)
-#define IAMTimecodeDisplay_SetTCDisplay(This,Param,Value) (This)->lpVtbl->SetTCDisplay(This,Param,Value)
-#endif
-#endif
-  HRESULT WINAPI IAMTimecodeDisplay_GetTCDisplayEnable_Proxy(IAMTimecodeDisplay *This,long *pState);
-  void __RPC_STUB IAMTimecodeDisplay_GetTCDisplayEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTimecodeDisplay_SetTCDisplayEnable_Proxy(IAMTimecodeDisplay *This,long State);
-  void __RPC_STUB IAMTimecodeDisplay_SetTCDisplayEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTimecodeDisplay_GetTCDisplay_Proxy(IAMTimecodeDisplay *This,long Param,long *pValue);
-  void __RPC_STUB IAMTimecodeDisplay_GetTCDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTimecodeDisplay_SetTCDisplay_Proxy(IAMTimecodeDisplay *This,long Param,long Value);
-  void __RPC_STUB IAMTimecodeDisplay_SetTCDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IAMTimecodeDisplay *PIAMTIMECODEDISPLAY;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0343_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0343_v0_0_s_ifspec;
-#ifndef __IAMDevMemoryAllocator_INTERFACE_DEFINED__
-#define __IAMDevMemoryAllocator_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMDevMemoryAllocator;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMDevMemoryAllocator : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetInfo(DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk) = 0;
-    virtual HRESULT WINAPI CheckMemory(const BYTE *pBuffer) = 0;
-    virtual HRESULT WINAPI Alloc(BYTE **ppBuffer,DWORD *pdwcbBuffer) = 0;
-    virtual HRESULT WINAPI Free(BYTE *pBuffer) = 0;
-    virtual HRESULT WINAPI GetDevMemoryObject(IUnknown **ppUnkInnner,IUnknown *pUnkOuter) = 0;
-  };
-#else
-  typedef struct IAMDevMemoryAllocatorVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMDevMemoryAllocator *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMDevMemoryAllocator *This);
-      ULONG (WINAPI *Release)(IAMDevMemoryAllocator *This);
-      HRESULT (WINAPI *GetInfo)(IAMDevMemoryAllocator *This,DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk);
-      HRESULT (WINAPI *CheckMemory)(IAMDevMemoryAllocator *This,const BYTE *pBuffer);
-      HRESULT (WINAPI *Alloc)(IAMDevMemoryAllocator *This,BYTE **ppBuffer,DWORD *pdwcbBuffer);
-      HRESULT (WINAPI *Free)(IAMDevMemoryAllocator *This,BYTE *pBuffer);
-      HRESULT (WINAPI *GetDevMemoryObject)(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
-    END_INTERFACE
-  } IAMDevMemoryAllocatorVtbl;
-  struct IAMDevMemoryAllocator {
-    CONST_VTBL struct IAMDevMemoryAllocatorVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMDevMemoryAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMDevMemoryAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMDevMemoryAllocator_Release(This) (This)->lpVtbl->Release(This)
-#define IAMDevMemoryAllocator_GetInfo(This,pdwcbTotalFree,pdwcbLargestFree,pdwcbTotalMemory,pdwcbMinimumChunk) (This)->lpVtbl->GetInfo(This,pdwcbTotalFree,pdwcbLargestFree,pdwcbTotalMemory,pdwcbMinimumChunk)
-#define IAMDevMemoryAllocator_CheckMemory(This,pBuffer) (This)->lpVtbl->CheckMemory(This,pBuffer)
-#define IAMDevMemoryAllocator_Alloc(This,ppBuffer,pdwcbBuffer) (This)->lpVtbl->Alloc(This,ppBuffer,pdwcbBuffer)
-#define IAMDevMemoryAllocator_Free(This,pBuffer) (This)->lpVtbl->Free(This,pBuffer)
-#define IAMDevMemoryAllocator_GetDevMemoryObject(This,ppUnkInnner,pUnkOuter) (This)->lpVtbl->GetDevMemoryObject(This,ppUnkInnner,pUnkOuter)
-#endif
-#endif
-  HRESULT WINAPI IAMDevMemoryAllocator_GetInfo_Proxy(IAMDevMemoryAllocator *This,DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk);
-  void __RPC_STUB IAMDevMemoryAllocator_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDevMemoryAllocator_CheckMemory_Proxy(IAMDevMemoryAllocator *This,const BYTE *pBuffer);
-  void __RPC_STUB IAMDevMemoryAllocator_CheckMemory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDevMemoryAllocator_Alloc_Proxy(IAMDevMemoryAllocator *This,BYTE **ppBuffer,DWORD *pdwcbBuffer);
-  void __RPC_STUB IAMDevMemoryAllocator_Alloc_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDevMemoryAllocator_Free_Proxy(IAMDevMemoryAllocator *This,BYTE *pBuffer);
-  void __RPC_STUB IAMDevMemoryAllocator_Free_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDevMemoryAllocator_GetDevMemoryObject_Proxy(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
-  void __RPC_STUB IAMDevMemoryAllocator_GetDevMemoryObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IAMDevMemoryAllocator *PAMDEVMEMORYALLOCATOR;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0344_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0344_v0_0_s_ifspec;
-#ifndef __IAMDevMemoryControl_INTERFACE_DEFINED__
-#define __IAMDevMemoryControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMDevMemoryControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMDevMemoryControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI QueryWriteSync(void) = 0;
-    virtual HRESULT WINAPI WriteSync(void) = 0;
-    virtual HRESULT WINAPI GetDevId(DWORD *pdwDevId) = 0;
-  };
-#else
-  typedef struct IAMDevMemoryControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMDevMemoryControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMDevMemoryControl *This);
-      ULONG (WINAPI *Release)(IAMDevMemoryControl *This);
-      HRESULT (WINAPI *QueryWriteSync)(IAMDevMemoryControl *This);
-      HRESULT (WINAPI *WriteSync)(IAMDevMemoryControl *This);
-      HRESULT (WINAPI *GetDevId)(IAMDevMemoryControl *This,DWORD *pdwDevId);
-    END_INTERFACE
-  } IAMDevMemoryControlVtbl;
-  struct IAMDevMemoryControl {
-    CONST_VTBL struct IAMDevMemoryControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMDevMemoryControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMDevMemoryControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMDevMemoryControl_Release(This) (This)->lpVtbl->Release(This)
-#define IAMDevMemoryControl_QueryWriteSync(This) (This)->lpVtbl->QueryWriteSync(This)
-#define IAMDevMemoryControl_WriteSync(This) (This)->lpVtbl->WriteSync(This)
-#define IAMDevMemoryControl_GetDevId(This,pdwDevId) (This)->lpVtbl->GetDevId(This,pdwDevId)
-#endif
-#endif
-  HRESULT WINAPI IAMDevMemoryControl_QueryWriteSync_Proxy(IAMDevMemoryControl *This);
-  void __RPC_STUB IAMDevMemoryControl_QueryWriteSync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDevMemoryControl_WriteSync_Proxy(IAMDevMemoryControl *This);
-  void __RPC_STUB IAMDevMemoryControl_WriteSync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDevMemoryControl_GetDevId_Proxy(IAMDevMemoryControl *This,DWORD *pdwDevId);
-  void __RPC_STUB IAMDevMemoryControl_GetDevId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IAMDevMemoryControl *PAMDEVMEMORYCONTROL;
-
-  enum _AMSTREAMSELECTINFOFLAGS {
-    AMSTREAMSELECTINFO_ENABLED = 0x1,AMSTREAMSELECTINFO_EXCLUSIVE = 0x2
-  };
-
-  enum _AMSTREAMSELECTENABLEFLAGS {
-    AMSTREAMSELECTENABLE_ENABLE = 0x1,AMSTREAMSELECTENABLE_ENABLEALL = 0x2
-  };
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0345_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0345_v0_0_s_ifspec;
-#ifndef __IAMStreamSelect_INTERFACE_DEFINED__
-#define __IAMStreamSelect_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMStreamSelect;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMStreamSelect : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Count(DWORD *pcStreams) = 0;
-    virtual HRESULT WINAPI Info(long lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk) = 0;
-    virtual HRESULT WINAPI Enable(long lIndex,DWORD dwFlags) = 0;
-  };
-#else
-  typedef struct IAMStreamSelectVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMStreamSelect *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMStreamSelect *This);
-      ULONG (WINAPI *Release)(IAMStreamSelect *This);
-      HRESULT (WINAPI *Count)(IAMStreamSelect *This,DWORD *pcStreams);
-      HRESULT (WINAPI *Info)(IAMStreamSelect *This,long lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk);
-      HRESULT (WINAPI *Enable)(IAMStreamSelect *This,long lIndex,DWORD dwFlags);
-    END_INTERFACE
-  } IAMStreamSelectVtbl;
-  struct IAMStreamSelect {
-    CONST_VTBL struct IAMStreamSelectVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMStreamSelect_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMStreamSelect_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMStreamSelect_Release(This) (This)->lpVtbl->Release(This)
-#define IAMStreamSelect_Count(This,pcStreams) (This)->lpVtbl->Count(This,pcStreams)
-#define IAMStreamSelect_Info(This,lIndex,ppmt,pdwFlags,plcid,pdwGroup,ppszName,ppObject,ppUnk) (This)->lpVtbl->Info(This,lIndex,ppmt,pdwFlags,plcid,pdwGroup,ppszName,ppObject,ppUnk)
-#define IAMStreamSelect_Enable(This,lIndex,dwFlags) (This)->lpVtbl->Enable(This,lIndex,dwFlags)
-#endif
-#endif
-  HRESULT WINAPI IAMStreamSelect_Count_Proxy(IAMStreamSelect *This,DWORD *pcStreams);
-  void __RPC_STUB IAMStreamSelect_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMStreamSelect_Info_Proxy(IAMStreamSelect *This,long lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk);
-  void __RPC_STUB IAMStreamSelect_Info_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMStreamSelect_Enable_Proxy(IAMStreamSelect *This,long lIndex,DWORD dwFlags);
-  void __RPC_STUB IAMStreamSelect_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef IAMStreamSelect *PAMSTREAMSELECT;
-
-  enum _AMRESCTL_RESERVEFLAGS {
-    AMRESCTL_RESERVEFLAGS_RESERVE = 0,AMRESCTL_RESERVEFLAGS_UNRESERVE = 0x1
-  };
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0346_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0346_v0_0_s_ifspec;
-#ifndef __IAMResourceControl_INTERFACE_DEFINED__
-#define __IAMResourceControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMResourceControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMResourceControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Reserve(DWORD dwFlags,PVOID pvReserved) = 0;
-  };
-#else
-  typedef struct IAMResourceControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMResourceControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMResourceControl *This);
-      ULONG (WINAPI *Release)(IAMResourceControl *This);
-      HRESULT (WINAPI *Reserve)(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
-    END_INTERFACE
-  } IAMResourceControlVtbl;
-  struct IAMResourceControl {
-    CONST_VTBL struct IAMResourceControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMResourceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMResourceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMResourceControl_Release(This) (This)->lpVtbl->Release(This)
-#define IAMResourceControl_Reserve(This,dwFlags,pvReserved) (This)->lpVtbl->Reserve(This,dwFlags,pvReserved)
-#endif
-#endif
-  HRESULT WINAPI IAMResourceControl_Reserve_Proxy(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
-  void __RPC_STUB IAMResourceControl_Reserve_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMClockAdjust_INTERFACE_DEFINED__
-#define __IAMClockAdjust_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMClockAdjust;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMClockAdjust : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetClockDelta(REFERENCE_TIME rtDelta) = 0;
-  };
-#else
-  typedef struct IAMClockAdjustVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMClockAdjust *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMClockAdjust *This);
-      ULONG (WINAPI *Release)(IAMClockAdjust *This);
-      HRESULT (WINAPI *SetClockDelta)(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
-    END_INTERFACE
-  } IAMClockAdjustVtbl;
-  struct IAMClockAdjust {
-    CONST_VTBL struct IAMClockAdjustVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMClockAdjust_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMClockAdjust_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMClockAdjust_Release(This) (This)->lpVtbl->Release(This)
-#define IAMClockAdjust_SetClockDelta(This,rtDelta) (This)->lpVtbl->SetClockDelta(This,rtDelta)
-#endif
-#endif
-  HRESULT WINAPI IAMClockAdjust_SetClockDelta_Proxy(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
-  void __RPC_STUB IAMClockAdjust_SetClockDelta_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  enum _AM_FILTER_MISC_FLAGS {
-    AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1,AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2
-  };
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0348_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0348_v0_0_s_ifspec;
-#ifndef __IAMFilterMiscFlags_INTERFACE_DEFINED__
-#define __IAMFilterMiscFlags_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMFilterMiscFlags;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMFilterMiscFlags : public IUnknown {
-  public:
-    virtual ULONG WINAPI GetMiscFlags(void) = 0;
-  };
-#else
-  typedef struct IAMFilterMiscFlagsVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMFilterMiscFlags *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMFilterMiscFlags *This);
-      ULONG (WINAPI *Release)(IAMFilterMiscFlags *This);
-      ULONG (WINAPI *GetMiscFlags)(IAMFilterMiscFlags *This);
-    END_INTERFACE
-  } IAMFilterMiscFlagsVtbl;
-  struct IAMFilterMiscFlags {
-    CONST_VTBL struct IAMFilterMiscFlagsVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMFilterMiscFlags_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMFilterMiscFlags_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMFilterMiscFlags_Release(This) (This)->lpVtbl->Release(This)
-#define IAMFilterMiscFlags_GetMiscFlags(This) (This)->lpVtbl->GetMiscFlags(This)
-#endif
-#endif
-  ULONG WINAPI IAMFilterMiscFlags_GetMiscFlags_Proxy(IAMFilterMiscFlags *This);
-  void __RPC_STUB IAMFilterMiscFlags_GetMiscFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IDrawVideoImage_INTERFACE_DEFINED__
-#define __IDrawVideoImage_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDrawVideoImage;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDrawVideoImage : public IUnknown {
-  public:
-    virtual HRESULT WINAPI DrawVideoImageBegin(void) = 0;
-    virtual HRESULT WINAPI DrawVideoImageEnd(void) = 0;
-    virtual HRESULT WINAPI DrawVideoImageDraw(HDC hdc,LPRECT lprcSrc,LPRECT lprcDst) = 0;
-  };
-#else
-  typedef struct IDrawVideoImageVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDrawVideoImage *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDrawVideoImage *This);
-      ULONG (WINAPI *Release)(IDrawVideoImage *This);
-      HRESULT (WINAPI *DrawVideoImageBegin)(IDrawVideoImage *This);
-      HRESULT (WINAPI *DrawVideoImageEnd)(IDrawVideoImage *This);
-      HRESULT (WINAPI *DrawVideoImageDraw)(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
-    END_INTERFACE
-  } IDrawVideoImageVtbl;
-  struct IDrawVideoImage {
-    CONST_VTBL struct IDrawVideoImageVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDrawVideoImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDrawVideoImage_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDrawVideoImage_Release(This) (This)->lpVtbl->Release(This)
-#define IDrawVideoImage_DrawVideoImageBegin(This) (This)->lpVtbl->DrawVideoImageBegin(This)
-#define IDrawVideoImage_DrawVideoImageEnd(This) (This)->lpVtbl->DrawVideoImageEnd(This)
-#define IDrawVideoImage_DrawVideoImageDraw(This,hdc,lprcSrc,lprcDst) (This)->lpVtbl->DrawVideoImageDraw(This,hdc,lprcSrc,lprcDst)
-#endif
-#endif
-  HRESULT WINAPI IDrawVideoImage_DrawVideoImageBegin_Proxy(IDrawVideoImage *This);
-  void __RPC_STUB IDrawVideoImage_DrawVideoImageBegin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDrawVideoImage_DrawVideoImageEnd_Proxy(IDrawVideoImage *This);
-  void __RPC_STUB IDrawVideoImage_DrawVideoImageEnd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDrawVideoImage_DrawVideoImageDraw_Proxy(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
-  void __RPC_STUB IDrawVideoImage_DrawVideoImageDraw_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IDecimateVideoImage_INTERFACE_DEFINED__
-#define __IDecimateVideoImage_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDecimateVideoImage;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDecimateVideoImage : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetDecimationImageSize(long lWidth,long lHeight) = 0;
-    virtual HRESULT WINAPI ResetDecimationImageSize(void) = 0;
-  };
-#else
-  typedef struct IDecimateVideoImageVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDecimateVideoImage *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDecimateVideoImage *This);
-      ULONG (WINAPI *Release)(IDecimateVideoImage *This);
-      HRESULT (WINAPI *SetDecimationImageSize)(IDecimateVideoImage *This,long lWidth,long lHeight);
-      HRESULT (WINAPI *ResetDecimationImageSize)(IDecimateVideoImage *This);
-    END_INTERFACE
-  } IDecimateVideoImageVtbl;
-  struct IDecimateVideoImage {
-    CONST_VTBL struct IDecimateVideoImageVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDecimateVideoImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDecimateVideoImage_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDecimateVideoImage_Release(This) (This)->lpVtbl->Release(This)
-#define IDecimateVideoImage_SetDecimationImageSize(This,lWidth,lHeight) (This)->lpVtbl->SetDecimationImageSize(This,lWidth,lHeight)
-#define IDecimateVideoImage_ResetDecimationImageSize(This) (This)->lpVtbl->ResetDecimationImageSize(This)
-#endif
-#endif
-  HRESULT WINAPI IDecimateVideoImage_SetDecimationImageSize_Proxy(IDecimateVideoImage *This,long lWidth,long lHeight);
-  void __RPC_STUB IDecimateVideoImage_SetDecimationImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDecimateVideoImage_ResetDecimationImageSize_Proxy(IDecimateVideoImage *This);
-  void __RPC_STUB IDecimateVideoImage_ResetDecimationImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum _DECIMATION_USAGE {
-    DECIMATION_LEGACY = 0,
-    DECIMATION_USE_DECODER_ONLY,DECIMATION_USE_VIDEOPORT_ONLY,DECIMATION_USE_OVERLAY_ONLY,
-    DECIMATION_DEFAULT
-  } DECIMATION_USAGE;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0351_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0351_v0_0_s_ifspec;
-#ifndef __IAMVideoDecimationProperties_INTERFACE_DEFINED__
-#define __IAMVideoDecimationProperties_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMVideoDecimationProperties;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMVideoDecimationProperties : public IUnknown {
-  public:
-    virtual HRESULT WINAPI QueryDecimationUsage(DECIMATION_USAGE *lpUsage) = 0;
-    virtual HRESULT WINAPI SetDecimationUsage(DECIMATION_USAGE Usage) = 0;
-  };
-#else
-  typedef struct IAMVideoDecimationPropertiesVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMVideoDecimationProperties *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMVideoDecimationProperties *This);
-      ULONG (WINAPI *Release)(IAMVideoDecimationProperties *This);
-      HRESULT (WINAPI *QueryDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE *lpUsage);
-      HRESULT (WINAPI *SetDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
-    END_INTERFACE
-  } IAMVideoDecimationPropertiesVtbl;
-  struct IAMVideoDecimationProperties {
-    CONST_VTBL struct IAMVideoDecimationPropertiesVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMVideoDecimationProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMVideoDecimationProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMVideoDecimationProperties_Release(This) (This)->lpVtbl->Release(This)
-#define IAMVideoDecimationProperties_QueryDecimationUsage(This,lpUsage) (This)->lpVtbl->QueryDecimationUsage(This,lpUsage)
-#define IAMVideoDecimationProperties_SetDecimationUsage(This,Usage) (This)->lpVtbl->SetDecimationUsage(This,Usage)
-#endif
-#endif
-  HRESULT WINAPI IAMVideoDecimationProperties_QueryDecimationUsage_Proxy(IAMVideoDecimationProperties *This,DECIMATION_USAGE *lpUsage);
-  void __RPC_STUB IAMVideoDecimationProperties_QueryDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoDecimationProperties_SetDecimationUsage_Proxy(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
-  void __RPC_STUB IAMVideoDecimationProperties_SetDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IVideoFrameStep_INTERFACE_DEFINED__
-#define __IVideoFrameStep_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVideoFrameStep;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVideoFrameStep : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Step(DWORD dwFrames,IUnknown *pStepObject) = 0;
-    virtual HRESULT WINAPI CanStep(long bMultiple,IUnknown *pStepObject) = 0;
-    virtual HRESULT WINAPI CancelStep(void) = 0;
-  };
-#else
-  typedef struct IVideoFrameStepVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVideoFrameStep *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVideoFrameStep *This);
-      ULONG (WINAPI *Release)(IVideoFrameStep *This);
-      HRESULT (WINAPI *Step)(IVideoFrameStep *This,DWORD dwFrames,IUnknown *pStepObject);
-      HRESULT (WINAPI *CanStep)(IVideoFrameStep *This,long bMultiple,IUnknown *pStepObject);
-      HRESULT (WINAPI *CancelStep)(IVideoFrameStep *This);
-    END_INTERFACE
-  } IVideoFrameStepVtbl;
-  struct IVideoFrameStep {
-    CONST_VTBL struct IVideoFrameStepVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVideoFrameStep_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVideoFrameStep_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVideoFrameStep_Release(This) (This)->lpVtbl->Release(This)
-#define IVideoFrameStep_Step(This,dwFrames,pStepObject) (This)->lpVtbl->Step(This,dwFrames,pStepObject)
-#define IVideoFrameStep_CanStep(This,bMultiple,pStepObject) (This)->lpVtbl->CanStep(This,bMultiple,pStepObject)
-#define IVideoFrameStep_CancelStep(This) (This)->lpVtbl->CancelStep(This)
-#endif
-#endif
-  HRESULT WINAPI IVideoFrameStep_Step_Proxy(IVideoFrameStep *This,DWORD dwFrames,IUnknown *pStepObject);
-  void __RPC_STUB IVideoFrameStep_Step_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoFrameStep_CanStep_Proxy(IVideoFrameStep *This,long bMultiple,IUnknown *pStepObject);
-  void __RPC_STUB IVideoFrameStep_CanStep_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoFrameStep_CancelStep_Proxy(IVideoFrameStep *This);
-  void __RPC_STUB IVideoFrameStep_CancelStep_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  enum _AM_PUSHSOURCE_FLAGS {
-    AM_PUSHSOURCECAPS_INTERNAL_RM = 0x1,AM_PUSHSOURCECAPS_NOT_LIVE = 0x2,AM_PUSHSOURCECAPS_PRIVATE_CLOCK = 0x4,
-    AM_PUSHSOURCEREQS_USE_STREAM_CLOCK = 0x10000,AM_PUSHSOURCEREQS_USE_CLOCK_CHAIN = 0x20000
-  };
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_s_ifspec;
-#ifndef __IAMLatency_INTERFACE_DEFINED__
-#define __IAMLatency_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMLatency;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMLatency : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetLatency(REFERENCE_TIME *prtLatency) = 0;
-  };
-#else
-  typedef struct IAMLatencyVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMLatency *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMLatency *This);
-      ULONG (WINAPI *Release)(IAMLatency *This);
-      HRESULT (WINAPI *GetLatency)(IAMLatency *This,REFERENCE_TIME *prtLatency);
-    END_INTERFACE
-  } IAMLatencyVtbl;
-  struct IAMLatency {
-    CONST_VTBL struct IAMLatencyVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMLatency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMLatency_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMLatency_Release(This) (This)->lpVtbl->Release(This)
-#define IAMLatency_GetLatency(This,prtLatency) (This)->lpVtbl->GetLatency(This,prtLatency)
-#endif
-#endif
-  HRESULT WINAPI IAMLatency_GetLatency_Proxy(IAMLatency *This,REFERENCE_TIME *prtLatency);
-  void __RPC_STUB IAMLatency_GetLatency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMPushSource_INTERFACE_DEFINED__
-#define __IAMPushSource_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMPushSource;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMPushSource : public IAMLatency {
-  public:
-    virtual HRESULT WINAPI GetPushSourceFlags(ULONG *pFlags) = 0;
-    virtual HRESULT WINAPI SetPushSourceFlags(ULONG Flags) = 0;
-    virtual HRESULT WINAPI SetStreamOffset(REFERENCE_TIME rtOffset) = 0;
-    virtual HRESULT WINAPI GetStreamOffset(REFERENCE_TIME *prtOffset) = 0;
-    virtual HRESULT WINAPI GetMaxStreamOffset(REFERENCE_TIME *prtMaxOffset) = 0;
-    virtual HRESULT WINAPI SetMaxStreamOffset(REFERENCE_TIME rtMaxOffset) = 0;
-  };
-#else
-  typedef struct IAMPushSourceVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMPushSource *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMPushSource *This);
-      ULONG (WINAPI *Release)(IAMPushSource *This);
-      HRESULT (WINAPI *GetLatency)(IAMPushSource *This,REFERENCE_TIME *prtLatency);
-      HRESULT (WINAPI *GetPushSourceFlags)(IAMPushSource *This,ULONG *pFlags);
-      HRESULT (WINAPI *SetPushSourceFlags)(IAMPushSource *This,ULONG Flags);
-      HRESULT (WINAPI *SetStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtOffset);
-      HRESULT (WINAPI *GetStreamOffset)(IAMPushSource *This,REFERENCE_TIME *prtOffset);
-      HRESULT (WINAPI *GetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME *prtMaxOffset);
-      HRESULT (WINAPI *SetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
-    END_INTERFACE
-  } IAMPushSourceVtbl;
-  struct IAMPushSource {
-    CONST_VTBL struct IAMPushSourceVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMPushSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMPushSource_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMPushSource_Release(This) (This)->lpVtbl->Release(This)
-#define IAMPushSource_GetLatency(This,prtLatency) (This)->lpVtbl->GetLatency(This,prtLatency)
-#define IAMPushSource_GetPushSourceFlags(This,pFlags) (This)->lpVtbl->GetPushSourceFlags(This,pFlags)
-#define IAMPushSource_SetPushSourceFlags(This,Flags) (This)->lpVtbl->SetPushSourceFlags(This,Flags)
-#define IAMPushSource_SetStreamOffset(This,rtOffset) (This)->lpVtbl->SetStreamOffset(This,rtOffset)
-#define IAMPushSource_GetStreamOffset(This,prtOffset) (This)->lpVtbl->GetStreamOffset(This,prtOffset)
-#define IAMPushSource_GetMaxStreamOffset(This,prtMaxOffset) (This)->lpVtbl->GetMaxStreamOffset(This,prtMaxOffset)
-#define IAMPushSource_SetMaxStreamOffset(This,rtMaxOffset) (This)->lpVtbl->SetMaxStreamOffset(This,rtMaxOffset)
-#endif
-#endif
-  HRESULT WINAPI IAMPushSource_GetPushSourceFlags_Proxy(IAMPushSource *This,ULONG *pFlags);
-  void __RPC_STUB IAMPushSource_GetPushSourceFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_SetPushSourceFlags_Proxy(IAMPushSource *This,ULONG Flags);
-  void __RPC_STUB IAMPushSource_SetPushSourceFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_SetStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME rtOffset);
-  void __RPC_STUB IAMPushSource_SetStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_GetStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME *prtOffset);
-  void __RPC_STUB IAMPushSource_GetStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_GetMaxStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME *prtMaxOffset);
-  void __RPC_STUB IAMPushSource_GetMaxStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_SetMaxStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
-  void __RPC_STUB IAMPushSource_SetMaxStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMDeviceRemoval_INTERFACE_DEFINED__
-#define __IAMDeviceRemoval_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMDeviceRemoval;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMDeviceRemoval : public IUnknown {
-  public:
-    virtual HRESULT WINAPI DeviceInfo(CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink) = 0;
-    virtual HRESULT WINAPI Reassociate(void) = 0;
-    virtual HRESULT WINAPI Disassociate(void) = 0;
-  };
-#else
-  typedef struct IAMDeviceRemovalVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMDeviceRemoval *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMDeviceRemoval *This);
-      ULONG (WINAPI *Release)(IAMDeviceRemoval *This);
-      HRESULT (WINAPI *DeviceInfo)(IAMDeviceRemoval *This,CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink);
-      HRESULT (WINAPI *Reassociate)(IAMDeviceRemoval *This);
-      HRESULT (WINAPI *Disassociate)(IAMDeviceRemoval *This);
-    END_INTERFACE
-  } IAMDeviceRemovalVtbl;
-  struct IAMDeviceRemoval {
-    CONST_VTBL struct IAMDeviceRemovalVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMDeviceRemoval_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMDeviceRemoval_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMDeviceRemoval_Release(This) (This)->lpVtbl->Release(This)
-#define IAMDeviceRemoval_DeviceInfo(This,pclsidInterfaceClass,pwszSymbolicLink) (This)->lpVtbl->DeviceInfo(This,pclsidInterfaceClass,pwszSymbolicLink)
-#define IAMDeviceRemoval_Reassociate(This) (This)->lpVtbl->Reassociate(This)
-#define IAMDeviceRemoval_Disassociate(This) (This)->lpVtbl->Disassociate(This)
-#endif
-#endif
-  HRESULT WINAPI IAMDeviceRemoval_DeviceInfo_Proxy(IAMDeviceRemoval *This,CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink);
-  void __RPC_STUB IAMDeviceRemoval_DeviceInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDeviceRemoval_Reassociate_Proxy(IAMDeviceRemoval *This);
-  void __RPC_STUB IAMDeviceRemoval_Reassociate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDeviceRemoval_Disassociate_Proxy(IAMDeviceRemoval *This);
-  void __RPC_STUB IAMDeviceRemoval_Disassociate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef struct __MIDL___MIDL_itf_strmif_0355_0001 {
-    DWORD dwDVAAuxSrc;
-    DWORD dwDVAAuxCtl;
-    DWORD dwDVAAuxSrc1;
-    DWORD dwDVAAuxCtl1;
-    DWORD dwDVVAuxSrc;
-    DWORD dwDVVAuxCtl;
-    DWORD dwDVReserved[2];
-  } DVINFO;
-
-  typedef struct __MIDL___MIDL_itf_strmif_0355_0001 *PDVINFO;
-
-  enum _DVENCODERRESOLUTION {
-    DVENCODERRESOLUTION_720x480 = 2012,DVENCODERRESOLUTION_360x240 = 2013,DVENCODERRESOLUTION_180x120 = 2014,DVENCODERRESOLUTION_88x60 = 2015
-  };
-
-  enum _DVENCODERVIDEOFORMAT {
-    DVENCODERVIDEOFORMAT_NTSC = 2000,DVENCODERVIDEOFORMAT_PAL = 2001
-  };
-
-  enum _DVENCODERFORMAT {
-    DVENCODERFORMAT_DVSD = 2007,DVENCODERFORMAT_DVHD = 2008,DVENCODERFORMAT_DVSL = 2009
-  };
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0355_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0355_v0_0_s_ifspec;
-#ifndef __IDVEnc_INTERFACE_DEFINED__
-#define __IDVEnc_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDVEnc;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDVEnc : public IUnknown {
-  public:
-    virtual HRESULT WINAPI get_IFormatResolution(int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo) = 0;
-    virtual HRESULT WINAPI put_IFormatResolution(int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo) = 0;
-  };
-#else
-  typedef struct IDVEncVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDVEnc *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDVEnc *This);
-      ULONG (WINAPI *Release)(IDVEnc *This);
-      HRESULT (WINAPI *get_IFormatResolution)(IDVEnc *This,int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
-      HRESULT (WINAPI *put_IFormatResolution)(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
-    END_INTERFACE
-  } IDVEncVtbl;
-  struct IDVEnc {
-    CONST_VTBL struct IDVEncVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDVEnc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDVEnc_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDVEnc_Release(This) (This)->lpVtbl->Release(This)
-#define IDVEnc_get_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo) (This)->lpVtbl->get_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo)
-#define IDVEnc_put_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo) (This)->lpVtbl->put_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo)
-#endif
-#endif
-  HRESULT WINAPI IDVEnc_get_IFormatResolution_Proxy(IDVEnc *This,int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
-  void __RPC_STUB IDVEnc_get_IFormatResolution_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDVEnc_put_IFormatResolution_Proxy(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
-  void __RPC_STUB IDVEnc_put_IFormatResolution_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  enum _DVDECODERRESOLUTION {
-    DVDECODERRESOLUTION_720x480 = 1000,DVDECODERRESOLUTION_360x240 = 1001,DVDECODERRESOLUTION_180x120 = 1002,DVDECODERRESOLUTION_88x60 = 1003
-  };
-
-  enum _DVRESOLUTION {
-    DVRESOLUTION_FULL = 1000,DVRESOLUTION_HALF = 1001,DVRESOLUTION_QUARTER = 1002,DVRESOLUTION_DC = 1003
-  };
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0356_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0356_v0_0_s_ifspec;
-#ifndef __IIPDVDec_INTERFACE_DEFINED__
-#define __IIPDVDec_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IIPDVDec;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IIPDVDec : public IUnknown {
-  public:
-    virtual HRESULT WINAPI get_IPDisplay(int *displayPix) = 0;
-    virtual HRESULT WINAPI put_IPDisplay(int displayPix) = 0;
-  };
-#else
-  typedef struct IIPDVDecVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IIPDVDec *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IIPDVDec *This);
-      ULONG (WINAPI *Release)(IIPDVDec *This);
-      HRESULT (WINAPI *get_IPDisplay)(IIPDVDec *This,int *displayPix);
-      HRESULT (WINAPI *put_IPDisplay)(IIPDVDec *This,int displayPix);
-    END_INTERFACE
-  } IIPDVDecVtbl;
-  struct IIPDVDec {
-    CONST_VTBL struct IIPDVDecVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IIPDVDec_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IIPDVDec_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IIPDVDec_Release(This) (This)->lpVtbl->Release(This)
-#define IIPDVDec_get_IPDisplay(This,displayPix) (This)->lpVtbl->get_IPDisplay(This,displayPix)
-#define IIPDVDec_put_IPDisplay(This,displayPix) (This)->lpVtbl->put_IPDisplay(This,displayPix)
-#endif
-#endif
-  HRESULT WINAPI IIPDVDec_get_IPDisplay_Proxy(IIPDVDec *This,int *displayPix);
-  void __RPC_STUB IIPDVDec_get_IPDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IIPDVDec_put_IPDisplay_Proxy(IIPDVDec *This,int displayPix);
-  void __RPC_STUB IIPDVDec_put_IPDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IDVRGB219_INTERFACE_DEFINED__
-#define __IDVRGB219_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDVRGB219;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDVRGB219 : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetRGB219(WINBOOL bState) = 0;
-  };
-#else
-  typedef struct IDVRGB219Vtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDVRGB219 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDVRGB219 *This);
-      ULONG (WINAPI *Release)(IDVRGB219 *This);
-      HRESULT (WINAPI *SetRGB219)(IDVRGB219 *This,WINBOOL bState);
-    END_INTERFACE
-  } IDVRGB219Vtbl;
-  struct IDVRGB219 {
-    CONST_VTBL struct IDVRGB219Vtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDVRGB219_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDVRGB219_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDVRGB219_Release(This) (This)->lpVtbl->Release(This)
-#define IDVRGB219_SetRGB219(This,bState) (This)->lpVtbl->SetRGB219(This,bState)
-#endif
-#endif
-  HRESULT WINAPI IDVRGB219_SetRGB219_Proxy(IDVRGB219 *This,WINBOOL bState);
-  void __RPC_STUB IDVRGB219_SetRGB219_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IDVSplitter_INTERFACE_DEFINED__
-#define __IDVSplitter_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDVSplitter;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDVSplitter : public IUnknown {
-  public:
-    virtual HRESULT WINAPI DiscardAlternateVideoFrames(int nDiscard) = 0;
-  };
-#else
-  typedef struct IDVSplitterVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDVSplitter *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDVSplitter *This);
-      ULONG (WINAPI *Release)(IDVSplitter *This);
-      HRESULT (WINAPI *DiscardAlternateVideoFrames)(IDVSplitter *This,int nDiscard);
-    END_INTERFACE
-  } IDVSplitterVtbl;
-  struct IDVSplitter {
-    CONST_VTBL struct IDVSplitterVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDVSplitter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDVSplitter_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDVSplitter_Release(This) (This)->lpVtbl->Release(This)
-#define IDVSplitter_DiscardAlternateVideoFrames(This,nDiscard) (This)->lpVtbl->DiscardAlternateVideoFrames(This,nDiscard)
-#endif
-#endif
-  HRESULT WINAPI IDVSplitter_DiscardAlternateVideoFrames_Proxy(IDVSplitter *This,int nDiscard);
-  void __RPC_STUB IDVSplitter_DiscardAlternateVideoFrames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  enum _AM_AUDIO_RENDERER_STAT_PARAM {
-    AM_AUDREND_STAT_PARAM_BREAK_COUNT = 1,
-    AM_AUDREND_STAT_PARAM_SLAVE_MODE,AM_AUDREND_STAT_PARAM_SILENCE_DUR,
-    AM_AUDREND_STAT_PARAM_LAST_BUFFER_DUR,AM_AUDREND_STAT_PARAM_DISCONTINUITIES,
-    AM_AUDREND_STAT_PARAM_SLAVE_RATE,AM_AUDREND_STAT_PARAM_SLAVE_DROPWRITE_DUR,
-    AM_AUDREND_STAT_PARAM_SLAVE_HIGHLOWERROR,AM_AUDREND_STAT_PARAM_SLAVE_LASTHIGHLOWERROR,
-    AM_AUDREND_STAT_PARAM_SLAVE_ACCUMERROR,AM_AUDREND_STAT_PARAM_BUFFERFULLNESS,
-    AM_AUDREND_STAT_PARAM_JITTER
-  };
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_s_ifspec;
-#ifndef __IAMAudioRendererStats_INTERFACE_DEFINED__
-#define __IAMAudioRendererStats_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMAudioRendererStats;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMAudioRendererStats : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetStatParam(DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2) = 0;
-  };
-#else
-  typedef struct IAMAudioRendererStatsVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMAudioRendererStats *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMAudioRendererStats *This);
-      ULONG (WINAPI *Release)(IAMAudioRendererStats *This);
-      HRESULT (WINAPI *GetStatParam)(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
-    END_INTERFACE
-  } IAMAudioRendererStatsVtbl;
-  struct IAMAudioRendererStats {
-    CONST_VTBL struct IAMAudioRendererStatsVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMAudioRendererStats_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMAudioRendererStats_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMAudioRendererStats_Release(This) (This)->lpVtbl->Release(This)
-#define IAMAudioRendererStats_GetStatParam(This,dwParam,pdwParam1,pdwParam2) (This)->lpVtbl->GetStatParam(This,dwParam,pdwParam1,pdwParam2)
-#endif
-#endif
-  HRESULT WINAPI IAMAudioRendererStats_GetStatParam_Proxy(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
-  void __RPC_STUB IAMAudioRendererStats_GetStatParam_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  enum _AM_INTF_SEARCH_FLAGS {
-    AM_INTF_SEARCH_INPUT_PIN = 0x1,AM_INTF_SEARCH_OUTPUT_PIN = 0x2,AM_INTF_SEARCH_FILTER = 0x4
-  };
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0361_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0361_v0_0_s_ifspec;
-#ifndef __IAMGraphStreams_INTERFACE_DEFINED__
-#define __IAMGraphStreams_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMGraphStreams;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMGraphStreams : public IUnknown {
-  public:
-    virtual HRESULT WINAPI FindUpstreamInterface(IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags) = 0;
-    virtual HRESULT WINAPI SyncUsingStreamOffset(WINBOOL bUseStreamOffset) = 0;
-    virtual HRESULT WINAPI SetMaxGraphLatency(REFERENCE_TIME rtMaxGraphLatency) = 0;
-  };
-#else
-  typedef struct IAMGraphStreamsVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMGraphStreams *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMGraphStreams *This);
-      ULONG (WINAPI *Release)(IAMGraphStreams *This);
-      HRESULT (WINAPI *FindUpstreamInterface)(IAMGraphStreams *This,IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags);
-      HRESULT (WINAPI *SyncUsingStreamOffset)(IAMGraphStreams *This,WINBOOL bUseStreamOffset);
-      HRESULT (WINAPI *SetMaxGraphLatency)(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
-    END_INTERFACE
-  } IAMGraphStreamsVtbl;
-  struct IAMGraphStreams {
-    CONST_VTBL struct IAMGraphStreamsVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMGraphStreams_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMGraphStreams_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMGraphStreams_Release(This) (This)->lpVtbl->Release(This)
-#define IAMGraphStreams_FindUpstreamInterface(This,pPin,riid,ppvInterface,dwFlags) (This)->lpVtbl->FindUpstreamInterface(This,pPin,riid,ppvInterface,dwFlags)
-#define IAMGraphStreams_SyncUsingStreamOffset(This,bUseStreamOffset) (This)->lpVtbl->SyncUsingStreamOffset(This,bUseStreamOffset)
-#define IAMGraphStreams_SetMaxGraphLatency(This,rtMaxGraphLatency) (This)->lpVtbl->SetMaxGraphLatency(This,rtMaxGraphLatency)
-#endif
-#endif
-  HRESULT WINAPI IAMGraphStreams_FindUpstreamInterface_Proxy(IAMGraphStreams *This,IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags);
-  void __RPC_STUB IAMGraphStreams_FindUpstreamInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMGraphStreams_SyncUsingStreamOffset_Proxy(IAMGraphStreams *This,WINBOOL bUseStreamOffset);
-  void __RPC_STUB IAMGraphStreams_SyncUsingStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMGraphStreams_SetMaxGraphLatency_Proxy(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
-  void __RPC_STUB IAMGraphStreams_SetMaxGraphLatency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  enum AMOVERLAYFX {
-    AMOVERFX_NOFX = 0,AMOVERFX_MIRRORLEFTRIGHT = 0x2,AMOVERFX_MIRRORUPDOWN = 0x4,AMOVERFX_DEINTERLACE = 0x8
-  };
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0362_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0362_v0_0_s_ifspec;
-#ifndef __IAMOverlayFX_INTERFACE_DEFINED__
-#define __IAMOverlayFX_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMOverlayFX;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMOverlayFX : public IUnknown {
-  public:
-    virtual HRESULT WINAPI QueryOverlayFXCaps(DWORD *lpdwOverlayFXCaps) = 0;
-    virtual HRESULT WINAPI SetOverlayFX(DWORD dwOverlayFX) = 0;
-    virtual HRESULT WINAPI GetOverlayFX(DWORD *lpdwOverlayFX) = 0;
-  };
-#else
-  typedef struct IAMOverlayFXVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMOverlayFX *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMOverlayFX *This);
-      ULONG (WINAPI *Release)(IAMOverlayFX *This);
-      HRESULT (WINAPI *QueryOverlayFXCaps)(IAMOverlayFX *This,DWORD *lpdwOverlayFXCaps);
-      HRESULT (WINAPI *SetOverlayFX)(IAMOverlayFX *This,DWORD dwOverlayFX);
-      HRESULT (WINAPI *GetOverlayFX)(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
-    END_INTERFACE
-  } IAMOverlayFXVtbl;
-  struct IAMOverlayFX {
-    CONST_VTBL struct IAMOverlayFXVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMOverlayFX_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMOverlayFX_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMOverlayFX_Release(This) (This)->lpVtbl->Release(This)
-#define IAMOverlayFX_QueryOverlayFXCaps(This,lpdwOverlayFXCaps) (This)->lpVtbl->QueryOverlayFXCaps(This,lpdwOverlayFXCaps)
-#define IAMOverlayFX_SetOverlayFX(This,dwOverlayFX) (This)->lpVtbl->SetOverlayFX(This,dwOverlayFX)
-#define IAMOverlayFX_GetOverlayFX(This,lpdwOverlayFX) (This)->lpVtbl->GetOverlayFX(This,lpdwOverlayFX)
-#endif
-#endif
-  HRESULT WINAPI IAMOverlayFX_QueryOverlayFXCaps_Proxy(IAMOverlayFX *This,DWORD *lpdwOverlayFXCaps);
-  void __RPC_STUB IAMOverlayFX_QueryOverlayFXCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMOverlayFX_SetOverlayFX_Proxy(IAMOverlayFX *This,DWORD dwOverlayFX);
-  void __RPC_STUB IAMOverlayFX_SetOverlayFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMOverlayFX_GetOverlayFX_Proxy(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
-  void __RPC_STUB IAMOverlayFX_GetOverlayFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMOpenProgress_INTERFACE_DEFINED__
-#define __IAMOpenProgress_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMOpenProgress;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMOpenProgress : public IUnknown {
-  public:
-    virtual HRESULT WINAPI QueryProgress(LONGLONG *pllTotal,LONGLONG *pllCurrent) = 0;
-    virtual HRESULT WINAPI AbortOperation(void) = 0;
-  };
-#else
-  typedef struct IAMOpenProgressVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMOpenProgress *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMOpenProgress *This);
-      ULONG (WINAPI *Release)(IAMOpenProgress *This);
-      HRESULT (WINAPI *QueryProgress)(IAMOpenProgress *This,LONGLONG *pllTotal,LONGLONG *pllCurrent);
-      HRESULT (WINAPI *AbortOperation)(IAMOpenProgress *This);
-    END_INTERFACE
-  } IAMOpenProgressVtbl;
-  struct IAMOpenProgress {
-    CONST_VTBL struct IAMOpenProgressVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMOpenProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMOpenProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMOpenProgress_Release(This) (This)->lpVtbl->Release(This)
-#define IAMOpenProgress_QueryProgress(This,pllTotal,pllCurrent) (This)->lpVtbl->QueryProgress(This,pllTotal,pllCurrent)
-#define IAMOpenProgress_AbortOperation(This) (This)->lpVtbl->AbortOperation(This)
-#endif
-#endif
-  HRESULT WINAPI IAMOpenProgress_QueryProgress_Proxy(IAMOpenProgress *This,LONGLONG *pllTotal,LONGLONG *pllCurrent);
-  void __RPC_STUB IAMOpenProgress_QueryProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMOpenProgress_AbortOperation_Proxy(IAMOpenProgress *This);
-  void __RPC_STUB IAMOpenProgress_AbortOperation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IMpeg2Demultiplexer_INTERFACE_DEFINED__
-#define __IMpeg2Demultiplexer_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IMpeg2Demultiplexer;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMpeg2Demultiplexer : public IUnknown {
-  public:
-    virtual HRESULT WINAPI CreateOutputPin(AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin) = 0;
-    virtual HRESULT WINAPI SetOutputPinMediaType(LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType) = 0;
-    virtual HRESULT WINAPI DeleteOutputPin(LPWSTR pszPinName) = 0;
-  };
-#else
-  typedef struct IMpeg2DemultiplexerVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMpeg2Demultiplexer *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMpeg2Demultiplexer *This);
-      ULONG (WINAPI *Release)(IMpeg2Demultiplexer *This);
-      HRESULT (WINAPI *CreateOutputPin)(IMpeg2Demultiplexer *This,AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin);
-      HRESULT (WINAPI *SetOutputPinMediaType)(IMpeg2Demultiplexer *This,LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType);
-      HRESULT (WINAPI *DeleteOutputPin)(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
-    END_INTERFACE
-  } IMpeg2DemultiplexerVtbl;
-  struct IMpeg2Demultiplexer {
-    CONST_VTBL struct IMpeg2DemultiplexerVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMpeg2Demultiplexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMpeg2Demultiplexer_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMpeg2Demultiplexer_Release(This) (This)->lpVtbl->Release(This)
-#define IMpeg2Demultiplexer_CreateOutputPin(This,pMediaType,pszPinName,ppIPin) (This)->lpVtbl->CreateOutputPin(This,pMediaType,pszPinName,ppIPin)
-#define IMpeg2Demultiplexer_SetOutputPinMediaType(This,pszPinName,pMediaType) (This)->lpVtbl->SetOutputPinMediaType(This,pszPinName,pMediaType)
-#define IMpeg2Demultiplexer_DeleteOutputPin(This,pszPinName) (This)->lpVtbl->DeleteOutputPin(This,pszPinName)
-#endif
-#endif
-  HRESULT WINAPI IMpeg2Demultiplexer_CreateOutputPin_Proxy(IMpeg2Demultiplexer *This,AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin);
-  void __RPC_STUB IMpeg2Demultiplexer_CreateOutputPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMpeg2Demultiplexer_SetOutputPinMediaType_Proxy(IMpeg2Demultiplexer *This,LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType);
-  void __RPC_STUB IMpeg2Demultiplexer_SetOutputPinMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMpeg2Demultiplexer_DeleteOutputPin_Proxy(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
-  void __RPC_STUB IMpeg2Demultiplexer_DeleteOutputPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#define MPEG2_PROGRAM_STREAM_MAP 0x00000000
-#define MPEG2_PROGRAM_ELEMENTARY_STREAM 0x00000001
-#define MPEG2_PROGRAM_DIRECTORY_PES_PACKET 0x00000002
-#define MPEG2_PROGRAM_PACK_HEADER 0x00000003
-#define MPEG2_PROGRAM_PES_STREAM 0x00000004
-#define MPEG2_PROGRAM_SYSTEM_HEADER 0x00000005
-#define SUBSTREAM_FILTER_VAL_NONE 0x10000000
-
-  typedef struct __MIDL___MIDL_itf_strmif_0365_0001 {
-    ULONG stream_id;
-    DWORD dwMediaSampleContent;
-    ULONG ulSubstreamFilterValue;
-    int iDataOffset;
-  } STREAM_ID_MAP;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0365_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0365_v0_0_s_ifspec;
-#ifndef __IEnumStreamIdMap_INTERFACE_DEFINED__
-#define __IEnumStreamIdMap_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IEnumStreamIdMap;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IEnumStreamIdMap : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Next(ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived) = 0;
-    virtual HRESULT WINAPI Skip(ULONG cRecords) = 0;
-    virtual HRESULT WINAPI Reset(void) = 0;
-    virtual HRESULT WINAPI Clone(IEnumStreamIdMap **ppIEnumStreamIdMap) = 0;
-  };
-#else
-  typedef struct IEnumStreamIdMapVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IEnumStreamIdMap *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IEnumStreamIdMap *This);
-      ULONG (WINAPI *Release)(IEnumStreamIdMap *This);
-      HRESULT (WINAPI *Next)(IEnumStreamIdMap *This,ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived);
-      HRESULT (WINAPI *Skip)(IEnumStreamIdMap *This,ULONG cRecords);
-      HRESULT (WINAPI *Reset)(IEnumStreamIdMap *This);
-      HRESULT (WINAPI *Clone)(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
-    END_INTERFACE
-  } IEnumStreamIdMapVtbl;
-  struct IEnumStreamIdMap {
-    CONST_VTBL struct IEnumStreamIdMapVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IEnumStreamIdMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IEnumStreamIdMap_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IEnumStreamIdMap_Release(This) (This)->lpVtbl->Release(This)
-#define IEnumStreamIdMap_Next(This,cRequest,pStreamIdMap,pcReceived) (This)->lpVtbl->Next(This,cRequest,pStreamIdMap,pcReceived)
-#define IEnumStreamIdMap_Skip(This,cRecords) (This)->lpVtbl->Skip(This,cRecords)
-#define IEnumStreamIdMap_Reset(This) (This)->lpVtbl->Reset(This)
-#define IEnumStreamIdMap_Clone(This,ppIEnumStreamIdMap) (This)->lpVtbl->Clone(This,ppIEnumStreamIdMap)
-#endif
-#endif
-  HRESULT WINAPI IEnumStreamIdMap_Next_Proxy(IEnumStreamIdMap *This,ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived);
-  void __RPC_STUB IEnumStreamIdMap_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumStreamIdMap_Skip_Proxy(IEnumStreamIdMap *This,ULONG cRecords);
-  void __RPC_STUB IEnumStreamIdMap_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumStreamIdMap_Reset_Proxy(IEnumStreamIdMap *This);
-  void __RPC_STUB IEnumStreamIdMap_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumStreamIdMap_Clone_Proxy(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
-  void __RPC_STUB IEnumStreamIdMap_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IMPEG2StreamIdMap_INTERFACE_DEFINED__
-#define __IMPEG2StreamIdMap_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IMPEG2StreamIdMap;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMPEG2StreamIdMap : public IUnknown {
-  public:
-    virtual HRESULT WINAPI MapStreamId(ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset) = 0;
-    virtual HRESULT WINAPI UnmapStreamId(ULONG culStreamId,ULONG *pulStreamId) = 0;
-    virtual HRESULT WINAPI EnumStreamIdMap(IEnumStreamIdMap **ppIEnumStreamIdMap) = 0;
-  };
-#else
-  typedef struct IMPEG2StreamIdMapVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMPEG2StreamIdMap *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMPEG2StreamIdMap *This);
-      ULONG (WINAPI *Release)(IMPEG2StreamIdMap *This);
-      HRESULT (WINAPI *MapStreamId)(IMPEG2StreamIdMap *This,ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset);
-      HRESULT (WINAPI *UnmapStreamId)(IMPEG2StreamIdMap *This,ULONG culStreamId,ULONG *pulStreamId);
-      HRESULT (WINAPI *EnumStreamIdMap)(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
-    END_INTERFACE
-  } IMPEG2StreamIdMapVtbl;
-  struct IMPEG2StreamIdMap {
-    CONST_VTBL struct IMPEG2StreamIdMapVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMPEG2StreamIdMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMPEG2StreamIdMap_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMPEG2StreamIdMap_Release(This) (This)->lpVtbl->Release(This)
-#define IMPEG2StreamIdMap_MapStreamId(This,ulStreamId,MediaSampleContent,ulSubstreamFilterValue,iDataOffset) (This)->lpVtbl->MapStreamId(This,ulStreamId,MediaSampleContent,ulSubstreamFilterValue,iDataOffset)
-#define IMPEG2StreamIdMap_UnmapStreamId(This,culStreamId,pulStreamId) (This)->lpVtbl->UnmapStreamId(This,culStreamId,pulStreamId)
-#define IMPEG2StreamIdMap_EnumStreamIdMap(This,ppIEnumStreamIdMap) (This)->lpVtbl->EnumStreamIdMap(This,ppIEnumStreamIdMap)
-#endif
-#endif
-  HRESULT WINAPI IMPEG2StreamIdMap_MapStreamId_Proxy(IMPEG2StreamIdMap *This,ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset);
-  void __RPC_STUB IMPEG2StreamIdMap_MapStreamId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMPEG2StreamIdMap_UnmapStreamId_Proxy(IMPEG2StreamIdMap *This,ULONG culStreamId,ULONG *pulStreamId);
-  void __RPC_STUB IMPEG2StreamIdMap_UnmapStreamId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMPEG2StreamIdMap_EnumStreamIdMap_Proxy(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
-  void __RPC_STUB IMPEG2StreamIdMap_EnumStreamIdMap_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IRegisterServiceProvider_INTERFACE_DEFINED__
-#define __IRegisterServiceProvider_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IRegisterServiceProvider;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IRegisterServiceProvider : public IUnknown {
-  public:
-    virtual HRESULT WINAPI RegisterService(REFGUID guidService,IUnknown *pUnkObject) = 0;
-  };
-#else
-  typedef struct IRegisterServiceProviderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IRegisterServiceProvider *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IRegisterServiceProvider *This);
-      ULONG (WINAPI *Release)(IRegisterServiceProvider *This);
-      HRESULT (WINAPI *RegisterService)(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
-    END_INTERFACE
-  } IRegisterServiceProviderVtbl;
-  struct IRegisterServiceProvider {
-    CONST_VTBL struct IRegisterServiceProviderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IRegisterServiceProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IRegisterServiceProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IRegisterServiceProvider_Release(This) (This)->lpVtbl->Release(This)
-#define IRegisterServiceProvider_RegisterService(This,guidService,pUnkObject) (This)->lpVtbl->RegisterService(This,guidService,pUnkObject)
-#endif
-#endif
-  HRESULT WINAPI IRegisterServiceProvider_RegisterService_Proxy(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
-  void __RPC_STUB IRegisterServiceProvider_RegisterService_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMClockSlave_INTERFACE_DEFINED__
-#define __IAMClockSlave_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMClockSlave;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMClockSlave : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetErrorTolerance(DWORD dwTolerance) = 0;
-    virtual HRESULT WINAPI GetErrorTolerance(DWORD *pdwTolerance) = 0;
-  };
-#else
-  typedef struct IAMClockSlaveVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMClockSlave *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMClockSlave *This);
-      ULONG (WINAPI *Release)(IAMClockSlave *This);
-      HRESULT (WINAPI *SetErrorTolerance)(IAMClockSlave *This,DWORD dwTolerance);
-      HRESULT (WINAPI *GetErrorTolerance)(IAMClockSlave *This,DWORD *pdwTolerance);
-    END_INTERFACE
-  } IAMClockSlaveVtbl;
-  struct IAMClockSlave {
-    CONST_VTBL struct IAMClockSlaveVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMClockSlave_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMClockSlave_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMClockSlave_Release(This) (This)->lpVtbl->Release(This)
-#define IAMClockSlave_SetErrorTolerance(This,dwTolerance) (This)->lpVtbl->SetErrorTolerance(This,dwTolerance)
-#define IAMClockSlave_GetErrorTolerance(This,pdwTolerance) (This)->lpVtbl->GetErrorTolerance(This,pdwTolerance)
-#endif
-#endif
-  HRESULT WINAPI IAMClockSlave_SetErrorTolerance_Proxy(IAMClockSlave *This,DWORD dwTolerance);
-  void __RPC_STUB IAMClockSlave_SetErrorTolerance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMClockSlave_GetErrorTolerance_Proxy(IAMClockSlave *This,DWORD *pdwTolerance);
-  void __RPC_STUB IAMClockSlave_GetErrorTolerance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMGraphBuilderCallback_INTERFACE_DEFINED__
-#define __IAMGraphBuilderCallback_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMGraphBuilderCallback;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMGraphBuilderCallback : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SelectedFilter(IMoniker *pMon) = 0;
-    virtual HRESULT WINAPI CreatedFilter(IBaseFilter *pFil) = 0;
-  };
-#else
-  typedef struct IAMGraphBuilderCallbackVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMGraphBuilderCallback *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMGraphBuilderCallback *This);
-      ULONG (WINAPI *Release)(IAMGraphBuilderCallback *This);
-      HRESULT (WINAPI *SelectedFilter)(IAMGraphBuilderCallback *This,IMoniker *pMon);
-      HRESULT (WINAPI *CreatedFilter)(IAMGraphBuilderCallback *This,IBaseFilter *pFil);
-    END_INTERFACE
-  } IAMGraphBuilderCallbackVtbl;
-  struct IAMGraphBuilderCallback {
-    CONST_VTBL struct IAMGraphBuilderCallbackVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMGraphBuilderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMGraphBuilderCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMGraphBuilderCallback_Release(This) (This)->lpVtbl->Release(This)
-#define IAMGraphBuilderCallback_SelectedFilter(This,pMon) (This)->lpVtbl->SelectedFilter(This,pMon)
-#define IAMGraphBuilderCallback_CreatedFilter(This,pFil) (This)->lpVtbl->CreatedFilter(This,pFil)
-#endif
-#endif
-  HRESULT WINAPI IAMGraphBuilderCallback_SelectedFilter_Proxy(IAMGraphBuilderCallback *This,IMoniker *pMon);
-  void __RPC_STUB IAMGraphBuilderCallback_SelectedFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMGraphBuilderCallback_CreatedFilter_Proxy(IAMGraphBuilderCallback *This,IBaseFilter *pFil);
-  void __RPC_STUB IAMGraphBuilderCallback_CreatedFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifdef __cplusplus
-#ifndef _IAMFilterGraphCallback_
-#define _IAMFilterGraphCallback_
-  //EXTERN_GUID(IID_IAMFilterGraphCallback,0x56a868fd,0x0ad4,0x11ce,0xb0,0xa3,0x0,0x20,0xaf,0x0b,0xa7,0x70);
-  struct IAMFilterGraphCallback : public IUnknown {
-    virtual HRESULT UnableToRender(IPin *pPin) = 0;
-  };
-#endif
-#endif
-  struct CodecAPIEventData {
-    GUID guid;
-    DWORD dataLength;
-    DWORD reserved[3];
-  };
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_s_ifspec;
-#ifndef __ICodecAPI_INTERFACE_DEFINED__
-#define __ICodecAPI_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ICodecAPI;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ICodecAPI : public IUnknown {
-  public:
-    virtual HRESULT WINAPI IsSupported(const GUID *Api) = 0;
-    virtual HRESULT WINAPI IsModifiable(const GUID *Api) = 0;
-    virtual HRESULT WINAPI GetParameterRange(const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta) = 0;
-    virtual HRESULT WINAPI GetParameterValues(const GUID *Api,VARIANT **Values,ULONG *ValuesCount) = 0;
-    virtual HRESULT WINAPI GetDefaultValue(const GUID *Api,VARIANT *Value) = 0;
-    virtual HRESULT WINAPI GetValue(const GUID *Api,VARIANT *Value) = 0;
-    virtual HRESULT WINAPI SetValue(const GUID *Api,VARIANT *Value) = 0;
-    virtual HRESULT WINAPI RegisterForEvent(const GUID *Api,LONG_PTR userData) = 0;
-    virtual HRESULT WINAPI UnregisterForEvent(const GUID *Api) = 0;
-    virtual HRESULT WINAPI SetAllDefaults(void) = 0;
-    virtual HRESULT WINAPI SetValueWithNotify(const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
-    virtual HRESULT WINAPI SetAllDefaultsWithNotify(GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
-    virtual HRESULT WINAPI GetAllSettings(IStream *__MIDL_0016) = 0;
-    virtual HRESULT WINAPI SetAllSettings(IStream *__MIDL_0017) = 0;
-    virtual HRESULT WINAPI SetAllSettingsWithNotify(IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
-  };
-#else
-  typedef struct ICodecAPIVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ICodecAPI *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ICodecAPI *This);
-      ULONG (WINAPI *Release)(ICodecAPI *This);
-      HRESULT (WINAPI *IsSupported)(ICodecAPI *This,const GUID *Api);
-      HRESULT (WINAPI *IsModifiable)(ICodecAPI *This,const GUID *Api);
-      HRESULT (WINAPI *GetParameterRange)(ICodecAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
-      HRESULT (WINAPI *GetParameterValues)(ICodecAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
-      HRESULT (WINAPI *GetDefaultValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
-      HRESULT (WINAPI *GetValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
-      HRESULT (WINAPI *SetValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
-      HRESULT (WINAPI *RegisterForEvent)(ICodecAPI *This,const GUID *Api,LONG_PTR userData);
-      HRESULT (WINAPI *UnregisterForEvent)(ICodecAPI *This,const GUID *Api);
-      HRESULT (WINAPI *SetAllDefaults)(ICodecAPI *This);
-      HRESULT (WINAPI *SetValueWithNotify)(ICodecAPI *This,const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount);
-      HRESULT (WINAPI *SetAllDefaultsWithNotify)(ICodecAPI *This,GUID **ChangedParam,ULONG *ChangedParamCount);
-      HRESULT (WINAPI *GetAllSettings)(ICodecAPI *This,IStream *__MIDL_0016);
-      HRESULT (WINAPI *SetAllSettings)(ICodecAPI *This,IStream *__MIDL_0017);
-      HRESULT (WINAPI *SetAllSettingsWithNotify)(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
-    END_INTERFACE
-  } ICodecAPIVtbl;
-  struct ICodecAPI {
-    CONST_VTBL struct ICodecAPIVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ICodecAPI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ICodecAPI_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ICodecAPI_Release(This) (This)->lpVtbl->Release(This)
-#define ICodecAPI_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
-#define ICodecAPI_IsModifiable(This,Api) (This)->lpVtbl->IsModifiable(This,Api)
-#define ICodecAPI_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
-#define ICodecAPI_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
-#define ICodecAPI_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
-#define ICodecAPI_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
-#define ICodecAPI_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
-#define ICodecAPI_RegisterForEvent(This,Api,userData) (This)->lpVtbl->RegisterForEvent(This,Api,userData)
-#define ICodecAPI_UnregisterForEvent(This,Api) (This)->lpVtbl->UnregisterForEvent(This,Api)
-#define ICodecAPI_SetAllDefaults(This) (This)->lpVtbl->SetAllDefaults(This)
-#define ICodecAPI_SetValueWithNotify(This,Api,Value,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetValueWithNotify(This,Api,Value,ChangedParam,ChangedParamCount)
-#define ICodecAPI_SetAllDefaultsWithNotify(This,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetAllDefaultsWithNotify(This,ChangedParam,ChangedParamCount)
-#define ICodecAPI_GetAllSettings(This,__MIDL_0016) (This)->lpVtbl->GetAllSettings(This,__MIDL_0016)
-#define ICodecAPI_SetAllSettings(This,__MIDL_0017) (This)->lpVtbl->SetAllSettings(This,__MIDL_0017)
-#define ICodecAPI_SetAllSettingsWithNotify(This,__MIDL_0018,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetAllSettingsWithNotify(This,__MIDL_0018,ChangedParam,ChangedParamCount)
-#endif
-#endif
-  HRESULT WINAPI ICodecAPI_IsSupported_Proxy(ICodecAPI *This,const GUID *Api);
-  void __RPC_STUB ICodecAPI_IsSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICodecAPI_IsModifiable_Proxy(ICodecAPI *This,const GUID *Api);
-  void __RPC_STUB ICodecAPI_IsModifiable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICodecAPI_GetParameterRange_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
-  void __RPC_STUB ICodecAPI_GetParameterRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICodecAPI_GetParameterValues_Proxy(ICodecAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
-  void __RPC_STUB ICodecAPI_GetParameterValues_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICodecAPI_GetDefaultValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
-  void __RPC_STUB ICodecAPI_GetDefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICodecAPI_GetValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
-  void __RPC_STUB ICodecAPI_GetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICodecAPI_SetValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
-  void __RPC_STUB ICodecAPI_SetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICodecAPI_RegisterForEvent_Proxy(ICodecAPI *This,const GUID *Api,LONG_PTR userData);
-  void __RPC_STUB ICodecAPI_RegisterForEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICodecAPI_UnregisterForEvent_Proxy(ICodecAPI *This,const GUID *Api);
-  void __RPC_STUB ICodecAPI_UnregisterForEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICodecAPI_SetAllDefaults_Proxy(ICodecAPI *This);
-  void __RPC_STUB ICodecAPI_SetAllDefaults_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICodecAPI_SetValueWithNotify_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount);
-  void __RPC_STUB ICodecAPI_SetValueWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICodecAPI_SetAllDefaultsWithNotify_Proxy(ICodecAPI *This,GUID **ChangedParam,ULONG *ChangedParamCount);
-  void __RPC_STUB ICodecAPI_SetAllDefaultsWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICodecAPI_GetAllSettings_Proxy(ICodecAPI *This,IStream *__MIDL_0016);
-  void __RPC_STUB ICodecAPI_GetAllSettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICodecAPI_SetAllSettings_Proxy(ICodecAPI *This,IStream *__MIDL_0017);
-  void __RPC_STUB ICodecAPI_SetAllSettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ICodecAPI_SetAllSettingsWithNotify_Proxy(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
-  void __RPC_STUB ICodecAPI_SetAllSettingsWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IGetCapabilitiesKey_INTERFACE_DEFINED__
-#define __IGetCapabilitiesKey_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IGetCapabilitiesKey;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IGetCapabilitiesKey : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetCapabilitiesKey(HKEY *pHKey) = 0;
-  };
-#else
-  typedef struct IGetCapabilitiesKeyVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IGetCapabilitiesKey *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IGetCapabilitiesKey *This);
-      ULONG (WINAPI *Release)(IGetCapabilitiesKey *This);
-      HRESULT (WINAPI *GetCapabilitiesKey)(IGetCapabilitiesKey *This,HKEY *pHKey);
-    END_INTERFACE
-  } IGetCapabilitiesKeyVtbl;
-  struct IGetCapabilitiesKey {
-    CONST_VTBL struct IGetCapabilitiesKeyVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IGetCapabilitiesKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IGetCapabilitiesKey_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IGetCapabilitiesKey_Release(This) (This)->lpVtbl->Release(This)
-#define IGetCapabilitiesKey_GetCapabilitiesKey(This,pHKey) (This)->lpVtbl->GetCapabilitiesKey(This,pHKey)
-#endif
-#endif
-  HRESULT WINAPI IGetCapabilitiesKey_GetCapabilitiesKey_Proxy(IGetCapabilitiesKey *This,HKEY *pHKey);
-  void __RPC_STUB IGetCapabilitiesKey_GetCapabilitiesKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IEncoderAPI_INTERFACE_DEFINED__
-#define __IEncoderAPI_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IEncoderAPI;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IEncoderAPI : public IUnknown {
-  public:
-    virtual HRESULT WINAPI IsSupported(const GUID *Api) = 0;
-    virtual HRESULT WINAPI IsAvailable(const GUID *Api) = 0;
-    virtual HRESULT WINAPI GetParameterRange(const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta) = 0;
-    virtual HRESULT WINAPI GetParameterValues(const GUID *Api,VARIANT **Values,ULONG *ValuesCount) = 0;
-    virtual HRESULT WINAPI GetDefaultValue(const GUID *Api,VARIANT *Value) = 0;
-    virtual HRESULT WINAPI GetValue(const GUID *Api,VARIANT *Value) = 0;
-    virtual HRESULT WINAPI SetValue(const GUID *Api,VARIANT *Value) = 0;
-  };
-#else
-  typedef struct IEncoderAPIVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IEncoderAPI *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IEncoderAPI *This);
-      ULONG (WINAPI *Release)(IEncoderAPI *This);
-      HRESULT (WINAPI *IsSupported)(IEncoderAPI *This,const GUID *Api);
-      HRESULT (WINAPI *IsAvailable)(IEncoderAPI *This,const GUID *Api);
-      HRESULT (WINAPI *GetParameterRange)(IEncoderAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
-      HRESULT (WINAPI *GetParameterValues)(IEncoderAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
-      HRESULT (WINAPI *GetDefaultValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
-      HRESULT (WINAPI *GetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
-      HRESULT (WINAPI *SetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
-    END_INTERFACE
-  } IEncoderAPIVtbl;
-  struct IEncoderAPI {
-    CONST_VTBL struct IEncoderAPIVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IEncoderAPI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IEncoderAPI_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IEncoderAPI_Release(This) (This)->lpVtbl->Release(This)
-#define IEncoderAPI_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
-#define IEncoderAPI_IsAvailable(This,Api) (This)->lpVtbl->IsAvailable(This,Api)
-#define IEncoderAPI_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
-#define IEncoderAPI_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
-#define IEncoderAPI_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
-#define IEncoderAPI_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
-#define IEncoderAPI_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
-#endif
-#endif
-  HRESULT WINAPI IEncoderAPI_IsSupported_Proxy(IEncoderAPI *This,const GUID *Api);
-  void __RPC_STUB IEncoderAPI_IsSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEncoderAPI_IsAvailable_Proxy(IEncoderAPI *This,const GUID *Api);
-  void __RPC_STUB IEncoderAPI_IsAvailable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEncoderAPI_GetParameterRange_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
-  void __RPC_STUB IEncoderAPI_GetParameterRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEncoderAPI_GetParameterValues_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
-  void __RPC_STUB IEncoderAPI_GetParameterValues_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEncoderAPI_GetDefaultValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
-  void __RPC_STUB IEncoderAPI_GetDefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEncoderAPI_GetValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
-  void __RPC_STUB IEncoderAPI_GetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEncoderAPI_SetValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
-  void __RPC_STUB IEncoderAPI_SetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IVideoEncoder_INTERFACE_DEFINED__
-#define __IVideoEncoder_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVideoEncoder;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVideoEncoder : public IEncoderAPI {
-  public:
-  };
-#else
-  typedef struct IVideoEncoderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVideoEncoder *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVideoEncoder *This);
-      ULONG (WINAPI *Release)(IVideoEncoder *This);
-      HRESULT (WINAPI *IsSupported)(IVideoEncoder *This,const GUID *Api);
-      HRESULT (WINAPI *IsAvailable)(IVideoEncoder *This,const GUID *Api);
-      HRESULT (WINAPI *GetParameterRange)(IVideoEncoder *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
-      HRESULT (WINAPI *GetParameterValues)(IVideoEncoder *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
-      HRESULT (WINAPI *GetDefaultValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
-      HRESULT (WINAPI *GetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
-      HRESULT (WINAPI *SetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
-    END_INTERFACE
-  } IVideoEncoderVtbl;
-  struct IVideoEncoder {
-    CONST_VTBL struct IVideoEncoderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVideoEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVideoEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVideoEncoder_Release(This) (This)->lpVtbl->Release(This)
-#define IVideoEncoder_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
-#define IVideoEncoder_IsAvailable(This,Api) (This)->lpVtbl->IsAvailable(This,Api)
-#define IVideoEncoder_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
-#define IVideoEncoder_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
-#define IVideoEncoder_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
-#define IVideoEncoder_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
-#define IVideoEncoder_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
-#endif
-#endif
-#endif
-
-#ifndef __ENCODER_API_DEFINES__
-#define __ENCODER_API_DEFINES__
-  typedef enum __MIDL___MIDL_itf_strmif_0374_0001 {
-    ConstantBitRate = 0,
-    VariableBitRateAverage,VariableBitRatePeak
-  } VIDEOENCODER_BITRATE_MODE;
-#endif
-#define AM_GETDECODERCAP_QUERY_VMR_SUPPORT 0x00000001
-#define VMR_NOTSUPPORTED 0x00000000
-#define VMR_SUPPORTED 0x00000001
-#define AM_QUERY_DECODER_VMR_SUPPORT 0x00000001
-#define AM_QUERY_DECODER_DXVA_1_SUPPORT 0x00000002
-#define AM_QUERY_DECODER_DVD_SUPPORT 0x00000003
-#define AM_QUERY_DECODER_ATSC_SD_SUPPORT 0x00000004
-#define AM_QUERY_DECODER_ATSC_HD_SUPPORT 0x00000005
-#define AM_GETDECODERCAP_QUERY_VMR9_SUPPORT 0x00000006
-#define DECODER_CAP_NOTSUPPORTED 0x00000000
-#define DECODER_CAP_SUPPORTED 0x00000001
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0374_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0374_v0_0_s_ifspec;
-#ifndef __IAMDecoderCaps_INTERFACE_DEFINED__
-#define __IAMDecoderCaps_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMDecoderCaps;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMDecoderCaps : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetDecoderCaps(DWORD dwCapIndex,DWORD *lpdwCap) = 0;
-  };
-#else
-  typedef struct IAMDecoderCapsVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMDecoderCaps *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMDecoderCaps *This);
-      ULONG (WINAPI *Release)(IAMDecoderCaps *This);
-      HRESULT (WINAPI *GetDecoderCaps)(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
-    END_INTERFACE
-  } IAMDecoderCapsVtbl;
-  struct IAMDecoderCaps {
-    CONST_VTBL struct IAMDecoderCapsVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMDecoderCaps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMDecoderCaps_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMDecoderCaps_Release(This) (This)->lpVtbl->Release(This)
-#define IAMDecoderCaps_GetDecoderCaps(This,dwCapIndex,lpdwCap) (This)->lpVtbl->GetDecoderCaps(This,dwCapIndex,lpdwCap)
-#endif
-#endif
-  HRESULT WINAPI IAMDecoderCaps_GetDecoderCaps_Proxy(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
-  void __RPC_STUB IAMDecoderCaps_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef struct _AMCOPPSignature {
-    BYTE Signature[256];
-  } AMCOPPSignature;
-
-  typedef struct _AMCOPPCommand {
-    GUID macKDI;
-    GUID guidCommandID;
-    DWORD dwSequence;
-    DWORD cbSizeData;
-    BYTE CommandData[4056];
-  } AMCOPPCommand;
-
-  typedef struct _AMCOPPCommand *LPAMCOPPCommand;
-
-  typedef struct _AMCOPPStatusInput {
-    GUID rApp;
-    GUID guidStatusRequestID;
-    DWORD dwSequence;
-    DWORD cbSizeData;
-    BYTE StatusData[4056];
-  } AMCOPPStatusInput;
-
-  typedef struct _AMCOPPStatusInput *LPAMCOPPStatusInput;
-
-  typedef struct _AMCOPPStatusOutput {
-    GUID macKDI;
-    DWORD cbSizeData;
-    BYTE COPPStatus[4076];
-  } AMCOPPStatusOutput;
-
-  typedef struct _AMCOPPStatusOutput *LPAMCOPPStatusOutput;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0375_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0375_v0_0_s_ifspec;
-#ifndef __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
-#define __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMCertifiedOutputProtection;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMCertifiedOutputProtection : public IUnknown {
-  public:
-    virtual HRESULT WINAPI KeyExchange(GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH) = 0;
-    virtual HRESULT WINAPI SessionSequenceStart(AMCOPPSignature *pSig) = 0;
-    virtual HRESULT WINAPI ProtectionCommand(const AMCOPPCommand *cmd) = 0;
-    virtual HRESULT WINAPI ProtectionStatus(const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput) = 0;
-  };
-#else
-  typedef struct IAMCertifiedOutputProtectionVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMCertifiedOutputProtection *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMCertifiedOutputProtection *This);
-      ULONG (WINAPI *Release)(IAMCertifiedOutputProtection *This);
-      HRESULT (WINAPI *KeyExchange)(IAMCertifiedOutputProtection *This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH);
-      HRESULT (WINAPI *SessionSequenceStart)(IAMCertifiedOutputProtection *This,AMCOPPSignature *pSig);
-      HRESULT (WINAPI *ProtectionCommand)(IAMCertifiedOutputProtection *This,const AMCOPPCommand *cmd);
-      HRESULT (WINAPI *ProtectionStatus)(IAMCertifiedOutputProtection *This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput);
-    END_INTERFACE
-  } IAMCertifiedOutputProtectionVtbl;
-  struct IAMCertifiedOutputProtection {
-    CONST_VTBL struct IAMCertifiedOutputProtectionVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMCertifiedOutputProtection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMCertifiedOutputProtection_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMCertifiedOutputProtection_Release(This) (This)->lpVtbl->Release(This)
-#define IAMCertifiedOutputProtection_KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH) (This)->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH)
-#define IAMCertifiedOutputProtection_SessionSequenceStart(This,pSig) (This)->lpVtbl->SessionSequenceStart(This,pSig)
-#define IAMCertifiedOutputProtection_ProtectionCommand(This,cmd) (This)->lpVtbl->ProtectionCommand(This,cmd)
-#define IAMCertifiedOutputProtection_ProtectionStatus(This,pStatusInput,pStatusOutput) (This)->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput)
-#endif
-#endif
-  HRESULT WINAPI IAMCertifiedOutputProtection_KeyExchange_Proxy(IAMCertifiedOutputProtection *This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH);
-  void __RPC_STUB IAMCertifiedOutputProtection_KeyExchange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCertifiedOutputProtection_SessionSequenceStart_Proxy(IAMCertifiedOutputProtection *This,AMCOPPSignature *pSig);
-  void __RPC_STUB IAMCertifiedOutputProtection_SessionSequenceStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCertifiedOutputProtection_ProtectionCommand_Proxy(IAMCertifiedOutputProtection *This,const AMCOPPCommand *cmd);
-  void __RPC_STUB IAMCertifiedOutputProtection_ProtectionCommand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCertifiedOutputProtection_ProtectionStatus_Proxy(IAMCertifiedOutputProtection *This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput);
-  void __RPC_STUB IAMCertifiedOutputProtection_ProtectionStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#include <dshow/ddraw.h>
-
-  typedef enum tagDVD_DOMAIN {
-    DVD_DOMAIN_FirstPlay = 1,
-    DVD_DOMAIN_VideoManagerMenu,DVD_DOMAIN_VideoTitleSetMenu,DVD_DOMAIN_Title,
-    DVD_DOMAIN_Stop
-  } DVD_DOMAIN;
-
-  typedef enum tagDVD_MENU_ID {
-    DVD_MENU_Title = 2,DVD_MENU_Root = 3,DVD_MENU_Subpicture = 4,DVD_MENU_Audio = 5,
-    DVD_MENU_Angle = 6,DVD_MENU_Chapter = 7
-  } DVD_MENU_ID;
-
-  typedef enum tagDVD_DISC_SIDE {
-    DVD_SIDE_A = 1,DVD_SIDE_B = 2
-  } DVD_DISC_SIDE;
-
-  typedef enum tagDVD_PREFERRED_DISPLAY_MODE {
-    DISPLAY_CONTENT_DEFAULT = 0,DISPLAY_16x9 = 1,DISPLAY_4x3_PANSCAN_PREFERRED = 2,DISPLAY_4x3_LETTERBOX_PREFERRED = 3
-  } DVD_PREFERRED_DISPLAY_MODE;
-
-  typedef WORD DVD_REGISTER;
-  typedef DVD_REGISTER GPRMARRAY[16];
-  typedef DVD_REGISTER SPRMARRAY[24];
-
-  typedef struct tagDVD_ATR {
-    ULONG ulCAT;
-    BYTE pbATRI[768];
-  } DVD_ATR;
-
-  typedef BYTE DVD_VideoATR[2];
-  typedef BYTE DVD_AudioATR[8];
-  typedef BYTE DVD_SubpictureATR[6];
-
-  typedef enum tagDVD_FRAMERATE {
-    DVD_FPS_25 = 1,DVD_FPS_30NonDrop = 3
-  } DVD_FRAMERATE;
-
-  typedef struct tagDVD_TIMECODE {
-    ULONG Hours1 :4;
-    ULONG Hours10 :4;
-    ULONG Minutes1 :4;
-    ULONG Minutes10:4;
-    ULONG Seconds1 :4;
-    ULONG Seconds10:4;
-    ULONG Frames1 :4;
-    ULONG Frames10 :2;
-    ULONG FrameRateCode: 2;
-  } DVD_TIMECODE;
-
-  typedef enum tagDVD_TIMECODE_FLAGS {
-    DVD_TC_FLAG_25fps = 0x1,DVD_TC_FLAG_30fps = 0x2,DVD_TC_FLAG_DropFrame = 0x4,DVD_TC_FLAG_Interpolated = 0x8
-  } DVD_TIMECODE_FLAGS;
-
-  typedef struct tagDVD_HMSF_TIMECODE {
-    BYTE bHours;
-    BYTE bMinutes;
-    BYTE bSeconds;
-    BYTE bFrames;
-  } DVD_HMSF_TIMECODE;
-
-  typedef struct tagDVD_PLAYBACK_LOCATION2 {
-    ULONG TitleNum;
-    ULONG ChapterNum;
-    DVD_HMSF_TIMECODE TimeCode;
-    ULONG TimeCodeFlags;
-  } DVD_PLAYBACK_LOCATION2;
-
-  typedef struct tagDVD_PLAYBACK_LOCATION {
-    ULONG TitleNum;
-    ULONG ChapterNum;
-    ULONG TimeCode;
-  } DVD_PLAYBACK_LOCATION;
-
-  typedef DWORD VALID_UOP_SOMTHING_OR_OTHER;
-
-  typedef enum __MIDL___MIDL_itf_strmif_0376_0001 {
-    UOP_FLAG_Play_Title_Or_AtTime = 0x1,UOP_FLAG_Play_Chapter = 0x2,UOP_FLAG_Play_Title = 0x4,UOP_FLAG_Stop = 0x8,UOP_FLAG_ReturnFromSubMenu = 0x10,
-    UOP_FLAG_Play_Chapter_Or_AtTime = 0x20,UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x40,UOP_FLAG_PlayNext_Chapter = 0x80,UOP_FLAG_Play_Forwards = 0x100,
-    UOP_FLAG_Play_Backwards = 0x200,UOP_FLAG_ShowMenu_Title = 0x400,UOP_FLAG_ShowMenu_Root = 0x800,UOP_FLAG_ShowMenu_SubPic = 0x1000,
-    UOP_FLAG_ShowMenu_Audio = 0x2000,UOP_FLAG_ShowMenu_Angle = 0x4000,UOP_FLAG_ShowMenu_Chapter = 0x8000,UOP_FLAG_Resume = 0x10000,
-    UOP_FLAG_Select_Or_Activate_Button = 0x20000,UOP_FLAG_Still_Off = 0x40000,UOP_FLAG_Pause_On = 0x80000,UOP_FLAG_Select_Audio_Stream = 0x100000,
-    UOP_FLAG_Select_SubPic_Stream = 0x200000,UOP_FLAG_Select_Angle = 0x400000,UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x800000,
-    UOP_FLAG_Select_Video_Mode_Preference = 0x1000000
-  } VALID_UOP_FLAG;
-
-  typedef enum __MIDL___MIDL_itf_strmif_0376_0002 {
-    DVD_CMD_FLAG_None = 0,DVD_CMD_FLAG_Flush = 0x1,DVD_CMD_FLAG_SendEvents = 0x2,DVD_CMD_FLAG_Block = 0x4,DVD_CMD_FLAG_StartWhenRendered = 0x8,
-    DVD_CMD_FLAG_EndAfterRendered = 0x10
-  } DVD_CMD_FLAGS;
-
-  typedef enum __MIDL___MIDL_itf_strmif_0376_0003 {
-    DVD_ResetOnStop = 1,DVD_NotifyParentalLevelChange = 2,DVD_HMSF_TimeCodeEvents = 3,DVD_AudioDuringFFwdRew = 4
-  } DVD_OPTION_FLAG;
-
-  typedef enum __MIDL___MIDL_itf_strmif_0376_0004 {
-    DVD_Relative_Upper = 1,DVD_Relative_Lower = 2,DVD_Relative_Left = 3,DVD_Relative_Right = 4
-  } DVD_RELATIVE_BUTTON;
-
-  typedef enum tagDVD_PARENTAL_LEVEL {
-    DVD_PARENTAL_LEVEL_8 = 0x8000,DVD_PARENTAL_LEVEL_7 = 0x4000,DVD_PARENTAL_LEVEL_6 = 0x2000,DVD_PARENTAL_LEVEL_5 = 0x1000,
-    DVD_PARENTAL_LEVEL_4 = 0x800,DVD_PARENTAL_LEVEL_3 = 0x400,DVD_PARENTAL_LEVEL_2 = 0x200,DVD_PARENTAL_LEVEL_1 = 0x100
-  } DVD_PARENTAL_LEVEL;
-
-  typedef enum tagDVD_AUDIO_LANG_EXT {
-    DVD_AUD_EXT_NotSpecified = 0,DVD_AUD_EXT_Captions = 1,DVD_AUD_EXT_VisuallyImpaired = 2,DVD_AUD_EXT_DirectorComments1 = 3,
-    DVD_AUD_EXT_DirectorComments2 = 4
-  } DVD_AUDIO_LANG_EXT;
-
-  typedef enum tagDVD_SUBPICTURE_LANG_EXT {
-    DVD_SP_EXT_NotSpecified = 0,DVD_SP_EXT_Caption_Normal = 1,DVD_SP_EXT_Caption_Big = 2,DVD_SP_EXT_Caption_Children = 3,DVD_SP_EXT_CC_Normal = 5,
-    DVD_SP_EXT_CC_Big = 6,DVD_SP_EXT_CC_Children = 7,DVD_SP_EXT_Forced = 9,DVD_SP_EXT_DirectorComments_Normal = 13,DVD_SP_EXT_DirectorComments_Big = 14,
-    DVD_SP_EXT_DirectorComments_Children = 15
-  } DVD_SUBPICTURE_LANG_EXT;
-
-  typedef enum tagDVD_AUDIO_APPMODE {
-    DVD_AudioMode_None = 0,DVD_AudioMode_Karaoke = 1,DVD_AudioMode_Surround = 2,DVD_AudioMode_Other = 3
-  } DVD_AUDIO_APPMODE;
-
-  typedef enum tagDVD_AUDIO_FORMAT {
-    DVD_AudioFormat_AC3 = 0,DVD_AudioFormat_MPEG1 = 1,DVD_AudioFormat_MPEG1_DRC = 2,DVD_AudioFormat_MPEG2 = 3,DVD_AudioFormat_MPEG2_DRC = 4,
-    DVD_AudioFormat_LPCM = 5,DVD_AudioFormat_DTS = 6,DVD_AudioFormat_SDDS = 7,DVD_AudioFormat_Other = 8
-  } DVD_AUDIO_FORMAT;
-
-  typedef enum tagDVD_KARAOKE_DOWNMIX {
-    DVD_Mix_0to0 = 0x1,DVD_Mix_1to0 = 0x2,DVD_Mix_2to0 = 0x4,DVD_Mix_3to0 = 0x8,DVD_Mix_4to0 = 0x10,DVD_Mix_Lto0 = 0x20,DVD_Mix_Rto0 = 0x40,
-    DVD_Mix_0to1 = 0x100,DVD_Mix_1to1 = 0x200,DVD_Mix_2to1 = 0x400,DVD_Mix_3to1 = 0x800,DVD_Mix_4to1 = 0x1000,DVD_Mix_Lto1 = 0x2000,
-    DVD_Mix_Rto1 = 0x4000
-  } DVD_KARAOKE_DOWNMIX;
-
-  typedef struct tagDVD_AudioAttributes {
-    DVD_AUDIO_APPMODE AppMode;
-    BYTE AppModeData;
-    DVD_AUDIO_FORMAT AudioFormat;
-    LCID Language;
-    DVD_AUDIO_LANG_EXT LanguageExtension;
-    WINBOOL fHasMultichannelInfo;
-    DWORD dwFrequency;
-    BYTE bQuantization;
-    BYTE bNumberOfChannels;
-    DWORD dwReserved[2];
-  } DVD_AudioAttributes;
-
-  typedef struct tagDVD_MUA_MixingInfo {
-    WINBOOL fMixTo0;
-    WINBOOL fMixTo1;
-    WINBOOL fMix0InPhase;
-    WINBOOL fMix1InPhase;
-    DWORD dwSpeakerPosition;
-  } DVD_MUA_MixingInfo;
-
-  typedef struct tagDVD_MUA_Coeff {
-    double log2_alpha;
-    double log2_beta;
-  } DVD_MUA_Coeff;
-
-  typedef struct tagDVD_MultichannelAudioAttributes {
-    DVD_MUA_MixingInfo Info[8];
-    DVD_MUA_Coeff Coeff[8];
-  } DVD_MultichannelAudioAttributes;
-
-  typedef enum tagDVD_KARAOKE_CONTENTS {
-    DVD_Karaoke_GuideVocal1 = 0x1,DVD_Karaoke_GuideVocal2 = 0x2,DVD_Karaoke_GuideMelody1 = 0x4,DVD_Karaoke_GuideMelody2 = 0x8,
-    DVD_Karaoke_GuideMelodyA = 0x10,DVD_Karaoke_GuideMelodyB = 0x20,DVD_Karaoke_SoundEffectA = 0x40,DVD_Karaoke_SoundEffectB = 0x80
-  } DVD_KARAOKE_CONTENTS;
-
-  typedef enum tagDVD_KARAOKE_ASSIGNMENT {
-    DVD_Assignment_reserved0 = 0,DVD_Assignment_reserved1 = 1,DVD_Assignment_LR = 2,DVD_Assignment_LRM = 3,DVD_Assignment_LR1 = 4,
-    DVD_Assignment_LRM1 = 5,DVD_Assignment_LR12 = 6,DVD_Assignment_LRM12 = 7
-  } DVD_KARAOKE_ASSIGNMENT;
-
-  typedef struct tagDVD_KaraokeAttributes {
-    BYTE bVersion;
-    WINBOOL fMasterOfCeremoniesInGuideVocal1;
-    WINBOOL fDuet;
-    DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
-    WORD wChannelContents[8];
-  } DVD_KaraokeAttributes;
-
-  typedef enum tagDVD_VIDEO_COMPRESSION {
-    DVD_VideoCompression_Other = 0,DVD_VideoCompression_MPEG1 = 1,DVD_VideoCompression_MPEG2 = 2
-  } DVD_VIDEO_COMPRESSION;
-
-  typedef struct tagDVD_VideoAttributes {
-    WINBOOL fPanscanPermitted;
-    WINBOOL fLetterboxPermitted;
-    ULONG ulAspectX;
-    ULONG ulAspectY;
-    ULONG ulFrameRate;
-    ULONG ulFrameHeight;
-    DVD_VIDEO_COMPRESSION Compression;
-    WINBOOL fLine21Field1InGOP;
-    WINBOOL fLine21Field2InGOP;
-    ULONG ulSourceResolutionX;
-    ULONG ulSourceResolutionY;
-    WINBOOL fIsSourceLetterboxed;
-    WINBOOL fIsFilmMode;
-  } DVD_VideoAttributes;
-
-  typedef enum tagDVD_SUBPICTURE_TYPE {
-    DVD_SPType_NotSpecified = 0,DVD_SPType_Language = 1,DVD_SPType_Other = 2
-  } DVD_SUBPICTURE_TYPE;
-
-  typedef enum tagDVD_SUBPICTURE_CODING {
-    DVD_SPCoding_RunLength = 0,DVD_SPCoding_Extended = 1,DVD_SPCoding_Other = 2
-  } DVD_SUBPICTURE_CODING;
-
-  typedef struct tagDVD_SubpictureAttributes {
-    DVD_SUBPICTURE_TYPE Type;
-    DVD_SUBPICTURE_CODING CodingMode;
-    LCID Language;
-    DVD_SUBPICTURE_LANG_EXT LanguageExtension;
-  } DVD_SubpictureAttributes;
-
-  typedef enum tagDVD_TITLE_APPMODE {
-    DVD_AppMode_Not_Specified = 0,DVD_AppMode_Karaoke = 1,DVD_AppMode_Other = 3
-  } DVD_TITLE_APPMODE;
-
-  typedef struct tagDVD_TitleMainAttributes {
-    DVD_TITLE_APPMODE AppMode;
-    DVD_VideoAttributes VideoAttributes;
-    ULONG ulNumberOfAudioStreams;
-    DVD_AudioAttributes AudioAttributes[8];
-    DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8];
-    ULONG ulNumberOfSubpictureStreams;
-    DVD_SubpictureAttributes SubpictureAttributes[32];
-  } DVD_TitleAttributes;
-
-  typedef struct tagDVD_MenuAttributes {
-    WINBOOL fCompatibleRegion[8];
-    DVD_VideoAttributes VideoAttributes;
-    WINBOOL fAudioPresent;
-    DVD_AudioAttributes AudioAttributes;
-    WINBOOL fSubpicturePresent;
-    DVD_SubpictureAttributes SubpictureAttributes;
-  } DVD_MenuAttributes;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0376_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0376_v0_0_s_ifspec;
-#ifndef __IDvdControl_INTERFACE_DEFINED__
-#define __IDvdControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDvdControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDvdControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI TitlePlay(ULONG ulTitle) = 0;
-    virtual HRESULT WINAPI ChapterPlay(ULONG ulTitle,ULONG ulChapter) = 0;
-    virtual HRESULT WINAPI TimePlay(ULONG ulTitle,ULONG bcdTime) = 0;
-    virtual HRESULT WINAPI StopForResume(void) = 0;
-    virtual HRESULT WINAPI GoUp(void) = 0;
-    virtual HRESULT WINAPI TimeSearch(ULONG bcdTime) = 0;
-    virtual HRESULT WINAPI ChapterSearch(ULONG ulChapter) = 0;
-    virtual HRESULT WINAPI PrevPGSearch(void) = 0;
-    virtual HRESULT WINAPI TopPGSearch(void) = 0;
-    virtual HRESULT WINAPI NextPGSearch(void) = 0;
-    virtual HRESULT WINAPI ForwardScan(double dwSpeed) = 0;
-    virtual HRESULT WINAPI BackwardScan(double dwSpeed) = 0;
-    virtual HRESULT WINAPI MenuCall(DVD_MENU_ID MenuID) = 0;
-    virtual HRESULT WINAPI Resume(void) = 0;
-    virtual HRESULT WINAPI UpperButtonSelect(void) = 0;
-    virtual HRESULT WINAPI LowerButtonSelect(void) = 0;
-    virtual HRESULT WINAPI LeftButtonSelect(void) = 0;
-    virtual HRESULT WINAPI RightButtonSelect(void) = 0;
-    virtual HRESULT WINAPI ButtonActivate(void) = 0;
-    virtual HRESULT WINAPI ButtonSelectAndActivate(ULONG ulButton) = 0;
-    virtual HRESULT WINAPI StillOff(void) = 0;
-    virtual HRESULT WINAPI PauseOn(void) = 0;
-    virtual HRESULT WINAPI PauseOff(void) = 0;
-    virtual HRESULT WINAPI MenuLanguageSelect(LCID Language) = 0;
-    virtual HRESULT WINAPI AudioStreamChange(ULONG ulAudio) = 0;
-    virtual HRESULT WINAPI SubpictureStreamChange(ULONG ulSubPicture,WINBOOL bDisplay) = 0;
-    virtual HRESULT WINAPI AngleChange(ULONG ulAngle) = 0;
-    virtual HRESULT WINAPI ParentalLevelSelect(ULONG ulParentalLevel) = 0;
-    virtual HRESULT WINAPI ParentalCountrySelect(WORD wCountry) = 0;
-    virtual HRESULT WINAPI KaraokeAudioPresentationModeChange(ULONG ulMode) = 0;
-    virtual HRESULT WINAPI VideoModePreferrence(ULONG ulPreferredDisplayMode) = 0;
-    virtual HRESULT WINAPI SetRoot(LPCWSTR pszPath) = 0;
-    virtual HRESULT WINAPI MouseActivate(POINT point) = 0;
-    virtual HRESULT WINAPI MouseSelect(POINT point) = 0;
-    virtual HRESULT WINAPI ChapterPlayAutoStop(ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay) = 0;
-  };
-#else
-  typedef struct IDvdControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDvdControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDvdControl *This);
-      ULONG (WINAPI *Release)(IDvdControl *This);
-      HRESULT (WINAPI *TitlePlay)(IDvdControl *This,ULONG ulTitle);
-      HRESULT (WINAPI *ChapterPlay)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter);
-      HRESULT (WINAPI *TimePlay)(IDvdControl *This,ULONG ulTitle,ULONG bcdTime);
-      HRESULT (WINAPI *StopForResume)(IDvdControl *This);
-      HRESULT (WINAPI *GoUp)(IDvdControl *This);
-      HRESULT (WINAPI *TimeSearch)(IDvdControl *This,ULONG bcdTime);
-      HRESULT (WINAPI *ChapterSearch)(IDvdControl *This,ULONG ulChapter);
-      HRESULT (WINAPI *PrevPGSearch)(IDvdControl *This);
-      HRESULT (WINAPI *TopPGSearch)(IDvdControl *This);
-      HRESULT (WINAPI *NextPGSearch)(IDvdControl *This);
-      HRESULT (WINAPI *ForwardScan)(IDvdControl *This,double dwSpeed);
-      HRESULT (WINAPI *BackwardScan)(IDvdControl *This,double dwSpeed);
-      HRESULT (WINAPI *MenuCall)(IDvdControl *This,DVD_MENU_ID MenuID);
-      HRESULT (WINAPI *Resume)(IDvdControl *This);
-      HRESULT (WINAPI *UpperButtonSelect)(IDvdControl *This);
-      HRESULT (WINAPI *LowerButtonSelect)(IDvdControl *This);
-      HRESULT (WINAPI *LeftButtonSelect)(IDvdControl *This);
-      HRESULT (WINAPI *RightButtonSelect)(IDvdControl *This);
-      HRESULT (WINAPI *ButtonActivate)(IDvdControl *This);
-      HRESULT (WINAPI *ButtonSelectAndActivate)(IDvdControl *This,ULONG ulButton);
-      HRESULT (WINAPI *StillOff)(IDvdControl *This);
-      HRESULT (WINAPI *PauseOn)(IDvdControl *This);
-      HRESULT (WINAPI *PauseOff)(IDvdControl *This);
-      HRESULT (WINAPI *MenuLanguageSelect)(IDvdControl *This,LCID Language);
-      HRESULT (WINAPI *AudioStreamChange)(IDvdControl *This,ULONG ulAudio);
-      HRESULT (WINAPI *SubpictureStreamChange)(IDvdControl *This,ULONG ulSubPicture,WINBOOL bDisplay);
-      HRESULT (WINAPI *AngleChange)(IDvdControl *This,ULONG ulAngle);
-      HRESULT (WINAPI *ParentalLevelSelect)(IDvdControl *This,ULONG ulParentalLevel);
-      HRESULT (WINAPI *ParentalCountrySelect)(IDvdControl *This,WORD wCountry);
-      HRESULT (WINAPI *KaraokeAudioPresentationModeChange)(IDvdControl *This,ULONG ulMode);
-      HRESULT (WINAPI *VideoModePreferrence)(IDvdControl *This,ULONG ulPreferredDisplayMode);
-      HRESULT (WINAPI *SetRoot)(IDvdControl *This,LPCWSTR pszPath);
-      HRESULT (WINAPI *MouseActivate)(IDvdControl *This,POINT point);
-      HRESULT (WINAPI *MouseSelect)(IDvdControl *This,POINT point);
-      HRESULT (WINAPI *ChapterPlayAutoStop)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
-    END_INTERFACE
-  } IDvdControlVtbl;
-  struct IDvdControl {
-    CONST_VTBL struct IDvdControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDvdControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDvdControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDvdControl_Release(This) (This)->lpVtbl->Release(This)
-#define IDvdControl_TitlePlay(This,ulTitle) (This)->lpVtbl->TitlePlay(This,ulTitle)
-#define IDvdControl_ChapterPlay(This,ulTitle,ulChapter) (This)->lpVtbl->ChapterPlay(This,ulTitle,ulChapter)
-#define IDvdControl_TimePlay(This,ulTitle,bcdTime) (This)->lpVtbl->TimePlay(This,ulTitle,bcdTime)
-#define IDvdControl_StopForResume(This) (This)->lpVtbl->StopForResume(This)
-#define IDvdControl_GoUp(This) (This)->lpVtbl->GoUp(This)
-#define IDvdControl_TimeSearch(This,bcdTime) (This)->lpVtbl->TimeSearch(This,bcdTime)
-#define IDvdControl_ChapterSearch(This,ulChapter) (This)->lpVtbl->ChapterSearch(This,ulChapter)
-#define IDvdControl_PrevPGSearch(This) (This)->lpVtbl->PrevPGSearch(This)
-#define IDvdControl_TopPGSearch(This) (This)->lpVtbl->TopPGSearch(This)
-#define IDvdControl_NextPGSearch(This) (This)->lpVtbl->NextPGSearch(This)
-#define IDvdControl_ForwardScan(This,dwSpeed) (This)->lpVtbl->ForwardScan(This,dwSpeed)
-#define IDvdControl_BackwardScan(This,dwSpeed) (This)->lpVtbl->BackwardScan(This,dwSpeed)
-#define IDvdControl_MenuCall(This,MenuID) (This)->lpVtbl->MenuCall(This,MenuID)
-#define IDvdControl_Resume(This) (This)->lpVtbl->Resume(This)
-#define IDvdControl_UpperButtonSelect(This) (This)->lpVtbl->UpperButtonSelect(This)
-#define IDvdControl_LowerButtonSelect(This) (This)->lpVtbl->LowerButtonSelect(This)
-#define IDvdControl_LeftButtonSelect(This) (This)->lpVtbl->LeftButtonSelect(This)
-#define IDvdControl_RightButtonSelect(This) (This)->lpVtbl->RightButtonSelect(This)
-#define IDvdControl_ButtonActivate(This) (This)->lpVtbl->ButtonActivate(This)
-#define IDvdControl_ButtonSelectAndActivate(This,ulButton) (This)->lpVtbl->ButtonSelectAndActivate(This,ulButton)
-#define IDvdControl_StillOff(This) (This)->lpVtbl->StillOff(This)
-#define IDvdControl_PauseOn(This) (This)->lpVtbl->PauseOn(This)
-#define IDvdControl_PauseOff(This) (This)->lpVtbl->PauseOff(This)
-#define IDvdControl_MenuLanguageSelect(This,Language) (This)->lpVtbl->MenuLanguageSelect(This,Language)
-#define IDvdControl_AudioStreamChange(This,ulAudio) (This)->lpVtbl->AudioStreamChange(This,ulAudio)
-#define IDvdControl_SubpictureStreamChange(This,ulSubPicture,bDisplay) (This)->lpVtbl->SubpictureStreamChange(This,ulSubPicture,bDisplay)
-#define IDvdControl_AngleChange(This,ulAngle) (This)->lpVtbl->AngleChange(This,ulAngle)
-#define IDvdControl_ParentalLevelSelect(This,ulParentalLevel) (This)->lpVtbl->ParentalLevelSelect(This,ulParentalLevel)
-#define IDvdControl_ParentalCountrySelect(This,wCountry) (This)->lpVtbl->ParentalCountrySelect(This,wCountry)
-#define IDvdControl_KaraokeAudioPresentationModeChange(This,ulMode) (This)->lpVtbl->KaraokeAudioPresentationModeChange(This,ulMode)
-#define IDvdControl_VideoModePreferrence(This,ulPreferredDisplayMode) (This)->lpVtbl->VideoModePreferrence(This,ulPreferredDisplayMode)
-#define IDvdControl_SetRoot(This,pszPath) (This)->lpVtbl->SetRoot(This,pszPath)
-#define IDvdControl_MouseActivate(This,point) (This)->lpVtbl->MouseActivate(This,point)
-#define IDvdControl_MouseSelect(This,point) (This)->lpVtbl->MouseSelect(This,point)
-#define IDvdControl_ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay) (This)->lpVtbl->ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay)
-#endif
-#endif
-  HRESULT WINAPI IDvdControl_TitlePlay_Proxy(IDvdControl *This,ULONG ulTitle);
-  void __RPC_STUB IDvdControl_TitlePlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_ChapterPlay_Proxy(IDvdControl *This,ULONG ulTitle,ULONG ulChapter);
-  void __RPC_STUB IDvdControl_ChapterPlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_TimePlay_Proxy(IDvdControl *This,ULONG ulTitle,ULONG bcdTime);
-  void __RPC_STUB IDvdControl_TimePlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_StopForResume_Proxy(IDvdControl *This);
-  void __RPC_STUB IDvdControl_StopForResume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_GoUp_Proxy(IDvdControl *This);
-  void __RPC_STUB IDvdControl_GoUp_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_TimeSearch_Proxy(IDvdControl *This,ULONG bcdTime);
-  void __RPC_STUB IDvdControl_TimeSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_ChapterSearch_Proxy(IDvdControl *This,ULONG ulChapter);
-  void __RPC_STUB IDvdControl_ChapterSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_PrevPGSearch_Proxy(IDvdControl *This);
-  void __RPC_STUB IDvdControl_PrevPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_TopPGSearch_Proxy(IDvdControl *This);
-  void __RPC_STUB IDvdControl_TopPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_NextPGSearch_Proxy(IDvdControl *This);
-  void __RPC_STUB IDvdControl_NextPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_ForwardScan_Proxy(IDvdControl *This,double dwSpeed);
-  void __RPC_STUB IDvdControl_ForwardScan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_BackwardScan_Proxy(IDvdControl *This,double dwSpeed);
-  void __RPC_STUB IDvdControl_BackwardScan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_MenuCall_Proxy(IDvdControl *This,DVD_MENU_ID MenuID);
-  void __RPC_STUB IDvdControl_MenuCall_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_Resume_Proxy(IDvdControl *This);
-  void __RPC_STUB IDvdControl_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_UpperButtonSelect_Proxy(IDvdControl *This);
-  void __RPC_STUB IDvdControl_UpperButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_LowerButtonSelect_Proxy(IDvdControl *This);
-  void __RPC_STUB IDvdControl_LowerButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_LeftButtonSelect_Proxy(IDvdControl *This);
-  void __RPC_STUB IDvdControl_LeftButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_RightButtonSelect_Proxy(IDvdControl *This);
-  void __RPC_STUB IDvdControl_RightButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_ButtonActivate_Proxy(IDvdControl *This);
-  void __RPC_STUB IDvdControl_ButtonActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_ButtonSelectAndActivate_Proxy(IDvdControl *This,ULONG ulButton);
-  void __RPC_STUB IDvdControl_ButtonSelectAndActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_StillOff_Proxy(IDvdControl *This);
-  void __RPC_STUB IDvdControl_StillOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_PauseOn_Proxy(IDvdControl *This);
-  void __RPC_STUB IDvdControl_PauseOn_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_PauseOff_Proxy(IDvdControl *This);
-  void __RPC_STUB IDvdControl_PauseOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_MenuLanguageSelect_Proxy(IDvdControl *This,LCID Language);
-  void __RPC_STUB IDvdControl_MenuLanguageSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_AudioStreamChange_Proxy(IDvdControl *This,ULONG ulAudio);
-  void __RPC_STUB IDvdControl_AudioStreamChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_SubpictureStreamChange_Proxy(IDvdControl *This,ULONG ulSubPicture,WINBOOL bDisplay);
-  void __RPC_STUB IDvdControl_SubpictureStreamChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_AngleChange_Proxy(IDvdControl *This,ULONG ulAngle);
-  void __RPC_STUB IDvdControl_AngleChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_ParentalLevelSelect_Proxy(IDvdControl *This,ULONG ulParentalLevel);
-  void __RPC_STUB IDvdControl_ParentalLevelSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_ParentalCountrySelect_Proxy(IDvdControl *This,WORD wCountry);
-  void __RPC_STUB IDvdControl_ParentalCountrySelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_KaraokeAudioPresentationModeChange_Proxy(IDvdControl *This,ULONG ulMode);
-  void __RPC_STUB IDvdControl_KaraokeAudioPresentationModeChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_VideoModePreferrence_Proxy(IDvdControl *This,ULONG ulPreferredDisplayMode);
-  void __RPC_STUB IDvdControl_VideoModePreferrence_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_SetRoot_Proxy(IDvdControl *This,LPCWSTR pszPath);
-  void __RPC_STUB IDvdControl_SetRoot_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_MouseActivate_Proxy(IDvdControl *This,POINT point);
-  void __RPC_STUB IDvdControl_MouseActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_MouseSelect_Proxy(IDvdControl *This,POINT point);
-  void __RPC_STUB IDvdControl_MouseSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl_ChapterPlayAutoStop_Proxy(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
-  void __RPC_STUB IDvdControl_ChapterPlayAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IDvdInfo_INTERFACE_DEFINED__
-#define __IDvdInfo_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDvdInfo;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDvdInfo : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetCurrentDomain(DVD_DOMAIN *pDomain) = 0;
-    virtual HRESULT WINAPI GetCurrentLocation(DVD_PLAYBACK_LOCATION *pLocation) = 0;
-    virtual HRESULT WINAPI GetTotalTitleTime(ULONG *pulTotalTime) = 0;
-    virtual HRESULT WINAPI GetCurrentButton(ULONG *pulButtonsAvailable,ULONG *pulCurrentButton) = 0;
-    virtual HRESULT WINAPI GetCurrentAngle(ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle) = 0;
-    virtual HRESULT WINAPI GetCurrentAudio(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream) = 0;
-    virtual HRESULT WINAPI GetCurrentSubpicture(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled) = 0;
-    virtual HRESULT WINAPI GetCurrentUOPS(VALID_UOP_SOMTHING_OR_OTHER *pUOP) = 0;
-    virtual HRESULT WINAPI GetAllSPRMs(SPRMARRAY *pRegisterArray) = 0;
-    virtual HRESULT WINAPI GetAllGPRMs(GPRMARRAY *pRegisterArray) = 0;
-    virtual HRESULT WINAPI GetAudioLanguage(ULONG ulStream,LCID *pLanguage) = 0;
-    virtual HRESULT WINAPI GetSubpictureLanguage(ULONG ulStream,LCID *pLanguage) = 0;
-    virtual HRESULT WINAPI GetTitleAttributes(ULONG ulTitle,DVD_ATR *pATR) = 0;
-    virtual HRESULT WINAPI GetVMGAttributes(DVD_ATR *pATR) = 0;
-    virtual HRESULT WINAPI GetCurrentVideoAttributes(DVD_VideoATR *pATR) = 0;
-    virtual HRESULT WINAPI GetCurrentAudioAttributes(DVD_AudioATR *pATR) = 0;
-    virtual HRESULT WINAPI GetCurrentSubpictureAttributes(DVD_SubpictureATR *pATR) = 0;
-    virtual HRESULT WINAPI GetCurrentVolumeInfo(ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles) = 0;
-    virtual HRESULT WINAPI GetDVDTextInfo(BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize) = 0;
-    virtual HRESULT WINAPI GetPlayerParentalLevel(ULONG *pulParentalLevel,ULONG *pulCountryCode) = 0;
-    virtual HRESULT WINAPI GetNumberOfChapters(ULONG ulTitle,ULONG *pulNumberOfChapters) = 0;
-    virtual HRESULT WINAPI GetTitleParentalLevels(ULONG ulTitle,ULONG *pulParentalLevels) = 0;
-    virtual HRESULT WINAPI GetRoot(LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize) = 0;
-  };
-#else
-  typedef struct IDvdInfoVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDvdInfo *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDvdInfo *This);
-      ULONG (WINAPI *Release)(IDvdInfo *This);
-      HRESULT (WINAPI *GetCurrentDomain)(IDvdInfo *This,DVD_DOMAIN *pDomain);
-      HRESULT (WINAPI *GetCurrentLocation)(IDvdInfo *This,DVD_PLAYBACK_LOCATION *pLocation);
-      HRESULT (WINAPI *GetTotalTitleTime)(IDvdInfo *This,ULONG *pulTotalTime);
-      HRESULT (WINAPI *GetCurrentButton)(IDvdInfo *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
-      HRESULT (WINAPI *GetCurrentAngle)(IDvdInfo *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
-      HRESULT (WINAPI *GetCurrentAudio)(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
-      HRESULT (WINAPI *GetCurrentSubpicture)(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled);
-      HRESULT (WINAPI *GetCurrentUOPS)(IDvdInfo *This,VALID_UOP_SOMTHING_OR_OTHER *pUOP);
-      HRESULT (WINAPI *GetAllSPRMs)(IDvdInfo *This,SPRMARRAY *pRegisterArray);
-      HRESULT (WINAPI *GetAllGPRMs)(IDvdInfo *This,GPRMARRAY *pRegisterArray);
-      HRESULT (WINAPI *GetAudioLanguage)(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
-      HRESULT (WINAPI *GetSubpictureLanguage)(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
-      HRESULT (WINAPI *GetTitleAttributes)(IDvdInfo *This,ULONG ulTitle,DVD_ATR *pATR);
-      HRESULT (WINAPI *GetVMGAttributes)(IDvdInfo *This,DVD_ATR *pATR);
-      HRESULT (WINAPI *GetCurrentVideoAttributes)(IDvdInfo *This,DVD_VideoATR *pATR);
-      HRESULT (WINAPI *GetCurrentAudioAttributes)(IDvdInfo *This,DVD_AudioATR *pATR);
-      HRESULT (WINAPI *GetCurrentSubpictureAttributes)(IDvdInfo *This,DVD_SubpictureATR *pATR);
-      HRESULT (WINAPI *GetCurrentVolumeInfo)(IDvdInfo *This,ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
-      HRESULT (WINAPI *GetDVDTextInfo)(IDvdInfo *This,BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize);
-      HRESULT (WINAPI *GetPlayerParentalLevel)(IDvdInfo *This,ULONG *pulParentalLevel,ULONG *pulCountryCode);
-      HRESULT (WINAPI *GetNumberOfChapters)(IDvdInfo *This,ULONG ulTitle,ULONG *pulNumberOfChapters);
-      HRESULT (WINAPI *GetTitleParentalLevels)(IDvdInfo *This,ULONG ulTitle,ULONG *pulParentalLevels);
-      HRESULT (WINAPI *GetRoot)(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
-    END_INTERFACE
-  } IDvdInfoVtbl;
-  struct IDvdInfo {
-    CONST_VTBL struct IDvdInfoVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDvdInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDvdInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDvdInfo_Release(This) (This)->lpVtbl->Release(This)
-#define IDvdInfo_GetCurrentDomain(This,pDomain) (This)->lpVtbl->GetCurrentDomain(This,pDomain)
-#define IDvdInfo_GetCurrentLocation(This,pLocation) (This)->lpVtbl->GetCurrentLocation(This,pLocation)
-#define IDvdInfo_GetTotalTitleTime(This,pulTotalTime) (This)->lpVtbl->GetTotalTitleTime(This,pulTotalTime)
-#define IDvdInfo_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton) (This)->lpVtbl->GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
-#define IDvdInfo_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle) (This)->lpVtbl->GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
-#define IDvdInfo_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream) (This)->lpVtbl->GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
-#define IDvdInfo_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled) (This)->lpVtbl->GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled)
-#define IDvdInfo_GetCurrentUOPS(This,pUOP) (This)->lpVtbl->GetCurrentUOPS(This,pUOP)
-#define IDvdInfo_GetAllSPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllSPRMs(This,pRegisterArray)
-#define IDvdInfo_GetAllGPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllGPRMs(This,pRegisterArray)
-#define IDvdInfo_GetAudioLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetAudioLanguage(This,ulStream,pLanguage)
-#define IDvdInfo_GetSubpictureLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetSubpictureLanguage(This,ulStream,pLanguage)
-#define IDvdInfo_GetTitleAttributes(This,ulTitle,pATR) (This)->lpVtbl->GetTitleAttributes(This,ulTitle,pATR)
-#define IDvdInfo_GetVMGAttributes(This,pATR) (This)->lpVtbl->GetVMGAttributes(This,pATR)
-#define IDvdInfo_GetCurrentVideoAttributes(This,pATR) (This)->lpVtbl->GetCurrentVideoAttributes(This,pATR)
-#define IDvdInfo_GetCurrentAudioAttributes(This,pATR) (This)->lpVtbl->GetCurrentAudioAttributes(This,pATR)
-#define IDvdInfo_GetCurrentSubpictureAttributes(This,pATR) (This)->lpVtbl->GetCurrentSubpictureAttributes(This,pATR)
-#define IDvdInfo_GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles) (This)->lpVtbl->GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles)
-#define IDvdInfo_GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize) (This)->lpVtbl->GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize)
-#define IDvdInfo_GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode) (This)->lpVtbl->GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode)
-#define IDvdInfo_GetNumberOfChapters(This,ulTitle,pulNumberOfChapters) (This)->lpVtbl->GetNumberOfChapters(This,ulTitle,pulNumberOfChapters)
-#define IDvdInfo_GetTitleParentalLevels(This,ulTitle,pulParentalLevels) (This)->lpVtbl->GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
-#define IDvdInfo_GetRoot(This,pRoot,ulBufSize,pulActualSize) (This)->lpVtbl->GetRoot(This,pRoot,ulBufSize,pulActualSize)
-#endif
-#endif
-  HRESULT WINAPI IDvdInfo_GetCurrentDomain_Proxy(IDvdInfo *This,DVD_DOMAIN *pDomain);
-  void __RPC_STUB IDvdInfo_GetCurrentDomain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetCurrentLocation_Proxy(IDvdInfo *This,DVD_PLAYBACK_LOCATION *pLocation);
-  void __RPC_STUB IDvdInfo_GetCurrentLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetTotalTitleTime_Proxy(IDvdInfo *This,ULONG *pulTotalTime);
-  void __RPC_STUB IDvdInfo_GetTotalTitleTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetCurrentButton_Proxy(IDvdInfo *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
-  void __RPC_STUB IDvdInfo_GetCurrentButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetCurrentAngle_Proxy(IDvdInfo *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
-  void __RPC_STUB IDvdInfo_GetCurrentAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetCurrentAudio_Proxy(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
-  void __RPC_STUB IDvdInfo_GetCurrentAudio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetCurrentSubpicture_Proxy(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled);
-  void __RPC_STUB IDvdInfo_GetCurrentSubpicture_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetCurrentUOPS_Proxy(IDvdInfo *This,VALID_UOP_SOMTHING_OR_OTHER *pUOP);
-  void __RPC_STUB IDvdInfo_GetCurrentUOPS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetAllSPRMs_Proxy(IDvdInfo *This,SPRMARRAY *pRegisterArray);
-  void __RPC_STUB IDvdInfo_GetAllSPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetAllGPRMs_Proxy(IDvdInfo *This,GPRMARRAY *pRegisterArray);
-  void __RPC_STUB IDvdInfo_GetAllGPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetAudioLanguage_Proxy(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
-  void __RPC_STUB IDvdInfo_GetAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetSubpictureLanguage_Proxy(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
-  void __RPC_STUB IDvdInfo_GetSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetTitleAttributes_Proxy(IDvdInfo *This,ULONG ulTitle,DVD_ATR *pATR);
-  void __RPC_STUB IDvdInfo_GetTitleAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetVMGAttributes_Proxy(IDvdInfo *This,DVD_ATR *pATR);
-  void __RPC_STUB IDvdInfo_GetVMGAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetCurrentVideoAttributes_Proxy(IDvdInfo *This,DVD_VideoATR *pATR);
-  void __RPC_STUB IDvdInfo_GetCurrentVideoAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetCurrentAudioAttributes_Proxy(IDvdInfo *This,DVD_AudioATR *pATR);
-  void __RPC_STUB IDvdInfo_GetCurrentAudioAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetCurrentSubpictureAttributes_Proxy(IDvdInfo *This,DVD_SubpictureATR *pATR);
-  void __RPC_STUB IDvdInfo_GetCurrentSubpictureAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetCurrentVolumeInfo_Proxy(IDvdInfo *This,ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
-  void __RPC_STUB IDvdInfo_GetCurrentVolumeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetDVDTextInfo_Proxy(IDvdInfo *This,BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize);
-  void __RPC_STUB IDvdInfo_GetDVDTextInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetPlayerParentalLevel_Proxy(IDvdInfo *This,ULONG *pulParentalLevel,ULONG *pulCountryCode);
-  void __RPC_STUB IDvdInfo_GetPlayerParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetNumberOfChapters_Proxy(IDvdInfo *This,ULONG ulTitle,ULONG *pulNumberOfChapters);
-  void __RPC_STUB IDvdInfo_GetNumberOfChapters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetTitleParentalLevels_Proxy(IDvdInfo *This,ULONG ulTitle,ULONG *pulParentalLevels);
-  void __RPC_STUB IDvdInfo_GetTitleParentalLevels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo_GetRoot_Proxy(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
-  void __RPC_STUB IDvdInfo_GetRoot_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IDvdCmd_INTERFACE_DEFINED__
-#define __IDvdCmd_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDvdCmd;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDvdCmd : public IUnknown {
-  public:
-    virtual HRESULT WINAPI WaitForStart(void) = 0;
-    virtual HRESULT WINAPI WaitForEnd(void) = 0;
-  };
-#else
-  typedef struct IDvdCmdVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDvdCmd *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDvdCmd *This);
-      ULONG (WINAPI *Release)(IDvdCmd *This);
-      HRESULT (WINAPI *WaitForStart)(IDvdCmd *This);
-      HRESULT (WINAPI *WaitForEnd)(IDvdCmd *This);
-    END_INTERFACE
-  } IDvdCmdVtbl;
-  struct IDvdCmd {
-    CONST_VTBL struct IDvdCmdVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDvdCmd_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDvdCmd_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDvdCmd_Release(This) (This)->lpVtbl->Release(This)
-#define IDvdCmd_WaitForStart(This) (This)->lpVtbl->WaitForStart(This)
-#define IDvdCmd_WaitForEnd(This) (This)->lpVtbl->WaitForEnd(This)
-#endif
-#endif
-  HRESULT WINAPI IDvdCmd_WaitForStart_Proxy(IDvdCmd *This);
-  void __RPC_STUB IDvdCmd_WaitForStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdCmd_WaitForEnd_Proxy(IDvdCmd *This);
-  void __RPC_STUB IDvdCmd_WaitForEnd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IDvdState_INTERFACE_DEFINED__
-#define __IDvdState_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDvdState;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDvdState : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetDiscID(ULONGLONG *pullUniqueID) = 0;
-    virtual HRESULT WINAPI GetParentalLevel(ULONG *pulParentalLevel) = 0;
-  };
-#else
-  typedef struct IDvdStateVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDvdState *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDvdState *This);
-      ULONG (WINAPI *Release)(IDvdState *This);
-      HRESULT (WINAPI *GetDiscID)(IDvdState *This,ULONGLONG *pullUniqueID);
-      HRESULT (WINAPI *GetParentalLevel)(IDvdState *This,ULONG *pulParentalLevel);
-    END_INTERFACE
-  } IDvdStateVtbl;
-  struct IDvdState {
-    CONST_VTBL struct IDvdStateVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDvdState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDvdState_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDvdState_Release(This) (This)->lpVtbl->Release(This)
-#define IDvdState_GetDiscID(This,pullUniqueID) (This)->lpVtbl->GetDiscID(This,pullUniqueID)
-#define IDvdState_GetParentalLevel(This,pulParentalLevel) (This)->lpVtbl->GetParentalLevel(This,pulParentalLevel)
-#endif
-#endif
-  HRESULT WINAPI IDvdState_GetDiscID_Proxy(IDvdState *This,ULONGLONG *pullUniqueID);
-  void __RPC_STUB IDvdState_GetDiscID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdState_GetParentalLevel_Proxy(IDvdState *This,ULONG *pulParentalLevel);
-  void __RPC_STUB IDvdState_GetParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IDvdControl2_INTERFACE_DEFINED__
-#define __IDvdControl2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDvdControl2;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDvdControl2 : public IUnknown {
-  public:
-    virtual HRESULT WINAPI PlayTitle(ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI PlayChapterInTitle(ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI PlayAtTimeInTitle(ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI Stop(void) = 0;
-    virtual HRESULT WINAPI ReturnFromSubmenu(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI PlayAtTime(DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI PlayChapter(ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI PlayPrevChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI ReplayChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI PlayNextChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI PlayForwards(double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI PlayBackwards(double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI ShowMenu(DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI Resume(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI SelectRelativeButton(DVD_RELATIVE_BUTTON buttonDir) = 0;
-    virtual HRESULT WINAPI ActivateButton(void) = 0;
-    virtual HRESULT WINAPI SelectButton(ULONG ulButton) = 0;
-    virtual HRESULT WINAPI SelectAndActivateButton(ULONG ulButton) = 0;
-    virtual HRESULT WINAPI StillOff(void) = 0;
-    virtual HRESULT WINAPI Pause(WINBOOL bState) = 0;
-    virtual HRESULT WINAPI SelectAudioStream(ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI SelectSubpictureStream(ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI SetSubpictureState(WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI SelectAngle(ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI SelectParentalLevel(ULONG ulParentalLevel) = 0;
-    virtual HRESULT WINAPI SelectParentalCountry(BYTE bCountry[2]) = 0;
-    virtual HRESULT WINAPI SelectKaraokeAudioPresentationMode(ULONG ulMode) = 0;
-    virtual HRESULT WINAPI SelectVideoModePreference(ULONG ulPreferredDisplayMode) = 0;
-    virtual HRESULT WINAPI SetDVDDirectory(LPCWSTR pszwPath) = 0;
-    virtual HRESULT WINAPI ActivateAtPosition(POINT point) = 0;
-    virtual HRESULT WINAPI SelectAtPosition(POINT point) = 0;
-    virtual HRESULT WINAPI PlayChaptersAutoStop(ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI AcceptParentalLevelChange(WINBOOL bAccept) = 0;
-    virtual HRESULT WINAPI SetOption(DVD_OPTION_FLAG flag,WINBOOL fState) = 0;
-    virtual HRESULT WINAPI SetState(IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI PlayPeriodInTitleAutoStop(ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI SetGPRM(ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
-    virtual HRESULT WINAPI SelectDefaultMenuLanguage(LCID Language) = 0;
-    virtual HRESULT WINAPI SelectDefaultAudioLanguage(LCID Language,DVD_AUDIO_LANG_EXT audioExtension) = 0;
-    virtual HRESULT WINAPI SelectDefaultSubpictureLanguage(LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension) = 0;
-  };
-#else
-  typedef struct IDvdControl2Vtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDvdControl2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDvdControl2 *This);
-      ULONG (WINAPI *Release)(IDvdControl2 *This);
-      HRESULT (WINAPI *PlayTitle)(IDvdControl2 *This,ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *PlayChapterInTitle)(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *PlayAtTimeInTitle)(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *Stop)(IDvdControl2 *This);
-      HRESULT (WINAPI *ReturnFromSubmenu)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *PlayAtTime)(IDvdControl2 *This,DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *PlayChapter)(IDvdControl2 *This,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *PlayPrevChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *ReplayChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *PlayNextChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *PlayForwards)(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *PlayBackwards)(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *ShowMenu)(IDvdControl2 *This,DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *Resume)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *SelectRelativeButton)(IDvdControl2 *This,DVD_RELATIVE_BUTTON buttonDir);
-      HRESULT (WINAPI *ActivateButton)(IDvdControl2 *This);
-      HRESULT (WINAPI *SelectButton)(IDvdControl2 *This,ULONG ulButton);
-      HRESULT (WINAPI *SelectAndActivateButton)(IDvdControl2 *This,ULONG ulButton);
-      HRESULT (WINAPI *StillOff)(IDvdControl2 *This);
-      HRESULT (WINAPI *Pause)(IDvdControl2 *This,WINBOOL bState);
-      HRESULT (WINAPI *SelectAudioStream)(IDvdControl2 *This,ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *SelectSubpictureStream)(IDvdControl2 *This,ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *SetSubpictureState)(IDvdControl2 *This,WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *SelectAngle)(IDvdControl2 *This,ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *SelectParentalLevel)(IDvdControl2 *This,ULONG ulParentalLevel);
-      HRESULT (WINAPI *SelectParentalCountry)(IDvdControl2 *This,BYTE bCountry[2]);
-      HRESULT (WINAPI *SelectKaraokeAudioPresentationMode)(IDvdControl2 *This,ULONG ulMode);
-      HRESULT (WINAPI *SelectVideoModePreference)(IDvdControl2 *This,ULONG ulPreferredDisplayMode);
-      HRESULT (WINAPI *SetDVDDirectory)(IDvdControl2 *This,LPCWSTR pszwPath);
-      HRESULT (WINAPI *ActivateAtPosition)(IDvdControl2 *This,POINT point);
-      HRESULT (WINAPI *SelectAtPosition)(IDvdControl2 *This,POINT point);
-      HRESULT (WINAPI *PlayChaptersAutoStop)(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *AcceptParentalLevelChange)(IDvdControl2 *This,WINBOOL bAccept);
-      HRESULT (WINAPI *SetOption)(IDvdControl2 *This,DVD_OPTION_FLAG flag,WINBOOL fState);
-      HRESULT (WINAPI *SetState)(IDvdControl2 *This,IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *PlayPeriodInTitleAutoStop)(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *SetGPRM)(IDvdControl2 *This,ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd);
-      HRESULT (WINAPI *SelectDefaultMenuLanguage)(IDvdControl2 *This,LCID Language);
-      HRESULT (WINAPI *SelectDefaultAudioLanguage)(IDvdControl2 *This,LCID Language,DVD_AUDIO_LANG_EXT audioExtension);
-      HRESULT (WINAPI *SelectDefaultSubpictureLanguage)(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
-    END_INTERFACE
-  } IDvdControl2Vtbl;
-  struct IDvdControl2 {
-    CONST_VTBL struct IDvdControl2Vtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDvdControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDvdControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDvdControl2_Release(This) (This)->lpVtbl->Release(This)
-#define IDvdControl2_PlayTitle(This,ulTitle,dwFlags,ppCmd) (This)->lpVtbl->PlayTitle(This,ulTitle,dwFlags,ppCmd)
-#define IDvdControl2_PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd) (This)->lpVtbl->PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd)
-#define IDvdControl2_PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd) (This)->lpVtbl->PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd)
-#define IDvdControl2_Stop(This) (This)->lpVtbl->Stop(This)
-#define IDvdControl2_ReturnFromSubmenu(This,dwFlags,ppCmd) (This)->lpVtbl->ReturnFromSubmenu(This,dwFlags,ppCmd)
-#define IDvdControl2_PlayAtTime(This,pTime,dwFlags,ppCmd) (This)->lpVtbl->PlayAtTime(This,pTime,dwFlags,ppCmd)
-#define IDvdControl2_PlayChapter(This,ulChapter,dwFlags,ppCmd) (This)->lpVtbl->PlayChapter(This,ulChapter,dwFlags,ppCmd)
-#define IDvdControl2_PlayPrevChapter(This,dwFlags,ppCmd) (This)->lpVtbl->PlayPrevChapter(This,dwFlags,ppCmd)
-#define IDvdControl2_ReplayChapter(This,dwFlags,ppCmd) (This)->lpVtbl->ReplayChapter(This,dwFlags,ppCmd)
-#define IDvdControl2_PlayNextChapter(This,dwFlags,ppCmd) (This)->lpVtbl->PlayNextChapter(This,dwFlags,ppCmd)
-#define IDvdControl2_PlayForwards(This,dSpeed,dwFlags,ppCmd) (This)->lpVtbl->PlayForwards(This,dSpeed,dwFlags,ppCmd)
-#define IDvdControl2_PlayBackwards(This,dSpeed,dwFlags,ppCmd) (This)->lpVtbl->PlayBackwards(This,dSpeed,dwFlags,ppCmd)
-#define IDvdControl2_ShowMenu(This,MenuID,dwFlags,ppCmd) (This)->lpVtbl->ShowMenu(This,MenuID,dwFlags,ppCmd)
-#define IDvdControl2_Resume(This,dwFlags,ppCmd) (This)->lpVtbl->Resume(This,dwFlags,ppCmd)
-#define IDvdControl2_SelectRelativeButton(This,buttonDir) (This)->lpVtbl->SelectRelativeButton(This,buttonDir)
-#define IDvdControl2_ActivateButton(This) (This)->lpVtbl->ActivateButton(This)
-#define IDvdControl2_SelectButton(This,ulButton) (This)->lpVtbl->SelectButton(This,ulButton)
-#define IDvdControl2_SelectAndActivateButton(This,ulButton) (This)->lpVtbl->SelectAndActivateButton(This,ulButton)
-#define IDvdControl2_StillOff(This) (This)->lpVtbl->StillOff(This)
-#define IDvdControl2_Pause(This,bState) (This)->lpVtbl->Pause(This,bState)
-#define IDvdControl2_SelectAudioStream(This,ulAudio,dwFlags,ppCmd) (This)->lpVtbl->SelectAudioStream(This,ulAudio,dwFlags,ppCmd)
-#define IDvdControl2_SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd) (This)->lpVtbl->SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd)
-#define IDvdControl2_SetSubpictureState(This,bState,dwFlags,ppCmd) (This)->lpVtbl->SetSubpictureState(This,bState,dwFlags,ppCmd)
-#define IDvdControl2_SelectAngle(This,ulAngle,dwFlags,ppCmd) (This)->lpVtbl->SelectAngle(This,ulAngle,dwFlags,ppCmd)
-#define IDvdControl2_SelectParentalLevel(This,ulParentalLevel) (This)->lpVtbl->SelectParentalLevel(This,ulParentalLevel)
-#define IDvdControl2_SelectParentalCountry(This,bCountry) (This)->lpVtbl->SelectParentalCountry(This,bCountry)
-#define IDvdControl2_SelectKaraokeAudioPresentationMode(This,ulMode) (This)->lpVtbl->SelectKaraokeAudioPresentationMode(This,ulMode)
-#define IDvdControl2_SelectVideoModePreference(This,ulPreferredDisplayMode) (This)->lpVtbl->SelectVideoModePreference(This,ulPreferredDisplayMode)
-#define IDvdControl2_SetDVDDirectory(This,pszwPath) (This)->lpVtbl->SetDVDDirectory(This,pszwPath)
-#define IDvdControl2_ActivateAtPosition(This,point) (This)->lpVtbl->ActivateAtPosition(This,point)
-#define IDvdControl2_SelectAtPosition(This,point) (This)->lpVtbl->SelectAtPosition(This,point)
-#define IDvdControl2_PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd) (This)->lpVtbl->PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd)
-#define IDvdControl2_AcceptParentalLevelChange(This,bAccept) (This)->lpVtbl->AcceptParentalLevelChange(This,bAccept)
-#define IDvdControl2_SetOption(This,flag,fState) (This)->lpVtbl->SetOption(This,flag,fState)
-#define IDvdControl2_SetState(This,pState,dwFlags,ppCmd) (This)->lpVtbl->SetState(This,pState,dwFlags,ppCmd)
-#define IDvdControl2_PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd) (This)->lpVtbl->PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd)
-#define IDvdControl2_SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd) (This)->lpVtbl->SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd)
-#define IDvdControl2_SelectDefaultMenuLanguage(This,Language) (This)->lpVtbl->SelectDefaultMenuLanguage(This,Language)
-#define IDvdControl2_SelectDefaultAudioLanguage(This,Language,audioExtension) (This)->lpVtbl->SelectDefaultAudioLanguage(This,Language,audioExtension)
-#define IDvdControl2_SelectDefaultSubpictureLanguage(This,Language,subpictureExtension) (This)->lpVtbl->SelectDefaultSubpictureLanguage(This,Language,subpictureExtension)
-#endif
-#endif
-  HRESULT WINAPI IDvdControl2_PlayTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_PlayTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_PlayChapterInTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_PlayChapterInTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_PlayAtTimeInTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_PlayAtTimeInTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_Stop_Proxy(IDvdControl2 *This);
-  void __RPC_STUB IDvdControl2_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_ReturnFromSubmenu_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_ReturnFromSubmenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_PlayAtTime_Proxy(IDvdControl2 *This,DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_PlayAtTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_PlayChapter_Proxy(IDvdControl2 *This,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_PlayChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_PlayPrevChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_PlayPrevChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_ReplayChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_ReplayChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_PlayNextChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_PlayNextChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_PlayForwards_Proxy(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_PlayForwards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_PlayBackwards_Proxy(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_PlayBackwards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_ShowMenu_Proxy(IDvdControl2 *This,DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_ShowMenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_Resume_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SelectRelativeButton_Proxy(IDvdControl2 *This,DVD_RELATIVE_BUTTON buttonDir);
-  void __RPC_STUB IDvdControl2_SelectRelativeButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_ActivateButton_Proxy(IDvdControl2 *This);
-  void __RPC_STUB IDvdControl2_ActivateButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SelectButton_Proxy(IDvdControl2 *This,ULONG ulButton);
-  void __RPC_STUB IDvdControl2_SelectButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SelectAndActivateButton_Proxy(IDvdControl2 *This,ULONG ulButton);
-  void __RPC_STUB IDvdControl2_SelectAndActivateButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_StillOff_Proxy(IDvdControl2 *This);
-  void __RPC_STUB IDvdControl2_StillOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_Pause_Proxy(IDvdControl2 *This,WINBOOL bState);
-  void __RPC_STUB IDvdControl2_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SelectAudioStream_Proxy(IDvdControl2 *This,ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_SelectAudioStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SelectSubpictureStream_Proxy(IDvdControl2 *This,ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_SelectSubpictureStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SetSubpictureState_Proxy(IDvdControl2 *This,WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_SetSubpictureState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SelectAngle_Proxy(IDvdControl2 *This,ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_SelectAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SelectParentalLevel_Proxy(IDvdControl2 *This,ULONG ulParentalLevel);
-  void __RPC_STUB IDvdControl2_SelectParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SelectParentalCountry_Proxy(IDvdControl2 *This,BYTE bCountry[2]);
-  void __RPC_STUB IDvdControl2_SelectParentalCountry_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SelectKaraokeAudioPresentationMode_Proxy(IDvdControl2 *This,ULONG ulMode);
-  void __RPC_STUB IDvdControl2_SelectKaraokeAudioPresentationMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SelectVideoModePreference_Proxy(IDvdControl2 *This,ULONG ulPreferredDisplayMode);
-  void __RPC_STUB IDvdControl2_SelectVideoModePreference_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SetDVDDirectory_Proxy(IDvdControl2 *This,LPCWSTR pszwPath);
-  void __RPC_STUB IDvdControl2_SetDVDDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_ActivateAtPosition_Proxy(IDvdControl2 *This,POINT point);
-  void __RPC_STUB IDvdControl2_ActivateAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SelectAtPosition_Proxy(IDvdControl2 *This,POINT point);
-  void __RPC_STUB IDvdControl2_SelectAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_PlayChaptersAutoStop_Proxy(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_PlayChaptersAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_AcceptParentalLevelChange_Proxy(IDvdControl2 *This,WINBOOL bAccept);
-  void __RPC_STUB IDvdControl2_AcceptParentalLevelChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SetOption_Proxy(IDvdControl2 *This,DVD_OPTION_FLAG flag,WINBOOL fState);
-  void __RPC_STUB IDvdControl2_SetOption_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SetState_Proxy(IDvdControl2 *This,IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_SetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_PlayPeriodInTitleAutoStop_Proxy(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_PlayPeriodInTitleAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SetGPRM_Proxy(IDvdControl2 *This,ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd);
-  void __RPC_STUB IDvdControl2_SetGPRM_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SelectDefaultMenuLanguage_Proxy(IDvdControl2 *This,LCID Language);
-  void __RPC_STUB IDvdControl2_SelectDefaultMenuLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SelectDefaultAudioLanguage_Proxy(IDvdControl2 *This,LCID Language,DVD_AUDIO_LANG_EXT audioExtension);
-  void __RPC_STUB IDvdControl2_SelectDefaultAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdControl2_SelectDefaultSubpictureLanguage_Proxy(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
-  void __RPC_STUB IDvdControl2_SelectDefaultSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  enum DVD_TextStringType {
-    DVD_Struct_Volume = 0x1,DVD_Struct_Title = 0x2,DVD_Struct_ParentalID = 0x3,DVD_Struct_PartOfTitle = 0x4,DVD_Struct_Cell = 0x5,
-    DVD_Stream_Audio = 0x10,DVD_Stream_Subpicture = 0x11,DVD_Stream_Angle = 0x12,DVD_Channel_Audio = 0x20,DVD_General_Name = 0x30,
-    DVD_General_Comments = 0x31,DVD_Title_Series = 0x38,DVD_Title_Movie = 0x39,DVD_Title_Video = 0x3a,DVD_Title_Album = 0x3b,DVD_Title_Song = 0x3c,
-    DVD_Title_Other = 0x3f,DVD_Title_Sub_Series = 0x40,DVD_Title_Sub_Movie = 0x41,DVD_Title_Sub_Video = 0x42,DVD_Title_Sub_Album = 0x43,
-    DVD_Title_Sub_Song = 0x44,DVD_Title_Sub_Other = 0x47,DVD_Title_Orig_Series = 0x48,DVD_Title_Orig_Movie = 0x49,DVD_Title_Orig_Video = 0x4a,
-    DVD_Title_Orig_Album = 0x4b,DVD_Title_Orig_Song = 0x4c,DVD_Title_Orig_Other = 0x4f,DVD_Other_Scene = 0x50,DVD_Other_Cut = 0x51,DVD_Other_Take = 0x52
-  };
-
-  enum DVD_TextCharSet {
-    DVD_CharSet_Unicode = 0,DVD_CharSet_ISO646 = 1,DVD_CharSet_JIS_Roman_Kanji = 2,DVD_CharSet_ISO8859_1 = 3,
-    DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
-  };
-#define DVD_TITLE_MENU 0x000
-#define DVD_STREAM_DATA_CURRENT 0x800
-#define DVD_STREAM_DATA_VMGM 0x400
-#define DVD_STREAM_DATA_VTSM 0x401
-#define DVD_DEFAULT_AUDIO_STREAM 0x0f
-
-  typedef struct tagDVD_DECODER_CAPS {
-    DWORD dwSize;
-    DWORD dwAudioCaps;
-    double dFwdMaxRateVideo;
-    double dFwdMaxRateAudio;
-    double dFwdMaxRateSP;
-    double dBwdMaxRateVideo;
-    double dBwdMaxRateAudio;
-    double dBwdMaxRateSP;
-    DWORD dwRes1;
-    DWORD dwRes2;
-    DWORD dwRes3;
-    DWORD dwRes4;
-  } DVD_DECODER_CAPS;
-
-#define DVD_AUDIO_CAPS_AC3 0x00000001
-#define DVD_AUDIO_CAPS_MPEG2 0x00000002
-#define DVD_AUDIO_CAPS_LPCM 0x00000004
-#define DVD_AUDIO_CAPS_DTS 0x00000008
-#define DVD_AUDIO_CAPS_SDDS 0x00000010
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0387_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0387_v0_0_s_ifspec;
-#ifndef __IDvdInfo2_INTERFACE_DEFINED__
-#define __IDvdInfo2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDvdInfo2;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDvdInfo2 : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetCurrentDomain(DVD_DOMAIN *pDomain) = 0;
-    virtual HRESULT WINAPI GetCurrentLocation(DVD_PLAYBACK_LOCATION2 *pLocation) = 0;
-    virtual HRESULT WINAPI GetTotalTitleTime(DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags) = 0;
-    virtual HRESULT WINAPI GetCurrentButton(ULONG *pulButtonsAvailable,ULONG *pulCurrentButton) = 0;
-    virtual HRESULT WINAPI GetCurrentAngle(ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle) = 0;
-    virtual HRESULT WINAPI GetCurrentAudio(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream) = 0;
-    virtual HRESULT WINAPI GetCurrentSubpicture(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled) = 0;
-    virtual HRESULT WINAPI GetCurrentUOPS(ULONG *pulUOPs) = 0;
-    virtual HRESULT WINAPI GetAllSPRMs(SPRMARRAY *pRegisterArray) = 0;
-    virtual HRESULT WINAPI GetAllGPRMs(GPRMARRAY *pRegisterArray) = 0;
-    virtual HRESULT WINAPI GetAudioLanguage(ULONG ulStream,LCID *pLanguage) = 0;
-    virtual HRESULT WINAPI GetSubpictureLanguage(ULONG ulStream,LCID *pLanguage) = 0;
-    virtual HRESULT WINAPI GetTitleAttributes(ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle) = 0;
-    virtual HRESULT WINAPI GetVMGAttributes(DVD_MenuAttributes *pATR) = 0;
-    virtual HRESULT WINAPI GetCurrentVideoAttributes(DVD_VideoAttributes *pATR) = 0;
-    virtual HRESULT WINAPI GetAudioAttributes(ULONG ulStream,DVD_AudioAttributes *pATR) = 0;
-    virtual HRESULT WINAPI GetKaraokeAttributes(ULONG ulStream,DVD_KaraokeAttributes *pAttributes) = 0;
-    virtual HRESULT WINAPI GetSubpictureAttributes(ULONG ulStream,DVD_SubpictureAttributes *pATR) = 0;
-    virtual HRESULT WINAPI GetDVDVolumeInfo(ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles) = 0;
-    virtual HRESULT WINAPI GetDVDTextNumberOfLanguages(ULONG *pulNumOfLangs) = 0;
-    virtual HRESULT WINAPI GetDVDTextLanguageInfo(ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet) = 0;
-    virtual HRESULT WINAPI GetDVDTextStringAsNative(ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType) = 0;
-    virtual HRESULT WINAPI GetDVDTextStringAsUnicode(ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType) = 0;
-    virtual HRESULT WINAPI GetPlayerParentalLevel(ULONG *pulParentalLevel,BYTE pbCountryCode[2]) = 0;
-    virtual HRESULT WINAPI GetNumberOfChapters(ULONG ulTitle,ULONG *pulNumOfChapters) = 0;
-    virtual HRESULT WINAPI GetTitleParentalLevels(ULONG ulTitle,ULONG *pulParentalLevels) = 0;
-    virtual HRESULT WINAPI GetDVDDirectory(LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize) = 0;
-    virtual HRESULT WINAPI IsAudioStreamEnabled(ULONG ulStreamNum,WINBOOL *pbEnabled) = 0;
-    virtual HRESULT WINAPI GetDiscID(LPCWSTR pszwPath,ULONGLONG *pullDiscID) = 0;
-    virtual HRESULT WINAPI GetState(IDvdState **pStateData) = 0;
-    virtual HRESULT WINAPI GetMenuLanguages(LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages) = 0;
-    virtual HRESULT WINAPI GetButtonAtPosition(POINT point,ULONG *pulButtonIndex) = 0;
-    virtual HRESULT WINAPI GetCmdFromEvent(LONG_PTR lParam1,IDvdCmd **pCmdObj) = 0;
-    virtual HRESULT WINAPI GetDefaultMenuLanguage(LCID *pLanguage) = 0;
-    virtual HRESULT WINAPI GetDefaultAudioLanguage(LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension) = 0;
-    virtual HRESULT WINAPI GetDefaultSubpictureLanguage(LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension) = 0;
-    virtual HRESULT WINAPI GetDecoderCaps(DVD_DECODER_CAPS *pCaps) = 0;
-    virtual HRESULT WINAPI GetButtonRect(ULONG ulButton,RECT *pRect) = 0;
-    virtual HRESULT WINAPI IsSubpictureStreamEnabled(ULONG ulStreamNum,WINBOOL *pbEnabled) = 0;
-  };
-#else
-  typedef struct IDvdInfo2Vtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDvdInfo2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDvdInfo2 *This);
-      ULONG (WINAPI *Release)(IDvdInfo2 *This);
-      HRESULT (WINAPI *GetCurrentDomain)(IDvdInfo2 *This,DVD_DOMAIN *pDomain);
-      HRESULT (WINAPI *GetCurrentLocation)(IDvdInfo2 *This,DVD_PLAYBACK_LOCATION2 *pLocation);
-      HRESULT (WINAPI *GetTotalTitleTime)(IDvdInfo2 *This,DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags);
-      HRESULT (WINAPI *GetCurrentButton)(IDvdInfo2 *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
-      HRESULT (WINAPI *GetCurrentAngle)(IDvdInfo2 *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
-      HRESULT (WINAPI *GetCurrentAudio)(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
-      HRESULT (WINAPI *GetCurrentSubpicture)(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled);
-      HRESULT (WINAPI *GetCurrentUOPS)(IDvdInfo2 *This,ULONG *pulUOPs);
-      HRESULT (WINAPI *GetAllSPRMs)(IDvdInfo2 *This,SPRMARRAY *pRegisterArray);
-      HRESULT (WINAPI *GetAllGPRMs)(IDvdInfo2 *This,GPRMARRAY *pRegisterArray);
-      HRESULT (WINAPI *GetAudioLanguage)(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
-      HRESULT (WINAPI *GetSubpictureLanguage)(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
-      HRESULT (WINAPI *GetTitleAttributes)(IDvdInfo2 *This,ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle);
-      HRESULT (WINAPI *GetVMGAttributes)(IDvdInfo2 *This,DVD_MenuAttributes *pATR);
-      HRESULT (WINAPI *GetCurrentVideoAttributes)(IDvdInfo2 *This,DVD_VideoAttributes *pATR);
-      HRESULT (WINAPI *GetAudioAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_AudioAttributes *pATR);
-      HRESULT (WINAPI *GetKaraokeAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_KaraokeAttributes *pAttributes);
-      HRESULT (WINAPI *GetSubpictureAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_SubpictureAttributes *pATR);
-      HRESULT (WINAPI *GetDVDVolumeInfo)(IDvdInfo2 *This,ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
-      HRESULT (WINAPI *GetDVDTextNumberOfLanguages)(IDvdInfo2 *This,ULONG *pulNumOfLangs);
-      HRESULT (WINAPI *GetDVDTextLanguageInfo)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet);
-      HRESULT (WINAPI *GetDVDTextStringAsNative)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
-      HRESULT (WINAPI *GetDVDTextStringAsUnicode)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
-      HRESULT (WINAPI *GetPlayerParentalLevel)(IDvdInfo2 *This,ULONG *pulParentalLevel,BYTE pbCountryCode[2]);
-      HRESULT (WINAPI *GetNumberOfChapters)(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulNumOfChapters);
-      HRESULT (WINAPI *GetTitleParentalLevels)(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulParentalLevels);
-      HRESULT (WINAPI *GetDVDDirectory)(IDvdInfo2 *This,LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize);
-      HRESULT (WINAPI *IsAudioStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
-      HRESULT (WINAPI *GetDiscID)(IDvdInfo2 *This,LPCWSTR pszwPath,ULONGLONG *pullDiscID);
-      HRESULT (WINAPI *GetState)(IDvdInfo2 *This,IDvdState **pStateData);
-      HRESULT (WINAPI *GetMenuLanguages)(IDvdInfo2 *This,LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages);
-      HRESULT (WINAPI *GetButtonAtPosition)(IDvdInfo2 *This,POINT point,ULONG *pulButtonIndex);
-      HRESULT (WINAPI *GetCmdFromEvent)(IDvdInfo2 *This,LONG_PTR lParam1,IDvdCmd **pCmdObj);
-      HRESULT (WINAPI *GetDefaultMenuLanguage)(IDvdInfo2 *This,LCID *pLanguage);
-      HRESULT (WINAPI *GetDefaultAudioLanguage)(IDvdInfo2 *This,LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension);
-      HRESULT (WINAPI *GetDefaultSubpictureLanguage)(IDvdInfo2 *This,LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
-      HRESULT (WINAPI *GetDecoderCaps)(IDvdInfo2 *This,DVD_DECODER_CAPS *pCaps);
-      HRESULT (WINAPI *GetButtonRect)(IDvdInfo2 *This,ULONG ulButton,RECT *pRect);
-      HRESULT (WINAPI *IsSubpictureStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
-    END_INTERFACE
-  } IDvdInfo2Vtbl;
-  struct IDvdInfo2 {
-    CONST_VTBL struct IDvdInfo2Vtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDvdInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDvdInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDvdInfo2_Release(This) (This)->lpVtbl->Release(This)
-#define IDvdInfo2_GetCurrentDomain(This,pDomain) (This)->lpVtbl->GetCurrentDomain(This,pDomain)
-#define IDvdInfo2_GetCurrentLocation(This,pLocation) (This)->lpVtbl->GetCurrentLocation(This,pLocation)
-#define IDvdInfo2_GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags) (This)->lpVtbl->GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags)
-#define IDvdInfo2_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton) (This)->lpVtbl->GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
-#define IDvdInfo2_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle) (This)->lpVtbl->GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
-#define IDvdInfo2_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream) (This)->lpVtbl->GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
-#define IDvdInfo2_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled) (This)->lpVtbl->GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled)
-#define IDvdInfo2_GetCurrentUOPS(This,pulUOPs) (This)->lpVtbl->GetCurrentUOPS(This,pulUOPs)
-#define IDvdInfo2_GetAllSPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllSPRMs(This,pRegisterArray)
-#define IDvdInfo2_GetAllGPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllGPRMs(This,pRegisterArray)
-#define IDvdInfo2_GetAudioLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetAudioLanguage(This,ulStream,pLanguage)
-#define IDvdInfo2_GetSubpictureLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetSubpictureLanguage(This,ulStream,pLanguage)
-#define IDvdInfo2_GetTitleAttributes(This,ulTitle,pMenu,pTitle) (This)->lpVtbl->GetTitleAttributes(This,ulTitle,pMenu,pTitle)
-#define IDvdInfo2_GetVMGAttributes(This,pATR) (This)->lpVtbl->GetVMGAttributes(This,pATR)
-#define IDvdInfo2_GetCurrentVideoAttributes(This,pATR) (This)->lpVtbl->GetCurrentVideoAttributes(This,pATR)
-#define IDvdInfo2_GetAudioAttributes(This,ulStream,pATR) (This)->lpVtbl->GetAudioAttributes(This,ulStream,pATR)
-#define IDvdInfo2_GetKaraokeAttributes(This,ulStream,pAttributes) (This)->lpVtbl->GetKaraokeAttributes(This,ulStream,pAttributes)
-#define IDvdInfo2_GetSubpictureAttributes(This,ulStream,pATR) (This)->lpVtbl->GetSubpictureAttributes(This,ulStream,pATR)
-#define IDvdInfo2_GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles) (This)->lpVtbl->GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles)
-#define IDvdInfo2_GetDVDTextNumberOfLanguages(This,pulNumOfLangs) (This)->lpVtbl->GetDVDTextNumberOfLanguages(This,pulNumOfLangs)
-#define IDvdInfo2_GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet) (This)->lpVtbl->GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet)
-#define IDvdInfo2_GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType) (This)->lpVtbl->GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType)
-#define IDvdInfo2_GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType) (This)->lpVtbl->GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType)
-#define IDvdInfo2_GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode) (This)->lpVtbl->GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode)
-#define IDvdInfo2_GetNumberOfChapters(This,ulTitle,pulNumOfChapters) (This)->lpVtbl->GetNumberOfChapters(This,ulTitle,pulNumOfChapters)
-#define IDvdInfo2_GetTitleParentalLevels(This,ulTitle,pulParentalLevels) (This)->lpVtbl->GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
-#define IDvdInfo2_GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize) (This)->lpVtbl->GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize)
-#define IDvdInfo2_IsAudioStreamEnabled(This,ulStreamNum,pbEnabled) (This)->lpVtbl->IsAudioStreamEnabled(This,ulStreamNum,pbEnabled)
-#define IDvdInfo2_GetDiscID(This,pszwPath,pullDiscID) (This)->lpVtbl->GetDiscID(This,pszwPath,pullDiscID)
-#define IDvdInfo2_GetState(This,pStateData) (This)->lpVtbl->GetState(This,pStateData)
-#define IDvdInfo2_GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages) (This)->lpVtbl->GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages)
-#define IDvdInfo2_GetButtonAtPosition(This,point,pulButtonIndex) (This)->lpVtbl->GetButtonAtPosition(This,point,pulButtonIndex)
-#define IDvdInfo2_GetCmdFromEvent(This,lParam1,pCmdObj) (This)->lpVtbl->GetCmdFromEvent(This,lParam1,pCmdObj)
-#define IDvdInfo2_GetDefaultMenuLanguage(This,pLanguage) (This)->lpVtbl->GetDefaultMenuLanguage(This,pLanguage)
-#define IDvdInfo2_GetDefaultAudioLanguage(This,pLanguage,pAudioExtension) (This)->lpVtbl->GetDefaultAudioLanguage(This,pLanguage,pAudioExtension)
-#define IDvdInfo2_GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension) (This)->lpVtbl->GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension)
-#define IDvdInfo2_GetDecoderCaps(This,pCaps) (This)->lpVtbl->GetDecoderCaps(This,pCaps)
-#define IDvdInfo2_GetButtonRect(This,ulButton,pRect) (This)->lpVtbl->GetButtonRect(This,ulButton,pRect)
-#define IDvdInfo2_IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled) (This)->lpVtbl->IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled)
-#endif
-#endif
-  HRESULT WINAPI IDvdInfo2_GetCurrentDomain_Proxy(IDvdInfo2 *This,DVD_DOMAIN *pDomain);
-  void __RPC_STUB IDvdInfo2_GetCurrentDomain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetCurrentLocation_Proxy(IDvdInfo2 *This,DVD_PLAYBACK_LOCATION2 *pLocation);
-  void __RPC_STUB IDvdInfo2_GetCurrentLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetTotalTitleTime_Proxy(IDvdInfo2 *This,DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags);
-  void __RPC_STUB IDvdInfo2_GetTotalTitleTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetCurrentButton_Proxy(IDvdInfo2 *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
-  void __RPC_STUB IDvdInfo2_GetCurrentButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetCurrentAngle_Proxy(IDvdInfo2 *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
-  void __RPC_STUB IDvdInfo2_GetCurrentAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetCurrentAudio_Proxy(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
-  void __RPC_STUB IDvdInfo2_GetCurrentAudio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetCurrentSubpicture_Proxy(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled);
-  void __RPC_STUB IDvdInfo2_GetCurrentSubpicture_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetCurrentUOPS_Proxy(IDvdInfo2 *This,ULONG *pulUOPs);
-  void __RPC_STUB IDvdInfo2_GetCurrentUOPS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetAllSPRMs_Proxy(IDvdInfo2 *This,SPRMARRAY *pRegisterArray);
-  void __RPC_STUB IDvdInfo2_GetAllSPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetAllGPRMs_Proxy(IDvdInfo2 *This,GPRMARRAY *pRegisterArray);
-  void __RPC_STUB IDvdInfo2_GetAllGPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetAudioLanguage_Proxy(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
-  void __RPC_STUB IDvdInfo2_GetAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetSubpictureLanguage_Proxy(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
-  void __RPC_STUB IDvdInfo2_GetSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetTitleAttributes_Proxy(IDvdInfo2 *This,ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle);
-  void __RPC_STUB IDvdInfo2_GetTitleAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetVMGAttributes_Proxy(IDvdInfo2 *This,DVD_MenuAttributes *pATR);
-  void __RPC_STUB IDvdInfo2_GetVMGAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetCurrentVideoAttributes_Proxy(IDvdInfo2 *This,DVD_VideoAttributes *pATR);
-  void __RPC_STUB IDvdInfo2_GetCurrentVideoAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetAudioAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_AudioAttributes *pATR);
-  void __RPC_STUB IDvdInfo2_GetAudioAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetKaraokeAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_KaraokeAttributes *pAttributes);
-  void __RPC_STUB IDvdInfo2_GetKaraokeAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetSubpictureAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_SubpictureAttributes *pATR);
-  void __RPC_STUB IDvdInfo2_GetSubpictureAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetDVDVolumeInfo_Proxy(IDvdInfo2 *This,ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
-  void __RPC_STUB IDvdInfo2_GetDVDVolumeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetDVDTextNumberOfLanguages_Proxy(IDvdInfo2 *This,ULONG *pulNumOfLangs);
-  void __RPC_STUB IDvdInfo2_GetDVDTextNumberOfLanguages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetDVDTextLanguageInfo_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet);
-  void __RPC_STUB IDvdInfo2_GetDVDTextLanguageInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetDVDTextStringAsNative_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
-  void __RPC_STUB IDvdInfo2_GetDVDTextStringAsNative_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetDVDTextStringAsUnicode_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
-  void __RPC_STUB IDvdInfo2_GetDVDTextStringAsUnicode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetPlayerParentalLevel_Proxy(IDvdInfo2 *This,ULONG *pulParentalLevel,BYTE pbCountryCode[2]);
-  void __RPC_STUB IDvdInfo2_GetPlayerParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetNumberOfChapters_Proxy(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulNumOfChapters);
-  void __RPC_STUB IDvdInfo2_GetNumberOfChapters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetTitleParentalLevels_Proxy(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulParentalLevels);
-  void __RPC_STUB IDvdInfo2_GetTitleParentalLevels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetDVDDirectory_Proxy(IDvdInfo2 *This,LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize);
-  void __RPC_STUB IDvdInfo2_GetDVDDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_IsAudioStreamEnabled_Proxy(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
-  void __RPC_STUB IDvdInfo2_IsAudioStreamEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetDiscID_Proxy(IDvdInfo2 *This,LPCWSTR pszwPath,ULONGLONG *pullDiscID);
-  void __RPC_STUB IDvdInfo2_GetDiscID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetState_Proxy(IDvdInfo2 *This,IDvdState **pStateData);
-  void __RPC_STUB IDvdInfo2_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetMenuLanguages_Proxy(IDvdInfo2 *This,LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages);
-  void __RPC_STUB IDvdInfo2_GetMenuLanguages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetButtonAtPosition_Proxy(IDvdInfo2 *This,POINT point,ULONG *pulButtonIndex);
-  void __RPC_STUB IDvdInfo2_GetButtonAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetCmdFromEvent_Proxy(IDvdInfo2 *This,LONG_PTR lParam1,IDvdCmd **pCmdObj);
-  void __RPC_STUB IDvdInfo2_GetCmdFromEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetDefaultMenuLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage);
-  void __RPC_STUB IDvdInfo2_GetDefaultMenuLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetDefaultAudioLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension);
-  void __RPC_STUB IDvdInfo2_GetDefaultAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetDefaultSubpictureLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
-  void __RPC_STUB IDvdInfo2_GetDefaultSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetDecoderCaps_Proxy(IDvdInfo2 *This,DVD_DECODER_CAPS *pCaps);
-  void __RPC_STUB IDvdInfo2_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_GetButtonRect_Proxy(IDvdInfo2 *This,ULONG ulButton,RECT *pRect);
-  void __RPC_STUB IDvdInfo2_GetButtonRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdInfo2_IsSubpictureStreamEnabled_Proxy(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
-  void __RPC_STUB IDvdInfo2_IsSubpictureStreamEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum _AM_DVD_GRAPH_FLAGS {
-    AM_DVD_HWDEC_PREFER = 0x1,AM_DVD_HWDEC_ONLY = 0x2,AM_DVD_SWDEC_PREFER = 0x4,AM_DVD_SWDEC_ONLY = 0x8,AM_DVD_NOVPE = 0x100,
-    AM_DVD_VMR9_ONLY = 0x800
-  } AM_DVD_GRAPH_FLAGS;
-
-  typedef enum _AM_DVD_STREAM_FLAGS {
-    AM_DVD_STREAM_VIDEO = 0x1,AM_DVD_STREAM_AUDIO = 0x2,AM_DVD_STREAM_SUBPIC = 0x4
-  } AM_DVD_STREAM_FLAGS;
-
-  typedef struct __MIDL___MIDL_itf_strmif_0389_0001 {
-    HRESULT hrVPEStatus;
-    WINBOOL bDvdVolInvalid;
-    WINBOOL bDvdVolUnknown;
-    WINBOOL bNoLine21In;
-    WINBOOL bNoLine21Out;
-    int iNumStreams;
-    int iNumStreamsFailed;
-    DWORD dwFailedStreamsFlag;
-  } AM_DVD_RENDERSTATUS;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0389_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0389_v0_0_s_ifspec;
-#ifndef __IDvdGraphBuilder_INTERFACE_DEFINED__
-#define __IDvdGraphBuilder_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDvdGraphBuilder;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDvdGraphBuilder : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetFiltergraph(IGraphBuilder **ppGB) = 0;
-    virtual HRESULT WINAPI GetDvdInterface(REFIID riid,void **ppvIF) = 0;
-    virtual HRESULT WINAPI RenderDvdVideoVolume(LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus) = 0;
-  };
-#else
-  typedef struct IDvdGraphBuilderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDvdGraphBuilder *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDvdGraphBuilder *This);
-      ULONG (WINAPI *Release)(IDvdGraphBuilder *This);
-      HRESULT (WINAPI *GetFiltergraph)(IDvdGraphBuilder *This,IGraphBuilder **ppGB);
-      HRESULT (WINAPI *GetDvdInterface)(IDvdGraphBuilder *This,REFIID riid,void **ppvIF);
-      HRESULT (WINAPI *RenderDvdVideoVolume)(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
-    END_INTERFACE
-  } IDvdGraphBuilderVtbl;
-  struct IDvdGraphBuilder {
-    CONST_VTBL struct IDvdGraphBuilderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDvdGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDvdGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDvdGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
-#define IDvdGraphBuilder_GetFiltergraph(This,ppGB) (This)->lpVtbl->GetFiltergraph(This,ppGB)
-#define IDvdGraphBuilder_GetDvdInterface(This,riid,ppvIF) (This)->lpVtbl->GetDvdInterface(This,riid,ppvIF)
-#define IDvdGraphBuilder_RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus) (This)->lpVtbl->RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus)
-#endif
-#endif
-  HRESULT WINAPI IDvdGraphBuilder_GetFiltergraph_Proxy(IDvdGraphBuilder *This,IGraphBuilder **ppGB);
-  void __RPC_STUB IDvdGraphBuilder_GetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdGraphBuilder_GetDvdInterface_Proxy(IDvdGraphBuilder *This,REFIID riid,void **ppvIF);
-  void __RPC_STUB IDvdGraphBuilder_GetDvdInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDvdGraphBuilder_RenderDvdVideoVolume_Proxy(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
-  void __RPC_STUB IDvdGraphBuilder_RenderDvdVideoVolume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IDDrawExclModeVideo_INTERFACE_DEFINED__
-#define __IDDrawExclModeVideo_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDDrawExclModeVideo;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDDrawExclModeVideo : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetDDrawObject(IDirectDraw *pDDrawObject) = 0;
-    virtual HRESULT WINAPI GetDDrawObject(IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal) = 0;
-    virtual HRESULT WINAPI SetDDrawSurface(IDirectDrawSurface *pDDrawSurface) = 0;
-    virtual HRESULT WINAPI GetDDrawSurface(IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal) = 0;
-    virtual HRESULT WINAPI SetDrawParameters(const RECT *prcSource,const RECT *prcTarget) = 0;
-    virtual HRESULT WINAPI GetNativeVideoProps(DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY) = 0;
-    virtual HRESULT WINAPI SetCallbackInterface(IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags) = 0;
-  };
-#else
-  typedef struct IDDrawExclModeVideoVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDDrawExclModeVideo *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDDrawExclModeVideo *This);
-      ULONG (WINAPI *Release)(IDDrawExclModeVideo *This);
-      HRESULT (WINAPI *SetDDrawObject)(IDDrawExclModeVideo *This,IDirectDraw *pDDrawObject);
-      HRESULT (WINAPI *GetDDrawObject)(IDDrawExclModeVideo *This,IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal);
-      HRESULT (WINAPI *SetDDrawSurface)(IDDrawExclModeVideo *This,IDirectDrawSurface *pDDrawSurface);
-      HRESULT (WINAPI *GetDDrawSurface)(IDDrawExclModeVideo *This,IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal);
-      HRESULT (WINAPI *SetDrawParameters)(IDDrawExclModeVideo *This,const RECT *prcSource,const RECT *prcTarget);
-      HRESULT (WINAPI *GetNativeVideoProps)(IDDrawExclModeVideo *This,DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY);
-      HRESULT (WINAPI *SetCallbackInterface)(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
-    END_INTERFACE
-  } IDDrawExclModeVideoVtbl;
-  struct IDDrawExclModeVideo {
-    CONST_VTBL struct IDDrawExclModeVideoVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDDrawExclModeVideo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDDrawExclModeVideo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDDrawExclModeVideo_Release(This) (This)->lpVtbl->Release(This)
-#define IDDrawExclModeVideo_SetDDrawObject(This,pDDrawObject) (This)->lpVtbl->SetDDrawObject(This,pDDrawObject)
-#define IDDrawExclModeVideo_GetDDrawObject(This,ppDDrawObject,pbUsingExternal) (This)->lpVtbl->GetDDrawObject(This,ppDDrawObject,pbUsingExternal)
-#define IDDrawExclModeVideo_SetDDrawSurface(This,pDDrawSurface) (This)->lpVtbl->SetDDrawSurface(This,pDDrawSurface)
-#define IDDrawExclModeVideo_GetDDrawSurface(This,ppDDrawSurface,pbUsingExternal) (This)->lpVtbl->GetDDrawSurface(This,ppDDrawSurface,pbUsingExternal)
-#define IDDrawExclModeVideo_SetDrawParameters(This,prcSource,prcTarget) (This)->lpVtbl->SetDrawParameters(This,prcSource,prcTarget)
-#define IDDrawExclModeVideo_GetNativeVideoProps(This,pdwVideoWidth,pdwVideoHeight,pdwPictAspectRatioX,pdwPictAspectRatioY) (This)->lpVtbl->GetNativeVideoProps(This,pdwVideoWidth,pdwVideoHeight,pdwPictAspectRatioX,pdwPictAspectRatioY)
-#define IDDrawExclModeVideo_SetCallbackInterface(This,pCallback,dwFlags) (This)->lpVtbl->SetCallbackInterface(This,pCallback,dwFlags)
-#endif
-#endif
-  HRESULT WINAPI IDDrawExclModeVideo_SetDDrawObject_Proxy(IDDrawExclModeVideo *This,IDirectDraw *pDDrawObject);
-  void __RPC_STUB IDDrawExclModeVideo_SetDDrawObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDDrawExclModeVideo_GetDDrawObject_Proxy(IDDrawExclModeVideo *This,IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal);
-  void __RPC_STUB IDDrawExclModeVideo_GetDDrawObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDDrawExclModeVideo_SetDDrawSurface_Proxy(IDDrawExclModeVideo *This,IDirectDrawSurface *pDDrawSurface);
-  void __RPC_STUB IDDrawExclModeVideo_SetDDrawSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDDrawExclModeVideo_GetDDrawSurface_Proxy(IDDrawExclModeVideo *This,IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal);
-  void __RPC_STUB IDDrawExclModeVideo_GetDDrawSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDDrawExclModeVideo_SetDrawParameters_Proxy(IDDrawExclModeVideo *This,const RECT *prcSource,const RECT *prcTarget);
-  void __RPC_STUB IDDrawExclModeVideo_SetDrawParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDDrawExclModeVideo_GetNativeVideoProps_Proxy(IDDrawExclModeVideo *This,DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY);
-  void __RPC_STUB IDDrawExclModeVideo_GetNativeVideoProps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDDrawExclModeVideo_SetCallbackInterface_Proxy(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
-  void __RPC_STUB IDDrawExclModeVideo_SetCallbackInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  enum _AM_OVERLAY_NOTIFY_FLAGS {
-    AM_OVERLAY_NOTIFY_VISIBLE_CHANGE = 0x1,AM_OVERLAY_NOTIFY_SOURCE_CHANGE = 0x2,AM_OVERLAY_NOTIFY_DEST_CHANGE = 0x4
-  };
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0391_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0391_v0_0_s_ifspec;
-#ifndef __IDDrawExclModeVideoCallback_INTERFACE_DEFINED__
-#define __IDDrawExclModeVideoCallback_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDDrawExclModeVideoCallback;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDDrawExclModeVideoCallback : public IUnknown {
-  public:
-    virtual HRESULT WINAPI OnUpdateOverlay(WINBOOL bBefore,DWORD dwFlags,WINBOOL bOldVisible,const RECT *prcOldSrc,const RECT *prcOldDest,WINBOOL bNewVisible,const RECT *prcNewSrc,const RECT *prcNewDest) = 0;
-    virtual HRESULT WINAPI OnUpdateColorKey(const COLORKEY *pKey,DWORD dwColor) = 0;
-    virtual HRESULT WINAPI OnUpdateSize(DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight) = 0;
-  };
-#else
-  typedef struct IDDrawExclModeVideoCallbackVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDDrawExclModeVideoCallback *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDDrawExclModeVideoCallback *This);
-      ULONG (WINAPI *Release)(IDDrawExclModeVideoCallback *This);
-      HRESULT (WINAPI *OnUpdateOverlay)(IDDrawExclModeVideoCallback *This,WINBOOL bBefore,DWORD dwFlags,WINBOOL bOldVisible,const RECT *prcOldSrc,const RECT *prcOldDest,WINBOOL bNewVisible,const RECT *prcNewSrc,const RECT *prcNewDest);
-      HRESULT (WINAPI *OnUpdateColorKey)(IDDrawExclModeVideoCallback *This,const COLORKEY *pKey,DWORD dwColor);
-      HRESULT (WINAPI *OnUpdateSize)(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
-    END_INTERFACE
-  } IDDrawExclModeVideoCallbackVtbl;
-  struct IDDrawExclModeVideoCallback {
-    CONST_VTBL struct IDDrawExclModeVideoCallbackVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IDDrawExclModeVideoCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IDDrawExclModeVideoCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IDDrawExclModeVideoCallback_Release(This) (This)->lpVtbl->Release(This)
-#define IDDrawExclModeVideoCallback_OnUpdateOverlay(This,bBefore,dwFlags,bOldVisible,prcOldSrc,prcOldDest,bNewVisible,prcNewSrc,prcNewDest) (This)->lpVtbl->OnUpdateOverlay(This,bBefore,dwFlags,bOldVisible,prcOldSrc,prcOldDest,bNewVisible,prcNewSrc,prcNewDest)
-#define IDDrawExclModeVideoCallback_OnUpdateColorKey(This,pKey,dwColor) (This)->lpVtbl->OnUpdateColorKey(This,pKey,dwColor)
-#define IDDrawExclModeVideoCallback_OnUpdateSize(This,dwWidth,dwHeight,dwARWidth,dwARHeight) (This)->lpVtbl->OnUpdateSize(This,dwWidth,dwHeight,dwARWidth,dwARHeight)
-#endif
-#endif
-  HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateOverlay_Proxy(IDDrawExclModeVideoCallback *This,WINBOOL bBefore,DWORD dwFlags,WINBOOL bOldVisible,const RECT *prcOldSrc,const RECT *prcOldDest,WINBOOL bNewVisible,const RECT *prcNewSrc,const RECT *prcNewDest);
-  void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateOverlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateColorKey_Proxy(IDDrawExclModeVideoCallback *This,const COLORKEY *pKey,DWORD dwColor);
-  void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateSize_Proxy(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
-  void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0392_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0392_v0_0_s_ifspec;
-#ifndef __IPinConnection_INTERFACE_DEFINED__
-#define __IPinConnection_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IPinConnection;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IPinConnection : public IUnknown {
-  public:
-    virtual HRESULT WINAPI DynamicQueryAccept(const AM_MEDIA_TYPE *pmt) = 0;
-    virtual HRESULT WINAPI NotifyEndOfStream(HANDLE hNotifyEvent) = 0;
-    virtual HRESULT WINAPI IsEndPin(void) = 0;
-    virtual HRESULT WINAPI DynamicDisconnect(void) = 0;
-  };
-#else
-  typedef struct IPinConnectionVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IPinConnection *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IPinConnection *This);
-      ULONG (WINAPI *Release)(IPinConnection *This);
-      HRESULT (WINAPI *DynamicQueryAccept)(IPinConnection *This,const AM_MEDIA_TYPE *pmt);
-      HRESULT (WINAPI *NotifyEndOfStream)(IPinConnection *This,HANDLE hNotifyEvent);
-      HRESULT (WINAPI *IsEndPin)(IPinConnection *This);
-      HRESULT (WINAPI *DynamicDisconnect)(IPinConnection *This);
-    END_INTERFACE
-  } IPinConnectionVtbl;
-  struct IPinConnection {
-    CONST_VTBL struct IPinConnectionVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IPinConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IPinConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IPinConnection_Release(This) (This)->lpVtbl->Release(This)
-#define IPinConnection_DynamicQueryAccept(This,pmt) (This)->lpVtbl->DynamicQueryAccept(This,pmt)
-#define IPinConnection_NotifyEndOfStream(This,hNotifyEvent) (This)->lpVtbl->NotifyEndOfStream(This,hNotifyEvent)
-#define IPinConnection_IsEndPin(This) (This)->lpVtbl->IsEndPin(This)
-#define IPinConnection_DynamicDisconnect(This) (This)->lpVtbl->DynamicDisconnect(This)
-#endif
-#endif
-  HRESULT WINAPI IPinConnection_DynamicQueryAccept_Proxy(IPinConnection *This,const AM_MEDIA_TYPE *pmt);
-  void __RPC_STUB IPinConnection_DynamicQueryAccept_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinConnection_NotifyEndOfStream_Proxy(IPinConnection *This,HANDLE hNotifyEvent);
-  void __RPC_STUB IPinConnection_NotifyEndOfStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinConnection_IsEndPin_Proxy(IPinConnection *This);
-  void __RPC_STUB IPinConnection_IsEndPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IPinConnection_DynamicDisconnect_Proxy(IPinConnection *This);
-  void __RPC_STUB IPinConnection_DynamicDisconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IPinFlowControl_INTERFACE_DEFINED__
-#define __IPinFlowControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IPinFlowControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IPinFlowControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Block(DWORD dwBlockFlags,HANDLE hEvent) = 0;
-  };
-#else
-  typedef struct IPinFlowControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IPinFlowControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IPinFlowControl *This);
-      ULONG (WINAPI *Release)(IPinFlowControl *This);
-      HRESULT (WINAPI *Block)(IPinFlowControl *This,DWORD dwBlockFlags,HANDLE hEvent);
-    END_INTERFACE
-  } IPinFlowControlVtbl;
-  struct IPinFlowControl {
-    CONST_VTBL struct IPinFlowControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IPinFlowControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IPinFlowControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IPinFlowControl_Release(This) (This)->lpVtbl->Release(This)
-#define IPinFlowControl_Block(This,dwBlockFlags,hEvent) (This)->lpVtbl->Block(This,dwBlockFlags,hEvent)
-#endif
-#endif
-  HRESULT WINAPI IPinFlowControl_Block_Proxy(IPinFlowControl *This,DWORD dwBlockFlags,HANDLE hEvent);
-  void __RPC_STUB IPinFlowControl_Block_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS {
-    AM_PIN_FLOW_CONTROL_BLOCK = 0x1
-  };
-  typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS {
-    AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x1,AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x2,
-    AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x4
-  } AM_GRAPH_CONFIG_RECONNECT_FLAGS;
-
-  enum _REM_FILTER_FLAGS {
-    REMFILTERF_LEAVECONNECTED = 0x1
-  };
-
-  typedef enum _AM_FILTER_FLAGS {
-    AM_FILTER_FLAGS_REMOVABLE = 0x1
-  } AM_FILTER_FLAGS;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0394_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0394_v0_0_s_ifspec;
-#ifndef __IGraphConfig_INTERFACE_DEFINED__
-#define __IGraphConfig_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IGraphConfig;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IGraphConfig : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Reconnect(IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags) = 0;
-    virtual HRESULT WINAPI Reconfigure(IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent) = 0;
-    virtual HRESULT WINAPI AddFilterToCache(IBaseFilter *pFilter) = 0;
-    virtual HRESULT WINAPI EnumCacheFilter(IEnumFilters **pEnum) = 0;
-    virtual HRESULT WINAPI RemoveFilterFromCache(IBaseFilter *pFilter) = 0;
-    virtual HRESULT WINAPI GetStartTime(REFERENCE_TIME *prtStart) = 0;
-    virtual HRESULT WINAPI PushThroughData(IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort) = 0;
-    virtual HRESULT WINAPI SetFilterFlags(IBaseFilter *pFilter,DWORD dwFlags) = 0;
-    virtual HRESULT WINAPI GetFilterFlags(IBaseFilter *pFilter,DWORD *pdwFlags) = 0;
-    virtual HRESULT WINAPI RemoveFilterEx(IBaseFilter *pFilter,DWORD Flags) = 0;
-  };
-#else
-  typedef struct IGraphConfigVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IGraphConfig *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IGraphConfig *This);
-      ULONG (WINAPI *Release)(IGraphConfig *This);
-      HRESULT (WINAPI *Reconnect)(IGraphConfig *This,IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags);
-      HRESULT (WINAPI *Reconfigure)(IGraphConfig *This,IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent);
-      HRESULT (WINAPI *AddFilterToCache)(IGraphConfig *This,IBaseFilter *pFilter);
-      HRESULT (WINAPI *EnumCacheFilter)(IGraphConfig *This,IEnumFilters **pEnum);
-      HRESULT (WINAPI *RemoveFilterFromCache)(IGraphConfig *This,IBaseFilter *pFilter);
-      HRESULT (WINAPI *GetStartTime)(IGraphConfig *This,REFERENCE_TIME *prtStart);
-      HRESULT (WINAPI *PushThroughData)(IGraphConfig *This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort);
-      HRESULT (WINAPI *SetFilterFlags)(IGraphConfig *This,IBaseFilter *pFilter,DWORD dwFlags);
-      HRESULT (WINAPI *GetFilterFlags)(IGraphConfig *This,IBaseFilter *pFilter,DWORD *pdwFlags);
-      HRESULT (WINAPI *RemoveFilterEx)(IGraphConfig *This,IBaseFilter *pFilter,DWORD Flags);
-    END_INTERFACE
-  } IGraphConfigVtbl;
-  struct IGraphConfig {
-    CONST_VTBL struct IGraphConfigVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IGraphConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IGraphConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IGraphConfig_Release(This) (This)->lpVtbl->Release(This)
-#define IGraphConfig_Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags) (This)->lpVtbl->Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags)
-#define IGraphConfig_Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent) (This)->lpVtbl->Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent)
-#define IGraphConfig_AddFilterToCache(This,pFilter) (This)->lpVtbl->AddFilterToCache(This,pFilter)
-#define IGraphConfig_EnumCacheFilter(This,pEnum) (This)->lpVtbl->EnumCacheFilter(This,pEnum)
-#define IGraphConfig_RemoveFilterFromCache(This,pFilter) (This)->lpVtbl->RemoveFilterFromCache(This,pFilter)
-#define IGraphConfig_GetStartTime(This,prtStart) (This)->lpVtbl->GetStartTime(This,prtStart)
-#define IGraphConfig_PushThroughData(This,pOutputPin,pConnection,hEventAbort) (This)->lpVtbl->PushThroughData(This,pOutputPin,pConnection,hEventAbort)
-#define IGraphConfig_SetFilterFlags(This,pFilter,dwFlags) (This)->lpVtbl->SetFilterFlags(This,pFilter,dwFlags)
-#define IGraphConfig_GetFilterFlags(This,pFilter,pdwFlags) (This)->lpVtbl->GetFilterFlags(This,pFilter,pdwFlags)
-#define IGraphConfig_RemoveFilterEx(This,pFilter,Flags) (This)->lpVtbl->RemoveFilterEx(This,pFilter,Flags)
-#endif
-#endif
-  HRESULT WINAPI IGraphConfig_Reconnect_Proxy(IGraphConfig *This,IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags);
-  void __RPC_STUB IGraphConfig_Reconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphConfig_Reconfigure_Proxy(IGraphConfig *This,IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent);
-  void __RPC_STUB IGraphConfig_Reconfigure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphConfig_AddFilterToCache_Proxy(IGraphConfig *This,IBaseFilter *pFilter);
-  void __RPC_STUB IGraphConfig_AddFilterToCache_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphConfig_EnumCacheFilter_Proxy(IGraphConfig *This,IEnumFilters **pEnum);
-  void __RPC_STUB IGraphConfig_EnumCacheFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphConfig_RemoveFilterFromCache_Proxy(IGraphConfig *This,IBaseFilter *pFilter);
-  void __RPC_STUB IGraphConfig_RemoveFilterFromCache_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphConfig_GetStartTime_Proxy(IGraphConfig *This,REFERENCE_TIME *prtStart);
-  void __RPC_STUB IGraphConfig_GetStartTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphConfig_PushThroughData_Proxy(IGraphConfig *This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort);
-  void __RPC_STUB IGraphConfig_PushThroughData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphConfig_SetFilterFlags_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD dwFlags);
-  void __RPC_STUB IGraphConfig_SetFilterFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphConfig_GetFilterFlags_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD *pdwFlags);
-  void __RPC_STUB IGraphConfig_GetFilterFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IGraphConfig_RemoveFilterEx_Proxy(IGraphConfig *This,IBaseFilter *pFilter,DWORD Flags);
-  void __RPC_STUB IGraphConfig_RemoveFilterEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IGraphConfigCallback_INTERFACE_DEFINED__
-#define __IGraphConfigCallback_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IGraphConfigCallback;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IGraphConfigCallback : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Reconfigure(PVOID pvContext,DWORD dwFlags) = 0;
-  };
-#else
-  typedef struct IGraphConfigCallbackVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IGraphConfigCallback *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IGraphConfigCallback *This);
-      ULONG (WINAPI *Release)(IGraphConfigCallback *This);
-      HRESULT (WINAPI *Reconfigure)(IGraphConfigCallback *This,PVOID pvContext,DWORD dwFlags);
-    END_INTERFACE
-  } IGraphConfigCallbackVtbl;
-  struct IGraphConfigCallback {
-    CONST_VTBL struct IGraphConfigCallbackVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IGraphConfigCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IGraphConfigCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IGraphConfigCallback_Release(This) (This)->lpVtbl->Release(This)
-#define IGraphConfigCallback_Reconfigure(This,pvContext,dwFlags) (This)->lpVtbl->Reconfigure(This,pvContext,dwFlags)
-#endif
-#endif
-  HRESULT WINAPI IGraphConfigCallback_Reconfigure_Proxy(IGraphConfigCallback *This,PVOID pvContext,DWORD dwFlags);
-  void __RPC_STUB IGraphConfigCallback_Reconfigure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IFilterChain_INTERFACE_DEFINED__
-#define __IFilterChain_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IFilterChain;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IFilterChain : public IUnknown {
-  public:
-    virtual HRESULT WINAPI StartChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
-    virtual HRESULT WINAPI PauseChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
-    virtual HRESULT WINAPI StopChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
-    virtual HRESULT WINAPI RemoveChain(IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) = 0;
-  };
-#else
-  typedef struct IFilterChainVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IFilterChain *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IFilterChain *This);
-      ULONG (WINAPI *Release)(IFilterChain *This);
-      HRESULT (WINAPI *StartChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
-      HRESULT (WINAPI *PauseChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
-      HRESULT (WINAPI *StopChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
-      HRESULT (WINAPI *RemoveChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
-    END_INTERFACE
-  } IFilterChainVtbl;
-  struct IFilterChain {
-    CONST_VTBL struct IFilterChainVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IFilterChain_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFilterChain_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFilterChain_Release(This) (This)->lpVtbl->Release(This)
-#define IFilterChain_StartChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StartChain(This,pStartFilter,pEndFilter)
-#define IFilterChain_PauseChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->PauseChain(This,pStartFilter,pEndFilter)
-#define IFilterChain_StopChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StopChain(This,pStartFilter,pEndFilter)
-#define IFilterChain_RemoveChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->RemoveChain(This,pStartFilter,pEndFilter)
-#endif
-#endif
-  HRESULT WINAPI IFilterChain_StartChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
-  void __RPC_STUB IFilterChain_StartChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterChain_PauseChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
-  void __RPC_STUB IFilterChain_PauseChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterChain_StopChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
-  void __RPC_STUB IFilterChain_StopChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFilterChain_RemoveChain_Proxy(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
-  void __RPC_STUB IFilterChain_RemoveChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifdef MINGW_HAS_DDRAW_H
-#include <dshow/ddraw.h>
-#endif
-
-  typedef enum __MIDL___MIDL_itf_strmif_0397_0002 {
-    VMRSample_SyncPoint = 0x1,VMRSample_Preroll = 0x2,VMRSample_Discontinuity = 0x4,VMRSample_TimeValid = 0x8,VMRSample_SrcDstRectsValid = 0x10
-  } VMRPresentationFlags;
-
-  typedef struct tagVMRPRESENTATIONINFO {
-    DWORD dwFlags;
-    LPDIRECTDRAWSURFACE7 lpSurf;
-    REFERENCE_TIME rtStart;
-    REFERENCE_TIME rtEnd;
-    SIZE szAspectRatio;
-    RECT rcSrc;
-    RECT rcDst;
-    DWORD dwTypeSpecificFlags;
-    DWORD dwInterlaceFlags;
-  } VMRPRESENTATIONINFO;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0397_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0397_v0_0_s_ifspec;
-#ifndef __IVMRImagePresenter_INTERFACE_DEFINED__
-#define __IVMRImagePresenter_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRImagePresenter;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRImagePresenter : public IUnknown {
-  public:
-    virtual HRESULT WINAPI StartPresenting(DWORD_PTR dwUserID) = 0;
-    virtual HRESULT WINAPI StopPresenting(DWORD_PTR dwUserID) = 0;
-    virtual HRESULT WINAPI PresentImage(DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo) = 0;
-  };
-#else
-  typedef struct IVMRImagePresenterVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRImagePresenter *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRImagePresenter *This);
-      ULONG (WINAPI *Release)(IVMRImagePresenter *This);
-      HRESULT (WINAPI *StartPresenting)(IVMRImagePresenter *This,DWORD_PTR dwUserID);
-      HRESULT (WINAPI *StopPresenting)(IVMRImagePresenter *This,DWORD_PTR dwUserID);
-      HRESULT (WINAPI *PresentImage)(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
-    END_INTERFACE
-  } IVMRImagePresenterVtbl;
-  struct IVMRImagePresenter {
-    CONST_VTBL struct IVMRImagePresenterVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRImagePresenter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRImagePresenter_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRImagePresenter_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRImagePresenter_StartPresenting(This,dwUserID) (This)->lpVtbl->StartPresenting(This,dwUserID)
-#define IVMRImagePresenter_StopPresenting(This,dwUserID) (This)->lpVtbl->StopPresenting(This,dwUserID)
-#define IVMRImagePresenter_PresentImage(This,dwUserID,lpPresInfo) (This)->lpVtbl->PresentImage(This,dwUserID,lpPresInfo)
-#endif
-#endif
-  HRESULT WINAPI IVMRImagePresenter_StartPresenting_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID);
-  void __RPC_STUB IVMRImagePresenter_StartPresenting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRImagePresenter_StopPresenting_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID);
-  void __RPC_STUB IVMRImagePresenter_StopPresenting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRImagePresenter_PresentImage_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
-  void __RPC_STUB IVMRImagePresenter_PresentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum __MIDL___MIDL_itf_strmif_0398_0001 {
-    AMAP_PIXELFORMAT_VALID = 0x1,AMAP_3D_TARGET = 0x2,AMAP_ALLOW_SYSMEM = 0x4,AMAP_FORCE_SYSMEM = 0x8,AMAP_DIRECTED_FLIP = 0x10,AMAP_DXVA_TARGET = 0x20
-  } VMRSurfaceAllocationFlags;
-
-  typedef struct tagVMRALLOCATIONINFO {
-    DWORD dwFlags;
-    LPBITMAPINFOHEADER lpHdr;
-    LPDDPIXELFORMAT lpPixFmt;
-    SIZE szAspectRatio;
-    DWORD dwMinBuffers;
-    DWORD dwMaxBuffers;
-    DWORD dwInterlaceFlags;
-    SIZE szNativeSize;
-  } VMRALLOCATIONINFO;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0398_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0398_v0_0_s_ifspec;
-#ifndef __IVMRSurfaceAllocator_INTERFACE_DEFINED__
-#define __IVMRSurfaceAllocator_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRSurfaceAllocator;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRSurfaceAllocator : public IUnknown {
-  public:
-    virtual HRESULT WINAPI AllocateSurface(DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface) = 0;
-    virtual HRESULT WINAPI FreeSurface(DWORD_PTR dwID) = 0;
-    virtual HRESULT WINAPI PrepareSurface(DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags) = 0;
-    virtual HRESULT WINAPI AdviseNotify(IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify) = 0;
-  };
-#else
-  typedef struct IVMRSurfaceAllocatorVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRSurfaceAllocator *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRSurfaceAllocator *This);
-      ULONG (WINAPI *Release)(IVMRSurfaceAllocator *This);
-      HRESULT (WINAPI *AllocateSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface);
-      HRESULT (WINAPI *FreeSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwID);
-      HRESULT (WINAPI *PrepareSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags);
-      HRESULT (WINAPI *AdviseNotify)(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
-    END_INTERFACE
-  } IVMRSurfaceAllocatorVtbl;
-  struct IVMRSurfaceAllocator {
-    CONST_VTBL struct IVMRSurfaceAllocatorVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRSurfaceAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRSurfaceAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRSurfaceAllocator_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRSurfaceAllocator_AllocateSurface(This,dwUserID,lpAllocInfo,lpdwActualBuffers,lplpSurface) (This)->lpVtbl->AllocateSurface(This,dwUserID,lpAllocInfo,lpdwActualBuffers,lplpSurface)
-#define IVMRSurfaceAllocator_FreeSurface(This,dwID) (This)->lpVtbl->FreeSurface(This,dwID)
-#define IVMRSurfaceAllocator_PrepareSurface(This,dwUserID,lpSurface,dwSurfaceFlags) (This)->lpVtbl->PrepareSurface(This,dwUserID,lpSurface,dwSurfaceFlags)
-#define IVMRSurfaceAllocator_AdviseNotify(This,lpIVMRSurfAllocNotify) (This)->lpVtbl->AdviseNotify(This,lpIVMRSurfAllocNotify)
-#endif
-#endif
-  HRESULT WINAPI IVMRSurfaceAllocator_AllocateSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface);
-  void __RPC_STUB IVMRSurfaceAllocator_AllocateSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRSurfaceAllocator_FreeSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwID);
-  void __RPC_STUB IVMRSurfaceAllocator_FreeSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRSurfaceAllocator_PrepareSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags);
-  void __RPC_STUB IVMRSurfaceAllocator_PrepareSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRSurfaceAllocator_AdviseNotify_Proxy(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
-  void __RPC_STUB IVMRSurfaceAllocator_AdviseNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__
-#define __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRSurfaceAllocatorNotify;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRSurfaceAllocatorNotify : public IUnknown {
-  public:
-    virtual HRESULT WINAPI AdviseSurfaceAllocator(DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator) = 0;
-    virtual HRESULT WINAPI SetDDrawDevice(LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor) = 0;
-    virtual HRESULT WINAPI ChangeDDrawDevice(LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor) = 0;
-    virtual HRESULT WINAPI RestoreDDrawSurfaces(void) = 0;
-    virtual HRESULT WINAPI NotifyEvent(LONG EventCode,LONG_PTR Param1,LONG_PTR Param2) = 0;
-    virtual HRESULT WINAPI SetBorderColor(COLORREF clrBorder) = 0;
-  };
-#else
-  typedef struct IVMRSurfaceAllocatorNotifyVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRSurfaceAllocatorNotify *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRSurfaceAllocatorNotify *This);
-      ULONG (WINAPI *Release)(IVMRSurfaceAllocatorNotify *This);
-      HRESULT (WINAPI *AdviseSurfaceAllocator)(IVMRSurfaceAllocatorNotify *This,DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator);
-      HRESULT (WINAPI *SetDDrawDevice)(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
-      HRESULT (WINAPI *ChangeDDrawDevice)(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
-      HRESULT (WINAPI *RestoreDDrawSurfaces)(IVMRSurfaceAllocatorNotify *This);
-      HRESULT (WINAPI *NotifyEvent)(IVMRSurfaceAllocatorNotify *This,LONG EventCode,LONG_PTR Param1,LONG_PTR Param2);
-      HRESULT (WINAPI *SetBorderColor)(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
-    END_INTERFACE
-  } IVMRSurfaceAllocatorNotifyVtbl;
-  struct IVMRSurfaceAllocatorNotify {
-    CONST_VTBL struct IVMRSurfaceAllocatorNotifyVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRSurfaceAllocatorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRSurfaceAllocatorNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRSurfaceAllocatorNotify_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator) (This)->lpVtbl->AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator)
-#define IVMRSurfaceAllocatorNotify_SetDDrawDevice(This,lpDDrawDevice,hMonitor) (This)->lpVtbl->SetDDrawDevice(This,lpDDrawDevice,hMonitor)
-#define IVMRSurfaceAllocatorNotify_ChangeDDrawDevice(This,lpDDrawDevice,hMonitor) (This)->lpVtbl->ChangeDDrawDevice(This,lpDDrawDevice,hMonitor)
-#define IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces(This) (This)->lpVtbl->RestoreDDrawSurfaces(This)
-#define IVMRSurfaceAllocatorNotify_NotifyEvent(This,EventCode,Param1,Param2) (This)->lpVtbl->NotifyEvent(This,EventCode,Param1,Param2)
-#define IVMRSurfaceAllocatorNotify_SetBorderColor(This,clrBorder) (This)->lpVtbl->SetBorderColor(This,clrBorder)
-#endif
-#endif
-  HRESULT WINAPI IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator_Proxy(IVMRSurfaceAllocatorNotify *This,DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator);
-  void __RPC_STUB IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRSurfaceAllocatorNotify_SetDDrawDevice_Proxy(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
-  void __RPC_STUB IVMRSurfaceAllocatorNotify_SetDDrawDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRSurfaceAllocatorNotify_ChangeDDrawDevice_Proxy(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
-  void __RPC_STUB IVMRSurfaceAllocatorNotify_ChangeDDrawDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces_Proxy(IVMRSurfaceAllocatorNotify *This);
-  void __RPC_STUB IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRSurfaceAllocatorNotify_NotifyEvent_Proxy(IVMRSurfaceAllocatorNotify *This,LONG EventCode,LONG_PTR Param1,LONG_PTR Param2);
-  void __RPC_STUB IVMRSurfaceAllocatorNotify_NotifyEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRSurfaceAllocatorNotify_SetBorderColor_Proxy(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
-  void __RPC_STUB IVMRSurfaceAllocatorNotify_SetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum __MIDL___MIDL_itf_strmif_0400_0001 {
-    VMR_ARMODE_NONE = 0,VMR_ARMODE_LETTER_BOX = VMR_ARMODE_NONE + 1
-  } VMR_ASPECT_RATIO_MODE;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0400_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0400_v0_0_s_ifspec;
-#ifndef __IVMRWindowlessControl_INTERFACE_DEFINED__
-#define __IVMRWindowlessControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRWindowlessControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRWindowlessControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetNativeVideoSize(LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight) = 0;
-    virtual HRESULT WINAPI GetMinIdealVideoSize(LONG *lpWidth,LONG *lpHeight) = 0;
-    virtual HRESULT WINAPI GetMaxIdealVideoSize(LONG *lpWidth,LONG *lpHeight) = 0;
-    virtual HRESULT WINAPI SetVideoPosition(const LPRECT lpSRCRect,const LPRECT lpDSTRect) = 0;
-    virtual HRESULT WINAPI GetVideoPosition(LPRECT lpSRCRect,LPRECT lpDSTRect) = 0;
-    virtual HRESULT WINAPI GetAspectRatioMode(DWORD *lpAspectRatioMode) = 0;
-    virtual HRESULT WINAPI SetAspectRatioMode(DWORD AspectRatioMode) = 0;
-    virtual HRESULT WINAPI SetVideoClippingWindow(HWND hwnd) = 0;
-    virtual HRESULT WINAPI RepaintVideo(HWND hwnd,HDC hdc) = 0;
-    virtual HRESULT WINAPI DisplayModeChanged(void) = 0;
-    virtual HRESULT WINAPI GetCurrentImage(BYTE **lpDib) = 0;
-    virtual HRESULT WINAPI SetBorderColor(COLORREF Clr) = 0;
-    virtual HRESULT WINAPI GetBorderColor(COLORREF *lpClr) = 0;
-    virtual HRESULT WINAPI SetColorKey(COLORREF Clr) = 0;
-    virtual HRESULT WINAPI GetColorKey(COLORREF *lpClr) = 0;
-  };
-#else
-  typedef struct IVMRWindowlessControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRWindowlessControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRWindowlessControl *This);
-      ULONG (WINAPI *Release)(IVMRWindowlessControl *This);
-      HRESULT (WINAPI *GetNativeVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight);
-      HRESULT (WINAPI *GetMinIdealVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
-      HRESULT (WINAPI *GetMaxIdealVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
-      HRESULT (WINAPI *SetVideoPosition)(IVMRWindowlessControl *This,const LPRECT lpSRCRect,const LPRECT lpDSTRect);
-      HRESULT (WINAPI *GetVideoPosition)(IVMRWindowlessControl *This,LPRECT lpSRCRect,LPRECT lpDSTRect);
-      HRESULT (WINAPI *GetAspectRatioMode)(IVMRWindowlessControl *This,DWORD *lpAspectRatioMode);
-      HRESULT (WINAPI *SetAspectRatioMode)(IVMRWindowlessControl *This,DWORD AspectRatioMode);
-      HRESULT (WINAPI *SetVideoClippingWindow)(IVMRWindowlessControl *This,HWND hwnd);
-      HRESULT (WINAPI *RepaintVideo)(IVMRWindowlessControl *This,HWND hwnd,HDC hdc);
-      HRESULT (WINAPI *DisplayModeChanged)(IVMRWindowlessControl *This);
-      HRESULT (WINAPI *GetCurrentImage)(IVMRWindowlessControl *This,BYTE **lpDib);
-      HRESULT (WINAPI *SetBorderColor)(IVMRWindowlessControl *This,COLORREF Clr);
-      HRESULT (WINAPI *GetBorderColor)(IVMRWindowlessControl *This,COLORREF *lpClr);
-      HRESULT (WINAPI *SetColorKey)(IVMRWindowlessControl *This,COLORREF Clr);
-      HRESULT (WINAPI *GetColorKey)(IVMRWindowlessControl *This,COLORREF *lpClr);
-    END_INTERFACE
-  } IVMRWindowlessControlVtbl;
-  struct IVMRWindowlessControl {
-    CONST_VTBL struct IVMRWindowlessControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRWindowlessControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRWindowlessControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRWindowlessControl_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRWindowlessControl_GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight) (This)->lpVtbl->GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight)
-#define IVMRWindowlessControl_GetMinIdealVideoSize(This,lpWidth,lpHeight) (This)->lpVtbl->GetMinIdealVideoSize(This,lpWidth,lpHeight)
-#define IVMRWindowlessControl_GetMaxIdealVideoSize(This,lpWidth,lpHeight) (This)->lpVtbl->GetMaxIdealVideoSize(This,lpWidth,lpHeight)
-#define IVMRWindowlessControl_SetVideoPosition(This,lpSRCRect,lpDSTRect) (This)->lpVtbl->SetVideoPosition(This,lpSRCRect,lpDSTRect)
-#define IVMRWindowlessControl_GetVideoPosition(This,lpSRCRect,lpDSTRect) (This)->lpVtbl->GetVideoPosition(This,lpSRCRect,lpDSTRect)
-#define IVMRWindowlessControl_GetAspectRatioMode(This,lpAspectRatioMode) (This)->lpVtbl->GetAspectRatioMode(This,lpAspectRatioMode)
-#define IVMRWindowlessControl_SetAspectRatioMode(This,AspectRatioMode) (This)->lpVtbl->SetAspectRatioMode(This,AspectRatioMode)
-#define IVMRWindowlessControl_SetVideoClippingWindow(This,hwnd) (This)->lpVtbl->SetVideoClippingWindow(This,hwnd)
-#define IVMRWindowlessControl_RepaintVideo(This,hwnd,hdc) (This)->lpVtbl->RepaintVideo(This,hwnd,hdc)
-#define IVMRWindowlessControl_DisplayModeChanged(This) (This)->lpVtbl->DisplayModeChanged(This)
-#define IVMRWindowlessControl_GetCurrentImage(This,lpDib) (This)->lpVtbl->GetCurrentImage(This,lpDib)
-#define IVMRWindowlessControl_SetBorderColor(This,Clr) (This)->lpVtbl->SetBorderColor(This,Clr)
-#define IVMRWindowlessControl_GetBorderColor(This,lpClr) (This)->lpVtbl->GetBorderColor(This,lpClr)
-#define IVMRWindowlessControl_SetColorKey(This,Clr) (This)->lpVtbl->SetColorKey(This,Clr)
-#define IVMRWindowlessControl_GetColorKey(This,lpClr) (This)->lpVtbl->GetColorKey(This,lpClr)
-#endif
-#endif
-  HRESULT WINAPI IVMRWindowlessControl_GetNativeVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight);
-  void __RPC_STUB IVMRWindowlessControl_GetNativeVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRWindowlessControl_GetMinIdealVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
-  void __RPC_STUB IVMRWindowlessControl_GetMinIdealVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRWindowlessControl_GetMaxIdealVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
-  void __RPC_STUB IVMRWindowlessControl_GetMaxIdealVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRWindowlessControl_SetVideoPosition_Proxy(IVMRWindowlessControl *This,const LPRECT lpSRCRect,const LPRECT lpDSTRect);
-  void __RPC_STUB IVMRWindowlessControl_SetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRWindowlessControl_GetVideoPosition_Proxy(IVMRWindowlessControl *This,LPRECT lpSRCRect,LPRECT lpDSTRect);
-  void __RPC_STUB IVMRWindowlessControl_GetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRWindowlessControl_GetAspectRatioMode_Proxy(IVMRWindowlessControl *This,DWORD *lpAspectRatioMode);
-  void __RPC_STUB IVMRWindowlessControl_GetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRWindowlessControl_SetAspectRatioMode_Proxy(IVMRWindowlessControl *This,DWORD AspectRatioMode);
-  void __RPC_STUB IVMRWindowlessControl_SetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRWindowlessControl_SetVideoClippingWindow_Proxy(IVMRWindowlessControl *This,HWND hwnd);
-  void __RPC_STUB IVMRWindowlessControl_SetVideoClippingWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRWindowlessControl_RepaintVideo_Proxy(IVMRWindowlessControl *This,HWND hwnd,HDC hdc);
-  void __RPC_STUB IVMRWindowlessControl_RepaintVideo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRWindowlessControl_DisplayModeChanged_Proxy(IVMRWindowlessControl *This);
-  void __RPC_STUB IVMRWindowlessControl_DisplayModeChanged_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRWindowlessControl_GetCurrentImage_Proxy(IVMRWindowlessControl *This,BYTE **lpDib);
-  void __RPC_STUB IVMRWindowlessControl_GetCurrentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRWindowlessControl_SetBorderColor_Proxy(IVMRWindowlessControl *This,COLORREF Clr);
-  void __RPC_STUB IVMRWindowlessControl_SetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRWindowlessControl_GetBorderColor_Proxy(IVMRWindowlessControl *This,COLORREF *lpClr);
-  void __RPC_STUB IVMRWindowlessControl_GetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRWindowlessControl_SetColorKey_Proxy(IVMRWindowlessControl *This,COLORREF Clr);
-  void __RPC_STUB IVMRWindowlessControl_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRWindowlessControl_GetColorKey_Proxy(IVMRWindowlessControl *This,COLORREF *lpClr);
-  void __RPC_STUB IVMRWindowlessControl_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum __MIDL___MIDL_itf_strmif_0401_0001 {
-    MixerPref_NoDecimation = 0x1,MixerPref_DecimateOutput = 0x2,MixerPref_ARAdjustXorY = 0x4,MixerPref_DecimationReserved = 0x8,
-    MixerPref_DecimateMask = 0xf,MixerPref_BiLinearFiltering = 0x10,MixerPref_PointFiltering = 0x20,MixerPref_FilteringMask = 0xf0,
-    MixerPref_RenderTargetRGB = 0x100,MixerPref_RenderTargetYUV = 0x1000,MixerPref_RenderTargetYUV420 = 0x200,MixerPref_RenderTargetYUV422 = 0x400,
-    MixerPref_RenderTargetYUV444 = 0x800,MixerPref_RenderTargetReserved = 0xe000,MixerPref_RenderTargetMask = 0xff00,
-    MixerPref_DynamicSwitchToBOB = 0x10000,MixerPref_DynamicDecimateBy2 = 0x20000,MixerPref_DynamicReserved = 0xc0000,
-    MixerPref_DynamicMask = 0xf0000
-  } VMRMixerPrefs;
-
-  typedef struct _NORMALIZEDRECT {
-    float left;
-    float top;
-    float right;
-    float bottom;
-  } NORMALIZEDRECT;
-
-  typedef struct _NORMALIZEDRECT *PNORMALIZEDRECT;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0401_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0401_v0_0_s_ifspec;
-#ifndef __IVMRMixerControl_INTERFACE_DEFINED__
-#define __IVMRMixerControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRMixerControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRMixerControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetAlpha(DWORD dwStreamID,float Alpha) = 0;
-    virtual HRESULT WINAPI GetAlpha(DWORD dwStreamID,float *pAlpha) = 0;
-    virtual HRESULT WINAPI SetZOrder(DWORD dwStreamID,DWORD dwZ) = 0;
-    virtual HRESULT WINAPI GetZOrder(DWORD dwStreamID,DWORD *pZ) = 0;
-    virtual HRESULT WINAPI SetOutputRect(DWORD dwStreamID,const NORMALIZEDRECT *pRect) = 0;
-    virtual HRESULT WINAPI GetOutputRect(DWORD dwStreamID,NORMALIZEDRECT *pRect) = 0;
-    virtual HRESULT WINAPI SetBackgroundClr(COLORREF ClrBkg) = 0;
-    virtual HRESULT WINAPI GetBackgroundClr(COLORREF *lpClrBkg) = 0;
-    virtual HRESULT WINAPI SetMixingPrefs(DWORD dwMixerPrefs) = 0;
-    virtual HRESULT WINAPI GetMixingPrefs(DWORD *pdwMixerPrefs) = 0;
-  };
-#else
-  typedef struct IVMRMixerControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRMixerControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRMixerControl *This);
-      ULONG (WINAPI *Release)(IVMRMixerControl *This);
-      HRESULT (WINAPI *SetAlpha)(IVMRMixerControl *This,DWORD dwStreamID,float Alpha);
-      HRESULT (WINAPI *GetAlpha)(IVMRMixerControl *This,DWORD dwStreamID,float *pAlpha);
-      HRESULT (WINAPI *SetZOrder)(IVMRMixerControl *This,DWORD dwStreamID,DWORD dwZ);
-      HRESULT (WINAPI *GetZOrder)(IVMRMixerControl *This,DWORD dwStreamID,DWORD *pZ);
-      HRESULT (WINAPI *SetOutputRect)(IVMRMixerControl *This,DWORD dwStreamID,const NORMALIZEDRECT *pRect);
-      HRESULT (WINAPI *GetOutputRect)(IVMRMixerControl *This,DWORD dwStreamID,NORMALIZEDRECT *pRect);
-      HRESULT (WINAPI *SetBackgroundClr)(IVMRMixerControl *This,COLORREF ClrBkg);
-      HRESULT (WINAPI *GetBackgroundClr)(IVMRMixerControl *This,COLORREF *lpClrBkg);
-      HRESULT (WINAPI *SetMixingPrefs)(IVMRMixerControl *This,DWORD dwMixerPrefs);
-      HRESULT (WINAPI *GetMixingPrefs)(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
-    END_INTERFACE
-  } IVMRMixerControlVtbl;
-  struct IVMRMixerControl {
-    CONST_VTBL struct IVMRMixerControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRMixerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRMixerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRMixerControl_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRMixerControl_SetAlpha(This,dwStreamID,Alpha) (This)->lpVtbl->SetAlpha(This,dwStreamID,Alpha)
-#define IVMRMixerControl_GetAlpha(This,dwStreamID,pAlpha) (This)->lpVtbl->GetAlpha(This,dwStreamID,pAlpha)
-#define IVMRMixerControl_SetZOrder(This,dwStreamID,dwZ) (This)->lpVtbl->SetZOrder(This,dwStreamID,dwZ)
-#define IVMRMixerControl_GetZOrder(This,dwStreamID,pZ) (This)->lpVtbl->GetZOrder(This,dwStreamID,pZ)
-#define IVMRMixerControl_SetOutputRect(This,dwStreamID,pRect) (This)->lpVtbl->SetOutputRect(This,dwStreamID,pRect)
-#define IVMRMixerControl_GetOutputRect(This,dwStreamID,pRect) (This)->lpVtbl->GetOutputRect(This,dwStreamID,pRect)
-#define IVMRMixerControl_SetBackgroundClr(This,ClrBkg) (This)->lpVtbl->SetBackgroundClr(This,ClrBkg)
-#define IVMRMixerControl_GetBackgroundClr(This,lpClrBkg) (This)->lpVtbl->GetBackgroundClr(This,lpClrBkg)
-#define IVMRMixerControl_SetMixingPrefs(This,dwMixerPrefs) (This)->lpVtbl->SetMixingPrefs(This,dwMixerPrefs)
-#define IVMRMixerControl_GetMixingPrefs(This,pdwMixerPrefs) (This)->lpVtbl->GetMixingPrefs(This,pdwMixerPrefs)
-#endif
-#endif
-  HRESULT WINAPI IVMRMixerControl_SetAlpha_Proxy(IVMRMixerControl *This,DWORD dwStreamID,float Alpha);
-  void __RPC_STUB IVMRMixerControl_SetAlpha_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMixerControl_GetAlpha_Proxy(IVMRMixerControl *This,DWORD dwStreamID,float *pAlpha);
-  void __RPC_STUB IVMRMixerControl_GetAlpha_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMixerControl_SetZOrder_Proxy(IVMRMixerControl *This,DWORD dwStreamID,DWORD dwZ);
-  void __RPC_STUB IVMRMixerControl_SetZOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMixerControl_GetZOrder_Proxy(IVMRMixerControl *This,DWORD dwStreamID,DWORD *pZ);
-  void __RPC_STUB IVMRMixerControl_GetZOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMixerControl_SetOutputRect_Proxy(IVMRMixerControl *This,DWORD dwStreamID,const NORMALIZEDRECT *pRect);
-  void __RPC_STUB IVMRMixerControl_SetOutputRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMixerControl_GetOutputRect_Proxy(IVMRMixerControl *This,DWORD dwStreamID,NORMALIZEDRECT *pRect);
-  void __RPC_STUB IVMRMixerControl_GetOutputRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMixerControl_SetBackgroundClr_Proxy(IVMRMixerControl *This,COLORREF ClrBkg);
-  void __RPC_STUB IVMRMixerControl_SetBackgroundClr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMixerControl_GetBackgroundClr_Proxy(IVMRMixerControl *This,COLORREF *lpClrBkg);
-  void __RPC_STUB IVMRMixerControl_GetBackgroundClr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMixerControl_SetMixingPrefs_Proxy(IVMRMixerControl *This,DWORD dwMixerPrefs);
-  void __RPC_STUB IVMRMixerControl_SetMixingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMixerControl_GetMixingPrefs_Proxy(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
-
-  void __RPC_STUB IVMRMixerControl_GetMixingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifdef __cplusplus
-  typedef struct tagVMRGUID {
-    ::GUID *pGUID;
-    ::GUID GUID;
-  } VMRGUID;
-#else
-  typedef struct tagVMRGUID {
-    GUID *pGUID;
-    GUID GUID;
-  } VMRGUID;
-#endif
-
-  typedef struct tagVMRMONITORINFO {
-    VMRGUID guid;
-    RECT rcMonitor;
-    HMONITOR hMon;
-    DWORD dwFlags;
-    wchar_t szDevice[32];
-    wchar_t szDescription[256];
-    LARGE_INTEGER liDriverVersion;
-    DWORD dwVendorId;
-    DWORD dwDeviceId;
-    DWORD dwSubSysId;
-    DWORD dwRevision;
-  } VMRMONITORINFO;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0402_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0402_v0_0_s_ifspec;
-#ifndef __IVMRMonitorConfig_INTERFACE_DEFINED__
-#define __IVMRMonitorConfig_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRMonitorConfig;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRMonitorConfig : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetMonitor(const VMRGUID *pGUID) = 0;
-    virtual HRESULT WINAPI GetMonitor(VMRGUID *pGUID) = 0;
-    virtual HRESULT WINAPI SetDefaultMonitor(const VMRGUID *pGUID) = 0;
-    virtual HRESULT WINAPI GetDefaultMonitor(VMRGUID *pGUID) = 0;
-    virtual HRESULT WINAPI GetAvailableMonitors(VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices) = 0;
-  };
-#else
-  typedef struct IVMRMonitorConfigVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRMonitorConfig *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRMonitorConfig *This);
-      ULONG (WINAPI *Release)(IVMRMonitorConfig *This);
-      HRESULT (WINAPI *SetMonitor)(IVMRMonitorConfig *This,const VMRGUID *pGUID);
-      HRESULT (WINAPI *GetMonitor)(IVMRMonitorConfig *This,VMRGUID *pGUID);
-      HRESULT (WINAPI *SetDefaultMonitor)(IVMRMonitorConfig *This,const VMRGUID *pGUID);
-      HRESULT (WINAPI *GetDefaultMonitor)(IVMRMonitorConfig *This,VMRGUID *pGUID);
-      HRESULT (WINAPI *GetAvailableMonitors)(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
-    END_INTERFACE
-  } IVMRMonitorConfigVtbl;
-  struct IVMRMonitorConfig {
-    CONST_VTBL struct IVMRMonitorConfigVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRMonitorConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRMonitorConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRMonitorConfig_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRMonitorConfig_SetMonitor(This,pGUID) (This)->lpVtbl->SetMonitor(This,pGUID)
-#define IVMRMonitorConfig_GetMonitor(This,pGUID) (This)->lpVtbl->GetMonitor(This,pGUID)
-#define IVMRMonitorConfig_SetDefaultMonitor(This,pGUID) (This)->lpVtbl->SetDefaultMonitor(This,pGUID)
-#define IVMRMonitorConfig_GetDefaultMonitor(This,pGUID) (This)->lpVtbl->GetDefaultMonitor(This,pGUID)
-#define IVMRMonitorConfig_GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices) (This)->lpVtbl->GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices)
-#endif
-#endif
-  HRESULT WINAPI IVMRMonitorConfig_SetMonitor_Proxy(IVMRMonitorConfig *This,const VMRGUID *pGUID);
-  void __RPC_STUB IVMRMonitorConfig_SetMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMonitorConfig_GetMonitor_Proxy(IVMRMonitorConfig *This,VMRGUID *pGUID);
-  void __RPC_STUB IVMRMonitorConfig_GetMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMonitorConfig_SetDefaultMonitor_Proxy(IVMRMonitorConfig *This,const VMRGUID *pGUID);
-  void __RPC_STUB IVMRMonitorConfig_SetDefaultMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMonitorConfig_GetDefaultMonitor_Proxy(IVMRMonitorConfig *This,VMRGUID *pGUID);
-  void __RPC_STUB IVMRMonitorConfig_GetDefaultMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMonitorConfig_GetAvailableMonitors_Proxy(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
-  void __RPC_STUB IVMRMonitorConfig_GetAvailableMonitors_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum __MIDL___MIDL_itf_strmif_0403_0001 {
-    RenderPrefs_RestrictToInitialMonitor = 0,RenderPrefs_ForceOffscreen = 0x1,RenderPrefs_ForceOverlays = 0x2,RenderPrefs_AllowOverlays = 0,
-    RenderPrefs_AllowOffscreen = 0,RenderPrefs_DoNotRenderColorKeyAndBorder = 0x8,RenderPrefs_Reserved = 0x10,RenderPrefs_PreferAGPMemWhenMixing = 0x20,
-    RenderPrefs_Mask = 0x3f
-  } VMRRenderPrefs;
-
-  typedef enum __MIDL___MIDL_itf_strmif_0403_0002 {
-    VMRMode_Windowed = 0x1,VMRMode_Windowless = 0x2,VMRMode_Renderless = 0x4,VMRMode_Mask = 0x7
-  } VMRMode;
-
-  enum __MIDL___MIDL_itf_strmif_0403_0003 {
-    MAX_NUMBER_OF_STREAMS = 16
-  };
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0403_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0403_v0_0_s_ifspec;
-#ifndef __IVMRFilterConfig_INTERFACE_DEFINED__
-#define __IVMRFilterConfig_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRFilterConfig;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRFilterConfig : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetImageCompositor(IVMRImageCompositor *lpVMRImgCompositor) = 0;
-    virtual HRESULT WINAPI SetNumberOfStreams(DWORD dwMaxStreams) = 0;
-    virtual HRESULT WINAPI GetNumberOfStreams(DWORD *pdwMaxStreams) = 0;
-    virtual HRESULT WINAPI SetRenderingPrefs(DWORD dwRenderFlags) = 0;
-    virtual HRESULT WINAPI GetRenderingPrefs(DWORD *pdwRenderFlags) = 0;
-    virtual HRESULT WINAPI SetRenderingMode(DWORD Mode) = 0;
-    virtual HRESULT WINAPI GetRenderingMode(DWORD *pMode) = 0;
-  };
-#else
-  typedef struct IVMRFilterConfigVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRFilterConfig *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRFilterConfig *This);
-      ULONG (WINAPI *Release)(IVMRFilterConfig *This);
-      HRESULT (WINAPI *SetImageCompositor)(IVMRFilterConfig *This,IVMRImageCompositor *lpVMRImgCompositor);
-      HRESULT (WINAPI *SetNumberOfStreams)(IVMRFilterConfig *This,DWORD dwMaxStreams);
-      HRESULT (WINAPI *GetNumberOfStreams)(IVMRFilterConfig *This,DWORD *pdwMaxStreams);
-      HRESULT (WINAPI *SetRenderingPrefs)(IVMRFilterConfig *This,DWORD dwRenderFlags);
-      HRESULT (WINAPI *GetRenderingPrefs)(IVMRFilterConfig *This,DWORD *pdwRenderFlags);
-      HRESULT (WINAPI *SetRenderingMode)(IVMRFilterConfig *This,DWORD Mode);
-      HRESULT (WINAPI *GetRenderingMode)(IVMRFilterConfig *This,DWORD *pMode);
-    END_INTERFACE
-  } IVMRFilterConfigVtbl;
-  struct IVMRFilterConfig {
-    CONST_VTBL struct IVMRFilterConfigVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRFilterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRFilterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRFilterConfig_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRFilterConfig_SetImageCompositor(This,lpVMRImgCompositor) (This)->lpVtbl->SetImageCompositor(This,lpVMRImgCompositor)
-#define IVMRFilterConfig_SetNumberOfStreams(This,dwMaxStreams) (This)->lpVtbl->SetNumberOfStreams(This,dwMaxStreams)
-#define IVMRFilterConfig_GetNumberOfStreams(This,pdwMaxStreams) (This)->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams)
-#define IVMRFilterConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
-#define IVMRFilterConfig_GetRenderingPrefs(This,pdwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags)
-#define IVMRFilterConfig_SetRenderingMode(This,Mode) (This)->lpVtbl->SetRenderingMode(This,Mode)
-#define IVMRFilterConfig_GetRenderingMode(This,pMode) (This)->lpVtbl->GetRenderingMode(This,pMode)
-#endif
-#endif
-  HRESULT WINAPI IVMRFilterConfig_SetImageCompositor_Proxy(IVMRFilterConfig *This,IVMRImageCompositor *lpVMRImgCompositor);
-  void __RPC_STUB IVMRFilterConfig_SetImageCompositor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRFilterConfig_SetNumberOfStreams_Proxy(IVMRFilterConfig *This,DWORD dwMaxStreams);
-  void __RPC_STUB IVMRFilterConfig_SetNumberOfStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRFilterConfig_GetNumberOfStreams_Proxy(IVMRFilterConfig *This,DWORD *pdwMaxStreams);
-  void __RPC_STUB IVMRFilterConfig_GetNumberOfStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRFilterConfig_SetRenderingPrefs_Proxy(IVMRFilterConfig *This,DWORD dwRenderFlags);
-  void __RPC_STUB IVMRFilterConfig_SetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRFilterConfig_GetRenderingPrefs_Proxy(IVMRFilterConfig *This,DWORD *pdwRenderFlags);
-  void __RPC_STUB IVMRFilterConfig_GetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRFilterConfig_SetRenderingMode_Proxy(IVMRFilterConfig *This,DWORD Mode);
-  void __RPC_STUB IVMRFilterConfig_SetRenderingMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRFilterConfig_GetRenderingMode_Proxy(IVMRFilterConfig *This,DWORD *pMode);
-  void __RPC_STUB IVMRFilterConfig_GetRenderingMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IVMRAspectRatioControl_INTERFACE_DEFINED__
-#define __IVMRAspectRatioControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRAspectRatioControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRAspectRatioControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetAspectRatioMode(LPDWORD lpdwARMode) = 0;
-    virtual HRESULT WINAPI SetAspectRatioMode(DWORD dwARMode) = 0;
-  };
-#else
-  typedef struct IVMRAspectRatioControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRAspectRatioControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRAspectRatioControl *This);
-      ULONG (WINAPI *Release)(IVMRAspectRatioControl *This);
-      HRESULT (WINAPI *GetAspectRatioMode)(IVMRAspectRatioControl *This,LPDWORD lpdwARMode);
-      HRESULT (WINAPI *SetAspectRatioMode)(IVMRAspectRatioControl *This,DWORD dwARMode);
-    END_INTERFACE
-  } IVMRAspectRatioControlVtbl;
-  struct IVMRAspectRatioControl {
-    CONST_VTBL struct IVMRAspectRatioControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRAspectRatioControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRAspectRatioControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRAspectRatioControl_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRAspectRatioControl_GetAspectRatioMode(This,lpdwARMode) (This)->lpVtbl->GetAspectRatioMode(This,lpdwARMode)
-#define IVMRAspectRatioControl_SetAspectRatioMode(This,dwARMode) (This)->lpVtbl->SetAspectRatioMode(This,dwARMode)
-#endif
-#endif
-  HRESULT WINAPI IVMRAspectRatioControl_GetAspectRatioMode_Proxy(IVMRAspectRatioControl *This,LPDWORD lpdwARMode);
-  void __RPC_STUB IVMRAspectRatioControl_GetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRAspectRatioControl_SetAspectRatioMode_Proxy(IVMRAspectRatioControl *This,DWORD dwARMode);
-  void __RPC_STUB IVMRAspectRatioControl_SetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum __MIDL___MIDL_itf_strmif_0405_0001 {
-    DeinterlacePref_NextBest = 0x1,DeinterlacePref_BOB = 0x2,DeinterlacePref_Weave = 0x4,DeinterlacePref_Mask = 0x7
-  } VMRDeinterlacePrefs;
-
-  typedef enum __MIDL___MIDL_itf_strmif_0405_0002 {
-    DeinterlaceTech_Unknown = 0,DeinterlaceTech_BOBLineReplicate = 0x1,DeinterlaceTech_BOBVerticalStretch = 0x2,DeinterlaceTech_MedianFiltering = 0x4,
-    DeinterlaceTech_EdgeFiltering = 0x10,DeinterlaceTech_FieldAdaptive = 0x20,DeinterlaceTech_PixelAdaptive = 0x40,
-    DeinterlaceTech_MotionVectorSteered = 0x80
-  } VMRDeinterlaceTech;
-
-  typedef struct _VMRFrequency {
-    DWORD dwNumerator;
-    DWORD dwDenominator;
-  } VMRFrequency;
-
-  typedef struct _VMRVideoDesc {
-    DWORD dwSize;
-    DWORD dwSampleWidth;
-    DWORD dwSampleHeight;
-    WINBOOL SingleFieldPerSample;
-    DWORD dwFourCC;
-    VMRFrequency InputSampleFreq;
-    VMRFrequency OutputFrameFreq;
-  } VMRVideoDesc;
-
-  typedef struct _VMRDeinterlaceCaps {
-    DWORD dwSize;
-    DWORD dwNumPreviousOutputFrames;
-    DWORD dwNumForwardRefSamples;
-    DWORD dwNumBackwardRefSamples;
-    VMRDeinterlaceTech DeinterlaceTechnology;
-  } VMRDeinterlaceCaps;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0405_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0405_v0_0_s_ifspec;
-#ifndef __IVMRDeinterlaceControl_INTERFACE_DEFINED__
-#define __IVMRDeinterlaceControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRDeinterlaceControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRDeinterlaceControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetNumberOfDeinterlaceModes(VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes) = 0;
-    virtual HRESULT WINAPI GetDeinterlaceModeCaps(LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps) = 0;
-    virtual HRESULT WINAPI GetDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
-    virtual HRESULT WINAPI SetDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
-    virtual HRESULT WINAPI GetDeinterlacePrefs(LPDWORD lpdwDeinterlacePrefs) = 0;
-    virtual HRESULT WINAPI SetDeinterlacePrefs(DWORD dwDeinterlacePrefs) = 0;
-    virtual HRESULT WINAPI GetActualDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
-  };
-#else
-  typedef struct IVMRDeinterlaceControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRDeinterlaceControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRDeinterlaceControl *This);
-      ULONG (WINAPI *Release)(IVMRDeinterlaceControl *This);
-      HRESULT (WINAPI *GetNumberOfDeinterlaceModes)(IVMRDeinterlaceControl *This,VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes);
-      HRESULT (WINAPI *GetDeinterlaceModeCaps)(IVMRDeinterlaceControl *This,LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps);
-      HRESULT (WINAPI *GetDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
-      HRESULT (WINAPI *SetDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
-      HRESULT (WINAPI *GetDeinterlacePrefs)(IVMRDeinterlaceControl *This,LPDWORD lpdwDeinterlacePrefs);
-      HRESULT (WINAPI *SetDeinterlacePrefs)(IVMRDeinterlaceControl *This,DWORD dwDeinterlacePrefs);
-      HRESULT (WINAPI *GetActualDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
-    END_INTERFACE
-  } IVMRDeinterlaceControlVtbl;
-  struct IVMRDeinterlaceControl {
-    CONST_VTBL struct IVMRDeinterlaceControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRDeinterlaceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRDeinterlaceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRDeinterlaceControl_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes) (This)->lpVtbl->GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes)
-#define IVMRDeinterlaceControl_GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps) (This)->lpVtbl->GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps)
-#define IVMRDeinterlaceControl_GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
-#define IVMRDeinterlaceControl_SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
-#define IVMRDeinterlaceControl_GetDeinterlacePrefs(This,lpdwDeinterlacePrefs) (This)->lpVtbl->GetDeinterlacePrefs(This,lpdwDeinterlacePrefs)
-#define IVMRDeinterlaceControl_SetDeinterlacePrefs(This,dwDeinterlacePrefs) (This)->lpVtbl->SetDeinterlacePrefs(This,dwDeinterlacePrefs)
-#define IVMRDeinterlaceControl_GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
-#endif
-#endif
-  HRESULT WINAPI IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes_Proxy(IVMRDeinterlaceControl *This,VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes);
-  void __RPC_STUB IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlaceModeCaps_Proxy(IVMRDeinterlaceControl *This,LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps);
-  void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlaceModeCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
-  void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRDeinterlaceControl_SetDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
-  void __RPC_STUB IVMRDeinterlaceControl_SetDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlacePrefs_Proxy(IVMRDeinterlaceControl *This,LPDWORD lpdwDeinterlacePrefs);
-  void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlacePrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRDeinterlaceControl_SetDeinterlacePrefs_Proxy(IVMRDeinterlaceControl *This,DWORD dwDeinterlacePrefs);
-  void __RPC_STUB IVMRDeinterlaceControl_SetDeinterlacePrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRDeinterlaceControl_GetActualDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
-  void __RPC_STUB IVMRDeinterlaceControl_GetActualDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef struct _VMRALPHABITMAP {
-    DWORD dwFlags;
-    HDC hdc;
-    LPDIRECTDRAWSURFACE7 pDDS;
-    RECT rSrc;
-    NORMALIZEDRECT rDest;
-    FLOAT fAlpha;
-    COLORREF clrSrcKey;
-  } VMRALPHABITMAP;
-
-  typedef struct _VMRALPHABITMAP *PVMRALPHABITMAP;
-
-#define VMRBITMAP_DISABLE 0x00000001
-#define VMRBITMAP_HDC 0x00000002
-#define VMRBITMAP_ENTIREDDS 0x00000004
-#define VMRBITMAP_SRCCOLORKEY 0x00000008
-#define VMRBITMAP_SRCRECT 0x00000010
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0406_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0406_v0_0_s_ifspec;
-#ifndef __IVMRMixerBitmap_INTERFACE_DEFINED__
-#define __IVMRMixerBitmap_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRMixerBitmap;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRMixerBitmap : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetAlphaBitmap(const VMRALPHABITMAP *pBmpParms) = 0;
-    virtual HRESULT WINAPI UpdateAlphaBitmapParameters(PVMRALPHABITMAP pBmpParms) = 0;
-    virtual HRESULT WINAPI GetAlphaBitmapParameters(PVMRALPHABITMAP pBmpParms) = 0;
-  };
-#else
-  typedef struct IVMRMixerBitmapVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRMixerBitmap *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRMixerBitmap *This);
-      ULONG (WINAPI *Release)(IVMRMixerBitmap *This);
-      HRESULT (WINAPI *SetAlphaBitmap)(IVMRMixerBitmap *This,const VMRALPHABITMAP *pBmpParms);
-      HRESULT (WINAPI *UpdateAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
-      HRESULT (WINAPI *GetAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
-    END_INTERFACE
-  } IVMRMixerBitmapVtbl;
-  struct IVMRMixerBitmap {
-    CONST_VTBL struct IVMRMixerBitmapVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRMixerBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRMixerBitmap_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRMixerBitmap_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRMixerBitmap_SetAlphaBitmap(This,pBmpParms) (This)->lpVtbl->SetAlphaBitmap(This,pBmpParms)
-#define IVMRMixerBitmap_UpdateAlphaBitmapParameters(This,pBmpParms) (This)->lpVtbl->UpdateAlphaBitmapParameters(This,pBmpParms)
-#define IVMRMixerBitmap_GetAlphaBitmapParameters(This,pBmpParms) (This)->lpVtbl->GetAlphaBitmapParameters(This,pBmpParms)
-#endif
-#endif
-  HRESULT WINAPI IVMRMixerBitmap_SetAlphaBitmap_Proxy(IVMRMixerBitmap *This,const VMRALPHABITMAP *pBmpParms);
-  void __RPC_STUB IVMRMixerBitmap_SetAlphaBitmap_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMixerBitmap_UpdateAlphaBitmapParameters_Proxy(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
-  void __RPC_STUB IVMRMixerBitmap_UpdateAlphaBitmapParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRMixerBitmap_GetAlphaBitmapParameters_Proxy(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
-  void __RPC_STUB IVMRMixerBitmap_GetAlphaBitmapParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef struct _VMRVIDEOSTREAMINFO {
-    LPDIRECTDRAWSURFACE7 pddsVideoSurface;
-    DWORD dwWidth;
-    DWORD dwHeight;
-    DWORD dwStrmID;
-    FLOAT fAlpha;
-    DDCOLORKEY ddClrKey;
-    NORMALIZEDRECT rNormal;
-  } VMRVIDEOSTREAMINFO;
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0407_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0407_v0_0_s_ifspec;
-#ifndef __IVMRImageCompositor_INTERFACE_DEFINED__
-#define __IVMRImageCompositor_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRImageCompositor;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRImageCompositor : public IUnknown {
-  public:
-    virtual HRESULT WINAPI InitCompositionTarget(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget) = 0;
-    virtual HRESULT WINAPI TermCompositionTarget(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget) = 0;
-    virtual HRESULT WINAPI SetStreamMediaType(DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture) = 0;
-    virtual HRESULT WINAPI CompositeImage(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget,AM_MEDIA_TYPE *pmtRenderTarget,REFERENCE_TIME rtStart,REFERENCE_TIME rtEnd,DWORD dwClrBkGnd,VMRVIDEOSTREAMINFO *pVideoStreamInfo,UINT cStreams) = 0;
-  };
-#else
-  typedef struct IVMRImageCompositorVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRImageCompositor *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRImageCompositor *This);
-      ULONG (WINAPI *Release)(IVMRImageCompositor *This);
-      HRESULT (WINAPI *InitCompositionTarget)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
-      HRESULT (WINAPI *TermCompositionTarget)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
-      HRESULT (WINAPI *SetStreamMediaType)(IVMRImageCompositor *This,DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture);
-      HRESULT (WINAPI *CompositeImage)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget,AM_MEDIA_TYPE *pmtRenderTarget,REFERENCE_TIME rtStart,REFERENCE_TIME rtEnd,DWORD dwClrBkGnd,VMRVIDEOSTREAMINFO *pVideoStreamInfo,UINT cStreams);
-    END_INTERFACE
-  } IVMRImageCompositorVtbl;
-  struct IVMRImageCompositor {
-    CONST_VTBL struct IVMRImageCompositorVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRImageCompositor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRImageCompositor_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRImageCompositor_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRImageCompositor_InitCompositionTarget(This,pD3DDevice,pddsRenderTarget) (This)->lpVtbl->InitCompositionTarget(This,pD3DDevice,pddsRenderTarget)
-#define IVMRImageCompositor_TermCompositionTarget(This,pD3DDevice,pddsRenderTarget) (This)->lpVtbl->TermCompositionTarget(This,pD3DDevice,pddsRenderTarget)
-#define IVMRImageCompositor_SetStreamMediaType(This,dwStrmID,pmt,fTexture) (This)->lpVtbl->SetStreamMediaType(This,dwStrmID,pmt,fTexture)
-#define IVMRImageCompositor_CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams) (This)->lpVtbl->CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams)
-#endif
-#endif
-  HRESULT WINAPI IVMRImageCompositor_InitCompositionTarget_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
-  void __RPC_STUB IVMRImageCompositor_InitCompositionTarget_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRImageCompositor_TermCompositionTarget_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
-  void __RPC_STUB IVMRImageCompositor_TermCompositionTarget_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRImageCompositor_SetStreamMediaType_Proxy(IVMRImageCompositor *This,DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture);
-  void __RPC_STUB IVMRImageCompositor_SetStreamMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRImageCompositor_CompositeImage_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget,AM_MEDIA_TYPE *pmtRenderTarget,REFERENCE_TIME rtStart,REFERENCE_TIME rtEnd,DWORD dwClrBkGnd,VMRVIDEOSTREAMINFO *pVideoStreamInfo,UINT cStreams);
-  void __RPC_STUB IVMRImageCompositor_CompositeImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IVMRVideoStreamControl_INTERFACE_DEFINED__
-#define __IVMRVideoStreamControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRVideoStreamControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRVideoStreamControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetColorKey(LPDDCOLORKEY lpClrKey) = 0;
-    virtual HRESULT WINAPI GetColorKey(LPDDCOLORKEY lpClrKey) = 0;
-    virtual HRESULT WINAPI SetStreamActiveState(WINBOOL fActive) = 0;
-    virtual HRESULT WINAPI GetStreamActiveState(WINBOOL *lpfActive) = 0;
-  };
-#else
-  typedef struct IVMRVideoStreamControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRVideoStreamControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRVideoStreamControl *This);
-      ULONG (WINAPI *Release)(IVMRVideoStreamControl *This);
-      HRESULT (WINAPI *SetColorKey)(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
-      HRESULT (WINAPI *GetColorKey)(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
-      HRESULT (WINAPI *SetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL fActive);
-      HRESULT (WINAPI *GetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
-    END_INTERFACE
-  } IVMRVideoStreamControlVtbl;
-  struct IVMRVideoStreamControl {
-    CONST_VTBL struct IVMRVideoStreamControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRVideoStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRVideoStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRVideoStreamControl_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRVideoStreamControl_SetColorKey(This,lpClrKey) (This)->lpVtbl->SetColorKey(This,lpClrKey)
-#define IVMRVideoStreamControl_GetColorKey(This,lpClrKey) (This)->lpVtbl->GetColorKey(This,lpClrKey)
-#define IVMRVideoStreamControl_SetStreamActiveState(This,fActive) (This)->lpVtbl->SetStreamActiveState(This,fActive)
-#define IVMRVideoStreamControl_GetStreamActiveState(This,lpfActive) (This)->lpVtbl->GetStreamActiveState(This,lpfActive)
-#endif
-#endif
-  HRESULT WINAPI IVMRVideoStreamControl_SetColorKey_Proxy(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
-  void __RPC_STUB IVMRVideoStreamControl_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRVideoStreamControl_GetColorKey_Proxy(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
-  void __RPC_STUB IVMRVideoStreamControl_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRVideoStreamControl_SetStreamActiveState_Proxy(IVMRVideoStreamControl *This,WINBOOL fActive);
-  void __RPC_STUB IVMRVideoStreamControl_SetStreamActiveState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRVideoStreamControl_GetStreamActiveState_Proxy(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
-  void __RPC_STUB IVMRVideoStreamControl_GetStreamActiveState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IVMRSurface_INTERFACE_DEFINED__
-#define __IVMRSurface_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRSurface;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRSurface : public IUnknown {
-  public:
-    virtual HRESULT WINAPI IsSurfaceLocked(void) = 0;
-    virtual HRESULT WINAPI LockSurface(BYTE **lpSurface) = 0;
-    virtual HRESULT WINAPI UnlockSurface(void) = 0;
-    virtual HRESULT WINAPI GetSurface(LPDIRECTDRAWSURFACE7 *lplpSurface) = 0;
-  };
-#else
-  typedef struct IVMRSurfaceVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRSurface *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRSurface *This);
-      ULONG (WINAPI *Release)(IVMRSurface *This);
-      HRESULT (WINAPI *IsSurfaceLocked)(IVMRSurface *This);
-      HRESULT (WINAPI *LockSurface)(IVMRSurface *This,BYTE **lpSurface);
-      HRESULT (WINAPI *UnlockSurface)(IVMRSurface *This);
-      HRESULT (WINAPI *GetSurface)(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
-    END_INTERFACE
-  } IVMRSurfaceVtbl;
-  struct IVMRSurface {
-    CONST_VTBL struct IVMRSurfaceVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRSurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRSurface_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRSurface_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRSurface_IsSurfaceLocked(This) (This)->lpVtbl->IsSurfaceLocked(This)
-#define IVMRSurface_LockSurface(This,lpSurface) (This)->lpVtbl->LockSurface(This,lpSurface)
-#define IVMRSurface_UnlockSurface(This) (This)->lpVtbl->UnlockSurface(This)
-#define IVMRSurface_GetSurface(This,lplpSurface) (This)->lpVtbl->GetSurface(This,lplpSurface)
-#endif
-#endif
-  HRESULT WINAPI IVMRSurface_IsSurfaceLocked_Proxy(IVMRSurface *This);
-  void __RPC_STUB IVMRSurface_IsSurfaceLocked_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRSurface_LockSurface_Proxy(IVMRSurface *This,BYTE **lpSurface);
-  void __RPC_STUB IVMRSurface_LockSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRSurface_UnlockSurface_Proxy(IVMRSurface *This);
-  void __RPC_STUB IVMRSurface_UnlockSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRSurface_GetSurface_Proxy(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
-  void __RPC_STUB IVMRSurface_GetSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IVMRImagePresenterConfig_INTERFACE_DEFINED__
-#define __IVMRImagePresenterConfig_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRImagePresenterConfig;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRImagePresenterConfig : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetRenderingPrefs(DWORD dwRenderFlags) = 0;
-    virtual HRESULT WINAPI GetRenderingPrefs(DWORD *dwRenderFlags) = 0;
-  };
-#else
-  typedef struct IVMRImagePresenterConfigVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRImagePresenterConfig *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRImagePresenterConfig *This);
-      ULONG (WINAPI *Release)(IVMRImagePresenterConfig *This);
-      HRESULT (WINAPI *SetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD dwRenderFlags);
-      HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
-    END_INTERFACE
-  } IVMRImagePresenterConfigVtbl;
-  struct IVMRImagePresenterConfig {
-    CONST_VTBL struct IVMRImagePresenterConfigVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRImagePresenterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRImagePresenterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRImagePresenterConfig_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRImagePresenterConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
-#define IVMRImagePresenterConfig_GetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,dwRenderFlags)
-#endif
-#endif
-  HRESULT WINAPI IVMRImagePresenterConfig_SetRenderingPrefs_Proxy(IVMRImagePresenterConfig *This,DWORD dwRenderFlags);
-  void __RPC_STUB IVMRImagePresenterConfig_SetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRImagePresenterConfig_GetRenderingPrefs_Proxy(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
-  void __RPC_STUB IVMRImagePresenterConfig_GetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__
-#define __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVMRImagePresenterExclModeConfig;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVMRImagePresenterExclModeConfig : public IVMRImagePresenterConfig {
-  public:
-    virtual HRESULT WINAPI SetXlcModeDDObjAndPrimarySurface(LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf) = 0;
-    virtual HRESULT WINAPI GetXlcModeDDObjAndPrimarySurface(LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf) = 0;
-  };
-#else
-  typedef struct IVMRImagePresenterExclModeConfigVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVMRImagePresenterExclModeConfig *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVMRImagePresenterExclModeConfig *This);
-      ULONG (WINAPI *Release)(IVMRImagePresenterExclModeConfig *This);
-      HRESULT (WINAPI *SetRenderingPrefs)(IVMRImagePresenterExclModeConfig *This,DWORD dwRenderFlags);
-      HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterExclModeConfig *This,DWORD *dwRenderFlags);
-      HRESULT (WINAPI *SetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf);
-      HRESULT (WINAPI *GetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
-    END_INTERFACE
-  } IVMRImagePresenterExclModeConfigVtbl;
-  struct IVMRImagePresenterExclModeConfig {
-    CONST_VTBL struct IVMRImagePresenterExclModeConfigVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVMRImagePresenterExclModeConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVMRImagePresenterExclModeConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVMRImagePresenterExclModeConfig_Release(This) (This)->lpVtbl->Release(This)
-#define IVMRImagePresenterExclModeConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
-#define IVMRImagePresenterExclModeConfig_GetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,dwRenderFlags)
-#define IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf) (This)->lpVtbl->SetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf)
-#define IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf) (This)->lpVtbl->GetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf)
-#endif
-#endif
-  HRESULT WINAPI IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface_Proxy(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf);
-  void __RPC_STUB IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface_Proxy(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
-  void __RPC_STUB IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IVPManager_INTERFACE_DEFINED__
-#define __IVPManager_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVPManager;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVPManager : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetVideoPortIndex(DWORD dwVideoPortIndex) = 0;
-    virtual HRESULT WINAPI GetVideoPortIndex(DWORD *pdwVideoPortIndex) = 0;
-  };
-#else
-  typedef struct IVPManagerVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVPManager *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVPManager *This);
-      ULONG (WINAPI *Release)(IVPManager *This);
-      HRESULT (WINAPI *SetVideoPortIndex)(IVPManager *This,DWORD dwVideoPortIndex);
-      HRESULT (WINAPI *GetVideoPortIndex)(IVPManager *This,DWORD *pdwVideoPortIndex);
-    END_INTERFACE
-  } IVPManagerVtbl;
-  struct IVPManager {
-    CONST_VTBL struct IVPManagerVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVPManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVPManager_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVPManager_Release(This) (This)->lpVtbl->Release(This)
-#define IVPManager_SetVideoPortIndex(This,dwVideoPortIndex) (This)->lpVtbl->SetVideoPortIndex(This,dwVideoPortIndex)
-#define IVPManager_GetVideoPortIndex(This,pdwVideoPortIndex) (This)->lpVtbl->GetVideoPortIndex(This,pdwVideoPortIndex)
-#endif
-#endif
-  HRESULT WINAPI IVPManager_SetVideoPortIndex_Proxy(IVPManager *This,DWORD dwVideoPortIndex);
-  void __RPC_STUB IVPManager_SetVideoPortIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVPManager_GetVideoPortIndex_Proxy(IVPManager *This,DWORD *pdwVideoPortIndex);
-  void __RPC_STUB IVPManager_GetVideoPortIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0413_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0413_v0_0_s_ifspec;
-
-  unsigned long __RPC_API VARIANT_UserSize(unsigned long *,unsigned long,VARIANT *);
-  unsigned char *__RPC_API VARIANT_UserMarshal(unsigned long *,unsigned char *,VARIANT *);
-  unsigned char *__RPC_API VARIANT_UserUnmarshal(unsigned long *,unsigned char *,VARIANT *);
-  void __RPC_API VARIANT_UserFree(unsigned long *,VARIANT *);
-
-  HRESULT WINAPI ICaptureGraphBuilder_FindInterface_Proxy(ICaptureGraphBuilder *This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,void **ppint);
-  HRESULT WINAPI ICaptureGraphBuilder_FindInterface_Stub(ICaptureGraphBuilder *This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,IUnknown **ppint);
-  HRESULT WINAPI ICaptureGraphBuilder2_FindInterface_Proxy(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,void **ppint);
-  HRESULT WINAPI ICaptureGraphBuilder2_FindInterface_Stub(ICaptureGraphBuilder2 *This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,IUnknown **ppint);
-  HRESULT WINAPI IKsPropertySet_Set_Proxy(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData);
-  HRESULT WINAPI IKsPropertySet_Set_Stub(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,byte *pInstanceData,DWORD cbInstanceData,byte *pPropData,DWORD cbPropData);
-  HRESULT WINAPI IKsPropertySet_Get_Proxy(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData,DWORD *pcbReturned);
-  HRESULT WINAPI IKsPropertySet_Get_Stub(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,byte *pInstanceData,DWORD cbInstanceData,byte *pPropData,DWORD cbPropData,DWORD *pcbReturned);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/3rdparty/include/dshow/uuids.h b/3rdparty/include/dshow/uuids.h
deleted file mode 100644
index 53cdefd..0000000
--- a/3rdparty/include/dshow/uuids.h
+++ /dev/null
@@ -1,368 +0,0 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the w64 mingw-runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#ifndef OUR_GUID_ENTRY
-#define OUR_GUID_ENTRY(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8);
-#endif
-
-#define MEDIATYPE_NULL GUID_NULL
-#define MEDIASUBTYPE_NULL GUID_NULL
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_None,0xe436eb8e,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIATYPE_Video,0x73646976,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIATYPE_Audio,0x73647561,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIATYPE_Text,0x73747874,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIATYPE_Midi,0x7364696D,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIATYPE_Stream,0xe436eb83,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIATYPE_Interleaved,0x73766169,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIATYPE_File,0x656c6966,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIATYPE_ScriptCommand,0x73636d64,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIATYPE_AUXLine21Data,0x670aea80,0x3a82,0x11d0,0xb7,0x9b,0x0,0xaa,0x0,0x37,0x67,0xa7)
-OUR_GUID_ENTRY(MEDIATYPE_VBI,0xf72a76e1,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(MEDIATYPE_Timecode,0x482dee3,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIATYPE_LMRT,0x74726c6d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIATYPE_URL_STREAM,0x736c7275,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_CLPL,0x4C504C43,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_YUYV,0x56595559,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_IYUV,0x56555949,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_YVU9,0x39555659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_Y411,0x31313459,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_Y41P,0x50313459,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_YUY2,0x32595559,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_YVYU,0x55595659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_UYVY,0x59565955,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_Y211,0x31313259,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_CLJR,0x524a4c43,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_IF09,0x39304649,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_CPLA,0x414c5043,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_MJPG,0x47504A4D,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_TVMJ,0x4A4D5654,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_WAKE,0x454B4157,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_CFCC,0x43434643,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_IJPG,0x47504A49,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_Plum,0x6D756C50,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_DVCS,0x53435644,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_DVSD,0x44535644,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_MDVF,0x4656444D,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_RGB1,0xe436eb78,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_RGB4,0xe436eb79,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_RGB8,0xe436eb7a,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_RGB565,0xe436eb7b,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_RGB555,0xe436eb7c,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_RGB24,0xe436eb7d,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_RGB32,0xe436eb7e,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB1555,0x297c55af,0xe209,0x4cb3,0xb7,0x57,0xc7,0x6d,0x6b,0x9c,0x88,0xa8)
-OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB4444,0x6e6415e6,0x5c24,0x425f,0x93,0xcd,0x80,0x10,0x2b,0x3d,0x1c,0xca)
-OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB32,0x773c9ac0,0x3274,0x11d0,0xb7,0x24,0x0,0xaa,0x0,0x6c,0x1a,0x1)
-OUR_GUID_ENTRY(MEDIASUBTYPE_A2R10G10B10,0x2f8bb76d,0xb644,0x4550,0xac,0xf3,0xd3,0x0c,0xaa,0x65,0xd5,0xc5)
-OUR_GUID_ENTRY(MEDIASUBTYPE_A2B10G10R10,0x576f7893,0xbdf6,0x48c4,0x87,0x5f,0xae,0x7b,0x81,0x83,0x45,0x67)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AYUV,0x56555941,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AI44,0x34344941,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_IA44,0x34344149,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_RGB32_D3D_DX7_RT,0x32335237,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_RGB16_D3D_DX7_RT,0x36315237,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB32_D3D_DX7_RT,0x38384137,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB4444_D3D_DX7_RT,0x34344137,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB1555_D3D_DX7_RT,0x35314137,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_RGB32_D3D_DX9_RT,0x32335239,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_RGB16_D3D_DX9_RT,0x36315239,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB32_D3D_DX9_RT,0x38384139,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB4444_D3D_DX9_RT,0x34344139,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB1555_D3D_DX9_RT,0x35314139,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-
-#define MEDIASUBTYPE_HASALPHA(mt) (((mt).subtype==MEDIASUBTYPE_ARGB4444) || ((mt).subtype==MEDIASUBTYPE_ARGB32) || ((mt).subtype==MEDIASUBTYPE_AYUV) || ((mt).subtype==MEDIASUBTYPE_AI44) || ((mt).subtype==MEDIASUBTYPE_IA44) || ((mt).subtype==MEDIASUBTYPE_ARGB1555) || ((mt).subtype==MEDIASUBTYPE_ARGB32_D3D_DX7_RT) || ((mt).subtype==MEDIASUBTYPE_ARGB4444_D3D_DX7_RT) || ((mt).subtype==MEDIASUBTYPE_ARGB1555_D3D_DX7_RT) || ((mt).subtype==MEDIASUBTYPE_ARGB32_D3D_DX9_RT) || ((mt).subtype==MEDIAS [...]
-#define MEDIASUBTYPE_HASALPHA7(mt) (((mt).subtype==MEDIASUBTYPE_ARGB32_D3D_DX7_RT) || ((mt).subtype==MEDIASUBTYPE_ARGB4444_D3D_DX7_RT) || ((mt).subtype==MEDIASUBTYPE_ARGB1555_D3D_DX7_RT))
-#define MEDIASUBTYPE_D3D_DX7_RT(mt) (((mt).subtype==MEDIASUBTYPE_ARGB32_D3D_DX7_RT) || ((mt).subtype==MEDIASUBTYPE_ARGB4444_D3D_DX7_RT) || ((mt).subtype==MEDIASUBTYPE_ARGB1555_D3D_DX7_RT) || ((mt).subtype==MEDIASUBTYPE_RGB32_D3D_DX7_RT) || ((mt).subtype==MEDIASUBTYPE_RGB16_D3D_DX7_RT))
-#define MEDIASUBTYPE_HASALPHA9(mt) (((mt).subtype==MEDIASUBTYPE_ARGB32_D3D_DX9_RT) || ((mt).subtype==MEDIASUBTYPE_ARGB4444_D3D_DX9_RT) || ((mt).subtype==MEDIASUBTYPE_ARGB1555_D3D_DX9_RT))
-#define MEDIASUBTYPE_D3D_DX9_RT(mt) (((mt).subtype==MEDIASUBTYPE_ARGB32_D3D_DX9_RT) || ((mt).subtype==MEDIASUBTYPE_ARGB4444_D3D_DX9_RT) || ((mt).subtype==MEDIASUBTYPE_ARGB1555_D3D_DX9_RT) || ((mt).subtype==MEDIASUBTYPE_RGB32_D3D_DX9_RT) || ((mt).subtype==MEDIASUBTYPE_RGB16_D3D_DX9_RT))
-
-OUR_GUID_ENTRY(MEDIASUBTYPE_YV12,0x32315659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_NV12,0x3231564E,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_IMC1,0x31434D49,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_IMC2,0x32434D49,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_IMC3,0x33434D49,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_IMC4,0x34434D49,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_S340,0x30343353,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_S342,0x32343353,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_Overlay,0xe436eb7f,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Packet,0xe436eb80,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Payload,0xe436eb81,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1AudioPayload,0x00000050,0x0000,0x0010,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71)
-OUR_GUID_ENTRY(MEDIATYPE_MPEG1SystemStream,0xe436eb82,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1System,0xe436eb84,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1VideoCD,0xe436eb85,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Video,0xe436eb86,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Audio,0xe436eb87,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_Avi,0xe436eb88,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_Asf,0x3db80f90,0x9412,0x11d1,0xad,0xed,0x0,0x0,0xf8,0x75,0x4b,0x99)
-OUR_GUID_ENTRY(MEDIASUBTYPE_QTMovie,0xe436eb89,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_QTRpza,0x617a7072,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_QTSmc,0x20636d73,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_QTRle,0x20656c72,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_QTJpeg,0x6765706a,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_PCMAudio_Obsolete,0xe436eb8a,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_PCM,0x00000001,0x0000,0x0010,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_WAVE,0xe436eb8b,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AU,0xe436eb8c,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AIFF,0xe436eb8d,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(MEDIASUBTYPE_dvsd,0x64737664,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_dvhd,0x64687664,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_dvsl,0x6c737664,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_dv25,0x35327664,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_dv50,0x30357664,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_dvh1,0x31687664,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_Line21_BytePair,0x6e8d4a22,0x310c,0x11d0,0xb7,0x9a,0x0,0xaa,0x0,0x37,0x67,0xa7)
-OUR_GUID_ENTRY(MEDIASUBTYPE_Line21_GOPPacket,0x6e8d4a23,0x310c,0x11d0,0xb7,0x9a,0x0,0xaa,0x0,0x37,0x67,0xa7)
-OUR_GUID_ENTRY(MEDIASUBTYPE_Line21_VBIRawData,0x6e8d4a24,0x310c,0x11d0,0xb7,0x9a,0x0,0xaa,0x0,0x37,0x67,0xa7)
-OUR_GUID_ENTRY(MEDIASUBTYPE_TELETEXT,0xf72a76e3,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(MEDIASUBTYPE_WSS,0x2791D576,0x8E7A,0x466F,0x9E,0x90,0x5D,0x3F,0x30,0x83,0x73,0x8B)
-OUR_GUID_ENTRY(MEDIASUBTYPE_VPS,0xa1b3f620,0x9792,0x4d8d,0x81,0xa4,0x86,0xaf,0x25,0x77,0x20,0x90)
-OUR_GUID_ENTRY(MEDIASUBTYPE_DRM_Audio,0x00000009,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_IEEE_FLOAT,0x00000003,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_DOLBY_AC3_SPDIF,0x00000092,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_RAW_SPORT,0x00000240,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_SPDIF_TAG_241h,0x00000241,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71)
-OUR_GUID_ENTRY(MEDIASUBTYPE_DssVideo,0xa0af4f81,0xe163,0x11d0,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a)
-OUR_GUID_ENTRY(MEDIASUBTYPE_DssAudio,0xa0af4f82,0xe163,0x11d0,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a)
-OUR_GUID_ENTRY(MEDIASUBTYPE_VPVideo,0x5a9b6a40,0x1a22,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a)
-OUR_GUID_ENTRY(MEDIASUBTYPE_VPVBI,0x5a9b6a41,0x1a22,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a)
-OUR_GUID_ENTRY(CLSID_CaptureGraphBuilder,0xBF87B6E0,0x8C27,0x11d0,0xB3,0xF0,0x0,0xAA,0x00,0x37,0x61,0xC5)
-OUR_GUID_ENTRY(CLSID_CaptureGraphBuilder2,0xBF87B6E1,0x8C27,0x11d0,0xB3,0xF0,0x0,0xAA,0x00,0x37,0x61,0xC5)
-OUR_GUID_ENTRY(CLSID_ProtoFilterGraph,0xe436ebb0,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(CLSID_SystemClock,0xe436ebb1,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(CLSID_FilterMapper,0xe436ebb2,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(CLSID_FilterGraph,0xe436ebb3,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(CLSID_FilterGraphNoThread,0xe436ebb8,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(CLSID_MPEG1Doc,0xe4bbd160,0x4269,0x11ce,0x83,0x8d,0x0,0xaa,0x0,0x55,0x59,0x5a)
-OUR_GUID_ENTRY(CLSID_FileSource,0x701722e0,0x8ae3,0x11ce,0xa8,0x5c,0x00,0xaa,0x00,0x2f,0xea,0xb5)
-OUR_GUID_ENTRY(CLSID_MPEG1PacketPlayer,0x26c25940,0x4ca9,0x11ce,0xa8,0x28,0x0,0xaa,0x0,0x2f,0xea,0xb5)
-OUR_GUID_ENTRY(CLSID_MPEG1Splitter,0x336475d0,0x942a,0x11ce,0xa8,0x70,0x00,0xaa,0x00,0x2f,0xea,0xb5)
-OUR_GUID_ENTRY(CLSID_CMpegVideoCodec,0xfeb50740,0x7bef,0x11ce,0x9b,0xd9,0x0,0x0,0xe2,0x2,0x59,0x9c)
-OUR_GUID_ENTRY(CLSID_CMpegAudioCodec,0x4a2286e0,0x7bef,0x11ce,0x9b,0xd9,0x0,0x0,0xe2,0x2,0x59,0x9c)
-OUR_GUID_ENTRY(CLSID_TextRender,0xe30629d3,0x27e5,0x11ce,0x87,0x5d,0x0,0x60,0x8c,0xb7,0x80,0x66)
-OUR_GUID_ENTRY(CLSID_InfTee,0xf8388a40,0xd5bb,0x11d0,0xbe,0x5a,0x0,0x80,0xc7,0x6,0x56,0x8e)
-OUR_GUID_ENTRY(CLSID_AviSplitter,0x1b544c20,0xfd0b,0x11ce,0x8c,0x63,0x0,0xaa,0x00,0x44,0xb5,0x1e)
-OUR_GUID_ENTRY(CLSID_AviReader,0x1b544c21,0xfd0b,0x11ce,0x8c,0x63,0x0,0xaa,0x00,0x44,0xb5,0x1e)
-OUR_GUID_ENTRY(CLSID_VfwCapture,0x1b544c22,0xfd0b,0x11ce,0x8c,0x63,0x0,0xaa,0x00,0x44,0xb5,0x1e)
-OUR_GUID_ENTRY(CLSID_CaptureProperties,0x1B544c22,0xFD0B,0x11ce,0x8C,0x63,0x00,0xAA,0x00,0x44,0xB5,0x1F)
-OUR_GUID_ENTRY(CLSID_FGControl,0xe436ebb4,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(CLSID_MOVReader,0x44584800,0xf8ee,0x11ce,0xb2,0xd4,0x00,0xdd,0x1,0x10,0x1b,0x85)
-OUR_GUID_ENTRY(CLSID_QuickTimeParser,0xd51bd5a0,0x7548,0x11cf,0xa5,0x20,0x0,0x80,0xc7,0x7e,0xf5,0x8a)
-OUR_GUID_ENTRY(CLSID_QTDec,0xfdfe9681,0x74a3,0x11d0,0xaf,0xa7,0x0,0xaa,0x0,0xb6,0x7a,0x42)
-OUR_GUID_ENTRY(CLSID_AVIDoc,0xd3588ab0,0x0781,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0xb,0xa7,0x70)
-OUR_GUID_ENTRY(CLSID_VideoRenderer,0x70e102b0,0x5556,0x11ce,0x97,0xc0,0x00,0xaa,0x00,0x55,0x59,0x5a)
-OUR_GUID_ENTRY(CLSID_Colour,0x1643e180,0x90f5,0x11ce,0x97,0xd5,0x00,0xaa,0x00,0x55,0x59,0x5a)
-OUR_GUID_ENTRY(CLSID_Dither,0x1da08500,0x9edc,0x11cf,0xbc,0x10,0x00,0xaa,0x00,0xac,0x74,0xf6)
-OUR_GUID_ENTRY(CLSID_ModexRenderer,0x7167665,0x5011,0x11cf,0xbf,0x33,0x0,0xaa,0x0,0x55,0x59,0x5a)
-OUR_GUID_ENTRY(CLSID_AudioRender,0xe30629d1,0x27e5,0x11ce,0x87,0x5d,0x0,0x60,0x8c,0xb7,0x80,0x66)
-OUR_GUID_ENTRY(CLSID_AudioProperties,0x05589faf,0xc356,0x11ce,0xbf,0x01,0x0,0xaa,0x0,0x55,0x59,0x5a)
-OUR_GUID_ENTRY(CLSID_DSoundRender,0x79376820,0x07D0,0x11CF,0xA2,0x4D,0x0,0x20,0xAF,0xD7,0x97,0x67)
-OUR_GUID_ENTRY(CLSID_AudioRecord,0xe30629d2,0x27e5,0x11ce,0x87,0x5d,0x0,0x60,0x8c,0xb7,0x80,0x66)
-OUR_GUID_ENTRY(CLSID_AudioInputMixerProperties,0x2ca8ca52,0x3c3f,0x11d2,0xb7,0x3d,0x0,0xc0,0x4f,0xb6,0xbd,0x3d)
-OUR_GUID_ENTRY(CLSID_AVIDec,0xcf49d4e0,0x1115,0x11ce,0xb0,0x3a,0x0,0x20,0xaf,0xb,0xa7,0x70)
-OUR_GUID_ENTRY(CLSID_AVIDraw,0xa888df60,0x1e90,0x11cf,0xac,0x98,0x0,0xaa,0x0,0x4c,0xf,0xa9)
-OUR_GUID_ENTRY(CLSID_ACMWrapper,0x6a08cf80,0x0e18,0x11cf,0xa2,0x4d,0x0,0x20,0xaf,0xd7,0x97,0x67)
-OUR_GUID_ENTRY(CLSID_AsyncReader,0xe436ebb5,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(CLSID_URLReader,0xe436ebb6,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(CLSID_PersistMonikerPID,0xe436ebb7,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70)
-OUR_GUID_ENTRY(CLSID_AVICo,0xd76e2820,0x1563,0x11cf,0xac,0x98,0x0,0xaa,0x0,0x4c,0xf,0xa9)
-OUR_GUID_ENTRY(CLSID_FileWriter,0x8596e5f0,0xda5,0x11d0,0xbd,0x21,0x0,0xa0,0xc9,0x11,0xce,0x86)
-OUR_GUID_ENTRY(CLSID_AviDest,0xe2510970,0xf137,0x11ce,0x8b,0x67,0x0,0xaa,0x0,0xa3,0xf1,0xa6)
-OUR_GUID_ENTRY(CLSID_AviMuxProptyPage,0xc647b5c0,0x157c,0x11d0,0xbd,0x23,0x0,0xa0,0xc9,0x11,0xce,0x86)
-OUR_GUID_ENTRY(CLSID_AviMuxProptyPage1,0xa9ae910,0x85c0,0x11d0,0xbd,0x42,0x0,0xa0,0xc9,0x11,0xce,0x86)
-OUR_GUID_ENTRY(CLSID_AVIMIDIRender,0x07b65360,0xc445,0x11ce,0xaf,0xde,0x00,0xaa,0x00,0x6c,0x14,0xf4)
-OUR_GUID_ENTRY(CLSID_WMAsfReader,0x187463a0,0x5bb7,0x11d3,0xac,0xbe,0x0,0x80,0xc7,0x5e,0x24,0x6e)
-OUR_GUID_ENTRY(CLSID_WMAsfWriter,0x7c23220e,0x55bb,0x11d3,0x8b,0x16,0x0,0xc0,0x4f,0xb6,0xbd,0x3d)
-OUR_GUID_ENTRY(CLSID_MPEG2Demultiplexer,0xafb6c280,0x2c41,0x11d3,0x8a,0x60,0x00,0x00,0xf8,0x1e,0x0e,0x4a)
-OUR_GUID_ENTRY(CLSID_MMSPLITTER,0x3ae86b20,0x7be8,0x11d1,0xab,0xe6,0x00,0xa0,0xc9,0x05,0xf3,0x75)
-OUR_GUID_ENTRY(CLSID_StreamBufferSink,0x2db47ae5,0xcf39,0x43c2,0xb4,0xd6,0xc,0xd8,0xd9,0x9,0x46,0xf4)
-OUR_GUID_ENTRY(CLSID_StreamBufferSource,0xc9f5fe02,0xf851,0x4eb5,0x99,0xee,0xad,0x60,0x2a,0xf1,0xe6,0x19)
-OUR_GUID_ENTRY(CLSID_StreamBufferConfig,0xfa8a68b2,0xc864,0x4ba2,0xad,0x53,0xd3,0x87,0x6a,0x87,0x49,0x4b)
-OUR_GUID_ENTRY(CLSID_Mpeg2VideoStreamAnalyzer,0x6cfad761,0x735d,0x4aa5,0x8a,0xfc,0xaf,0x91,0xa7,0xd6,0x1e,0xba)
-OUR_GUID_ENTRY(CLSID_StreamBufferRecordingAttributes,0xccaa63ac,0x1057,0x4778,0xae,0x92,0x12,0x6,0xab,0x9a,0xce,0xe6)
-OUR_GUID_ENTRY(CLSID_StreamBufferComposeRecording,0xd682c4ba,0xa90a,0x42fe,0xb9,0xe1,0x3,0x10,0x98,0x49,0xc4,0x23)
-OUR_GUID_ENTRY(CLSID_DVVideoCodec,0xb1b77c00,0xc3e4,0x11cf,0xaf,0x79,0x0,0xaa,0x0,0xb6,0x7a,0x42)
-OUR_GUID_ENTRY(CLSID_DVVideoEnc,0x13aa3650,0xbb6f,0x11d0,0xaf,0xb9,0x0,0xaa,0x0,0xb6,0x7a,0x42)
-OUR_GUID_ENTRY(CLSID_DVSplitter,0x4eb31670,0x9fc6,0x11cf,0xaf,0x6e,0x0,0xaa,0x0,0xb6,0x7a,0x42)
-OUR_GUID_ENTRY(CLSID_DVMux,0x129d7e40,0xc10d,0x11d0,0xaf,0xb9,0x0,0xaa,0x0,0xb6,0x7a,0x42)
-OUR_GUID_ENTRY(CLSID_SeekingPassThru,0x60af76c,0x68dd,0x11d0,0x8f,0xc1,0x0,0xc0,0x4f,0xd9,0x18,0x9d)
-OUR_GUID_ENTRY(CLSID_Line21Decoder,0x6e8d4a20,0x310c,0x11d0,0xb7,0x9a,0x0,0xaa,0x0,0x37,0x67,0xa7)
-OUR_GUID_ENTRY(CLSID_Line21Decoder2,0xe4206432,0x01a1,0x4bee,0xb3,0xe1,0x37,0x02,0xc8,0xed,0xc5,0x74)
-OUR_GUID_ENTRY(CLSID_OverlayMixer,0xcd8743a1,0x3736,0x11d0,0x9e,0x69,0x0,0xc0,0x4f,0xd7,0xc1,0x5b)
-OUR_GUID_ENTRY(CLSID_VBISurfaces,0x814b9800,0x1c88,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a)
-OUR_GUID_ENTRY(CLSID_WSTDecoder,0x70bc06e0,0x5666,0x11d3,0xa1,0x84,0x0,0x10,0x5a,0xef,0x9f,0x33)
-OUR_GUID_ENTRY(CLSID_MjpegDec,0x301056d0,0x6dff,0x11d2,0x9e,0xeb,0x0,0x60,0x8,0x3,0x9e,0x37)
-OUR_GUID_ENTRY(CLSID_MJPGEnc,0xb80ab0a0,0x7416,0x11d2,0x9e,0xeb,0x0,0x60,0x8,0x3,0x9e,0x37)
-OUR_GUID_ENTRY(CLSID_SystemDeviceEnum,0x62BE5D10,0x60EB,0x11d0,0xBD,0x3B,0x00,0xA0,0xC9,0x11,0xCE,0x86)
-OUR_GUID_ENTRY(CLSID_CDeviceMoniker,0x4315D437,0x5B8C,0x11d0,0xBD,0x3B,0x00,0xA0,0xC9,0x11,0xCE,0x86)
-OUR_GUID_ENTRY(CLSID_VideoInputDeviceCategory,0x860BB310,0x5D01,0x11d0,0xBD,0x3B,0x00,0xA0,0xC9,0x11,0xCE,0x86)
-OUR_GUID_ENTRY(CLSID_CVidCapClassManager,0x860BB310,0x5D01,0x11d0,0xBD,0x3B,0x00,0xA0,0xC9,0x11,0xCE,0x86)
-OUR_GUID_ENTRY(CLSID_LegacyAmFilterCategory,0x083863F1,0x70DE,0x11d0,0xBD,0x40,0x00,0xA0,0xC9,0x11,0xCE,0x86)
-OUR_GUID_ENTRY(CLSID_CQzFilterClassManager,0x083863F1,0x70DE,0x11d0,0xBD,0x40,0x00,0xA0,0xC9,0x11,0xCE,0x86)
-OUR_GUID_ENTRY(CLSID_VideoCompressorCategory,0x33d9a760,0x90c8,0x11d0,0xbd,0x43,0x0,0xa0,0xc9,0x11,0xce,0x86)
-OUR_GUID_ENTRY(CLSID_CIcmCoClassManager,0x33d9a760,0x90c8,0x11d0,0xbd,0x43,0x0,0xa0,0xc9,0x11,0xce,0x86)
-OUR_GUID_ENTRY(CLSID_AudioCompressorCategory,0x33d9a761,0x90c8,0x11d0,0xbd,0x43,0x0,0xa0,0xc9,0x11,0xce,0x86)
-OUR_GUID_ENTRY(CLSID_CAcmCoClassManager,0x33d9a761,0x90c8,0x11d0,0xbd,0x43,0x0,0xa0,0xc9,0x11,0xce,0x86)
-OUR_GUID_ENTRY(CLSID_AudioInputDeviceCategory,0x33d9a762,0x90c8,0x11d0,0xbd,0x43,0x0,0xa0,0xc9,0x11,0xce,0x86)
-OUR_GUID_ENTRY(CLSID_CWaveinClassManager,0x33d9a762,0x90c8,0x11d0,0xbd,0x43,0x0,0xa0,0xc9,0x11,0xce,0x86)
-OUR_GUID_ENTRY(CLSID_AudioRendererCategory,0xe0f158e1,0xcb04,0x11d0,0xbd,0x4e,0x0,0xa0,0xc9,0x11,0xce,0x86)
-OUR_GUID_ENTRY(CLSID_CWaveOutClassManager,0xe0f158e1,0xcb04,0x11d0,0xbd,0x4e,0x0,0xa0,0xc9,0x11,0xce,0x86)
-OUR_GUID_ENTRY(CLSID_MidiRendererCategory,0x4EfE2452,0x168A,0x11d1,0xBC,0x76,0x0,0xc0,0x4F,0xB9,0x45,0x3B)
-OUR_GUID_ENTRY(CLSID_CMidiOutClassManager,0x4EfE2452,0x168A,0x11d1,0xBC,0x76,0x0,0xc0,0x4F,0xB9,0x45,0x3B)
-OUR_GUID_ENTRY(CLSID_TransmitCategory,0xcc7bfb41,0xf175,0x11d1,0xa3,0x92,0x0,0xe0,0x29,0x1f,0x39,0x59)
-OUR_GUID_ENTRY(CLSID_DeviceControlCategory,0xcc7bfb46,0xf175,0x11d1,0xa3,0x92,0x0,0xe0,0x29,0x1f,0x39,0x59)
-OUR_GUID_ENTRY(CLSID_ActiveMovieCategories,0xda4e3da0,0xd07d,0x11d0,0xbd,0x50,0x0,0xa0,0xc9,0x11,0xce,0x86)
-OUR_GUID_ENTRY(CLSID_DVDHWDecodersCategory,0x2721AE20,0x7E70,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00)
-OUR_GUID_ENTRY(CLSID_MediaEncoderCategory,0x7D22E920,0x5CA9,0x4787,0x8C,0x2B,0xA6,0x77,0x9B,0xD1,0x17,0x81)
-OUR_GUID_ENTRY(CLSID_MediaMultiplexerCategory,0x236C9559,0xADCE,0x4736,0xBF,0x72,0xBA,0xB3,0x4E,0x39,0x21,0x96)
-OUR_GUID_ENTRY(CLSID_FilterMapper2,0xcda42200,0xbd88,0x11d0,0xbd,0x4e,0x0,0xa0,0xc9,0x11,0xce,0x86)
-OUR_GUID_ENTRY(CLSID_MemoryAllocator,0x1e651cc0,0xb199,0x11d0,0x82,0x12,0x00,0xc0,0x4f,0xc3,0x2c,0x45)
-OUR_GUID_ENTRY(CLSID_MediaPropertyBag,0xcdbd8d00,0xc193,0x11d0,0xbd,0x4e,0x0,0xa0,0xc9,0x11,0xce,0x86)
-OUR_GUID_ENTRY(CLSID_DvdGraphBuilder,0xFCC152B7,0xF372,0x11d0,0x8E,0x00,0x00,0xC0,0x4F,0xD7,0xC0,0x8B)
-OUR_GUID_ENTRY(CLSID_DVDNavigator,0x9b8c4620,0x2c1a,0x11d0,0x84,0x93,0x0,0xa0,0x24,0x38,0xad,0x48)
-OUR_GUID_ENTRY(CLSID_DVDState,0xf963c5cf,0xa659,0x4a93,0x96,0x38,0xca,0xf3,0xcd,0x27,0x7d,0x13)
-OUR_GUID_ENTRY(CLSID_SmartTee,0xcc58e280,0x8aa1,0x11d1,0xb3,0xf1,0x0,0xaa,0x0,0x37,0x61,0xc5)
-OUR_GUID_ENTRY(FORMAT_None,0x0F6417D6,0xc318,0x11d0,0xa4,0x3f,0x00,0xa0,0xc9,0x22,0x31,0x96)
-OUR_GUID_ENTRY(FORMAT_VideoInfo,0x05589f80,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a)
-OUR_GUID_ENTRY(FORMAT_VideoInfo2,0xf72a76A0,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(FORMAT_WaveFormatEx,0x05589f81,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a)
-OUR_GUID_ENTRY(FORMAT_MPEGVideo,0x05589f82,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a)
-OUR_GUID_ENTRY(FORMAT_MPEGStreams,0x05589f83,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a)
-OUR_GUID_ENTRY(FORMAT_DvInfo,0x05589f84,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a)
-OUR_GUID_ENTRY(CLSID_DirectDrawProperties,0x944d4c00,0xdd52,0x11ce,0xbf,0x0e,0x00,0xaa,0x00,0x55,0x59,0x5a)
-OUR_GUID_ENTRY(CLSID_PerformanceProperties,0x59ce6880,0xacf8,0x11cf,0xb5,0x6e,0x00,0x80,0xc7,0xc4,0xb6,0x8a)
-OUR_GUID_ENTRY(CLSID_QualityProperties,0x418afb70,0xf8b8,0x11ce,0xaa,0xc6,0x00,0x20,0xaf,0x0b,0x99,0xa3)
-OUR_GUID_ENTRY(IID_IBaseVideoMixer,0x61ded640,0xe912,0x11ce,0xa0,0x99,0x00,0xaa,0x00,0x47,0x9a,0x58)
-OUR_GUID_ENTRY(IID_IDirectDrawVideo,0x36d39eb0,0xdd75,0x11ce,0xbf,0x0e,0x00,0xaa,0x00,0x55,0x59,0x5a)
-OUR_GUID_ENTRY(IID_IQualProp,0x1bd0ecb0,0xf8e2,0x11ce,0xaa,0xc6,0x00,0x20,0xaf,0x0b,0x99,0xa3)
-OUR_GUID_ENTRY(CLSID_VPObject,0xce292861,0xfc88,0x11d0,0x9e,0x69,0x0,0xc0,0x4f,0xd7,0xc1,0x5b)
-OUR_GUID_ENTRY(IID_IVPObject,0xce292862,0xfc88,0x11d0,0x9e,0x69,0x0,0xc0,0x4f,0xd7,0xc1,0x5b)
-OUR_GUID_ENTRY(IID_IVPControl,0x25df12c1,0x3de0,0x11d1,0x9e,0x69,0x0,0xc0,0x4f,0xd7,0xc1,0x5b)
-OUR_GUID_ENTRY(CLSID_VPVBIObject,0x814b9801,0x1c88,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a)
-OUR_GUID_ENTRY(IID_IVPVBIObject,0x814b9802,0x1c88,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a)
-OUR_GUID_ENTRY(IID_IVPConfig,0xbc29a660,0x30e3,0x11d0,0x9e,0x69,0x0,0xc0,0x4f,0xd7,0xc1,0x5b)
-OUR_GUID_ENTRY(IID_IVPNotify,0xc76794a1,0xd6c5,0x11d0,0x9e,0x69,0x0,0xc0,0x4f,0xd7,0xc1,0x5b)
-OUR_GUID_ENTRY(IID_IVPNotify2,0xebf47183,0x8764,0x11d1,0x9e,0x69,0x0,0xc0,0x4f,0xd7,0xc1,0x5b)
-OUR_GUID_ENTRY(IID_IVPVBIConfig,0xec529b00,0x1a1f,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a)
-OUR_GUID_ENTRY(IID_IVPVBINotify,0xec529b01,0x1a1f,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a)
-OUR_GUID_ENTRY(IID_IMixerPinConfig,0x593cdde1,0x759,0x11d1,0x9e,0x69,0x0,0xc0,0x4f,0xd7,0xc1,0x5b)
-OUR_GUID_ENTRY(IID_IMixerPinConfig2,0xebf47182,0x8764,0x11d1,0x9e,0x69,0x0,0xc0,0x4f,0xd7,0xc1,0x5b)
-#ifndef __DDRAW_INCLUDED__
-OUR_GUID_ENTRY(CLSID_DirectDraw,0xD7B70EE0,0x4340,0x11CF,0xB0,0x63,0x00,0x20,0xAF,0xC2,0xCD,0x35)
-OUR_GUID_ENTRY(CLSID_DirectDrawClipper,0x593817A0,0x7DB3,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xb9,0x33,0x56)
-OUR_GUID_ENTRY(IID_IDirectDraw,0x6C14DB80,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60)
-OUR_GUID_ENTRY(IID_IDirectDraw2,0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56)
-OUR_GUID_ENTRY(IID_IDirectDrawSurface,0x6C14DB81,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60)
-OUR_GUID_ENTRY(IID_IDirectDrawSurface2,0x57805885,0x6eec,0x11cf,0x94,0x41,0xa8,0x23,0x03,0xc1,0x0e,0x27)
-OUR_GUID_ENTRY(IID_IDirectDrawSurface3,0xDA044E00,0x69B2,0x11D0,0xA1,0xD5,0x00,0xAA,0x00,0xB8,0xDF,0xBB)
-OUR_GUID_ENTRY(IID_IDirectDrawSurface4,0x0B2B8630,0xAD35,0x11D0,0x8E,0xA6,0x00,0x60,0x97,0x97,0xEA,0x5B)
-OUR_GUID_ENTRY(IID_IDirectDrawSurface7,0x06675a80,0x3b9b,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b)
-OUR_GUID_ENTRY(IID_IDirectDrawPalette,0x6C14DB84,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60)
-OUR_GUID_ENTRY(IID_IDirectDrawClipper,0x6C14DB85,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60)
-OUR_GUID_ENTRY(IID_IDirectDrawColorControl,0x4B9F0EE0,0x0D7E,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8)
-#endif
-#ifndef __DVP_INCLUDED__
-OUR_GUID_ENTRY(IID_IDDVideoPortContainer,0x6C142760,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60)
-#endif
-#ifndef __DDKM_INCLUDED__
-OUR_GUID_ENTRY(IID_IDirectDrawKernel,0x8D56C120,0x6A08,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8)
-OUR_GUID_ENTRY(IID_IDirectDrawSurfaceKernel,0x60755DA0,0x6A40,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8)
-#endif
-OUR_GUID_ENTRY(CLSID_ModexProperties,0x0618aa30,0x6bc4,0x11cf,0xbf,0x36,0x00,0xaa,0x00,0x55,0x59,0x5a)
-OUR_GUID_ENTRY(IID_IFullScreenVideo,0xdd1d7110,0x7836,0x11cf,0xbf,0x47,0x00,0xaa,0x00,0x55,0x59,0x5a)
-OUR_GUID_ENTRY(IID_IFullScreenVideoEx,0x53479470,0xf1dd,0x11cf,0xbc,0x42,0x00,0xaa,0x00,0xac,0x74,0xf6)
-OUR_GUID_ENTRY(CLSID_DVDecPropertiesPage,0x101193c0,0xbfe,0x11d0,0xaf,0x91,0x0,0xaa,0x0,0xb6,0x7a,0x42)
-OUR_GUID_ENTRY(CLSID_DVEncPropertiesPage,0x4150f050,0xbb6f,0x11d0,0xaf,0xb9,0x0,0xaa,0x0,0xb6,0x7a,0x42)
-OUR_GUID_ENTRY(CLSID_DVMuxPropertyPage,0x4db880e0,0xc10d,0x11d0,0xaf,0xb9,0x0,0xaa,0x0,0xb6,0x7a,0x42)
-OUR_GUID_ENTRY(IID_IAMDirectSound,0x546f4260,0xd53e,0x11cf,0xb3,0xf0,0x0,0xaa,0x0,0x37,0x61,0xc5)
-OUR_GUID_ENTRY(IID_IMpegAudioDecoder,0xb45dd570,0x3c77,0x11d1,0xab,0xe1,0x00,0xa0,0xc9,0x05,0xf3,0x75)
-OUR_GUID_ENTRY(IID_IAMLine21Decoder,0x6e8d4a21,0x310c,0x11d0,0xb7,0x9a,0x0,0xaa,0x0,0x37,0x67,0xa7)
-OUR_GUID_ENTRY(IID_IAMWstDecoder,0xc056de21,0x75c2,0x11d3,0xa1,0x84,0x0,0x10,0x5a,0xef,0x9f,0x33)
-OUR_GUID_ENTRY(CLSID_WstDecoderPropertyPage,0x4e27f80,0x91e4,0x11d3,0xa1,0x84,0x0,0x10,0x5a,0xef,0x9f,0x33)
-OUR_GUID_ENTRY(FORMAT_AnalogVideo,0x482dde0,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIATYPE_AnalogVideo,0x482dde1,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_NTSC_M,0x482dde2,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_B,0x482dde5,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_D,0x482dde6,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_G,0x482dde7,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_H,0x482dde8,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_I,0x482dde9,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_M,0x482ddea,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_N,0x482ddeb,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_N_COMBO,0x482ddec,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_B,0x482ddf0,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_D,0x482ddf1,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_G,0x482ddf2,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_H,0x482ddf3,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_K,0x482ddf4,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_K1,0x482ddf5,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_L,0x482ddf6,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(MEDIATYPE_AnalogAudio,0x482dee1,0x7817,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-
-#include "dshow/ksuuids.h"
-
-OUR_GUID_ENTRY(TIME_FORMAT_NONE,0L,0,0,0,0,0,0,0,0,0,0)
-OUR_GUID_ENTRY(TIME_FORMAT_FRAME,0x7b785570,0x8c82,0x11cf,0xbc,0xc,0x0,0xaa,0x0,0xac,0x74,0xf6)
-OUR_GUID_ENTRY(TIME_FORMAT_BYTE,0x7b785571,0x8c82,0x11cf,0xbc,0xc,0x0,0xaa,0x0,0xac,0x74,0xf6)
-OUR_GUID_ENTRY(TIME_FORMAT_SAMPLE,0x7b785572,0x8c82,0x11cf,0xbc,0xc,0x0,0xaa,0x0,0xac,0x74,0xf6)
-OUR_GUID_ENTRY(TIME_FORMAT_FIELD,0x7b785573,0x8c82,0x11cf,0xbc,0xc,0x0,0xaa,0x0,0xac,0x74,0xf6)
-OUR_GUID_ENTRY(TIME_FORMAT_MEDIA_TIME,0x7b785574,0x8c82,0x11cf,0xbc,0xc,0x0,0xaa,0x0,0xac,0x74,0xf6)
-OUR_GUID_ENTRY(AMPROPSETID_Pin,0x9b00f101,0x1567,0x11d1,0xb3,0xf1,0x0,0xaa,0x0,0x37,0x61,0xc5)
-OUR_GUID_ENTRY(PIN_CATEGORY_CAPTURE,0xfb6c4281,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(PIN_CATEGORY_PREVIEW,0xfb6c4282,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(PIN_CATEGORY_ANALOGVIDEOIN,0xfb6c4283,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(PIN_CATEGORY_VBI,0xfb6c4284,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(PIN_CATEGORY_VIDEOPORT,0xfb6c4285,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(PIN_CATEGORY_NABTS,0xfb6c4286,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(PIN_CATEGORY_EDS,0xfb6c4287,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(PIN_CATEGORY_TELETEXT,0xfb6c4288,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(PIN_CATEGORY_CC,0xfb6c4289,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(PIN_CATEGORY_STILL,0xfb6c428a,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(PIN_CATEGORY_TIMECODE,0xfb6c428b,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(PIN_CATEGORY_VIDEOPORT_VBI,0xfb6c428c,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba)
-OUR_GUID_ENTRY(LOOK_UPSTREAM_ONLY,0xac798be0,0x98e3,0x11d1,0xb3,0xf1,0x0,0xaa,0x0,0x37,0x61,0xc5)
-OUR_GUID_ENTRY(LOOK_DOWNSTREAM_ONLY,0xac798be1,0x98e3,0x11d1,0xb3,0xf1,0x0,0xaa,0x0,0x37,0x61,0xc5)
-OUR_GUID_ENTRY(CLSID_TVTunerFilterPropertyPage,0x266eee41,0x6c63,0x11cf,0x8a,0x3,0x0,0xaa,0x0,0x6e,0xcb,0x65)
-OUR_GUID_ENTRY(CLSID_CrossbarFilterPropertyPage,0x71f96461,0x78f3,0x11d0,0xa1,0x8c,0x0,0xa0,0xc9,0x11,0x89,0x56)
-OUR_GUID_ENTRY(CLSID_TVAudioFilterPropertyPage,0x71f96463,0x78f3,0x11d0,0xa1,0x8c,0x0,0xa0,0xc9,0x11,0x89,0x56)
-OUR_GUID_ENTRY(CLSID_VideoProcAmpPropertyPage,0x71f96464,0x78f3,0x11d0,0xa1,0x8c,0x0,0xa0,0xc9,0x11,0x89,0x56)
-OUR_GUID_ENTRY(CLSID_CameraControlPropertyPage,0x71f96465,0x78f3,0x11d0,0xa1,0x8c,0x0,0xa0,0xc9,0x11,0x89,0x56)
-OUR_GUID_ENTRY(CLSID_AnalogVideoDecoderPropertyPage,0x71f96466,0x78f3,0x11d0,0xa1,0x8c,0x0,0xa0,0xc9,0x11,0x89,0x56)
-OUR_GUID_ENTRY(CLSID_VideoStreamConfigPropertyPage,0x71f96467,0x78f3,0x11d0,0xa1,0x8c,0x0,0xa0,0xc9,0x11,0x89,0x56)
-OUR_GUID_ENTRY(CLSID_AudioRendererAdvancedProperties,0x37e92a92,0xd9aa,0x11d2,0xbf,0x84,0x8e,0xf2,0xb1,0x55,0x5a,0xed)
-OUR_GUID_ENTRY(CLSID_VideoMixingRenderer,0xB87BEB7B,0x8D29,0x423f,0xAE,0x4D,0x65,0x82,0xC1,0x01,0x75,0xAC)
-OUR_GUID_ENTRY(CLSID_VideoRendererDefault,0x6BC1CFFA,0x8FC1,0x4261,0xAC,0x22,0xCF,0xB4,0xCC,0x38,0xDB,0x50)
-OUR_GUID_ENTRY(CLSID_AllocPresenter,0x99d54f63,0x1a69,0x41ae,0xaa,0x4d,0xc9,0x76,0xeb,0x3f,0x07,0x13)
-OUR_GUID_ENTRY(CLSID_AllocPresenterDDXclMode,0x4444ac9e,0x242e,0x471b,0xa3,0xc7,0x45,0xdc,0xd4,0x63,0x52,0xbc)
-OUR_GUID_ENTRY(CLSID_VideoPortManager,0x6f26a6cd,0x967b,0x47fd,0x87,0x4a,0x7a,0xed,0x2c,0x9d,0x25,0xa2)
-OUR_GUID_ENTRY(CLSID_VideoMixingRenderer9,0x51b4abf3,0x748f,0x4e3b,0xa2,0x76,0xc8,0x28,0x33,0x0e,0x92,0x6a)
-OUR_GUID_ENTRY(CLSID_ATSCNetworkProvider,0x0dad2fdd,0x5fd7,0x11d3,0x8f,0x50,0x00,0xc0,0x4f,0x79,0x71,0xe2)
-OUR_GUID_ENTRY(CLSID_ATSCNetworkPropertyPage,0xe3444d16,0x5ac4,0x4386,0x88,0xdf,0x13,0xfd,0x23,0x0e,0x1d,0xda)
-OUR_GUID_ENTRY(CLSID_DVBSNetworkProvider,0xfa4b375a,0x45b4,0x4d45,0x84,0x40,0x26,0x39,0x57,0xb1,0x16,0x23)
-OUR_GUID_ENTRY(CLSID_DVBTNetworkProvider,0x216c62df,0x6d7f,0x4e9a,0x85,0x71,0x5,0xf1,0x4e,0xdb,0x76,0x6a)
-OUR_GUID_ENTRY(CLSID_DVBCNetworkProvider,0xdc0c0fe7,0x485,0x4266,0xb9,0x3f,0x68,0xfb,0xf8,0xe,0xd8,0x34)
-OUR_GUID_ENTRY(CLSID_DShowTVEFilter,0x05500280,0xFAA5,0x4DF9,0x82,0x46,0xBF,0xC2,0x3A,0xC5,0xCE,0xA8)
-OUR_GUID_ENTRY(CLSID_TVEFilterTuneProperties,0x05500281,0xFAA5,0x4DF9,0x82,0x46,0xBF,0xC2,0x3A,0xC5,0xCE,0xA8)
-OUR_GUID_ENTRY(CLSID_TVEFilterCCProperties,0x05500282,0xFAA5,0x4DF9,0x82,0x46,0xBF,0xC2,0x3A,0xC5,0xCE,0xA8)
-OUR_GUID_ENTRY(CLSID_TVEFilterStatsProperties,0x05500283,0xFAA5,0x4DF9,0x82,0x46,0xBF,0xC2,0x3A,0xC5,0xCE,0xA8)
-OUR_GUID_ENTRY(CLSID_IVideoEncoderProxy,0xb43c4eec,0x8c32,0x4791,0x91,0x2,0x50,0x8a,0xda,0x5e,0xe8,0xe7)
-OUR_GUID_ENTRY(CLSID_ICodecAPIProxy,0x7ff0997a,0x1999,0x4286,0xa7,0x3c,0x62,0x2b,0x88,0x14,0xe7,0xeb)
-OUR_GUID_ENTRY(CLSID_IVideoEncoderCodecAPIProxy,0xb05dabd9,0x56e5,0x4fdc,0xaf,0xa4,0x8a,0x47,0xe9,0x1f,0x1c,0x9c)
-
-#ifndef __ENCODER_API_GUIDS__
-#define __ENCODER_API_GUIDS__
-OUR_GUID_ENTRY(ENCAPIPARAM_BITRATE,0x49cc4c43,0xca83,0x4ad4,0xa9,0xaf,0xf3,0x69,0x6a,0xf6,0x66,0xdf)
-OUR_GUID_ENTRY(ENCAPIPARAM_PEAK_BITRATE,0x703f16a9,0x3d48,0x44a1,0xb0,0x77,0x1,0x8d,0xff,0x91,0x5d,0x19)
-OUR_GUID_ENTRY(ENCAPIPARAM_BITRATE_MODE,0xee5fb25c,0xc713,0x40d1,0x9d,0x58,0xc0,0xd7,0x24,0x1e,0x25,0xf)
-OUR_GUID_ENTRY(CODECAPI_CHANGELISTS,0x62b12acf,0xf6b0,0x47d9,0x94,0x56,0x96,0xf2,0x2c,0x4e,0x0b,0x9d)
-OUR_GUID_ENTRY(CODECAPI_VIDEO_ENCODER,0x7112e8e1,0x3d03,0x47ef,0x8e,0x60,0x03,0xf1,0xcf,0x53,0x73,0x01)
-OUR_GUID_ENTRY(CODECAPI_AUDIO_ENCODER,0xb9d19a3e,0xf897,0x429c,0xbc,0x46,0x81,0x38,0xb7,0x27,0x2b,0x2d)
-OUR_GUID_ENTRY(CODECAPI_SETALLDEFAULTS,0x6c5e6a7c,0xacf8,0x4f55,0xa9,0x99,0x1a,0x62,0x81,0x09,0x05,0x1b)
-OUR_GUID_ENTRY(CODECAPI_ALLSETTINGS,0x6a577e92,0x83e1,0x4113,0xad,0xc2,0x4f,0xce,0xc3,0x2f,0x83,0xa1)
-OUR_GUID_ENTRY(CODECAPI_SUPPORTSEVENTS,0x0581af97,0x7693,0x4dbd,0x9d,0xca,0x3f,0x9e,0xbd,0x65,0x85,0xa1)
-OUR_GUID_ENTRY(CODECAPI_CURRENTCHANGELIST,0x1cb14e83,0x7d72,0x4657,0x83,0xfd,0x47,0xa2,0xc5,0xb9,0xd1,0x3d)
-#endif
-
-#undef OUR_GUID_ENTRY
diff --git a/3rdparty/include/msc_inttypes.h b/3rdparty/include/msc_inttypes.h
deleted file mode 100644
index 352fbc7..0000000
--- a/3rdparty/include/msc_inttypes.h
+++ /dev/null
@@ -1,301 +0,0 @@
-// ISO C9x  compliant inttypes.h for Microsoft Visual Studio
-// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
-//
-//  Copyright (c) 2006 Alexander Chemeris
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-//   1. Redistributions of source code must retain the above copyright notice,
-//      this list of conditions and the following disclaimer.
-//
-//   2. Redistributions in binary form must reproduce the above copyright
-//      notice, this list of conditions and the following disclaimer in the
-//      documentation and/or other materials provided with the distribution.
-//
-//   3. The name of the author may be used to endorse or promote products
-//      derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef _MSC_VER // [
-#error "Use this header only with Microsoft Visual C++ compilers!"
-#endif // _MSC_VER ]
-
-#ifndef _MSC_INTTYPES_H_ // [
-#define _MSC_INTTYPES_H_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif
-
-#include <msc_stdint.h>
-
-// 7.8 Format conversion of integer types
-
-typedef struct {
-   intmax_t quot;
-   intmax_t rem;
-} imaxdiv_t;
-
-// 7.8.1 Macros for format specifiers
-
-// The fprintf macros for signed integers are:
-#define PRId8       "d"
-#define PRIi8       "i"
-#define PRIdLEAST8  "d"
-#define PRIiLEAST8  "i"
-#define PRIdFAST8   "d"
-#define PRIiFAST8   "i"
-
-#define PRId16       "hd"
-#define PRIi16       "hi"
-#define PRIdLEAST16  "hd"
-#define PRIiLEAST16  "hi"
-#define PRIdFAST16   "hd"
-#define PRIiFAST16   "hi"
-
-#define PRId32       "I32d"
-#define PRIi32       "I32i"
-#define PRIdLEAST32  "I32d"
-#define PRIiLEAST32  "I32i"
-#define PRIdFAST32   "I32d"
-#define PRIiFAST32   "I32i"
-
-#define PRId64       "I64d"
-#define PRIi64       "I64i"
-#define PRIdLEAST64  "I64d"
-#define PRIiLEAST64  "I64i"
-#define PRIdFAST64   "I64d"
-#define PRIiFAST64   "I64i"
-
-#define PRIdMAX     "I64d"
-#define PRIiMAX     "I64i"
-
-#define PRIdPTR     "Id"
-#define PRIiPTR     "Ii"
-
-// The fprintf macros for unsigned integers are:
-#define PRIo8       "o"
-#define PRIu8       "u"
-#define PRIx8       "x"
-#define PRIX8       "X"
-#define PRIoLEAST8  "o"
-#define PRIuLEAST8  "u"
-#define PRIxLEAST8  "x"
-#define PRIXLEAST8  "X"
-#define PRIoFAST8   "o"
-#define PRIuFAST8   "u"
-#define PRIxFAST8   "x"
-#define PRIXFAST8   "X"
-
-#define PRIo16       "ho"
-#define PRIu16       "hu"
-#define PRIx16       "hx"
-#define PRIX16       "hX"
-#define PRIoLEAST16  "ho"
-#define PRIuLEAST16  "hu"
-#define PRIxLEAST16  "hx"
-#define PRIXLEAST16  "hX"
-#define PRIoFAST16   "ho"
-#define PRIuFAST16   "hu"
-#define PRIxFAST16   "hx"
-#define PRIXFAST16   "hX"
-
-#define PRIo32       "I32o"
-#define PRIu32       "I32u"
-#define PRIx32       "I32x"
-#define PRIX32       "I32X"
-#define PRIoLEAST32  "I32o"
-#define PRIuLEAST32  "I32u"
-#define PRIxLEAST32  "I32x"
-#define PRIXLEAST32  "I32X"
-#define PRIoFAST32   "I32o"
-#define PRIuFAST32   "I32u"
-#define PRIxFAST32   "I32x"
-#define PRIXFAST32   "I32X"
-
-#define PRIo64       "I64o"
-#define PRIu64       "I64u"
-#define PRIx64       "I64x"
-#define PRIX64       "I64X"
-#define PRIoLEAST64  "I64o"
-#define PRIuLEAST64  "I64u"
-#define PRIxLEAST64  "I64x"
-#define PRIXLEAST64  "I64X"
-#define PRIoFAST64   "I64o"
-#define PRIuFAST64   "I64u"
-#define PRIxFAST64   "I64x"
-#define PRIXFAST64   "I64X"
-
-#define PRIoMAX     "I64o"
-#define PRIuMAX     "I64u"
-#define PRIxMAX     "I64x"
-#define PRIXMAX     "I64X"
-
-#define PRIoPTR     "Io"
-#define PRIuPTR     "Iu"
-#define PRIxPTR     "Ix"
-#define PRIXPTR     "IX"
-
-// The fscanf macros for signed integers are:
-#define SCNd8       "d"
-#define SCNi8       "i"
-#define SCNdLEAST8  "d"
-#define SCNiLEAST8  "i"
-#define SCNdFAST8   "d"
-#define SCNiFAST8   "i"
-
-#define SCNd16       "hd"
-#define SCNi16       "hi"
-#define SCNdLEAST16  "hd"
-#define SCNiLEAST16  "hi"
-#define SCNdFAST16   "hd"
-#define SCNiFAST16   "hi"
-
-#define SCNd32       "ld"
-#define SCNi32       "li"
-#define SCNdLEAST32  "ld"
-#define SCNiLEAST32  "li"
-#define SCNdFAST32   "ld"
-#define SCNiFAST32   "li"
-
-#define SCNd64       "I64d"
-#define SCNi64       "I64i"
-#define SCNdLEAST64  "I64d"
-#define SCNiLEAST64  "I64i"
-#define SCNdFAST64   "I64d"
-#define SCNiFAST64   "I64i"
-
-#define SCNdMAX     "I64d"
-#define SCNiMAX     "I64i"
-
-#ifdef _WIN64 // [
-#  define SCNdPTR     "I64d"
-#  define SCNiPTR     "I64i"
-#else  // _WIN64 ][
-#  define SCNdPTR     "ld"
-#  define SCNiPTR     "li"
-#endif  // _WIN64 ]
-
-// The fscanf macros for unsigned integers are:
-#define SCNo8       "o"
-#define SCNu8       "u"
-#define SCNx8       "x"
-#define SCNX8       "X"
-#define SCNoLEAST8  "o"
-#define SCNuLEAST8  "u"
-#define SCNxLEAST8  "x"
-#define SCNXLEAST8  "X"
-#define SCNoFAST8   "o"
-#define SCNuFAST8   "u"
-#define SCNxFAST8   "x"
-#define SCNXFAST8   "X"
-
-#define SCNo16       "ho"
-#define SCNu16       "hu"
-#define SCNx16       "hx"
-#define SCNX16       "hX"
-#define SCNoLEAST16  "ho"
-#define SCNuLEAST16  "hu"
-#define SCNxLEAST16  "hx"
-#define SCNXLEAST16  "hX"
-#define SCNoFAST16   "ho"
-#define SCNuFAST16   "hu"
-#define SCNxFAST16   "hx"
-#define SCNXFAST16   "hX"
-
-#define SCNo32       "lo"
-#define SCNu32       "lu"
-#define SCNx32       "lx"
-#define SCNX32       "lX"
-#define SCNoLEAST32  "lo"
-#define SCNuLEAST32  "lu"
-#define SCNxLEAST32  "lx"
-#define SCNXLEAST32  "lX"
-#define SCNoFAST32   "lo"
-#define SCNuFAST32   "lu"
-#define SCNxFAST32   "lx"
-#define SCNXFAST32   "lX"
-
-#define SCNo64       "I64o"
-#define SCNu64       "I64u"
-#define SCNx64       "I64x"
-#define SCNX64       "I64X"
-#define SCNoLEAST64  "I64o"
-#define SCNuLEAST64  "I64u"
-#define SCNxLEAST64  "I64x"
-#define SCNXLEAST64  "I64X"
-#define SCNoFAST64   "I64o"
-#define SCNuFAST64   "I64u"
-#define SCNxFAST64   "I64x"
-#define SCNXFAST64   "I64X"
-
-#define SCNoMAX     "I64o"
-#define SCNuMAX     "I64u"
-#define SCNxMAX     "I64x"
-#define SCNXMAX     "I64X"
-
-#ifdef _WIN64 // [
-#  define SCNoPTR     "I64o"
-#  define SCNuPTR     "I64u"
-#  define SCNxPTR     "I64x"
-#  define SCNXPTR     "I64X"
-#else  // _WIN64 ][
-#  define SCNoPTR     "lo"
-#  define SCNuPTR     "lu"
-#  define SCNxPTR     "lx"
-#  define SCNXPTR     "lX"
-#endif  // _WIN64 ]
-
-// 7.8.2 Functions for greatest-width integer types
-
-// 7.8.2.1 The imaxabs function
-#define imaxabs _abs64
-
-// 7.8.2.2 The imaxdiv function
-
-// This is modified version of div() function from Microsoft's div.c found
-// in %MSVC.NET%\crt\src\div.c
-#ifdef STATIC_IMAXDIV // [
-static
-#else // STATIC_IMAXDIV ][
-_inline
-#endif // STATIC_IMAXDIV ]
-imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom)
-{
-   imaxdiv_t result;
-
-   result.quot = numer / denom;
-   result.rem = numer % denom;
-
-   if (numer < 0 && result.rem > 0) {
-      // did division wrong; must fix up
-      ++result.quot;
-      result.rem -= denom;
-   }
-
-   return result;
-}
-
-// 7.8.2.3 The strtoimax and strtoumax functions
-#define strtoimax _strtoi64
-#define strtoumax _strtoui64
-
-// 7.8.2.4 The wcstoimax and wcstoumax functions
-#define wcstoimax _wcstoi64
-#define wcstoumax _wcstoui64
-
-
-#endif // _MSC_INTTYPES_H_ ]
diff --git a/3rdparty/include/msc_stdint.h b/3rdparty/include/msc_stdint.h
deleted file mode 100644
index 7ac71fc..0000000
--- a/3rdparty/include/msc_stdint.h
+++ /dev/null
@@ -1,219 +0,0 @@
-// ISO C9x  compliant stdint.h for Microsoft Visual Studio
-// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
-//
-//  Copyright (c) 2006 Alexander Chemeris
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-//   1. Redistributions of source code must retain the above copyright notice,
-//      this list of conditions and the following disclaimer.
-//
-//   2. Redistributions in binary form must reproduce the above copyright
-//      notice, this list of conditions and the following disclaimer in the
-//      documentation and/or other materials provided with the distribution.
-//
-//   3. The name of the author may be used to endorse or promote products
-//      derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef _MSC_STDINT_H_ // [
-#define _MSC_STDINT_H_
-
-#include <limits.h>
-
-// For Visual Studio 6 in C++ mode wrap <wchar.h> include with 'extern "C++" {}'
-// or compiler give many errors like this:
-//   error C2733: second C linkage of overloaded function 'wmemchr' not allowed
-#if (_MSC_VER < 1300) && defined(__cplusplus)
-   extern "C++" {
-#endif
-#     include <wchar.h>
-#if (_MSC_VER < 1300) && defined(__cplusplus)
-   }
-#endif
-
-#if defined __GNUC__ || _MSC_VER >= 1600
-#include "stdint.h"
-#else
-
-// 7.18.1 Integer types
-
-// 7.18.1.1 Exact-width integer types
-typedef __int8            int8_t;
-typedef __int16           int16_t;
-typedef __int32           int32_t;
-typedef __int64           int64_t;
-typedef unsigned __int8   uint8_t;
-typedef unsigned __int16  uint16_t;
-typedef unsigned __int32  uint32_t;
-typedef unsigned __int64  uint64_t;
-
-// 7.18.1.2 Minimum-width integer types
-typedef int8_t    int_least8_t;
-typedef int16_t   int_least16_t;
-typedef int32_t   int_least32_t;
-typedef int64_t   int_least64_t;
-typedef uint8_t   uint_least8_t;
-typedef uint16_t  uint_least16_t;
-typedef uint32_t  uint_least32_t;
-typedef uint64_t  uint_least64_t;
-
-// 7.18.1.3 Fastest minimum-width integer types
-typedef int8_t    int_fast8_t;
-typedef int16_t   int_fast16_t;
-typedef int32_t   int_fast32_t;
-typedef int64_t   int_fast64_t;
-typedef uint8_t   uint_fast8_t;
-typedef uint16_t  uint_fast16_t;
-typedef uint32_t  uint_fast32_t;
-typedef uint64_t  uint_fast64_t;
-
-// 7.18.1.4 Integer types capable of holding object pointers
-#ifdef _WIN64 // [
-   typedef __int64           intptr_t;
-   typedef unsigned __int64  uintptr_t;
-#else // _WIN64 ][
-   typedef int               intptr_t;
-   typedef unsigned int      uintptr_t;
-#endif // _WIN64 ]
-
-// 7.18.1.5 Greatest-width integer types
-typedef int64_t   intmax_t;
-typedef uint64_t  uintmax_t;
-
-
-// 7.18.2 Limits of specified-width integer types
-
-#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [   See footnote 220 at page 257 and footnote 221 at page 259
-
-// 7.18.2.1 Limits of exact-width integer types
-#define INT8_MIN     _I8_MIN
-#define INT8_MAX     _I8_MAX
-#define INT16_MIN    _I16_MIN
-#define INT16_MAX    _I16_MAX
-#define INT32_MIN    _I32_MIN
-#define INT32_MAX    _I32_MAX
-#define INT64_MIN    _I64_MIN
-#define INT64_MAX    _I64_MAX
-#define UINT8_MAX    _UI8_MAX
-#define UINT16_MAX   _UI16_MAX
-#define UINT32_MAX   _UI32_MAX
-#define UINT64_MAX   _UI64_MAX
-
-// 7.18.2.2 Limits of minimum-width integer types
-#define INT_LEAST8_MIN    INT8_MIN
-#define INT_LEAST8_MAX    INT8_MAX
-#define INT_LEAST16_MIN   INT16_MIN
-#define INT_LEAST16_MAX   INT16_MAX
-#define INT_LEAST32_MIN   INT32_MIN
-#define INT_LEAST32_MAX   INT32_MAX
-#define INT_LEAST64_MIN   INT64_MIN
-#define INT_LEAST64_MAX   INT64_MAX
-#define UINT_LEAST8_MAX   UINT8_MAX
-#define UINT_LEAST16_MAX  UINT16_MAX
-#define UINT_LEAST32_MAX  UINT32_MAX
-#define UINT_LEAST64_MAX  UINT64_MAX
-
-// 7.18.2.3 Limits of fastest minimum-width integer types
-#define INT_FAST8_MIN    INT8_MIN
-#define INT_FAST8_MAX    INT8_MAX
-#define INT_FAST16_MIN   INT16_MIN
-#define INT_FAST16_MAX   INT16_MAX
-#define INT_FAST32_MIN   INT32_MIN
-#define INT_FAST32_MAX   INT32_MAX
-#define INT_FAST64_MIN   INT64_MIN
-#define INT_FAST64_MAX   INT64_MAX
-#define UINT_FAST8_MAX   UINT8_MAX
-#define UINT_FAST16_MAX  UINT16_MAX
-#define UINT_FAST32_MAX  UINT32_MAX
-#define UINT_FAST64_MAX  UINT64_MAX
-
-// 7.18.2.4 Limits of integer types capable of holding object pointers
-#ifdef _WIN64 // [
-#  define INTPTR_MIN   INT64_MIN
-#  define INTPTR_MAX   INT64_MAX
-#  define UINTPTR_MAX  UINT64_MAX
-#else // _WIN64 ][
-#  define INTPTR_MIN   INT32_MIN
-#  define INTPTR_MAX   INT32_MAX
-#  define UINTPTR_MAX  UINT32_MAX
-#endif // _WIN64 ]
-
-// 7.18.2.5 Limits of greatest-width integer types
-#define INTMAX_MIN   INT64_MIN
-#define INTMAX_MAX   INT64_MAX
-#define UINTMAX_MAX  UINT64_MAX
-
-// 7.18.3 Limits of other integer types
-
-#ifdef _WIN64 // [
-#  define PTRDIFF_MIN  _I64_MIN
-#  define PTRDIFF_MAX  _I64_MAX
-#else  // _WIN64 ][
-#  define PTRDIFF_MIN  _I32_MIN
-#  define PTRDIFF_MAX  _I32_MAX
-#endif  // _WIN64 ]
-
-#define SIG_ATOMIC_MIN  INT_MIN
-#define SIG_ATOMIC_MAX  INT_MAX
-
-#ifndef SIZE_MAX // [
-#  ifdef _WIN64 // [
-#     define SIZE_MAX  _UI64_MAX
-#  else // _WIN64 ][
-#     define SIZE_MAX  _UI32_MAX
-#  endif // _WIN64 ]
-#endif // SIZE_MAX ]
-
-// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
-#ifndef WCHAR_MIN // [
-#  define WCHAR_MIN  0
-#endif  // WCHAR_MIN ]
-#ifndef WCHAR_MAX // [
-#  define WCHAR_MAX  _UI16_MAX
-#endif  // WCHAR_MAX ]
-
-#define WINT_MIN  0
-#define WINT_MAX  _UI16_MAX
-
-#endif // __STDC_LIMIT_MACROS ]
-
-
-// 7.18.4 Limits of other integer types
-
-#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [   See footnote 224 at page 260
-
-// 7.18.4.1 Macros for minimum-width integer constants
-
-#define INT8_C(val)  val
-#define INT16_C(val) val
-#define INT32_C(val) val##L
-#define INT64_C(val) val##i64
-
-#define UINT8_C(val)  val
-#define UINT16_C(val) val
-#define UINT32_C(val) val##UL
-#define UINT64_C(val) val##Ui64
-
-// 7.18.4.2 Macros for greatest-width integer constants
-#define INTMAX_C   INT64_C
-#define UINTMAX_C  UINT64_C
-
-#endif // __STDC_CONSTANT_MACROS ]
-
-#endif
-
-#endif // _MSC_STDINT_H_ ]
diff --git a/cmake/OpenCVFindLibsVideo.cmake b/cmake/OpenCVFindLibsVideo.cmake
index 3865199..062b165 100644
--- a/cmake/OpenCVFindLibsVideo.cmake
+++ b/cmake/OpenCVFindLibsVideo.cmake
@@ -257,8 +257,11 @@ endif(WITH_FFMPEG)
 
 # --- VideoInput/DirectShow ---
 if(WITH_DSHOW)
-  # always have VideoInput on Windows
-  set(HAVE_DSHOW 1)
+  if(MSVC_VERSION GREATER 1499)
+    set(HAVE_DSHOW 1)
+  elseif(NOT HAVE_DSHOW)
+    check_include_file(DShow.h HAVE_DSHOW)
+  endif()
 endif(WITH_DSHOW)
 
 # --- VideoInput/Microsoft Media Foundation ---
diff --git a/modules/videoio/src/cap_dshow.cpp b/modules/videoio/src/cap_dshow.cpp
index 45d4f07..4c1a2c0 100644
--- a/modules/videoio/src/cap_dshow.cpp
+++ b/modules/videoio/src/cap_dshow.cpp
@@ -108,55 +108,11 @@ Thanks to:
 #include <vector>
 
 //Include Directshow stuff here so we don't worry about needing all the h files.
-#if defined _MSC_VER && _MSC_VER >= 1500
-#  include "DShow.h"
-#  include "strmif.h"
-#  include "Aviriff.h"
-#  include "dvdmedia.h"
-#  include "bdaiface.h"
-#else
-#  ifdef _MSC_VER
-#  define __extension__
-   typedef BOOL WINBOOL;
-#endif
-
-#include "dshow/dshow.h"
-#include "dshow/dvdmedia.h"
-#include "dshow/bdatypes.h"
-
-interface IEnumPIDMap : public IUnknown
-{
-public:
-    virtual HRESULT STDMETHODCALLTYPE Next(
-        /* [in] */ ULONG cRequest,
-        /* [size_is][out][in] */ PID_MAP *pPIDMap,
-        /* [out] */ ULONG *pcReceived) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE Skip(
-        /* [in] */ ULONG cRecords) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE Clone(
-        /* [out] */ IEnumPIDMap **ppIEnumPIDMap) = 0;
-};
-
-interface IMPEG2PIDMap : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE MapPID(
-        /* [in] */ ULONG culPID,
-        /* [in] */ ULONG *pulPID,
-        /* [in] */ MEDIA_SAMPLE_CONTENT MediaSampleContent) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE UnmapPID(
-        /* [in] */ ULONG culPID,
-        /* [in] */ ULONG *pulPID) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE EnumPIDMap(
-        /* [out] */ IEnumPIDMap **pIEnumPIDMap) = 0;
-};
-
-#endif
+#include "DShow.h"
+#include "strmif.h"
+#include "Aviriff.h"
+#include "dvdmedia.h"
+#include "bdaiface.h"
 
 //for threading
 #include <process.h>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/opencv.git



More information about the debian-science-commits mailing list