From 412e7a835fd86a8ec25480eae83347cd2ba491c9 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Wed, 15 Jun 2011 22:59:41 +0000 Subject: [PATCH] videoInput is now integrated into highgui and built from sources --- 3rdparty/include/dshow/_mingw_dxhelper.h | 110 + 3rdparty/include/dshow/_mingw_unicode.h | 33 + 3rdparty/include/dshow/amvideo.h | 1290 +++ 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/ksuuids.h | 191 + 3rdparty/include/dshow/strmif.h | 9392 ++++++++++++++++++++++ 3rdparty/include/dshow/uuids.h | 368 + 3rdparty/include/videoInput.h | 385 - 3rdparty/lib/libvideoInput.a | Bin 56480 -> 0 bytes 3rdparty/lib/videoInput.lib | Bin 2145206 -> 0 bytes 3rdparty/lib/videoInput64.lib | Bin 2164884 -> 0 bytes CMakeLists.txt | 61 +- modules/highgui/src/cap_dshow.cpp | 2842 ++++++- 17 files changed, 19732 insertions(+), 454 deletions(-) create mode 100644 3rdparty/include/dshow/_mingw_dxhelper.h create mode 100644 3rdparty/include/dshow/_mingw_unicode.h create mode 100644 3rdparty/include/dshow/amvideo.h create mode 100644 3rdparty/include/dshow/control.h create mode 100644 3rdparty/include/dshow/ddraw.h create mode 100644 3rdparty/include/dshow/dshow.h create mode 100644 3rdparty/include/dshow/dsound.h create mode 100644 3rdparty/include/dshow/dvdmedia.h create mode 100644 3rdparty/include/dshow/ksuuids.h create mode 100644 3rdparty/include/dshow/strmif.h create mode 100644 3rdparty/include/dshow/uuids.h delete mode 100644 3rdparty/include/videoInput.h delete mode 100644 3rdparty/lib/libvideoInput.a delete mode 100644 3rdparty/lib/videoInput.lib delete mode 100644 3rdparty/lib/videoInput64.lib diff --git a/3rdparty/include/dshow/_mingw_dxhelper.h b/3rdparty/include/dshow/_mingw_dxhelper.h new file mode 100644 index 000000000..467f3aa23 --- /dev/null +++ b/3rdparty/include/dshow/_mingw_dxhelper.h @@ -0,0 +1,110 @@ +/** + * 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 new file mode 100644 index 000000000..38334bc71 --- /dev/null +++ b/3rdparty/include/dshow/_mingw_unicode.h @@ -0,0 +1,33 @@ +/** + * 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 new file mode 100644 index 000000000..401c10541 --- /dev/null +++ b/3rdparty/include/dshow/amvideo.h @@ -0,0 +1,1290 @@ +/*** Autogenerated by WIDL from amvideo.idl - Do not edit ***/ + +#include +#include + +#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 + +#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 +#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/control.h b/3rdparty/include/dshow/control.h new file mode 100644 index 000000000..b012239e1 --- /dev/null +++ b/3rdparty/include/dshow/control.h @@ -0,0 +1,1467 @@ +/** + * 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 +#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 new file mode 100644 index 000000000..318b1652d --- /dev/null +++ b/3rdparty/include/dshow/ddraw.h @@ -0,0 +1,2712 @@ +/* + * 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 +#include + +#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 new file mode 100644 index 000000000..6a2ea0648 --- /dev/null +++ b/3rdparty/include/dshow/dshow.h @@ -0,0 +1,61 @@ +/* + * 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 +# include +#else +# include +# include +# include +#endif +#include +#include +#include +/* FIXME: #include */ + +#ifndef NUMELMS +#define NUMELMS(array) (sizeof(array)/sizeof((array)[0])) +#endif + +#include +#include +#ifdef DSHOW_USE_AMAUDIO +/* FIXME: #include */ +#endif +#include +#include +#include +#include +/* FIXME: #include */ +#include +/* FIXME: #include */ + +#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 new file mode 100644 index 000000000..7230e8f91 --- /dev/null +++ b/3rdparty/include/dshow/dsound.h @@ -0,0 +1,1199 @@ +#include +#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 +#include + +#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 new file mode 100644 index 000000000..3dcab4d63 --- /dev/null +++ b/3rdparty/include/dshow/dvdmedia.h @@ -0,0 +1,75 @@ +/* + * 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/ksuuids.h b/3rdparty/include/dshow/ksuuids.h new file mode 100644 index 000000000..2eba88427 --- /dev/null +++ b/3rdparty/include/dshow/ksuuids.h @@ -0,0 +1,191 @@ +/** + * 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 new file mode 100644 index 000000000..b9dd5b769 --- /dev/null +++ b/3rdparty/include/dshow/strmif.h @@ -0,0 +1,9392 @@ +/** + * 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 +#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_SECAM_K1 | AnalogVideo_SECAM_L | AnalogVideo_SECAM_L1 + } 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 + + 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 +#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 new file mode 100644 index 000000000..53cdefdad --- /dev/null +++ b/3rdparty/include/dshow/uuids.h @@ -0,0 +1,368 @@ +/** + * 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==MEDIASUBTYPE_ARGB4444_D3D_DX9_RT) || ((mt).subtype==MEDIASUBTYPE_ARGB1555_D3D_DX9_RT)) +#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/videoInput.h b/3rdparty/include/videoInput.h deleted file mode 100644 index 4244902c5..000000000 --- a/3rdparty/include/videoInput.h +++ /dev/null @@ -1,385 +0,0 @@ -#ifndef _VIDEOINPUT -#define _VIDEOINPUT - -//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -//THE SOFTWARE. - -////////////////////////////////////////////////////////// -//Written by Theodore Watson - theo.watson@gmail.com // -//Do whatever you want with this code but if you find // -//a bug or make an improvement I would love to know! // -// // -//Warning This code is experimental // -//use at your own risk :) // -////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////// -/* Shoutouts - -Thanks to: - - Dillip Kumar Kara for crossbar code. - Zachary Lieberman for getting me into this stuff - and for being so generous with time and code. - The guys at Potion Design for helping me with VC++ - Josh Fisher for being a serious C++ nerd :) - Golan Levin for helping me debug the strangest - and slowest bug in the world! - - And all the people using this library who send in - bugs, suggestions and improvements who keep me working on - the next version - yeah thanks a lot ;) - -*/ -///////////////////////////////////////////////////////// - - - -#include -#include -#include -#include -#include - -//this is for TryEnterCriticalSection -#ifndef _WIN32_WINNT - # define _WIN32_WINNT 0x400 -#endif -#include - - -//Example Usage -/* - //create a videoInput object - videoInput VI; - - //Prints out a list of available devices and returns num of devices found - int numDevices = VI.listDevices(); - - int device1 = 0; //this could be any deviceID that shows up in listDevices - int device2 = 1; //this could be any deviceID that shows up in listDevices - - //if you want to capture at a different frame rate (default is 30) - //specify it here, you are not guaranteed to get this fps though. - //VI.setIdealFramerate(dev, 60); - - //setup the first device - there are a number of options: - - VI.setupDevice(device1); //setup the first device with the default settings - //VI.setupDevice(device1, VI_COMPOSITE); //or setup device with specific connection type - //VI.setupDevice(device1, 320, 240); //or setup device with specified video size - //VI.setupDevice(device1, 320, 240, VI_COMPOSITE); //or setup device with video size and connection type - - //VI.setFormat(device1, VI_NTSC_M); //if your card doesn't remember what format it should be - //call this with the appropriate format listed above - //NOTE: must be called after setupDevice! - - //optionally setup a second (or third, fourth ...) device - same options as above - VI.setupDevice(device2); - - //As requested width and height can not always be accomodated - //make sure to check the size once the device is setup - - int width = VI.getWidth(device1); - int height = VI.getHeight(device1); - int size = VI.getSize(device1); - - unsigned char * yourBuffer1 = new unsigned char[size]; - unsigned char * yourBuffer2 = new unsigned char[size]; - - //to get the data from the device first check if the data is new - if(VI.isFrameNew(device1)){ - VI.getPixels(device1, yourBuffer1, false, false); //fills pixels as a BGR (for openCV) unsigned char array - no flipping - VI.getPixels(device1, yourBuffer2, true, true); //fills pixels as a RGB (for openGL) unsigned char array - flipping! - } - - //same applies to device2 etc - - //to get a settings dialog for the device - VI.showSettingsWindow(device1); - - - //Shut down devices properly - VI.stopDevice(device1); - VI.stopDevice(device2); -*/ - - -////////////////////////////////////// VARS AND DEFS ////////////////////////////////// - - -//STUFF YOU CAN CHANGE - -//change for verbose debug info -static bool verbose = true; - -//if you need VI to use multi threaded com -//#define VI_COM_MULTI_THREADED - -//STUFF YOU DON'T CHANGE - -//videoInput defines -#define VI_VERSION 0.1995 -#define VI_MAX_CAMERAS 20 -#define VI_NUM_TYPES 18 //DON'T TOUCH -#define VI_NUM_FORMATS 18 //DON'T TOUCH - -//defines for setPhyCon - tuner is not as well supported as composite and s-video -#define VI_COMPOSITE 0 -#define VI_S_VIDEO 1 -#define VI_TUNER 2 -#define VI_USB 3 -#define VI_1394 4 - -//defines for formats -#define VI_NTSC_M 0 -#define VI_PAL_B 1 -#define VI_PAL_D 2 -#define VI_PAL_G 3 -#define VI_PAL_H 4 -#define VI_PAL_I 5 -#define VI_PAL_M 6 -#define VI_PAL_N 7 -#define VI_PAL_NC 8 -#define VI_SECAM_B 9 -#define VI_SECAM_D 10 -#define VI_SECAM_G 11 -#define VI_SECAM_H 12 -#define VI_SECAM_K 13 -#define VI_SECAM_K1 14 -#define VI_SECAM_L 15 -#define VI_NTSC_M_J 16 -#define VI_NTSC_433 17 - - -//allows us to directShow classes here with the includes in the cpp -struct ICaptureGraphBuilder2; -struct IGraphBuilder; -struct IBaseFilter; -struct IAMCrossbar; -struct IMediaControl; -struct ISampleGrabber; -struct IMediaEventEx; -struct IAMStreamConfig; -struct _AMMediaType; -class SampleGrabberCallback; -typedef _AMMediaType AM_MEDIA_TYPE; - -//keeps track of how many instances of VI are being used -//don't touch -static int comInitCount = 0; - - -//////////////////////////////////////// VIDEO DEVICE /////////////////////////////////// - -class videoDevice{ - - - public: - - videoDevice(); - void setSize(int w, int h); - void NukeDownstream(IBaseFilter *pBF); - void destroyGraph(); - ~videoDevice(); - - int videoSize; - int width; - int height; - int tryWidth; - int tryHeight; - - ICaptureGraphBuilder2 *pCaptureGraph; // Capture graph builder object - IGraphBuilder *pGraph; // Graph builder object - IMediaControl *pControl; // Media control object - IBaseFilter *pVideoInputFilter; // Video Capture filter - IBaseFilter *pGrabberF; - IBaseFilter * pDestFilter; - IAMStreamConfig *streamConf; - ISampleGrabber * pGrabber; // Grabs frame - AM_MEDIA_TYPE * pAmMediaType; - - IMediaEventEx * pMediaEvent; - - GUID videoType; - long formatType; - - SampleGrabberCallback * sgCallback; - - bool tryDiffSize; - bool useCrossbar; - bool readyToCapture; - bool sizeSet; - bool setupStarted; - bool specificFormat; - bool autoReconnect; - int nFramesForReconnect; - unsigned long nFramesRunning; - int connection; - int storeConn; - int myID; - long requestedFrameTime; //ie fps - - char nDeviceName[255]; - WCHAR wDeviceName[255]; - - unsigned char * pixels; - char * pBuffer; - -}; - - - - -////////////////////////////////////// VIDEO INPUT ///////////////////////////////////// - - - -class videoInput{ - - public: - videoInput(); - ~videoInput(); - - //turns off console messages - default is to print messages - static void setVerbose(bool _verbose); - - //Functions in rough order they should be used. - static int listDevices(bool silent = false); - - //needs to be called after listDevices - otherwise returns NULL - static char * getDeviceName(int deviceID); - - //choose to use callback based capture - or single threaded - void setUseCallback(bool useCallback); - - //call before setupDevice - //directshow will try and get the closest possible framerate to what is requested - void setIdealFramerate(int deviceID, int idealFramerate); - - //some devices will stop delivering frames after a while - this method gives you the option to try and reconnect - //to a device if videoInput detects that a device has stopped delivering frames. - //you MUST CALL isFrameNew every app loop for this to have any effect - void setAutoReconnectOnFreeze(int deviceNumber, bool doReconnect, int numMissedFramesBeforeReconnect); - - //Choose one of these four to setup your device - bool setupDevice(int deviceID); - bool setupDevice(int deviceID, int w, int h); - - //These two are only for capture cards - //USB and Firewire cameras souldn't specify connection - bool setupDevice(int deviceID, int connection); - bool setupDevice(int deviceID, int w, int h, int connection); - - //If you need to you can set your NTSC/PAL/SECAM - //preference here. if it is available it will be used. - //see #defines above for available formats - eg VI_NTSC_M or VI_PAL_B - //should be called after setupDevice - //can be called multiple times - bool setFormat(int deviceNumber, int format); - - //Tells you when a new frame has arrived - you should call this if you have specified setAutoReconnectOnFreeze to true - bool isFrameNew(int deviceID); - - bool isDeviceSetup(int deviceID); - - //Returns the pixels - flipRedAndBlue toggles RGB/BGR flipping - and you can flip the image too - unsigned char * getPixels(int deviceID, bool flipRedAndBlue = true, bool flipImage = false); - - //Or pass in a buffer for getPixels to fill returns true if successful. - bool getPixels(int id, unsigned char * pixels, bool flipRedAndBlue = true, bool flipImage = false); - - //Launches a pop up settings window - //For some reason in GLUT you have to call it twice each time. - void showSettingsWindow(int deviceID); - - //Manual control over settings thanks..... - //These are experimental for now. - bool setVideoSettingFilter(int deviceID, long Property, long lValue, long Flags = NULL, bool useDefaultValue = false); - bool setVideoSettingFilterPct(int deviceID, long Property, float pctValue, long Flags = NULL); - bool getVideoSettingFilter(int deviceID, long Property, long &min, long &max, long &SteppingDelta, long ¤tValue, long &flags, long &defaultValue); - - bool setVideoSettingCamera(int deviceID, long Property, long lValue, long Flags = NULL, bool useDefaultValue = false); - bool setVideoSettingCameraPct(int deviceID, long Property, float pctValue, long Flags = NULL); - bool getVideoSettingCamera(int deviceID, long Property, long &min, long &max, long &SteppingDelta, long ¤tValue, long &flags, long &defaultValue); - - //bool setVideoSettingCam(int deviceID, long Property, long lValue, long Flags = NULL, bool useDefaultValue = false); - - //get width, height and number of pixels - int getWidth(int deviceID); - int getHeight(int deviceID); - int getSize(int deviceID); - - //completely stops and frees a device - void stopDevice(int deviceID); - - //as above but then sets it up with same settings - bool restartDevice(int deviceID); - - //number of devices available - int devicesFound; - - long propBrightness; - long propContrast; - long propHue; - long propSaturation; - long propSharpness; - long propGamma; - long propColorEnable; - long propWhiteBalance; - long propBacklightCompensation; - long propGain; - - long propPan; - long propTilt; - long propRoll; - long propZoom; - long propExposure; - long propIris; - long propFocus; - - - private: - void setPhyCon(int deviceID, int conn); - void setAttemptCaptureSize(int deviceID, int w, int h); - bool setup(int deviceID); - void processPixels(unsigned char * src, unsigned char * dst, int width, int height, bool bRGB, bool bFlip); - int start(int deviceID, videoDevice * VD); - int getDeviceCount(); - void getMediaSubtypeAsString(GUID type, char * typeAsString); - - HRESULT getDevice(IBaseFilter **pSrcFilter, int deviceID, WCHAR * wDeviceName, char * nDeviceName); - static HRESULT ShowFilterPropertyPages(IBaseFilter *pFilter); - HRESULT SaveGraphFile(IGraphBuilder *pGraph, WCHAR *wszPath); - HRESULT routeCrossbar(ICaptureGraphBuilder2 **ppBuild, IBaseFilter **pVidInFilter, int conType, GUID captureMode); - - //don't touch - static bool comInit(); - static bool comUnInit(); - - int connection; - int callbackSetCount; - bool bCallback; - - GUID CAPTURE_MODE; - - //Extra video subtypes - GUID MEDIASUBTYPE_Y800; - GUID MEDIASUBTYPE_Y8; - GUID MEDIASUBTYPE_GREY; - - videoDevice * VDList[VI_MAX_CAMERAS]; - GUID mediaSubtypes[VI_NUM_TYPES]; - long formatTypes[VI_NUM_FORMATS]; - - static void __cdecl basicThread(void * objPtr); - - static char deviceNames[VI_MAX_CAMERAS][255]; - -}; - - #endif diff --git a/3rdparty/lib/libvideoInput.a b/3rdparty/lib/libvideoInput.a deleted file mode 100644 index 15df518421300dccec2db8ae7e9f50960e52b536..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56480 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
L6-^0;fB3Qi6=-n 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

;HMXah& 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 z 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 z z^#RoFJkvW{)rJ){s6K*fwEE~xtH!XR2Gu7}50?jv_m!(yQG@C;sKe#fi%<0rvZ4mn z7f^e0ejQ<#@H#7MP<;ipxV&`?96*Z{71N9_BNF1x~v!Vu7Tu?pMe41y~2UgUeiU(>!iW*djKz*v6 zqOMiVSy6*3F{qDe<=t{uR@9(M0%~Zyjp7_Nk`*)`L6sF$`+a_`tlGhf8dTXpO@G#= zx>bL$q6SrVP@lVwon+O0R@9*S9#oWY`qHcWSdLW9wI5Q0DhH@xcbnw4Dlsc+P~`-* zvAOFtxaN_W6*Z`Gf%?Z!(XyfjRc=r-?@t%!!`iHJS@ zu}9JO#L|NrRQW))o6^HMSGd>w1Xk3b$`1;Eqvk4B)SxN=DrN0c;=2eAv7!c5K~ST9 z-73zamswGRst~AFABV=F!u5F0iW*dfK~1bxBa2lro&BF4)SxN?YW2(J@2yJDiW*c! zL6vP)w2@V%Sy6+k7%2ZUTg3M{)MG^rs^XxQPKy4{&Z{dcYEYE`H8S^Raqb<>iW*cU zL3x)PDn27x%!(RRr9iEpx^Spn!i}t`K~)-5{5)ljT6KsOHK@vf%2qI`*ypdZq6Sr2 zP_>Uf*<|PSnH4pt%7OZ|@vt;jrLE!Gqo_eu9@MT{UHVy7iWN1eDuDWuH$?%f{8&+g z$_rH9BCo~TXvvBiR24xL&d@BiomUtuYEXHDx_<0jkX6H3QG?0{REyvJD_Av)6*Z_T zf$}=oW~5cCSy6+kGN@Da<7T&N4=ZX=RROhZ_3JBEonl1|s;Zz4Z(JtsdvCL%29+b$J=LC^9YEaby z)p@{$zII-VSW$zjE~rmW_xxeic2?A&ss}25(;gqKI>U+@RP{kEIF>gULG=Tu2OEbqw)0xTiW*eSKusK!?Wt9pSy6+k zIjAEe8cwn5C@X4EwE*SUVy{!W@1y=?MGY!{P(upEd1=)%R@9(s2`b>h+RRo(spZmq6SqrP^;&B{m!Zatf)cN9aPykGnQH9!-^VIJwR1`5iHL0O;}Nbswb#R ztz*2g^9p7~4XR$Ca$h)c-Ks&Xs6o{m)b`5DyIM7s6*Z{(fZFVJU3{9lf)zEW`huFc zeUJFQl1a*UOib+gK7k*1FhaU?}OZD zn=!1YK{XQ8vHs70vuZvoYEX>=HKld18Lw2hntf)aX4b*Q<^NIJBlUY%NYC5RMK?%gC2dh|7gK7q-=XaKs zvP*b?6*Z`4g4%Uzk+?rR%ZeIQvp_v8eD6m)uScw?K{Xpx-yaV;U*~nN!_Ta!K{W@| z+Z*feTNSUqYwx87)m%^+{JMxUTRK+MpqdBDe^*KI-XR|=YEaDwwV~^3ajh)RiW*0? z32fD^T~_nl0;A@-UV!*-Zp`{vXqw#4zq;4ci73&X|0kP8rpY6kXqABln-(s`*7N z&o0%hSItht~s2elv}HT}xGSOf^eX^Sf!}zPea7$4w*8;fqvr!ZdOnE>z7))5zDpKsBdKBhOLu zRdd=ja$C$(%^#+b%RE;#XG|lPd5&t%n#Q>?@?3XjtLB_(oHux$W|nHst7fKZE~sXP zYA&i~x@s<|W}0d)t7fWduBc{;YW_4$dGXpOtLCa{N{eQaYObkfqH3`jXW+!spg((c}^Ilny03b_lE;j^UO5zyfHvE z&rMTKti%4Q`P(#dJ@-@13)9H;(^oYwO(U;geN^*GHN92y+BEW>t(R)vm`1L{o~n6k z8o7RYsOFt%k3uPXVb`gt*)y1qQ>c> zny;pj$7zUaB1NO`mY4f;uxcWkMy|uos)=G6d0peHBL*_Bv9k{t0tjo8Q%w>z&JU_dY8vMo zZ9V%>Q`IChjeH;1L^a7xBahR@s!3rQc@A%+nv|xI=emZfNu}o1KsBk=IQ3PN#x(L+ zuBV!`YF>3!lg>19|EZ&z^rn&LsM@N@U>bSs)KX1G)znl?Cez6E?5CQ{rjhHphHA2y zM!v4x~^xelwTCYzd)#enmneF+q9x;@|s3oPrX!=&ouHLyMk)+t8vP!rhsYWdzo^oDX7LNtC~Wlk=O1r zswr$5d9PJkHAPHQL7aa|sivrDOsMlDYv)s$7^6jV())f7-odDY}sO$F1)b(l{zUZ#=jFt2JV znnvE+o9?8TB;_# zY6492y||{tQ%x(?#8pje)5zELood>cMjktHR1;_#`MP4Ormbn@u^dY^?Mx%Dr!iI2 z-Zb*~ilLeyHLvKZ>7bfus_AGNdHss2nog#X=jSM@>1-Ogo+GO!SS?Q^)r6Qv?qgpg z|MP33T}&h2%Y0EySJTLK_*pffrjggLPpSzsjeK1nRTFL+dAxs6O*hlXWAMFdx|>Fx zGvBGEhiT+~_*OMN)i`fd)5|pS_NW7pm!} zn!i=kU(M^eY6h4_uAgVB8E6{0O`ob}kZI(x{6sZ_)w~|7W{7Fz@%2bGL)G#;RLwBc z$Yby?)eKkjdZ3ySrjgf+`>Gjf8o3Vdsb-WK=dNl-n?@dAcT_XRG;*K6t(viFUbj>; z&NTA8aZ@$pO(XaD8>*S0#<{MViKdb3=bCCJnMSVXtE!o-#`#kEGU8-4c8hOs#shSO@ zk;}Y8H5*MMx9N7(Y*Nd!O*NZMBe&^R)ofAC7S(Jujr{Clvud`PM&5^SQq6YL$ZfGv zH9J(ZK{Y!~BVX5g)$B5jT+hF#X15w=ooe=&M()o)t7fli)~e=LwLEK7vrmn)S~dIC zIIC21z%=qWU8$ObYMh@`bI3IEy7QxI4y$oisOE@i)|HAhV&x9Kv~{ALOm`1MW@v6CL8oA8l zRC7y>GgdXXO(U;yV^nj;H1hm2S~Yh~Be%sU)!Z|Uy!RWan){}a>v@D~9;k7KtL87$ z$j>*1spg?+uTO(V}6y;SqYH1c)zRLxtp zJUvwN&NOnHc2~`NHBL9xd{E01u9}agk*_OEHJ?l)zb+H1n$K!pT~+hNH1hcBqMEO! zk>}nJ)kJbWP>dQ`o?C)dLr+AFEWf9svufzW%czm%d83nRqMAm&FX*V6Xr__ps1B-$ zZW_6d1*s;6Y2^OXUNtdIBag3ks)?n>X{(yprjgq{P&IK(BiC~q)qH0fd7QRZOZ&H4Y2^2B)KN`()5vX6TQwO>Bagvas>x^?`Pyr$CX;F8waHI4 znbkNoRFlOt^7>U>HCffXs;MTMY2^D9U)5wcjXXzHRn7ONk=v_^YI2xHo)apoCZ`&w zl4^39M&2X&s3x~+yj7FOG;*6(R83yf$bHO9HTl%MDySyEY2<}`Y2>van`)}5CaY?yn?@dASyWTQG;%#>R*j!&3H8s^Z8C6ru zG;&*HP)%*q$n!>e)znerq*F~@)udHTJ=4hZVH(xcH;vpDsa4a!H1ggim1-KAM(*<| zRntf{DOA%~HOW=eL^a7&)6_I_TO?J@52lf?J&9_XsV1>%nwv&$(?qIiVH$akN~jut z)5vQ<0@buMjXaj)t0urS@>q_inpUQf`+Qv0v^I^r?tG`3Hl~r+f;g%PG>u&5*s5u( z#)+kxcBYZrG^T3Wn?|0)W2h#`G;&)+S4{`g$n!=t)pRtC+~=dJrju#pF&ITPolPUx zVPw?=n?~*%kyI068u_}uMsl8l-;L14G;-hgqMELzk^9DH)r6Wxex2x(YQjt--^+Yd zO}J^~>-wOYZmM~&n(nH3r)eJL@JpcTqn&GN>pqde;k+18%YDTK&o@z#!MqYRBs%Erl&_+BOgD{OKNnRq!!&Z4FQ{gwY2^NVUNy7Syw0g+ zwi@TGYUY?mo}bUCX0B=EzWRr1=Bed5t(y6!k+1!fY8IGA?ms70vrvt5LN$w2b6hox zO(XZQ-&M23H1b?`Of^eQBln-*RI|)9a^EnpLKepPlYk&1%)`Q_ULF$o2fIYSx-Y-f!$x&CjNhztdokYSx)X z{-uuHs`{QJL)5vT04%KWljoc5nt7emF``A|1Y*F*t zqMEIyk)Ks=R?RlmY*Nj3)5!D2M%C;vjXeKsP|Z#?&U)4CGL1ZE{-T=Qrjf_#I@Rnk zja<(^t7flhRA&2iJn zWnQG36Kb4=syS&Ixy%bxbILSwd(BtPY17Da?>yD~p_;j>Ib#}m-!exvXH6qt`)t*m zGmX49%~H*I)y!1Q1=Gmu#SGP4RLykNTr!Q1xK>V6&1KV663tZATro{$(M(azpK4x{ zRddxe^1LxgHP=idzosxzHP=le*YgC`+)&MU)!bCeGfp+POjAX?_OYtDZ5nx;j#14W z)5!gKv}*2}MqZakspg((*d#dKG8mEV9-kC;T-@B{ky=uCt=7VYE zIt*9MN7Kk<4pYr1)r6|%vuWhE=&G78rjhT3yQt=?Y2@|_QB9;6^nE*WKMYn)WYfsk z)mb%BOe42@C)GqXjXVZBswSFg97n&_sH+agFcF-#-3dwbQyG>v>+?Nk%XH1eLU zt!iSMM!xny)x=TrYNML(Oe3#5tyL4(H1fW;m1^RdM&2U@s3yK?)Bs5 z2~8vK`CF(ak!j>U)?77-O(S1dGu0$9joe;8s3xgunyMz5Y2jIHK|M^?!>EZ z8mG2uGN`7OYBHKeZi||#$z&S2kNK%4vuWhlG;63Pi)rMwySi$!nnoTw)l`#BEsw8i zvYSSp6RN7_d(~7?O%BymR!vUR$k$#;HMvY9*P)MUa+^k;6TDTE$24;NR8&n~H7_sK zOe2qr z5~?X~8hMQ?u9_02k>`YBswrt2`Tn%1YD$?#o_~s{rnG6~IlQoH%9uv(V}(>x)->`S zprC5XnMR(+3aF;MY2<6qubK*`k;|M>PobK|rjf5bxoVo2M&55EQ%zIT$nBL>H9wd} z9`8w1)66t-Urnr<=BAP7pG2x@p~gw58h_Ks*PcK%ElnfO^YK*^U>do8;;E*Unpa%a zv^I_0f4);q8`H>j7)LdMrjh$bY}K?ija=qfs%d8$c@B@Mn)arV+dYPAf=p9MeEt(% zH62VNKO>5!nvSNCpKC=`O()aH>sJ)jbT*AV_s);%ycLJ<+X*&}JonC1O^9mds-}x+ zCaI>kY9_0umujY{rl)GAnnqr8d#Glb zYPzdtx@qKjqnm1Gs3u%BGfgAUnPIA#rJ7LH%r=dDU0qc($29W2Ll@P|RZWO$=9xyG z$AVQeUp1Xovp_YSRI|`D@*be0Y8I)cgK8F=M&54(sb-03x%hOgh z%T*JoniZyz%iKmaKdR+vt(u=y(@HffO(VByfNEB$rlo3DtHxh7YgE%hHEUJVTs1$d zrkQHispbdO{Gytss#$Lud3|r9nhmCr$5&(3Y&4C0Pt-^?n@l6OdqdT1HjTUwZ=jkj zYI*9bW~*ABdaBuG8hJlfS2f#JQ%5yBOe60hYpZ6bYHF!wmucj-sHvLWrjh4EKh^9p zjXa0fP|aS|R9DTfYF^b;v(GegoBFC|ziH(9sj8X-rjf^K71bOxjePG=Sv7~$IF(d$ zST#PXIiebG)f`n#Mb-SK8ZXrxQ%wcc{H~hvsyS{N`58z#)toSmyzZ1$%}LY9ZCXY( zr%WTS@1<39+B9;zmr~6iswt_OGp3R6-%F_GtZC%2TwFEhOe5D%G1Z(`^D3&E3#O6h zs3NMlXd1bG3ajRlY6_|5vT5Wwp`dE6m_{D&1yu8=Y2^7iziO_UMt;7LPc_#}Bez9f z)m%4?JeKpQ=7wqHGUry!O*Kv~)!Z_Td|f$JbK5lXeQplb+%b*ZSHD-yUDL>YEW2v% znMR(Uv#I93Y2?0v1&e;Mjoe$RP#~IE1_yWnMQuCErDu2 zn?|nZ_^SD08u{5*Jk@+PjXW;mswPrQ`u-oee!f#pWYfrfK8|Xlm`3i;u~ie*G}*;I z7E3kJOe2>$rfQ;_M!xnKs)=D5d47(rnwX}M%N$KLu}mZP=cuZQZ5p`_qo^j1Y9g!V zJJZPb7m-vG*EDkde2wzY&z9qvM!xnhs)?`W^;tCuRP#wS2~8vKkv^&>k!dQ3?fyYE ziA^Jaj^n**l9)ywgYQ(6)HHJayj4vy)x1$na?{9t^|fkJm`0vAUa2OfY2^O%QZ=be zBkyfqs3x^(+Ha^Pk7?w+@paYYRn0Zk=j-F| z-LO?qy`bQZm4iBk2Zp+zZ4?sPsZG7`fZ#R(p>661b_xs+>=|A&Bs{2XFLzQUFgP$Q zD6C?5iJm1Q%>NPkbnD#3nMvR`TW4XsL)rwkcH8>horMSw3JLb=79LW+TX0~6%b+U7 ziH3gLn#2u#f6kQA?*UfEeZ_n z9@IL}Cm=ikq5HMrECK^UTerthFG$tEfHr}lSp9Q3oY{&kTCYBh;%wm>z7?JAUZqma zO7(o})vr{eQvFJe>({GPw_&BaHG*12^7nQA)wf|qU$Y^+LxS4|wc{tfz3X*rRWCd= zFrc$*cL@r1|I`1oRn1rt{+oMam_lv9Z~rSVP9q;bv(YMs2DNGDtZf{Mw`T-T!r+y9 zI=g*vKquZ7-t7Z|J!8=ds}~g5-95J6E6nKs*eP6d+L_FBk|vXxv3n*YEE;4tEP)7u$Rew<1`!2O;6o7DJzyQi$>^ArY4laeWpk+bB?Ehdajtj4-d;4yB7I<)ByWKF2FxcaYRkylwfQ1--l4$} zs+p?r_278Euh5gp=Qp57ROMPOTt==3i|mgS^M1T`pk#~;jBM1I)A`=PVjm(74i6XY z4tx~E2n|i196}6r4*nsC0Lh@9!6!U3I8yBO6G`)mg?cYSNDYo{F?J<&cS7D4EEnlQBte2?v>)j2;l9`lF%uqPmqA3klc zxB+R|gt~|-D5`EegU%>9GCVY5_is#U&G!tW12ACRZKe8qwyf#t-4N!adc&gw5aknC zjxL~Rep-5b*wG!B3H0qy?2=Q$xbnAPtaar$6v_?;(?+C3!nDMoWm+PlH^~mtY_?eF z6@7vdj}p-!p^(8GM6DQH7wQ?Jg3JzL*f4_i45&!BgwuISt}DSpShg!Wh@lNj67vJ% zYvY<3WL5Vita|sh4JY{Gco~2;{5=kFYpV|TCgcIG>l~02r)wyiJ z86R5?^IF74u)C6#Yrsa48TmkOfH|@z-zYpIMAVI7ABGSOFQ^7dZ-GAD97YCSDEb7+ z9)L6lDwJo{xhQwo_y}r7ET*N3>dZpo8KXPoF;Jn@RDgy9r)D`2qm=C0;e;DS;}h+Qm0>#2D#fF&Jvf1REhnUE-?d%SaHg6NT*zefv@k=KM%P7gU+NLUR2`#vo1N1&admp zV;Lrf+i+J4iIgj6jT(vx9hyeUcu83oDVWW;8C?jTS!z+X_VhxLW2eU*tfD8uq|+V9 z_iM~5w0wvUn4{pS;Q)VpQ4r+`_MDB=Ky`rlvRj6nX(j0aYyo;m3|ik6 zV$@Bhm>hP=my-QZNio8qNdk2e9-_NOnXGP6R6kHG3^K&&0X}t&8O*3eRpWp%HO)+l zhR^h(G2tueg{`~Y4KXt^G&ERLeWg3pZpBU_NtoTOFj>@A7qMK!776!h@f_e4E-Jmd z2CH$vKU97MN&*C`Dyyj6B%nC(hPWD$9f^xB1ySAf3K4~&;#49`s#Zxf0jln3Bni|g z?tw%LQv7Ac1uoyNRJ>bK+;+0Jbt0R4`{U3KARcF5QEg7yD0isbf04-roaY2$ zs!u6)^wLTcw>949a+tLJB8TYR`*Om(TU<^UCR6qkd}yQUf+e#P zftmhbJVa{!wS~OY#$uu~Y~&^wmx?SXuvFdWOqt6C=?kW!GOD)xFgSYF6#B7kkuUM2 ziL=A|c@8cZ*R$*@DI~9duy;eIzsKHvR>Pc}ra6jb7S27ZXc5sqb4$QWjSuD5H9?g> z(mz}n>d&Kc%CraL$)WrJM6bg>tjaWqLSfdbwk&1Rg6RBN$k zV?HySS6e1>!w*pvHnLd>&2Ej|9T}8oc5X{j9#w4*F&GyuD_$t|w)Xd|Q~8x&FW7hL zNJ$NS!FW1fV!ejDB8pL_cq0m=i(MO+77U{t8JcaVI!+v!-dii^qU?! zukp1_onTyXq}iOrW`I!y@5N{%cQ6j3u_6k_Q|q^s3cWr3=nJ&{pA@!8F(2bCQCYrQ zu!4}n%aA)t3Yy6~g&>AspGJq2cX4gwjuC0ldLcVZ#@LbyWl%NxQ33N9&g?o!IG3M7 z{UsWFq2gevw5CT@W?8G;A1Z{pSHz~VK0HY%^4c4;_gaH-EuXT_u|I{_3P|MF!T8F| zCFh@4i&BxTY7Xl3P`;1rzEdH))}jO7I7H1ljLpIHRgH znG+60MRcVRl)n_sJ#80NOna~jmbMJ^8ueZz)Et6D`)2kgDNB}>-g&DawEMxKEfN4$ zT0QGMsSm53Ku^@LK2nx>DhiV7P$f4Lxo;8am1J&fVrkFHc`i5EmrIEBiTQR0(bA zDdoN2$DmNDm_;IdT-l@;!f-nDbsrH?AgUmpvJta&bliln*Z-S`HC;{!8|+0jm`e4| z=Hca-BWUCgfiWbr`nr0iLwE)m3LFx~aMdll3k5_gsX{^yqtIY_F5=Y`jD|075whVnOW=_`a>}V5sdsxqs%7#YBBJ4m6Dh9(sFVE~%Q*bDfkwb-&L{b>S z-&qnk`6)7Jb|!XA<5^Ec%}yPX&WAaoHqWHFTR$zqSdyq9nDi8fPp4YIRU?!PM?zS@ z=R%$7bR>}twFeVzkr-_C&||BxOlK;UOlLEZE+8^mKrj}|M6ztSs!>5gKseGG?2MW4 z&TurDizG;JT4U&nh9iD-CozZ=Y)EG+m=4BsEm1NhjO5}FWQL?7!44H{hDaVn%ZEgw z`Vvg3G0WoLXhKBBIV=T@x!tY= zojVL$K^hLP5PDR_W(F%N3sX^q^J{z1Zx~@_B2*B!FvW&5COw$m_Ib;hrHh_PtnMVl zECyDGGgK~Z{ZPhQ*$*I!MJ${B!lgPu)G0rJTC0AeKya%6@klsIhR$&Sb$V+w5(}H835oQsr5CP2Zb ziYBs=bZama5s5)}!)My$H~_U1l-p`6nI}CR>VSw2vE4Keq4A&{Vt6B6^04NE&ZpP` zh`S?WSA|R}7R@3hoF0{6xpx1M8AwC>tOBJvJbA<#$3oTVup_b0YQlYq1Pk5&>CK3X|Y z_-LhoRS1R`nE|b`$j(XjXzbAit(hf;!tii=xOe`dn zM3X9^T`A0rgqmNc2u_<~?r3zSTnsKWBtosH>3=yAMdEVkN}1oPE2V-(mK;CBX}^SO zrA&}h60+Gbh;{_n&ly#vCbwFgI;{e*vr4DtXgTH$bYjrMWa|!Z5~>?*0wWe~C1dE5 zX_KgK*dDY}e8bdqB#|K`4ByC2vMC9eI;upok~EvQ{b;YW=GXlRY#8Fg1Ui>1tB2bh zM39BHM{L=PEoDWgjdD$;CdgtXXYWKQEEH|5KNE%zAtYs;Zb(WedC}R>2_|XKIYR*r#*27dtu*LmQ&M)yE7Rr$H+Bp6vmTJ7a!O!(pY|7Pw$qX z+)MK$7NW5g>&Gaow|%72!z#Wc*?Dbn_OgWestD5e+2YGnZKzACTE|btScv+g{N0(X zJt&IWiGE1-N%B(GUgFpemwgt6gAuq*WN*JVym{L1<|YcggS3=cHeB zA;Lm|J`_&-*+);5Y#n0PREs{6}!9dfIEvIWG%&Kt}m9QNYN!24TH!+P6 z-T)UI@wl@ZmlRsix$L1tNOwF~TH9TO>4@DqF-aK?2o#oc@n|?I+Lg+=u#ce5SSSWD zr$GaFG8aqL?Kbf#mj)ajNEG6|u0HZcSj zT%g0&%18635!=Ug$IXBO3lG}O?PO|giu>e|LhlCJ!A#*$gd;Sb>@o|lwap&(MPj85 zhc_3F8I6hqHNX@Gf@26L#9=7a2FEP6bj>0Q+4E=CyDQO5_O?h`OE$WrU}6e8(D`9H zU*lw!YM9w%7^)SS=waFVATbD29hix!6lg&vNesA(Cb~v8j!+~N-SD6fyN`8@-M9IK zxt3%+WAoC;g2_b7dev(o%G)wI|{Dq#ubmW8_IB9+{vV6@d;n!!#NTX(Q4 z;vzwX=cRB-=aOqmgLJ={EBxfF*hV)JbaFOLr%qh7%trJoE?Ro%bZlU|h&(xTQ8B!@ zDVqu|3b#tXdcgsHmDULeh5dwyRw+YlT~nhVi*eJBjnk0o+0xIKuNb-G7)K4F{>LTM zwnZ~UWfm?%yLXe^wJI79VNq+KKw9V}xn%+6uC$4+MmK7umlTA}a^vE~i*wVuOgQbt_BKt`It;wAU(0rK}FY%GM z%o~Z1Ja;9Hhr8TeA13bZ<{j<|xkrXnKUw~nEd>h`7b(1EW&TBVP(&PWlQSy zUt`0ui<_DjEnKoxr`FduHZ&|*0%%jy!ed3q>Oib!FKfZK+JYD3YHhl!lz#L3@@q!c z&C3X%Wjzc>c#QIi|2JDxTILt~sFdvA6u91Y4zr;`b^1FXzTlxwy)Y?wfrRxWmT^J}RQ-DgL+r(DYf>r0@hb2i+|&VUK|J+TsvHUc>0L?ByKy}SU4TFJ@up$ zLDMWEEqhoKr;bJC%(Zo5rCuj}>^XD68y~y(*{L6$ z2LD%&jx@h`)wwav|MHn%i{5gr6Tab3xto7{!?RN_`?=sh)#az6!L!6OENd%V`cEV# zVAV{qkhB`>joo`$wKM7gq4JxE5^b?+r|mhT)|$g?w0vl^$UhtYu@?E8Z2x%nFJ%81 z$eYOiMI1M!p_baF{7sPsp?|i6tv$Jj1Oz%7vK=YnpjL5<=ys+fWFP$1S^G*?0EuwE z`zQiLM@9nZPY58FDc}$z1yVO5_o*C9Ru(}8B*c)*6jSdjhLa$t))e(#wghsS5)LXa zftPS16DkFD9{zd0{H#7_lU6YhkQ97mnGbRWtodtcED^tdzHM3SYUa;(8bL1yH20!j z&oA_Sb#l&n8<<+Fc`dGrnBUM)gK$C7`yZm#)=&>_{`5YX+IubPq4+f&@!D$92aun> zG5rWL#?rZ{<8!!9`_fYvIa~)43x0$#xwtagaXoqCm~9SM1M`SDO)lzioVad2GLH{W zDWYFQ{Ey!zHo3+l#NpaiYQ4+h%1JK5m|VEFTjT2a<$Oe>;wnil!hlN~59kZl*3gJx z{`7A#2|=|r`t9T1SD*tPjQ162s&ln9`i=YESD^P`jDGXF_Z8?p8Kb|V;C%&}+DC1T z{&L6|F6j$ES1MJ_UR%y`RP*I_$F0W3>P^umI{Rn#`d9CQL=Tel>6QWu8XK1Bvz*4p z#>EZGmL9ukkxtd-K8qU`H*gTmeQvSZU*6PmH6F^mjv5Mn`u8ILX`p|87P*{Xxw+3# z`#TtNm7CKXUnQ=iO57<`;x<%?JEKb6wkmPgR*Ac_O5DR$;-0P&_d=Dp*Q><6StYLS zfa>bY{#D|RsuFj6mAH;7ai>&?+fXI$j4E;4s>EGeCGO5DaSvCCd%8;83svG?uM+oW zmAE=JOv`FmuD{y9O59OZ;*PHp*HIs>Gd9C2m`lxNED#-B~5>;VN-YSBZO} zO5E#J;@+$hS9egA{a=;1qpHLmUnQ=iO57<`;x<%?JEKb6wkmPgR*Ac_O5DR$;-0P& z_d=Dp*Q><6StYLS;4151mAIp-#2sHHuA@raDOKV&REayIO5C<8ao1LfyR%B%!&Ty* zt`he`mAKcd#JyQ1uCBhy`d20HC_kLGMy1$(gC+U#Zk&(KlHPnfY#!El_@f`Kfc{mR8lxD~)$QUOP+*TZQM|teX4YYF;8!kvB<~ntR#m`Jeusd$z5uc)55UyZ!*2MM zOCRAD0n<|fNAZpT^XUpWlJ@{GzpMiHXJF>iwqTo&aVN6*zw7;te6}Kwwr^z?}%( zFfjL3z|lL4PXO~~1sutnjKYag0pV9JeboQ02If;0a8!OffqA(Cj^0)ND=%-<^DDBe9$X-=SugI~GyQMF3} z^Wh3Os`pm_^Q{Uv`W`O=b08Hse&ymNF^$0VRlrgE-3-ju~z+y%_83OM>)V=+lxMiW*1%Ee3dAO_4wD&VLd>;UH56>!up zUjk+h6%c;q;-%)j1ekSI;LZT%t_nE%437cx=L$If9{49r4*bfckJ`}+V6Loyqx^mr zm|s`GQL+64m_^jF;#V$SD(7}!&UN9&g1(y=@muED8WfvW;ljan`99hn<-6WX!l=MD zCRj7PejTg~*p>jC@6?vyKx@L(DN`ujp=3ITXInEkIGl?Imy@r_nhfKDy^*w7GSNnV zuvM5ibq)xb==&qNEVlY5PMr&Hrw!N(l-Z!1*1Nu^m>ag{!cP&T^SDN|H;)SuitT;H z1l^}tz%!3)amurV{p*QS_W~#t>clygG+Q{-qG(cGNmw|Ly#vJ=?oOtK??do)c|n{v%xe!(INvT>e8{{zF{;c`pB4mw%4SKilQ6cli%?`44jW4|MqtaQXLl`S)}A zXSw|Qy8QdN{HWgav%l92mw&p;zqiXj&E=o!@=tO3C%gQ6x%_*&{Cl|kbuNFv<)7s8 zPjvYwxcuW?{&6nG(yk<6mRV`$urbBhkQ&LXAM7Qn@HMl^J1%@c%IqLv~mK zQ!|Ce2}K{L(P=bLGABrSB^$Cy!2LUI$m$@^Z9}#PXzHhI$SAKWjkk@doi+ycX*C!c zVjL}4^+8et2Y=(@AW$(_-3By8;_%vd)j8l(3}(!sQlG0`24 z5fDRd0{0MQqHPI?c|*wAN@e1T4_BFlI>M2b&NjX^M5W1RC}$Zy!#wB1f?SO!n!x2e zB#Y9P&V~75ce-i@7ca#kiMDLJOp^%j$_86vk+xvUKoEb8mB7_BU6?A+bv5zeiX3jR z{Da8P+bla8i$}8U$uQj~lFen}xWJBalpUI6h%&6P#0Q|%#G~yn;U=DRS5T&7j4M3S z?u1Qrg|$F#s3n%fZ8cmbRHn!~=OM@6Ptavq3Hp*n_^!_PwDGO!WIWfIh~s{%Hhd|{ z^AufPi1U-oWKoD|6ojl3^;()D!R+!}w!Jgafy-QwVUl5u<+6$eGZ`*ZRc3-tH|{slp?Cfrq(ZRgi~~l zR5lq(#vJ~aY<_Z$#^347|Dw%LE|Y(@5r4WB9bDWe2|u+(kjoTdW+5B$%fgRsesY=o zW)iZY4DJN+Nx~0o5#%yOnBM^+a5tT|9KUBvAeSkDERLP;kZg&p@DcDGTL8IC0S6ia zqJD+&jLl9ilie)D)~p}@(>6c3Onx){?O9&|PuT*jkfd;~mX3n16%0>XX* zzF-R=mnp!kL+yU8;C`E(Tqe8O3W8lB-%7C4mO!r2C4_w?+-*xBmnp$4#85ot*AVZp z1(3@WaH!Faa6MuUr5Fn)B0eAEc3Td)OgUy@h_S(2A8xTFkjs>?#7K#Js|Rmb^bX<; zoh{_g7bTVNA3=q)yZleva>-@NU2Mq3^LD3|@_g|+u8iPwVYtFyJPqymr?WUTX^^mnraYLm>F^*a%%`>o4hQTN1fUNoLaUF@wF(MU^^BI9iiR zrThh6X$vHmDbSptgpsh3A$fr>MEc9S!j?xaQ=VDrqQ!V9gC|A&aVA(tuVXrstz z6cIN|@f%0lH+4S1#kMqZnbOQ$k~BIV$af6k9&Z2CU1ZB6mnrWUBXug5@)V-Kxbtms zx*kICQ-rJ?nM1KiFE^d<*xPI8KEt1XaR zrobbNY>E>C{Gy6~7SFOpk;@ciPF#g3TtDM4=yY2UxlBPgOQlUOg1DJvBi<;J_mO0K zpldEua;Mos$z=*%Y6_LNJ98@Sr*?1!x_@eiZNcO+1)CMcm0EvsAF{=f%M@pRVLkzd zoQua+$~M;lTOheifv)CCPZdE^@1L*@wj6Sqa?F`$YtLqX5$kOcP7E3NutXb>n`tH(N+!^XGC};~J zmnq2Xt!+V-oApVyP;!|E@sZdG!88zOOUtpZjIDC~}#i zjxrL;4|Pz*E?*-T+rr3Y3NzcC-9T_{++<55mnjWLl=a?r1Q%%9*R_i~`~0)J zz?MlaQ>Ho1Z|^B$*Oy*?!>iO%mq#ze`^!DrmP;;Et~p4xhtiyRe>q3ka>!-MF}nuH zp?918#T;sjA(tt}>>6m&H#iW@gymG+U*23>9=S|;=D_C})Z4oKMb_IQ$z_V1YkXZS z{o+}FAqUz*$W=iI6xqHr@BM5c?z%tja=7l3T!b;X=nFde`r#k;+|%KDMsg9xx&1q`l-pTGNK4%a^=7hy~;sjLAhU)Jb7!+-1i&TxUuy!kAo>4X$5){FQSY zuG=LSVN9+m2G=M05Bjjf^^D{qjLAjal9R&mZ*6+k;rhMgB8ln#J7?X>7Vkd=P{`Bz}W(lVIyx(m@!LYhQ!w_%F=(hr{(}$we5GYnH)v z$6;rs9j;l_IpIeblZ!@KCxt6^JaC4?wNP>q#^l=H;QGdxpMKxr>XuxDF}V&fxc-n| zdWyrfS#lA^BvXxi!dhFAqLm|of}p=TD+t_LI+VN5P`6B^g87dD}St9<=bauLSl zqBVdM*P>bP|GdNXH_1g9lj}%>>+5%4ah=1p4-Mn^5ys>?3KS=auLSl zqScPWwegfGUvaoPB^O~#E(|;x*FV0w86B-EjngC-VN9<12G?F6-g%tE^-0M^7?W#( z!F9v$fB12S>tV@77?Z2P;CgMJ*#(E|dC5f>ldI9-I^+E4lMdJ4Bo|>!t|o))qNcNd z=Wrc39)b7~#^l21(aLbg2R^5bu*XR*!kAo(46dG6PuE7h4@xe=m|Tkuu3ej_X(Q}~ zl8Z1V*Aj!P`-E+%vFa<|FS!U~axFEuHeY+7Hl{o!xd>x&k@CW+ho5@mVr|rWNpca! zidiw`QpYNpbFOrKeCKsxm7FTxmJ-0brdrUweeuOc(jt9j_;S)Q*uJxj`B^O~# zt`iKd+pb)z_45lQ7hz1U6AiAGfBZ!oiP|I=VN9-*46dE+@6$%TQzRE*Os@ACT(f`F zt&Ok)l8Z1VSF^!&-qufQz0F4@7hz1UpushL>Kj_mc9rBJjLFqvaGka&t@XX1m0W}| zxk3iljt_iQ8y&tPxd>x&g$=HrSL;?2Lj0bUT!b;XBA_^RW7pf0uax&EjPG+^7yk_KfhdZ5ys@|Fu3M#+E*J>J|MXWV{*j|u18-P(#EeL$we5G zD{gQ#CND>F)K@-FauLSlN*G+nWoN8&xNeYKgfY3223OmYL$^Cz4@)k>m|Q7?YsTuk z`y8$xNG`&dTqhe`&$K=KL5J(_l8Z1V7dmL|D__6k<#QaaS(6ZmA7Q|y-5QVqrM5=R zIte3w`b}wBkZNm0zb!)3d`p~;>GWVu_F%dgBl<}pC*{FlAVgeZ6cd=F2eZP1Nq8_T z86!qsAt&y^yq_`i@vo{iF%JgaDAFV5PC`zH2eZn9S?<&)+A|A{dP-|<%Y?C2Y*n{b1j9xw=4+fPUa`d=bJea&k zPSAr{>ygv!!Jsj_;(DJ4v)&WeNgfP3R+pR;J(yEHm=iph4UEyt@OTfVpE3IPI?jXH z=)oN8!3=oPv&@4TWQ>?w!inEf4`v9|+8RAQOFWnlF-DA`B*n58doV>%Yiq>l%n)ml z2UB8z3=3K_;eeWC(<~+uT88V#s&Gul<2er0Fms9V-T)-H8{5sf!xsWkp-3lju2YE0T zfojHepa=6Y#^~+z01svxWAwVZzXx+MWAt*yfh5rM?{x`d^zn3-2XiT7^g6$<2Xh%? z^gdx94`#auGt+~)oH2Si&+uTbV2oZ@r+Y9v7$fGfaN@VO2lH`IYisnjGtGm!k}+bH zN>b>eZ+9791!`@L{w=0>FrQ#dGyYX`lF1&-)r`^m-n~4SYZ#-qi#HRoqz{(9b+2tugcdX59WFgW}*jk17q~Dzwwa|_F!hEfa zF%6wUD&VQ*a;7`EQLTh>|Eh%&awrY1Mz@o4a9(?WoNclutV8ovN4)Mj$#I< zAU+AQEwk*>_8616O3FuwpTQ!I5BeB(=KM`8bEBAWQkYMiRhgpZd~IHHY*XcHQR{6) zK2cXR7|sQ&w^h!$q?I$47JWs=*E(B;aEl6~{?(+F_H?PqI){n_$yl#aWu1-@zT~;me!~%K4l)LJjhs zV*=58JSyioa)lnL&)7A{#P9*m$@A;wy7 z&D_*{0j9mvF)yRv{JtWLb2sIMk5==z2~2s^{{vHu^$?L?or0Sm@&Bi%3eaBoU$f84 zS)@G&sbD%2$%TT6WFm@N6zFDzeZWJ3V=NKanvO;iVO+&Qxu<|y8GySa zI@8hY${dnp2ac72Xo%xjzOI8Ts&c1J~m>*qn*_D}8B!v4`aN7#5Z?Q`=pbP2DP)tG8yKpF(S_y+JQRHT2)ln?1Gi6tg*;3TrItZdP zh>|m1ho~dvA-XIEMMa$pC258Z;@*oY^D#1XrXGr(B-$E{guP{^YS=zHT*M?=rQHjt zX!q5TVd@YJ^v!iA5_S11_i&@ln>WPw>D3yCKn?;R-B3@+m z00SLEDPY*(c96(MX@H|9d<4p54+%^o+8l&sbD?CiBO0+(6*^Ft6vdT13AA9RT2NO< zWqXhg6CDBd9d=i7upW+g-BrQbt)pHC;0vx;8IELScS5QiKUyTaui1{o5UP@ zIj}rzQ)*`G!h)etBt=7WTO?zrXO4~#S;l=!iL9l%o4F<+jvIz>Z9*~@4Xva;Ho`X- zsY04(f~f#=na)%SJ!%GX1@%=9^@E`cj^sodZQx;Lf$0cmR7pI%ED%MAiyknK72jvR z4n$+kL^D)_^w-$Rg z=KVq=10x&TV;G|2nC$uUij^&$)}~i=>6nr$0g=ta`GJyiq^HD#`wY%o0uvXEqCDNR z$+($|$hg^yCXqb46MBpwqk*NPEuCmOG~7}^tq90QR){Gd(Z&i|h=w=5zl&y~)J7<9 zoQwcX5EHRi%NOHYphpw?Ouk5LKm?PRv_sR*8kV9eMQt(2yZ*1hl<5Gdql*L?w6&e#<#`>qz4^^ z_h#H#2wV!}aL>Bn&=9UZ;S+ZBL@Ek!;?%_m!Yj1#Oq7co^H8+M&WQU$-D!X>6jG>C z(pnO=Y~s{LK?`H@%(SVXEf6%+4<^k7iE1?xK-C(HOVJz%O5YlEd~Ak#ukD=<5Dhv2 ziCHj>I;as7c{ZK{ndjrl6i<7IpQd9Viy0gy|F{TPP~wM6iB{=$`iCh(PsGQ+gE*gTE z=s;<>r@uef(9qDx8KzcEY-r`E_FY`;w4&k+&@xzNp(P+*Q?9dGr7K{a0vDjjUQW6K z)@HaSGwn?23Rs_ji_|rB*0s_VupWSGPo_O2T>q;?;b0=vj*B+=7D|_%foU!!1JnF94B|#je|>@oGqedZ z9WG@8%XeuKm}aOEB(F@CZuGa+>akb`N(jJ;6@hVeJf zr)@lk*TwnfOdd+rKq~UC4dg7}HHtelIe3yB*YM34W9*iBa}V9bYYf{GXO7w;U9K^k zWrf+Pfkd7xI7S)EP%<>S%5`ttd+; z%uw5kG@wkKa9e3B!cd+@n3`b<-GRXPDr{xmQLYZZrmvNC%n1`PsjC%oQQw?!TqaBP ziP{iZQ&ZW{jmYLuMfGjm49nVzQ2i&yNa}m(ddh$2t;}>=t@~DHdMiNv)UC|(?eAph ziskod9W3_d`_x#h@<~QFl+S4*pDLJ#>f`LTV=RrNJY!wNG|!?)ejj~JMBl`BJ!F4N zA=kYe65mn_lQ$Yq5Q`TqY-zep`U+BLq&vlAMtoz}Vu{o0UMZ1$-&K-KSJ_394Btbf zBaxIF4OE9{&Ol{5U6idpJKFvHcs0&y+Elm7Rmv`>aiuhu)wW9B3d&Y4i*dRdK&e?# zl&p@Gaz@q0N=#MCSc$EyixuCl3Qa8MVN_+SjB_+yE0v{Ed$Iak>IogCmPk(pEBrBO4S$UG>@WAc_eM)IB zt2&kPN7I}Ve|cr7$VXXKsFYuoCRAc8C_*`}hv?<2RIjWBmD*+5-&fR@$~Y@3OC_$N zu2kZVD4V`mB$#RE+vtxhi=j@n4dxEw*7~D#oYWq-L-VI@uRq!dUzp0ZN5Cpx8aPG| z%g~UAcZg(p*&1k>=4#cuR38?Umz&99!JX`e7E8))(6PKTL|YH(WDMVk#=QnP?#&eA zo-@E9yh+Yc%@MAxnzH=>Y z2S*pNdn|7a3->s7FJt<6a)-pL8xzRQ)(=9KvnwwA=H|Dc1&9azqgu1qkss?0m7YDw z4^37y2-UUxK6?^PHFZhbi)hd*<4ud0!c8Gsw2{*}m3iQi_-Vr5r2Kme|03m|&b%Uz zGep=j6*iN@ob>D?!a)#u+L!$N%$D%aB0m~!2Ie2D!FVvYpkT+SikPhwvnqS6<3Fj!W~oi>^Fh{8J|oQGDT zQ#>ww8_`3p99KKLX>U^GJ4$}&v8kVfIGHMum$xUAJdi}lFZDcV%q=C~v!9?W#$OEEvwNd-+rlpl6tW-OBJ^&qrY zrLev2y;pMHdnHG`p7THCm7IFi-%)oZ(B2*0kQ^jo)Cv5MN!dgzWO`C_ev(V&3yRWtBz(>+#UB~#bHoX&aumJ`RYR|9K`lU_i zdMNzYb~ts!oNAUgYg1nIQY9c_I&Td+Lqdr`!5}VOSPfk&4Ql zK%NC~|0s>lXb7RVgs5JUI#Kp@ zZoV8nvlUFGWIfwMkCP>fdby{=$CF!?{=GChW(i~xFoX7OlP@(Zen%#CZUev>Mkc~fO`_aO15}~b=27Hlsr6Xdw)EwBPOoS=j z5QkxJAj1!kiZG=U5`4j2D!L*P%ZPGOIv^E>x0Eny3qGay;jmy^^+2s|}aqz^MR zs*_5$!(lSts@|!*EBy{*bh9Q|XOwQo31^E9Dn5=w>2*Z>Fj$p*N{_>I+VqxmrMqFe zpJkH7DgBLzm!>mhz{ITw9fep^ktI3Ri^D~Gbv_ir({{gu*+vd_Ji?|6MkJyv4eJFN zCv0qiMI3m{i^>n{0{HD^2lsQdmq>9QDdGfxcg1&q!H!S23sELADo#C&&0%DpuG7(; z+0sPtl(93BbyMdHXVq9R&ah2MMOE34H|Tg;4eMuWU#j0bTI7j@+7 zj(dz{(^39R=JKd@=+u3ZaR=kaI`n8f1BFNRhvk8+KN!!LCM}EQw-vN_GTaG6QkhOcYI4Kun8Ph{a zR={$eForP=*6l&nmM2JBXM&6tME#j4X_PVg4r-ik68W+XMfS7zHB3tryyi$NO-?uT z6NVKEOm^h=FzJ}>#G-MPS2HY}4z{ZGBlf=ydC>&6EXcT8_J!C3H^N~zZO;*~4{n5! zdI8DdbYef;2!qsQt6d&u7$#-No+zugKVpW77V^e!*d@<^@dCH|MJP8DC2Vn)*!6n!&h%m3h*IWnjE@RgnmM@etd{hQCss^J%#GO^We#`C8yUUQqbAL(=@1*42~V9 zh7@L-8bO+QY818#)%@0i#%0FItj3087cX44bn&r`^~Mk9wU#VdQeVGx>B40qfX-{x zT2Dro2WP|DAtZCA-%CNH-RJ@64vVv>M&n2K&NTa+!`hB=+iiYj;JoLsZUq0?KIgEg zkk!emlbqM-`vywIO{-2T4B*I4X;n|(rryC~epT=ATGt!(8%v<&*6{%=+@|$T->9b- z-NsVA;2*C&a@p2gc6|{qKE>A+QHy*5v7Ui-Ej>j-(Bl+7B5?i_uhMS`4i6U#Yet6i z1f|Dfe4rsbrn7FaxP>5erM?d&IxsXcoGK2|%VL8?IH<{&*rwM9EmIdA&TsVQfnQ=p zmj{DK%w?fu$0%>+(m^=3x@4H_#N;4o%8S_>Jx}Nt41E|I>6eRu4J_HP(kw=f0FwY1 zF2hhX!8_APb61pf`t97NUK~A{;=*NHVcCflOg7S%#1SAY#In(ps~9W(Xm#?fP*WEP%N2=SoFZmD2dTZ zA?GmBt6ZZniQ;uqMQ%*AT_L*xkXxNl4bTKP7|>K z6%t{WJ?1%`S>o~&sicW%FukARDhC??9ZNfml2Omus=pjeolx?t-?l8(j_G(nIYFfB zU=6uXLD+(L3GCA_ZGbFTVaMdtyTLM$KD0^e}CBk#ST|2aXtY5XkJF`2*Uq zk*20IHfkBMat`(1?84n*Vy)fLaJJo!)TdI|k&=l#ql2*&5+E}?8b^Cj$~QRZ)sk{w z&5lFn(5EYLI;Ko^WeoQ7P!lHOI3nng>PE_KI-gF*AIY5-4D)@mC>Utz6AP}i$0d7A z_*Xcv+Q+sZJ-6g46r<1N4jnyCNLVLPR{YYX^T^{s=yN-9=8(J3>N=`UWx3C; z-mz3#4xb@YPYs48ypV-t!{FSfPU=wE|AkuV5KE^YI@W?DVi-Z;Lj@vmIK-31LXr&L zDak@}O9vUqM>-v{izheDU#&|q#cIZ1opptD1+07FqAQ{5tox-aV0{O!lbH5>=?Yl? zfQzn|g2if$a0RS`;i7Ax>a4la6|mxP(KUF`I!af-D#1n9SJhecqz$(iO1&3>RIQRcHNOx&qd|W9Z68q8%Vz0V@O- z?P}FoZPFF6Ho%3u5^a<0qd7=9m%v` zNmszy2ebDhn6|%k1*}%M4rkhO=?Ykz;5v+Hr%PAB`V3r$GVLzu3Rpje>ky{>Ou7Qr zn{drz+S}3RtN*C-8;hMv=v~&fm5x8bEZHsgTEV@p=o@v)hSHOA%u7jEO zxO4@qm*6^xX|G5Zo^67<=Rl@SlrE$NE?S+|S&h;KT{v9(Gp$p)PzG@A$F$R>D_~s< z*DR*pAYDicT>CQZap^+Y!?h37ekEN2YYNuOGnqDBx}f8Q3+A;*ORIDRtYNsOGmTc* z3gtY@SvVEqv;(w^2?f0eF)bqLIR(Uw6wLb?K0H(cU0 z$SKklur7j&)`fM}CDIkJz5o6|jB}mpBdb2kAna#^O_)2AL~e0jmQpT8q|M zN$EnF!iE1pJ6*a0)-7;B5NMx~F0{AnKbgKDKR0>j^`AOx{YfXJA{Xy`eR=;+lJ{g1 z4}R^*7cPA{{>lm8%?!u4ofF!B+2LQxd^-HVEtiCX9Xk#=|H`?)eE!MQaZfDl`s2Cn zJEP~l)pydje|yEu9S_}q)1Apj7heDMzrA_YUG?Apc@`!#f*EOn|kjP!oPD{ z;gho`L*8!TKWNuIv3sZO)p6Z@xBcdn3#U!|ul87G!uYG3Z=Icd>Y67{+TOcrc+sxU zo!ho;-3O;VHMC#jcTTwdfzER_w0yefkgF%Yv0?fJPY=v{5Oad{B>LWGygm!dCT0;#(O?`>X|>-IX!uMWcnN1tm}HtufO-?4c|H|^1vP2X8q)d zz~?icyY)jS&)U#>!?t4GXLc4PRSKjFP$g#~={QiK&D{mMxXV;XUymjnzk47K- zM|R3L?`Zk(*#AmQ-oDTA;VXClV)Bmb@~!=wW;Yjq{Z{*@ewTRS$q&x_>OkX(Ke+tb z-K{rmZCv@0^w&TB)8Fnjf4}3dkDeDg;lr8!Hx3u}t@+k#`~2+C zpPqhr=-T#k?&;exvd7)4dN<^(?`{58@WPett3EUP_A4K}q5bSr??18a?ADiWI%M0t zdmc-^@%1g?-?r}f*y{9s`4f--#;^8!?19L$$xq#PL+tgh-tbyu!@cv4Iq#41Pn>+dFr!Pxh)v@Jo=go@$u=&Ei#Bk|Dw{6^d@rJQ&Gyl?j z?d*q+Kl_d^@4x@Pxrbt}?OwjM>&&M89^QHRw>n=qXxEA>B6s}apC|wE_$!|{XKAkc zsiCLZ?)kvwH|}@v$Q8S0*8gbTj#rYOeDupJfBf`|FFkrz`wtRZp9o$Qzx%4U60hz3 zo0~75zP9#&=1WF?`-w}=d-EH|tm=RBoWvJ8F2Cu;S&#mC(=nf(x8T`hK0d$Yl50Ny z#@#=A^%`{K=nH*M0?-s;H=P8aPR8#fz;V!^?ulI&>gz3Qvqf&|r2L1_hbwL$3vC1p^~0j1fX z+y+X6L3tXKdV}%?C{ql|KAa&vJtu&&3rTZQxEhof4a!-dJZn%s3Cd#zSn-nFrrigK|84Lk8t!_*NT~0(>chayER;28HHh4F=`&@YNfXr{J4nP+o-3 zGAMt6Zx?bR0}wnJCHkU4IRcbt4a$k2JZ4bVfU?t|Yy#y*gK{k>+YQQNplmfLFM%>- zP{yH>tu`pffRZvOX;7LC3eD~s49X5r>J19b@unD*Cqc0c%1fZ^5{1TPWLbX)X^p^#;o&rL(g2LVT9XUXZQ%)7RkwR#qh-7WfrFLYJ(ANTn(?971owg#~TIXqYmA zQbi&-z4{!fYjFkpD{ovNTVG>ncw8V`lC5TP0hF%FMfOiuIU%-o%_T)Cs$674v*!w9 zwV;b;>l0mcrHgctZ9S%ouBky?A#6w>XnMQw(ZdQ5tK8MclpkJa^w9}>rTeIw%Yq#J zbyRjU0_=R!qjp?J*5xt1fj;XD2Ra??JjY z@tlA%dw~u>-%oU?ejAcbsJ5Z$5S?w%1x*bL>$P8{UFXK8CeN;O1mhPe3+U(Gbo_MF#_4D`x<=kz<@ zccx3ANHZ#a;+toBh6=HsEydBdBVjWS`(4~}d6XeSY%|C(?^dYKMoKImLtTu9B6L)s zG1q{JiJm5B|H=kdtLfd2TnWw2$E7P^-3^z}?A#|^xDNy_q1pL?bis!TfTa?!W2Gx# z(Nohxvvas~L5n!}m7grA{qEEU?z0|Ces$ib|GfUpe}3m@7qoryfqQ5C`l0Y&I{UV#gp2;AGHb>kwKLJyNT=Cg zP{>zrP)ODkgHnKxenL()GhVXY(fU-Uh6QE8%pNB({|)kbP|+jazS;x zJv9C0MSpI-fAWUc&pz~wt^Y4JazB+58n!Inchj(`E>Zn)e%^*n^@x7ITX+@ivB@8m z6a9$WeBn?mL8*kzA8l}`wqkz11x<_0`^78Rt2HiNEbZHz7V|2W)-<5d&)s4^gxXCl z=B+AP%v7^Dd|S*@$l`1d&TKKEe|_dqAOo&a@8D2g-U`0roi`dXwxat|#1Bf$Tr|6u zXN4Jx06SIUK0w?bgTofmOa*<~a`H9tC{FC$>7gf@$iis6=e9;cq!^uy0NN{xB@?iV z!Ay5g5axi8!F}1eEc$R<%LZ?!4VViG-8VMs`6p_%wWwezJ{U?qk{RaX55_%eJ3tmQ zflo+R!1~>5zj$k2;pef-U-|K}Z~v+DI;yDe=H@Qqr96&-g>S$bGlgz{qOtJ3lZUnF zLaFwMYl*_*;zZn}+=g4kmE}0st}NL(v<2nWiV{JmBXA2SjCi_GRbXq6+P5MXYEhQ( zZ?o)Z47WeGCvid*SI*`#up_54ZY${MbdV~UvMR?}<~F*uk&cD=5=3#xlbr z?M~Q4S6B<=hH#oT)S+ZMdB`nnYJvT@w941$|3gk5(k))2wmevqm)U!fZNFv;-D>5x z_d=&UoV}MY_AMH<{TK4Xnnv!&jJL=SBS84+CMfqUOyWHQG&20`TbRmQup1qx7!C!m z^$zE|G+>zhd--88)my8Lb(Mxi8am7$?cEFGZKH!;(6n^%zcPz#YHE;pXH1-kjd_$V z|J-9D<&Vb1i)B8kOY@sWra<3imIZKL8*a*2vnz8Xj|yZr{^<7(R@0@ywZj|M^vMD7 zUCbh9VL+s+CVo61W+1y`O&_dJ{Dbma)(rL(`y!k21H<&L5?izR%jjlfbO%YM&@N!FkxV2#!7?zNUsos%7q{>bO#|&HLo~^7hG_EHLo|8b`4CO!@W!1^bL5N!+^B-PM>bs$_~$e%4;FkPCk^MoZM zfsUK@?whuSp8Jj`rcILy{QbQ{X9*}{STSS&=g_R9tu+#&$`(;^yZ8!=6nH7 zrP>x&p&sLnlnlIoIQS_CN4-rm{vd$=gvnroK_L^(dV|sdA2nr%YaM*_6BMtC%scfM z0a{Hx+@p`8JA;;>NSu4X(*ixirWS_LHn5=SSf%jd2~H*b7*_joU%{E#{Cbqt{t(6m zn%VpV|EC|7hu_SGN{`Gk^k2D|O}z*Au4gt-;PkJ7eoQ<7_AX{Nq?7kdCgfgCu&*yV z@Etk(qoiak1;1>FbdN`TN($MLH0t z#zj{rjggVwly-iV){6@ldq>8#P#)4jJo>pc;rHN^(a3n5O!geOebc4U$ z-CV z8J;254v#^L?I(ux;OTtt-~etoq89`CUJ#F%)`1jmMrrBk-GD=%KGC!e(DX@Oa?&|m z=;wP7e8k|W5FgQvCU`-iZk_Dxg^9@ZK}o_x!= zb)YRjOa`#YHK*eJbH3lhCqc;6P`)_41=cOYJ;Nhq${7U^w=a9Ke02Z>iQ>t|;y_Qo z-zJCnps}9e;X-dd(x2ameU6fU&R{JiVC7;8_H8PZ@>zNw@;_%*C63>cwt-xDunhl- zqpXsW4dsO%F!V!JAXm^RrTY=7YVdw#yhckg?De9{rIOK+|F)3v`o z;}0)ibm#Gp;A92^4B*{@3`xu%{y0IH1V46-ZYmnV(f4NM z@6F2Jo0ZeURhlWyf84BG&f5M>+A5l@&Ou-6{CsBR=;`VA-A+D#C_F-2g%EVda$ZlP z+AirMs<_zWMf~5vw88hRL0JXgV+N%N-%f*a34Avilw0B3Zcx4m-&TY2P56ck%4_hg zHYj8hkTNLyB2Uc*;iD8RZHuDHU&~dXWAqv z{xdFxHs)(O(V6EtRL?BY2{LDy4qZ)79g01jbx8Jn*_aOdgljo>PsJUyJ&AWn#@t_# z%~gY-de$2ruw1KPg}6lOLd7bv;tH{8na5V@UQAY~JNFRL$Uqc*$#WwB~n{WcSX{DgXO{<6DZ#$kd#8V zPO?Rnk0{kf`0`8wmi$+dnkY&XT_{&BQ6z=$;Pe18TS^GiL~*KoSDYRw-;-EIVmQAE zYbv^WSCj3(lGOk$Bg4a3JkqHxk6ayA7~a@3B*DIE^??1?nmSA_T=(^hJDwjHskE#k zyKGAI|8oXtWT{386LxZ!q0Nb<8QG4LOWZIfmS*?EFP3KChf6HYXn`k|W`BoEEX`;T zB9~a!iKQ7W>&O-0#hh50wSy*>W^{szhMPL8AYB2zgF!6KJ`NhW#0_I&X+}4Ukt<;R z8ZNOk`;Bx3tjQRq#L{eU=?YjUz$KPu&C(UHdf^gFvvtxHu(rV^mS&ep7t+#oba?xydZ8BvR=Jq-+NxftwTQ*{u_VsLiZs*bNtUPdfy7&-+6KCm%6UGFL~>A>DzyL z=GX5i?3pdS{@Yg*SAApd9SxsbIrGjRMW=sz?+aS*IO&pY`*w$}`pv6*AGC18^7sR< zf9#4~NBp7dq510~E4Sa&dd?-0hQ+y4PkVOvlZWf_4;gprP4~R-#^go6yYRDpf7|^) zy7rvXoF8ln-hJz?$Tu$eL+5$VJzn$VchBf};DH|vPkr|Bb6&psV}m!|F(Y~LDHC4& zdEmq!zPHqRZ>ja(QtLl`sU@aAz34T~-#gm?p=qDmG!XKk9wPD z@rUk}|HLTpm_a!jzMTf86}}q{%3Aog8b_u_9V_tg~ZQU-1lb zQ{ysuX4$bOc^i9J^s(vZUJ?BTACdOV&Y|y)AJu(Y!RQTy=qdcYA~EErU%5TArE+y8 zP(mIxq}`Gb{MT1R!`P1~4G$LOn&^-J-Zc?~XCOQu45fURC|WpwL7%yGaG-bnpt$tk zJ>$2z1;lTjZ$dbZ|BTI-%kjy@jQ2|E3Rw5SC1$)2NEbFd;1V-lnx&HqcZTx6tz=ne&gfEwcq^O#rHjP^4lkVJoddgvuaonq0@0eZx+|(T}TB~=i zdvJiN>i>yzrtcjZaha38XL|bH`PctDCN|n|;+|u^vl%80quR6)J%~Pl(zsb$LqjP2 zq8+z>TR0wM;Q7O_fa=UpP(#)uil^p;iDnl;aUM7{RE|&`P&Ad<&?u`{P7Ku zcsba)A)%B$zp-UvP+hR7QJ(y$POsb8(Ae0(P-hl%KCYd}a2CC@m}wYKXcluljVt(V z$DiLUW-ChjB+~6@zjCvfM@Xln{YaiZi+RWI7zw+dckzyqugQvYeHXnp6R{A3$hl?u zTit~4gxO%JFbq?pu0sAazeBtv2G?V_k-jQr4OB5cuGhZhDwC`WqbG6v%9XN~JZ&If z)WCG@4fM+;e-*S8?qQ-M%w_V#1<1uyRwFN^5~zd=?8_(C^0f;)c_d%l64|&W-`9sK z;WwMb^&}3{4Zq7fRM5FrTa|r;xI}8c)Q1tkeF9*@b@vDg1 zNM$G0Hw7$(Oc_Up{M&}APrRD+Gd&d5j^&j6EcsAyc#Lj1ZwjI(bv#ujMOK&C^ctY2 z;@HkGHrUgL$0m_W-!f1zza_5G917@^6qDar-o8VU5 zzR10YZ!1@!$kwI;^6j@TD6-{7miXZvPl1-XYLi~msS+F6jE82bMQ29Vl!gn#cr8#g zTYgH-6HyQ)u!;8`M|###wV=yW5`)8qwOhD((z{G9CXs2-mT$d`qgSBP8QD1G-$jer zPb+3AB`!6;UV!^pvkv%I%TRv-4ItX*-vrz@uSN&f4)PmIt{jT5R4qEY){V5Qy>F-L zM$`B59b4VNN=2<-H@lzTcgqZp6no2zr6LSpU>%;Yt)SrgAF>U7DOL!yuoDkmkxN{E znq(TOy2vFITnVO;f{R>u(5c3<;!LZPE<7{@SBz8u7LF@T7qtZU#pfpOPK7s>!G@le=Tr7K|3^H#?(?ltMc z)stA>9m}*mqzh#L*D|IxN>{*&!L^iWDd`GW{ctT|+K_YwtV`iq%(N?{D`0&NE?Uml zSznN@fb|?)3z_!3bcqMCnwUlpVv!3s=D^aZk!iD~D`2(3)xfk4=|bIrYXQ@Sr7K`v z4%d99T`64w>n^yCVcJgV!UIuo9nG|7q$^;(0oPGX`?GWfti7?Pa3s_Ak*^{%`{ax4p_rA|uSK!{+&-dP$*(ux342#>wE%@>rtQst?fLo9ju&T4T2i$_Ryr?b| zR-Rklwzt5l%D6yodE4T^s>0$N+=8@#<;&tmbIaSd0xV^rur=KBw&j8KD&x*@3w|8{ zma0 zVBtqFFpCqnAirSYgOZ}QGu-mFJp#+l;vRF$+g1*qdik)pO5B29Lx5G1#f5Oo+m;4a z2^Qz%mbYyoSjx+RCEW719R&*?;uN)g#Vv2!eXxqMxWBjs$At*kfcQ$>^0xVd1qp+= zrrd(Z_&4ao{Sq$Q^XJqnzVNeQ!5`k9T{(R7s>C8L`~SR7^(#kIni^ZqGjw&@mTA>O z&b}Dv8GC-|Ux~r{A7A>WUhwRld#XO^(R|SHu<=*FzEq}E$Ek@QmGhnY?z`=F?mLyc zIHKgm$^A#Jn%}i-``jG=U0sKq=&^BPu`@H)AL}^ZUgGlAmdh6S)D9cls$046xrr4I zPFZ-xCt$5_&mr3zcbv1X$$&owo)|pkK%?plN_G$4Q?J4c_PLY&zJGM^PV-Y&LiUzS zI#s-Lj%codTaif^1B{2Xul;ky5XX89b#Vo_`(#Q zVZ$R9Z(ZlSd90`No3Q+sLRR<(&UkOg-&6jmns;^3_pQ*sVDef|F7^7Hb}1XUU~q1~>gDd|51#U{I7q~9u(Vk*1 z=gV(L>n)XApSG_GwM7;3-uB}Ad!h?B`Lc2Nfv6AruI&@tz{`by=2BjB;)fJo;29gZ zbAIu#S0dMR@NjuKlp57CY({cH_=52>&-TdJTh4cLx%?Y_0G+SFFZqwun71ylS_%#oU>>bkU!{D*i3Mb9j z5!}D$zLr_3_x{y(^3iG^&InwPxW4PD;TtMU3LX_Pcfqrr?T1Zk-0jj-X^}dg-mmyf zleRZSZ23{%KDxv6wV**iM@}p{zj}q1v%fA`t-%D_)4+CXraV6PL-8iR&+31!qo+^l z&;$1le*d7xnCR@|VOv_Si4Hq3dF#_+PeydLABcOa=lU;$mLH$_@`>8VLdrhxRmdGm+e-E&Qxw%d3xX~?+;qXz1DR2%&!KfZ!Sm+8PmF3so%fM z9eZKo%TxOm&1yUC=)M6SuTC9S?9$zXzAd{4Ec2SP!^3-g&xbDl!iRdFTm16X_B%b> z-2ATa4@aWMM`zS*aI4+qIaNAEb)DdUzR>T(vXAFPu3FdgyGn;}`gs1?WkdXx8Xc!i9o}`=U;EZ<|9$RT+{F+Q$9=WksddSpsKd-(}z1zcuua(YR)8+f{O}F#H65h_P4TCrIQy#dg zmJMfw!-;3H!^FNzwXwfLCIkLgC#UrijPazk|9zSG-#